summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/editorconfig.yml3
-rw-r--r--doc/builders/packages/linux.section.md2
-rw-r--r--doc/contributing/submitting-changes.chapter.md8
-rw-r--r--doc/languages-frameworks/dotnet.section.md7
-rw-r--r--doc/languages-frameworks/emscripten.section.md4
-rw-r--r--doc/languages-frameworks/gnome.section.md2
-rw-r--r--doc/languages-frameworks/idris.section.md5
-rw-r--r--doc/languages-frameworks/lua.section.md2
-rw-r--r--doc/languages-frameworks/octave.section.md12
-rw-r--r--doc/languages-frameworks/perl.section.md12
-rw-r--r--doc/languages-frameworks/python.section.md8
-rw-r--r--doc/languages-frameworks/rust.section.md2
-rw-r--r--doc/languages-frameworks/vim.section.md4
-rw-r--r--lib/modules.nix2
-rw-r--r--lib/systems/supported.nix5
-rw-r--r--maintainers/maintainer-list.nix46
-rwxr-xr-xmaintainers/scripts/check-maintainer-github-handles.sh18
-rw-r--r--maintainers/scripts/haskell/test-configurations.nix136
-rw-r--r--maintainers/scripts/pluginupdate.py2
-rw-r--r--maintainers/team-list.nix23
-rw-r--r--nixos/doc/manual/from_md/release-notes/rl-2205.section.xml85
-rw-r--r--nixos/doc/manual/man-nixos-rebuild.xml8
-rw-r--r--nixos/doc/manual/release-notes/rl-2205.section.md27
-rw-r--r--nixos/modules/config/networking.nix8
-rw-r--r--nixos/modules/config/system-path.nix22
-rw-r--r--nixos/modules/hardware/system-76.nix8
-rw-r--r--nixos/modules/misc/version.nix4
-rw-r--r--nixos/modules/module-list.nix2
-rw-r--r--nixos/modules/programs/captive-browser.nix26
-rw-r--r--nixos/modules/programs/gnupg.nix1
-rw-r--r--nixos/modules/programs/ssh.nix11
-rw-r--r--nixos/modules/programs/zsh/zsh.nix4
-rw-r--r--nixos/modules/security/acme.nix2
-rw-r--r--nixos/modules/security/dhparams.nix6
-rw-r--r--nixos/modules/services/audio/mpdscribble.nix13
-rw-r--r--nixos/modules/services/audio/snapserver.nix4
-rw-r--r--nixos/modules/services/backup/tarsnap.nix35
-rw-r--r--nixos/modules/services/cluster/hadoop/default.nix14
-rw-r--r--nixos/modules/services/cluster/kubernetes/addons/dashboard.nix14
-rw-r--r--nixos/modules/services/cluster/kubernetes/addons/dns.nix6
-rw-r--r--nixos/modules/services/cluster/kubernetes/apiserver.nix7
-rw-r--r--nixos/modules/services/cluster/kubernetes/controller-manager.nix6
-rw-r--r--nixos/modules/services/cluster/kubernetes/default.nix4
-rw-r--r--nixos/modules/services/cluster/kubernetes/kubelet.nix7
-rw-r--r--nixos/modules/services/cluster/kubernetes/proxy.nix4
-rw-r--r--nixos/modules/services/cluster/kubernetes/scheduler.nix4
-rw-r--r--nixos/modules/services/computing/slurm/slurm.nix9
-rw-r--r--nixos/modules/services/continuous-integration/buildbot/master.nix4
-rw-r--r--nixos/modules/services/continuous-integration/buildbot/worker.nix4
-rw-r--r--nixos/modules/services/continuous-integration/github-runner.nix60
-rw-r--r--nixos/modules/services/continuous-integration/gocd-agent/default.nix12
-rw-r--r--nixos/modules/services/continuous-integration/gocd-server/default.nix17
-rw-r--r--nixos/modules/services/databases/hbase.nix21
-rw-r--r--nixos/modules/services/databases/influxdb2.nix2
-rw-r--r--nixos/modules/services/databases/neo4j.nix8
-rw-r--r--nixos/modules/services/games/quake3-server.nix1
-rw-r--r--nixos/modules/services/games/terraria.nix5
-rw-r--r--nixos/modules/services/hardware/spacenavd.nix1
-rw-r--r--nixos/modules/services/hardware/tcsd.nix6
-rw-r--r--nixos/modules/services/logging/filebeat.nix253
-rw-r--r--nixos/modules/services/logging/journalbeat.nix19
-rw-r--r--nixos/modules/services/mail/rspamd.nix5
-rw-r--r--nixos/modules/services/misc/airsonic.nix5
-rw-r--r--nixos/modules/services/misc/etcd.nix9
-rw-r--r--nixos/modules/services/misc/exhibitor.nix5
-rw-r--r--nixos/modules/services/misc/gitea.nix13
-rw-r--r--nixos/modules/services/misc/gitlab.nix5
-rw-r--r--nixos/modules/services/misc/gitweb.nix1
-rw-r--r--nixos/modules/services/misc/gogs.nix5
-rw-r--r--nixos/modules/services/misc/headphones.nix4
-rw-r--r--nixos/modules/services/misc/matrix-appservice-discord.nix4
-rw-r--r--nixos/modules/services/misc/matrix-synapse.nix36
-rw-r--r--nixos/modules/services/misc/mediatomb.nix10
-rw-r--r--nixos/modules/services/misc/moonraker.nix4
-rw-r--r--nixos/modules/services/misc/mwlib.nix12
-rw-r--r--nixos/modules/services/misc/rippled.nix6
-rw-r--r--nixos/modules/services/misc/sickbeard.nix4
-rw-r--r--nixos/modules/services/misc/sourcehut/builds.nix6
-rw-r--r--nixos/modules/services/misc/sourcehut/dispatch.nix4
-rw-r--r--nixos/modules/services/misc/sourcehut/git.nix4
-rw-r--r--nixos/modules/services/misc/sourcehut/hg.nix4
-rw-r--r--nixos/modules/services/misc/sourcehut/hub.nix4
-rw-r--r--nixos/modules/services/misc/sourcehut/lists.nix4
-rw-r--r--nixos/modules/services/misc/sourcehut/man.nix4
-rw-r--r--nixos/modules/services/misc/sourcehut/meta.nix4
-rw-r--r--nixos/modules/services/misc/sourcehut/paste.nix4
-rw-r--r--nixos/modules/services/misc/sourcehut/todo.nix4
-rw-r--r--nixos/modules/services/misc/subsonic.nix9
-rw-r--r--nixos/modules/services/misc/zoneminder.nix2
-rw-r--r--nixos/modules/services/monitoring/grafana.nix1
-rw-r--r--nixos/modules/services/monitoring/graphite.nix12
-rw-r--r--nixos/modules/services/monitoring/parsedmarc.nix6
-rw-r--r--nixos/modules/services/monitoring/prometheus/exporters/fastly.nix6
-rw-r--r--nixos/modules/services/monitoring/smartd.nix4
-rw-r--r--nixos/modules/services/monitoring/thanos.nix3
-rw-r--r--nixos/modules/services/monitoring/uptime.nix10
-rw-r--r--nixos/modules/services/monitoring/zabbix-proxy.nix8
-rw-r--r--nixos/modules/services/monitoring/zabbix-server.nix8
-rw-r--r--nixos/modules/services/networking/amuled.nix6
-rw-r--r--nixos/modules/services/networking/dhcpcd.nix9
-rw-r--r--nixos/modules/services/networking/ergo.nix6
-rw-r--r--nixos/modules/services/networking/firewall.nix1
-rw-r--r--nixos/modules/services/networking/jibri/default.nix2
-rw-r--r--nixos/modules/services/networking/ntopng.nix7
-rw-r--r--nixos/modules/services/networking/quassel.nix6
-rw-r--r--nixos/modules/services/networking/quorum.nix4
-rw-r--r--nixos/modules/services/networking/syncthing.nix24
-rw-r--r--nixos/modules/services/networking/unifi.nix12
-rw-r--r--nixos/modules/services/networking/wasabibackend.nix6
-rw-r--r--nixos/modules/services/networking/wireguard.nix4
-rw-r--r--nixos/modules/services/networking/wpa_supplicant.nix4
-rw-r--r--nixos/modules/services/search/kibana.nix6
-rw-r--r--nixos/modules/services/security/privacyidea.nix6
-rw-r--r--nixos/modules/services/security/tor.nix8
-rw-r--r--nixos/modules/services/security/vault.nix8
-rw-r--r--nixos/modules/services/torrent/peerflix.nix4
-rw-r--r--nixos/modules/services/torrent/rtorrent.nix4
-rw-r--r--nixos/modules/services/torrent/transmission.nix4
-rw-r--r--nixos/modules/services/video/epgstation/default.nix8
-rw-r--r--nixos/modules/services/video/unifi-video.nix4
-rw-r--r--nixos/modules/services/wayland/cage.nix2
-rw-r--r--nixos/modules/services/web-apps/discourse.nix3
-rw-r--r--nixos/modules/services/web-apps/galene.nix6
-rw-r--r--nixos/modules/services/web-apps/hedgedoc.nix2
-rw-r--r--nixos/modules/services/web-apps/invidious.nix1
-rw-r--r--nixos/modules/services/web-apps/keycloak.nix5
-rw-r--r--nixos/modules/services/web-apps/matomo.nix14
-rw-r--r--nixos/modules/services/web-apps/nextcloud.nix1
-rw-r--r--nixos/modules/services/web-apps/peertube.nix19
-rw-r--r--nixos/modules/services/web-apps/pgpkeyserver-lite.nix5
-rw-r--r--nixos/modules/services/web-apps/powerdns-admin.nix149
-rw-r--r--nixos/modules/services/web-apps/youtrack.nix1
-rw-r--r--nixos/modules/services/web-apps/zabbix.nix8
-rw-r--r--nixos/modules/services/web-servers/lighttpd/collectd.nix6
-rw-r--r--nixos/modules/services/x11/desktop-managers/pantheon.nix6
-rw-r--r--nixos/modules/services/x11/display-managers/default.nix14
-rw-r--r--nixos/modules/services/x11/hardware/synaptics.nix7
-rw-r--r--nixos/modules/services/x11/picom.nix14
-rw-r--r--nixos/modules/system/activation/activation-script.nix1
-rw-r--r--nixos/modules/system/boot/plymouth.nix8
-rw-r--r--nixos/modules/tasks/filesystems/zfs.nix5
-rw-r--r--nixos/modules/tasks/network-interfaces.nix4
-rw-r--r--nixos/modules/virtualisation/cri-o.nix4
-rw-r--r--nixos/modules/virtualisation/docker.nix37
-rw-r--r--nixos/tests/all-tests.nix3
-rw-r--r--nixos/tests/docker-tools.nix6
-rw-r--r--nixos/tests/elk.nix90
-rw-r--r--nixos/tests/kubernetes/default.nix2
-rw-r--r--nixos/tests/kubernetes/dns.nix2
-rw-r--r--nixos/tests/kubernetes/e2e.nix2
-rw-r--r--nixos/tests/kubernetes/rbac.nix2
-rw-r--r--nixos/tests/parsedmarc/default.nix27
-rw-r--r--nixos/tests/powerdns-admin.nix117
-rw-r--r--nixos/tests/prometheus-exporters.nix13
-rw-r--r--nixos/tests/snapcast.nix8
-rw-r--r--nixos/tests/unifi.nix35
-rw-r--r--pkgs/applications/audio/audacity/0001-Use-a-different-approach-to-estimate-the-disk-space-.patch355
-rw-r--r--pkgs/applications/audio/audacity/default.nix75
-rw-r--r--pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix4
-rw-r--r--pkgs/applications/audio/fomp/default.nix4
-rw-r--r--pkgs/applications/audio/mi2ly/default.nix41
-rw-r--r--pkgs/applications/audio/mi2ly/default.upstream3
-rw-r--r--pkgs/applications/audio/ncspot/default.nix6
-rw-r--r--pkgs/applications/audio/non/default.nix14
-rw-r--r--pkgs/applications/audio/ocenaudio/default.nix4
-rw-r--r--pkgs/applications/audio/pamix/default.nix16
-rw-r--r--pkgs/applications/audio/rofi-pulse-select/default.nix40
-rw-r--r--pkgs/applications/audio/spotifyd/default.nix6
-rw-r--r--pkgs/applications/audio/transcribe/default.nix63
-rw-r--r--pkgs/applications/blockchains/dogecoin/default.nix4
-rw-r--r--pkgs/applications/blockchains/ledger-live-desktop/default.nix4
-rw-r--r--pkgs/applications/blockchains/polkadot/default.nix6
-rw-r--r--pkgs/applications/editors/android-studio/common.nix2
-rw-r--r--pkgs/applications/editors/android-studio/default.nix12
-rw-r--r--pkgs/applications/editors/code-browser/default.nix51
-rw-r--r--pkgs/applications/editors/cudatext/default.nix6
-rw-r--r--pkgs/applications/editors/cudatext/deps.json12
-rwxr-xr-xpkgs/applications/editors/cudatext/update.sh23
-rw-r--r--pkgs/applications/editors/eclipse/build-eclipse.nix5
-rw-r--r--pkgs/applications/editors/eclipse/default.nix30
-rw-r--r--pkgs/applications/editors/eclipse/plugins.nix4
-rw-r--r--pkgs/applications/editors/emacs/27.nix1
-rw-r--r--pkgs/applications/editors/emacs/generic.nix10
-rw-r--r--pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd-26.patch14
-rw-r--r--pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd.patch11
-rw-r--r--pkgs/applications/editors/gobby/default.nix2
-rw-r--r--pkgs/applications/editors/jetbrains/common.nix3
-rw-r--r--pkgs/applications/editors/jetbrains/default.nix33
-rw-r--r--pkgs/applications/editors/kakoune/default.nix1
-rw-r--r--pkgs/applications/editors/lite-xl/default.nix4
-rw-r--r--pkgs/applications/editors/nano/default.nix4
-rw-r--r--pkgs/applications/editors/okteta/default.nix4
-rw-r--r--pkgs/applications/editors/sigil/default.nix4
-rw-r--r--pkgs/applications/editors/spacevim/default.nix4
-rw-r--r--pkgs/applications/editors/standardnotes/default.nix17
-rw-r--r--pkgs/applications/editors/vim/common.nix4
-rw-r--r--pkgs/applications/editors/vscode/vscode.nix12
-rw-r--r--pkgs/applications/editors/vscode/vscodium.nix10
-rw-r--r--pkgs/applications/graphics/avocode/default.nix4
-rw-r--r--pkgs/applications/graphics/digikam/default.nix6
-rw-r--r--pkgs/applications/graphics/drawio/default.nix4
-rw-r--r--pkgs/applications/graphics/f3d/default.nix4
-rw-r--r--pkgs/applications/graphics/hdr-plus/default.nix22
-rw-r--r--pkgs/applications/graphics/hydrus/default.nix4
-rw-r--r--pkgs/applications/graphics/icon-library/default.nix31
-rw-r--r--pkgs/applications/graphics/imv/default.nix11
-rw-r--r--pkgs/applications/graphics/megapixels/default.nix4
-rw-r--r--pkgs/applications/graphics/sane/backends/brscan5/default.nix8
-rw-r--r--pkgs/applications/graphics/symbolic-preview/default.nix31
-rw-r--r--pkgs/applications/kde/akonadi/default.nix7
-rw-r--r--pkgs/applications/kde/bovo.nix2
-rw-r--r--pkgs/applications/kde/fetch.sh2
-rw-r--r--pkgs/applications/kde/k3b.nix2
-rw-r--r--pkgs/applications/kde/kitinerary.nix12
-rw-r--r--pkgs/applications/kde/krfb.nix15
-rw-r--r--pkgs/applications/kde/picmi.nix13
-rw-r--r--pkgs/applications/kde/srcs.nix1840
-rw-r--r--pkgs/applications/misc/anytype/default.nix4
-rw-r--r--pkgs/applications/misc/appeditor/default.nix4
-rw-r--r--pkgs/applications/misc/archivy/default.nix4
-rw-r--r--pkgs/applications/misc/bemenu/default.nix13
-rw-r--r--pkgs/applications/misc/binance/default.nix4
-rw-r--r--pkgs/applications/misc/clifm/default.nix15
-rw-r--r--pkgs/applications/misc/cobalt/default.nix6
-rw-r--r--pkgs/applications/misc/cointop/default.nix12
-rw-r--r--pkgs/applications/misc/cura/default.nix4
-rw-r--r--pkgs/applications/misc/cura/stable.nix21
-rw-r--r--pkgs/applications/misc/curaengine/default.nix4
-rw-r--r--pkgs/applications/misc/dbeaver/default.nix4
-rw-r--r--pkgs/applications/misc/dunst/default.nix4
-rw-r--r--pkgs/applications/misc/golden-cheetah/default.nix4
-rw-r--r--pkgs/applications/misc/gremlin-console/default.nix4
-rw-r--r--pkgs/applications/misc/grip/default.nix4
-rw-r--r--pkgs/applications/misc/heimer/default.nix4
-rw-r--r--pkgs/applications/misc/index-fm/default.nix2
-rw-r--r--pkgs/applications/misc/logseq/default.nix4
-rw-r--r--pkgs/applications/misc/masterpdfeditor/default.nix4
-rw-r--r--pkgs/applications/misc/openring/default.nix8
-rw-r--r--pkgs/applications/misc/pdfsam-basic/default.nix4
-rw-r--r--pkgs/applications/misc/pdfstudio/default.nix91
-rw-r--r--pkgs/applications/misc/prusa-slicer/super-slicer.nix5
-rw-r--r--pkgs/applications/misc/remarkable/remarkable-mouse/default.nix4
-rw-r--r--pkgs/applications/misc/skate/default.nix6
-rw-r--r--pkgs/applications/misc/spicetify-cli/default.nix4
-rw-r--r--pkgs/applications/misc/spotify-tray/default.nix25
-rw-r--r--pkgs/applications/misc/ttyper/default.nix8
-rw-r--r--pkgs/applications/misc/upwork/default.nix6
-rw-r--r--pkgs/applications/misc/visidata/default.nix4
-rw-r--r--pkgs/applications/misc/worker/default.nix4
-rw-r--r--pkgs/applications/misc/xastir/default.nix12
-rw-r--r--pkgs/applications/networking/appgate-sdp/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/brave/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/chromium/browser.nix1
-rw-r--r--pkgs/applications/networking/browsers/chromium/upstream-info.json34
-rw-r--r--pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix786
-rw-r--r--pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix786
-rw-r--r--pkgs/applications/networking/browsers/firefox-bin/release_sources.nix786
-rw-r--r--pkgs/applications/networking/browsers/firefox/packages.nix8
-rw-r--r--pkgs/applications/networking/browsers/opera/default.nix11
-rw-r--r--pkgs/applications/networking/browsers/palemoon/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/argocd/default.nix8
-rw-r--r--pkgs/applications/networking/cluster/fluxcd/default.nix8
-rw-r--r--pkgs/applications/networking/cluster/istioctl/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/k9s/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/kbst/default.nix40
-rw-r--r--pkgs/applications/networking/cluster/kn/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/kubecolor/default.nix23
-rw-r--r--pkgs/applications/networking/cluster/nerdctl/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/nomad/1.0.nix4
-rw-r--r--pkgs/applications/networking/cluster/nomad/1.1.nix6
-rw-r--r--pkgs/applications/networking/cluster/pgo-client/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/rancher/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/terraform-providers/providers.json6
-rw-r--r--pkgs/applications/networking/cluster/terraform/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/tilt/default.nix4
-rw-r--r--pkgs/applications/networking/dnscontrol/default.nix6
-rw-r--r--pkgs/applications/networking/flexget/default.nix4
-rw-r--r--pkgs/applications/networking/gopher/sacc/default.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/alfaview/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix33
-rw-r--r--pkgs/applications/networking/instant-messengers/deltachat-desktop/package.json16
-rwxr-xr-xpkgs/applications/networking/instant-messengers/deltachat-desktop/update.sh6
-rw-r--r--pkgs/applications/networking/instant-messengers/ferdi/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_args_common1
-rw-r--r--pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_patches1
-rw-r--r--pkgs/applications/networking/instant-messengers/jami/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/jami/pjproject-src.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/nheko/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/psi-plus/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/session-desktop-appimage/default.nix10
-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/torchat/default.nix2
-rw-r--r--pkgs/applications/networking/ipfs/default.nix4
-rw-r--r--pkgs/applications/networking/irc/quassel/default.nix2
-rw-r--r--pkgs/applications/networking/jmeter/default.nix4
-rw-r--r--pkgs/applications/networking/mailreaders/mblaze/default.nix4
-rw-r--r--pkgs/applications/networking/mailreaders/mutt/default.nix4
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix151
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix522
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird/packages.nix4
-rw-r--r--pkgs/applications/networking/nextcloud-client/default.nix4
-rw-r--r--pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix4
-rw-r--r--pkgs/applications/networking/powerdns-admin/default.nix23
-rw-r--r--pkgs/applications/networking/powerdns-admin/package.json2
-rw-r--r--pkgs/applications/networking/powerdns-admin/yarndeps.nix16
-rw-r--r--pkgs/applications/networking/remote/nice-dcv-client/default.nix25
-rw-r--r--pkgs/applications/networking/remote/teamviewer/default.nix4
-rw-r--r--pkgs/applications/networking/remote/waypipe/default.nix6
-rw-r--r--pkgs/applications/networking/remote/wayvnc/default.nix4
-rw-r--r--pkgs/applications/networking/shellhub-agent/default.nix6
-rw-r--r--pkgs/applications/networking/syncplay/default.nix2
-rw-r--r--pkgs/applications/office/calligra/default.nix2
-rw-r--r--pkgs/applications/office/notes-up/default.nix46
-rw-r--r--pkgs/applications/office/qownnotes/default.nix4
-rw-r--r--pkgs/applications/office/todoman/default.nix4
-rw-r--r--pkgs/applications/office/trilium/default.nix19
-rw-r--r--pkgs/applications/office/zanshin/default.nix30
-rw-r--r--pkgs/applications/office/zk/default.nix4
-rw-r--r--pkgs/applications/radio/gqrx/default.nix6
-rw-r--r--pkgs/applications/science/astronomy/astrolog/default.nix44
-rw-r--r--pkgs/applications/science/biology/subread/default.nix40
-rw-r--r--pkgs/applications/science/logic/ekrhyper/default.nix40
-rw-r--r--pkgs/applications/science/logic/ekrhyper/default.upstream3
-rw-r--r--pkgs/applications/science/logic/elan/0001-dynamically-patchelf-binaries.patch6
-rw-r--r--pkgs/applications/science/logic/elan/default.nix4
-rw-r--r--pkgs/applications/science/logic/potassco/clingcon.nix24
-rw-r--r--pkgs/applications/science/math/mathematica/l10ns.nix53
-rw-r--r--pkgs/applications/science/math/mxnet/default.nix33
-rw-r--r--pkgs/applications/science/math/qalculate-gtk/default.nix4
-rw-r--r--pkgs/applications/science/misc/boinc/default.nix17
-rw-r--r--pkgs/applications/science/programming/scyther/cli.nix29
-rw-r--r--pkgs/applications/science/programming/scyther/default.nix80
-rw-r--r--pkgs/applications/science/robotics/mavproxy/default.nix4
-rw-r--r--pkgs/applications/terminal-emulators/contour/default.nix3
-rw-r--r--pkgs/applications/version-management/git-and-tools/delta/default.nix6
-rw-r--r--pkgs/applications/version-management/git-and-tools/gh/default.nix6
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-credential-1password/default.nix23
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-delete-merged-branches/default.nix2
-rw-r--r--pkgs/applications/version-management/git-and-tools/glitter/default.nix6
-rw-r--r--pkgs/applications/version-management/git-and-tools/radicle-upstream/default.nix6
-rw-r--r--pkgs/applications/version-management/gitkraken/default.nix6
-rw-r--r--pkgs/applications/video/kodi/addons/a4ksubtitles/default.nix (renamed from pkgs/applications/video/kodi-packages/a4ksubtitles/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/addon-update-script/default.nix (renamed from pkgs/applications/video/kodi-packages/addon-update-script/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/archive_tool/default.nix (renamed from pkgs/applications/video/kodi-packages/archive_tool/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/certifi/default.nix (renamed from pkgs/applications/video/kodi-packages/certifi/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/chardet/default.nix (renamed from pkgs/applications/video/kodi-packages/chardet/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/controllers/default.nix (renamed from pkgs/applications/video/kodi-packages/controllers/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/dateutil/default.nix (renamed from pkgs/applications/video/kodi-packages/dateutil/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/defusedxml/default.nix (renamed from pkgs/applications/video/kodi-packages/defusedxml/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/iagl/default.nix (renamed from pkgs/applications/video/kodi-packages/iagl/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/idna/default.nix (renamed from pkgs/applications/video/kodi-packages/idna/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/inputstream-adaptive/default.nix (renamed from pkgs/applications/video/kodi-packages/inputstream-adaptive/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/inputstream-ffmpegdirect/default.nix (renamed from pkgs/applications/video/kodi-packages/inputstream-ffmpegdirect/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/inputstream-rtmp/default.nix (renamed from pkgs/applications/video/kodi-packages/inputstream-rtmp/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/inputstreamhelper/default.nix (renamed from pkgs/applications/video/kodi-packages/inputstreamhelper/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/jellyfin/default.nix (renamed from pkgs/applications/video/kodi-packages/jellyfin/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/joystick/default.nix (renamed from pkgs/applications/video/kodi-packages/joystick/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/keymap/default.nix (renamed from pkgs/applications/video/kodi-packages/keymap/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/kodi-platform/default.nix (renamed from pkgs/applications/video/kodi-packages/kodi-platform/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/kodi-six/default.nix (renamed from pkgs/applications/video/kodi-packages/kodi-six/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/libretro-genplus/default.nix (renamed from pkgs/applications/video/kodi-packages/libretro-genplus/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/libretro-mgba/default.nix (renamed from pkgs/applications/video/kodi-packages/libretro-mgba/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/libretro-snes9x/default.nix (renamed from pkgs/applications/video/kodi-packages/libretro-snes9x/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/libretro/default.nix (renamed from pkgs/applications/video/kodi-packages/libretro/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/myconnpy/default.nix (renamed from pkgs/applications/video/kodi-packages/myconnpy/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/netflix/default.nix (renamed from pkgs/applications/video/kodi-packages/netflix/default.nix)4
-rw-r--r--pkgs/applications/video/kodi/addons/osmc-skin/default.nix (renamed from pkgs/applications/video/kodi-packages/osmc-skin/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/pdfreader/default.nix (renamed from pkgs/applications/video/kodi-packages/pdfreader/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/pvr-hdhomerun/default.nix (renamed from pkgs/applications/video/kodi-packages/pvr-hdhomerun/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/pvr-hts/default.nix (renamed from pkgs/applications/video/kodi-packages/pvr-hts/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/pvr-iptvsimple/default.nix (renamed from pkgs/applications/video/kodi-packages/pvr-iptvsimple/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/requests-cache/default.nix (renamed from pkgs/applications/video/kodi-packages/requests-cache/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/requests/default.nix (renamed from pkgs/applications/video/kodi-packages/requests/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/routing/default.nix (renamed from pkgs/applications/video/kodi-packages/routing/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/signals/default.nix (renamed from pkgs/applications/video/kodi-packages/signals/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/six/default.nix (renamed from pkgs/applications/video/kodi-packages/six/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/steam-controller/default.nix (renamed from pkgs/applications/video/kodi-packages/steam-controller/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/steam-launcher/default.nix (renamed from pkgs/applications/video/kodi-packages/steam-launcher/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/steam-library/default.nix (renamed from pkgs/applications/video/kodi-packages/steam-library/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/svtplay/default.nix (renamed from pkgs/applications/video/kodi-packages/svtplay/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/urllib3/default.nix (renamed from pkgs/applications/video/kodi-packages/urllib3/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/vfs-libarchive/default.nix (renamed from pkgs/applications/video/kodi-packages/vfs-libarchive/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/vfs-sftp/default.nix (renamed from pkgs/applications/video/kodi-packages/vfs-sftp/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/websocket/default.nix (renamed from pkgs/applications/video/kodi-packages/websocket/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/youtube/default.nix (renamed from pkgs/applications/video/kodi-packages/youtube/default.nix)0
-rw-r--r--pkgs/applications/video/qmplay2/default.nix4
-rw-r--r--pkgs/applications/video/vlc/default.nix12
-rw-r--r--pkgs/applications/virtualization/buildkit-nix/default.nix27
-rw-r--r--pkgs/applications/virtualization/cloud-hypervisor/default.nix6
-rw-r--r--pkgs/applications/virtualization/docker-slim/default.nix4
-rw-r--r--pkgs/applications/virtualization/lima/default.nix6
-rw-r--r--pkgs/applications/window-managers/phosh/default.nix4
-rw-r--r--pkgs/build-support/build-dotnet-module/default.nix41
-rw-r--r--pkgs/build-support/docker/default.nix2
-rw-r--r--pkgs/build-support/docker/examples.nix23
-rw-r--r--pkgs/build-support/emacs/generic.nix2
-rw-r--r--pkgs/build-support/emacs/melpa2nix.el3
-rw-r--r--pkgs/build-support/setup-hooks/make-binary-wrapper.sh13
-rw-r--r--pkgs/build-support/vm/default.nix4
-rw-r--r--pkgs/build-support/writers/aliases.nix35
-rw-r--r--pkgs/build-support/writers/default.nix43
-rw-r--r--pkgs/build-support/writers/test.nix31
-rw-r--r--pkgs/data/documentation/s6-man-pages/default.nix4
-rw-r--r--pkgs/data/fonts/unfonts-core/default.nix28
-rw-r--r--pkgs/data/icons/luna-icons/default.nix4
-rw-r--r--pkgs/data/misc/hackage/pin.json8
-rw-r--r--pkgs/data/misc/v2ray-domain-list-community/default.nix4
-rw-r--r--pkgs/data/misc/v2ray-geoip/default.nix6
-rw-r--r--pkgs/data/themes/flat-remix-gtk/default.nix4
-rw-r--r--pkgs/data/themes/marwaita/default.nix4
-rw-r--r--pkgs/desktops/cinnamon/xreader/default.nix4
-rw-r--r--pkgs/desktops/gnome/core/epiphany/default.nix16
-rw-r--r--pkgs/desktops/gnome/core/gnome-desktop/default.nix2
-rw-r--r--pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix4
-rw-r--r--pkgs/desktops/gnome/extensions/extensions.json99
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-code/default.nix7
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-dock/default.nix10
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-videos/default.nix8
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix2
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix2
-rw-r--r--pkgs/desktops/pantheon/artwork/elementary-redacted-script/default.nix23
-rw-r--r--pkgs/desktops/pantheon/default.nix55
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix8
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix4
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel/default.nix16
-rw-r--r--pkgs/desktops/pantheon/services/xdg-desktop-portal-pantheon/default.nix (renamed from pkgs/development/libraries/xdg-desktop-portal-pantheon/default.nix)6
-rw-r--r--pkgs/desktops/pantheon/third-party/pantheon-tweaks/default.nix (renamed from pkgs/applications/system/pantheon-tweaks/default.nix)0
-rw-r--r--pkgs/desktops/pantheon/third-party/pantheon-tweaks/fix-paths.patch (renamed from pkgs/applications/system/pantheon-tweaks/fix-paths.patch)0
-rw-r--r--pkgs/desktops/pantheon/third-party/wingpanel-indicator-ayatana/default.nix55
-rw-r--r--pkgs/desktops/pantheon/third-party/wingpanel-indicator-ayatana/fix-libapplication-dir.patch13
-rw-r--r--pkgs/desktops/plasma-5/3rdparty/lightly/default.nix46
-rw-r--r--pkgs/desktops/plasma-5/default.nix1
-rw-r--r--pkgs/desktops/plasma-5/fetch.sh2
-rw-r--r--pkgs/desktops/plasma-5/srcs.nix424
-rw-r--r--pkgs/desktops/xfce/core/exo/default.nix4
-rw-r--r--pkgs/development/beam-modules/hex/default.nix4
-rw-r--r--pkgs/development/compilers/ciao/default.nix1
-rw-r--r--pkgs/development/compilers/copper/default.nix5
-rw-r--r--pkgs/development/compilers/dotnet/build-dotnet.nix18
-rw-r--r--pkgs/development/compilers/ecl/16.1.2.nix66
-rw-r--r--pkgs/development/compilers/ecl/default.nix60
-rw-r--r--pkgs/development/compilers/ecl/default.upstream2
-rw-r--r--pkgs/development/compilers/flutter/default.nix8
-rw-r--r--pkgs/development/compilers/flutter/patches/move-cache.patch53
-rw-r--r--pkgs/development/compilers/gleam/default.nix6
-rw-r--r--pkgs/development/compilers/idris2/default.nix2
-rw-r--r--pkgs/development/compilers/julia/1.6-bin.nix4
-rw-r--r--pkgs/development/compilers/kotlin/default.nix4
-rw-r--r--pkgs/development/compilers/kotlin/native.nix8
-rw-r--r--pkgs/development/compilers/ldc/generic.nix2
-rw-r--r--pkgs/development/compilers/nextpnr/default.nix12
-rw-r--r--pkgs/development/compilers/nim/default.nix4
-rw-r--r--pkgs/development/compilers/open-watcom/v2.nix11
-rw-r--r--pkgs/development/compilers/open-watcom/wrapper.nix2
-rw-r--r--pkgs/development/compilers/vlang/default.nix10
-rw-r--r--pkgs/development/compilers/yosys/default.nix6
-rw-r--r--pkgs/development/coq-modules/category-theory/default.nix4
-rw-r--r--pkgs/development/coq-modules/paco/default.nix3
-rw-r--r--pkgs/development/embedded/fpga/trellis/default.nix11
-rw-r--r--pkgs/development/embedded/platformio/core.nix24
-rw-r--r--pkgs/development/embedded/platformio/default.nix4
-rw-r--r--pkgs/development/embedded/platformio/use-local-spdx-license-list.patch2
-rw-r--r--pkgs/development/haskell-modules/configuration-common.nix78
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix1
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix21
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml5
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml4
-rw-r--r--pkgs/development/haskell-modules/configuration-nix.nix9
-rw-r--r--pkgs/development/haskell-modules/hackage-packages.nix190
-rw-r--r--pkgs/development/interpreters/alda/default.nix33
-rw-r--r--pkgs/development/interpreters/bqn/cbqn/default.nix10
-rw-r--r--pkgs/development/interpreters/bqn/dzaima-bqn/default.nix1
-rw-r--r--pkgs/development/interpreters/bqn/mlochbaum-bqn/default.nix6
-rw-r--r--pkgs/development/interpreters/ngn-k/default.nix15
-rw-r--r--pkgs/development/interpreters/ngn-k/repl-license-path.patch18
-rw-r--r--pkgs/development/interpreters/php/8.1.nix51
-rw-r--r--pkgs/development/interpreters/php/fix-tokenizer-php81.patch12
-rw-r--r--pkgs/development/interpreters/php/generic.nix1
-rw-r--r--pkgs/development/interpreters/python/default.nix9
-rw-r--r--pkgs/development/interpreters/python/rustpython/default.nix44
-rw-r--r--pkgs/development/interpreters/python/tests.nix10
-rw-r--r--pkgs/development/libraries/SDL_image/default.nix3
-rw-r--r--pkgs/development/libraries/SDL_mixer/default.nix3
-rw-r--r--pkgs/development/libraries/SDL_net/default.nix3
-rw-r--r--pkgs/development/libraries/amdvlk/default.nix26
-rw-r--r--pkgs/development/libraries/aspell/dictionaries.nix6
-rw-r--r--pkgs/development/libraries/assimp/default.nix7
-rw-r--r--pkgs/development/libraries/audio/suil/default.nix2
-rw-r--r--pkgs/development/libraries/coeurl/default.nix4
-rw-r--r--pkgs/development/libraries/crypto++/default.nix19
-rw-r--r--pkgs/development/libraries/draco/default.nix32
-rw-r--r--pkgs/development/libraries/fcft/default.nix6
-rw-r--r--pkgs/development/libraries/grpc/default.nix4
-rw-r--r--pkgs/development/libraries/gsl/default.nix2
-rw-r--r--pkgs/development/libraries/gtdialog/default.nix45
-rw-r--r--pkgs/development/libraries/gtdialog/default.upstream3
-rw-r--r--pkgs/development/libraries/gtk/2.x.nix6
-rw-r--r--pkgs/development/libraries/libdevil/default.nix2
-rw-r--r--pkgs/development/libraries/libe-book/default.nix56
-rw-r--r--pkgs/development/libraries/libe-book/default.upstream4
-rw-r--r--pkgs/development/libraries/libff/default.nix5
-rw-r--r--pkgs/development/libraries/libinfinity/default.nix2
-rw-r--r--pkgs/development/libraries/liblastfm/default.nix2
-rw-r--r--pkgs/development/libraries/libmwaw/default.nix43
-rw-r--r--pkgs/development/libraries/libmwaw/default.upstream4
-rw-r--r--pkgs/development/libraries/libnest2d/default.nix2
-rw-r--r--pkgs/development/libraries/libodfgen/default.nix44
-rw-r--r--pkgs/development/libraries/libodfgen/default.upstream4
-rw-r--r--pkgs/development/libraries/libosmium/default.nix8
-rw-r--r--pkgs/development/libraries/librevenge/default.nix40
-rw-r--r--pkgs/development/libraries/librevenge/default.upstream4
-rw-r--r--pkgs/development/libraries/librime/default.nix16
-rw-r--r--pkgs/development/libraries/libspatialaudio/default.nix25
-rw-r--r--pkgs/development/libraries/libtorrent-rasterbar/1.1.nix2
-rw-r--r--pkgs/development/libraries/libtorrent-rasterbar/1.2.nix2
-rw-r--r--pkgs/development/libraries/libtorrent-rasterbar/default.nix2
-rw-r--r--pkgs/development/libraries/libtoxcore/default.nix4
-rw-r--r--pkgs/development/libraries/libvdpau/default.nix2
-rw-r--r--pkgs/development/libraries/libxmlxx/default.nix2
-rw-r--r--pkgs/development/libraries/mpich/default.nix4
-rw-r--r--pkgs/development/libraries/mtxclient/default.nix4
-rw-r--r--pkgs/development/libraries/openssl/default.nix4
-rw-r--r--pkgs/development/libraries/physics/cernlib/default.nix43
-rw-r--r--pkgs/development/libraries/physics/geant4/datasets.nix30
-rw-r--r--pkgs/development/libraries/physics/geant4/default.nix18
-rw-r--r--pkgs/development/libraries/pipewire/default.nix25
-rw-r--r--pkgs/development/libraries/qt-4.x/4.8/default.nix2
-rw-r--r--pkgs/development/libraries/qt-5/5.12/default.nix4
-rw-r--r--pkgs/development/libraries/qt-5/5.14/default.nix3
-rw-r--r--pkgs/development/libraries/qt-5/5.15/default.nix4
-rw-r--r--pkgs/development/libraries/qt-5/modules/qtgamepad.nix5
-rw-r--r--pkgs/development/libraries/qtutilities/default.nix4
-rw-r--r--pkgs/development/libraries/science/math/primecount/default.nix25
-rw-r--r--pkgs/development/libraries/simdjson/default.nix4
-rw-r--r--pkgs/development/libraries/spglib/default.nix4
-rw-r--r--pkgs/development/libraries/tdlib/default.nix8
-rw-r--r--pkgs/development/libraries/tkrzw/default.nix4
-rw-r--r--pkgs/development/libraries/tsocks/default.nix2
-rw-r--r--pkgs/development/libraries/uhttpmock/default.nix6
-rw-r--r--pkgs/development/libraries/umockdev/default.nix4
-rw-r--r--pkgs/development/libraries/ustr/default.nix2
-rw-r--r--pkgs/development/libraries/webkitgtk/default.nix4
-rw-r--r--pkgs/development/lisp-modules/asdf/2.26.nix34
-rw-r--r--pkgs/development/lisp-modules/asdf/3.1.nix36
-rw-r--r--pkgs/development/lisp-modules/asdf/default.nix37
-rw-r--r--pkgs/development/lisp-modules/asdf/default.upstream2
-rw-r--r--pkgs/development/nim-packages/build-nim-package/default.nix2
-rw-r--r--pkgs/development/nim-packages/python/default.nix25
-rw-r--r--pkgs/development/nim-packages/spry/default.nix6
-rw-r--r--pkgs/development/nim-packages/spry/python.patch43
-rw-r--r--pkgs/development/node-packages/default.nix15
-rw-r--r--pkgs/development/node-packages/node-packages.nix4175
-rw-r--r--pkgs/development/ocaml-modules/containers/default.nix8
-rw-r--r--pkgs/development/ocaml-modules/iter/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/mdx/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/mirage/runtime.nix4
-rw-r--r--pkgs/development/ocaml-modules/parany/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/sha/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/wayland/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/yaml/default.nix6
-rw-r--r--pkgs/development/php-packages/psysh/default.nix4
-rw-r--r--pkgs/development/python-modules/adafruit-platformdetect/default.nix4
-rw-r--r--pkgs/development/python-modules/adal/default.nix2
-rw-r--r--pkgs/development/python-modules/aiohue/default.nix4
-rw-r--r--pkgs/development/python-modules/aiosenz/default.nix42
-rw-r--r--pkgs/development/python-modules/aiostream/default.nix4
-rw-r--r--pkgs/development/python-modules/aubio/default.nix4
-rw-r--r--pkgs/development/python-modules/automate-home/default.nix56
-rw-r--r--pkgs/development/python-modules/bids-validator/default.nix4
-rw-r--r--pkgs/development/python-modules/blspy/default.nix17
-rw-r--r--pkgs/development/python-modules/blspy/dont_fetch_dependencies.patch14
-rw-r--r--pkgs/development/python-modules/boschshcpy/default.nix4
-rw-r--r--pkgs/development/python-modules/brelpy/default.nix38
-rw-r--r--pkgs/development/python-modules/bx-python/default.nix4
-rw-r--r--pkgs/development/python-modules/capstone/default.nix2
-rw-r--r--pkgs/development/python-modules/casbin/default.nix4
-rw-r--r--pkgs/development/python-modules/cement/default.nix21
-rw-r--r--pkgs/development/python-modules/cyclonedx-python-lib/default.nix4
-rw-r--r--pkgs/development/python-modules/cysignals/default.nix7
-rw-r--r--pkgs/development/python-modules/dask-image/default.nix4
-rw-r--r--pkgs/development/python-modules/deezer-py/default.nix4
-rw-r--r--pkgs/development/python-modules/django-ipware/default.nix4
-rw-r--r--pkgs/development/python-modules/django-jinja2/default.nix4
-rw-r--r--pkgs/development/python-modules/django-prometheus/default.nix2
-rw-r--r--pkgs/development/python-modules/elasticsearch/default.nix4
-rw-r--r--pkgs/development/python-modules/esprima/default.nix40
-rw-r--r--pkgs/development/python-modules/fastcore/default.nix40
-rw-r--r--pkgs/development/python-modules/filelock/3.2.nix6
-rw-r--r--pkgs/development/python-modules/flask-appbuilder/default.nix4
-rw-r--r--pkgs/development/python-modules/flask-session/default.nix27
-rw-r--r--pkgs/development/python-modules/flux-led/default.nix4
-rw-r--r--pkgs/development/python-modules/gehomesdk/default.nix50
-rw-r--r--pkgs/development/python-modules/gekitchen/default.nix53
-rw-r--r--pkgs/development/python-modules/ghapi/default.nix42
-rw-r--r--pkgs/development/python-modules/ghrepo-stats/default.nix41
-rw-r--r--pkgs/development/python-modules/goodwe/default.nix4
-rw-r--r--pkgs/development/python-modules/google-nest-sdm/default.nix4
-rw-r--r--pkgs/development/python-modules/goveelights/default.nix37
-rw-r--r--pkgs/development/python-modules/grpcio-tools/default.nix4
-rw-r--r--pkgs/development/python-modules/hjson/default.nix5
-rw-r--r--pkgs/development/python-modules/holoviews/default.nix4
-rw-r--r--pkgs/development/python-modules/ipfshttpclient/default.nix12
-rw-r--r--pkgs/development/python-modules/jc/default.nix4
-rw-r--r--pkgs/development/python-modules/jellyfin-apiclient-python/default.nix4
-rw-r--r--pkgs/development/python-modules/levenshtein/default.nix5
-rw-r--r--pkgs/development/python-modules/libarcus/default.nix4
-rw-r--r--pkgs/development/python-modules/libsavitar/default.nix4
-rw-r--r--pkgs/development/python-modules/lightwave2/default.nix4
-rw-r--r--pkgs/development/python-modules/linkify-it-py/default.nix4
-rw-r--r--pkgs/development/python-modules/losant-rest/default.nix47
-rw-r--r--pkgs/development/python-modules/lupupy/default.nix4
-rw-r--r--pkgs/development/python-modules/manimpango/default.nix4
-rw-r--r--pkgs/development/python-modules/meross-iot/default.nix46
-rw-r--r--pkgs/development/python-modules/mistletoe/default.nix4
-rw-r--r--pkgs/development/python-modules/monkeyhex/default.nix4
-rw-r--r--pkgs/development/python-modules/myfitnesspal/default.nix4
-rw-r--r--pkgs/development/python-modules/neo4j-driver/default.nix39
-rw-r--r--pkgs/development/python-modules/nltk/default.nix4
-rw-r--r--pkgs/development/python-modules/obfsproxy/default.nix2
-rw-r--r--pkgs/development/python-modules/omnikinverter/default.nix59
-rw-r--r--pkgs/development/python-modules/open-meteo/default.nix4
-rw-r--r--pkgs/development/python-modules/pdftotext/default.nix11
-rw-r--r--pkgs/development/python-modules/pint/default.nix8
-rw-r--r--pkgs/development/python-modules/platformdirs/2.nix43
-rw-r--r--pkgs/development/python-modules/protobuf/default.nix30
-rw-r--r--pkgs/development/python-modules/proxy-py/default.nix63
-rw-r--r--pkgs/development/python-modules/proxy_tools/default.nix25
-rw-r--r--pkgs/development/python-modules/pubnub/default.nix4
-rw-r--r--pkgs/development/python-modules/pychromecast/default.nix4
-rw-r--r--pkgs/development/python-modules/pyduke-energy/default.nix51
-rw-r--r--pkgs/development/python-modules/pykeyatome/default.nix4
-rw-r--r--pkgs/development/python-modules/pylast/default.nix19
-rw-r--r--pkgs/development/python-modules/pymavlink/default.nix4
-rw-r--r--pkgs/development/python-modules/pympler/default.nix4
-rw-r--r--pkgs/development/python-modules/pynest2d/default.nix4
-rw-r--r--pkgs/development/python-modules/pypandoc/default.nix4
-rw-r--r--pkgs/development/python-modules/pyscf/default.nix3
-rw-r--r--pkgs/development/python-modules/pysmappee/default.nix4
-rw-r--r--pkgs/development/python-modules/pytaglib/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-httpserver/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-json-report/default.nix49
-rw-r--r--pkgs/development/python-modules/python-vipaccess/default.nix4
-rw-r--r--pkgs/development/python-modules/pyweatherflowrest/default.nix44
-rw-r--r--pkgs/development/python-modules/pywebview/default.nix8
-rw-r--r--pkgs/development/python-modules/pywizlight/default.nix8
-rw-r--r--pkgs/development/python-modules/quantum-gateway/default.nix48
-rw-r--r--pkgs/development/python-modules/rapidfuzz/default.nix4
-rw-r--r--pkgs/development/python-modules/ring-doorbell/default.nix4
-rw-r--r--pkgs/development/python-modules/robotframework/default.nix4
-rw-r--r--pkgs/development/python-modules/scp/default.nix4
-rw-r--r--pkgs/development/python-modules/sendgrid/default.nix12
-rw-r--r--pkgs/development/python-modules/sentry-sdk/default.nix4
-rw-r--r--pkgs/development/python-modules/snowflake-sqlalchemy/default.nix4
-rw-r--r--pkgs/development/python-modules/solax/default.nix4
-rw-r--r--pkgs/development/python-modules/somajo/default.nix4
-rw-r--r--pkgs/development/python-modules/sphinxext-opengraph/default.nix11
-rw-r--r--pkgs/development/python-modules/sqlalchemy-mixins/default.nix45
-rw-r--r--pkgs/development/python-modules/sslyze/default.nix83
-rw-r--r--pkgs/development/python-modules/stem/default.nix2
-rw-r--r--pkgs/development/python-modules/striprtf/default.nix4
-rw-r--r--pkgs/development/python-modules/subarulink/default.nix13
-rw-r--r--pkgs/development/python-modules/tableaudocumentapi/default.nix4
-rw-r--r--pkgs/development/python-modules/tailscale/default.nix4
-rw-r--r--pkgs/development/python-modules/tensorflow/default.nix33
-rw-r--r--pkgs/development/python-modules/tensorflow/system-protobuf.patch13
-rw-r--r--pkgs/development/python-modules/tokenizers/default.nix6
-rw-r--r--pkgs/development/python-modules/torchvision/default.nix4
-rw-r--r--pkgs/development/python-modules/trezor/default.nix13
-rw-r--r--pkgs/development/python-modules/twilio/default.nix5
-rw-r--r--pkgs/development/python-modules/twitterapi/default.nix4
-rw-r--r--pkgs/development/python-modules/types-requests/default.nix4
-rw-r--r--pkgs/development/python-modules/uranium/default.nix4
-rw-r--r--pkgs/development/python-modules/vehicle/default.nix4
-rw-r--r--pkgs/development/python-modules/virtualenv/default.nix3
-rw-r--r--pkgs/development/python-modules/vpk/default.nix28
-rw-r--r--pkgs/development/python-modules/yalexs/default.nix13
-rw-r--r--pkgs/development/quickemu/default.nix29
-rw-r--r--pkgs/development/quickemu/efi_vars_ensure_writable.patch13
-rw-r--r--pkgs/development/quickemu/input_overrides.patch28
-rw-r--r--pkgs/development/tools/analysis/checkov/default.nix4
-rw-r--r--pkgs/development/tools/analysis/include-what-you-use/default.nix4
-rw-r--r--pkgs/development/tools/analysis/radare2/default.nix4
-rw-r--r--pkgs/development/tools/analysis/tflint/default.nix4
-rw-r--r--pkgs/development/tools/bazelisk/default.nix6
-rw-r--r--pkgs/development/tools/build-managers/bazel/README.md7
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_0_29/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_1/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_3/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_4/actions_path.patch41
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_4/default.nix108
-rw-r--r--pkgs/development/tools/build-managers/bazel/buildtools/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/bazel/cpp-test.nix2
-rw-r--r--pkgs/development/tools/build-managers/bazel/java-test.nix2
-rw-r--r--pkgs/development/tools/build-managers/bazel/protobuf-test.nix2
-rw-r--r--pkgs/development/tools/build-managers/conan/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/gn/default.nix58
-rw-r--r--pkgs/development/tools/build-managers/gn/generic.nix60
-rw-r--r--pkgs/development/tools/build-managers/gn/rev1924.nix8
-rw-r--r--pkgs/development/tools/build-managers/gradle/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/meson/0.57/allow-dirs-outside-of-prefix.patch (renamed from pkgs/development/tools/build-managers/meson/allow-dirs-outside-of-prefix.patch)0
-rw-r--r--pkgs/development/tools/build-managers/meson/0.57/boost-Do-not-add-system-paths-on-nix.patch (renamed from pkgs/development/tools/build-managers/meson/boost-Do-not-add-system-paths-on-nix.patch)0
-rw-r--r--pkgs/development/tools/build-managers/meson/0.57/clear-old-rpath.patch (renamed from pkgs/development/tools/build-managers/meson/clear-old-rpath.patch)0
-rw-r--r--pkgs/development/tools/build-managers/meson/0.57/default.nix (renamed from pkgs/development/tools/build-managers/meson/default.nix)1
-rw-r--r--pkgs/development/tools/build-managers/meson/0.57/fix-rpath.patch (renamed from pkgs/development/tools/build-managers/meson/fix-rpath.patch)0
-rw-r--r--pkgs/development/tools/build-managers/meson/0.57/gir-fallback-path.patch (renamed from pkgs/development/tools/build-managers/meson/gir-fallback-path.patch)0
-rw-r--r--pkgs/development/tools/build-managers/meson/0.57/more-env-vars.patch (renamed from pkgs/development/tools/build-managers/meson/more-env-vars.patch)0
-rw-r--r--pkgs/development/tools/build-managers/meson/0.57/setup-hook.sh (renamed from pkgs/development/tools/build-managers/meson/setup-hook.sh)0
-rw-r--r--pkgs/development/tools/build-managers/meson/0.60/allow-dirs-outside-of-prefix.patch19
-rw-r--r--pkgs/development/tools/build-managers/meson/0.60/boost-Do-not-add-system-paths-on-nix.patch21
-rw-r--r--pkgs/development/tools/build-managers/meson/0.60/clear-old-rpath.patch20
-rw-r--r--pkgs/development/tools/build-managers/meson/0.60/default.nix109
-rw-r--r--pkgs/development/tools/build-managers/meson/0.60/fix-rpath.patch24
-rw-r--r--pkgs/development/tools/build-managers/meson/0.60/gir-fallback-path.patch21
-rw-r--r--pkgs/development/tools/build-managers/meson/0.60/more-env-vars.patch12
-rw-r--r--pkgs/development/tools/build-managers/meson/0.60/setup-hook.sh37
-rw-r--r--pkgs/development/tools/build-managers/sbt/default.nix4
-rw-r--r--pkgs/development/tools/compass/Gemfile.lock12
-rw-r--r--pkgs/development/tools/compass/gemset.nix20
-rw-r--r--pkgs/development/tools/continuous-integration/github-runner/default.nix16
-rw-r--r--pkgs/development/tools/continuous-integration/jenkins/default.nix4
-rw-r--r--pkgs/development/tools/database/prisma-engines/default.nix6
-rw-r--r--pkgs/development/tools/doctl/default.nix4
-rw-r--r--pkgs/development/tools/gojsontoyaml/default.nix6
-rw-r--r--pkgs/development/tools/gosec/default.nix6
-rw-r--r--pkgs/development/tools/hjson-go/default.nix22
-rw-r--r--pkgs/development/tools/java/cfr/default.nix4
-rw-r--r--pkgs/development/tools/just/default.nix12
-rw-r--r--pkgs/development/tools/krankerl/default.nix6
-rw-r--r--pkgs/development/tools/kubie/default.nix6
-rw-r--r--pkgs/development/tools/misc/cl-launch/default.nix34
-rw-r--r--pkgs/development/tools/misc/cl-launch/default.upstream2
-rw-r--r--pkgs/development/tools/misc/kibana/6.x.nix8
-rw-r--r--pkgs/development/tools/misc/kibana/7.x.nix10
-rw-r--r--pkgs/development/tools/misc/lttng-ust/2.12.nix4
-rw-r--r--pkgs/development/tools/misc/lttng-ust/default.nix44
-rw-r--r--pkgs/development/tools/misc/lttng-ust/generic.nix44
-rw-r--r--pkgs/development/tools/misc/tcptrack/default.nix18
-rw-r--r--pkgs/development/tools/mold/default.nix4
-rw-r--r--pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix12
-rw-r--r--pkgs/development/tools/ocaml/js_of_ocaml/ppx.nix3
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/default.nix37
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-bibtex.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c-sharp.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-cmake.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-commonlisp.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-cuda.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-devicetree.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-dockerfile.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-elixir.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-elm.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-erlang.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-fortran.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-gdscript.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-glimmer.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-glsl.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-go.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-godot-resource.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-gomod.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-graphql.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-heex.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-hjson.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-http.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-json5.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-kotlin.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ledger.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-llvm.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-make.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-nix.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-norg.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-perl.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-pioasm.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-prisma.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-pug.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-query.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-r.json11
-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-scss.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-sparql.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-supercollider.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-surface.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-tlaplus.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-turtle.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-vue.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-yang.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-zig.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/update.nix201
-rw-r--r--pkgs/development/tools/rust/cargo-make/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-udeps/default.nix6
-rw-r--r--pkgs/development/tools/rust/rust-analyzer/default.nix9
-rw-r--r--pkgs/development/tools/rust/rust-analyzer/no-1-57-map-while.patch20
-rwxr-xr-xpkgs/development/tools/rust/rust-analyzer/update.sh42
-rw-r--r--pkgs/development/tools/rust/rust-script/default.nix6
-rw-r--r--pkgs/development/tools/scalafmt/default.nix4
-rw-r--r--pkgs/development/tools/slimerjs/default.nix43
-rw-r--r--pkgs/development/tools/slimerjs/default.upstream2
-rw-r--r--pkgs/development/tools/slimerjs/default.upstream.git3
-rw-r--r--pkgs/development/tools/treefmt/default.nix6
-rw-r--r--pkgs/development/tools/vultr-cli/default.nix4
-rw-r--r--pkgs/development/tools/yq-go/default.nix6
-rw-r--r--pkgs/development/web/cypress/default.nix4
-rw-r--r--pkgs/development/web/deno/default.nix10
-rw-r--r--pkgs/development/web/insomnia/default.nix9
-rw-r--r--pkgs/development/web/nodejs/v12.nix4
-rw-r--r--pkgs/development/web/nodejs/v17.nix4
-rw-r--r--pkgs/development/web/twitter-bootstrap/default.nix4
-rw-r--r--pkgs/games/cataclysm-dda/stable.nix6
-rw-r--r--pkgs/games/cdogs-sdl/default.nix1
-rw-r--r--pkgs/games/endgame-singularity/default.nix9
-rw-r--r--pkgs/games/fishfight/default.nix23
-rw-r--r--pkgs/games/fishfight/use-system-sdl2.patch39
-rw-r--r--pkgs/games/gnonograms/default.nix6
-rw-r--r--pkgs/games/gnuchess/default.nix35
-rw-r--r--pkgs/games/gnuchess/default.upstream1
-rw-r--r--pkgs/games/gotypist/default.nix2
-rw-r--r--pkgs/games/quakespasm/default.nix4
-rw-r--r--pkgs/games/quakespasm/vulkan.nix4
-rw-r--r--pkgs/games/quantumminigolf/default.nix44
-rw-r--r--pkgs/games/quantumminigolf/default.upstream4
-rw-r--r--pkgs/games/shticker-book-unwritten/default.nix7
-rw-r--r--pkgs/games/spring/default.nix2
-rw-r--r--pkgs/games/spring/springlobby.nix2
-rw-r--r--pkgs/games/starsector/default.nix4
-rw-r--r--pkgs/games/xboard/default.nix74
-rw-r--r--pkgs/games/xboard/default.upstream1
-rw-r--r--pkgs/misc/arm-trusted-firmware/default.nix4
-rw-r--r--pkgs/misc/cups/drivers/mfcj470dwcupswrapper/default.nix16
-rw-r--r--pkgs/misc/cups/drivers/mfcl2740dwcupswrapper/default.nix2
-rw-r--r--pkgs/misc/cups/drivers/mfcl2740dwlpr/default.nix2
-rw-r--r--pkgs/misc/emulators/ares/default.nix84
-rw-r--r--pkgs/misc/emulators/ares/fix-ruby.patch27
-rw-r--r--pkgs/misc/emulators/duckstation/default.nix55
-rw-r--r--pkgs/misc/emulators/mednaffe/default.nix12
-rw-r--r--pkgs/misc/emulators/mgba/default.nix8
-rw-r--r--pkgs/misc/emulators/wine/sources.nix12
-rw-r--r--pkgs/misc/logging/beats/6.x.nix2
-rw-r--r--pkgs/misc/logging/beats/7.x.nix24
-rw-r--r--pkgs/misc/openrussian-cli/default.nix6
-rw-r--r--pkgs/misc/vim-plugins/deprecated.json2
-rw-r--r--pkgs/misc/vim-plugins/generated.nix790
-rw-r--r--pkgs/misc/vim-plugins/overrides.nix7
-rw-r--r--pkgs/misc/vim-plugins/vim-plugin-names14
-rw-r--r--pkgs/misc/vscode-extensions/default.nix44
-rw-r--r--pkgs/misc/vscode-extensions/rust-analyzer/default.nix23
-rw-r--r--pkgs/misc/vscode-extensions/terraform/default.nix4
-rw-r--r--pkgs/misc/vscode-extensions/terraform/fix-terraform-ls.patch4
-rw-r--r--pkgs/os-specific/linux/apparmor/default.nix2
-rw-r--r--pkgs/os-specific/linux/asus-ec-sensors/default.nix34
-rw-r--r--pkgs/os-specific/linux/broadcom-sta/default.nix2
-rw-r--r--pkgs/os-specific/linux/conspy/default.nix44
-rw-r--r--pkgs/os-specific/linux/conspy/default.upstream5
-rw-r--r--pkgs/os-specific/linux/cpustat/default.nix15
-rw-r--r--pkgs/os-specific/linux/eventstat/default.nix26
-rw-r--r--pkgs/os-specific/linux/firmware/sof-firmware/default.nix4
-rw-r--r--pkgs/os-specific/linux/forkstat/default.nix27
-rw-r--r--pkgs/os-specific/linux/forktty/default.nix39
-rw-r--r--pkgs/os-specific/linux/forktty/default.upstream2
-rw-r--r--pkgs/os-specific/linux/fscrypt/default.nix6
-rw-r--r--pkgs/os-specific/linux/greetd/default.nix6
-rw-r--r--pkgs/os-specific/linux/health-check/default.nix15
-rw-r--r--pkgs/os-specific/linux/hostapd/default.nix2
-rw-r--r--pkgs/os-specific/linux/kernel/hardened/patches.json50
-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.15.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-5.4.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-zen.nix4
-rw-r--r--pkgs/os-specific/linux/libsepol/default.nix2
-rw-r--r--pkgs/os-specific/linux/liquidtux/default.nix33
-rw-r--r--pkgs/os-specific/linux/nvidia-x11/default.nix16
-rw-r--r--pkgs/os-specific/linux/power-calibrate/default.nix15
-rw-r--r--pkgs/os-specific/linux/powerstat/default.nix25
-rw-r--r--pkgs/os-specific/linux/sgx/psw/default.nix6
-rw-r--r--pkgs/os-specific/linux/sgx/sdk/default.nix53
-rw-r--r--pkgs/os-specific/linux/sgx/sdk/ipp-crypto.nix22
-rw-r--r--pkgs/os-specific/linux/sgx/sdk/samples.nix8
-rw-r--r--pkgs/os-specific/linux/smemstat/default.nix34
-rw-r--r--pkgs/os-specific/linux/sssd/default.nix18
-rw-r--r--pkgs/os-specific/linux/sysdig/default.nix50
-rw-r--r--pkgs/os-specific/linux/zfs/default.nix20
-rw-r--r--pkgs/servers/calibre-web/default.nix20
-rw-r--r--pkgs/servers/dns/knot-dns/default.nix12
-rw-r--r--pkgs/servers/home-assistant/component-packages.nix4
-rw-r--r--pkgs/servers/home-assistant/default.nix4
-rw-r--r--pkgs/servers/home-assistant/frontend.nix4
-rw-r--r--pkgs/servers/http/apache-modules/mod_itk/default.nix39
-rw-r--r--pkgs/servers/http/envoy/default.nix14
-rw-r--r--pkgs/servers/http/pomerium/default.nix67
-rw-r--r--pkgs/servers/jetbrains/youtrack.nix10
-rw-r--r--pkgs/servers/klipper/default.nix6
-rw-r--r--pkgs/servers/matrix-synapse/0001-setup-add-homeserver-as-console-script.patch33
-rw-r--r--pkgs/servers/matrix-synapse/0002-Expose-generic-worker-as-binary-under-NixOS.patch43
-rw-r--r--pkgs/servers/matrix-synapse/default.nix9
-rw-r--r--pkgs/servers/matrix-synapse/tools/rust-synapse-compress-state.nix16
-rw-r--r--pkgs/servers/mattermost/default.nix6
-rw-r--r--pkgs/servers/mautrix-whatsapp/default.nix6
-rw-r--r--pkgs/servers/mediatomb/default.nix2
-rw-r--r--pkgs/servers/miniflux/default.nix8
-rw-r--r--pkgs/servers/monitoring/grafana/default.nix10
-rw-r--r--pkgs/servers/monitoring/prometheus/fastly-exporter.nix6
-rw-r--r--pkgs/servers/monitoring/prometheus/mikrotik-exporter.nix8
-rw-r--r--pkgs/servers/monitoring/zabbix/agent.nix1
-rw-r--r--pkgs/servers/monitoring/zabbix/agent2.nix1
-rw-r--r--pkgs/servers/monitoring/zabbix/proxy.nix1
-rw-r--r--pkgs/servers/monitoring/zabbix/server.nix1
-rw-r--r--pkgs/servers/nitter/default.nix1
-rw-r--r--pkgs/servers/nosql/influxdb2/cli.nix33
-rw-r--r--pkgs/servers/nosql/influxdb2/combined.nix12
-rw-r--r--pkgs/servers/nosql/influxdb2/default.nix63
-rw-r--r--pkgs/servers/nosql/influxdb2/influx-ui-package.json201
-rw-r--r--pkgs/servers/nosql/influxdb2/influx-ui-yarndeps.nix13389
-rwxr-xr-xpkgs/servers/nosql/influxdb2/update-influxdb2.sh17
-rw-r--r--pkgs/servers/openafs/1.8/default.nix39
-rw-r--r--pkgs/servers/openafs/1.8/module.nix36
-rw-r--r--pkgs/servers/openafs/1.8/srcs.nix12
-rw-r--r--pkgs/servers/plex/raw.nix6
-rw-r--r--pkgs/servers/polipo/default.nix2
-rw-r--r--pkgs/servers/search/elasticsearch/6.x.nix4
-rw-r--r--pkgs/servers/search/elasticsearch/7.x.nix6
-rw-r--r--pkgs/servers/search/elasticsearch/plugins.nix44
-rw-r--r--pkgs/servers/shairport-sync/default.nix4
-rw-r--r--pkgs/servers/soft-serve/default.nix6
-rw-r--r--pkgs/servers/sql/mssql/jdbc/jtds.nix27
-rw-r--r--pkgs/servers/tailscale/default.nix4
-rw-r--r--pkgs/servers/tautulli/default.nix4
-rw-r--r--pkgs/servers/traefik/default.nix6
-rw-r--r--pkgs/servers/unifi/default.nix22
-rw-r--r--pkgs/servers/web-apps/hedgedoc/package.json38
-rw-r--r--pkgs/servers/web-apps/hedgedoc/pin.json6
-rw-r--r--pkgs/servers/web-apps/hedgedoc/yarn.lock2601
-rw-r--r--pkgs/servers/web-apps/mediawiki/default.nix4
-rw-r--r--pkgs/servers/web-apps/whitebophir/node-packages-generated.nix961
-rw-r--r--pkgs/servers/web-apps/whitebophir/node-packages.json2
-rw-r--r--pkgs/servers/web-apps/wiki-js/default.nix4
-rw-r--r--pkgs/servers/x11/xorg/overrides.nix19
-rw-r--r--pkgs/shells/zsh/oh-my-zsh/default.nix6
-rw-r--r--pkgs/shells/zsh/zinit/default.nix2
-rw-r--r--pkgs/test/default.nix6
-rw-r--r--pkgs/test/make-binary-wrapper/chdir.c2
-rw-r--r--pkgs/test/make-binary-wrapper/chdir.cmdline2
-rw-r--r--pkgs/test/make-binary-wrapper/chdir.env2
-rw-r--r--pkgs/test/make-binary-wrapper/default.nix4
-rw-r--r--pkgs/tools/admin/aliyun-cli/default.nix12
-rw-r--r--pkgs/tools/admin/exoscale-cli/default.nix4
-rw-r--r--pkgs/tools/admin/procs/default.nix8
-rw-r--r--pkgs/tools/admin/tightvnc/default.nix4
-rw-r--r--pkgs/tools/archivers/zpaq/default.upstream6
-rw-r--r--pkgs/tools/archivers/zpaq/zpaqd.nix20
-rw-r--r--pkgs/tools/archivers/zpaq/zpaqd.upstream5
-rw-r--r--pkgs/tools/audio/abcmidi/default.nix4
-rw-r--r--pkgs/tools/audio/beets/bash-completion-always-print.patch29
-rw-r--r--pkgs/tools/audio/beets/convert-plugin-ffmpeg-path.patch65
-rw-r--r--pkgs/tools/audio/beets/default.nix58
-rw-r--r--pkgs/tools/audio/beets/imagemagick-nix-path.patch20
-rw-r--r--pkgs/tools/audio/beets/keyfinder-default-bin.patch26
-rw-r--r--pkgs/tools/audio/beets/replaygain-default-ffmpeg.patch14
-rw-r--r--pkgs/tools/filesystems/apfsprogs/default.nix10
-rw-r--r--pkgs/tools/filesystems/mp3fs/default.nix42
-rw-r--r--pkgs/tools/filesystems/mp3fs/fix-statfs-operation.patch39
-rw-r--r--pkgs/tools/graphics/aaphoto/default.nix12
-rw-r--r--pkgs/tools/graphics/goverlay/default.nix6
-rw-r--r--pkgs/tools/graphics/goverlay/find-xdg-data-files.patch10
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-libpinyin/default.nix4
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-libthai/default.nix4
-rw-r--r--pkgs/tools/misc/atuin/default.nix24
-rw-r--r--pkgs/tools/misc/birdfont/default.nix4
-rw-r--r--pkgs/tools/misc/diffoscope/default.nix4
-rw-r--r--pkgs/tools/misc/dpt-rp1-py/default.nix4
-rw-r--r--pkgs/tools/misc/esphome/default.nix4
-rw-r--r--pkgs/tools/misc/fbcat/default.nix23
-rw-r--r--pkgs/tools/misc/fbmark/default.nix23
-rw-r--r--pkgs/tools/misc/fdupes/default.nix8
-rw-r--r--pkgs/tools/misc/flameshot/default.nix7
-rw-r--r--pkgs/tools/misc/fortune/default.nix4
-rw-r--r--pkgs/tools/misc/gotify-cli/default.nix8
-rw-r--r--pkgs/tools/misc/graylog/default.nix4
-rw-r--r--pkgs/tools/misc/ksnip/default.nix4
-rw-r--r--pkgs/tools/misc/logstash/6.x.nix4
-rw-r--r--pkgs/tools/misc/logstash/7.x.nix12
-rw-r--r--pkgs/tools/misc/mktorrent/default.nix4
-rw-r--r--pkgs/tools/misc/nncp/default.nix34
-rw-r--r--pkgs/tools/misc/opencbm/default.nix52
-rw-r--r--pkgs/tools/misc/plantuml/default.nix4
-rw-r--r--pkgs/tools/misc/sfeed/default.nix15
-rw-r--r--pkgs/tools/misc/smenu/default.nix4
-rw-r--r--pkgs/tools/misc/topgrade/default.nix6
-rw-r--r--pkgs/tools/misc/youtube-dl/default.nix6
-rw-r--r--pkgs/tools/misc/ytarchive/default.nix24
-rw-r--r--pkgs/tools/misc/zellij/default.nix6
-rw-r--r--pkgs/tools/networking/badvpn/default.nix42
-rw-r--r--pkgs/tools/networking/badvpn/default.upstream3
-rw-r--r--pkgs/tools/networking/bgpq3/default.nix4
-rw-r--r--pkgs/tools/networking/checkip/default.nix4
-rw-r--r--pkgs/tools/networking/dhcp/default.nix3
-rw-r--r--pkgs/tools/networking/dhcpcd/default.nix34
-rw-r--r--pkgs/tools/networking/dnsperf/default.nix4
-rw-r--r--pkgs/tools/networking/dnsproxy/default.nix4
-rw-r--r--pkgs/tools/networking/driftnet/default.nix4
-rw-r--r--pkgs/tools/networking/driftnet/fix-darwin-build.patch61
-rw-r--r--pkgs/tools/networking/driftnet/libwebsockets-4.3.0.patch12
-rw-r--r--pkgs/tools/networking/flannel/default.nix23
-rw-r--r--pkgs/tools/networking/godspeed/default.nix34
-rw-r--r--pkgs/tools/networking/gping/default.nix8
-rw-r--r--pkgs/tools/networking/httplz/default.nix6
-rw-r--r--pkgs/tools/networking/hurl/default.nix6
-rw-r--r--pkgs/tools/networking/kapp/default.nix4
-rw-r--r--pkgs/tools/networking/kea/default.nix4
-rw-r--r--pkgs/tools/networking/mailsend/default.nix36
-rw-r--r--pkgs/tools/networking/mailsend/default.upstream3
-rw-r--r--pkgs/tools/networking/mqttui/default.nix29
-rw-r--r--pkgs/tools/networking/networkmanager/applet/default.nix2
-rw-r--r--pkgs/tools/networking/networkmanager/default.nix2
-rw-r--r--pkgs/tools/networking/ngrok-2/default.nix3
-rw-r--r--pkgs/tools/networking/oapi-codegen/default.nix6
-rw-r--r--pkgs/tools/networking/obfs4/default.nix2
-rw-r--r--pkgs/tools/networking/p2p/amule/default.nix2
-rw-r--r--pkgs/tools/networking/privoxy/default.nix2
-rw-r--r--pkgs/tools/networking/swagger-codegen3/default.nix4
-rw-r--r--pkgs/tools/networking/tcpreplay/default.nix2
-rw-r--r--pkgs/tools/networking/v2ray/default.nix38
-rwxr-xr-xpkgs/tools/networking/v2ray/update.sh26
-rw-r--r--pkgs/tools/package-management/cargo-release/default.nix6
-rw-r--r--pkgs/tools/package-management/libdnf/default.nix4
-rw-r--r--pkgs/tools/package-management/nix-eval-jobs/default.nix4
-rw-r--r--pkgs/tools/package-management/nix/default.nix50
-rw-r--r--pkgs/tools/security/bitwarden/default.nix4
-rw-r--r--pkgs/tools/security/clamav/default.nix2
-rw-r--r--pkgs/tools/security/exploitdb/default.nix4
-rw-r--r--pkgs/tools/security/fprot/default.nix2
-rw-r--r--pkgs/tools/security/ghdorker/default.nix35
-rw-r--r--pkgs/tools/security/gitleaks/default.nix15
-rw-r--r--pkgs/tools/security/gomapenum/default.nix29
-rw-r--r--pkgs/tools/security/gosh/default.nix2
-rw-r--r--pkgs/tools/security/gpg-tui/default.nix6
-rw-r--r--pkgs/tools/security/grype/default.nix6
-rw-r--r--pkgs/tools/security/kubescape/default.nix6
-rw-r--r--pkgs/tools/security/lmp/default.nix25
-rw-r--r--pkgs/tools/security/log4j-detect/default.nix38
-rw-r--r--pkgs/tools/security/log4j-scan/default.nix44
-rw-r--r--pkgs/tools/security/log4j-sniffer/default.nix36
-rw-r--r--pkgs/tools/security/log4j-vuln-scanner/default.nix30
-rw-r--r--pkgs/tools/security/log4jcheck/default.nix34
-rw-r--r--pkgs/tools/security/log4shell-detector/default.nix40
-rw-r--r--pkgs/tools/security/logmap/default.nix34
-rw-r--r--pkgs/tools/security/metasploit/Gemfile2
-rw-r--r--pkgs/tools/security/metasploit/Gemfile.lock54
-rw-r--r--pkgs/tools/security/metasploit/default.nix4
-rw-r--r--pkgs/tools/security/metasploit/gemset.nix58
-rw-r--r--pkgs/tools/security/onioncircuits/default.nix2
-rw-r--r--pkgs/tools/security/polkit-gnome/default.nix2
-rw-r--r--pkgs/tools/security/sammler/default.nix2
-rw-r--r--pkgs/tools/security/snowcrash/default.nix2
-rw-r--r--pkgs/tools/security/swtpm/default.nix25
-rw-r--r--pkgs/tools/security/tor/default.nix6
-rw-r--r--pkgs/tools/security/tor/torsocks.nix2
-rw-r--r--pkgs/tools/system/btop/default.nix4
-rw-r--r--pkgs/tools/system/lshw/default.nix2
-rw-r--r--pkgs/tools/system/stress-ng/default.nix18
-rw-r--r--pkgs/tools/text/poedit/default.nix4
-rw-r--r--pkgs/tools/typesetting/asciidoctor-with-extensions/Gemfile11
-rw-r--r--pkgs/tools/typesetting/asciidoctor-with-extensions/Gemfile.lock131
-rw-r--r--pkgs/tools/typesetting/asciidoctor-with-extensions/default.nix29
-rw-r--r--pkgs/tools/typesetting/asciidoctor-with-extensions/gemset.nix538
-rw-r--r--pkgs/tools/typesetting/asciidoctor/Gemfile4
-rw-r--r--pkgs/tools/typesetting/asciidoctor/Gemfile.lock45
-rw-r--r--pkgs/tools/typesetting/asciidoctor/default.nix53
-rw-r--r--pkgs/tools/typesetting/asciidoctor/gemset.nix194
-rw-r--r--pkgs/tools/typesetting/htmldoc/default.nix4
-rw-r--r--pkgs/tools/typesetting/pdftk/default.nix6
-rw-r--r--pkgs/tools/wayland/wayland-proxy-virtwl/default.nix14
-rw-r--r--pkgs/top-level/aliases.nix2
-rw-r--r--pkgs/top-level/all-packages.nix201
-rw-r--r--pkgs/top-level/impure.nix27
-rw-r--r--pkgs/top-level/kodi-packages.nix104
-rw-r--r--pkgs/top-level/linux-kernels.nix4
-rw-r--r--pkgs/top-level/nim-packages.nix2
-rw-r--r--pkgs/top-level/perl-packages.nix48
-rw-r--r--pkgs/top-level/php-packages.nix12
-rw-r--r--pkgs/top-level/python-packages.nix48
-rw-r--r--pkgs/top-level/python2-packages.nix2
-rw-r--r--pkgs/top-level/release-haskell.nix3
1087 files changed, 17809 insertions, 25358 deletions
diff --git a/.github/workflows/editorconfig.yml b/.github/workflows/editorconfig.yml
index 445f0fcbaf8..28e20d6c945 100644
--- a/.github/workflows/editorconfig.yml
+++ b/.github/workflows/editorconfig.yml
@@ -31,7 +31,8 @@ jobs:
     - uses: cachix/install-nix-action@v16
       with:
         # nixpkgs commit is pinned so that it doesn't break
-        nix_path: nixpkgs=https://github.com/NixOS/nixpkgs/archive/f93ecc4f6bc60414d8b73dbdf615ceb6a2c604df.tar.gz
+        # editorconfig-checker 2.4.0
+        nix_path: nixpkgs=https://github.com/NixOS/nixpkgs/archive/c473cc8714710179df205b153f4e9fa007107ff9.tar.gz
     - name: install editorconfig-checker
       run: nix-env -iA editorconfig-checker -f '<nixpkgs>'
     - name: Checking EditorConfig
diff --git a/doc/builders/packages/linux.section.md b/doc/builders/packages/linux.section.md
index d8f0d0ad445..f669c720710 100644
--- a/doc/builders/packages/linux.section.md
+++ b/doc/builders/packages/linux.section.md
@@ -29,7 +29,7 @@ How to add a new (major) version of the Linux kernel to Nixpkgs:
     4.  If needed you can also run `make menuconfig`:
 
         ```ShellSession
-        $ nix-env -i ncurses
+        $ nix-env -f "<nixpkgs>" -iA ncurses
         $ export NIX_CFLAGS_LINK=-lncurses
         $ make menuconfig ARCH=arch
         ```
diff --git a/doc/contributing/submitting-changes.chapter.md b/doc/contributing/submitting-changes.chapter.md
index 221ba300619..ca3532ea83d 100644
--- a/doc/contributing/submitting-changes.chapter.md
+++ b/doc/contributing/submitting-changes.chapter.md
@@ -43,13 +43,13 @@
   - nixpkgs:
 
     - update pkg
-      - `nix-env -i pkg-name -f <path to your local nixpkgs folder>`
+      - `nix-env -iA pkg-attribute-name -f <path to your local nixpkgs folder>`
     - add pkg
       - Make sure it’s in `pkgs/top-level/all-packages.nix`
-      - `nix-env -i pkg-name -f <path to your local nixpkgs folder>`
+      - `nix-env -iA pkg-attribute-name -f <path to your local nixpkgs folder>`
     - _If you don’t want to install pkg in you profile_.
-      - `nix-build -A pkg-attribute-name <path to your local nixpkgs folder>/default.nix` and check results in the folder `result`. It will appear in the same directory where you did `nix-build`.
-    - If you did `nix-env -i pkg-name` you can do `nix-env -e pkg-name` to uninstall it from your system.
+      - `nix-build -A pkg-attribute-name <path to your local nixpkgs folder>` and check results in the folder `result`. It will appear in the same directory where you did `nix-build`.
+    - If you installed your package with `nix-env`, you can run `nix-env -e pkg-name` where `pkg-name` is as reported by `nix-env -q` to uninstall it from your system.
 
   - NixOS and its modules:
     - You can add new module to your NixOS configuration file (usually it’s `/etc/nixos/configuration.nix`). And do `sudo nixos-rebuild test -I nixpkgs=<path to your local nixpkgs folder> --fast`.
diff --git a/doc/languages-frameworks/dotnet.section.md b/doc/languages-frameworks/dotnet.section.md
index 94d97a970db..159347008e8 100644
--- a/doc/languages-frameworks/dotnet.section.md
+++ b/doc/languages-frameworks/dotnet.section.md
@@ -72,7 +72,7 @@ The `dotnetCorePackages.sdk` contains both a runtime and the full sdk of a given
 To package Dotnet applications, you can use `buildDotnetModule`. This has similar arguments to `stdenv.mkDerivation`, with the following additions:
 
 * `projectFile` has to be used for specifying the dotnet project file relative to the source root. These usually have `.sln` or `.csproj` file extensions. This can be an array of multiple projects as well.
-* `nugetDeps` has to be used to specify the NuGet dependency file. Unfortunately, these cannot be deterministically fetched without a lockfile. This file should be generated using `nuget-to-nix` tool, which is available in nixpkgs.
+* `nugetDeps` has to be used to specify the NuGet dependency file. Unfortunately, these cannot be deterministically fetched without a lockfile. A script to fetch these is available as `passthru.fetch-deps`. This file can also be generated manually using `nuget-to-nix` tool, which is available in nixpkgs.
 * `packNupkg` is used to pack project as a `nupkg`, and installs it to `$out/share`. If set to `true`, the derivation can be used as a dependency for another dotnet project by adding it to `projectReferences`.
 * `projectReferences` can be used to resolve `ProjectReference` project items. Referenced projects can be packed with `buildDotnetModule` by setting the `packNupkg = true` attribute and passing a list of derivations to `projectReferences`. Since we are sharing referenced projects as NuGets they must be added to csproj/fsproj files as `PackageReference` as well.
  For example, your project has a local dependency:
@@ -99,6 +99,8 @@ To package Dotnet applications, you can use `buildDotnetModule`. This has simila
 * `dotnetPackFlags` can be used to pass flags to `dotnet pack`. Used only if `packNupkg` is set to `true`.
 * `dotnetFlags` can be used to pass flags to all of the above phases.
 
+When packaging a new application, you need to fetch it's dependencies. You can set `nugetDeps` to an empty string to make the derivation temporarily evaluate, and then run `nix-build -A package.passthru.fetch-deps` to generate it's dependency fetching script. After running the script, you should have the location of the generated lockfile printed to the console. This can be copied to a stable directory. Note that if either `projectFile` or `nugetDeps` are unset, this script cannot be generated!
+
 Here is an example `default.nix`, using some of the previously discussed arguments:
 ```nix
 { lib, buildDotnetModule, dotnetCorePackages, ffmpeg }:
@@ -112,7 +114,8 @@ in buildDotnetModule rec {
   src = ./.;
 
   projectFile = "src/project.sln";
-  nugetDeps = ./deps.nix; # File generated with `nuget-to-nix path/to/src > deps.nix`.
+  nugetDeps = ./deps.nix; # File generated with `nix-build -A package.passthru.fetch-deps`.
+
   projectReferences = [ referencedProject ]; # `referencedProject` must contain `nupkg` in the folder structure.
 
   dotnet-sdk = dotnetCorePackages.sdk_3_1;
diff --git a/doc/languages-frameworks/emscripten.section.md b/doc/languages-frameworks/emscripten.section.md
index b3ddf0cedae..c96f689c4c0 100644
--- a/doc/languages-frameworks/emscripten.section.md
+++ b/doc/languages-frameworks/emscripten.section.md
@@ -15,12 +15,12 @@ Modes of use of `emscripten`:
 
    If you want to work with `emcc`, `emconfigure` and `emmake` as you are used to from Ubuntu and similar distributions you can use these commands:
 
-    * `nix-env -i emscripten`
+    * `nix-env -f "<nixpkgs>" -iA emscripten`
     * `nix-shell -p emscripten`
 
 * **Declarative usage**:
 
-    This mode is far more power full since this makes use of `nix` for dependency management of emscripten libraries and targets by using the `mkDerivation` which is implemented by `pkgs.emscriptenStdenv` and `pkgs.buildEmscriptenPackage`. The source for the packages is in `pkgs/top-level/emscripten-packages.nix` and the abstraction behind it in `pkgs/development/em-modules/generic/default.nix`.
+    This mode is far more power full since this makes use of `nix` for dependency management of emscripten libraries and targets by using the `mkDerivation` which is implemented by `pkgs.emscriptenStdenv` and `pkgs.buildEmscriptenPackage`. The source for the packages is in `pkgs/top-level/emscripten-packages.nix` and the abstraction behind it in `pkgs/development/em-modules/generic/default.nix`. From the root of the nixpkgs repository:
     * build and install all packages:
         * `nix-env -iA emscriptenPackages`
 
diff --git a/doc/languages-frameworks/gnome.section.md b/doc/languages-frameworks/gnome.section.md
index 11b49f4f235..29cb2e0e464 100644
--- a/doc/languages-frameworks/gnome.section.md
+++ b/doc/languages-frameworks/gnome.section.md
@@ -92,7 +92,7 @@ For convenience, it also adds `dconf.lib` for a GIO module implementing a GSetti
 
 - []{#ssec-gnome-hooks-glib} `glib` setup hook will populate `GSETTINGS_SCHEMAS_PATH` and then `wrapGAppsHook` will prepend it to `XDG_DATA_DIRS`.
 
-- []{#ssec-gnome-hooks-gdk-pixbuf} `gdk-pixbuf` setup hook will populate `GDK_PIXBUF_MODULE_FILE` with the path to biggest `loaders.cache` file from the dependencies containing [GdkPixbuf loaders](ssec-gnome-gdk-pixbuf-loaders). This works fine when there are only two packages containing loaders (`gdk-pixbuf` and e.g. `librsvg`) – it will choose the second one, reasonably expecting that it will be bigger since it describes extra loader in addition to the default ones. But when there are more than two loader packages, this logic will break. One possible solution would be constructing a custom cache file for each package containing a program like `services/x11/gdk-pixbuf.nix` NixOS module does. `wrapGAppsHook` copies the `GDK_PIXBUF_MODULE_FILE` environment variable into the produced wrapper.
+- []{#ssec-gnome-hooks-gdk-pixbuf} `gdk-pixbuf` setup hook will populate `GDK_PIXBUF_MODULE_FILE` with the path to biggest `loaders.cache` file from the dependencies containing [GdkPixbuf loaders](#ssec-gnome-gdk-pixbuf-loaders). This works fine when there are only two packages containing loaders (`gdk-pixbuf` and e.g. `librsvg`) – it will choose the second one, reasonably expecting that it will be bigger since it describes extra loader in addition to the default ones. But when there are more than two loader packages, this logic will break. One possible solution would be constructing a custom cache file for each package containing a program like `services/x11/gdk-pixbuf.nix` NixOS module does. `wrapGAppsHook` copies the `GDK_PIXBUF_MODULE_FILE` environment variable into the produced wrapper.
 
 - []{#ssec-gnome-hooks-gtk-drop-icon-theme-cache} One of `gtk3`’s setup hooks will remove `icon-theme.cache` files from package’s icon theme directories to avoid conflicts. Icon theme packages should prevent this with `dontDropIconThemeCache = true;`.
 
diff --git a/doc/languages-frameworks/idris.section.md b/doc/languages-frameworks/idris.section.md
index ffdd706eb0b..19146844cff 100644
--- a/doc/languages-frameworks/idris.section.md
+++ b/doc/languages-frameworks/idris.section.md
@@ -5,10 +5,7 @@
 The easiest way to get a working idris version is to install the `idris` attribute:
 
 ```ShellSession
-$ # On NixOS
-$ nix-env -i nixos.idris
-$ # On non-NixOS
-$ nix-env -i nixpkgs.idris
+$ nix-env -f "<nixpkgs>" -iA idris
 ```
 
 This however only provides the `prelude` and `base` libraries. To install idris with additional libraries, you can use the `idrisPackages.with-packages` function, e.g. in an overlay in `~/.config/nixpkgs/overlays/my-idris.nix`:
diff --git a/doc/languages-frameworks/lua.section.md b/doc/languages-frameworks/lua.section.md
index 41fe0de04b4..17b80f07d3e 100644
--- a/doc/languages-frameworks/lua.section.md
+++ b/doc/languages-frameworks/lua.section.md
@@ -128,7 +128,7 @@ Let's present the luarocks way first and the manual one in a second time.
 
 ### Packaging a library on luarocks {#packaging-a-library-on-luarocks}
 
-[Luarocks.org](www.luarocks.org) is the main repository of lua packages.
+[Luarocks.org](https://luarocks.org/) is the main repository of lua packages.
 The site proposes two types of packages, the rockspec and the src.rock
 (equivalent of a [rockspec](https://github.com/luarocks/luarocks/wiki/Rockspec-format) but with the source).
 These packages can have different build types such as `cmake`, `builtin` etc .
diff --git a/doc/languages-frameworks/octave.section.md b/doc/languages-frameworks/octave.section.md
index ff872f4a755..4ad2cb0d5fb 100644
--- a/doc/languages-frameworks/octave.section.md
+++ b/doc/languages-frameworks/octave.section.md
@@ -24,18 +24,10 @@ You can test building an Octave package as follows:
 $ nix-build -A octavePackages.symbolic
 ```
 
-When building Octave packages with `nix-build`, the `buildOctavePackage` function adds `octave-octaveVersion` to; the start of the package's name attribute.
-
-This can be required when installing the package using `nix-env`:
-
-```ShellSession
-$ nix-env -i octave-6.2.0-symbolic
-```
-
-Although, you can also install it using the attribute name:
+To install it into your user profile, run this command from the root of the repository:
 
 ```ShellSession
-$ nix-env -i -A octavePackages.symbolic
+$ nix-env -f. -iA octavePackages.symbolic
 ```
 
 You can build Octave with packages by using the `withPackages` passed-through function.
diff --git a/doc/languages-frameworks/perl.section.md b/doc/languages-frameworks/perl.section.md
index c992b9d658b..9bfd209fec5 100644
--- a/doc/languages-frameworks/perl.section.md
+++ b/doc/languages-frameworks/perl.section.md
@@ -58,13 +58,7 @@ in `all-packages.nix`. You can test building a Perl package as follows:
 $ nix-build -A perlPackages.ClassC3
 ```
 
-`buildPerlPackage` adds `perl-` to the start of the name attribute, so the package above is actually called `perl-Class-C3-0.21`. So to install it, you can say:
-
-```ShellSession
-$ nix-env -i perl-Class-C3
-```
-
-(Of course you can also install using the attribute name: `nix-env -i -A perlPackages.ClassC3`.)
+To install it with `nix-env` instead: `nix-env -f. -iA perlPackages.ClassC3`.
 
 So what does `buildPerlPackage` do? It does the following:
 
@@ -135,9 +129,11 @@ This will remove the `-I` flags from the shebang line, rewrite them in the `use
 Nix expressions for Perl packages can be generated (almost) automatically from CPAN. This is done by the program `nix-generate-from-cpan`, which can be installed as follows:
 
 ```ShellSession
-$ nix-env -i nix-generate-from-cpan
+$ nix-env -f "<nixpkgs>" -iA nix-generate-from-cpan
 ```
 
+Substitute `<nixpkgs>` by the path of a nixpkgs clone to use the latest version.
+
 This program takes a Perl module name, looks it up on CPAN, fetches and unpacks the corresponding package, and prints a Nix expression on standard output. For example:
 
 ```ShellSession
diff --git a/doc/languages-frameworks/python.section.md b/doc/languages-frameworks/python.section.md
index 500f5fa41f3..4d70409a20c 100644
--- a/doc/languages-frameworks/python.section.md
+++ b/doc/languages-frameworks/python.section.md
@@ -995,18 +995,18 @@ called with `callPackage` and passed `python` or `pythonPackages` (possibly
 specifying an interpreter version), like this:
 
 ```nix
-{ lib, python3Packages }:
+{ lib, python3 }:
 
-python3Packages.buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "luigi";
   version = "2.7.9";
 
-  src = python3Packages.fetchPypi {
+  src = python3.pkgs.fetchPypi {
     inherit pname version;
     sha256 = "035w8gqql36zlan0xjrzz9j4lh9hs0qrsgnbyw07qs7lnkvbdv9x";
   };
 
-  propagatedBuildInputs = with python3Packages; [ tornado_4 python-daemon ];
+  propagatedBuildInputs = with python3.pkgs; [ tornado python-daemon ];
 
   meta = with lib; {
     ...
diff --git a/doc/languages-frameworks/rust.section.md b/doc/languages-frameworks/rust.section.md
index 7959685af6d..56faf636df1 100644
--- a/doc/languages-frameworks/rust.section.md
+++ b/doc/languages-frameworks/rust.section.md
@@ -293,7 +293,7 @@ Test flags, e.g., `--package foo`, can be passed to `cargo test` via the
 
 Another attribute, called `checkFlags`, is used to pass arguments to the test
 binary itself, as stated
-(here)[https://doc.rust-lang.org/cargo/commands/cargo-test.html].
+[here](https://doc.rust-lang.org/cargo/commands/cargo-test.html).
 
 #### Tests relying on the structure of the `target/` directory {#tests-relying-on-the-structure-of-the-target-directory}
 
diff --git a/doc/languages-frameworks/vim.section.md b/doc/languages-frameworks/vim.section.md
index cb5311fc95f..4ffd6736e23 100644
--- a/doc/languages-frameworks/vim.section.md
+++ b/doc/languages-frameworks/vim.section.md
@@ -309,9 +309,9 @@ Sample output2:
 
 ## Adding new plugins to nixpkgs {#adding-new-plugins-to-nixpkgs}
 
-Nix expressions for Vim plugins are stored in [pkgs/misc/vim-plugins](/pkgs/misc/vim-plugins). For the vast majority of plugins, Nix expressions are automatically generated by running [`./update.py`](/pkgs/misc/vim-plugins/update.py). This creates a [generated.nix](/pkgs/misc/vim-plugins/generated.nix) file based on the plugins listed in [vim-plugin-names](/pkgs/misc/vim-plugins/vim-plugin-names). Plugins are listed in alphabetical order in `vim-plugin-names` using the format `[github username]/[repository]@[gitref]`. For example https://github.com/scrooloose/nerdtree becomes `scrooloose/nerdtree`.
+Nix expressions for Vim plugins are stored in [pkgs/misc/vim-plugins](https://github.com/NixOS/nixpkgs/tree/master/pkgs/misc/vim-plugins). For the vast majority of plugins, Nix expressions are automatically generated by running [`./update.py`](https://github.com/NixOS/nixpkgs/blob/master/pkgs/misc/vim-plugins/update.py). This creates a [generated.nix](https://github.com/NixOS/nixpkgs/blob/master/pkgs/misc/vim-plugins/generated.nix) file based on the plugins listed in [vim-plugin-names](https://github.com/NixOS/nixpkgs/blob/master/pkgs/misc/vim-plugins/vim-plugin-names). Plugins are listed in alphabetical order in `vim-plugin-names` using the format `[github username]/[repository]@[gitref]`. For example https://github.com/scrooloose/nerdtree becomes `scrooloose/nerdtree`.
 
-Some plugins require overrides in order to function properly. Overrides are placed in [overrides.nix](/pkgs/misc/vim-plugins/overrides.nix). Overrides are most often required when a plugin requires some dependencies, or extra steps are required during the build process. For example `deoplete-fish` requires both `deoplete-nvim` and `vim-fish`, and so the following override was added:
+Some plugins require overrides in order to function properly. Overrides are placed in [overrides.nix](https://github.com/NixOS/nixpkgs/blob/master/pkgs/misc/vim-plugins/overrides.nix). Overrides are most often required when a plugin requires some dependencies, or extra steps are required during the build process. For example `deoplete-fish` requires both `deoplete-nvim` and `vim-fish`, and so the following override was added:
 
 ```nix
 deoplete-fish = super.deoplete-fish.overrideAttrs(old: {
diff --git a/lib/modules.nix b/lib/modules.nix
index e3bb27aa946..573bf40e4b3 100644
--- a/lib/modules.nix
+++ b/lib/modules.nix
@@ -614,6 +614,8 @@ rec {
         definitions = map (def: def.value) res.defsFinal;
         files = map (def: def.file) res.defsFinal;
         inherit (res) isDefined;
+        # This allows options to be correctly displayed using `${options.path.to.it}`
+        __toString = _: showOption loc;
       };
 
   # Merge definitions of a value of a given type.
diff --git a/lib/systems/supported.nix b/lib/systems/supported.nix
index ef429454f04..a1c038a5c8b 100644
--- a/lib/systems/supported.nix
+++ b/lib/systems/supported.nix
@@ -4,7 +4,9 @@
 { lib }:
 rec {
   # List of systems that are built by Hydra.
-  hydra = tier1 ++ tier2 ++ tier3;
+  hydra = tier1 ++ tier2 ++ tier3 ++ [
+    "aarch64-darwin"
+  ];
 
   tier1 = [
     "x86_64-linux"
@@ -16,7 +18,6 @@ rec {
   ];
 
   tier3 = [
-    "aarch64-darwin"
     "armv6l-linux"
     "armv7l-linux"
     "i686-linux"
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index 22dc8578b26..7dab3223c3c 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -3481,9 +3481,9 @@
     githubId = 5493775;
     name = "Ente";
   };
-  enzime = {
+  Enzime = {
     email = "enzime@users.noreply.github.com";
-    github = "enzime";
+    github = "Enzime";
     githubId = 10492681;
     name = "Michael Hoang";
   };
@@ -9044,6 +9044,12 @@
     githubId = 116740;
     name = "Paweł Pacana";
   };
+  pb- = {
+    email = "pbaecher@gmail.com";
+    github = "pb-";
+    githubId = 84886;
+    name = "Paul Baecher";
+  };
   pbogdan = {
     email = "ppbogdan@gmail.com";
     github = "pbogdan";
@@ -9178,12 +9184,6 @@
     githubId = 301903;
     name = "Chip Collier";
   };
-  phreedom = {
-    email = "phreedom@yandex.ru";
-    github = "phreedom";
-    githubId = 62577;
-    name = "Evgeny Egorochkin";
-  };
   phryneas = {
     email = "mail@lenzw.de";
     github = "phryneas";
@@ -12124,6 +12124,12 @@
     githubId = 122319;
     name = "Renato Alves";
   };
+  unrooted = {
+    name = "Konrad Klawikowski";
+    email = "konrad.root.klawikowski@gmail.com";
+    github = "unrooted";
+    githubId = 30440603;
+  };
   uralbash = {
     email = "root@uralbash.ru";
     github = "uralbash";
@@ -12573,6 +12579,12 @@
     githubId = 78392041;
     name = "Winter";
   };
+  wintrmvte = {
+    name = "Jakub Lutczyn";
+    email = "kubalutczyn@gmail.com";
+    github = "wintrmvte";
+    githubId = 41823252;
+  };
   wirew0rm = {
     email = "alex@wirew0rm.de";
     github = "wirew0rm";
@@ -12651,6 +12663,12 @@
     githubId = 28888242;
     name = "WORLDofPEACE";
   };
+  wr0belj = {
+    name = "Jakub Wróbel";
+    email = "wrobel.jakub@protonmail.com";
+    github = "wr0belj";
+    githubId = 40501814;
+  };
   wscott = {
     email = "wsc9tt@gmail.com";
     github = "wscott";
@@ -12828,6 +12846,12 @@
     githubId = 11229748;
     name = "Lin Yinfeng";
   };
+  ylecornec = {
+    email = "yves.stan.lecornec@tweag.io";
+    github = "ylecornec";
+    githubId = 5978566;
+    name = "Yves-Stan Le Cornec";
+  };
   ylwghst = {
     email = "ylwghst@onionmail.info";
     github = "ylwghst";
@@ -13402,4 +13426,10 @@
     github = "jpagex";
     githubId = 635768;
   };
+  pwoelfel = {
+    name = "Philipp Woelfel";
+    email = "philipp.woelfel@gmail.com";
+    github = "PhilippWoelfel";
+    githubId = 19400064;
+  };
 }
diff --git a/maintainers/scripts/check-maintainer-github-handles.sh b/maintainers/scripts/check-maintainer-github-handles.sh
index 879a2e452cb..a5555ca9e90 100755
--- a/maintainers/scripts/check-maintainer-github-handles.sh
+++ b/maintainers/scripts/check-maintainer-github-handles.sh
@@ -4,20 +4,19 @@
 # Example how to work with the `lib.maintainers` attrset.
 # Can be used to check whether all user handles are still valid.
 
-set -e
-
-# nixpkgs='<nixpkgs>'
-# if [ -n "$1" ]; then
+set -o errexit -o noclobber -o nounset -o pipefail
+shopt -s failglob inherit_errexit
 
 function checkCommits {
-    local user="$1"
-    local tmp=$(mktemp)
+    local ret status tmp user
+    user="$1"
+    tmp=$(mktemp)
     curl --silent -w "%{http_code}" \
          "https://github.com/NixOS/nixpkgs/commits?author=$user" \
          > "$tmp"
     # the last line of tmp contains the http status
-    local status=$(tail -n1 "$tmp")
-    local ret=
+    status=$(tail -n1 "$tmp")
+    ret=
     case $status in
         200) if <"$tmp" grep -i "no commits found" > /dev/null; then
                  ret=1
@@ -31,7 +30,7 @@ function checkCommits {
              checkCommits "$user"
              ret=$?
              ;;
-        *)   printf "BAD STATUS: $(tail -n1 $tmp) for %s\n" "$user"; ret=1
+        *)   printf "BAD STATUS: $(tail -n1 "$tmp") for %s\n" "$user"; ret=1
              ret=1
              ;;
     esac
@@ -63,4 +62,5 @@ nix-instantiate -A lib.maintainers --eval --strict --json \
     | jq -r '.[]|.github|select(.)' \
     | parallel -j5 checkUser
 
+# To check some arbitrary users:
 # parallel -j100 checkUser ::: "eelco" "profpatsch" "Profpatsch" "a"
diff --git a/maintainers/scripts/haskell/test-configurations.nix b/maintainers/scripts/haskell/test-configurations.nix
new file mode 100644
index 00000000000..12287896b50
--- /dev/null
+++ b/maintainers/scripts/haskell/test-configurations.nix
@@ -0,0 +1,136 @@
+/* Nix expression to test for regressions in the Haskell configuration overlays.
+
+   test-configurations.nix determines all attributes touched by given Haskell
+   configuration overlays (i. e. pkgs/development/haskell-modules/configuration-*.nix)
+   and builds all derivations (or at least a reasonable subset) affected by
+   these overrides.
+
+   By default, it checks `configuration-{common,nix,ghc-8.10.x}.nix`. You can
+   invoke it like this:
+
+     nix-build maintainers/scripts/haskell/test-configurations.nix --keep-going
+
+   It is possible to specify other configurations:
+
+     nix-build maintainers/scripts/haskell/test-configurations.nix \
+       --arg files '[ "configuration-ghc-9.0.x.nix" "configuration-ghc-9.2.x.nix" ]' \
+       --keep-going
+
+   You can also just supply a single string:
+
+     nix-build maintainers/scripts/haskell/test-configurations.nix \
+       --argstr files "configuration-arm.nix" --keep-going
+
+   You can even supply full paths which is handy, as it allows for tab-completing
+   the configurations:
+
+     nix-build maintainers/scripts/haskell/test-configurations.nix \
+       --argstr files pkgs/development/haskell-modules/configuration-arm.nix \
+       --keep-going
+
+   By default, derivation that fail to evaluate are skipped, unless they are
+   “just” marked as broken. You can check for other eval errors like this:
+
+     nix-build maintainers/scripts/haskell/test-configurations.nix \
+       --arg skipEvalErrors false --keep-going
+
+   You can also disable checking broken packages by passing a nixpkgs config:
+
+     nix-build maintainers/scripts/haskell/test-configurations.nix \
+       --arg config '{ allowBroken = false; }' --keep-going
+
+   By default the haskell.packages.ghc*Binary sets used for bootstrapping GHC
+   are _not_ tested. You can change this using:
+
+     nix-build maintainers/scripts/haskell/test-configurations.nix \
+       --arg skipBinaryGHCs false --keep-going
+
+*/
+{ files ? [
+    "configuration-common.nix"
+    "configuration-nix.nix"
+    "configuration-ghc-8.10.x.nix"
+  ]
+, nixpkgsPath ? ../../..
+, config ? { allowBroken = true; }
+, skipEvalErrors ? true
+, skipBinaryGHCs ? true
+}:
+
+let
+  pkgs = import nixpkgsPath { inherit config; };
+  inherit (pkgs) lib;
+
+  # see usage explanation for the input format `files` allows
+  files' = builtins.map builtins.baseNameOf (
+    if !builtins.isList files then [ files ] else files
+  );
+
+  setsForFile = fileName:
+    let
+      # extract the unique part of the config's file name
+      configName = builtins.head (
+        builtins.match "configuration-(.+).nix" fileName
+      );
+      # match the major and minor version of the GHC the config is intended for, if any
+      configVersion = lib.concatStrings (
+        builtins.match "ghc-([0-9]+).([0-9]+).x" configName
+      );
+      # return all package sets under haskell.packages matching the version components
+      setsForVersion =  builtins.map (name: pkgs.haskell.packages.${name}) (
+        builtins.filter (setName:
+          lib.hasPrefix "ghc${configVersion}" setName
+          && (skipBinaryGHCs -> !(lib.hasInfix "Binary" setName))
+        ) (
+          builtins.attrNames pkgs.haskell.packages
+        )
+      );
+
+      defaultSets = [ pkgs.haskellPackages ];
+    in {
+      # use plain haskellPackages for the version-agnostic files
+      # TODO(@sternenseemann): also consider currently selected versioned sets
+      "common" = defaultSets;
+      "nix" = defaultSets;
+      "arm" = defaultSets;
+      "darwin" = defaultSets;
+    }.${configName} or setsForVersion;
+
+  # attribute set that has all the attributes of haskellPackages set to null
+  availableHaskellPackages = builtins.listToAttrs (
+    builtins.map (attr: lib.nameValuePair attr null) (
+      builtins.attrNames pkgs.haskellPackages
+    )
+  );
+
+  # evaluate a configuration and only return the attributes changed by it,
+  # pass availableHaskellPackages as super in case intersectAttrs is used
+  overriddenAttrs = fileName: builtins.attrNames (
+    lib.fix (self:
+      import (nixpkgsPath + "/pkgs/development/haskell-modules/${fileName}") {
+        haskellLib = pkgs.haskell.lib.compose;
+        inherit pkgs;
+      } self availableHaskellPackages
+    )
+  );
+
+  # list of derivations that are affected by overrides in the given configuration
+  # overlays. For common, nix, darwin etc. only the derivation from the default
+  # package set will be emitted.
+  packages = builtins.filter (v:
+    lib.warnIf (v.meta.broken or false) "${v.pname} is marked as broken" (
+      v != null
+      && (skipEvalErrors -> (builtins.tryEval (v.outPath or v)).success)
+    )
+  ) (
+    lib.concatMap (fileName:
+      let
+        sets = setsForFile fileName;
+        attrs = overriddenAttrs fileName;
+      in
+        lib.concatMap (set: builtins.map (attr: set.${attr}) attrs) sets
+    ) files'
+  );
+in
+
+packages
diff --git a/maintainers/scripts/pluginupdate.py b/maintainers/scripts/pluginupdate.py
index f19cd8638e2..9eabcfcebc6 100644
--- a/maintainers/scripts/pluginupdate.py
+++ b/maintainers/scripts/pluginupdate.py
@@ -401,6 +401,8 @@ def load_plugin_spec(plugin_file: str) -> List[PluginDesc]:
     plugins = []
     with open(plugin_file) as f:
         for line in f:
+            if line.startswith("#"):
+                continue
             plugin = parse_plugin_line(line)
             if not plugin.owner:
                 msg = f"Invalid repository {line}, must be in the format owner/repo[ as alias]"
diff --git a/maintainers/team-list.nix b/maintainers/team-list.nix
index 5c6dea91e63..0743c80ec4f 100644
--- a/maintainers/team-list.nix
+++ b/maintainers/team-list.nix
@@ -29,6 +29,20 @@ with lib.maintainers; {
     scope = "Maintain ACME-related packages and modules.";
   };
 
+  bazel = {
+    members = [
+      mboes
+      marsam
+      uri-canva
+      cbley
+      olebedev
+      groodt
+      aherrmann
+      ylecornec
+    ];
+    scope = "Bazel build tool & related tools https://bazel.build/";
+  };
+
   beam = {
     members = [
       ankhers
@@ -233,6 +247,15 @@ with lib.maintainers; {
     scope = "Maintain Podman and CRI-O related packages and modules.";
   };
 
+  redcodelabs = {
+    members = [
+      unrooted
+      wr0belj
+      wintrmvte
+    ];
+    scope = "Maintain Red Code Labs related packages and modules.";
+  };
+
   sage = {
     members = [
       timokau
diff --git a/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
index 2a65b2f11a8..ae6ff9d434a 100644
--- a/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
+++ b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
@@ -14,12 +14,17 @@
   </itemizedlist>
   <section xml:id="sec-release-22.05-highlights">
     <title>Highlights</title>
-    <para>
-    </para>
+    <itemizedlist spacing="compact">
+      <listitem>
+        <para>
+          PHP 8.1 is now available
+        </para>
+      </listitem>
+    </itemizedlist>
   </section>
   <section xml:id="sec-release-22.05-new-services">
     <title>New Services</title>
-    <itemizedlist spacing="compact">
+    <itemizedlist>
       <listitem>
         <para>
           <link xlink:href="https://github.com/intel/linux-sgx#install-the-intelr-sgx-psw">aesmd</link>,
@@ -28,6 +33,21 @@
           <link linkend="opt-services.aesmd.enable">services.aesmd</link>.
         </para>
       </listitem>
+      <listitem>
+        <para>
+          <link xlink:href="https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-overview.html">filebeat</link>,
+          a lightweight shipper for forwarding and centralizing log
+          data. Available as
+          <link linkend="opt-services.filebeat.enable">services.filebeat</link>.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          <link xlink:href="https://github.com/ngoduykhanh/PowerDNS-Admin">PowerDNS-Admin</link>,
+          a web interface for the PowerDNS server. Available at
+          <link xlink:href="options.html#opt-services.powerdns-admin.enable">services.powerdns-admin</link>.
+        </para>
+      </listitem>
     </itemizedlist>
   </section>
   <section xml:id="sec-release-22.05-incompatibilities">
@@ -83,11 +103,30 @@
           release based on GTK+3 and Python 3.
         </para>
       </listitem>
+      <listitem>
+        <para>
+          The <literal>writers.writePython2</literal> and corresponding
+          <literal>writers.writePython2Bin</literal> convenience
+          functions to create executable Python 2 scripts in the store
+          were removed in preparation of removal of the Python 2
+          interpreter. Scripts have to be converted to Python 3 for use
+          with <literal>writers.writePython3</literal> or
+          <literal>writers.writePyPy2</literal> needs to be used.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          If you previously used
+          <literal>/etc/docker/daemon.json</literal>, you need to
+          incorporate the changes into the new option
+          <literal>virtualisation.docker.daemon.settings</literal>.
+        </para>
+      </listitem>
     </itemizedlist>
   </section>
   <section xml:id="sec-release-22.05-notable-changes">
     <title>Other Notable Changes</title>
-    <itemizedlist spacing="compact">
+    <itemizedlist>
       <listitem>
         <para>
           The option
@@ -113,6 +152,44 @@
           socket <literal>/run/redis-${serverName}/redis.sock</literal>.
         </para>
       </listitem>
+      <listitem>
+        <para>
+          The
+          <literal>writers.writePyPy2</literal>/<literal>writers.writePyPy3</literal>
+          and corresponding
+          <literal>writers.writePyPy2Bin</literal>/<literal>writers.writePyPy3Bin</literal>
+          convenience functions to create executable Python 2/3 scripts
+          using the PyPy interpreter were added.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          The <literal>influxdb2</literal> package was split into
+          <literal>influxdb2-server</literal> and
+          <literal>influxdb2-cli</literal>, matching the split that took
+          place upstream. A combined <literal>influxdb2</literal>
+          package is still provided in this release for backwards
+          compatibilty, but will be removed at a later date.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          The <literal>services.unifi.openPorts</literal> option default
+          value of <literal>true</literal> is now deprecated and will be
+          changed to <literal>false</literal> in 22.11. Configurations
+          using this default will print a warning when rebuilt.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          The option
+          <link linkend="opt-services.ssh.enableAskPassword">services.ssh.enableAskPassword</link>
+          was added, decoupling the setting of
+          <literal>SSH_ASKPASS</literal> from
+          <literal>services.xserver.enable</literal>. This allows easy
+          usage in non-X11 environments, e.g. Wayland.
+        </para>
+      </listitem>
     </itemizedlist>
   </section>
 </section>
diff --git a/nixos/doc/manual/man-nixos-rebuild.xml b/nixos/doc/manual/man-nixos-rebuild.xml
index 0e0ea5d74b0..6c7fc57f8d8 100644
--- a/nixos/doc/manual/man-nixos-rebuild.xml
+++ b/nixos/doc/manual/man-nixos-rebuild.xml
@@ -535,12 +535,8 @@
      </para>
 
      <para>
-      If <option>--build-host</option> is not explicitly specified,
-      <option>--build-host</option> will implicitly be set to the same value as
-      <option>--target-host</option>. So, if you only specify
-      <option>--target-host</option> both building and activation will take
-      place remotely (and no build artifacts will be copied to the local
-      machine).
+      If <option>--build-host</option> is not explicitly specified, building
+      will take place locally.
      </para>
 
      <para>
diff --git a/nixos/doc/manual/release-notes/rl-2205.section.md b/nixos/doc/manual/release-notes/rl-2205.section.md
index 2c75718bb1e..3e7f8d451b2 100644
--- a/nixos/doc/manual/release-notes/rl-2205.section.md
+++ b/nixos/doc/manual/release-notes/rl-2205.section.md
@@ -6,10 +6,16 @@ In addition to numerous new and upgraded packages, this release has the followin
 
 ## Highlights {#sec-release-22.05-highlights}
 
+- PHP 8.1 is now available
+
 ## New Services {#sec-release-22.05-new-services}
 
 - [aesmd](https://github.com/intel/linux-sgx#install-the-intelr-sgx-psw), the Intel SGX Architectural Enclave Service Manager. Available as [services.aesmd](#opt-services.aesmd.enable).
 
+- [filebeat](https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-overview.html), a lightweight shipper for forwarding and centralizing log data. Available as [services.filebeat](#opt-services.filebeat.enable).
+
+- [PowerDNS-Admin](https://github.com/ngoduykhanh/PowerDNS-Admin), a web interface for the PowerDNS server. Available at [services.powerdns-admin](options.html#opt-services.powerdns-admin.enable).
+
 ## Backward Incompatibilities {#sec-release-22.05-incompatibilities}
 
 - `pkgs.ghc` now refers to `pkgs.targetPackages.haskellPackages.ghc`.
@@ -34,6 +40,11 @@ In addition to numerous new and upgraded packages, this release has the followin
 - `pkgs.claws-mail-gtk2`, representing Claws Mail's older release version three, was removed in order to get rid of Python 2.
   Please switch to `claws-mail`, which is Claws Mail's latest release based on GTK+3 and Python 3.
 
+- The `writers.writePython2` and corresponding `writers.writePython2Bin` convenience functions to create executable Python 2 scripts in the store were removed in preparation of removal of the Python 2 interpreter.
+  Scripts have to be converted to Python 3 for use with `writers.writePython3` or `writers.writePyPy2` needs to be used.
+
+- If you previously used `/etc/docker/daemon.json`, you need to incorporate the changes into the new option `virtualisation.docker.daemon.settings`.
+
 ## Other Notable Changes {#sec-release-22.05-notable-changes}
 
 - The option [services.redis.servers](#opt-services.redis.servers) was added
@@ -51,3 +62,19 @@ In addition to numerous new and upgraded packages, this release has the followin
   are only accessible by default
   to the members of the Unix group `redis-${serverName}`
   through the Unix socket `/run/redis-${serverName}/redis.sock`.
+
+- The `writers.writePyPy2`/`writers.writePyPy3` and corresponding `writers.writePyPy2Bin`/`writers.writePyPy3Bin` convenience functions to create executable Python 2/3 scripts using the PyPy interpreter were added.
+
+- The `influxdb2` package was split into `influxdb2-server` and
+  `influxdb2-cli`, matching the split that took place upstream. A
+  combined `influxdb2` package is still provided in this release for
+  backwards compatibilty, but will be removed at a later date.
+
+- The `services.unifi.openPorts` option default value of `true` is now deprecated and will be changed to `false` in 22.11.
+  Configurations using this default will print a warning when rebuilt.
+
+- The option
+  [services.ssh.enableAskPassword](#opt-services.ssh.enableAskPassword) was
+  added, decoupling the setting of `SSH_ASKPASS` from
+  `services.xserver.enable`. This allows easy usage in non-X11 environments,
+  e.g. Wayland.
diff --git a/nixos/modules/config/networking.nix b/nixos/modules/config/networking.nix
index 11307e33120..133a150df82 100644
--- a/nixos/modules/config/networking.nix
+++ b/nixos/modules/config/networking.nix
@@ -1,12 +1,13 @@
 # /etc files related to networking, such as /etc/services.
 
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
 
   cfg = config.networking;
+  opt = options.networking;
 
   localhostMultiple = any (elem "localhost") (attrValues (removeAttrs cfg.hosts [ "127.0.0.1" "::1" ]));
 
@@ -78,6 +79,7 @@ in
       httpProxy = lib.mkOption {
         type = types.nullOr types.str;
         default = cfg.proxy.default;
+        defaultText = literalExpression "config.${opt.proxy.default}";
         description = ''
           This option specifies the http_proxy environment variable.
         '';
@@ -87,6 +89,7 @@ in
       httpsProxy = lib.mkOption {
         type = types.nullOr types.str;
         default = cfg.proxy.default;
+        defaultText = literalExpression "config.${opt.proxy.default}";
         description = ''
           This option specifies the https_proxy environment variable.
         '';
@@ -96,6 +99,7 @@ in
       ftpProxy = lib.mkOption {
         type = types.nullOr types.str;
         default = cfg.proxy.default;
+        defaultText = literalExpression "config.${opt.proxy.default}";
         description = ''
           This option specifies the ftp_proxy environment variable.
         '';
@@ -105,6 +109,7 @@ in
       rsyncProxy = lib.mkOption {
         type = types.nullOr types.str;
         default = cfg.proxy.default;
+        defaultText = literalExpression "config.${opt.proxy.default}";
         description = ''
           This option specifies the rsync_proxy environment variable.
         '';
@@ -114,6 +119,7 @@ in
       allProxy = lib.mkOption {
         type = types.nullOr types.str;
         default = cfg.proxy.default;
+        defaultText = literalExpression "config.${opt.proxy.default}";
         description = ''
           This option specifies the all_proxy environment variable.
         '';
diff --git a/nixos/modules/config/system-path.nix b/nixos/modules/config/system-path.nix
index 6ff4ec2921c..875c4c9c441 100644
--- a/nixos/modules/config/system-path.nix
+++ b/nixos/modules/config/system-path.nix
@@ -41,12 +41,17 @@ let
       pkgs.zstd
     ];
 
-    defaultPackages = map (pkg: setPrio ((pkg.meta.priority or 5) + 3) pkg)
-      [ pkgs.nano
-        pkgs.perl
-        pkgs.rsync
-        pkgs.strace
-      ];
+  defaultPackageNames =
+    [ "nano"
+      "perl"
+      "rsync"
+      "strace"
+    ];
+  defaultPackages =
+    map
+      (n: let pkg = pkgs.${n}; in setPrio ((pkg.meta.priority or 5) + 3) pkg)
+      defaultPackageNames;
+  defaultPackagesText = "[ ${concatMapStringsSep " " (n: "pkgs.${n}") defaultPackageNames } ]";
 
 in
 
@@ -73,6 +78,11 @@ in
       defaultPackages = mkOption {
         type = types.listOf types.package;
         default = defaultPackages;
+        defaultText = literalDocBook ''
+          these packages, with their <literal>meta.priority</literal> numerically increased
+          (thus lowering their installation priority):
+          <programlisting>${defaultPackagesText}</programlisting>
+        '';
         example = [];
         description = ''
           Set of default packages that aren't strictly necessary
diff --git a/nixos/modules/hardware/system-76.nix b/nixos/modules/hardware/system-76.nix
index d4896541dba..ca40ee0ebb3 100644
--- a/nixos/modules/hardware/system-76.nix
+++ b/nixos/modules/hardware/system-76.nix
@@ -1,8 +1,9 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 let
-  inherit (lib) mkOption mkEnableOption types mkIf mkMerge optional versionOlder;
+  inherit (lib) literalExpression mkOption mkEnableOption types mkIf mkMerge optional versionOlder;
   cfg = config.hardware.system76;
+  opt = options.hardware.system76;
 
   kpkgs = config.boot.kernelPackages;
   modules = [ "system76" "system76-io" ] ++ (optional (versionOlder kpkgs.kernel.version "5.5") "system76-acpi");
@@ -60,6 +61,7 @@ in {
 
       firmware-daemon.enable = mkOption {
         default = cfg.enableAll;
+        defaultText = literalExpression "config.${opt.enableAll}";
         example = true;
         description = "Whether to enable the system76 firmware daemon";
         type = types.bool;
@@ -67,6 +69,7 @@ in {
 
       kernel-modules.enable = mkOption {
         default = cfg.enableAll;
+        defaultText = literalExpression "config.${opt.enableAll}";
         example = true;
         description = "Whether to make the system76 out-of-tree kernel modules available";
         type = types.bool;
@@ -74,6 +77,7 @@ in {
 
       power-daemon.enable = mkOption {
         default = cfg.enableAll;
+        defaultText = literalExpression "config.${opt.enableAll}";
         example = true;
         description = "Whether to enable the system76 power daemon";
         type = types.bool;
diff --git a/nixos/modules/misc/version.nix b/nixos/modules/misc/version.nix
index 8f246a9278b..fc0d65d5148 100644
--- a/nixos/modules/misc/version.nix
+++ b/nixos/modules/misc/version.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.system.nixos;
+  opt = options.system.nixos;
 in
 
 {
@@ -53,6 +54,7 @@ in
     stateVersion = mkOption {
       type = types.str;
       default = cfg.release;
+      defaultText = literalExpression "config.${opt.release}";
       description = ''
         Every once in a while, a new NixOS release may change
         configuration defaults in a way incompatible with stateful
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 1f826220a0f..30ad0db459e 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -448,6 +448,7 @@
   ./services/hardware/xow.nix
   ./services/logging/SystemdJournal2Gelf.nix
   ./services/logging/awstats.nix
+  ./services/logging/filebeat.nix
   ./services/logging/fluentd.nix
   ./services/logging/graylog.nix
   ./services/logging/heartbeat.nix
@@ -1025,6 +1026,7 @@
   ./services/web-apps/plantuml-server.nix
   ./services/web-apps/plausible.nix
   ./services/web-apps/pgpkeyserver-lite.nix
+  ./services/web-apps/powerdns-admin.nix
   ./services/web-apps/matomo.nix
   ./services/web-apps/moinmoin.nix
   ./services/web-apps/openwebrx.nix
diff --git a/nixos/modules/programs/captive-browser.nix b/nixos/modules/programs/captive-browser.nix
index 0f5d087e8d8..dc054504ea4 100644
--- a/nixos/modules/programs/captive-browser.nix
+++ b/nixos/modules/programs/captive-browser.nix
@@ -3,6 +3,18 @@
 with lib;
 let
   cfg = config.programs.captive-browser;
+  browserDefault = chromium: concatStringsSep " " [
+    ''env XDG_CONFIG_HOME="$PREV_CONFIG_HOME"''
+    ''${chromium}/bin/chromium''
+    ''--user-data-dir=''${XDG_DATA_HOME:-$HOME/.local/share}/chromium-captive''
+    ''--proxy-server="socks5://$PROXY"''
+    ''--host-resolver-rules="MAP * ~NOTFOUND , EXCLUDE localhost"''
+    ''--no-first-run''
+    ''--new-window''
+    ''--incognito''
+    ''-no-default-browser-check''
+    ''http://cache.nixos.org/''
+  ];
 in
 {
   ###### interface
@@ -26,18 +38,8 @@ in
       # the options below are the same as in "captive-browser.toml"
       browser = mkOption {
         type = types.str;
-        default = concatStringsSep " " [
-          ''env XDG_CONFIG_HOME="$PREV_CONFIG_HOME"''
-          ''${pkgs.chromium}/bin/chromium''
-          ''--user-data-dir=''${XDG_DATA_HOME:-$HOME/.local/share}/chromium-captive''
-          ''--proxy-server="socks5://$PROXY"''
-          ''--host-resolver-rules="MAP * ~NOTFOUND , EXCLUDE localhost"''
-          ''--no-first-run''
-          ''--new-window''
-          ''--incognito''
-          ''-no-default-browser-check''
-          ''http://cache.nixos.org/''
-        ];
+        default = browserDefault pkgs.chromium;
+        defaultText = literalExpression (browserDefault "\${pkgs.chromium}");
         description = ''
           The shell (/bin/sh) command executed once the proxy starts.
           When browser exits, the proxy exits. An extra env var PROXY is available.
diff --git a/nixos/modules/programs/gnupg.nix b/nixos/modules/programs/gnupg.nix
index 06f49182e4d..fe5d7bd834b 100644
--- a/nixos/modules/programs/gnupg.nix
+++ b/nixos/modules/programs/gnupg.nix
@@ -71,6 +71,7 @@ in
       type = types.nullOr (types.enum pkgs.pinentry.flavors);
       example = "gnome3";
       default = defaultPinentryFlavor;
+      defaultText = literalDocBook ''matching the configured desktop environment'';
       description = ''
         Which pinentry interface to use. If not null, the path to the
         pinentry binary will be passed to gpg-agent via commandline and
diff --git a/nixos/modules/programs/ssh.nix b/nixos/modules/programs/ssh.nix
index 5da15b68cf7..c680063a47c 100644
--- a/nixos/modules/programs/ssh.nix
+++ b/nixos/modules/programs/ssh.nix
@@ -33,6 +33,13 @@ in
 
     programs.ssh = {
 
+      enableAskPassword = mkOption {
+        type = types.bool;
+        default = config.services.xserver.enable;
+        defaultText = literalExpression "config.services.xserver.enable";
+        description = "Whether to configure SSH_ASKPASS in the environment.";
+      };
+
       askPassword = mkOption {
         type = types.str;
         default = "${pkgs.x11_ssh_askpass}/libexec/x11-ssh-askpass";
@@ -287,7 +294,7 @@ in
         # Allow ssh-agent to ask for confirmation. This requires the
         # unit to know about the user's $DISPLAY (via ‘systemctl
         # import-environment’).
-        environment.SSH_ASKPASS = optionalString config.services.xserver.enable askPasswordWrapper;
+        environment.SSH_ASKPASS = optionalString cfg.enableAskPassword askPasswordWrapper;
         environment.DISPLAY = "fake"; # required to make ssh-agent start $SSH_ASKPASS
       };
 
@@ -298,7 +305,7 @@ in
         fi
       '';
 
-    environment.variables.SSH_ASKPASS = optionalString config.services.xserver.enable askPassword;
+    environment.variables.SSH_ASKPASS = optionalString cfg.enableAskPassword askPassword;
 
   };
 }
diff --git a/nixos/modules/programs/zsh/zsh.nix b/nixos/modules/programs/zsh/zsh.nix
index e5c5b08f8d4..5fe98b6801b 100644
--- a/nixos/modules/programs/zsh/zsh.nix
+++ b/nixos/modules/programs/zsh/zsh.nix
@@ -1,6 +1,6 @@
 # This module defines global configuration for the zshell.
 
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
@@ -9,6 +9,7 @@ let
   cfge = config.environment;
 
   cfg = config.programs.zsh;
+  opt = options.programs.zsh;
 
   zshAliases = concatStringsSep "\n" (
     mapAttrsFlatten (k: v: "alias ${k}=${escapeShellArg v}")
@@ -147,6 +148,7 @@ in
 
       enableGlobalCompInit = mkOption {
         default = cfg.enableCompletion;
+        defaultText = literalExpression "config.${opt.enableCompletion}";
         description = ''
           Enable execution of compinit call for all interactive zsh shells.
 
diff --git a/nixos/modules/security/acme.nix b/nixos/modules/security/acme.nix
index b50eeddfa40..dcadbce68aa 100644
--- a/nixos/modules/security/acme.nix
+++ b/nixos/modules/security/acme.nix
@@ -2,6 +2,7 @@
 with lib;
 let
   cfg = config.security.acme;
+  opt = options.security.acme;
 
   # Used to calculate timer accuracy for coalescing
   numCerts = length (builtins.attrNames cfg.certs);
@@ -485,6 +486,7 @@ let
       email = mkOption {
         type = types.nullOr types.str;
         default = cfg.email;
+        defaultText = literalExpression "config.${opt.email}";
         description = "Contact email address for the CA to be able to reach you.";
       };
 
diff --git a/nixos/modules/security/dhparams.nix b/nixos/modules/security/dhparams.nix
index 012be2887d8..cfa9003f12f 100644
--- a/nixos/modules/security/dhparams.nix
+++ b/nixos/modules/security/dhparams.nix
@@ -1,8 +1,9 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 let
-  inherit (lib) mkOption types;
+  inherit (lib) literalExpression mkOption types;
   cfg = config.security.dhparams;
+  opt = options.security.dhparams;
 
   bitType = types.addCheck types.int (b: b >= 16) // {
     name = "bits";
@@ -13,6 +14,7 @@ let
     options.bits = mkOption {
       type = bitType;
       default = cfg.defaultBitSize;
+      defaultText = literalExpression "config.${opt.defaultBitSize}";
       description = ''
         The bit size for the prime that is used during a Diffie-Hellman
         key exchange.
diff --git a/nixos/modules/services/audio/mpdscribble.nix b/nixos/modules/services/audio/mpdscribble.nix
index 1368543ae1a..333ffb70941 100644
--- a/nixos/modules/services/audio/mpdscribble.nix
+++ b/nixos/modules/services/audio/mpdscribble.nix
@@ -1,10 +1,11 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.mpdscribble;
   mpdCfg = config.services.mpd;
+  mpdOpt = options.services.mpd;
 
   endpointUrls = {
     "last.fm" = "http://post.audioscrobbler.com";
@@ -108,6 +109,11 @@ in {
         mpdCfg.network.listenAddress
       else
         "localhost");
+      defaultText = literalExpression ''
+        if config.${mpdOpt.network.listenAddress} != "any"
+        then config.${mpdOpt.network.listenAddress}
+        else "localhost"
+      '';
       type = types.str;
       description = ''
         Host for the mpdscribble daemon to search for a mpd daemon on.
@@ -122,6 +128,10 @@ in {
           mpdCfg.credentials).passwordFile
       else
         null;
+      defaultText = literalDocBook ''
+        The first password file with read access configured for MPD when using a local instance,
+        otherwise <literal>null</literal>.
+      '';
       type = types.nullOr types.str;
       description = ''
         File containing the password for the mpd daemon.
@@ -132,6 +142,7 @@ in {
 
     port = mkOption {
       default = mpdCfg.network.port;
+      defaultText = literalExpression "config.${mpdOpt.network.port}";
       type = types.port;
       description = ''
         Port for the mpdscribble daemon to search for a mpd daemon on.
diff --git a/nixos/modules/services/audio/snapserver.nix b/nixos/modules/services/audio/snapserver.nix
index d3e97719f35..b82aca3976f 100644
--- a/nixos/modules/services/audio/snapserver.nix
+++ b/nixos/modules/services/audio/snapserver.nix
@@ -54,12 +54,12 @@ let
     # tcp json rpc
     ++ [ "--tcp.enabled ${toString cfg.tcp.enable}" ]
     ++ optionals cfg.tcp.enable [
-      "--tcp.address ${cfg.tcp.listenAddress}"
+      "--tcp.bind_to_address ${cfg.tcp.listenAddress}"
       "--tcp.port ${toString cfg.tcp.port}" ]
      # http json rpc
     ++ [ "--http.enabled ${toString cfg.http.enable}" ]
     ++ optionals cfg.http.enable [
-      "--http.address ${cfg.http.listenAddress}"
+      "--http.bind_to_address ${cfg.http.listenAddress}"
       "--http.port ${toString cfg.http.port}"
     ] ++ optional (cfg.http.docRoot != null) "--http.doc_root \"${toString cfg.http.docRoot}\"");
 
diff --git a/nixos/modules/services/backup/tarsnap.nix b/nixos/modules/services/backup/tarsnap.nix
index 9cce8683661..9b5fd90012e 100644
--- a/nixos/modules/services/backup/tarsnap.nix
+++ b/nixos/modules/services/backup/tarsnap.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, utils, ... }:
+{ config, lib, options, pkgs, utils, ... }:
 
 with lib;
 
 let
   gcfg = config.services.tarsnap;
+  opt = options.services.tarsnap;
 
   configFile = name: cfg: ''
     keyfile ${cfg.keyfile}
@@ -59,12 +60,13 @@ in
       };
 
       archives = mkOption {
-        type = types.attrsOf (types.submodule ({ config, ... }:
+        type = types.attrsOf (types.submodule ({ config, options, ... }:
           {
             options = {
               keyfile = mkOption {
                 type = types.str;
                 default = gcfg.keyfile;
+                defaultText = literalExpression "config.${opt.keyfile}";
                 description = ''
                   Set a specific keyfile for this archive. This defaults to
                   <literal>"/root/tarsnap.key"</literal> if left unspecified.
@@ -87,6 +89,9 @@ in
               cachedir = mkOption {
                 type = types.nullOr types.path;
                 default = "/var/cache/tarsnap/${utils.escapeSystemdPath config.keyfile}";
+                defaultText = literalExpression ''
+                  "/var/cache/tarsnap/''${utils.escapeSystemdPath config.${options.keyfile}}"
+                '';
                 description = ''
                   The cache allows tarsnap to identify previously stored data
                   blocks, reducing archival time and bandwidth usage.
@@ -320,21 +325,22 @@ in
                         ${optionalString cfg.explicitSymlinks "-H"} \
                         ${optionalString cfg.followSymlinks "-L"} \
                         ${concatStringsSep " " cfg.directories}'';
+          cachedir = escapeShellArg cfg.cachedir;
           in if (cfg.cachedir != null) then ''
-            mkdir -p ${cfg.cachedir}
-            chmod 0700 ${cfg.cachedir}
+            mkdir -p ${cachedir}
+            chmod 0700 ${cachedir}
 
             ( flock 9
-              if [ ! -e ${cfg.cachedir}/firstrun ]; then
+              if [ ! -e ${cachedir}/firstrun ]; then
                 ( flock 10
                   flock -u 9
                   ${tarsnap} --fsck
                   flock 9
-                ) 10>${cfg.cachedir}/firstrun
+                ) 10>${cachedir}/firstrun
               fi
-            ) 9>${cfg.cachedir}/lockf
+            ) 9>${cachedir}/lockf
 
-             exec flock ${cfg.cachedir}/firstrun ${run}
+             exec flock ${cachedir}/firstrun ${run}
           '' else "exec ${run}";
 
         serviceConfig = {
@@ -356,22 +362,23 @@ in
           tarsnap = ''tarsnap --configfile "/etc/tarsnap/${name}.conf"'';
           lastArchive = "$(${tarsnap} --list-archives | sort | tail -1)";
           run = ''${tarsnap} -x -f "${lastArchive}" ${optionalString cfg.verbose "-v"}'';
+          cachedir = escapeShellArg cfg.cachedir;
 
         in if (cfg.cachedir != null) then ''
-          mkdir -p ${cfg.cachedir}
-          chmod 0700 ${cfg.cachedir}
+          mkdir -p ${cachedir}
+          chmod 0700 ${cachedir}
 
           ( flock 9
-            if [ ! -e ${cfg.cachedir}/firstrun ]; then
+            if [ ! -e ${cachedir}/firstrun ]; then
               ( flock 10
                 flock -u 9
                 ${tarsnap} --fsck
                 flock 9
-              ) 10>${cfg.cachedir}/firstrun
+              ) 10>${cachedir}/firstrun
             fi
-          ) 9>${cfg.cachedir}/lockf
+          ) 9>${cachedir}/lockf
 
-           exec flock ${cfg.cachedir}/firstrun ${run}
+           exec flock ${cachedir}/firstrun ${run}
         '' else "exec ${run}";
 
         serviceConfig = {
diff --git a/nixos/modules/services/cluster/hadoop/default.nix b/nixos/modules/services/cluster/hadoop/default.nix
index 90f22c48e05..a1a95fe31ca 100644
--- a/nixos/modules/services/cluster/hadoop/default.nix
+++ b/nixos/modules/services/cluster/hadoop/default.nix
@@ -1,6 +1,7 @@
-{ config, lib, pkgs, ...}:
+{ config, lib, options, pkgs, ...}:
 let
   cfg = config.services.hadoop;
+  opt = options.services.hadoop;
 in
 with lib;
 {
@@ -44,6 +45,14 @@ with lib;
         "mapreduce.map.env" = "HADOOP_MAPRED_HOME=${cfg.package}/lib/${cfg.package.untarDir}";
         "mapreduce.reduce.env" = "HADOOP_MAPRED_HOME=${cfg.package}/lib/${cfg.package.untarDir}";
       };
+      defaultText = literalExpression ''
+        {
+          "mapreduce.framework.name" = "yarn";
+          "yarn.app.mapreduce.am.env" = "HADOOP_MAPRED_HOME=''${config.${opt.package}}/lib/''${config.${opt.package}.untarDir}";
+          "mapreduce.map.env" = "HADOOP_MAPRED_HOME=''${config.${opt.package}}/lib/''${config.${opt.package}.untarDir}";
+          "mapreduce.reduce.env" = "HADOOP_MAPRED_HOME=''${config.${opt.package}}/lib/''${config.${opt.package}.untarDir}";
+        }
+      '';
       type = types.attrsOf types.anything;
       example = literalExpression ''
         options.services.hadoop.mapredSite.default // {
@@ -98,6 +107,9 @@ with lib;
 
     log4jProperties = mkOption {
       default = "${cfg.package}/lib/${cfg.package.untarDir}/etc/hadoop/log4j.properties";
+      defaultText = literalExpression ''
+        "''${config.${opt.package}}/lib/''${config.${opt.package}.untarDir}/etc/hadoop/log4j.properties"
+      '';
       type = types.path;
       example = literalExpression ''
         "''${pkgs.hadoop}/lib/''${pkgs.hadoop.untarDir}/etc/hadoop/log4j.properties";
diff --git a/nixos/modules/services/cluster/kubernetes/addons/dashboard.nix b/nixos/modules/services/cluster/kubernetes/addons/dashboard.nix
index 2ed7742eda0..54b1f3859fc 100644
--- a/nixos/modules/services/cluster/kubernetes/addons/dashboard.nix
+++ b/nixos/modules/services/cluster/kubernetes/addons/dashboard.nix
@@ -1,9 +1,10 @@
-{ config, pkgs, lib, ... }:
+{ config, options, pkgs, lib, ... }:
 
 with lib;
 
 let
   cfg = config.services.kubernetes.addons.dashboard;
+  opt = options.services.kubernetes.addons.dashboard;
 in {
   imports = [
     (mkRenamedOptionModule [ "services" "kubernetes" "addons" "dashboard" "enableRBAC" ] [ "services" "kubernetes" "addons" "dashboard" "rbac" "enable" ])
@@ -28,6 +29,9 @@ in {
             description = "Whether to enable role based access control is enabled for kubernetes dashboard";
             type = types.bool;
             default = elem "RBAC" config.services.kubernetes.apiserver.authorizationMode;
+            defaultText = literalExpression ''
+              elem "RBAC" config.${options.services.kubernetes.apiserver.authorizationMode}
+            '';
           };
 
           clusterAdmin = mkOption {
@@ -54,6 +58,14 @@ in {
         finalImageTag = cfg.version;
         sha256 = "01xrr4pwgr2hcjrjsi3d14ifpzdfbxzqpzxbk2fkbjb9zkv38zxy";
       };
+      defaultText = literalExpression ''
+        {
+          imageName = "k8s.gcr.io/kubernetes-dashboard-amd64";
+          imageDigest = "sha256:0ae6b69432e78069c5ce2bcde0fe409c5c4d6f0f4d9cd50a17974fea38898747";
+          finalImageTag = config.${opt.version};
+          sha256 = "01xrr4pwgr2hcjrjsi3d14ifpzdfbxzqpzxbk2fkbjb9zkv38zxy";
+        };
+      '';
     };
   };
 
diff --git a/nixos/modules/services/cluster/kubernetes/addons/dns.nix b/nixos/modules/services/cluster/kubernetes/addons/dns.nix
index 34943fddd3d..10f45db7883 100644
--- a/nixos/modules/services/cluster/kubernetes/addons/dns.nix
+++ b/nixos/modules/services/cluster/kubernetes/addons/dns.nix
@@ -1,4 +1,4 @@
-{ config, pkgs, lib, ... }:
+{ config, options, pkgs, lib, ... }:
 
 with lib;
 
@@ -23,6 +23,10 @@ in {
           take 3 (splitString "." config.services.kubernetes.apiserver.serviceClusterIpRange
         ))
       ) + ".254";
+      defaultText = literalDocBook ''
+        The <literal>x.y.z.254</literal> IP of
+        <literal>config.${options.services.kubernetes.apiserver.serviceClusterIpRange}</literal>.
+      '';
       type = types.str;
     };
 
diff --git a/nixos/modules/services/cluster/kubernetes/apiserver.nix b/nixos/modules/services/cluster/kubernetes/apiserver.nix
index 2c89310beb5..5b97c571d76 100644
--- a/nixos/modules/services/cluster/kubernetes/apiserver.nix
+++ b/nixos/modules/services/cluster/kubernetes/apiserver.nix
@@ -1,9 +1,10 @@
-  { config, lib, pkgs, ... }:
+  { config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   top = config.services.kubernetes;
+  otop = options.services.kubernetes;
   cfg = top.apiserver;
 
   isRBACEnabled = elem "RBAC" cfg.authorizationMode;
@@ -84,6 +85,7 @@ in
     clientCaFile = mkOption {
       description = "Kubernetes apiserver CA file for client auth.";
       default = top.caFile;
+      defaultText = literalExpression "config.${otop.caFile}";
       type = nullOr path;
     };
 
@@ -138,6 +140,7 @@ in
       caFile = mkOption {
         description = "Etcd ca file.";
         default = top.caFile;
+        defaultText = literalExpression "config.${otop.caFile}";
         type = types.nullOr types.path;
       };
     };
@@ -157,6 +160,7 @@ in
     featureGates = mkOption {
       description = "List set of feature gates";
       default = top.featureGates;
+      defaultText = literalExpression "config.${otop.featureGates}";
       type = listOf str;
     };
 
@@ -175,6 +179,7 @@ in
     kubeletClientCaFile = mkOption {
       description = "Path to a cert file for connecting to kubelet.";
       default = top.caFile;
+      defaultText = literalExpression "config.${otop.caFile}";
       type = nullOr path;
     };
 
diff --git a/nixos/modules/services/cluster/kubernetes/controller-manager.nix b/nixos/modules/services/cluster/kubernetes/controller-manager.nix
index 7128b5f70b1..ed25715fab7 100644
--- a/nixos/modules/services/cluster/kubernetes/controller-manager.nix
+++ b/nixos/modules/services/cluster/kubernetes/controller-manager.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   top = config.services.kubernetes;
+  otop = options.services.kubernetes;
   cfg = top.controllerManager;
 in
 {
@@ -30,6 +31,7 @@ in
     clusterCidr = mkOption {
       description = "Kubernetes CIDR Range for Pods in cluster.";
       default = top.clusterCidr;
+      defaultText = literalExpression "config.${otop.clusterCidr}";
       type = str;
     };
 
@@ -44,6 +46,7 @@ in
     featureGates = mkOption {
       description = "List set of feature gates";
       default = top.featureGates;
+      defaultText = literalExpression "config.${otop.featureGates}";
       type = listOf str;
     };
 
@@ -67,6 +70,7 @@ in
         service account's token secret.
       '';
       default = top.caFile;
+      defaultText = literalExpression "config.${otop.caFile}";
       type = nullOr path;
     };
 
diff --git a/nixos/modules/services/cluster/kubernetes/default.nix b/nixos/modules/services/cluster/kubernetes/default.nix
index 433adf4d488..cf7fcb0a6d7 100644
--- a/nixos/modules/services/cluster/kubernetes/default.nix
+++ b/nixos/modules/services/cluster/kubernetes/default.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.kubernetes;
+  opt = options.services.kubernetes;
 
   defaultContainerdSettings = {
     version = 2;
@@ -87,6 +88,7 @@ let
       description = "${prefix} certificate authority file used to connect to kube-apiserver.";
       type = types.nullOr types.path;
       default = cfg.caFile;
+      defaultText = literalExpression "config.${opt.caFile}";
     };
 
     certFile = mkOption {
diff --git a/nixos/modules/services/cluster/kubernetes/kubelet.nix b/nixos/modules/services/cluster/kubernetes/kubelet.nix
index 2806f73375b..3e8eac96f6b 100644
--- a/nixos/modules/services/cluster/kubernetes/kubelet.nix
+++ b/nixos/modules/services/cluster/kubernetes/kubelet.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   top = config.services.kubernetes;
+  otop = options.services.kubernetes;
   cfg = top.kubelet;
 
   cniConfig =
@@ -35,6 +36,7 @@ let
       key = mkOption {
         description = "Key of taint.";
         default = name;
+        defaultText = literalDocBook "Name of this submodule.";
         type = str;
       };
       value = mkOption {
@@ -76,12 +78,14 @@ in
     clusterDomain = mkOption {
       description = "Use alternative domain.";
       default = config.services.kubernetes.addons.dns.clusterDomain;
+      defaultText = literalExpression "config.${options.services.kubernetes.addons.dns.clusterDomain}";
       type = str;
     };
 
     clientCaFile = mkOption {
       description = "Kubernetes apiserver CA file for client authentication.";
       default = top.caFile;
+      defaultText = literalExpression "config.${otop.caFile}";
       type = nullOr path;
     };
 
@@ -148,6 +152,7 @@ in
     featureGates = mkOption {
       description = "List set of feature gates";
       default = top.featureGates;
+      defaultText = literalExpression "config.${otop.featureGates}";
       type = listOf str;
     };
 
diff --git a/nixos/modules/services/cluster/kubernetes/proxy.nix b/nixos/modules/services/cluster/kubernetes/proxy.nix
index a09efcef94e..5f3da034120 100644
--- a/nixos/modules/services/cluster/kubernetes/proxy.nix
+++ b/nixos/modules/services/cluster/kubernetes/proxy.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   top = config.services.kubernetes;
+  otop = options.services.kubernetes;
   cfg = top.proxy;
 in
 {
@@ -31,6 +32,7 @@ in
     featureGates = mkOption {
       description = "List set of feature gates";
       default = top.featureGates;
+      defaultText = literalExpression "config.${otop.featureGates}";
       type = listOf str;
     };
 
diff --git a/nixos/modules/services/cluster/kubernetes/scheduler.nix b/nixos/modules/services/cluster/kubernetes/scheduler.nix
index 1b0c22a1142..87263ee72fa 100644
--- a/nixos/modules/services/cluster/kubernetes/scheduler.nix
+++ b/nixos/modules/services/cluster/kubernetes/scheduler.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   top = config.services.kubernetes;
+  otop = options.services.kubernetes;
   cfg = top.scheduler;
 in
 {
@@ -27,6 +28,7 @@ in
     featureGates = mkOption {
       description = "List set of feature gates";
       default = top.featureGates;
+      defaultText = literalExpression "config.${otop.featureGates}";
       type = listOf str;
     };
 
diff --git a/nixos/modules/services/computing/slurm/slurm.nix b/nixos/modules/services/computing/slurm/slurm.nix
index d2f3feffc97..7686ff99bfc 100644
--- a/nixos/modules/services/computing/slurm/slurm.nix
+++ b/nixos/modules/services/computing/slurm/slurm.nix
@@ -1,10 +1,11 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
 
   cfg = config.services.slurm;
+  opt = options.services.slurm;
   # configuration file can be generated by http://slurm.schedmd.com/configurator.html
 
   defaultUser = "slurm";
@@ -90,6 +91,7 @@ in
         storageUser = mkOption {
           type = types.str;
           default = cfg.user;
+          defaultText = literalExpression "config.${opt.user}";
           description = ''
             Database user name.
           '';
@@ -154,6 +156,7 @@ in
       controlAddr = mkOption {
         type = types.nullOr types.str;
         default = cfg.controlMachine;
+        defaultText = literalExpression "config.${opt.controlMachine}";
         example = null;
         description = ''
           Name that ControlMachine should be referred to in establishing a
@@ -279,6 +282,10 @@ in
         type = types.path;
         internal = true;
         default = etcSlurm;
+        defaultText = literalDocBook ''
+          Directory created from generated config files and
+          <literal>config.${opt.extraConfigPaths}</literal>.
+        '';
         description = ''
           Path to directory with slurm config files. This option is set by default from the
           Slurm module and is meant to make the Slurm config file available to other modules.
diff --git a/nixos/modules/services/continuous-integration/buildbot/master.nix b/nixos/modules/services/continuous-integration/buildbot/master.nix
index 2dc61c21ac7..aaa159d3cb1 100644
--- a/nixos/modules/services/continuous-integration/buildbot/master.nix
+++ b/nixos/modules/services/continuous-integration/buildbot/master.nix
@@ -1,11 +1,12 @@
 # NixOS module for Buildbot continous integration server.
 
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.buildbot-master;
+  opt = options.services.buildbot-master;
 
   python = cfg.package.pythonModule;
 
@@ -152,6 +153,7 @@ in {
 
       buildbotDir = mkOption {
         default = "${cfg.home}/master";
+        defaultText = literalExpression ''"''${config.${opt.home}}/master"'';
         type = types.path;
         description = "Specifies the Buildbot directory.";
       };
diff --git a/nixos/modules/services/continuous-integration/buildbot/worker.nix b/nixos/modules/services/continuous-integration/buildbot/worker.nix
index dd4f4a4a74a..1d7f53bb655 100644
--- a/nixos/modules/services/continuous-integration/buildbot/worker.nix
+++ b/nixos/modules/services/continuous-integration/buildbot/worker.nix
@@ -1,11 +1,12 @@
 # NixOS module for Buildbot Worker.
 
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.buildbot-worker;
+  opt = options.services.buildbot-worker;
 
   python = cfg.package.pythonModule;
 
@@ -77,6 +78,7 @@ in {
 
       buildbotDir = mkOption {
         default = "${cfg.home}/worker";
+        defaultText = literalExpression ''"''${config.${opt.home}}/worker"'';
         type = types.path;
         description = "Specifies the Buildbot directory.";
       };
diff --git a/nixos/modules/services/continuous-integration/github-runner.nix b/nixos/modules/services/continuous-integration/github-runner.nix
index 59370f43fe7..afd85c972b5 100644
--- a/nixos/modules/services/continuous-integration/github-runner.nix
+++ b/nixos/modules/services/continuous-integration/github-runner.nix
@@ -10,6 +10,8 @@ let
   stateDir = "%S/${systemdDir}";
   # %L: Log directory root (usually /var/log); see systemd.unit(5)
   logsDir = "%L/${systemdDir}";
+  # Name of file stored in service state directory
+  currentConfigTokenFilename = ".current-token";
 in
 {
   options.services.github-runner = {
@@ -144,13 +146,11 @@ in
         ExecStart = "${cfg.package}/bin/runsvc.sh";
 
         # Does the following, sequentially:
-        # - Copy the current and the previous `tokenFile` to the $RUNTIME_DIRECTORY
-        #   and make it accessible to the service user to allow for a content
-        #   comparison.
-        # - If the module configuration or the token has changed, clear the state directory.
-        # - Configure the runner.
-        # - Copy the configured `tokenFile` to the $STATE_DIRECTORY and make it
-        #   inaccessible to the service user.
+        # - If the module configuration or the token has changed, purge the state directory,
+        #   and create the current and the new token file with the contents of the configured
+        #   token. While both files have the same content, only the later is accessible by
+        #   the service user.
+        # - Configure the runner using the new token file. When finished, delete it.
         # - Set up the directory structure by creating the necessary symlinks.
         ExecStartPre =
           let
@@ -173,37 +173,20 @@ in
             currentConfigPath = "$STATE_DIRECTORY/.nixos-current-config.json";
             runnerRegistrationConfig = getAttrs [ "name" "tokenFile" "url" "runnerGroup" "extraLabels" ] cfg;
             newConfigPath = builtins.toFile "${svcName}-config.json" (builtins.toJSON runnerRegistrationConfig);
-            currentConfigTokenFilename = ".current-token";
             newConfigTokenFilename = ".new-token";
             runnerCredFiles = [
               ".credentials"
               ".credentials_rsaparams"
               ".runner"
             ];
-            ownConfigTokens = writeScript "own-config-tokens" ''
-              # Copy current and new token file to runtime dir and make it accessible to the service user
-              cp ${escapeShellArg cfg.tokenFile} "$RUNTIME_DIRECTORY/${newConfigTokenFilename}"
-              chmod 600 "$RUNTIME_DIRECTORY/${newConfigTokenFilename}"
-              chown "$USER" "$RUNTIME_DIRECTORY/${newConfigTokenFilename}"
-
-              if [[ -e "$STATE_DIRECTORY/${currentConfigTokenFilename}" ]]; then
-                cp "$STATE_DIRECTORY/${currentConfigTokenFilename}" "$RUNTIME_DIRECTORY/${currentConfigTokenFilename}"
-                chmod 600 "$RUNTIME_DIRECTORY/${currentConfigTokenFilename}"
-                chown "$USER" "$RUNTIME_DIRECTORY/${currentConfigTokenFilename}"
-              fi
-            '';
-            disownConfigTokens = writeScript "disown-config-tokens" ''
-              # Make the token inaccessible to the runner service user
-              chmod 600 "$STATE_DIRECTORY/${currentConfigTokenFilename}"
-              chown root:root "$STATE_DIRECTORY/${currentConfigTokenFilename}"
-            '';
             unconfigureRunner = writeScript "unconfigure" ''
               differs=
               # Set `differs = 1` if current and new runner config differ or if `currentConfigPath` does not exist
               ${pkgs.diffutils}/bin/diff -q '${newConfigPath}' "${currentConfigPath}" >/dev/null 2>&1 || differs=1
               # Also trigger a registration if the token content changed
               ${pkgs.diffutils}/bin/diff -q \
-                "$RUNTIME_DIRECTORY"/{${currentConfigTokenFilename},${newConfigTokenFilename}} \
+                "$STATE_DIRECTORY"/${currentConfigTokenFilename} \
+                ${escapeShellArg cfg.tokenFile} \
                 >/dev/null 2>&1 || differs=1
 
               if [[ -n "$differs" ]]; then
@@ -211,13 +194,18 @@ in
                 echo "The old runner will still appear in the GitHub Actions UI." \
                   "You have to remove it manually."
                 find "$STATE_DIRECTORY/" -mindepth 1 -delete
+
+                # Copy the configured token file to the state dir and allow the service user to read the file
+                install --mode=666 ${escapeShellArg cfg.tokenFile} "$STATE_DIRECTORY/${newConfigTokenFilename}"
+                # Also copy current file to allow for a diff on the next start
+                install --mode=600 ${escapeShellArg cfg.tokenFile} "$STATE_DIRECTORY/${currentConfigTokenFilename}"
               fi
             '';
             configureRunner = writeScript "configure" ''
-              empty=$(ls -A "$STATE_DIRECTORY")
-              if [[ -z "$empty" ]]; then
+              if [[ -e "$STATE_DIRECTORY/${newConfigTokenFilename}" ]]; then
                 echo "Configuring GitHub Actions Runner"
-                token=$(< "$RUNTIME_DIRECTORY"/${newConfigTokenFilename})
+
+                token=$(< "$STATE_DIRECTORY"/${newConfigTokenFilename})
                 RUNNER_ROOT="$STATE_DIRECTORY" ${cfg.package}/bin/config.sh \
                   --unattended \
                   --work "$RUNTIME_DIRECTORY" \
@@ -234,8 +222,7 @@ in
                 rm    -rf "$STATE_DIRECTORY/_diag/"
 
                 # Cleanup token from config
-                rm -f "$RUNTIME_DIRECTORY"/${currentConfigTokenFilename}
-                mv    "$RUNTIME_DIRECTORY"/${newConfigTokenFilename} "$STATE_DIRECTORY/${currentConfigTokenFilename}"
+                rm "$STATE_DIRECTORY/${newConfigTokenFilename}"
 
                 # Symlink to new config
                 ln -s '${newConfigPath}' "${currentConfigPath}"
@@ -250,10 +237,8 @@ in
             '';
           in
           map (x: "${x} ${escapeShellArgs [ stateDir runtimeDir logsDir ]}") [
-            "+${ownConfigTokens}" # runs as root
-            unconfigureRunner
+            "+${unconfigureRunner}" # runs as root
             configureRunner
-            "+${disownConfigTokens}" # runs as root
             setupRuntimeDir
           ];
 
@@ -266,6 +251,13 @@ in
         StateDirectoryMode = "0700";
         WorkingDirectory = runtimeDir;
 
+        InaccessiblePaths = [
+          # Token file path given in the configuration
+          cfg.tokenFile
+          # Token file in the state directory
+          "${stateDir}/${currentConfigTokenFilename}"
+        ];
+
         # By default, use a dynamically allocated user
         DynamicUser = true;
 
diff --git a/nixos/modules/services/continuous-integration/gocd-agent/default.nix b/nixos/modules/services/continuous-integration/gocd-agent/default.nix
index acc3fb12484..c63998c6736 100644
--- a/nixos/modules/services/continuous-integration/gocd-agent/default.nix
+++ b/nixos/modules/services/continuous-integration/gocd-agent/default.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.gocd-agent;
+  opt = options.services.gocd-agent;
 in {
   options = {
     services.gocd-agent = {
@@ -98,6 +99,15 @@ in {
           "-Dcruise.console.publish.interval=10"
           "-Djava.security.egd=file:/dev/./urandom"
         ];
+        defaultText = literalExpression ''
+          [
+            "-Xms''${config.${opt.initialJavaHeapSize}}"
+            "-Xmx''${config.${opt.maxJavaHeapMemory}}"
+            "-Djava.io.tmpdir=/tmp"
+            "-Dcruise.console.publish.interval=10"
+            "-Djava.security.egd=file:/dev/./urandom"
+          ]
+        '';
         description = ''
           Specifies startup command line arguments to pass to Go.CD agent
           java process.
diff --git a/nixos/modules/services/continuous-integration/gocd-server/default.nix b/nixos/modules/services/continuous-integration/gocd-server/default.nix
index 646bf13ac67..3540656f934 100644
--- a/nixos/modules/services/continuous-integration/gocd-server/default.nix
+++ b/nixos/modules/services/continuous-integration/gocd-server/default.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.gocd-server;
+  opt = options.services.gocd-server;
 in {
   options = {
     services.gocd-server = {
@@ -106,6 +107,20 @@ in {
           "-Dcruise.server.port=${toString cfg.port}"
           "-Dcruise.server.ssl.port=${toString cfg.sslPort}"
         ];
+        defaultText = literalExpression ''
+          [
+            "-Xms''${config.${opt.initialJavaHeapSize}}"
+            "-Xmx''${config.${opt.maxJavaHeapMemory}}"
+            "-Dcruise.listen.host=''${config.${opt.listenAddress}}"
+            "-Duser.language=en"
+            "-Djruby.rack.request.size.threshold.bytes=30000000"
+            "-Duser.country=US"
+            "-Dcruise.config.dir=''${config.${opt.workDir}}/conf"
+            "-Dcruise.config.file=''${config.${opt.workDir}}/conf/cruise-config.xml"
+            "-Dcruise.server.port=''${toString config.${opt.port}}"
+            "-Dcruise.server.ssl.port=''${toString config.${opt.sslPort}}"
+          ]
+        '';
 
         description = ''
           Specifies startup command line arguments to pass to Go.CD server
diff --git a/nixos/modules/services/databases/hbase.nix b/nixos/modules/services/databases/hbase.nix
index 181be2d6b0b..fe4f05eec64 100644
--- a/nixos/modules/services/databases/hbase.nix
+++ b/nixos/modules/services/databases/hbase.nix
@@ -1,14 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, options, lib, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.hbase;
-
-  defaultConfig = {
-    "hbase.rootdir" = "file://${cfg.dataDir}/hbase";
-    "hbase.zookeeper.property.dataDir" = "${cfg.dataDir}/zookeeper";
-  };
+  opt = options.services.hbase;
 
   buildProperty = configAttr:
     (builtins.concatStringsSep "\n"
@@ -23,7 +19,7 @@ let
 
   configFile = pkgs.writeText "hbase-site.xml"
     ''<configuration>
-        ${buildProperty (defaultConfig // cfg.settings)}
+        ${buildProperty (opt.settings.default // cfg.settings)}
       </configuration>
     '';
 
@@ -96,7 +92,16 @@ in {
 
       settings = mkOption {
         type = with lib.types; attrsOf (oneOf [ str int bool ]);
-        default = defaultConfig;
+        default = {
+          "hbase.rootdir" = "file://${cfg.dataDir}/hbase";
+          "hbase.zookeeper.property.dataDir" = "${cfg.dataDir}/zookeeper";
+        };
+        defaultText = literalExpression ''
+          {
+            "hbase.rootdir" = "file://''${config.${opt.dataDir}}/hbase";
+            "hbase.zookeeper.property.dataDir" = "''${config.${opt.dataDir}}/zookeeper";
+          }
+        '';
         description = ''
           configurations in hbase-site.xml, see <link xlink:href="https://github.com/apache/hbase/blob/master/hbase-server/src/test/resources/hbase-site.xml"/> for details.
         '';
diff --git a/nixos/modules/services/databases/influxdb2.nix b/nixos/modules/services/databases/influxdb2.nix
index 15f008cbc6d..a7aa5245d76 100644
--- a/nixos/modules/services/databases/influxdb2.nix
+++ b/nixos/modules/services/databases/influxdb2.nix
@@ -10,7 +10,7 @@ in
     services.influxdb2 = {
       enable = mkEnableOption "the influxdb2 server";
       package = mkOption {
-        default = pkgs.influxdb2;
+        default = pkgs.influxdb2-server;
         defaultText = literalExpression "pkgs.influxdb2";
         description = "influxdb2 derivation to use.";
         type = types.package;
diff --git a/nixos/modules/services/databases/neo4j.nix b/nixos/modules/services/databases/neo4j.nix
index f37e5ad1693..8816f3b2e4b 100644
--- a/nixos/modules/services/databases/neo4j.nix
+++ b/nixos/modules/services/databases/neo4j.nix
@@ -4,6 +4,7 @@ with lib;
 
 let
   cfg = config.services.neo4j;
+  opt = options.services.neo4j;
   certDirOpt = options.services.neo4j.directories.certificates;
   isDefaultPathOption = opt: isOption opt && opt.type == types.path && opt.highestPrio >= 1500;
 
@@ -256,6 +257,7 @@ in {
       certificates = mkOption {
         type = types.path;
         default = "${cfg.directories.home}/certificates";
+        defaultText = literalExpression ''"''${config.${opt.directories.home}}/certificates"'';
         description = ''
           Directory for storing certificates to be used by Neo4j for
           TLS connections.
@@ -280,6 +282,7 @@ in {
       data = mkOption {
         type = types.path;
         default = "${cfg.directories.home}/data";
+        defaultText = literalExpression ''"''${config.${opt.directories.home}}/data"'';
         description = ''
           Path of the data directory. You must not configure more than one
           Neo4j installation to use the same data directory.
@@ -305,6 +308,7 @@ in {
       imports = mkOption {
         type = types.path;
         default = "${cfg.directories.home}/import";
+        defaultText = literalExpression ''"''${config.${opt.directories.home}}/import"'';
         description = ''
           The root directory for file URLs used with the Cypher
           <literal>LOAD CSV</literal> clause. Only meaningful when
@@ -321,6 +325,7 @@ in {
       plugins = mkOption {
         type = types.path;
         default = "${cfg.directories.home}/plugins";
+        defaultText = literalExpression ''"''${config.${opt.directories.home}}/plugins"'';
         description = ''
           Path of the database plugin directory. Compiled Java JAR files that
           contain database procedures will be loaded if they are placed in
@@ -432,6 +437,7 @@ in {
           baseDirectory = mkOption {
             type = types.path;
             default = "${cfg.directories.certificates}/${name}";
+            defaultText = literalExpression ''"''${config.${opt.directories.certificates}}/''${name}"'';
             description = ''
               The mandatory base directory for cryptographic objects of this
               policy. This path is only automatically generated when this
@@ -493,6 +499,7 @@ in {
           revokedDir = mkOption {
             type = types.path;
             default = "${config.baseDirectory}/revoked";
+            defaultText = literalExpression ''"''${config.${options.baseDirectory}}/revoked"'';
             description = ''
               Path to directory of CRLs (Certificate Revocation Lists) in
               PEM format. Must be an absolute path. The existence of this
@@ -528,6 +535,7 @@ in {
           trustedDir = mkOption {
             type = types.path;
             default = "${config.baseDirectory}/trusted";
+            defaultText = literalExpression ''"''${config.${options.baseDirectory}}/trusted"'';
             description = ''
               Path to directory of X.509 certificates in PEM format for
               trusted parties. Must be an absolute path. The existence of this
diff --git a/nixos/modules/services/games/quake3-server.nix b/nixos/modules/services/games/quake3-server.nix
index 1dc01260e8f..175af4a8382 100644
--- a/nixos/modules/services/games/quake3-server.nix
+++ b/nixos/modules/services/games/quake3-server.nix
@@ -71,6 +71,7 @@ in {
       baseq3 = mkOption {
         type = types.either types.package types.path;
         default = defaultBaseq3;
+        defaultText = literalDocBook "Manually downloaded Quake 3 installation directory.";
         example = "/var/lib/q3ds";
         description = ''
           Path to the baseq3 files (pak*.pk3). If this is on the nix store (type = package) all .pk3 files should be saved
diff --git a/nixos/modules/services/games/terraria.nix b/nixos/modules/services/games/terraria.nix
index 7312c7e6b63..29f976b3c2a 100644
--- a/nixos/modules/services/games/terraria.nix
+++ b/nixos/modules/services/games/terraria.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg   = config.services.terraria;
+  opt   = options.services.terraria;
   worldSizeMap = { small = 1; medium = 2; large = 3; };
   valFlag = name: val: optionalString (val != null) "-${name} \"${escape ["\\" "\""] (toString val)}\"";
   boolFlag = name: val: optionalString val "-${name}";
@@ -36,7 +37,7 @@ in
         type        = types.bool;
         default     = false;
         description = ''
-          If enabled, starts a Terraria server. The server can be connected to via <literal>tmux -S ${cfg.dataDir}/terraria.sock attach</literal>
+          If enabled, starts a Terraria server. The server can be connected to via <literal>tmux -S ''${config.${opt.dataDir}}/terraria.sock attach</literal>
           for administration by users who are a part of the <literal>terraria</literal> group (use <literal>C-b d</literal> shortcut to detach again).
         '';
       };
diff --git a/nixos/modules/services/hardware/spacenavd.nix b/nixos/modules/services/hardware/spacenavd.nix
index 74725dd23d2..69ca6f102ef 100644
--- a/nixos/modules/services/hardware/spacenavd.nix
+++ b/nixos/modules/services/hardware/spacenavd.nix
@@ -15,7 +15,6 @@ in {
   config = mkIf cfg.enable {
     systemd.user.services.spacenavd = {
       description = "Daemon for the Spacenavigator 6DOF mice by 3Dconnexion";
-      after = [ "syslog.target" ];
       wantedBy = [ "graphical.target" ];
       serviceConfig = {
         ExecStart = "${pkgs.spacenavd}/bin/spacenavd -d -l syslog";
diff --git a/nixos/modules/services/hardware/tcsd.nix b/nixos/modules/services/hardware/tcsd.nix
index c549a677501..e414b9647c9 100644
--- a/nixos/modules/services/hardware/tcsd.nix
+++ b/nixos/modules/services/hardware/tcsd.nix
@@ -1,11 +1,12 @@
 # tcsd daemon.
 
-{ config, pkgs, lib, ... }:
+{ config, options, pkgs, lib, ... }:
 
 with lib;
 let
 
   cfg = config.services.tcsd;
+  opt = options.services.tcsd;
 
   tcsdConf = pkgs.writeText "tcsd.conf" ''
     port = 30003
@@ -83,6 +84,7 @@ in
 
       platformCred = mkOption {
         default = "${cfg.stateDir}/platform.cert";
+        defaultText = literalExpression ''"''${config.${opt.stateDir}}/platform.cert"'';
         type = types.path;
         description = ''
           Path to the platform credential for your TPM. Your TPM
@@ -96,6 +98,7 @@ in
 
       conformanceCred = mkOption {
         default = "${cfg.stateDir}/conformance.cert";
+        defaultText = literalExpression ''"''${config.${opt.stateDir}}/conformance.cert"'';
         type = types.path;
         description = ''
           Path to the conformance credential for your TPM.
@@ -104,6 +107,7 @@ in
 
       endorsementCred = mkOption {
         default = "${cfg.stateDir}/endorsement.cert";
+        defaultText = literalExpression ''"''${config.${opt.stateDir}}/endorsement.cert"'';
         type = types.path;
         description = ''
           Path to the endorsement credential for your TPM.
diff --git a/nixos/modules/services/logging/filebeat.nix b/nixos/modules/services/logging/filebeat.nix
new file mode 100644
index 00000000000..223a993c505
--- /dev/null
+++ b/nixos/modules/services/logging/filebeat.nix
@@ -0,0 +1,253 @@
+{ config, lib, utils, pkgs, ... }:
+
+let
+  inherit (lib)
+    attrValues
+    literalExpression
+    mkEnableOption
+    mkIf
+    mkOption
+    types;
+
+  cfg = config.services.filebeat;
+
+  json = pkgs.formats.json {};
+in
+{
+  options = {
+
+    services.filebeat = {
+
+      enable = mkEnableOption "filebeat";
+
+      package = mkOption {
+        type = types.package;
+        default = pkgs.filebeat;
+        defaultText = literalExpression "pkgs.filebeat";
+        example = literalExpression "pkgs.filebeat7";
+        description = ''
+          The filebeat package to use.
+        '';
+      };
+
+      inputs = mkOption {
+        description = ''
+          Inputs specify how Filebeat locates and processes input data.
+
+          This is like <literal>services.filebeat.settings.filebeat.inputs</literal>,
+          but structured as an attribute set. This has the benefit
+          that multiple NixOS modules can contribute settings to a
+          single filebeat input.
+
+          An input type can be specified multiple times by choosing a
+          different <literal>&lt;name></literal> for each, but setting
+          <xref linkend="opt-services.filebeat.inputs._name_.type"/>
+          to the same value.
+
+          See <link xlink:href="https://www.elastic.co/guide/en/beats/filebeat/current/configuration-filebeat-options.html"/>.
+        '';
+        default = {};
+        type = types.attrsOf (types.submodule ({ name, ... }: {
+          freeformType = json.type;
+          options = {
+            type = mkOption {
+              type = types.str;
+              default = name;
+              description = ''
+                The input type.
+
+                Look for the value after <literal>type:</literal> on
+                the individual input pages linked from
+                <link xlink:href="https://www.elastic.co/guide/en/beats/filebeat/current/configuration-filebeat-options.html"/>.
+              '';
+            };
+          };
+        }));
+        example = literalExpression ''
+          {
+            journald.id = "everything";  # Only for filebeat7
+            log = {
+              enabled = true;
+              paths = [
+                "/var/log/*.log"
+              ];
+            };
+          };
+        '';
+      };
+
+      modules = mkOption {
+        description = ''
+          Filebeat modules provide a quick way to get started
+          processing common log formats. They contain default
+          configurations, Elasticsearch ingest pipeline definitions,
+          and Kibana dashboards to help you implement and deploy a log
+          monitoring solution.
+
+          This is like <literal>services.filebeat.settings.filebeat.modules</literal>,
+          but structured as an attribute set. This has the benefit
+          that multiple NixOS modules can contribute settings to a
+          single filebeat module.
+
+          A module can be specified multiple times by choosing a
+          different <literal>&lt;name></literal> for each, but setting
+          <xref linkend="opt-services.filebeat.modules._name_.module"/>
+          to the same value.
+
+          See <link xlink:href="https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-modules.html"/>.
+        '';
+        default = {};
+        type = types.attrsOf (types.submodule ({ name, ... }: {
+          freeformType = json.type;
+          options = {
+            module = mkOption {
+              type = types.str;
+              default = name;
+              description = ''
+                The name of the module.
+
+                Look for the value after <literal>module:</literal> on
+                the individual input pages linked from
+                <link xlink:href="https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-modules.html"/>.
+              '';
+            };
+          };
+        }));
+        example = literalExpression ''
+          {
+            nginx = {
+              access = {
+                enabled = true;
+                var.paths = [ "/path/to/log/nginx/access.log*" ];
+              };
+              error = {
+                enabled = true;
+                var.paths = [ "/path/to/log/nginx/error.log*" ];
+              };
+            };
+          };
+        '';
+      };
+
+      settings = mkOption {
+        type = types.submodule {
+          freeformType = json.type;
+
+          options = {
+
+            output.elasticsearch.hosts = mkOption {
+              type = with types; listOf str;
+              default = [ "127.0.0.1:9200" ];
+              example = [ "myEShost:9200" ];
+              description = ''
+                The list of Elasticsearch nodes to connect to.
+
+                The events are distributed to these nodes in round
+                robin order. If one node becomes unreachable, the
+                event is automatically sent to another node. Each
+                Elasticsearch node can be defined as a URL or
+                IP:PORT. For example:
+                <literal>http://192.15.3.2</literal>,
+                <literal>https://es.found.io:9230</literal> or
+                <literal>192.24.3.2:9300</literal>. If no port is
+                specified, <literal>9200</literal> is used.
+              '';
+            };
+
+            filebeat = {
+              inputs = mkOption {
+                type = types.listOf json.type;
+                default = [];
+                internal = true;
+                description = ''
+                  Inputs specify how Filebeat locates and processes
+                  input data. Use <xref
+                  linkend="opt-services.filebeat.inputs"/> instead.
+
+                  See <link xlink:href="https://www.elastic.co/guide/en/beats/filebeat/current/configuration-filebeat-options.html"/>.
+                '';
+              };
+              modules = mkOption {
+                type = types.listOf json.type;
+                default = [];
+                internal = true;
+                description = ''
+                  Filebeat modules provide a quick way to get started
+                  processing common log formats. They contain default
+                  configurations, Elasticsearch ingest pipeline
+                  definitions, and Kibana dashboards to help you
+                  implement and deploy a log monitoring solution.
+
+                  Use <xref linkend="opt-services.filebeat.modules"/> instead.
+
+                  See <link xlink:href="https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-modules.html"/>.
+                '';
+              };
+            };
+          };
+        };
+        default = {};
+        example = literalExpression ''
+          {
+            settings = {
+              output.elasticsearch = {
+                hosts = [ "myEShost:9200" ];
+                username = "filebeat_internal";
+                password = { _secret = "/var/keys/elasticsearch_password"; };
+              };
+              logging.level = "info";
+            };
+          };
+        '';
+
+        description = ''
+          Configuration for filebeat. See
+          <link xlink:href="https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-reference-yml.html"/>
+          for supported values.
+
+          Options containing secret data should be set to an attribute
+          set containing the attribute <literal>_secret</literal> - a
+          string pointing to a file containing the value the option
+          should be set to. See the example to get a better picture of
+          this: in the resulting
+          <filename>filebeat.yml</filename> file, the
+          <literal>output.elasticsearch.password</literal>
+          key will be set to the contents of the
+          <filename>/var/keys/elasticsearch_password</filename> file.
+        '';
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+
+    services.filebeat.settings.filebeat.inputs = attrValues cfg.inputs;
+    services.filebeat.settings.filebeat.modules = attrValues cfg.modules;
+
+    systemd.services.filebeat = {
+      description = "Filebeat log shipper";
+      wantedBy = [ "multi-user.target" ];
+      wants = [ "elasticsearch.service" ];
+      after = [ "elasticsearch.service" ];
+      serviceConfig = {
+        ExecStartPre = pkgs.writeShellScript "filebeat-exec-pre" ''
+          set -euo pipefail
+
+          umask u=rwx,g=,o=
+
+          ${utils.genJqSecretsReplacementSnippet
+              cfg.settings
+              "/var/lib/filebeat/filebeat.yml"
+           }
+        '';
+        ExecStart = ''
+          ${cfg.package}/bin/filebeat -e \
+            -c "/var/lib/filebeat/filebeat.yml" \
+            --path.data "/var/lib/filebeat"
+        '';
+        Restart = "always";
+        StateDirectory = "filebeat";
+      };
+    };
+  };
+}
diff --git a/nixos/modules/services/logging/journalbeat.nix b/nixos/modules/services/logging/journalbeat.nix
index 2d98598c1be..4035ab48b4b 100644
--- a/nixos/modules/services/logging/journalbeat.nix
+++ b/nixos/modules/services/logging/journalbeat.nix
@@ -5,14 +5,10 @@ with lib;
 let
   cfg = config.services.journalbeat;
 
-  lt6 = builtins.compareVersions cfg.package.version "6" < 0;
-
   journalbeatYml = pkgs.writeText "journalbeat.yml" ''
     name: ${cfg.name}
     tags: ${builtins.toJSON cfg.tags}
 
-    ${optionalString lt6 "journalbeat.cursor_state_file: /var/lib/${cfg.stateDir}/cursor-state"}
-
     ${cfg.extraConfig}
   '';
 
@@ -28,7 +24,6 @@ in
         type = types.package;
         default = pkgs.journalbeat;
         defaultText = literalExpression "pkgs.journalbeat";
-        example = literalExpression "pkgs.journalbeat7";
         description = ''
           The journalbeat package to use
         '';
@@ -58,17 +53,7 @@ in
 
       extraConfig = mkOption {
         type = types.lines;
-        default = optionalString lt6 ''
-          journalbeat:
-            seek_position: cursor
-            cursor_seek_fallback: tail
-            write_cursor_state: true
-            cursor_flush_period: 5s
-            clean_field_names: true
-            convert_to_numbers: false
-            move_metadata_to_field: journal
-            default_type: journal
-        '';
+        default = "";
         description = "Any other configuration options you want to add";
       };
 
@@ -89,6 +74,8 @@ in
     systemd.services.journalbeat = {
       description = "Journalbeat log shipper";
       wantedBy = [ "multi-user.target" ];
+      wants = [ "elasticsearch.service" ];
+      after = [ "elasticsearch.service" ];
       preStart = ''
         mkdir -p ${cfg.stateDir}/data
         mkdir -p ${cfg.stateDir}/logs
diff --git a/nixos/modules/services/mail/rspamd.nix b/nixos/modules/services/mail/rspamd.nix
index 50208cbeb00..a570e137a55 100644
--- a/nixos/modules/services/mail/rspamd.nix
+++ b/nixos/modules/services/mail/rspamd.nix
@@ -5,6 +5,7 @@ with lib;
 let
 
   cfg = config.services.rspamd;
+  opt = options.services.rspamd;
   postfixCfg = config.services.postfix;
 
   bindSocketOpts = {options, config, ... }: {
@@ -285,8 +286,8 @@ in
               bindSockets = [{
                 socket = "/run/rspamd/rspamd.sock";
                 mode = "0660";
-                owner = "${cfg.user}";
-                group = "${cfg.group}";
+                owner = "''${config.${opt.user}}";
+                group = "''${config.${opt.group}}";
               }];
             };
             controller = {
diff --git a/nixos/modules/services/misc/airsonic.nix b/nixos/modules/services/misc/airsonic.nix
index 533a3d367a3..5a5c30a4123 100644
--- a/nixos/modules/services/misc/airsonic.nix
+++ b/nixos/modules/services/misc/airsonic.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.airsonic;
+  opt = options.services.airsonic;
 in {
   options = {
 
@@ -78,7 +79,7 @@ in {
         description = ''
           List of paths to transcoder executables that should be accessible
           from Airsonic. Symlinks will be created to each executable inside
-          ${cfg.home}/transcoders.
+          ''${config.${opt.home}}/transcoders.
         '';
       };
 
diff --git a/nixos/modules/services/misc/etcd.nix b/nixos/modules/services/misc/etcd.nix
index 26ad1ad5536..3925b7dd163 100644
--- a/nixos/modules/services/misc/etcd.nix
+++ b/nixos/modules/services/misc/etcd.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.etcd;
+  opt = options.services.etcd;
 
 in {
 
@@ -24,6 +25,7 @@ in {
     advertiseClientUrls = mkOption {
       description = "Etcd list of this member's client URLs to advertise to the rest of the cluster.";
       default = cfg.listenClientUrls;
+      defaultText = literalExpression "config.${opt.listenClientUrls}";
       type = types.listOf types.str;
     };
 
@@ -42,12 +44,14 @@ in {
     initialAdvertisePeerUrls = mkOption {
       description = "Etcd list of this member's peer URLs to advertise to rest of the cluster.";
       default = cfg.listenPeerUrls;
+      defaultText = literalExpression "config.${opt.listenPeerUrls}";
       type = types.listOf types.str;
     };
 
     initialCluster = mkOption {
       description = "Etcd initial cluster configuration for bootstrapping.";
       default = ["${cfg.name}=http://127.0.0.1:2380"];
+      defaultText = literalExpression ''["''${config.${opt.name}}=http://127.0.0.1:2380"]'';
       type = types.listOf types.str;
     };
 
@@ -96,18 +100,21 @@ in {
     peerCertFile = mkOption {
       description = "Cert file to use for peer to peer communication";
       default = cfg.certFile;
+      defaultText = literalExpression "config.${opt.certFile}";
       type = types.nullOr types.path;
     };
 
     peerKeyFile = mkOption {
       description = "Key file to use for peer to peer communication";
       default = cfg.keyFile;
+      defaultText = literalExpression "config.${opt.keyFile}";
       type = types.nullOr types.path;
     };
 
     peerTrustedCaFile = mkOption {
       description = "Certificate authority file to use for peer to peer communication";
       default = cfg.trustedCaFile;
+      defaultText = literalExpression "config.${opt.trustedCaFile}";
       type = types.nullOr types.path;
     };
 
diff --git a/nixos/modules/services/misc/exhibitor.nix b/nixos/modules/services/misc/exhibitor.nix
index 28c98edf47a..4c935efbd84 100644
--- a/nixos/modules/services/misc/exhibitor.nix
+++ b/nixos/modules/services/misc/exhibitor.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.exhibitor;
+  opt = options.services.exhibitor;
   exhibitorConfig = ''
     zookeeper-install-directory=${cfg.baseDir}/zookeeper
     zookeeper-data-directory=${cfg.zkDataDir}
@@ -165,6 +166,7 @@ in
       zkDataDir = mkOption {
         type = types.str;
         default = "${cfg.baseDir}/zkData";
+        defaultText = literalExpression ''"''${config.${opt.baseDir}}/zkData"'';
         description = ''
           The Zookeeper data directory
         '';
@@ -172,6 +174,7 @@ in
       zkLogDir = mkOption {
         type = types.path;
         default = "${cfg.baseDir}/zkLogs";
+        defaultText = literalExpression ''"''${config.${opt.baseDir}}/zkLogs"'';
         description = ''
           The Zookeeper logs directory
         '';
diff --git a/nixos/modules/services/misc/gitea.nix b/nixos/modules/services/misc/gitea.nix
index 022a73c2b59..0096286701f 100644
--- a/nixos/modules/services/misc/gitea.nix
+++ b/nixos/modules/services/misc/gitea.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.gitea;
+  opt = options.services.gitea;
   gitea = cfg.package;
   pg = config.services.postgresql;
   useMysql = cfg.database.type == "mysql";
@@ -51,6 +52,7 @@ in
       log = {
         rootPath = mkOption {
           default = "${cfg.stateDir}/log";
+          defaultText = literalExpression ''"''${config.${opt.stateDir}}/log"'';
           type = types.str;
           description = "Root path for log files.";
         };
@@ -84,6 +86,11 @@ in
         port = mkOption {
           type = types.port;
           default = (if !usePostgresql then 3306 else pg.port);
+          defaultText = literalExpression ''
+            if config.${opt.database.type} != "postgresql"
+            then 3306
+            else config.${options.services.postgresql.port}
+          '';
           description = "Database host port.";
         };
 
@@ -130,6 +137,7 @@ in
         path = mkOption {
           type = types.str;
           default = "${cfg.stateDir}/data/gitea.db";
+          defaultText = literalExpression ''"''${config.${opt.stateDir}}/data/gitea.db"'';
           description = "Path to the sqlite3 database file.";
         };
 
@@ -166,6 +174,7 @@ in
         backupDir = mkOption {
           type = types.str;
           default = "${cfg.stateDir}/dump";
+          defaultText = literalExpression ''"''${config.${opt.stateDir}}/dump"'';
           description = "Path to the dump files.";
         };
       };
@@ -199,6 +208,7 @@ in
         contentDir = mkOption {
           type = types.str;
           default = "${cfg.stateDir}/data/lfs";
+          defaultText = literalExpression ''"''${config.${opt.stateDir}}/data/lfs"'';
           description = "Where to store LFS files.";
         };
       };
@@ -212,6 +222,7 @@ in
       repositoryRoot = mkOption {
         type = types.str;
         default = "${cfg.stateDir}/repositories";
+        defaultText = literalExpression ''"''${config.${opt.stateDir}}/repositories"'';
         description = "Path to the git repositories.";
       };
 
diff --git a/nixos/modules/services/misc/gitlab.nix b/nixos/modules/services/misc/gitlab.nix
index 01a7ea42d9d..219155777db 100644
--- a/nixos/modules/services/misc/gitlab.nix
+++ b/nixos/modules/services/misc/gitlab.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, utils, ... }:
+{ config, lib, options, pkgs, utils, ... }:
 
 with lib;
 
 let
   cfg = config.services.gitlab;
+  opt = options.services.gitlab;
 
   ruby = cfg.packages.gitlab.ruby;
 
@@ -309,6 +310,7 @@ in {
       backup.path = mkOption {
         type = types.str;
         default = cfg.statePath + "/backup";
+        defaultText = literalExpression ''config.${opt.statePath} + "/backup"'';
         description = "GitLab path for backups.";
       };
 
@@ -554,6 +556,7 @@ in {
         defaultForProjects = mkOption {
           type = types.bool;
           default = cfg.registry.enable;
+          defaultText = literalExpression "config.${opt.registry.enable}";
           description = "If GitLab container registry should be enabled by default for projects.";
         };
         issuer = mkOption {
diff --git a/nixos/modules/services/misc/gitweb.nix b/nixos/modules/services/misc/gitweb.nix
index 13396bf2eb0..a1180716e36 100644
--- a/nixos/modules/services/misc/gitweb.nix
+++ b/nixos/modules/services/misc/gitweb.nix
@@ -47,6 +47,7 @@ in
         $highlight_bin = "${pkgs.highlight}/bin/highlight";
         ${cfg.extraConfig}
       '';
+      defaultText = literalDocBook "generated config file";
       type = types.path;
       readOnly = true;
       internal = true;
diff --git a/nixos/modules/services/misc/gogs.nix b/nixos/modules/services/misc/gogs.nix
index d7233f10c7c..c7ae4f49407 100644
--- a/nixos/modules/services/misc/gogs.nix
+++ b/nixos/modules/services/misc/gogs.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.gogs;
+  opt = options.services.gogs;
   configFile = pkgs.writeText "app.ini" ''
     APP_NAME = ${cfg.appName}
     RUN_USER = ${cfg.user}
@@ -129,6 +130,7 @@ in
         path = mkOption {
           type = types.str;
           default = "${cfg.stateDir}/data/gogs.db";
+          defaultText = literalExpression ''"''${config.${opt.stateDir}}/data/gogs.db"'';
           description = "Path to the sqlite3 database file.";
         };
       };
@@ -142,6 +144,7 @@ in
       repositoryRoot = mkOption {
         type = types.str;
         default = "${cfg.stateDir}/repositories";
+        defaultText = literalExpression ''"''${config.${opt.stateDir}}/repositories"'';
         description = "Path to the git repositories.";
       };
 
diff --git a/nixos/modules/services/misc/headphones.nix b/nixos/modules/services/misc/headphones.nix
index 3ee0a4458bd..31bd61cb4c2 100644
--- a/nixos/modules/services/misc/headphones.nix
+++ b/nixos/modules/services/misc/headphones.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
@@ -7,6 +7,7 @@ let
   name = "headphones";
 
   cfg = config.services.headphones;
+  opt = options.services.headphones;
 
 in
 
@@ -29,6 +30,7 @@ in
       configFile = mkOption {
         type = types.path;
         default = "${cfg.dataDir}/config.ini";
+        defaultText = literalExpression ''"''${config.${opt.dataDir}}/config.ini"'';
         description = "Path to config file.";
       };
       host = mkOption {
diff --git a/nixos/modules/services/misc/matrix-appservice-discord.nix b/nixos/modules/services/misc/matrix-appservice-discord.nix
index 947471e56b4..8a8c7f41e3c 100644
--- a/nixos/modules/services/misc/matrix-appservice-discord.nix
+++ b/nixos/modules/services/misc/matrix-appservice-discord.nix
@@ -1,4 +1,4 @@
-{ config, pkgs, lib, ... }:
+{ config, options, pkgs, lib, ... }:
 
 with lib;
 
@@ -7,6 +7,7 @@ let
   registrationFile = "${dataDir}/discord-registration.yaml";
   appDir = "${pkgs.matrix-appservice-discord}/${pkgs.matrix-appservice-discord.passthru.nodeAppDir}";
   cfg = config.services.matrix-appservice-discord;
+  opt = options.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);
 
@@ -74,6 +75,7 @@ in {
       url = mkOption {
         type = types.str;
         default = "http://localhost:${toString cfg.port}";
+        defaultText = literalExpression ''"http://localhost:''${toString config.${opt.port}}"'';
         description = ''
           The URL where the application service is listening for HS requests.
         '';
diff --git a/nixos/modules/services/misc/matrix-synapse.nix b/nixos/modules/services/misc/matrix-synapse.nix
index 0f96f6b1ee2..404163d2de6 100644
--- a/nixos/modules/services/misc/matrix-synapse.nix
+++ b/nixos/modules/services/misc/matrix-synapse.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.matrix-synapse;
+  opt = options.services.matrix-synapse;
   pg = config.services.postgresql;
   usePostgresql = cfg.database_type == "psycopg2";
   logConfigFile = pkgs.writeText "log_config.yaml" cfg.logConfig;
@@ -197,7 +198,7 @@ in {
       tls_certificate_path = mkOption {
         type = types.nullOr types.str;
         default = null;
-        example = "${cfg.dataDir}/homeserver.tls.crt";
+        example = "/var/lib/matrix-synapse/homeserver.tls.crt";
         description = ''
           PEM encoded X509 certificate for TLS.
           You can replace the self-signed certificate that synapse
@@ -209,7 +210,7 @@ in {
       tls_private_key_path = mkOption {
         type = types.nullOr types.str;
         default = null;
-        example = "${cfg.dataDir}/homeserver.tls.key";
+        example = "/var/lib/matrix-synapse/homeserver.tls.key";
         description = ''
           PEM encoded private key for TLS. Specify null if synapse is not
           speaking TLS directly.
@@ -218,7 +219,7 @@ in {
       tls_dh_params_path = mkOption {
         type = types.nullOr types.str;
         default = null;
-        example = "${cfg.dataDir}/homeserver.tls.dh";
+        example = "/var/lib/matrix-synapse/homeserver.tls.dh";
         description = ''
           PEM dh parameters for ephemeral keys
         '';
@@ -408,6 +409,29 @@ in {
             database = cfg.database_name;
           };
         }.${cfg.database_type};
+        defaultText = literalDocBook ''
+          <variablelist>
+            <varlistentry>
+              <term>using sqlite3</term>
+              <listitem>
+                <programlisting>
+                  { database = "''${config.${opt.dataDir}}/homeserver.db"; }
+                </programlisting>
+              </listitem>
+            </varlistentry>
+            <varlistentry>
+              <term>using psycopg2</term>
+              <listitem>
+                <programlisting>
+                  psycopg2 = {
+                    user = config.${opt.database_user};
+                    database = config.${opt.database_name};
+                  }
+                </programlisting>
+              </listitem>
+            </varlistentry>
+          </variablelist>
+        '';
         description = ''
           Arguments to pass to the engine.
         '';
@@ -739,7 +763,7 @@ in {
       after = [ "network.target" ] ++ optional hasLocalPostgresDB "postgresql.service";
       wantedBy = [ "multi-user.target" ];
       preStart = ''
-        ${cfg.package}/bin/homeserver \
+        ${cfg.package}/bin/synapse_homeserver \
           --config-path ${configFile} \
           --keys-directory ${cfg.dataDir} \
           --generate-keys
@@ -759,7 +783,7 @@ in {
           chmod 0600 ${cfg.dataDir}/homeserver.signing.key
         '')) ];
         ExecStart = ''
-          ${cfg.package}/bin/homeserver \
+          ${cfg.package}/bin/synapse_homeserver \
             ${ concatMapStringsSep "\n  " (x: "--config-path ${x} \\") ([ configFile ] ++ cfg.extraConfigFiles) }
             --keys-directory ${cfg.dataDir}
         '';
diff --git a/nixos/modules/services/misc/mediatomb.nix b/nixos/modules/services/misc/mediatomb.nix
index 383090575b2..ea9ffbb8677 100644
--- a/nixos/modules/services/misc/mediatomb.nix
+++ b/nixos/modules/services/misc/mediatomb.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
@@ -6,6 +6,7 @@ let
 
   gid = config.ids.gids.mediatomb;
   cfg = config.services.mediatomb;
+  opt = options.services.mediatomb;
   name = cfg.package.pname;
   pkg = cfg.package;
   optionYesNo = option: if option then "yes" else "no";
@@ -261,6 +262,7 @@ in {
       dataDir = mkOption {
         type = types.path;
         default = "/var/lib/${name}";
+        defaultText = literalExpression ''"/var/lib/''${config.${opt.package}.pname}"'';
         description = ''
           The directory where Gerbera/Mediatomb stores its state, data, etc.
         '';
@@ -277,13 +279,13 @@ in {
       user = mkOption {
         type = types.str;
         default = "mediatomb";
-        description = "User account under which ${name} runs.";
+        description = "User account under which the service runs.";
       };
 
       group = mkOption {
         type = types.str;
         default = "mediatomb";
-        description = "Group account under which ${name} runs.";
+        description = "Group account under which the service runs.";
       };
 
       port = mkOption {
@@ -340,7 +342,7 @@ in {
         type = types.bool;
         default = false;
         description = ''
-          Allow ${name} to create and use its own config file inside the <literal>dataDir</literal> as
+          Allow the service to create and use its own config file inside the <literal>dataDir</literal> as
           configured by <option>services.mediatomb.dataDir</option>.
           Deactivated by default, the service then runs with the configuration generated from this module.
           Otherwise, when enabled, no service configuration is generated. Gerbera/Mediatomb then starts using
diff --git a/nixos/modules/services/misc/moonraker.nix b/nixos/modules/services/misc/moonraker.nix
index e08d2f84212..ae57aaa6d47 100644
--- a/nixos/modules/services/misc/moonraker.nix
+++ b/nixos/modules/services/misc/moonraker.nix
@@ -1,8 +1,9 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 with lib;
 let
   pkg = pkgs.moonraker;
   cfg = config.services.moonraker;
+  opt = options.services.moonraker;
   format = pkgs.formats.ini {
     # https://github.com/NixOS/nixpkgs/pull/121613#issuecomment-885241996
     listToValue = l:
@@ -31,6 +32,7 @@ in {
       configDir = mkOption {
         type = types.path;
         default = cfg.stateDir + "/config";
+        defaultText = literalExpression ''config.${opt.stateDir} + "/config"'';
         description = ''
           The directory containing client-writable configuration files.
 
diff --git a/nixos/modules/services/misc/mwlib.nix b/nixos/modules/services/misc/mwlib.nix
index 8dd17c06c0b..fedc1e5542a 100644
--- a/nixos/modules/services/misc/mwlib.nix
+++ b/nixos/modules/services/misc/mwlib.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.mwlib;
+  opt = options.services.mwlib;
   pypkgs = pkgs.python27Packages;
 
   inherit (pypkgs) python mwlib;
@@ -46,6 +47,9 @@ in
 
       qserve = mkOption {
         default = [ "${cfg.qserve.address}:${toString cfg.qserve.port}" ];
+        defaultText = literalExpression ''
+          [ "''${config.${opt.qserve.address}}:''${toString config.${opt.qserve.port}}"
+        ]'';
         type = types.listOf types.str;
         description = "Register qserve instance.";
       }; # nserve.qserve
@@ -96,6 +100,7 @@ in
     nslave = {
       enable = mkOption {
         default = cfg.qserve.enable;
+        defaultText = literalExpression "config.${opt.qserve.enable}";
         type = types.bool;
         description = ''
           Pulls new jobs from exactly one qserve instance
@@ -127,7 +132,7 @@ in
           You have to enable it, or use your own way for serving files
           and set the http.url option accordingly.
           '';
-        type = types.submodule ({
+        type = types.submodule ({ config, options, ... }: {
           options = {
             enable = mkOption {
               default = true;
@@ -148,7 +153,8 @@ in
             }; # nslave.http.address
 
             url = mkOption {
-              default = "http://localhost:${toString cfg.nslave.http.port}/cache";
+              default = "http://localhost:${toString config.port}/cache";
+              defaultText = literalExpression ''"http://localhost:''${toString config.${options.port}}/cache"'';
               type = types.str;
               description = ''
                 Specify URL for accessing generated files from cache.
diff --git a/nixos/modules/services/misc/rippled.nix b/nixos/modules/services/misc/rippled.nix
index 9c66df2fce1..f6ec0677774 100644
--- a/nixos/modules/services/misc/rippled.nix
+++ b/nixos/modules/services/misc/rippled.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.rippled;
+  opt = options.services.rippled;
 
   b2i = val: if val then "1" else "0";
 
@@ -165,6 +166,7 @@ let
         description = "Location to store the database.";
         type = types.path;
         default = cfg.databasePath;
+        defaultText = literalExpression "config.${opt.databasePath}";
       };
 
       compression = mkOption {
@@ -177,6 +179,7 @@ let
         description = "Enable automatic purging of older ledger information.";
         type = types.nullOr (types.addCheck types.int (v: v > 256));
         default = cfg.ledgerHistory;
+        defaultText = literalExpression "config.${opt.ledgerHistory}";
       };
 
       advisoryDelete = mkOption {
@@ -398,6 +401,7 @@ in
       config = mkOption {
         internal = true;
         default = pkgs.writeText "rippled.conf" rippledCfg;
+        defaultText = literalDocBook "generated config file";
       };
     };
   };
diff --git a/nixos/modules/services/misc/sickbeard.nix b/nixos/modules/services/misc/sickbeard.nix
index 8e871309c98..a3db9928634 100644
--- a/nixos/modules/services/misc/sickbeard.nix
+++ b/nixos/modules/services/misc/sickbeard.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
@@ -7,6 +7,7 @@ let
   name = "sickbeard";
 
   cfg = config.services.sickbeard;
+  opt = options.services.sickbeard;
   sickbeard = cfg.package;
 
 in
@@ -39,6 +40,7 @@ in
       configFile = mkOption {
         type = types.path;
         default = "${cfg.dataDir}/config.ini";
+        defaultText = literalExpression ''"''${config.${opt.dataDir}}/config.ini"'';
         description = "Path to config file.";
       };
       port = mkOption {
diff --git a/nixos/modules/services/misc/sourcehut/builds.nix b/nixos/modules/services/misc/sourcehut/builds.nix
index f806e8c51b9..685a132d350 100644
--- a/nixos/modules/services/misc/sourcehut/builds.nix
+++ b/nixos/modules/services/misc/sourcehut/builds.nix
@@ -1,8 +1,9 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 let
   cfg = config.services.sourcehut;
+  opt = options.services.sourcehut;
   scfg = cfg.builds;
   rcfg = config.services.redis;
   iniKey = "builds.sr.ht";
@@ -38,6 +39,7 @@ in
     statePath = mkOption {
       type = types.path;
       default = "${cfg.statePath}/buildsrht";
+      defaultText = literalExpression ''"''${config.${opt.statePath}}/buildsrht"'';
       description = ''
         State path for builds.sr.ht.
       '';
@@ -61,7 +63,7 @@ in
               rev = "ff96a0fa5635770390b184ae74debea75c3fd534";
               ref = "nixos-unstable";
           };
-          image_from_nixpkgs = pkgs_unstable: (import ("${pkgs.sourcehut.buildsrht}/lib/images/nixos/image.nix") {
+          image_from_nixpkgs = pkgs_unstable: (import ("''${pkgs.sourcehut.buildsrht}/lib/images/nixos/image.nix") {
             pkgs = (import pkgs_unstable {});
           });
         in
diff --git a/nixos/modules/services/misc/sourcehut/dispatch.nix b/nixos/modules/services/misc/sourcehut/dispatch.nix
index a9db17bebe8..292a51d3e1c 100644
--- a/nixos/modules/services/misc/sourcehut/dispatch.nix
+++ b/nixos/modules/services/misc/sourcehut/dispatch.nix
@@ -1,8 +1,9 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 let
   cfg = config.services.sourcehut;
+  opt = options.services.sourcehut;
   cfgIni = cfg.settings;
   scfg = cfg.dispatch;
   iniKey = "dispatch.sr.ht";
@@ -38,6 +39,7 @@ in
     statePath = mkOption {
       type = types.path;
       default = "${cfg.statePath}/dispatchsrht";
+      defaultText = literalExpression ''"''${config.${opt.statePath}}/dispatchsrht"'';
       description = ''
         State path for dispatch.sr.ht.
       '';
diff --git a/nixos/modules/services/misc/sourcehut/git.nix b/nixos/modules/services/misc/sourcehut/git.nix
index 2653d77876d..5ce16df8cd8 100644
--- a/nixos/modules/services/misc/sourcehut/git.nix
+++ b/nixos/modules/services/misc/sourcehut/git.nix
@@ -1,8 +1,9 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 let
   cfg = config.services.sourcehut;
+  opt = options.services.sourcehut;
   scfg = cfg.git;
   iniKey = "git.sr.ht";
 
@@ -41,6 +42,7 @@ in
     statePath = mkOption {
       type = types.path;
       default = "${cfg.statePath}/gitsrht";
+      defaultText = literalExpression ''"''${config.${opt.statePath}}/gitsrht"'';
       description = ''
         State path for git.sr.ht.
       '';
diff --git a/nixos/modules/services/misc/sourcehut/hg.nix b/nixos/modules/services/misc/sourcehut/hg.nix
index 5cd36bb0455..6ba1df8b6dd 100644
--- a/nixos/modules/services/misc/sourcehut/hg.nix
+++ b/nixos/modules/services/misc/sourcehut/hg.nix
@@ -1,8 +1,9 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 let
   cfg = config.services.sourcehut;
+  opt = options.services.sourcehut;
   scfg = cfg.hg;
   iniKey = "hg.sr.ht";
 
@@ -40,6 +41,7 @@ in
     statePath = mkOption {
       type = types.path;
       default = "${cfg.statePath}/hgsrht";
+      defaultText = literalExpression ''"''${config.${opt.statePath}}/hgsrht"'';
       description = ''
         State path for hg.sr.ht.
       '';
diff --git a/nixos/modules/services/misc/sourcehut/hub.nix b/nixos/modules/services/misc/sourcehut/hub.nix
index be3ea21011c..7d137a76505 100644
--- a/nixos/modules/services/misc/sourcehut/hub.nix
+++ b/nixos/modules/services/misc/sourcehut/hub.nix
@@ -1,8 +1,9 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 let
   cfg = config.services.sourcehut;
+  opt = options.services.sourcehut;
   cfgIni = cfg.settings;
   scfg = cfg.hub;
   iniKey = "hub.sr.ht";
@@ -38,6 +39,7 @@ in
     statePath = mkOption {
       type = types.path;
       default = "${cfg.statePath}/hubsrht";
+      defaultText = literalExpression ''"''${config.${opt.statePath}}/hubsrht"'';
       description = ''
         State path for hub.sr.ht.
       '';
diff --git a/nixos/modules/services/misc/sourcehut/lists.nix b/nixos/modules/services/misc/sourcehut/lists.nix
index 7b1fe9fd463..76f155caa05 100644
--- a/nixos/modules/services/misc/sourcehut/lists.nix
+++ b/nixos/modules/services/misc/sourcehut/lists.nix
@@ -1,11 +1,12 @@
 # Email setup is fairly involved, useful references:
 # https://drewdevault.com/2018/08/05/Local-mail-server.html
 
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 let
   cfg = config.services.sourcehut;
+  opt = options.services.sourcehut;
   cfgIni = cfg.settings;
   scfg = cfg.lists;
   iniKey = "lists.sr.ht";
@@ -42,6 +43,7 @@ in
     statePath = mkOption {
       type = types.path;
       default = "${cfg.statePath}/listssrht";
+      defaultText = literalExpression ''"''${config.${opt.statePath}}/listssrht"'';
       description = ''
         State path for lists.sr.ht.
       '';
diff --git a/nixos/modules/services/misc/sourcehut/man.nix b/nixos/modules/services/misc/sourcehut/man.nix
index 7693396d187..8ca271c32ee 100644
--- a/nixos/modules/services/misc/sourcehut/man.nix
+++ b/nixos/modules/services/misc/sourcehut/man.nix
@@ -1,8 +1,9 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 let
   cfg = config.services.sourcehut;
+  opt = options.services.sourcehut;
   cfgIni = cfg.settings;
   scfg = cfg.man;
   iniKey = "man.sr.ht";
@@ -38,6 +39,7 @@ in
     statePath = mkOption {
       type = types.path;
       default = "${cfg.statePath}/mansrht";
+      defaultText = literalExpression ''"''${config.${opt.statePath}}/mansrht"'';
       description = ''
         State path for man.sr.ht.
       '';
diff --git a/nixos/modules/services/misc/sourcehut/meta.nix b/nixos/modules/services/misc/sourcehut/meta.nix
index 56127a824eb..33e4f2332b5 100644
--- a/nixos/modules/services/misc/sourcehut/meta.nix
+++ b/nixos/modules/services/misc/sourcehut/meta.nix
@@ -1,8 +1,9 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 let
   cfg = config.services.sourcehut;
+  opt = options.services.sourcehut;
   cfgIni = cfg.settings;
   scfg = cfg.meta;
   iniKey = "meta.sr.ht";
@@ -39,6 +40,7 @@ in
     statePath = mkOption {
       type = types.path;
       default = "${cfg.statePath}/metasrht";
+      defaultText = literalExpression ''"''${config.${opt.statePath}}/metasrht"'';
       description = ''
         State path for meta.sr.ht.
       '';
diff --git a/nixos/modules/services/misc/sourcehut/paste.nix b/nixos/modules/services/misc/sourcehut/paste.nix
index b2d5151969e..b481ebaf891 100644
--- a/nixos/modules/services/misc/sourcehut/paste.nix
+++ b/nixos/modules/services/misc/sourcehut/paste.nix
@@ -1,8 +1,9 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 let
   cfg = config.services.sourcehut;
+  opt = options.services.sourcehut;
   cfgIni = cfg.settings;
   scfg = cfg.paste;
   iniKey = "paste.sr.ht";
@@ -39,6 +40,7 @@ in
     statePath = mkOption {
       type = types.path;
       default = "${cfg.statePath}/pastesrht";
+      defaultText = literalExpression ''"''${config.${opt.statePath}}/pastesrht"'';
       description = ''
         State path for pastesrht.sr.ht.
       '';
diff --git a/nixos/modules/services/misc/sourcehut/todo.nix b/nixos/modules/services/misc/sourcehut/todo.nix
index aec773b0669..262fa48f59d 100644
--- a/nixos/modules/services/misc/sourcehut/todo.nix
+++ b/nixos/modules/services/misc/sourcehut/todo.nix
@@ -1,8 +1,9 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 let
   cfg = config.services.sourcehut;
+  opt = options.services.sourcehut;
   cfgIni = cfg.settings;
   scfg = cfg.todo;
   iniKey = "todo.sr.ht";
@@ -39,6 +40,7 @@ in
     statePath = mkOption {
       type = types.path;
       default = "${cfg.statePath}/todosrht";
+      defaultText = literalExpression ''"''${config.${opt.statePath}}/todosrht"'';
       description = ''
         State path for todo.sr.ht.
       '';
diff --git a/nixos/modules/services/misc/subsonic.nix b/nixos/modules/services/misc/subsonic.nix
index 98b85918ad1..2dda8970dd3 100644
--- a/nixos/modules/services/misc/subsonic.nix
+++ b/nixos/modules/services/misc/subsonic.nix
@@ -1,8 +1,11 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
-let cfg = config.services.subsonic; in {
+let
+  cfg = config.services.subsonic;
+  opt = options.services.subsonic;
+in {
   options = {
     services.subsonic = {
       enable = mkEnableOption "Subsonic daemon";
@@ -97,7 +100,7 @@ let cfg = config.services.subsonic; in {
         description = ''
           List of paths to transcoder executables that should be accessible
           from Subsonic. Symlinks will be created to each executable inside
-          ${cfg.home}/transcoders.
+          ''${config.${opt.home}}/transcoders.
         '';
       };
     };
diff --git a/nixos/modules/services/misc/zoneminder.nix b/nixos/modules/services/misc/zoneminder.nix
index 378da7b8744..407742f72ad 100644
--- a/nixos/modules/services/misc/zoneminder.nix
+++ b/nixos/modules/services/misc/zoneminder.nix
@@ -171,7 +171,7 @@ in {
         example = "/storage/tank";
         description = ''
           ZoneMinder can generate quite a lot of data, so in case you don't want
-          to use the default ${home}, you can override the path here.
+          to use the default ${defaultDir}, you can override the path here.
         '';
       };
 
diff --git a/nixos/modules/services/monitoring/grafana.nix b/nixos/modules/services/monitoring/grafana.nix
index 5067047e969..81fca33f5fe 100644
--- a/nixos/modules/services/monitoring/grafana.nix
+++ b/nixos/modules/services/monitoring/grafana.nix
@@ -404,6 +404,7 @@ in {
       path = mkOption {
         description = "Database path.";
         default = "${cfg.dataDir}/data/grafana.db";
+        defaultText = literalExpression ''"''${config.${opt.dataDir}}/data/grafana.db"'';
         type = types.path;
       };
 
diff --git a/nixos/modules/services/monitoring/graphite.nix b/nixos/modules/services/monitoring/graphite.nix
index 0dbb33530c9..baa943302a0 100644
--- a/nixos/modules/services/monitoring/graphite.nix
+++ b/nixos/modules/services/monitoring/graphite.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.graphite;
+  opt = options.services.graphite;
   writeTextOrNull = f: t: mapNullable (pkgs.writeTextDir f) t;
 
   dataDir = cfg.dataDir;
@@ -171,6 +172,13 @@ in {
             directories:
                 - ${dataDir}/whisper
         '';
+        defaultText = literalExpression ''
+          '''
+            whisper:
+              directories:
+                - ''${config.${opt.dataDir}}/whisper
+          '''
+        '';
         example = ''
           allowed_origins:
             - dashboard.example.com
@@ -312,12 +320,14 @@ in {
 
       seyrenUrl = mkOption {
         default = "http://localhost:${toString cfg.seyren.port}/";
+        defaultText = literalExpression ''"http://localhost:''${toString config.${opt.seyren.port}}/"'';
         description = "Host where seyren is accessible.";
         type = types.str;
       };
 
       graphiteUrl = mkOption {
         default = "http://${cfg.web.listenAddress}:${toString cfg.web.port}";
+        defaultText = literalExpression ''"http://''${config.${opt.web.listenAddress}}:''${toString config.${opt.web.port}}"'';
         description = "Host where graphite service runs.";
         type = types.str;
       };
diff --git a/nixos/modules/services/monitoring/parsedmarc.nix b/nixos/modules/services/monitoring/parsedmarc.nix
index 8571e1f01ed..ec71365ba3c 100644
--- a/nixos/modules/services/monitoring/parsedmarc.nix
+++ b/nixos/modules/services/monitoring/parsedmarc.nix
@@ -1,7 +1,8 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 let
   cfg = config.services.parsedmarc;
+  opt = options.services.parsedmarc;
   ini = pkgs.formats.ini {};
 in
 {
@@ -80,6 +81,9 @@ in
         datasource = lib.mkOption {
           type = lib.types.bool;
           default = cfg.provision.elasticsearch && config.services.grafana.enable;
+          defaultText = lib.literalExpression ''
+            config.${opt.provision.elasticsearch} && config.${options.services.grafana.enable}
+          '';
           apply = x: x && cfg.provision.elasticsearch;
           description = ''
             Whether the automatically provisioned Elasticsearch
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/fastly.nix b/nixos/modules/services/monitoring/prometheus/exporters/fastly.nix
index 5b35bb29a30..55a61c4949e 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters/fastly.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters/fastly.nix
@@ -32,10 +32,10 @@ in
     script = ''
       ${optionalString (cfg.tokenPath != null)
       "export FASTLY_API_TOKEN=$(cat ${toString cfg.tokenPath})"}
-      ${pkgs.fastly-exporter}/bin/fastly-exporter \
-        -endpoint http://${cfg.listenAddress}:${cfg.port}/metrics
+      ${pkgs.prometheus-fastly-exporter}/bin/fastly-exporter \
+        -listen http://${cfg.listenAddress}:${toString cfg.port}
         ${optionalString cfg.debug "-debug true"} \
-        ${optionalString cfg.configFile "-config-file ${cfg.configFile}"}
+        ${optionalString (cfg.configFile != null) "-config-file ${cfg.configFile}"}
     '';
   };
 }
diff --git a/nixos/modules/services/monitoring/smartd.nix b/nixos/modules/services/monitoring/smartd.nix
index 73021b1b4d3..6d39cc3e4e6 100644
--- a/nixos/modules/services/monitoring/smartd.nix
+++ b/nixos/modules/services/monitoring/smartd.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
@@ -8,6 +8,7 @@ let
        + optionalString (config.networking.domain != null) ".${config.networking.domain}";
 
   cfg = config.services.smartd;
+  opt = options.services.smartd;
 
   nm = cfg.notifications.mail;
   nw = cfg.notifications.wall;
@@ -211,6 +212,7 @@ in
 
         autodetected = mkOption {
           default = cfg.defaults.monitored;
+          defaultText = literalExpression "config.${opt.defaults.monitored}";
           type = types.separatedString " ";
           description = ''
             Like <option>services.smartd.defaults.monitored</option>, but for the
diff --git a/nixos/modules/services/monitoring/thanos.nix b/nixos/modules/services/monitoring/thanos.nix
index da626788d82..9e93d8dbb0e 100644
--- a/nixos/modules/services/monitoring/thanos.nix
+++ b/nixos/modules/services/monitoring/thanos.nix
@@ -83,6 +83,9 @@ let
   mkArgumentsOption = cmd: mkOption {
     type = types.listOf types.str;
     default = argumentsOf cmd;
+    defaultText = literalDocBook ''
+      calculated from <literal>config.services.thanos.${cmd}</literal>
+    '';
     description = ''
       Arguments to the <literal>thanos ${cmd}</literal> command.
 
diff --git a/nixos/modules/services/monitoring/uptime.nix b/nixos/modules/services/monitoring/uptime.nix
index 245badc3e44..79b86be6cc7 100644
--- a/nixos/modules/services/monitoring/uptime.nix
+++ b/nixos/modules/services/monitoring/uptime.nix
@@ -1,8 +1,9 @@
-{ config, pkgs, lib, ... }:
+{ config, options, pkgs, lib, ... }:
 let
-  inherit (lib) mkOption mkEnableOption mkIf mkMerge types optional;
+  inherit (lib) literalExpression mkOption mkEnableOption mkIf mkMerge types optional;
 
   cfg = config.services.uptime;
+  opt = options.services.uptime;
 
   configDir = pkgs.runCommand "config" { preferLocalBuild = true; }
   (if cfg.configFile != null then ''
@@ -52,7 +53,10 @@ in {
 
     enableWebService = mkEnableOption "the uptime monitoring program web service";
 
-    enableSeparateMonitoringService = mkEnableOption "the uptime monitoring service" // { default = cfg.enableWebService; };
+    enableSeparateMonitoringService = mkEnableOption "the uptime monitoring service" // {
+      default = cfg.enableWebService;
+      defaultText = literalExpression "config.${opt.enableWebService}";
+    };
 
     nodeEnv = mkOption {
       description = "The node environment to run in (development, production, etc.)";
diff --git a/nixos/modules/services/monitoring/zabbix-proxy.nix b/nixos/modules/services/monitoring/zabbix-proxy.nix
index b5009f47f17..0ebd7bcff83 100644
--- a/nixos/modules/services/monitoring/zabbix-proxy.nix
+++ b/nixos/modules/services/monitoring/zabbix-proxy.nix
@@ -1,7 +1,8 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 let
   cfg = config.services.zabbixProxy;
+  opt = options.services.zabbixProxy;
   pgsql = config.services.postgresql;
   mysql = config.services.mysql;
 
@@ -103,6 +104,11 @@ in
         port = mkOption {
           type = types.int;
           default = if cfg.database.type == "mysql" then mysql.port else pgsql.port;
+          defaultText = literalExpression ''
+            if config.${opt.database.type} == "mysql"
+            then config.${options.services.mysql.port}
+            else config.${options.services.postgresql.port}
+          '';
           description = "Database host port.";
         };
 
diff --git a/nixos/modules/services/monitoring/zabbix-server.nix b/nixos/modules/services/monitoring/zabbix-server.nix
index 0141c073da2..9f960517a81 100644
--- a/nixos/modules/services/monitoring/zabbix-server.nix
+++ b/nixos/modules/services/monitoring/zabbix-server.nix
@@ -1,7 +1,8 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 let
   cfg = config.services.zabbixServer;
+  opt = options.services.zabbixServer;
   pgsql = config.services.postgresql;
   mysql = config.services.mysql;
 
@@ -95,6 +96,11 @@ in
         port = mkOption {
           type = types.int;
           default = if cfg.database.type == "mysql" then mysql.port else pgsql.port;
+          defaultText = literalExpression ''
+            if config.${opt.database.type} == "mysql"
+            then config.${options.services.mysql.port}
+            else config.${options.services.postgresql.port}
+          '';
           description = "Database host port.";
         };
 
diff --git a/nixos/modules/services/networking/amuled.nix b/nixos/modules/services/networking/amuled.nix
index 39320643dd5..e55ac7a6b18 100644
--- a/nixos/modules/services/networking/amuled.nix
+++ b/nixos/modules/services/networking/amuled.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.amule;
+  opt = options.services.amule;
   user = if cfg.user != null then cfg.user else "amule";
 in
 
@@ -26,6 +27,9 @@ in
       dataDir = mkOption {
         type = types.str;
         default = "/home/${user}/";
+        defaultText = literalExpression ''
+          "/home/''${config.${opt.user}}/"
+        '';
         description = ''
           The directory holding configuration, incoming and temporary files.
         '';
diff --git a/nixos/modules/services/networking/dhcpcd.nix b/nixos/modules/services/networking/dhcpcd.nix
index 31e4b6ad298..2c339350acd 100644
--- a/nixos/modules/services/networking/dhcpcd.nix
+++ b/nixos/modules/services/networking/dhcpcd.nix
@@ -207,13 +207,20 @@ in
 
         serviceConfig =
           { Type = "forking";
-            PIDFile = "/run/dhcpcd.pid";
+            PIDFile = "/run/dhcpcd/pid";
+            RuntimeDirectory = "dhcpcd";
             ExecStart = "@${dhcpcd}/sbin/dhcpcd dhcpcd --quiet ${optionalString cfg.persistent "--persistent"} --config ${dhcpcdConf}";
             ExecReload = "${dhcpcd}/sbin/dhcpcd --rebind";
             Restart = "always";
           };
       };
 
+    users.users.dhcpcd = {
+      isSystemUser = true;
+      group = "dhcpcd";
+    };
+    users.groups.dhcpcd = {};
+
     environment.systemPackages = [ dhcpcd ];
 
     environment.etc."dhcpcd.exit-hook".source = exitHook;
diff --git a/nixos/modules/services/networking/ergo.nix b/nixos/modules/services/networking/ergo.nix
index c52de30dc36..6e55a7cfff6 100644
--- a/nixos/modules/services/networking/ergo.nix
+++ b/nixos/modules/services/networking/ergo.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 let
   cfg = config.services.ergo;
+  opt = options.services.ergo;
 
-  inherit (lib) mkEnableOption mkIf mkOption optionalString types;
+  inherit (lib) literalExpression mkEnableOption mkIf mkOption optionalString types;
 
   configFile = pkgs.writeText "ergo.conf" (''
 ergo {
@@ -92,6 +93,7 @@ in {
       group = mkOption {
         type = types.str;
         default = cfg.user;
+        defaultText = literalExpression "config.${opt.user}";
         description = "The group as which to run the Ergo node.";
       };
 
diff --git a/nixos/modules/services/networking/firewall.nix b/nixos/modules/services/networking/firewall.nix
index b5b46fe6042..ff023a888f2 100644
--- a/nixos/modules/services/networking/firewall.nix
+++ b/nixos/modules/services/networking/firewall.nix
@@ -421,6 +421,7 @@ in
       checkReversePath = mkOption {
         type = types.either types.bool (types.enum ["strict" "loose"]);
         default = kernelHasRPFilter;
+        defaultText = literalDocBook "<literal>true</literal> if supported by the chosen kernel";
         example = "loose";
         description =
           ''
diff --git a/nixos/modules/services/networking/jibri/default.nix b/nixos/modules/services/networking/jibri/default.nix
index 96832b0eb55..113a7aa4384 100644
--- a/nixos/modules/services/networking/jibri/default.nix
+++ b/nixos/modules/services/networking/jibri/default.nix
@@ -132,7 +132,7 @@ in
         pkgs.writeScript "finalize_recording.sh" ''''''
         #!/bin/sh
         RECORDINGS_DIR=$1
-        ${pkgs.rclone}/bin/rclone copy $RECORDINGS_DIR RCLONE_REMOTE:jibri-recordings/ -v --log-file=/var/log/jitsi/jibri/recording-upload.txt
+        ''${pkgs.rclone}/bin/rclone copy $RECORDINGS_DIR RCLONE_REMOTE:jibri-recordings/ -v --log-file=/var/log/jitsi/jibri/recording-upload.txt
         exit 0
         '''''';
       '';
diff --git a/nixos/modules/services/networking/ntopng.nix b/nixos/modules/services/networking/ntopng.nix
index c1525711713..77a004e8ab3 100644
--- a/nixos/modules/services/networking/ntopng.nix
+++ b/nixos/modules/services/networking/ntopng.nix
@@ -1,10 +1,11 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
 
   cfg = config.services.ntopng;
+  opt = options.services.ntopng;
   redisCfg = config.services.redis;
 
   configFile = if cfg.configText != "" then
@@ -35,8 +36,8 @@ in
           collection tool.
 
           With the default configuration, ntopng monitors all network
-          interfaces and displays its findings at http://localhost:${toString
-          cfg.http-port}. Default username and password is admin/admin.
+          interfaces and displays its findings at http://localhost:''${toString
+          config.${opt.http-port}}. Default username and password is admin/admin.
 
           See the ntopng(8) manual page and http://www.ntop.org/products/ntop/
           for more info.
diff --git a/nixos/modules/services/networking/quassel.nix b/nixos/modules/services/networking/quassel.nix
index 22940ef7a13..844c9a6b8b3 100644
--- a/nixos/modules/services/networking/quassel.nix
+++ b/nixos/modules/services/networking/quassel.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.quassel;
+  opt = options.services.quassel;
   quassel = cfg.package;
   user = if cfg.user != null then cfg.user else "quassel";
 in
@@ -63,6 +64,9 @@ in
 
       dataDir = mkOption {
         default = "/home/${user}/.config/quassel-irc.org";
+        defaultText = literalExpression ''
+          "/home/''${config.${opt.user}}/.config/quassel-irc.org"
+        '';
         type = types.str;
         description = ''
           The directory holding configuration files, the SQlite database and the SSL Cert.
diff --git a/nixos/modules/services/networking/quorum.nix b/nixos/modules/services/networking/quorum.nix
index 50148dc314d..bddcd18c7fb 100644
--- a/nixos/modules/services/networking/quorum.nix
+++ b/nixos/modules/services/networking/quorum.nix
@@ -1,9 +1,10 @@
-{ config, pkgs, lib, ... }:
+{ config, options, pkgs, lib, ... }:
 let
 
   inherit (lib) mkEnableOption mkIf mkOption literalExpression types optionalString;
 
   cfg = config.services.quorum;
+  opt = options.services.quorum;
   dataDir = "/var/lib/quorum";
   genesisFile = pkgs.writeText "genesis.json" (builtins.toJSON cfg.genesis);
   staticNodesFile = pkgs.writeText "static-nodes.json" (builtins.toJSON cfg.staticNodes);
@@ -23,6 +24,7 @@ in {
       group = mkOption {
         type = types.str;
         default = cfg.user;
+        defaultText = literalExpression "config.${opt.user}";
         description = "The group as which to run quorum.";
       };
 
diff --git a/nixos/modules/services/networking/syncthing.nix b/nixos/modules/services/networking/syncthing.nix
index 8c44687a382..e37e324019e 100644
--- a/nixos/modules/services/networking/syncthing.nix
+++ b/nixos/modules/services/networking/syncthing.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.syncthing;
+  opt = options.services.syncthing;
   defaultUser = "syncthing";
   defaultGroup = defaultUser;
 
@@ -431,7 +432,26 @@ in {
           The path where the settings and keys will exist.
         '';
         default = cfg.dataDir + optionalString cond "/.config/syncthing";
-        defaultText = literalExpression "dataDir${optionalString cond " + \"/.config/syncthing\""}";
+        defaultText = literalDocBook ''
+          <variablelist>
+            <varlistentry>
+              <term><literal>stateVersion >= 19.03</literal></term>
+              <listitem>
+                <programlisting>
+                  config.${opt.dataDir} + "/.config/syncthing"
+                </programlisting>
+              </listitem>
+            </varlistentry>
+            <varlistentry>
+              <term>otherwise</term>
+              <listitem>
+                <programlisting>
+                  config.${opt.dataDir}
+                </programlisting>
+              </listitem>
+            </varlistentry>
+          </variablelist>
+        '';
       };
 
       extraFlags = mkOption {
diff --git a/nixos/modules/services/networking/unifi.nix b/nixos/modules/services/networking/unifi.nix
index 174e919f988..a683c537f05 100644
--- a/nixos/modules/services/networking/unifi.nix
+++ b/nixos/modules/services/networking/unifi.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, utils, ... }:
+{ config, options, lib, pkgs, utils, ... }:
 with lib;
 let
   cfg = config.services.unifi;
@@ -7,7 +7,6 @@ let
     @${cfg.jrePackage}/bin/java java \
         ${optionalString (cfg.initialJavaHeapSize != null) "-Xms${(toString cfg.initialJavaHeapSize)}m"} \
         ${optionalString (cfg.maximumJavaHeapSize != null) "-Xmx${(toString cfg.maximumJavaHeapSize)}m"} \
-        ${optionalString (lib.versionOlder cfg.unifiPackage.version "6.5.54") "-Dlog4j2.formatMsgNoLookups=true"} \
         -jar ${stateDir}/lib/ace.jar
   '';
 in
@@ -50,7 +49,7 @@ in
       '';
     };
 
-    services.unifi.openPorts = mkOption {
+    services.unifi.openFirewall = mkOption {
       type = types.bool;
       default = true;
       description = ''
@@ -86,6 +85,10 @@ in
 
   config = mkIf cfg.enable {
 
+    warnings = optional
+      (options.services.unifi.openFirewall.highestPrio >= (mkOptionDefault null).priority)
+      "The current services.unifi.openFirewall = true default is deprecated and will change to false in 22.11. Set it explicitly to silence this warning.";
+
     users.users.unifi = {
       isSystemUser = true;
       group = "unifi";
@@ -94,7 +97,7 @@ in
     };
     users.groups.unifi = {};
 
-    networking.firewall = mkIf cfg.openPorts {
+    networking.firewall = mkIf cfg.openFirewall {
       # https://help.ubnt.com/hc/en-us/articles/218506997
       allowedTCPPorts = [
         8080  # Port for UAP to inform controller.
@@ -192,6 +195,7 @@ in
   };
   imports = [
     (mkRemovedOptionModule [ "services" "unifi" "dataDir" ] "You should move contents of dataDir to /var/lib/unifi/data" )
+    (mkRenamedOptionModule [ "services" "unifi" "openPorts" ] [ "services" "unifi" "openFirewall" ])
   ];
 
   meta.maintainers = with lib.maintainers; [ erictapen pennae ];
diff --git a/nixos/modules/services/networking/wasabibackend.nix b/nixos/modules/services/networking/wasabibackend.nix
index 8482823e197..b6dcd940915 100644
--- a/nixos/modules/services/networking/wasabibackend.nix
+++ b/nixos/modules/services/networking/wasabibackend.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 let
   cfg = config.services.wasabibackend;
+  opt = options.services.wasabibackend;
 
-  inherit (lib) mkEnableOption mkIf mkOption optionalAttrs optionalString types;
+  inherit (lib) literalExpression mkEnableOption mkIf mkOption optionalAttrs optionalString types;
 
   confOptions = {
       BitcoinRpcConnectionString = "${cfg.rpc.user}:${cfg.rpc.password}";
@@ -103,6 +104,7 @@ in {
       group = mkOption {
         type = types.str;
         default = cfg.user;
+        defaultText = literalExpression "config.${opt.user}";
         description = "The group as which to run the wasabibackend node.";
       };
     };
diff --git a/nixos/modules/services/networking/wireguard.nix b/nixos/modules/services/networking/wireguard.nix
index 55b84935b6c..7cd44b2f8a0 100644
--- a/nixos/modules/services/networking/wireguard.nix
+++ b/nixos/modules/services/networking/wireguard.nix
@@ -1,10 +1,11 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
 
   cfg = config.networking.wireguard;
+  opt = options.networking.wireguard;
 
   kernel = config.boot.kernelPackages;
 
@@ -438,6 +439,7 @@ in
         type = types.bool;
         # 2019-05-25: Backwards compatibility.
         default = cfg.interfaces != {};
+        defaultText = literalExpression "config.${opt.interfaces} != { }";
         example = true;
       };
 
diff --git a/nixos/modules/services/networking/wpa_supplicant.nix b/nixos/modules/services/networking/wpa_supplicant.nix
index 4aa350d21a2..07dec8ea718 100644
--- a/nixos/modules/services/networking/wpa_supplicant.nix
+++ b/nixos/modules/services/networking/wpa_supplicant.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, utils, ... }:
+{ config, lib, options, pkgs, utils, ... }:
 
 with lib;
 
@@ -8,6 +8,7 @@ let
     else pkgs.wpa_supplicant;
 
   cfg = config.networking.wireless;
+  opt = options.networking.wireless;
 
   # Content of wpa_supplicant.conf
   generatedConfig = concatStringsSep "\n" (
@@ -421,6 +422,7 @@ in {
       dbusControlled = mkOption {
         type = types.bool;
         default = lib.length cfg.interfaces < 2;
+        defaultText = literalExpression "length config.${opt.interfaces} < 2";
         description = ''
           Whether to enable the DBus control interface.
           This is only needed when using NetworkManager or connman.
diff --git a/nixos/modules/services/search/kibana.nix b/nixos/modules/services/search/kibana.nix
index 381f5156ceb..e4ab85be9ef 100644
--- a/nixos/modules/services/search/kibana.nix
+++ b/nixos/modules/services/search/kibana.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.kibana;
+  opt = options.services.kibana;
 
   ge7 = builtins.compareVersions cfg.package.version "7" >= 0;
   lt6_6 = builtins.compareVersions cfg.package.version "6.6" < 0;
@@ -130,6 +131,9 @@ in {
           This defaults to the singleton list [ca] when the <option>ca</option> option is defined.
         '';
         default = if cfg.elasticsearch.ca == null then [] else [ca];
+        defaultText = literalExpression ''
+          if config.${opt.elasticsearch.ca} == null then [ ] else [ ca ]
+        '';
         type = types.listOf types.path;
       };
 
diff --git a/nixos/modules/services/security/privacyidea.nix b/nixos/modules/services/security/privacyidea.nix
index 05f4995cc41..dacbffec04e 100644
--- a/nixos/modules/services/security/privacyidea.nix
+++ b/nixos/modules/services/security/privacyidea.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.privacyidea;
+  opt = options.services.privacyidea;
 
   uwsgi = pkgs.uwsgi.override { plugins = [ "python3" ]; };
   python = uwsgi.python3;
@@ -112,6 +113,7 @@ in
       encFile = mkOption {
         type = types.str;
         default = "${cfg.stateDir}/enckey";
+        defaultText = literalExpression ''"''${config.${opt.stateDir}}/enckey"'';
         description = ''
           This is used to encrypt the token data and token passwords
         '';
@@ -120,6 +122,7 @@ in
       auditKeyPrivate = mkOption {
         type = types.str;
         default = "${cfg.stateDir}/private.pem";
+        defaultText = literalExpression ''"''${config.${opt.stateDir}}/private.pem"'';
         description = ''
           Private Key for signing the audit log.
         '';
@@ -128,6 +131,7 @@ in
       auditKeyPublic = mkOption {
         type = types.str;
         default = "${cfg.stateDir}/public.pem";
+        defaultText = literalExpression ''"''${config.${opt.stateDir}}/public.pem"'';
         description = ''
           Public key for checking signatures of the audit log.
         '';
diff --git a/nixos/modules/services/security/tor.nix b/nixos/modules/services/security/tor.nix
index c3e3248ee8a..f3ed1d160ee 100644
--- a/nixos/modules/services/security/tor.nix
+++ b/nixos/modules/services/security/tor.nix
@@ -1,10 +1,11 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with builtins;
 with lib;
 
 let
   cfg = config.services.tor;
+  opt = options.services.tor;
   stateDir = "/var/lib/tor";
   runDir = "/run/tor";
   descriptionGeneric = option: ''
@@ -799,6 +800,11 @@ in
           options.SOCKSPort = mkOption {
             description = descriptionGeneric "SOCKSPort";
             default = if cfg.settings.HiddenServiceNonAnonymousMode == true then [{port = 0;}] else [];
+            defaultText = literalExpression ''
+              if config.${opt.settings}.HiddenServiceNonAnonymousMode == true
+              then [ { port = 0; } ]
+              else [ ]
+            '';
             example = [{port = 9090;}];
             type = types.listOf (optionSOCKSPort true);
           };
diff --git a/nixos/modules/services/security/vault.nix b/nixos/modules/services/security/vault.nix
index b0ade62d97c..d48bc472cb8 100644
--- a/nixos/modules/services/security/vault.nix
+++ b/nixos/modules/services/security/vault.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.vault;
+  opt = options.services.vault;
 
   configFile = pkgs.writeText "vault.hcl" ''
     listener "tcp" {
@@ -83,6 +84,11 @@ in
       storagePath = mkOption {
         type = types.nullOr types.path;
         default = if cfg.storageBackend == "file" then "/var/lib/vault" else null;
+        defaultText = literalExpression ''
+          if config.${opt.storageBackend} == "file"
+          then "/var/lib/vault"
+          else null
+        '';
         description = "Data directory for file backend";
       };
 
diff --git a/nixos/modules/services/torrent/peerflix.nix b/nixos/modules/services/torrent/peerflix.nix
index 3e5f80960dc..821c829f6b4 100644
--- a/nixos/modules/services/torrent/peerflix.nix
+++ b/nixos/modules/services/torrent/peerflix.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.peerflix;
+  opt = options.services.peerflix;
 
   configFile = pkgs.writeText "peerflix-config.json" ''
     {
@@ -32,6 +33,7 @@ in {
     downloadDir = mkOption {
       description = "Peerflix temporary download directory.";
       default = "${cfg.stateDir}/torrents";
+      defaultText = literalExpression ''"''${config.${opt.stateDir}}/torrents"'';
       type = types.path;
     };
   };
diff --git a/nixos/modules/services/torrent/rtorrent.nix b/nixos/modules/services/torrent/rtorrent.nix
index dd7df623c73..759dcfe2e6c 100644
--- a/nixos/modules/services/torrent/rtorrent.nix
+++ b/nixos/modules/services/torrent/rtorrent.nix
@@ -1,10 +1,11 @@
-{ config, pkgs, lib, ... }:
+{ config, options, pkgs, lib, ... }:
 
 with lib;
 
 let
 
   cfg = config.services.rtorrent;
+  opt = options.services.rtorrent;
 
 in {
   options.services.rtorrent = {
@@ -21,6 +22,7 @@ in {
     downloadDir = mkOption {
       type = types.str;
       default = "${cfg.dataDir}/download";
+      defaultText = literalExpression ''"''${config.${opt.dataDir}}/download"'';
       description = ''
         Where to put downloaded files.
       '';
diff --git a/nixos/modules/services/torrent/transmission.nix b/nixos/modules/services/torrent/transmission.nix
index 9e440e49b50..d12d8aa2398 100644
--- a/nixos/modules/services/torrent/transmission.nix
+++ b/nixos/modules/services/torrent/transmission.nix
@@ -4,6 +4,7 @@ with lib;
 
 let
   cfg = config.services.transmission;
+  opt = options.services.transmission;
   inherit (config.environment) etc;
   apparmor = config.security.apparmor;
   rootDir = "/run/transmission";
@@ -47,11 +48,13 @@ in
           options.download-dir = mkOption {
             type = types.path;
             default = "${cfg.home}/${downloadsDir}";
+            defaultText = literalExpression ''"''${config.${opt.home}}/${downloadsDir}"'';
             description = "Directory where to download torrents.";
           };
           options.incomplete-dir = mkOption {
             type = types.path;
             default = "${cfg.home}/${incompleteDir}";
+            defaultText = literalExpression ''"''${config.${opt.home}}/${incompleteDir}"'';
             description = ''
               When enabled with
               services.transmission.home
@@ -147,6 +150,7 @@ in
           options.watch-dir = mkOption {
             type = types.path;
             default = "${cfg.home}/${watchDir}";
+            defaultText = literalExpression ''"''${config.${opt.home}}/${watchDir}"'';
             description = "Watch a directory for torrent files and add them to transmission.";
           };
           options.watch-dir-enabled = mkOption {
diff --git a/nixos/modules/services/video/epgstation/default.nix b/nixos/modules/services/video/epgstation/default.nix
index 56bd9d9eeec..41613dcbb3b 100644
--- a/nixos/modules/services/video/epgstation/default.nix
+++ b/nixos/modules/services/video/epgstation/default.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.epgstation;
+  opt = options.services.epgstation;
 
   username = config.users.users.epgstation.name;
   groupname = config.users.users.epgstation.group;
@@ -72,6 +73,7 @@ in
     socketioPort = mkOption {
       type = types.port;
       default = cfg.port + 1;
+      defaultText = literalExpression "config.${opt.port} + 1";
       description = ''
         Socket.io port for EPGStation to listen on.
       '';
@@ -80,6 +82,7 @@ in
     clientSocketioPort = mkOption {
       type = types.port;
       default = cfg.socketioPort;
+      defaultText = literalExpression "config.${opt.socketioPort}";
       description = ''
         Socket.io port that the web client is going to connect to. This may be
         different from <option>socketioPort</option> if EPGStation is hidden
@@ -183,6 +186,9 @@ in
         in {
           type = types.str;
           default = "http+unix://${replaceStrings ["/"] ["%2F"] sockPath}";
+          defaultText = literalExpression ''
+            "http+unix://''${replaceStrings ["/"] ["%2F"] config.${options.services.mirakurun.unixSocket}}"
+          '';
           example = "http://localhost:40772";
           description = "URL to connect to Mirakurun.";
         });
diff --git a/nixos/modules/services/video/unifi-video.nix b/nixos/modules/services/video/unifi-video.nix
index 17971b23db8..43208a9fe4c 100644
--- a/nixos/modules/services/video/unifi-video.nix
+++ b/nixos/modules/services/video/unifi-video.nix
@@ -1,7 +1,8 @@
-{ config, lib, pkgs, utils, ... }:
+{ config, lib, options, pkgs, utils, ... }:
 with lib;
 let
   cfg = config.services.unifi-video;
+  opt = options.services.unifi-video;
   mainClass = "com.ubnt.airvision.Main";
   cmd = ''
     ${pkgs.jsvc}/bin/jsvc \
@@ -164,6 +165,7 @@ in
       pidFile = mkOption {
         type = types.path;
         default = "${cfg.dataDir}/unifi-video.pid";
+        defaultText = literalExpression ''"''${config.${opt.dataDir}}/unifi-video.pid"'';
         description = "Location of unifi-video pid file.";
       };
 
diff --git a/nixos/modules/services/wayland/cage.nix b/nixos/modules/services/wayland/cage.nix
index 273693a3b2f..d2bbc4fc057 100644
--- a/nixos/modules/services/wayland/cage.nix
+++ b/nixos/modules/services/wayland/cage.nix
@@ -74,6 +74,8 @@ in {
         TTYVTDisallocate = "yes";
         # Fail to start if not controlling the virtual terminal.
         StandardInput = "tty-fail";
+        StandardOutput = "journal";
+        StandardError = "journal";
         # Set up a full (custom) user session for the user, required by Cage.
         PAMName = "cage";
       };
diff --git a/nixos/modules/services/web-apps/discourse.nix b/nixos/modules/services/web-apps/discourse.nix
index 18b61200aa1..2c2911aada3 100644
--- a/nixos/modules/services/web-apps/discourse.nix
+++ b/nixos/modules/services/web-apps/discourse.nix
@@ -4,6 +4,7 @@ let
   json = pkgs.formats.json {};
 
   cfg = config.services.discourse;
+  opt = options.services.discourse;
 
   # Keep in sync with https://github.com/discourse/discourse_docker/blob/master/image/base/Dockerfile#L5
   upstreamPostgresqlVersion = lib.getVersion pkgs.postgresql_13;
@@ -327,6 +328,7 @@ in
         useSSL = lib.mkOption {
           type = lib.types.bool;
           default = cfg.redis.host != "localhost";
+          defaultText = lib.literalExpression ''config.${opt.redis.host} != "localhost"'';
           description = ''
             Connect to Redis with SSL.
           '';
@@ -399,6 +401,7 @@ in
           domain = lib.mkOption {
             type = lib.types.str;
             default = cfg.hostname;
+            defaultText = lib.literalExpression "config.${opt.hostname}";
             description = ''
               HELO domain to use for outgoing mail.
             '';
diff --git a/nixos/modules/services/web-apps/galene.nix b/nixos/modules/services/web-apps/galene.nix
index db9dfeb4749..1d0a620585b 100644
--- a/nixos/modules/services/web-apps/galene.nix
+++ b/nixos/modules/services/web-apps/galene.nix
@@ -1,8 +1,9 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 let
   cfg = config.services.galene;
+  opt = options.services.galene;
   defaultstateDir = "/var/lib/galene";
   defaultrecordingsDir = "${cfg.stateDir}/recordings";
   defaultgroupsDir = "${cfg.stateDir}/groups";
@@ -88,6 +89,7 @@ in
       recordingsDir = mkOption {
         type = types.str;
         default = defaultrecordingsDir;
+        defaultText = literalExpression ''"''${config.${opt.stateDir}}/recordings"'';
         example = "/var/lib/galene/recordings";
         description = "Recordings directory.";
       };
@@ -95,6 +97,7 @@ in
       dataDir = mkOption {
         type = types.str;
         default = defaultdataDir;
+        defaultText = literalExpression ''"''${config.${opt.stateDir}}/data"'';
         example = "/var/lib/galene/data";
         description = "Data directory.";
       };
@@ -102,6 +105,7 @@ in
       groupsDir = mkOption {
         type = types.str;
         default = defaultgroupsDir;
+        defaultText = literalExpression ''"''${config.${opt.stateDir}}/groups"'';
         example = "/var/lib/galene/groups";
         description = "Web server directory.";
       };
diff --git a/nixos/modules/services/web-apps/hedgedoc.nix b/nixos/modules/services/web-apps/hedgedoc.nix
index e0c00fe67ea..9eeabb9d566 100644
--- a/nixos/modules/services/web-apps/hedgedoc.nix
+++ b/nixos/modules/services/web-apps/hedgedoc.nix
@@ -33,7 +33,7 @@ in
       type = types.listOf types.str;
       default = [];
       description = ''
-        Groups to which the user ${name} should be added.
+        Groups to which the service user should be added.
       '';
     };
 
diff --git a/nixos/modules/services/web-apps/invidious.nix b/nixos/modules/services/web-apps/invidious.nix
index 50370629e47..10b30bf1fd1 100644
--- a/nixos/modules/services/web-apps/invidious.nix
+++ b/nixos/modules/services/web-apps/invidious.nix
@@ -225,6 +225,7 @@ in
       port = lib.mkOption {
         type = types.port;
         default = options.services.postgresql.port.default;
+        defaultText = lib.literalExpression "options.services.postgresql.port.default";
         description = ''
           The port of the database Invidious should use.
 
diff --git a/nixos/modules/services/web-apps/keycloak.nix b/nixos/modules/services/web-apps/keycloak.nix
index df8c7114102..e08f6dcabd2 100644
--- a/nixos/modules/services/web-apps/keycloak.nix
+++ b/nixos/modules/services/web-apps/keycloak.nix
@@ -1,7 +1,8 @@
-{ config, pkgs, lib, ... }:
+{ config, options, pkgs, lib, ... }:
 
 let
   cfg = config.services.keycloak;
+  opt = options.services.keycloak;
 in
 {
   options.services.keycloak = {
@@ -139,6 +140,7 @@ in
           lib.mkOption {
             type = lib.types.port;
             default = dbPorts.${cfg.database.type};
+            defaultText = lib.literalDocBook "default port of selected database";
             description = ''
               Port of the database to connect to.
             '';
@@ -147,6 +149,7 @@ in
       useSSL = lib.mkOption {
         type = lib.types.bool;
         default = cfg.database.host != "localhost";
+        defaultText = lib.literalExpression ''config.${opt.database.host} != "localhost"'';
         description = ''
           Whether the database connection should be secured by SSL /
           TLS.
diff --git a/nixos/modules/services/web-apps/matomo.nix b/nixos/modules/services/web-apps/matomo.nix
index eba55e7e9be..8a0ca33b51f 100644
--- a/nixos/modules/services/web-apps/matomo.nix
+++ b/nixos/modules/services/web-apps/matomo.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 with lib;
 let
   cfg = config.services.matomo;
@@ -12,10 +12,7 @@ let
   phpExecutionUnit = "phpfpm-${pool}";
   databaseService = "mysql.service";
 
-  fqdn =
-    let
-      join = hostName: domain: hostName + optionalString (domain != null) ".${domain}";
-     in join config.networking.hostName config.networking.domain;
+  fqdn = if config.networking.domain != null then config.networking.fqdn else config.networking.hostName;
 
 in {
   imports = [
@@ -81,9 +78,14 @@ in {
       hostname = mkOption {
         type = types.str;
         default = "${user}.${fqdn}";
+        defaultText = literalExpression ''
+          if config.${options.networking.domain} != null
+          then "${user}.''${config.${options.networking.fqdn}}"
+          else "${user}.''${config.${options.networking.hostName}}"
+        '';
         example = "matomo.yourdomain.org";
         description = ''
-          URL of the host, without https prefix. By default, this is ${user}.${fqdn}, but you may want to change it if you
+          URL of the host, without https prefix. You may want to change it if you
           run Matomo on a different URL than matomo.yourdomain.
         '';
       };
diff --git a/nixos/modules/services/web-apps/nextcloud.nix b/nixos/modules/services/web-apps/nextcloud.nix
index 8345fc10914..6692d67081c 100644
--- a/nixos/modules/services/web-apps/nextcloud.nix
+++ b/nixos/modules/services/web-apps/nextcloud.nix
@@ -499,6 +499,7 @@ in {
     occ = mkOption {
       type = types.package;
       default = occ;
+      defaultText = literalDocBook "generated script";
       internal = true;
       description = ''
         The nextcloud-occ program preconfigured to target this Nextcloud instance.
diff --git a/nixos/modules/services/web-apps/peertube.nix b/nixos/modules/services/web-apps/peertube.nix
index 932ddcfef19..a6542801826 100644
--- a/nixos/modules/services/web-apps/peertube.nix
+++ b/nixos/modules/services/web-apps/peertube.nix
@@ -1,7 +1,8 @@
-{ lib, pkgs, config, ... }:
+{ lib, pkgs, config, options, ... }:
 
 let
   cfg = config.services.peertube;
+  opt = options.services.peertube;
 
   settingsFormat = pkgs.formats.json {};
   configFile = settingsFormat.generate "production.json" cfg.settings;
@@ -153,6 +154,11 @@ in {
       host = lib.mkOption {
         type = lib.types.str;
         default = if cfg.database.createLocally then "/run/postgresql" else null;
+        defaultText = lib.literalExpression ''
+          if config.${opt.database.createLocally}
+          then "/run/postgresql"
+          else null
+        '';
         example = "192.168.15.47";
         description = "Database host address or unix socket.";
       };
@@ -193,12 +199,22 @@ in {
       host = lib.mkOption {
         type = lib.types.nullOr lib.types.str;
         default = if cfg.redis.createLocally && !cfg.redis.enableUnixSocket then "127.0.0.1" else null;
+        defaultText = lib.literalExpression ''
+          if config.${opt.redis.createLocally} && !config.${opt.redis.enableUnixSocket}
+          then "127.0.0.1"
+          else null
+        '';
         description = "Redis host.";
       };
 
       port = lib.mkOption {
         type = lib.types.nullOr lib.types.port;
         default = if cfg.redis.createLocally && cfg.redis.enableUnixSocket then null else 6379;
+        defaultText = lib.literalExpression ''
+          if config.${opt.redis.createLocally} && config.${opt.redis.enableUnixSocket}
+          then null
+          else 6379
+        '';
         description = "Redis port.";
       };
 
@@ -212,6 +228,7 @@ in {
       enableUnixSocket = lib.mkOption {
         type = lib.types.bool;
         default = cfg.redis.createLocally;
+        defaultText = lib.literalExpression "config.${opt.redis.createLocally}";
         description = "Use Unix socket.";
       };
     };
diff --git a/nixos/modules/services/web-apps/pgpkeyserver-lite.nix b/nixos/modules/services/web-apps/pgpkeyserver-lite.nix
index 5642627d397..faf0ce13238 100644
--- a/nixos/modules/services/web-apps/pgpkeyserver-lite.nix
+++ b/nixos/modules/services/web-apps/pgpkeyserver-lite.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
@@ -6,6 +6,7 @@ let
 
   cfg = config.services.pgpkeyserver-lite;
   sksCfg = config.services.sks;
+  sksOpt = options.services.sks;
 
   webPkg = cfg.package;
 
@@ -37,6 +38,7 @@ in
 
       hkpAddress = mkOption {
         default = builtins.head sksCfg.hkpAddress;
+        defaultText = literalExpression "head config.${sksOpt.hkpAddress}";
         type = types.str;
         description = "
           Wich ip address the sks-keyserver is listening on.
@@ -45,6 +47,7 @@ in
 
       hkpPort = mkOption {
         default = sksCfg.hkpPort;
+        defaultText = literalExpression "config.${sksOpt.hkpPort}";
         type = types.int;
         description = "
           Which port the sks-keyserver is listening on.
diff --git a/nixos/modules/services/web-apps/powerdns-admin.nix b/nixos/modules/services/web-apps/powerdns-admin.nix
new file mode 100644
index 00000000000..ce99b606c31
--- /dev/null
+++ b/nixos/modules/services/web-apps/powerdns-admin.nix
@@ -0,0 +1,149 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.powerdns-admin;
+
+  configText = ''
+    ${cfg.config}
+  ''
+  + optionalString (cfg.secretKeyFile != null) ''
+    with open('${cfg.secretKeyFile}') as file:
+      SECRET_KEY = file.read()
+  ''
+  + optionalString (cfg.saltFile != null) ''
+    with open('${cfg.saltFile}') as file:
+      SALT = file.read()
+  '';
+in
+{
+  options.services.powerdns-admin = {
+    enable = mkEnableOption "the PowerDNS web interface";
+
+    extraArgs = mkOption {
+      type = types.listOf types.str;
+      default = [ ];
+      example = literalExpression ''
+        [ "-b" "127.0.0.1:8000" ]
+      '';
+      description = ''
+        Extra arguments passed to powerdns-admin.
+      '';
+    };
+
+    config = mkOption {
+      type = types.str;
+      default = "";
+      example = ''
+        BIND_ADDRESS = '127.0.0.1'
+        PORT = 8000
+        SQLALCHEMY_DATABASE_URI = 'postgresql://powerdnsadmin@/powerdnsadmin?host=/run/postgresql'
+      '';
+      description = ''
+        Configuration python file.
+        See <link xlink:href="https://github.com/ngoduykhanh/PowerDNS-Admin/blob/v${pkgs.powerdns-admin.version}/configs/development.py">the example configuration</link>
+        for options.
+      '';
+    };
+
+    secretKeyFile = mkOption {
+      type = types.nullOr types.path;
+      example = "/etc/powerdns-admin/secret";
+      description = ''
+        The secret used to create cookies.
+        This needs to be set, otherwise the default is used and everyone can forge valid login cookies.
+        Set this to null to ignore this setting and configure it through another way.
+      '';
+    };
+
+    saltFile = mkOption {
+      type = types.nullOr types.path;
+      example = "/etc/powerdns-admin/salt";
+      description = ''
+        The salt used for serialization.
+        This should be set, otherwise the default is used.
+        Set this to null to ignore this setting and configure it through another way.
+      '';
+    };
+  };
+
+  config = mkIf cfg.enable {
+    systemd.services.powerdns-admin = {
+      description = "PowerDNS web interface";
+      wantedBy = [ "multi-user.target" ];
+      after = [ "networking.target" ];
+
+      environment.FLASK_CONF = builtins.toFile "powerdns-admin-config.py" configText;
+      environment.PYTHONPATH = pkgs.powerdns-admin.pythonPath;
+      serviceConfig = {
+        ExecStart = "${pkgs.powerdns-admin}/bin/powerdns-admin --pid /run/powerdns-admin/pid ${escapeShellArgs cfg.extraArgs}";
+        ExecStartPre = "${pkgs.coreutils}/bin/env FLASK_APP=${pkgs.powerdns-admin}/share/powerdnsadmin/__init__.py ${pkgs.python3Packages.flask}/bin/flask db upgrade -d ${pkgs.powerdns-admin}/share/migrations";
+        ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
+        ExecStop = "${pkgs.coreutils}/bin/kill -TERM $MAINPID";
+        PIDFile = "/run/powerdns-admin/pid";
+        RuntimeDirectory = "powerdns-admin";
+        User = "powerdnsadmin";
+        Group = "powerdnsadmin";
+
+        AmbientCapabilities = "CAP_NET_BIND_SERVICE";
+        BindReadOnlyPaths = [
+          "/nix/store"
+          "-/etc/resolv.conf"
+          "-/etc/nsswitch.conf"
+          "-/etc/hosts"
+          "-/etc/localtime"
+        ]
+        ++ (optional (cfg.secretKeyFile != null) cfg.secretKeyFile)
+        ++ (optional (cfg.saltFile != null) cfg.saltFile);
+        CapabilityBoundingSet = "CAP_NET_BIND_SERVICE";
+        # ProtectClock= adds DeviceAllow=char-rtc r
+        DeviceAllow = "";
+        # Implies ProtectSystem=strict, which re-mounts all paths
+        #DynamicUser = true;
+        LockPersonality = true;
+        MemoryDenyWriteExecute = true;
+        NoNewPrivileges = true;
+        PrivateDevices = true;
+        PrivateMounts = true;
+        # Needs to start a server
+        #PrivateNetwork = true;
+        PrivateTmp = true;
+        PrivateUsers = true;
+        ProcSubset = "pid";
+        ProtectClock = true;
+        ProtectHome = true;
+        ProtectHostname = true;
+        # Would re-mount paths ignored by temporary root
+        #ProtectSystem = "strict";
+        ProtectControlGroups = true;
+        ProtectKernelLogs = true;
+        ProtectKernelModules = true;
+        ProtectKernelTunables = true;
+        ProtectProc = "invisible";
+        RestrictAddressFamilies = [ "AF_INET" "AF_INET6" "AF_UNIX" ];
+        RestrictNamespaces = true;
+        RestrictRealtime = true;
+        RestrictSUIDSGID = true;
+        SystemCallArchitectures = "native";
+        # gunicorn needs setuid
+        SystemCallFilter = [
+          "@system-service"
+          "~@privileged @resources @keyring"
+          # These got removed by the line above but are needed
+          "@setuid @chown"
+        ];
+        TemporaryFileSystem = "/:ro";
+        # Does not work well with the temporary root
+        #UMask = "0066";
+      };
+    };
+
+    users.groups.powerdnsadmin = { };
+    users.users.powerdnsadmin = {
+      description = "PowerDNS web interface user";
+      isSystemUser = true;
+      group = "powerdnsadmin";
+    };
+  };
+}
diff --git a/nixos/modules/services/web-apps/youtrack.nix b/nixos/modules/services/web-apps/youtrack.nix
index 7a70ae6cd52..b83265ffeab 100644
--- a/nixos/modules/services/web-apps/youtrack.nix
+++ b/nixos/modules/services/web-apps/youtrack.nix
@@ -128,6 +128,7 @@ in
         Type = "simple";
         User = "youtrack";
         Group = "youtrack";
+        Restart = "on-failure";
         ExecStart = ''${cfg.package}/bin/youtrack --J-Xmx${cfg.maxMemory} --J-XX:MaxMetaspaceSize=${cfg.maxMetaspaceSize} ${cfg.jvmOpts} ${cfg.address}:${toString cfg.port}'';
       };
     };
diff --git a/nixos/modules/services/web-apps/zabbix.nix b/nixos/modules/services/web-apps/zabbix.nix
index ff50b95254f..538dac0d5be 100644
--- a/nixos/modules/services/web-apps/zabbix.nix
+++ b/nixos/modules/services/web-apps/zabbix.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 let
 
@@ -6,6 +6,7 @@ let
   inherit (lib) literalExpression mapAttrs optionalString versionAtLeast;
 
   cfg = config.services.zabbixWeb;
+  opt = options.services.zabbixWeb;
   fpm = config.services.phpfpm.pools.zabbix;
 
   user = "zabbix";
@@ -82,6 +83,11 @@ in
             if cfg.database.type == "mysql" then config.services.mysql.port
             else if cfg.database.type == "pgsql" then config.services.postgresql.port
             else 1521;
+          defaultText = literalExpression ''
+            if config.${opt.database.type} == "mysql" then config.${options.services.mysql.port}
+            else if config.${opt.database.type} == "pgsql" then config.${options.services.postgresql.port}
+            else 1521
+          '';
           description = "Database host port.";
         };
 
diff --git a/nixos/modules/services/web-servers/lighttpd/collectd.nix b/nixos/modules/services/web-servers/lighttpd/collectd.nix
index 3f262451c2c..5f091591daf 100644
--- a/nixos/modules/services/web-servers/lighttpd/collectd.nix
+++ b/nixos/modules/services/web-servers/lighttpd/collectd.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.lighttpd.collectd;
+  opt = options.services.lighttpd.collectd;
 
   collectionConf = pkgs.writeText "collection.conf" ''
     datadir: "${config.services.collectd.dataDir}"
@@ -29,6 +30,9 @@ in
     collectionCgi = mkOption {
       type = types.path;
       default = defaultCollectionCgi;
+      defaultText = literalDocBook ''
+        <literal>config.${options.services.collectd.package}</literal> configured for lighttpd
+      '';
       description = ''
         Path to collection.cgi script from (collectd sources)/contrib/collection.cgi
         This option allows to use a customized version
diff --git a/nixos/modules/services/x11/desktop-managers/pantheon.nix b/nixos/modules/services/x11/desktop-managers/pantheon.nix
index 3296b722048..980a6b939d5 100644
--- a/nixos/modules/services/x11/desktop-managers/pantheon.nix
+++ b/nixos/modules/services/x11/desktop-managers/pantheon.nix
@@ -227,9 +227,9 @@ in
       environment.sessionVariables.GTK_CSD = "1";
       environment.etc."gtk-3.0/settings.ini".source = "${pkgs.pantheon.elementary-default-settings}/etc/gtk-3.0/settings.ini";
 
-      xdg.portal.extraPortals = with pkgs; [
-        pantheon.elementary-files
-        pantheon.elementary-settings-daemon
+      xdg.portal.extraPortals = with pkgs.pantheon; [
+        elementary-files
+        elementary-settings-daemon
         xdg-desktop-portal-pantheon
       ];
 
diff --git a/nixos/modules/services/x11/display-managers/default.nix b/nixos/modules/services/x11/display-managers/default.nix
index bdc46faa7fd..92b3af8527f 100644
--- a/nixos/modules/services/x11/display-managers/default.nix
+++ b/nixos/modules/services/x11/display-managers/default.nix
@@ -7,13 +7,14 @@
 # (e.g., KDE, Gnome or a plain xterm), and optionally the *window
 # manager* (e.g. kwin or twm).
 
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
 
   cfg = config.services.xserver;
+  opt = options.services.xserver;
   xorg = pkgs.xorg;
 
   fontconfig = config.fonts.fontconfig;
@@ -147,6 +148,7 @@ in
       xauthBin = mkOption {
         internal = true;
         default = "${xorg.xauth}/bin/xauth";
+        defaultText = literalExpression ''"''${pkgs.xorg.xauth}/bin/xauth"'';
         description = "Path to the <command>xauth</command> program used by display managers.";
       };
 
@@ -278,6 +280,9 @@ in
             defaultSessionFromLegacyOptions
           else
             null;
+        defaultText = literalDocBook ''
+          Taken from display manager settings or window manager settings, if either is set.
+        '';
         example = "gnome";
         description = ''
           Graphical session to pre-select in the session chooser (only effective for GDM, LightDM and SDDM).
@@ -337,11 +342,12 @@ in
 
       # Configuration for automatic login. Common for all DM.
       autoLogin = mkOption {
-        type = types.submodule {
+        type = types.submodule ({ config, options, ... }: {
           options = {
             enable = mkOption {
               type = types.bool;
-              default = cfg.displayManager.autoLogin.user != null;
+              default = config.user != null;
+              defaultText = literalExpression "config.${options.user} != null";
               description = ''
                 Automatically log in as <option>autoLogin.user</option>.
               '';
@@ -355,7 +361,7 @@ in
               '';
             };
           };
-        };
+        });
 
         default = {};
         description = ''
diff --git a/nixos/modules/services/x11/hardware/synaptics.nix b/nixos/modules/services/x11/hardware/synaptics.nix
index 22af869f1f8..93dd560bca4 100644
--- a/nixos/modules/services/x11/hardware/synaptics.nix
+++ b/nixos/modules/services/x11/hardware/synaptics.nix
@@ -1,8 +1,9 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let cfg = config.services.xserver.synaptics;
+    opt = options.services.xserver.synaptics;
     tapConfig = if cfg.tapButtons then enabledTapConfig else disabledTapConfig;
     enabledTapConfig = ''
       Option "MaxTapTime" "180"
@@ -77,24 +78,28 @@ in {
       horizTwoFingerScroll = mkOption {
         type = types.bool;
         default = cfg.twoFingerScroll;
+        defaultText = literalExpression "config.${opt.twoFingerScroll}";
         description = "Whether to enable horizontal two-finger drag-scrolling.";
       };
 
       vertTwoFingerScroll = mkOption {
         type = types.bool;
         default = cfg.twoFingerScroll;
+        defaultText = literalExpression "config.${opt.twoFingerScroll}";
         description = "Whether to enable vertical two-finger drag-scrolling.";
       };
 
       horizEdgeScroll = mkOption {
         type = types.bool;
         default = ! cfg.horizTwoFingerScroll;
+        defaultText = literalExpression "! config.${opt.horizTwoFingerScroll}";
         description = "Whether to enable horizontal edge drag-scrolling.";
       };
 
       vertEdgeScroll = mkOption {
         type = types.bool;
         default = ! cfg.vertTwoFingerScroll;
+        defaultText = literalExpression "! config.${opt.vertTwoFingerScroll}";
         description = "Whether to enable vertical edge drag-scrolling.";
       };
 
diff --git a/nixos/modules/services/x11/picom.nix b/nixos/modules/services/x11/picom.nix
index dbd4b1cefef..b40e20bcd35 100644
--- a/nixos/modules/services/x11/picom.nix
+++ b/nixos/modules/services/x11/picom.nix
@@ -1,10 +1,11 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
 
   cfg = config.services.picom;
+  opt = options.services.picom;
 
   pairOf = x: with types;
     addCheck (listOf x) (y: length y == 2)
@@ -178,7 +179,16 @@ in {
 
     wintypes = mkOption {
       type = types.attrs;
-      default = { popup_menu = { opacity = cfg.menuOpacity; }; dropdown_menu = { opacity = cfg.menuOpacity; }; };
+      default = {
+        popup_menu = { opacity = cfg.menuOpacity; };
+        dropdown_menu = { opacity = cfg.menuOpacity; };
+      };
+      defaultText = literalExpression ''
+        {
+          popup_menu = { opacity = config.${opt.menuOpacity}; };
+          dropdown_menu = { opacity = config.${opt.menuOpacity}; };
+        }
+      '';
       example = {};
       description = ''
         Rules for specific window types.
diff --git a/nixos/modules/system/activation/activation-script.nix b/nixos/modules/system/activation/activation-script.nix
index 4a32387db8d..d6f14d01dba 100644
--- a/nixos/modules/system/activation/activation-script.nix
+++ b/nixos/modules/system/activation/activation-script.nix
@@ -142,6 +142,7 @@ in
       readOnly = true;
       internal = true;
       default = systemActivationScript (removeAttrs config.system.activationScripts [ "script" ]) true;
+      defaultText = literalDocBook "generated activation script";
     };
 
     system.userActivationScripts = mkOption {
diff --git a/nixos/modules/system/boot/plymouth.nix b/nixos/modules/system/boot/plymouth.nix
index 4b8194d2f85..78ae8e9d20b 100644
--- a/nixos/modules/system/boot/plymouth.nix
+++ b/nixos/modules/system/boot/plymouth.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
@@ -7,6 +7,7 @@ let
   inherit (pkgs) plymouth nixos-icons;
 
   cfg = config.boot.plymouth;
+  opt = options.boot.plymouth;
 
   nixosBreezePlymouth = pkgs.plasma5Packages.breeze-plymouth.override {
     logoFile = cfg.logo;
@@ -71,6 +72,11 @@ in
 
       themePackages = mkOption {
         default = lib.optional (cfg.theme == "breeze") nixosBreezePlymouth;
+        defaultText = literalDocBook ''
+          A NixOS branded variant of the breeze theme when
+          <literal>config.${opt.theme} == "breeze"</literal>, otherwise
+          <literal>[ ]</literal>.
+        '';
         type = types.listOf types.package;
         description = ''
           Extra theme packages for plymouth.
diff --git a/nixos/modules/tasks/filesystems/zfs.nix b/nixos/modules/tasks/filesystems/zfs.nix
index 65364801c32..3bc0dedec00 100644
--- a/nixos/modules/tasks/filesystems/zfs.nix
+++ b/nixos/modules/tasks/filesystems/zfs.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, utils, ... }:
+{ config, lib, options, pkgs, utils, ... }:
 #
 # TODO: zfs tunables
 
@@ -8,6 +8,7 @@ with lib;
 let
 
   cfgZfs = config.boot.zfs;
+  optZfs = options.boot.zfs;
   cfgExpandOnBoot = config.services.zfs.expandOnBoot;
   cfgSnapshots = config.services.zfs.autoSnapshot;
   cfgSnapFlags = cfgSnapshots.flags;
@@ -112,6 +113,7 @@ in
         readOnly = true;
         type = types.bool;
         default = inInitrd || inSystem;
+        defaultText = literalDocBook "<literal>true</literal> if ZFS filesystem support is enabled";
         description = "True if ZFS filesystem support is enabled";
       };
 
@@ -346,6 +348,7 @@ in
     services.zfs.zed = {
       enableMail = mkEnableOption "ZED's ability to send emails" // {
         default = cfgZfs.package.enableMail;
+        defaultText = literalExpression "config.${optZfs.package}.enableMail";
       };
 
       settings = mkOption {
diff --git a/nixos/modules/tasks/network-interfaces.nix b/nixos/modules/tasks/network-interfaces.nix
index 49901cda848..3d1fa793eb3 100644
--- a/nixos/modules/tasks/network-interfaces.nix
+++ b/nixos/modules/tasks/network-interfaces.nix
@@ -6,6 +6,7 @@ with utils;
 let
 
   cfg = config.networking;
+  opt = options.networking;
   interfaces = attrValues cfg.interfaces;
   hasVirtuals = any (i: i.virtual) interfaces;
   hasSits = cfg.sits != { };
@@ -1169,6 +1170,9 @@ in
 
     networking.tempAddresses = mkOption {
       default = if cfg.enableIPv6 then "default" else "disabled";
+      defaultText = literalExpression ''
+        if ''${config.${opt.enableIPv6}} then "default" else "disabled"
+      '';
       type = types.enum (lib.attrNames tempaddrValues);
       description = ''
         Whether to enable IPv6 Privacy Extensions for interfaces not
diff --git a/nixos/modules/virtualisation/cri-o.nix b/nixos/modules/virtualisation/cri-o.nix
index 38766113f39..cf511000150 100644
--- a/nixos/modules/virtualisation/cri-o.nix
+++ b/nixos/modules/virtualisation/cri-o.nix
@@ -71,6 +71,10 @@ in
     package = mkOption {
       type = types.package;
       default = crioPackage;
+      defaultText = literalDocBook ''
+        <literal>pkgs.cri-o</literal> built with
+        <literal>config.${opt.extraPackages}</literal>.
+      '';
       internal = true;
       description = ''
         The final CRI-O package (including extra packages).
diff --git a/nixos/modules/virtualisation/docker.nix b/nixos/modules/virtualisation/docker.nix
index 06858e15030..a69cbe55c78 100644
--- a/nixos/modules/virtualisation/docker.nix
+++ b/nixos/modules/virtualisation/docker.nix
@@ -8,7 +8,8 @@ let
 
   cfg = config.virtualisation.docker;
   proxy_env = config.networking.proxy.envVars;
-
+  settingsFormat = pkgs.formats.json {};
+  daemonSettingsFile = settingsFormat.generate "daemon.json" cfg.daemon.settings;
 in
 
 {
@@ -52,6 +53,20 @@ in
           '';
       };
 
+    daemon.settings =
+      mkOption {
+        type = settingsFormat.type;
+        default = { };
+        example = {
+          ipv6 = true;
+          "fixed-cidr-v6" = "fd00::/80";
+        };
+        description = ''
+          Configuration for docker daemon. The attributes are serialized to JSON used as daemon.conf.
+          See https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-configuration-file
+        '';
+      };
+
     enableNvidia =
       mkOption {
         type = types.bool;
@@ -171,12 +186,7 @@ in
             ""
             ''
               ${cfg.package}/bin/dockerd \
-                --group=docker \
-                --host=fd:// \
-                --log-driver=${cfg.logDriver} \
-                ${optionalString (cfg.storageDriver != null) "--storage-driver=${cfg.storageDriver}"} \
-                ${optionalString cfg.liveRestore "--live-restore" } \
-                ${optionalString cfg.enableNvidia "--add-runtime nvidia=${pkgs.nvidia-docker}/bin/nvidia-container-runtime" } \
+                --config-file=${daemonSettingsFile} \
                 ${cfg.extraOptions}
             ''];
           ExecReload=[
@@ -219,6 +229,19 @@ in
         { assertion = cfg.enableNvidia -> config.hardware.opengl.driSupport32Bit or false;
           message = "Option enableNvidia requires 32bit support libraries";
         }];
+
+      virtualisation.docker.daemon.settings = {
+        group = "docker";
+        hosts = [ "fd://" ];
+        log-driver = mkDefault cfg.logDriver;
+        storage-driver = mkIf (cfg.storageDriver != null) (mkDefault cfg.storageDriver);
+        live-restore = mkDefault cfg.liveRestore;
+        runtimes = mkIf cfg.enableNvidia {
+          nvidia = {
+            path = "${pkgs.nvidia-docker}/bin/nvidia-container-runtime";
+          };
+        };
+      };
     }
   ]);
 
diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix
index f86cc2544da..8f4d800abbf 100644
--- a/nixos/tests/all-tests.nix
+++ b/nixos/tests/all-tests.nix
@@ -362,6 +362,7 @@ in
   php = handleTest ./php {};
   php74 = handleTest ./php { php = pkgs.php74; };
   php80 = handleTest ./php { php = pkgs.php80; };
+  php81 = handleTest ./php { php = pkgs.php81; };
   pinnwand = handleTest ./pinnwand.nix {};
   plasma5 = handleTest ./plasma5.nix {};
   plasma5-systemd-start = handleTest ./plasma5-systemd-start.nix {};
@@ -381,6 +382,7 @@ in
   postgresql = handleTest ./postgresql.nix {};
   postgresql-wal-receiver = handleTest ./postgresql-wal-receiver.nix {};
   powerdns = handleTest ./powerdns.nix {};
+  powerdns-admin = handleTest ./powerdns-admin.nix {};
   power-profiles-daemon = handleTest ./power-profiles-daemon.nix {};
   pppd = handleTest ./pppd.nix {};
   predictable-interface-names = handleTest ./predictable-interface-names.nix {};
@@ -484,6 +486,7 @@ in
   ucarp = handleTest ./ucarp.nix {};
   udisks2 = handleTest ./udisks2.nix {};
   unbound = handleTest ./unbound.nix {};
+  unifi = handleTest ./unifi.nix {};
   unit-php = handleTest ./web-servers/unit-php.nix {};
   upnp = handleTest ./upnp.nix {};
   usbguard = handleTest ./usbguard.nix {};
diff --git a/nixos/tests/docker-tools.nix b/nixos/tests/docker-tools.nix
index 19ebed3ebd0..8a240ddb17f 100644
--- a/nixos/tests/docker-tools.nix
+++ b/nixos/tests/docker-tools.nix
@@ -215,6 +215,12 @@ import ./make-test-python.nix ({ pkgs, ... }: {
                 f"docker run --rm  ${examples.layersOrder.imageName} cat /tmp/layer{index}"
             )
 
+    with subtest("Ensure layers unpacked in correct order before runAsRoot runs"):
+        assert "abc" in docker.succeed(
+            "docker load --input='${examples.layersUnpackOrder}'",
+            "docker run --rm ${examples.layersUnpackOrder.imageName} cat /layer-order"
+        )
+
     with subtest("Ensure environment variables are correctly inherited"):
         docker.succeed(
             "docker load --input='${examples.environmentVariables}'"
diff --git a/nixos/tests/elk.nix b/nixos/tests/elk.nix
index ae746d7e1f0..f42be00f23b 100644
--- a/nixos/tests/elk.nix
+++ b/nixos/tests/elk.nix
@@ -40,9 +40,8 @@ let
 
             services = {
 
-              journalbeat = let lt6 = builtins.compareVersions
-                                        elk.journalbeat.version "6" < 0; in {
-                enable = true;
+              journalbeat = {
+                enable = elk ? journalbeat;
                 package = elk.journalbeat;
                 extraConfig = pkgs.lib.mkOptionDefault (''
                   logging:
@@ -51,14 +50,29 @@ let
                     metrics.enabled: false
                   output.elasticsearch:
                     hosts: [ "127.0.0.1:9200" ]
-                    ${pkgs.lib.optionalString lt6 "template.enabled: false"}
-                '' + pkgs.lib.optionalString (!lt6) ''
                   journalbeat.inputs:
                   - paths: []
                     seek: cursor
                 '');
               };
 
+              filebeat = {
+                enable = elk ? filebeat;
+                package = elk.filebeat;
+                inputs.journald.id = "everything";
+
+                inputs.log = {
+                  enabled = true;
+                  paths = [
+                    "/var/lib/filebeat/test"
+                  ];
+                };
+
+                settings = {
+                  logging.level = "info";
+                };
+              };
+
               metricbeat = {
                 enable = true;
                 package = elk.metricbeat;
@@ -142,27 +156,43 @@ let
       };
 
     passthru.elkPackages = elk;
-    testScript = ''
+    testScript =
+      let
+        valueObject = lib.optionalString (lib.versionAtLeast elk.elasticsearch.version "7") ".value";
+      in ''
       import json
 
 
-      def total_hits(message):
+      def expect_hits(message):
+          dictionary = {"query": {"match": {"message": message}}}
+          return (
+              "curl --silent --show-error --fail-with-body '${esUrl}/_search' "
+              + "-H 'Content-Type: application/json' "
+              + "-d '{}' ".format(json.dumps(dictionary))
+              + " | tee /dev/console"
+              + " | jq -es 'if . == [] then null else .[] | .hits.total${valueObject} > 0 end'"
+          )
+
+
+      def expect_no_hits(message):
           dictionary = {"query": {"match": {"message": message}}}
           return (
-              "curl --silent --show-error '${esUrl}/_search' "
+              "curl --silent --show-error --fail-with-body '${esUrl}/_search' "
               + "-H 'Content-Type: application/json' "
               + "-d '{}' ".format(json.dumps(dictionary))
-              + "| jq .hits.total"
+              + " | tee /dev/console"
+              + " | jq -es 'if . == [] then null else .[] | .hits.total${valueObject} == 0 end'"
           )
 
 
       def has_metricbeat():
           dictionary = {"query": {"match": {"event.dataset": {"query": "system.cpu"}}}}
           return (
-              "curl --silent --show-error '${esUrl}/_search' "
+              "curl --silent --show-error --fail-with-body '${esUrl}/_search' "
               + "-H 'Content-Type: application/json' "
               + "-d '{}' ".format(json.dumps(dictionary))
-              + "| jq '.hits.total > 0'"
+              + " | tee /dev/console"
+              + " | jq -es 'if . == [] then null else .[] | .hits.total${valueObject} > 0 end'"
           )
 
 
@@ -178,7 +208,8 @@ let
       # TODO: extend this test with multiple elasticsearch nodes
       #       and see if the status turns "green".
       one.wait_until_succeeds(
-          "curl --silent --show-error '${esUrl}/_cluster/health' | jq .status | grep -v red"
+          "curl --silent --show-error --fail-with-body '${esUrl}/_cluster/health'"
+          + " | jq -es 'if . == [] then null else .[] | .status != \"red\" end'"
       )
 
       with subtest("Perform some simple logstash tests"):
@@ -189,33 +220,50 @@ let
       with subtest("Kibana is healthy"):
           one.wait_for_unit("kibana.service")
           one.wait_until_succeeds(
-              "curl --silent --show-error 'http://localhost:5601/api/status' | jq .status.overall.state | grep green"
+              "curl --silent --show-error --fail-with-body 'http://localhost:5601/api/status'"
+              + " | jq -es 'if . == [] then null else .[] | .status.overall.state == \"green\" end'"
           )
 
       with subtest("Metricbeat is running"):
           one.wait_for_unit("metricbeat.service")
 
       with subtest("Metricbeat metrics arrive in elasticsearch"):
-          one.wait_until_succeeds(has_metricbeat() + " | tee /dev/console | grep 'true'")
+          one.wait_until_succeeds(has_metricbeat())
 
       with subtest("Logstash messages arive in elasticsearch"):
-          one.wait_until_succeeds(total_hits("flowers") + " | grep -v 0")
-          one.wait_until_succeeds(total_hits("dragons") + " | grep 0")
+          one.wait_until_succeeds(expect_hits("flowers"))
+          one.wait_until_succeeds(expect_no_hits("dragons"))
 
+    '' + lib.optionalString (elk ? journalbeat) ''
       with subtest(
           "A message logged to the journal is ingested by elasticsearch via journalbeat"
       ):
           one.wait_for_unit("journalbeat.service")
           one.execute("echo 'Supercalifragilisticexpialidocious' | systemd-cat")
           one.wait_until_succeeds(
-              total_hits("Supercalifragilisticexpialidocious") + " | grep -v 0"
+              expect_hits("Supercalifragilisticexpialidocious")
           )
-
+    '' + lib.optionalString (elk ? filebeat) ''
+      with subtest(
+          "A message logged to the journal is ingested by elasticsearch via filebeat"
+      ):
+          one.wait_for_unit("filebeat.service")
+          one.execute("echo 'Superdupercalifragilisticexpialidocious' | systemd-cat")
+          one.wait_until_succeeds(
+              expect_hits("Superdupercalifragilisticexpialidocious")
+          )
+          one.execute(
+              "echo 'SuperdupercalifragilisticexpialidociousIndeed' >> /var/lib/filebeat/test"
+          )
+          one.wait_until_succeeds(
+              expect_hits("SuperdupercalifragilisticexpialidociousIndeed")
+          )
+    '' + ''
       with subtest("Elasticsearch-curator works"):
           one.systemctl("stop logstash")
           one.systemctl("start elasticsearch-curator")
           one.wait_until_succeeds(
-              '! curl --silent --show-error "${esUrl}/_cat/indices" | grep logstash | grep ^'
+              '! curl --silent --show-error --fail-with-body "${esUrl}/_cat/indices" | grep logstash | grep ^'
           )
     '';
   }) { inherit pkgs system; };
@@ -235,7 +283,7 @@ in {
   #   elasticsearch = pkgs.elasticsearch7-oss;
   #   logstash      = pkgs.logstash7-oss;
   #   kibana        = pkgs.kibana7-oss;
-  #   journalbeat   = pkgs.journalbeat7;
+  #   filebeat      = pkgs.filebeat7;
   #   metricbeat    = pkgs.metricbeat7;
   # };
   unfree = lib.dontRecurseIntoAttrs {
@@ -250,7 +298,7 @@ in {
       elasticsearch = pkgs.elasticsearch7;
       logstash      = pkgs.logstash7;
       kibana        = pkgs.kibana7;
-      journalbeat   = pkgs.journalbeat7;
+      filebeat      = pkgs.filebeat7;
       metricbeat    = pkgs.metricbeat7;
     };
   };
diff --git a/nixos/tests/kubernetes/default.nix b/nixos/tests/kubernetes/default.nix
index 90b73c68a76..60ba482758f 100644
--- a/nixos/tests/kubernetes/default.nix
+++ b/nixos/tests/kubernetes/default.nix
@@ -1,5 +1,5 @@
 { system ? builtins.currentSystem
-, pkgs ? import <nixpkgs> { inherit system; }
+, pkgs ? import ../../.. { inherit system; }
 }:
 let
   dns = import ./dns.nix { inherit system pkgs; };
diff --git a/nixos/tests/kubernetes/dns.nix b/nixos/tests/kubernetes/dns.nix
index 79e35bfec5a..3fd1dd31f74 100644
--- a/nixos/tests/kubernetes/dns.nix
+++ b/nixos/tests/kubernetes/dns.nix
@@ -1,4 +1,4 @@
-{ system ? builtins.currentSystem, pkgs ? import <nixpkgs> { inherit system; } }:
+{ system ? builtins.currentSystem, pkgs ? import ../../.. { inherit system; } }:
 with import ./base.nix { inherit system; };
 let
   domain = "my.zyx";
diff --git a/nixos/tests/kubernetes/e2e.nix b/nixos/tests/kubernetes/e2e.nix
index 175d8413045..fb29d9cc695 100644
--- a/nixos/tests/kubernetes/e2e.nix
+++ b/nixos/tests/kubernetes/e2e.nix
@@ -1,4 +1,4 @@
-{ system ? builtins.currentSystem, pkgs ? import <nixpkgs> { inherit system; } }:
+{ system ? builtins.currentSystem, pkgs ? import ../../.. { inherit system; } }:
 with import ./base.nix { inherit system; };
 let
   domain = "my.zyx";
diff --git a/nixos/tests/kubernetes/rbac.nix b/nixos/tests/kubernetes/rbac.nix
index 99194a69c26..ca73562256e 100644
--- a/nixos/tests/kubernetes/rbac.nix
+++ b/nixos/tests/kubernetes/rbac.nix
@@ -1,4 +1,4 @@
-{ system ? builtins.currentSystem, pkgs ? import <nixpkgs> { inherit system; } }:
+{ system ? builtins.currentSystem, pkgs ? import ../../.. { inherit system; } }:
 with import ./base.nix { inherit system; };
 let
 
diff --git a/nixos/tests/parsedmarc/default.nix b/nixos/tests/parsedmarc/default.nix
index d838d3b6a39..50b977723e9 100644
--- a/nixos/tests/parsedmarc/default.nix
+++ b/nixos/tests/parsedmarc/default.nix
@@ -4,6 +4,7 @@
 { pkgs, ... }@args:
 let
   inherit (import ../../lib/testing-python.nix args) makeTest;
+  inherit (pkgs) lib;
 
   dmarcTestReport = builtins.fetchurl {
     name = "dmarc-test-report";
@@ -54,7 +55,7 @@ in
   localMail = makeTest
     {
       name = "parsedmarc-local-mail";
-      meta = with pkgs.lib.maintainers; {
+      meta = with lib.maintainers; {
         maintainers = [ talyz ];
       };
 
@@ -83,7 +84,7 @@ in
             };
           };
 
-          services.elasticsearch.package = pkgs.elasticsearch7-oss;
+          services.elasticsearch.package = pkgs.elasticsearch-oss;
 
           environment.systemPackages = [
             (sendEmail "dmarc@localhost")
@@ -94,6 +95,7 @@ in
       testScript = { nodes }:
         let
           esPort = toString nodes.parsedmarc.config.services.elasticsearch.port;
+          valueObject = lib.optionalString (lib.versionAtLeast nodes.parsedmarc.config.services.elasticsearch.package.version "7") ".value";
         in ''
           parsedmarc.start()
           parsedmarc.wait_for_unit("postfix.service")
@@ -104,11 +106,15 @@ in
           )
 
           parsedmarc.fail(
-              "curl -sS -f http://localhost:${esPort}/_search?q=report_id:2940 | jq -e 'if .hits.total.value > 0 then true else null end'"
+              "curl -sS -f http://localhost:${esPort}/_search?q=report_id:2940"
+              + " | tee /dev/console"
+              + " | jq -es 'if . == [] then null else .[] | .hits.total${valueObject} > 0 end'"
           )
           parsedmarc.succeed("send-email")
           parsedmarc.wait_until_succeeds(
-              "curl -sS -f http://localhost:${esPort}/_search?q=report_id:2940 | jq -e 'if .hits.total.value > 0 then true else null end'"
+              "curl -sS -f http://localhost:${esPort}/_search?q=report_id:2940"
+              + " | tee /dev/console"
+              + " | jq -es 'if . == [] then null else .[] | .hits.total${valueObject} > 0 end'"
           )
         '';
     };
@@ -121,7 +127,7 @@ in
     in
       makeTest {
         name = "parsedmarc-external-mail";
-        meta = with pkgs.lib.maintainers; {
+        meta = with lib.maintainers; {
           maintainers = [ talyz ];
         };
 
@@ -153,7 +159,7 @@ in
                 };
               };
 
-              services.elasticsearch.package = pkgs.elasticsearch7-oss;
+              services.elasticsearch.package = pkgs.elasticsearch-oss;
 
               environment.systemPackages = [
                 pkgs.jq
@@ -201,6 +207,7 @@ in
         testScript = { nodes }:
           let
             esPort = toString nodes.parsedmarc.config.services.elasticsearch.port;
+            valueObject = lib.optionalString (lib.versionAtLeast nodes.parsedmarc.config.services.elasticsearch.package.version "7") ".value";
           in ''
             mail.start()
             mail.wait_for_unit("postfix.service")
@@ -213,11 +220,15 @@ in
             )
 
             parsedmarc.fail(
-                "curl -sS -f http://localhost:${esPort}/_search?q=report_id:2940 | jq -e 'if .hits.total.value > 0 then true else null end'"
+                "curl -sS -f http://localhost:${esPort}/_search?q=report_id:2940"
+                + " | tee /dev/console"
+                + " | jq -es 'if . == [] then null else .[] | .hits.total${valueObject} > 0 end'"
             )
             mail.succeed("send-email")
             parsedmarc.wait_until_succeeds(
-                "curl -sS -f http://localhost:${esPort}/_search?q=report_id:2940 | jq -e 'if .hits.total.value > 0 then true else null end'"
+                "curl -sS -f http://localhost:${esPort}/_search?q=report_id:2940"
+                + " | tee /dev/console"
+                + " | jq -es 'if . == [] then null else .[] | .hits.total${valueObject} > 0 end'"
             )
           '';
       };
diff --git a/nixos/tests/powerdns-admin.nix b/nixos/tests/powerdns-admin.nix
new file mode 100644
index 00000000000..4d763c9c6f6
--- /dev/null
+++ b/nixos/tests/powerdns-admin.nix
@@ -0,0 +1,117 @@
+# Test powerdns-admin
+{ system ? builtins.currentSystem
+, config ? { }
+, pkgs ? import ../.. { inherit system config; }
+}:
+
+with import ../lib/testing-python.nix { inherit system pkgs; };
+with pkgs.lib;
+let
+  defaultConfig = ''
+    BIND_ADDRESS = '127.0.0.1'
+    PORT = 8000
+  '';
+
+  makeAppTest = name: configs: makeTest {
+    name = "powerdns-admin-${name}";
+    meta = with pkgs.lib.maintainers; {
+      maintainers = [ Flakebi zhaofengli ];
+    };
+
+    nodes.server = { pkgs, config, ... }: mkMerge ([
+      {
+        services.powerdns-admin = {
+          enable = true;
+          secretKeyFile = "/etc/powerdns-admin/secret";
+          saltFile = "/etc/powerdns-admin/salt";
+        };
+        # It's insecure to have secrets in the world-readable nix store, but this is just a test
+        environment.etc."powerdns-admin/secret".text = "secret key";
+        environment.etc."powerdns-admin/salt".text = "salt";
+        environment.systemPackages = [
+          (pkgs.writeShellScriptBin "run-test" config.system.build.testScript)
+        ];
+      }
+    ] ++ configs);
+
+    testScript = ''
+      server.wait_for_unit("powerdns-admin.service")
+      server.wait_until_succeeds("run-test", timeout=10)
+    '';
+  };
+
+  matrix = {
+    backend = {
+      mysql = {
+        services.powerdns-admin = {
+          config = ''
+            ${defaultConfig}
+            SQLALCHEMY_DATABASE_URI = 'mysql://powerdnsadmin@/powerdnsadmin?unix_socket=/run/mysqld/mysqld.sock'
+          '';
+        };
+        systemd.services.powerdns-admin = {
+          after = [ "mysql.service" ];
+          serviceConfig.BindPaths = "/run/mysqld";
+        };
+
+        services.mysql = {
+          enable = true;
+          package = pkgs.mariadb;
+          ensureDatabases = [ "powerdnsadmin" ];
+          ensureUsers = [
+            {
+              name = "powerdnsadmin";
+              ensurePermissions = {
+                "powerdnsadmin.*" = "ALL PRIVILEGES";
+              };
+            }
+          ];
+        };
+      };
+      postgresql = {
+        services.powerdns-admin = {
+          config = ''
+            ${defaultConfig}
+            SQLALCHEMY_DATABASE_URI = 'postgresql://powerdnsadmin@/powerdnsadmin?host=/run/postgresql'
+          '';
+        };
+        systemd.services.powerdns-admin = {
+          after = [ "postgresql.service" ];
+          serviceConfig.BindPaths = "/run/postgresql";
+        };
+
+        services.postgresql = {
+          enable = true;
+          ensureDatabases = [ "powerdnsadmin" ];
+          ensureUsers = [
+            {
+              name = "powerdnsadmin";
+              ensurePermissions = {
+                "DATABASE powerdnsadmin" = "ALL PRIVILEGES";
+              };
+            }
+          ];
+        };
+      };
+    };
+    listen = {
+      tcp = {
+        services.powerdns-admin.extraArgs = [ "-b" "127.0.0.1:8000" ];
+        system.build.testScript = ''
+          curl -sSf http://127.0.0.1:8000/
+        '';
+      };
+      unix = {
+        services.powerdns-admin.extraArgs = [ "-b" "unix:/run/powerdns-admin/http.sock" ];
+        system.build.testScript = ''
+          curl -sSf --unix-socket /run/powerdns-admin/http.sock http://somehost/
+        '';
+      };
+    };
+  };
+in
+with matrix; {
+  postgresql = makeAppTest "postgresql" [ backend.postgresql listen.tcp ];
+  mysql = makeAppTest "mysql" [ backend.mysql listen.tcp ];
+  unix-listener = makeAppTest "unix-listener" [ backend.postgresql listen.unix ];
+}
diff --git a/nixos/tests/prometheus-exporters.nix b/nixos/tests/prometheus-exporters.nix
index 008a5edd071..036c037e426 100644
--- a/nixos/tests/prometheus-exporters.nix
+++ b/nixos/tests/prometheus-exporters.nix
@@ -259,6 +259,19 @@ let
       '';
     };
 
+    fastly = {
+      exporterConfig = {
+        enable = true;
+        tokenPath = pkgs.writeText "token" "abc123";
+      };
+
+      # noop: fastly's exporter can't start without first talking to fastly
+      # see: https://github.com/peterbourgon/fastly-exporter/issues/87
+      exporterTest = ''
+        succeed("true");
+      '';
+    };
+
     fritzbox = {
       # TODO add proper test case
       exporterConfig = {
diff --git a/nixos/tests/snapcast.nix b/nixos/tests/snapcast.nix
index 8d960b4cc06..30b8343e2ff 100644
--- a/nixos/tests/snapcast.nix
+++ b/nixos/tests/snapcast.nix
@@ -40,6 +40,7 @@ in {
           };
         };
       };
+      environment.systemPackages = [ pkgs.snapcast ];
     };
     client = {
       environment.systemPackages = [ pkgs.snapcast ];
@@ -71,6 +72,13 @@ in {
             "curl --fail http://localhost:${toString httpPort}/jsonrpc -d '{json.dumps(get_rpc_version)}'"
         )
 
+    with subtest("test a ipv6 connection"):
+        server.execute("systemd-run --unit=snapcast-local-client snapclient -h ::1 -p ${toString port}")
+        server.wait_until_succeeds(
+            "journalctl -o cat -u snapserver.service | grep -q 'Hello from'"
+        )
+        server.wait_until_succeeds("journalctl -o cat -u snapcast-local-client | grep -q 'buffer: ${toString bufferSize}'")
+
     with subtest("test a connection"):
         client.execute("systemd-run --unit=snapcast-client snapclient -h server -p ${toString port}")
         server.wait_until_succeeds(
diff --git a/nixos/tests/unifi.nix b/nixos/tests/unifi.nix
new file mode 100644
index 00000000000..34284811abf
--- /dev/null
+++ b/nixos/tests/unifi.nix
@@ -0,0 +1,35 @@
+# Test UniFi controller
+
+{ system ? builtins.currentSystem
+, config ? { allowUnfree = true; }
+, pkgs ? import ../.. { inherit system config; }
+}:
+
+with import ../lib/testing-python.nix { inherit system pkgs; };
+with pkgs.lib;
+
+let
+  makeAppTest = unifi: makeTest {
+    name = "unifi-controller-${unifi.version}";
+    meta = with pkgs.lib.maintainers; {
+      maintainers = [ zhaofengli ];
+    };
+
+    nodes.server = {
+      services.unifi = {
+        enable = true;
+        unifiPackage = unifi;
+        openFirewall = false;
+      };
+    };
+
+    testScript = ''
+      server.wait_for_unit("unifi.service")
+      server.wait_until_succeeds("curl -Lk https://localhost:8443 >&2", timeout=300)
+    '';
+  };
+in with pkgs; {
+  unifiLTS = makeAppTest unifiLTS;
+  unifi5 = makeAppTest unifi5;
+  unifi6 = makeAppTest unifi6;
+}
diff --git a/pkgs/applications/audio/audacity/0001-Use-a-different-approach-to-estimate-the-disk-space-.patch b/pkgs/applications/audio/audacity/0001-Use-a-different-approach-to-estimate-the-disk-space-.patch
new file mode 100644
index 00000000000..33b7554db44
--- /dev/null
+++ b/pkgs/applications/audio/audacity/0001-Use-a-different-approach-to-estimate-the-disk-space-.patch
@@ -0,0 +1,355 @@
+From deeb435829d73524df851f6f4c2d4be552c99230 Mon Sep 17 00:00:00 2001
+From: Dmitry Vedenko <dmitry@crsib.me>
+Date: Fri, 1 Oct 2021 16:21:22 +0300
+Subject: [PATCH] Use a different approach to estimate the disk space usage
+
+New a approach is a bit less precise, but removes the requirement for the "private" SQLite3 table and allows Audacity to be built against system SQLite3.
+---
+ cmake-proxies/sqlite/CMakeLists.txt |   5 -
+ src/DBConnection.h                  |   4 +-
+ src/ProjectFileIO.cpp               | 269 +++++-----------------------
+ 3 files changed, 44 insertions(+), 234 deletions(-)
+
+diff --git a/cmake-proxies/sqlite/CMakeLists.txt b/cmake-proxies/sqlite/CMakeLists.txt
+index 63d70637c..d7b9b95ef 100644
+--- a/cmake-proxies/sqlite/CMakeLists.txt
++++ b/cmake-proxies/sqlite/CMakeLists.txt
+@@ -19,11 +19,6 @@ list( APPEND INCLUDES
+ 
+ list( APPEND DEFINES
+    PRIVATE
+-      #
+-      # We need the dbpage table for space calculations.
+-      #
+-      SQLITE_ENABLE_DBPAGE_VTAB=1
+-
+       # Can't be set after a WAL mode database is initialized, so change
+       # the default here to ensure all project files get the same page 
+       # size.
+diff --git a/src/DBConnection.h b/src/DBConnection.h
+index 16a7fc9d4..07d3af95e 100644
+--- a/src/DBConnection.h
++++ b/src/DBConnection.h
+@@ -75,8 +75,8 @@ public:
+       LoadSampleBlock,
+       InsertSampleBlock,
+       DeleteSampleBlock,
+-      GetRootPage,
+-      GetDBPage
++      GetSampleBlockSize,
++      GetAllSampleBlocksSize
+    };
+    sqlite3_stmt *Prepare(enum StatementID id, const char *sql);
+ 
+diff --git a/src/ProjectFileIO.cpp b/src/ProjectFileIO.cpp
+index 3b3e2e1fd..c9bc45af4 100644
+--- a/src/ProjectFileIO.cpp
++++ b/src/ProjectFileIO.cpp
+@@ -35,6 +35,7 @@ Paul Licameli split from AudacityProject.cpp
+ #include "widgets/ProgressDialog.h"
+ #include "wxFileNameWrapper.h"
+ #include "xml/XMLFileReader.h"
++#include "MemoryX.h"`
+ 
+ #undef NO_SHM
+ #if !defined(__WXMSW__)
+@@ -2357,255 +2358,69 @@ int64_t ProjectFileIO::GetTotalUsage()
+ }
+ 
+ //
+-// Returns the amount of disk space used by the specified sample blockid or all
+-// of the sample blocks if the blockid is 0.  It does this by using the raw SQLite
+-// pages available from the "sqlite_dbpage" virtual table to traverse the SQLite
+-// table b-tree described here:  https://www.sqlite.org/fileformat.html
++// Returns the estimation of disk space used by the specified sample blockid or all
++// of the sample blocks if the blockid is 0. This does not include small overhead
++// of the internal SQLite structures, only the size used by the data
+ //
+ int64_t ProjectFileIO::GetDiskUsage(DBConnection &conn, SampleBlockID blockid /* = 0 */)
+ {
+-   // Information we need to track our travels through the b-tree
+-   typedef struct
+-   {
+-      int64_t pgno;
+-      int currentCell;
+-      int numCells;
+-      unsigned char data[65536];
+-   } page;
+-   std::vector<page> stack;
+-
+-   int64_t total = 0;
+-   int64_t found = 0;
+-   int64_t right = 0;
+-   int rc;
++   sqlite3_stmt* stmt = nullptr;
+ 
+-   // Get the rootpage for the sampleblocks table.
+-   sqlite3_stmt *stmt =
+-      conn.Prepare(DBConnection::GetRootPage,
+-                    "SELECT rootpage FROM sqlite_master WHERE tbl_name = 'sampleblocks';");
+-   if (stmt == nullptr || sqlite3_step(stmt) != SQLITE_ROW)
++   if (blockid == 0)
+    {
+-      return 0;
+-   }
+-
+-   // And store it in our first stack frame
+-   stack.push_back({sqlite3_column_int64(stmt, 0)});
++      static const char* statement =
++R"(SELECT 
++	sum(length(blockid) + length(sampleformat) + 
++	length(summin) + length(summax) + length(sumrms) + 
++	length(summary256) + length(summary64k) +
++	length(samples))
++FROM sampleblocks;)";
+ 
+-   // All done with the statement
+-   sqlite3_clear_bindings(stmt);
+-   sqlite3_reset(stmt);
+-
+-   // Prepare/retrieve statement to read raw database page
+-   stmt = conn.Prepare(DBConnection::GetDBPage,
+-      "SELECT data FROM sqlite_dbpage WHERE pgno = ?1;");
+-   if (stmt == nullptr)
+-   {
+-      return 0;
++      stmt = conn.Prepare(DBConnection::GetAllSampleBlocksSize, statement);
+    }
+-
+-   // Traverse the b-tree until we've visited all of the leaf pages or until
+-   // we find the one corresponding to the passed in sample blockid. Because we
+-   // use an integer primary key for the sampleblocks table, the traversal will
+-   // be in ascending blockid sequence.
+-   do
++   else
+    {
+-      // Acces the top stack frame
+-      page &pg = stack.back();
++      static const char* statement =
++R"(SELECT 
++	length(blockid) + length(sampleformat) + 
++	length(summin) + length(summax) + length(sumrms) + 
++	length(summary256) + length(summary64k) +
++	length(samples)
++FROM sampleblocks WHERE blockid = ?1;)";
+ 
+-      // Read the page from the sqlite_dbpage table if it hasn't yet been loaded
+-      if (pg.numCells == 0)
+-      {
+-         // Bind the page number
+-         sqlite3_bind_int64(stmt, 1, pg.pgno);
++      stmt = conn.Prepare(DBConnection::GetSampleBlockSize, statement);
++   }
+ 
+-         // And retrieve the page
+-         if (sqlite3_step(stmt) != SQLITE_ROW)
++   auto cleanup = finally(
++      [stmt]() {
++         // Clear statement bindings and rewind statement
++         if (stmt != nullptr)
+          {
+-            // REVIEW: Likely harmless failure - says size is zero on
+-            // this error.
+-            // LLL: Yea, but not much else we can do.
+-            return 0;
++            sqlite3_clear_bindings(stmt);
++            sqlite3_reset(stmt);
+          }
++      });
+ 
+-         // Copy the page content to the stack frame
+-         memcpy(&pg.data,
+-                sqlite3_column_blob(stmt, 0),
+-                sqlite3_column_bytes(stmt, 0));
+-
+-         // And retrieve the total number of cells within it
+-         pg.numCells = get2(&pg.data[3]);
+-
+-         // Reset statement for next usage
+-         sqlite3_clear_bindings(stmt);
+-         sqlite3_reset(stmt);
+-      }
+-
+-      //wxLogDebug("%*.*spgno %lld currentCell %d numCells %d", (stack.size() - 1) * 2, (stack.size() - 1) * 2, "", pg.pgno, pg.currentCell, pg.numCells);
+-
+-      // Process an interior table b-tree page
+-      if (pg.data[0] == 0x05)
+-      {
+-         // Process the next cell if we haven't examined all of them yet
+-         if (pg.currentCell < pg.numCells)
+-         {
+-            // Remember the right-most leaf page number.
+-            right = get4(&pg.data[8]);
+-
+-            // Iterate over the cells.
+-            //
+-            // If we're not looking for a specific blockid, then we always push the
+-            // target page onto the stack and leave the loop after a single iteration.
+-            //
+-            // Otherwise, we match the blockid against the highest integer key contained
+-            // within the cell and if the blockid falls within the cell, we stack the
+-            // page and stop the iteration.
+-            //
+-            // In theory, we could do a binary search for a specific blockid here, but
+-            // because our sample blocks are always large, we will get very few cells
+-            // per page...usually 6 or less.
+-            //
+-            // In both cases, the stacked page can be either an internal or leaf page.
+-            bool stacked = false;
+-            while (pg.currentCell < pg.numCells)
+-            {
+-               // Get the offset to this cell using the offset in the cell pointer
+-               // array.
+-               //
+-               // The cell pointer array starts immediately after the page header
+-               // at offset 12 and the retrieved offset is from the beginning of
+-               // the page.
+-               int celloff = get2(&pg.data[12 + (pg.currentCell * 2)]);
+-
+-               // Bump to the next cell for the next iteration.
+-               pg.currentCell++;
+-
+-               // Get the page number this cell describes
+-               int pagenum = get4(&pg.data[celloff]);
+-
+-               // And the highest integer key, which starts at offset 4 within the cell.
+-               int64_t intkey = 0;
+-               get_varint(&pg.data[celloff + 4], &intkey);
+-
+-               //wxLogDebug("%*.*sinternal - right %lld celloff %d pagenum %d intkey %lld", (stack.size() - 1) * 2, (stack.size() - 1) * 2, " ", right, celloff, pagenum, intkey);
+-
+-               // Stack the described page if we're not looking for a specific blockid
+-               // or if this page contains the given blockid.
+-               if (!blockid || blockid <= intkey)
+-               {
+-                  stack.push_back({pagenum, 0, 0});
+-                  stacked = true;
+-                  break;
+-               }
+-            }
+-
+-            // If we pushed a new page onto the stack, we need to jump back up
+-            // to read the page
+-            if (stacked)
+-            {
+-               continue;
+-            }
+-         }
++   if (blockid != 0)
++   {
++      int rc = sqlite3_bind_int64(stmt, 1, blockid);
+ 
+-         // We've exhausted all the cells with this page, so we stack the right-most
+-         // leaf page.  Ensure we only process it once.
+-         if (right)
+-         {
+-            stack.push_back({right, 0, 0});
+-            right = 0;
+-            continue;
+-         }
+-      }
+-      // Process a leaf table b-tree page
+-      else if (pg.data[0] == 0x0d)
++      if (rc != SQLITE_OK)
+       {
+-         // Iterate over the cells
+-         //
+-         // If we're not looking for a specific blockid, then just accumulate the
+-         // payload sizes. We will be reading every leaf page in the sampleblocks
+-         // table.
+-         //
+-         // Otherwise we break out when we find the matching blockid. In this case,
+-         // we only ever look at 1 leaf page.
+-         bool stop = false;
+-         for (int i = 0; i < pg.numCells; i++)
+-         {
+-            // Get the offset to this cell using the offset in the cell pointer
+-            // array.
+-            //
+-            // The cell pointer array starts immediately after the page header
+-            // at offset 8 and the retrieved offset is from the beginning of
+-            // the page.
+-            int celloff = get2(&pg.data[8 + (i * 2)]);
+-
+-            // Get the total payload size in bytes of the described row.
+-            int64_t payload = 0;
+-            int digits = get_varint(&pg.data[celloff], &payload);
+-
+-            // Get the integer key for this row.
+-            int64_t intkey = 0;
+-            get_varint(&pg.data[celloff + digits], &intkey);
+-
+-            //wxLogDebug("%*.*sleaf - celloff %4d intkey %lld payload %lld", (stack.size() - 1) * 2, (stack.size() - 1) * 2, " ", celloff, intkey, payload);
+-
+-            // Add this payload size to the total if we're not looking for a specific
+-            // blockid
+-            if (!blockid)
+-            {
+-               total += payload;
+-            }
+-            // Otherwise, return the payload size for a matching row
+-            else if (blockid == intkey)
+-            {
+-               return payload;
+-            }
+-         }
++         conn.ThrowException(false);
+       }
++   }
+ 
+-      // Done with the current branch, so pop back up to the previous one (if any)
+-      stack.pop_back();
+-   } while (!stack.empty());
+-
+-   // Return the total used for all sample blocks
+-   return total;
+-}
+-
+-// Retrieves a 2-byte big-endian integer from the page data
+-unsigned int ProjectFileIO::get2(const unsigned char *ptr)
+-{
+-   return (ptr[0] << 8) | ptr[1];
+-}
+-
+-// Retrieves a 4-byte big-endian integer from the page data
+-unsigned int ProjectFileIO::get4(const unsigned char *ptr)
+-{
+-   return ((unsigned int) ptr[0] << 24) |
+-          ((unsigned int) ptr[1] << 16) |
+-          ((unsigned int) ptr[2] << 8)  |
+-          ((unsigned int) ptr[3]);
+-}
+-
+-// Retrieves a variable length integer from the page data. Returns the
+-// number of digits used to encode the integer and the stores the
+-// value at the given location.
+-int ProjectFileIO::get_varint(const unsigned char *ptr, int64_t *out)
+-{
+-   int64_t val = 0;
+-   int i;
++   int rc = sqlite3_step(stmt);
+ 
+-   for (i = 0; i < 8; ++i)
++   if (rc != SQLITE_ROW)
+    {
+-      val = (val << 7) + (ptr[i] & 0x7f);
+-      if ((ptr[i] & 0x80) == 0)
+-      {
+-         *out = val;
+-         return i + 1;
+-      }
++      conn.ThrowException(false);
+    }
+ 
+-   val = (val << 8) + (ptr[i] & 0xff);
+-   *out = val;
++   const int64_t size = sqlite3_column_int64(stmt, 0);
+ 
+-   return 9;
++   return size;
+ }
+ 
+ InvisibleTemporaryProject::InvisibleTemporaryProject()
+-- 
+2.33.1
+
diff --git a/pkgs/applications/audio/audacity/default.nix b/pkgs/applications/audio/audacity/default.nix
index 0832bb1dd96..0e4afa4af7c 100644
--- a/pkgs/applications/audio/audacity/default.nix
+++ b/pkgs/applications/audio/audacity/default.nix
@@ -3,7 +3,6 @@
 , fetchFromGitHub
 , fetchpatch
 , cmake
-, wxGTK
 , pkg-config
 , python3
 , gettext
@@ -18,7 +17,6 @@
 , sqlite
 , sratom
 , suil
-, alsa-lib
 , libsndfile
 , soxr
 , flac
@@ -28,8 +26,10 @@
 , libopus
 , ffmpeg
 , soundtouch
-, pcre /*, portaudio - given up fighting their portaudio.patch */
+, pcre
+/*, portaudio - given up fighting their portaudio.patch */
 , linuxHeaders
+, alsa-lib
 , at-spi2-core
 , dbus
 , libepoxy
@@ -40,6 +40,16 @@
 , libsepol
 , libxkbcommon
 , util-linux
+, wxGTK
+, AppKit ? null
+, AudioToolbox ? null
+, AudioUnit ? null
+, Carbon ? null
+, Cocoa ? null
+, CoreAudio ? null
+, CoreAudioKit ? null
+, CoreServices ? null
+, wxmac
 }:
 
 # TODO
@@ -49,14 +59,20 @@
 let
   inherit (lib) optionals;
 
+  wxWidgets_src = fetchFromGitHub {
+    owner = "audacity";
+    repo = "wxWidgets";
+    rev = "07e7d832c7a337aedba3537b90b2c98c4d8e2985";
+    sha256 = "1mawnkcrmqj98jp0jxlnh9xkc950ca033ccb51c7035pzmi9if9a";
+    fetchSubmodules = true;
+  };
+
   wxGTK' = wxGTK.overrideAttrs (oldAttrs: rec {
-    src = fetchFromGitHub {
-      owner = "audacity";
-      repo = "wxWidgets";
-      rev = "07e7d832c7a337aedba3537b90b2c98c4d8e2985";
-      sha256 = "1mawnkcrmqj98jp0jxlnh9xkc950ca033ccb51c7035pzmi9if9a";
-      fetchSubmodules = true;
-    };
+    src = wxWidgets_src;
+  });
+
+  wxmac' = wxmac.overrideAttrs (oldAttrs: rec {
+    src = wxWidgets_src;
   });
 
 in
@@ -84,28 +100,18 @@ stdenv.mkDerivation rec {
       sha256 = "0zp2iydd46analda9cfnbmzdkjphz5m7dynrdj5qdnmq6j3px9fw";
       name = "audacity_xdg_paths.patch";
     })
+    # This is required to make audacity work with nixpkgs’ sqlite
+    # https://github.com/audacity/audacity/pull/1802 rebased onto 3.0.2
+    ./0001-Use-a-different-approach-to-estimate-the-disk-space-.patch
   ];
 
   postPatch = ''
     touch src/RevisionIdent.h
-
+  '' + lib.optionalString stdenv.isLinux ''
     substituteInPlace src/FileNames.cpp \
       --replace /usr/include/linux/magic.h ${linuxHeaders}/include/linux/magic.h
   '';
 
-  # audacity only looks for ffmpeg at runtime, so we need to link it in manually
-  NIX_LDFLAGS = toString [
-    "-lavcodec"
-    "-lavdevice"
-    "-lavfilter"
-    "-lavformat"
-    "-lavresample"
-    "-lavutil"
-    "-lpostproc"
-    "-lswresample"
-    "-lswscale"
-  ];
-
   nativeBuildInputs = [
     cmake
     gettext
@@ -116,7 +122,6 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    alsa-lib
     expat
     ffmpeg
     file
@@ -138,9 +143,8 @@ stdenv.mkDerivation rec {
     sratom
     suil
     twolame
-    wxGTK'
-    wxGTK'.gtk
   ] ++ optionals stdenv.isLinux [
+    alsa-lib # for portaudio
     at-spi2-core
     dbus
     libepoxy
@@ -151,6 +155,19 @@ stdenv.mkDerivation rec {
     libselinux
     libsepol
     util-linux
+    wxGTK'
+    wxGTK'.gtk
+  ] ++ optionals stdenv.isDarwin [
+    wxmac'
+    AppKit
+    Cocoa
+    CoreAudioKit
+    AudioUnit AudioToolbox CoreAudio CoreServices Carbon # for portaudio
+  ];
+
+  cmakeFlags = [
+    "-Daudacity_use_ffmpeg=linked"
+    "-DDISABLE_DYNAMIC_LOADING_FFMPEG=ON"
   ];
 
   doCheck = false; # Test fails
@@ -159,7 +176,7 @@ stdenv.mkDerivation rec {
     description = "Sound editor with graphical UI";
     homepage = "https://www.audacityteam.org/";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ lheckemann ];
-    platforms = platforms.linux;
+    maintainers = with maintainers; [ lheckemann veprbl ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix b/pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix
index a071b36abf0..003608ea602 100644
--- a/pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix
+++ b/pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bitwig-studio";
-  version = "4.1.1";
+  version = "4.1.2";
 
   src = fetchurl {
     url = "https://downloads.bitwig.com/stable/${version}/${pname}-${version}.deb";
-    sha256 = "sha256-bhd3Ij4y1r5pHrpQkbHuMTNl8Z3w0HsbCkr1C0CVFvQ=";
+    sha256 = "sha256-fXrpTOA6Uh4DgGU+3A7SV23Sb+Z2Ud4rCPmMk5I1MnA=";
   };
 
   nativeBuildInputs = [ dpkg makeWrapper wrapGAppsHook ];
diff --git a/pkgs/applications/audio/fomp/default.nix b/pkgs/applications/audio/fomp/default.nix
index f9f57b1ed55..bb421886f5d 100644
--- a/pkgs/applications/audio/fomp/default.nix
+++ b/pkgs/applications/audio/fomp/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, lv2, pkg-config, python2, wafHook }:
+{ lib, stdenv, fetchurl, lv2, pkg-config, python3, wafHook }:
 
 stdenv.mkDerivation rec {
   pname = "fomp";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkg-config wafHook ];
-  buildInputs = [ lv2 python2 ];
+  buildInputs = [ lv2 python3 ];
 
   meta = with lib; {
     homepage = "http://drobilla.net/software/fomp/";
diff --git a/pkgs/applications/audio/mi2ly/default.nix b/pkgs/applications/audio/mi2ly/default.nix
index b4f7668394f..9a046a2e11a 100644
--- a/pkgs/applications/audio/mi2ly/default.nix
+++ b/pkgs/applications/audio/mi2ly/default.nix
@@ -1,28 +1,20 @@
-{lib, stdenv, fetchurl}:
-let
-  s = # Generated upstream information
-  rec {
-    baseName="mi2ly";
-    version="0.12";
-    name="${baseName}-${version}";
-    hash="1b14zcwlvnxhjxr3ymyzg0mg4sbijkinzpxm641s859jxcgylmll";
-    url="https://download.savannah.gnu.org/releases/mi2ly/mi2ly.0.12.tar.bz2";
-    sha256="1b14zcwlvnxhjxr3ymyzg0mg4sbijkinzpxm641s859jxcgylmll";
-  };
-  buildInputs = [
-  ];
-in
-stdenv.mkDerivation {
-  inherit (s) name version;
-  inherit buildInputs;
+{ lib, stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  pname = "mi2ly";
+  version = "0.12";
+
   src = fetchurl {
-    inherit (s) url sha256;
+    url = "https://download.savannah.gnu.org/releases/mi2ly/mi2ly.${version}.tar.bz2";
+    sha256 = "sha256-lFbqH+syFaQDMbXfb+OUcWnyKnjfVz9yl7DbTTn7JKw=";
   };
 
-  sourceRoot=".";
+  sourceRoot = ".";
 
   hardeningDisable = [ "format" ];
 
+  NIX_CFLAGS_COMPILE = [ "-fgnu89-inline" ];
+
   buildPhase = "./cc";
   installPhase = ''
     mkdir -p "$out"/{bin,share/doc/mi2ly}
@@ -30,12 +22,11 @@ stdenv.mkDerivation {
     cp README Doc.txt COPYING Manual.txt "$out/share/doc/mi2ly"
   '';
 
-  meta = {
-    inherit (s) version;
+  meta = with lib; {
     description = "MIDI to Lilypond converter";
-    license = lib.licenses.gpl2Plus ;
-    maintainers = [lib.maintainers.raskin];
-    platforms = lib.platforms.linux;
-    broken = true; # 2018-04-11
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.linux;
+    homepage = "https://www.nongnu.org/mi2ly/";
   };
 }
diff --git a/pkgs/applications/audio/mi2ly/default.upstream b/pkgs/applications/audio/mi2ly/default.upstream
deleted file mode 100644
index 0b2607989aa..00000000000
--- a/pkgs/applications/audio/mi2ly/default.upstream
+++ /dev/null
@@ -1,3 +0,0 @@
-url https://download.savannah.gnu.org/releases/mi2ly/
-ensure_choice
-version '.*/mi2ly[.]([0-9.]+)[.]tar.*' '\1'
diff --git a/pkgs/applications/audio/ncspot/default.nix b/pkgs/applications/audio/ncspot/default.nix
index d9df34c41f7..6ba52306e8c 100644
--- a/pkgs/applications/audio/ncspot/default.nix
+++ b/pkgs/applications/audio/ncspot/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "ncspot";
-  version = "0.9.2";
+  version = "0.9.3";
 
   src = fetchFromGitHub {
     owner = "hrkfdn";
     repo = "ncspot";
     rev = "v${version}";
-    sha256 = "sha256-fZ0yQGLGnEFxt+OiG9J+niYzvttybudfciu5xo104Qo=";
+    sha256 = "sha256-k4EGyQjjJCvUhp56OjYl63n+giI05GiIS2++I1SVhCg=";
   };
 
-  cargoSha256 = "sha256-i3/96rVfP8TbIz3pNArTp8w27rfp1aPhohfFMMHgubo=";
+  cargoSha256 = "sha256-YsjInqmkPnAwqgRBDiwcLH0DDqCF0NElrn+WO2v+ATM=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/applications/audio/non/default.nix b/pkgs/applications/audio/non/default.nix
index 9dd377a601b..39b8ecf7a6a 100644
--- a/pkgs/applications/audio/non/default.nix
+++ b/pkgs/applications/audio/non/default.nix
@@ -1,20 +1,20 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config, python2, cairo, libjpeg, ntk, libjack2
+{ lib, stdenv, fetchFromGitHub, pkg-config, python3, cairo, libjpeg, ntk, libjack2
 , libsndfile, ladspaH, liblo, libsigcxx, lrdf, wafHook
 }:
 
 stdenv.mkDerivation {
   pname = "non";
-  version = "2018-02-15";
+  version = "unstable-2021-01-28";
   src = fetchFromGitHub {
-    owner = "original-male";
+    owner = "linuxaudio";
     repo = "non";
-    rev = "5ae43bb27c42387052a73e5ffc5d33efb9d946a9";
-    sha256 = "1cljkkyi9dxqpqhx8y6l2ja4zjmlya26m26kqxml8gx08vyvddhx";
+    rev = "cdad26211b301d2fad55a26812169ab905b85bbb";
+    sha256 = "sha256-iMJNMDytNXpEkUhL0RILSd25ixkm8HL/edtOZta0Pf4=";
   };
 
   nativeBuildInputs = [ pkg-config wafHook ];
-  buildInputs = [ python2 cairo libjpeg ntk libjack2 libsndfile
-    ladspaH liblo libsigcxx lrdf
+  buildInputs = [ python3 cairo libjpeg ntk libjack2 libsndfile
+                  ladspaH liblo libsigcxx lrdf
   ];
 
   meta = {
diff --git a/pkgs/applications/audio/ocenaudio/default.nix b/pkgs/applications/audio/ocenaudio/default.nix
index c849b94e48c..25371302dff 100644
--- a/pkgs/applications/audio/ocenaudio/default.nix
+++ b/pkgs/applications/audio/ocenaudio/default.nix
@@ -11,11 +11,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ocenaudio";
-  version = "3.11.0";
+  version = "3.11.1";
 
   src = fetchurl {
     url = "https://www.ocenaudio.com/downloads/index.php/ocenaudio_debian9_64.deb?version=${version}";
-    sha256 = "1yflpyl0d1mi0zxdyrlbg0px95s2c945ahy0agc8rha01ccf7jwy";
+    sha256 = "sha256-m8sKu2QuEyCWQ975vDfLVWKgU7ydEp5/vRYRO3z1yio=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/audio/pamix/default.nix b/pkgs/applications/audio/pamix/default.nix
index fb076797fb5..4a2ad9ab779 100644
--- a/pkgs/applications/audio/pamix/default.nix
+++ b/pkgs/applications/audio/pamix/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub
+{ lib, stdenv, fetchFromGitHub, fetchpatch
 , pkg-config, cmake
 , libpulseaudio, ncurses }:
 
@@ -13,6 +13,20 @@ stdenv.mkDerivation rec {
     sha256 = "1d44ggnwkf2gff62959pj45v3a2k091q8v154wc5pmzamam458wp";
   };
 
+  patches = [
+    # ncurses-6.3 support, included in next release
+    (fetchpatch {
+      name = "ncurses-6.3-p1.patch";
+      url = "https://github.com/patroclos/PAmix/commit/3400b9c048706c572373e4617b4d5fcdb8dd2505.patch";
+      sha256 = "0rw56a844pz876ad9p8hfvn2fkd5rh29gpp47h55g08spf0vwb2z";
+    })
+    (fetchpatch {
+      name = "ncurses-6.3-p2.patch";
+      url = "https://github.com/patroclos/PAmix/commit/5ef67fc5ef6fc0dc0b48ff07ba48093881561d9c.patch";
+      sha256 = "0f8shpdv2swxdz04bkqgmkvl6c17r5mn4slzr7xd6pvw8hh51p4h";
+    })
+  ];
+
   preConfigure = ''
     substituteInPlace CMakeLists.txt --replace "/etc" "$out/etc/xdg"
   '';
diff --git a/pkgs/applications/audio/rofi-pulse-select/default.nix b/pkgs/applications/audio/rofi-pulse-select/default.nix
new file mode 100644
index 00000000000..f4f70a9d1c3
--- /dev/null
+++ b/pkgs/applications/audio/rofi-pulse-select/default.nix
@@ -0,0 +1,40 @@
+{ stdenv
+, fetchFromGitLab
+, lib
+, makeWrapper
+, ponymix
+, rofi-unwrapped
+}:
+
+stdenv.mkDerivation rec {
+  pname = "rofi-pulse-select";
+  version = "0.2.0";
+
+  src = fetchFromGitLab {
+    owner = "DamienCassou";
+    repo = pname;
+    rev = "${version}";
+    sha256 = "1405v0bh2m8ip9c23l95i8iq2gfrpanc6f4dz17nysdcff2ay2p3";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D --target-directory=$out/bin/ ./rofi-pulse-select
+
+    wrapProgram $out/bin/rofi-pulse-select \
+      --prefix PATH ":" ${lib.makeBinPath [ rofi-unwrapped ponymix ]}
+
+    runHook postInstall
+  '';
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  meta = with lib; {
+    description = "Rofi-based interface to select source/sink (aka input/output) with PulseAudio";
+    homepage = "https://gitlab.com/DamienCassou/rofi-pulse-select";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ DamienCassou ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/audio/spotifyd/default.nix b/pkgs/applications/audio/spotifyd/default.nix
index dacf91e5622..bfeb8a7dab3 100644
--- a/pkgs/applications/audio/spotifyd/default.nix
+++ b/pkgs/applications/audio/spotifyd/default.nix
@@ -9,16 +9,16 @@
 
 rustPackages.rustPlatform.buildRustPackage rec {
   pname = "spotifyd";
-  version = "0.3.2";
+  version = "0.3.3";
 
   src = fetchFromGitHub {
     owner = "Spotifyd";
     repo = "spotifyd";
     rev = "v${version}";
-    sha256 = "1a578h13iv8gqmskzlncfr42jlg5gp0zfcizv4wbd48y9hl8fh2l";
+    sha256 = "1liql2wp7cx0x4ha1578wx3m4byd295m4ph268s05yw2wrnr3v6c";
   };
 
-  cargoSha256 = "07dxfc0csrnfl01p9vdrqvca9f574svlf37dk3dz8p6q08ki0n1z";
+  cargoSha256 = "1plvqd55d1gj0ydimv3154pwgj2sh1fqx2182nw8akzdfmzg1150";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/applications/audio/transcribe/default.nix b/pkgs/applications/audio/transcribe/default.nix
index 9061c38f19c..d10a0d87941 100644
--- a/pkgs/applications/audio/transcribe/default.nix
+++ b/pkgs/applications/audio/transcribe/default.nix
@@ -1,27 +1,64 @@
-{ stdenv, fetchzip, lib, wrapGAppsHook, alsa-lib, atk, cairo, gdk-pixbuf
-, glib, gst_all_1,  gtk3, libSM, libX11, libpng12, pango, zlib }:
+{ stdenv
+, fetchzip
+, lib
+, wrapGAppsHook
+, alsa-lib
+, atk
+, cairo
+, fontconfig
+, gdk-pixbuf
+, glib
+, gst_all_1
+, gtk3
+, libSM
+, libX11
+, libXtst
+, libpng12
+, pango
+, zlib
+}:
 
 stdenv.mkDerivation rec {
   pname = "transcribe";
-  version = "9.00";
+  version = "9.10";
 
-  src = if stdenv.hostPlatform.system == "x86_64-linux" then
-    fetchzip {
-      url = "https://www.seventhstring.com/xscribe/downlo/xscsetup-9.00.0.tar.gz";
-      sha256 = "0mgjx0hnps3jmc2d9hkskxbmwcqf7f9jx595j5sc501br1l84sdf";
-    }
-  else throw "Platform not supported";
+  src =
+    if stdenv.hostPlatform.system == "x86_64-linux" then
+      fetchzip
+        {
+          url = "https://www.seventhstring.com/xscribe/downlo/xscsetup-9.10.0.tar.gz";
+          sha256 = "sha256-6+P2qdjyvCzwrXYgw2yeG+hu8W5t6E0RCZx6Znkvj3g=";
+        }
+    else throw "Platform not supported";
 
   nativeBuildInputs = [ wrapGAppsHook ];
 
-  buildInputs = with gst_all_1; [ gst-plugins-base gst-plugins-good
-    gst-plugins-bad gst-plugins-ugly ];
+  buildInputs = with gst_all_1; [
+    gst-plugins-base
+    gst-plugins-good
+    gst-plugins-bad
+    gst-plugins-ugly
+  ];
 
   dontPatchELF = true;
 
   libPath = with gst_all_1; lib.makeLibraryPath [
-    stdenv.cc.cc glib gtk3 atk pango cairo gdk-pixbuf alsa-lib
-    libX11 libSM libpng12 gstreamer gst-plugins-base zlib
+    stdenv.cc.cc
+    glib
+    gtk3
+    atk
+    fontconfig
+    pango
+    cairo
+    gdk-pixbuf
+    alsa-lib
+    libX11
+    libXtst
+    libSM
+    libpng12
+    gstreamer
+    gst-plugins-base
+    zlib
   ];
 
   installPhase = ''
diff --git a/pkgs/applications/blockchains/dogecoin/default.nix b/pkgs/applications/blockchains/dogecoin/default.nix
index 16ac7a787fb..35b9fb026e3 100644
--- a/pkgs/applications/blockchains/dogecoin/default.nix
+++ b/pkgs/applications/blockchains/dogecoin/default.nix
@@ -7,13 +7,13 @@
 with lib;
 stdenv.mkDerivation rec {
   name = "dogecoin" + (toString (optional (!withGui) "d")) + "-" + version;
-  version = "1.14.4";
+  version = "1.14.5";
 
   src = fetchFromGitHub {
     owner = "dogecoin";
     repo = "dogecoin";
     rev = "v${version}";
-    sha256 = "sha256-uITX5DSyC/m0ynwCkkbGgUj8kMuNgnsNo8H8RQSGPEA=";
+    sha256 = "sha256-Ewefy6sptSQDJVbvQqFoawhA/ujKEn9W2JWyoPYD7d0=";
   };
 
   nativeBuildInputs = [ pkg-config autoreconfHook ];
diff --git a/pkgs/applications/blockchains/ledger-live-desktop/default.nix b/pkgs/applications/blockchains/ledger-live-desktop/default.nix
index 55d928e6072..22324014a38 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.35.2";
+  version = "2.36.2";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "https://github.com/LedgerHQ/${pname}/releases/download/v${version}/${pname}-${version}-linux-x86_64.AppImage";
-    hash = "sha256-VJr1H6YcPtCzm6FeFA+rNANvYUQ3wZQalI9RdSv68cI=";
+    hash = "sha256-cZwKL5G7CmQBw2x0wPYHZCiAABxPatvfIcOAf0d2+Dg=";
   };
 
   appimageContents = appimageTools.extractType2 {
diff --git a/pkgs/applications/blockchains/polkadot/default.nix b/pkgs/applications/blockchains/polkadot/default.nix
index 9b88861d0ea..eddc2cd8a21 100644
--- a/pkgs/applications/blockchains/polkadot/default.nix
+++ b/pkgs/applications/blockchains/polkadot/default.nix
@@ -7,16 +7,16 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "polkadot";
-  version = "0.9.12-1";
+  version = "0.9.14";
 
   src = fetchFromGitHub {
     owner = "paritytech";
     repo = "polkadot";
     rev = "v${version}";
-    sha256 = "sha256-+HATcxdIDQGDIQBF08yy/eKBcS10Hp7C0nZFVsYFNwQ=";
+    sha256 = "sha256-SCi+hpdMUTX1NLF1RUce0d/2G19sVfJ5IsmM1xcAUKo=";
   };
 
-  cargoSha256 = "sha256-1qg4ZnSORRVI7eCVMrR7lY3tzo7KJt+dC2RBXqbKrig=";
+  cargoSha256 = "sha256-ZcIsbMI96qX0LLJXmkCRS9g40ccZOH/upPbAA7XEZIw=";
 
   nativeBuildInputs = [ clang ];
 
diff --git a/pkgs/applications/editors/android-studio/common.nix b/pkgs/applications/editors/android-studio/common.nix
index 1393ae94302..540c59586a6 100644
--- a/pkgs/applications/editors/android-studio/common.nix
+++ b/pkgs/applications/editors/android-studio/common.nix
@@ -46,6 +46,7 @@
 , stdenv
 , systemd
 , unzip
+, usbutils
 , which
 , runCommand
 , xkeyboard_config
@@ -102,6 +103,7 @@ let
           # Runtime stuff
           git
           ps
+          usbutils
         ]}" \
         --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [
 
diff --git a/pkgs/applications/editors/android-studio/default.nix b/pkgs/applications/editors/android-studio/default.nix
index e6b9a168072..ec4f9b59e91 100644
--- a/pkgs/applications/editors/android-studio/default.nix
+++ b/pkgs/applications/editors/android-studio/default.nix
@@ -9,16 +9,16 @@ let
     inherit buildFHSUserEnv;
   };
   stableVersion = {
-    version = "2020.3.1.25"; # "Android Studio Arctic Fox (2020.3.1)"
-    sha256Hash = "10gpwb130bzp6a9g958cjqcb2gsm0vdgm08nm5xy45xdh54nxjfg";
+    version = "2020.3.1.26"; # "Android Studio Arctic Fox (2020.3.1)"
+    sha256Hash = "NE2FgjXtXTCVrCWRakqPhzAGn3blpf0OugJSKviPVBs=";
   };
   betaVersion = {
-    version = "2021.1.1.17"; # "Android Studio Bumblebee (2021.1.1) Beta 4"
-    sha256Hash = "5WLUgCmdrK0PArc4eQQTNbEokq4DReKRwsZOWKb+Td4=";
+    version = "2021.1.1.18"; # "Android Studio Bumblebee (2021.1.1) Beta 5"
+    sha256Hash = "gWG8h3wTQDH84vSKlfTm3soUqLkwFYfSymJuAAFPDuQ=";
   };
   latestVersion = { # canary & dev
-    version = "2021.2.1.3"; # "Android Studio Chipmunk (2021.2.1) Canary 3"
-    sha256Hash = "sha256-xIVdM28NDadvJklDIw71iJ7Z5GPVJ1ZDJ+t1y+bt8cE=";
+    version = "2021.2.1.5"; # "Android Studio Chipmunk (2021.2.1) Canary 5"
+    sha256Hash = "PS45nu5g9qXNeolYnFEs//Z6p8eIZoD6kUo/0yfHQ6A=";
   };
 in {
   # Attributes are named by their corresponding release channels
diff --git a/pkgs/applications/editors/code-browser/default.nix b/pkgs/applications/editors/code-browser/default.nix
index ea4398cc4a5..0efdae2ea65 100644
--- a/pkgs/applications/editors/code-browser/default.nix
+++ b/pkgs/applications/editors/code-browser/default.nix
@@ -1,46 +1,57 @@
 { lib, stdenv
 , fetchurl
 , copper
-, ruby
 , python3
-, qtbase
-, gtk3
 , pkg-config
-, withQt ? false
-, withGtk ? false, wrapQtAppsHook ? null
+, withQt ? false, qtbase ? null, wrapQtAppsHook ? null
+, withGtk2 ? false, gtk2
+, withGtk3 ? false, gtk3
+, mkDerivation ? stdenv.mkDerivation
 }:
-stdenv.mkDerivation rec {
+let onlyOneEnabled = xs: 1 == builtins.length (builtins.filter lib.id xs);
+in assert onlyOneEnabled [ withQt withGtk2 withGtk3 ];
+mkDerivation rec {
   pname = "code-browser";
-  version = "7.1.20";
+  version = "8.0";
   src = fetchurl {
     url = "https://tibleiz.net/download/code-browser-${version}-src.tar.gz";
-    sha256 = "1svi0v3h42h2lrb8c7pjvqc8019v1p20ibsnl48pfhl8d96mmdnz";
+    sha256 = "sha256-beCp4lx4MI1+hVgWp2h3piE/zu51zfwQdB5g7ImgmwY=";
   };
   postPatch = ''
     substituteInPlace Makefile --replace "LFLAGS=-no-pie" "LFLAGS=-no-pie -L."
-    substituteInPlace libs/copper-ui/Makefile --replace "moc -o" "${qtbase.dev}/bin/moc -o"
     patchShebangs .
-  '';
+  ''
+  + lib.optionalString withQt ''
+    substituteInPlace libs/copper-ui/Makefile --replace "moc -o" "${qtbase.dev}/bin/moc -o"
+    substituteInPlace libs/copper-ui/Makefile --replace "all: qt gtk gtk2" "all: qt"
+  ''
+  + lib.optionalString withGtk2 ''
+    substituteInPlace libs/copper-ui/Makefile --replace "all: qt gtk gtk2" "all: gtk2"
+  ''
+  + lib.optionalString withGtk3 ''
+    substituteInPlace libs/copper-ui/Makefile --replace "all: qt gtk gtk2" "all: gtk"
+  ''
+  ;
   nativeBuildInputs = [ copper
                         python3
-                        ruby
-                        qtbase
-                        gtk3
                         pkg-config
                       ]
-  ++ lib.optionals withQt [ wrapQtAppsHook ];
+  ++ lib.optionals withGtk2 [ gtk2 ]
+  ++ lib.optionals withGtk3 [ gtk3 ]
+  ++ lib.optionals withQt [ qtbase wrapQtAppsHook ];
   buildInputs = lib.optionals withQt [ qtbase ]
-                ++ lib.optionals withGtk [ gtk3 ];
+                ++ lib.optionals withGtk2 [ gtk2 ]
+                ++ lib.optionals withGtk3 [ gtk3 ];
   makeFlags = [
     "prefix=$(out)"
     "COPPER=${copper}/bin/copper-elf64"
     "with-local-libs"
-    "QINC=${qtbase.dev}/include"
   ]
-  ++ lib.optionals withQt [ "UI=qt" ]
-  ++ lib.optionals withGtk [ "UI=gtk" ];
-
-  dontWrapQtApps = true;
+  ++ lib.optionals withQt [ "QINC=${qtbase.dev}/include"
+                            "UI=qt"
+                          ]
+  ++ lib.optionals withGtk2 [ "UI=gtk2" ]
+  ++ lib.optionals withGtk3 [ "UI=gtk" ];
 
   meta = with lib; {
     description = "Folding text editor, designed to hierarchically structure any kind of text file and especially source code";
diff --git a/pkgs/applications/editors/cudatext/default.nix b/pkgs/applications/editors/cudatext/default.nix
index f30138c2fe0..cf2f36372a0 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.150.0";
+  version = "1.152.0";
 
   src = fetchFromGitHub {
     owner = "Alexey-T";
     repo = "CudaText";
     rev = version;
-    sha256 = "sha256-6XG4v2S7InKA6OVrV+q1lT/CzNxmzVQfmAAo2cqbqBY=";
+    sha256 = "sha256-LwPlWfna+/LsQxOBuTFpE7e7Qr5g9NN14rVasMZVImQ=";
   };
 
   postPatch = ''
@@ -99,6 +99,8 @@ stdenv.mkDerivation rec {
     fi
   '') additionalLexers;
 
+  passthru.updateScript = ./update.sh;
+
   meta = with lib; {
     description = "Cross-platform code editor";
     longDescription = ''
diff --git a/pkgs/applications/editors/cudatext/deps.json b/pkgs/applications/editors/cudatext/deps.json
index 8e677458a47..6b52a065359 100644
--- a/pkgs/applications/editors/cudatext/deps.json
+++ b/pkgs/applications/editors/cudatext/deps.json
@@ -16,8 +16,8 @@
   },
   "ATSynEdit": {
     "owner": "Alexey-T",
-    "rev": "2021.11.25",
-    "sha256": "sha256-CbH0C+UOJ9X2wKG5IEbgitda06lazujYM8l961k7C7g="
+    "rev": "2021.12.12",
+    "sha256": "sha256-glP2Srw3Lw1JNQO+DIwixf4Xdbo5M6pBdYufwGERPW4="
   },
   "ATSynEdit_Cmp": {
     "owner": "Alexey-T",
@@ -26,13 +26,13 @@
   },
   "EControl": {
     "owner": "Alexey-T",
-    "rev": "2021.10.21",
-    "sha256": "sha256-RyRpHihmmr/EeVWk9CR0S3pvKy0FzqLZNGti33+4fkI="
+    "rev": "2021.12.07",
+    "sha256": "sha256-givCklAHao26psWLI2qK246igxcAQEeIYTGH61FX6Xo="
   },
   "ATSynEdit_Ex": {
     "owner": "Alexey-T",
-    "rev": "2021.11.25",
-    "sha256": "sha256-6hk9wNdoz1d3VpuW7yHyIQnnYseEAfgjCNGl6+o0Hjs="
+    "rev": "2021.12.07",
+    "sha256": "sha256-/2Fv/vrpbHSiJro11cjbziUaT4gfwa6y5aQBoYgq3OQ="
   },
   "Python-for-Lazarus": {
     "owner": "Alexey-T",
diff --git a/pkgs/applications/editors/cudatext/update.sh b/pkgs/applications/editors/cudatext/update.sh
new file mode 100755
index 00000000000..8389b3e8a7d
--- /dev/null
+++ b/pkgs/applications/editors/cudatext/update.sh
@@ -0,0 +1,23 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl gnused jq nix-prefetch moreutils
+
+set -euo pipefail
+cd "$(dirname "$0")"
+
+version=$(curl -s https://api.github.com/repos/Alexey-T/CudaText/releases/latest | jq -r '.tag_name')
+url="https://github.com/Alexey-T/CudaText/archive/refs/tags/${version}.tar.gz"
+hash=$(nix-prefetch-url --quiet --unpack --type sha256 $url)
+sriHash=$(nix hash to-sri --type sha256 $hash)
+
+sed -i "s#version = \".*\"#version = \"$version\"#" default.nix
+sed -i "s#sha256 = \".*\"#sha256 = \"$sriHash\"#" default.nix
+
+while IFS=$'\t' read repo owner rev; do
+  latest=$(curl -s https://api.github.com/repos/${owner}/${repo}/releases/latest | jq -r '.tag_name')
+  if [ "$latest" != "$rev" ]; then
+    url="https://github.com/${owner}/${repo}/archive/refs/tags/${latest}.tar.gz"
+    hash=$(nix-prefetch-url --quiet --unpack --type sha256 $url)
+    sriHash=$(nix hash to-sri --type sha256 $hash)
+    jq ".${repo}.rev = \"${latest}\" | .${repo}.sha256 = \"${sriHash}\"" deps.json | sponge deps.json
+  fi
+done <<< $(jq -r 'to_entries[]|[.key,.value.owner,.value.rev]|@tsv' deps.json)
diff --git a/pkgs/applications/editors/eclipse/build-eclipse.nix b/pkgs/applications/editors/eclipse/build-eclipse.nix
index c52e43373c1..29c063633fc 100644
--- a/pkgs/applications/editors/eclipse/build-eclipse.nix
+++ b/pkgs/applications/editors/eclipse/build-eclipse.nix
@@ -2,7 +2,7 @@
 , zlib, jdk, glib, gtk, libXtst, libsecret, gsettings-desktop-schemas, webkitgtk
 , makeWrapper, perl, ... }:
 
-{ name, src ? builtins.getAttr stdenv.hostPlatform.system sources, sources ? null, description }:
+{ name, src ? builtins.getAttr stdenv.hostPlatform.system sources, sources ? null, description, productVersion }:
 
 stdenv.mkDerivation rec {
   inherit name src;
@@ -37,13 +37,12 @@ stdenv.mkDerivation rec {
     # settings in ~/.eclipse/org.eclipse.platform_<version> rather
     # than ~/.eclipse/org.eclipse.platform_<version>_<number>.
     productId=$(sed 's/id=//; t; d' $out/eclipse/.eclipseproduct)
-    productVersion=$(sed 's/version=//; t; d' $out/eclipse/.eclipseproduct)
 
     makeWrapper $out/eclipse/eclipse $out/bin/eclipse \
       --prefix PATH : ${jdk}/bin \
       --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath ([ glib gtk libXtst libsecret ] ++ lib.optional (webkitgtk != null) webkitgtk)} \
       --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" \
-      --add-flags "-configuration \$HOME/.eclipse/''${productId}_$productVersion/configuration"
+      --add-flags "-configuration \$HOME/.eclipse/''${productId}_${productVersion}/configuration"
 
     # Create desktop item.
     mkdir -p $out/share/applications
diff --git a/pkgs/applications/editors/eclipse/default.nix b/pkgs/applications/editors/eclipse/default.nix
index 77cf5088a40..c97cbaf60ea 100644
--- a/pkgs/applications/editors/eclipse/default.nix
+++ b/pkgs/applications/editors/eclipse/default.nix
@@ -16,18 +16,21 @@ assert stdenv ? glibc;
 
 let
   platform_major = "4";
-  platform_minor = "21";
+  platform_minor = "22";
   year = "2021";
-  month = "09";
-  timestamp = "${year}${month}060500";
+  month = "12"; #release month
+  buildmonth = "11"; #sometimes differs from release month
+  timestamp = "${year}${buildmonth}241800";
   gtk = gtk3;
 in rec {
 
-  buildEclipse = callPackage ./build-eclipse.nix {
+  # work around https://bugs.eclipse.org/bugs/show_bug.cgi?id=476075#c3
+  buildEclipseUnversioned = callPackage ./build-eclipse.nix {
     inherit stdenv makeDesktopItem freetype fontconfig libX11 libXrender zlib
             jdk glib gtk libXtst gsettings-desktop-schemas webkitgtk
             makeWrapper;
   };
+  buildEclipse = eclipseData: buildEclipseUnversioned (eclipseData // { productVersion = "${platform_major}.${platform_minor}"; });
 
   ### Eclipse CPP
 
@@ -37,7 +40,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 = "3xdj7b0mlhdys9q4l19kkf1hm0d67dwx55gzfmgv90nvswv0jhyvs42my4wrlrmkh6lz8m0z6dakadhl1bxf2fd8pdp5sm4bv0w0gwc";
+        hash = "sha512-Lniaw8aUptHI0a75olTNHaMba+ugUdJKf9sJ0hGzKqY94vvfU3N2TH5eQBeXb1MyQdRdBL1D8Vs3+LD9lWlTMg==";
       };
   };
 
@@ -49,7 +52,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 = "20xy4vzqlmg4sdvqimz2nc212vb45k5kwh40qagm13r6h3vfv3yrl8bznnappaf4msfa9xdaxns2kz0x94hw444zjmrnbf7614a48xi";
+        hash = "sha512-F/5yroFDbrSclmUP5vTNSkYR+OZ1dkPv2FPZT1XM5HFoynitYkDxnj+uTcJIBOWv3Zu1plU4yweW0DF1E9jLcg==";
       };
   };
 
@@ -61,16 +64,17 @@ 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 = "29hab3ha3spk0048k3mf2x5m80hlh1l6nazsykx0xxrqy9vdkdibv6mq74dzf1n93h1bd5qh9axicnhs465kp7r1irdl04761c1wibi";
+        hash = "sha512-3XsBk8/KHtTjit/WMneOghuOkqEHOIdLwof7718dsrDP4vfgcfhb47V7fPYDOw2eld88pHk+85mTGpZOTTywxw==";
       };
   };
 
   ### Eclipse Scala SDK
 
   eclipse-scala-sdk =
-    buildEclipse.override { jdk = jdk8; gtk = gtk2; } {
+    buildEclipseUnversioned.override { jdk = jdk8; gtk = gtk2; } {
       name = "eclipse-scala-sdk-4.7.0";
       description = "Eclipse IDE for Scala Developers";
+      productVersion = "4.7";
       src =
         fetchurl {
           url = "https://downloads.typesafe.com/scalaide-pack/4.7.0-vfinal-oxygen-212-20170929/scala-SDK-4.7.0-vfinal-2.12-linux.gtk.x86_64.tar.gz";
@@ -86,7 +90,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 = "3ag7nfpnn1149gkva58x0037pbdb5wds0qpwv21lif7a6b1a1n7g2n056bn43a7fkxkkj38752gkz29nvqh5g8hqkg29lax8sjlm7sm";
+        hash = "sha512-7bTYIFnX8oUPaqDrMOlGNnpyC+xvDQsNmgZUps/epGkzM9Fjlc2lPr75VR7UaezBCoAuNTSHCYtG5d6TJOKjmQ==";
       };
   };
 
@@ -98,7 +102,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 = "27h5wjr4k0jhi256rk74kbjbm5h7xi4hbml89n1jhppq1yfyv2mf75zb32iaia2pxclx6hc0cd1hvq85fwvcshnq79fw8za687yvbhv";
+        hash = "sha512-ahykujYH9RLvxVMPFlFILGYJO0LXHvuhnILifeAo5v5Tp5ktGVlZWG461iZHETlt8Zr76liGAqm1ytQcuzCyQA==";
       };
   };
 
@@ -110,7 +114,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-jee-${year}-${month}-R-linux-gtk-x86_64.tar.gz";
-        sha512 = "03li2bkhkdybwp411xs8i3cp2hmrfg2xd7inbdsxh07y4b9806spi3q10vga97m7ngl6fl5n0mvgxwj8dbdvp133wn9mgrlajb1n4n8";
+        hash = "sha512-CuKxjcnvkROURtavZJN0AhCuA0x7NayZTpIOn9oE21rUzVqR0p7x7C5RPtMZ9gS4ZMWcYyQDJ0BVgRHBoKsYqQ==";
       };
   };
 
@@ -122,7 +126,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 = "38xwwvg59bdp0a6brmcvq0wlfikik0wnqq897abf5a8vyr0ci7xp5f4ii90x2l5sj5gmcc6jiwvi99c03cjbgivpalr741yka0p3pv5";
+        hash = "sha512-CqUbxUUMIJsXsx4XEOQ1d2L3U22VpAfQP+R8HNoVetDawhR+b2tyDVnTQRKTL4dJ0fjLXDeoHvTlPm1EXi/ahA==";
       };
   };
 
@@ -134,7 +138,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-rcp-${year}-${month}-R-linux-gtk-x86_64.tar.gz";
-        sha512 = "30hhy83lmjldcwwbjpk5q9zjai5r3xyhlrddalgrw8mspknayncaa2l32gg327fw0a8qaakzgwkh68gj81pmk3dps5wzy881pf22dhc";
+        hash = "sha256-ys3MjIBr2hLZC/GB8Am/Qlto4+dSzOoK9p7QF+GS0Eg=";
       };
   };
 
diff --git a/pkgs/applications/editors/eclipse/plugins.nix b/pkgs/applications/editors/eclipse/plugins.nix
index 337479b16bc..32b0dfd864f 100644
--- a/pkgs/applications/editors/eclipse/plugins.nix
+++ b/pkgs/applications/editors/eclipse/plugins.nix
@@ -248,12 +248,12 @@ rec {
   cdt = buildEclipseUpdateSite rec {
     name = "cdt-${version}";
     # find current version at https://www.eclipse.org/cdt/downloads.php
-    version = "10.4.1";
+    version = "10.5.0";
 
     src = fetchzip {
       stripRoot = false;
       url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/tools/cdt/releases/${lib.versions.majorMinor version}/${name}/${name}.zip";
-      sha256 = "1l3v6dryaqifwrv2h4knwmpyf11qbyl04p7gcvgrx3hczc82a6p1";
+      hash = "sha256-0sf38Ekw9mMjiEmJDcunVL3VS3KqWVXKZlQIGBk4V4g=";
     };
 
     meta = with lib; {
diff --git a/pkgs/applications/editors/emacs/27.nix b/pkgs/applications/editors/emacs/27.nix
index e0e41a78b9c..436785c34f6 100644
--- a/pkgs/applications/editors/emacs/27.nix
+++ b/pkgs/applications/editors/emacs/27.nix
@@ -2,7 +2,6 @@ import ./generic.nix (rec {
   version = "27.2";
   sha256 = "sha256-tKfMTnjmPzeGJOCRkhW5EK9bsqCvyBn60pgnLp9Awbk=";
   patches = fetchpatch: [
-    ./tramp-detect-wrapped-gvfsd.patch
     (fetchpatch {
       name = "fix-aarch64-darwin-triplet.patch";
       url = "https://git.savannah.gnu.org/cgit/emacs.git/patch/?id=a88f63500e475f842e5fbdd9abba4ce122cdb082";
diff --git a/pkgs/applications/editors/emacs/generic.nix b/pkgs/applications/editors/emacs/generic.nix
index 2a1ed2f8b1a..6b449116921 100644
--- a/pkgs/applications/editors/emacs/generic.nix
+++ b/pkgs/applications/editors/emacs/generic.nix
@@ -64,6 +64,16 @@ let emacs = stdenv.mkDerivation (lib.optionalAttrs nativeComp {
       rm -fr .git
     '')
 
+    # Add the name of the wrapped gvfsd
+    # This used to be carried as a patch but it often got out of sync with upstream
+    # and was hard to maintain for emacs-overlay.
+    (lib.concatStrings (map (fn: ''
+      sed -i 's#(${fn} "gvfs-fuse-daemon")#(${fn} "gvfs-fuse-daemon") (${fn} ".gvfsd-fuse-wrapped")#' lisp/net/tramp-gvfs.el
+    '') [
+      "tramp-compat-process-running-p"
+      "tramp-process-running-p"
+    ]))
+
     # Reduce closure size by cleaning the environment of the emacs dumper
     ''
       substituteInPlace src/Makefile.in \
diff --git a/pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd-26.patch b/pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd-26.patch
deleted file mode 100644
index 5d16194fd20..00000000000
--- a/pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd-26.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/lisp/net/tramp-gvfs.el b/lisp/net/tramp-gvfs.el
-index f370abba31..f2806263a9 100644
---- a/lisp/net/tramp-gvfs.el
-+++ b/lisp/net/tramp-gvfs.el
-@@ -164,7 +164,8 @@ tramp-gvfs-enabled
-     (and (featurep 'dbusbind)
- 	 (tramp-compat-funcall 'dbus-get-unique-name :system)
- 	 (tramp-compat-funcall 'dbus-get-unique-name :session)
--	 (or (tramp-compat-process-running-p "gvfs-fuse-daemon")
-+	 (or (tramp-compat-process-running-p ".gvfsd-fuse-wrapped")
-+             (tramp-compat-process-running-p "gvfs-fuse-daemon")
- 	     (tramp-compat-process-running-p "gvfsd-fuse"))))
-   "Non-nil when GVFS is available.")
- 
diff --git a/pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd.patch b/pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd.patch
deleted file mode 100644
index b27dfd47e60..00000000000
--- a/pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff --git a/lisp/net/tramp-gvfs.el b/lisp/net/tramp-gvfs.el
-index 9e26c8fd6d..fa220e513c 100644
---- a/lisp/net/tramp-gvfs.el
-+++ b/lisp/net/tramp-gvfs.el
-@@ -125,5 +125,6 @@
- 	     ;; for some processes.  Better we don't check.
- 	     (<= emacs-major-version 25)
- 	     (tramp-compat-process-running-p "gvfs-fuse-daemon")
-+	     (tramp-compat-process-running-p ".gvfsd-fuse-wrapped")
- 	     (tramp-compat-process-running-p "gvfsd-fuse"))))
-   "Non-nil when GVFS is available.")
diff --git a/pkgs/applications/editors/gobby/default.nix b/pkgs/applications/editors/gobby/default.nix
index 35e96c89dad..ea0a1e2f247 100644
--- a/pkgs/applications/editors/gobby/default.nix
+++ b/pkgs/applications/editors/gobby/default.nix
@@ -24,7 +24,7 @@ in stdenv.mkDerivation rec {
     homepage = "http://gobby.0x539.de/";
     description = "A GTK-based collaborative editor supporting multiple documents in one session and a multi-user chat";
     license = lib.licenses.gpl2Plus;
-    maintainers = [ maintainers.phreedom ];
+    maintainers = [ ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/editors/jetbrains/common.nix b/pkgs/applications/editors/jetbrains/common.nix
index 4d8835c29c5..b3145f342c9 100644
--- a/pkgs/applications/editors/jetbrains/common.nix
+++ b/pkgs/applications/editors/jetbrains/common.nix
@@ -3,7 +3,7 @@
 , vmopts ? null
 }:
 
-{ name, product, version, src, wmClass, jdk, meta, extraLdPath ? [] }@args:
+{ name, product, version, src, wmClass, jdk, meta, extraLdPath ? [], extraWrapperArgs ? [] }@args:
 
 with lib;
 
@@ -81,6 +81,7 @@ with stdenv; lib.makeOverridable mkDerivation (rec {
         stdenv.cc.cc.lib libsecret e2fsprogs
         libnotify
       ] ++ extraLdPath)}" \
+      ${lib.concatStringsSep " " extraWrapperArgs} \
       --set JDK_HOME "$jdk" \
       --set ${hiName}_JDK "$jdk" \
       --set ANDROID_JAVA_HOME "$jdk" \
diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix
index fae273be667..5c129fa3f38 100644
--- a/pkgs/applications/editors/jetbrains/default.nix
+++ b/pkgs/applications/editors/jetbrains/default.nix
@@ -1,6 +1,7 @@
 { lib, stdenv, callPackage, fetchurl
 , jdk, cmake, zlib, python3
 , dotnet-sdk_5
+, maven
 , autoPatchelfHook
 , libdbusmenu
 , vmopts ? null
@@ -98,6 +99,10 @@ let
       inherit name version src wmClass jdk;
       product = "IDEA";
       extraLdPath = [ zlib ];
+      extraWrapperArgs = [
+        ''--set M2_HOME "${maven}/maven"''
+        ''--set M2 "${maven}/maven/bin"''
+      ];
       meta = with lib; {
         homepage = "https://www.jetbrains.com/idea/";
         inherit description license;
@@ -242,12 +247,12 @@ in
 
   clion = buildClion rec {
     name = "clion-${version}";
-    version = "2021.2.3"; /* updated by script */
+    version = "2021.3"; /* updated by script */
     description  = "C/C++ IDE. New. Intelligent. Cross-platform";
     license = lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/cpp/CLion-${version}.tar.gz";
-      sha256 = "09qbzkxyk435s4n04s12ncjyri024wj9pwz8wgjjsswpfa69dhr5"; /* updated by script */
+      sha256 = "0rvq0k99c4kniw2k0a8m2hq27v9nvn7qg6yg9dwxlmadsrx6as29"; /* updated by script */
     };
     wmClass = "jetbrains-clion";
     update-channel = "CLion RELEASE"; # channel's id as in http://www.jetbrains.com/updates/updates.xml
@@ -268,12 +273,12 @@ in
 
   goland = buildGoland rec {
     name = "goland-${version}";
-    version = "2021.2.4"; /* updated by script */
+    version = "2021.3"; /* updated by script */
     description = "Up and Coming Go IDE";
     license = lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/go/${name}.tar.gz";
-      sha256 = "03x7yz8jz5r4pblm7cvph39zppa33lalvkpzmgvr3wjq0chqmh65"; /* updated by script */
+      sha256 = "0bdsvfsx0vhmvlqvy9phw6yz98la8qw2avm4p0yl9j8y9zplbhl0"; /* updated by script */
     };
     wmClass = "jetbrains-goland";
     update-channel = "GoLand RELEASE";
@@ -307,13 +312,13 @@ in
 
   mps = buildMps rec {
     name = "mps-${version}";
-    version = "2021.2.2"; /* updated by script */
+    version = "2021.2.3"; /* updated by script */
     versionMajorMinor = "2021.2"; /* updated by script */
     description = "Create your own domain-specific language";
     license = lib.licenses.asl20;
     src = fetchurl {
       url = "https://download.jetbrains.com/mps/${versionMajorMinor}/MPS-${version}.tar.gz";
-      sha256 = "011prnpab72kfgkwq0ms27qqnjamh33h023gb01fxvqwwzcmp6sk"; /* updated by script */
+      sha256 = "1j33b48ki1xw7xb1hr8k2jz7d78h0qcr1b5gql7i40d7szq0iy10"; /* updated by script */
     };
     wmClass = "jetbrains-mps";
     update-channel = "MPS RELEASE";
@@ -321,12 +326,12 @@ in
 
   phpstorm = buildPhpStorm rec {
     name = "phpstorm-${version}";
-    version = "2021.2.3"; /* updated by script */
+    version = "2021.3"; /* updated by script */
     description = "Professional IDE for Web and PHP developers";
     license = lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz";
-      sha256 = "1avcm4fnkn0jkw85s505yz5kjbxzk038463sjdsca04pv5yhsdp0"; /* updated by script */
+      sha256 = "1h3ld3swvvx8hicm5lpf65mr7asiqy59hvqnigz71hbjgqnsb8g0"; /* updated by script */
     };
     wmClass = "jetbrains-phpstorm";
     update-channel = "PhpStorm RELEASE";
@@ -334,12 +339,12 @@ in
 
   pycharm-community = buildPycharm rec {
     name = "pycharm-community-${version}";
-    version = "2021.2.3"; /* updated by script */
+    version = "2021.3"; /* updated by script */
     description = "PyCharm Community Edition";
     license = lib.licenses.asl20;
     src = fetchurl {
       url = "https://download.jetbrains.com/python/${name}.tar.gz";
-      sha256 = "0m98qhkgwnmqkay8sclfyig2xcqvpva74l2kdira3r5sbszmxvcr"; /* updated by script */
+      sha256 = "0iypqilil6x9k1gi6bfjzccw7wp601grd9639yk50crg45wnzga4"; /* updated by script */
     };
     wmClass = "jetbrains-pycharm-ce";
     update-channel = "PyCharm RELEASE";
@@ -347,12 +352,12 @@ in
 
   pycharm-professional = buildPycharm rec {
     name = "pycharm-professional-${version}";
-    version = "2021.2.3"; /* updated by script */
+    version = "2021.3"; /* updated by script */
     description = "PyCharm Professional Edition";
     license = lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/python/${name}.tar.gz";
-      sha256 = "0zp72ag9jqhq0sv4x5n43d6g9y2yzkxa4pkflc7gd5rpg555cqr7"; /* updated by script */
+      sha256 = "0z6dnigx616939azyngjy5r4gayazplkgq480k80ppmkw636yhl1"; /* updated by script */
     };
     wmClass = "jetbrains-pycharm";
     update-channel = "PyCharm RELEASE";
@@ -360,12 +365,12 @@ in
 
   rider = buildRider rec {
     name = "rider-${version}";
-    version = "2021.2.2"; /* updated by script */
+    version = "2021.3.1"; /* updated by script */
     description = "A cross-platform .NET IDE based on the IntelliJ platform and ReSharper";
     license = lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/rider/JetBrains.Rider-${version}.tar.gz";
-      sha256 = "17xx8mz3dr5iqlr0lsiy8a6cxz3wp5vg8z955cdv0hf8b5rncqfa"; /* updated by script */
+      sha256 = "0c788xvcd5b9jafz2yyllj1pzgc9ry3pg82qi8glghvimjnk1cfd"; /* updated by script */
     };
     wmClass = "jetbrains-rider";
     update-channel = "Rider RELEASE";
diff --git a/pkgs/applications/editors/kakoune/default.nix b/pkgs/applications/editors/kakoune/default.nix
index e8c2760973a..9beab9fa4be 100644
--- a/pkgs/applications/editors/kakoune/default.nix
+++ b/pkgs/applications/editors/kakoune/default.nix
@@ -37,6 +37,7 @@ stdenv.mkDerivation rec {
     homepage = "http://kakoune.org/";
     description = "A vim inspired text editor";
     license = licenses.publicDomain;
+    mainProgram = "kak";
     maintainers = with maintainers; [ vrthra ];
     platforms = platforms.unix;
   };
diff --git a/pkgs/applications/editors/lite-xl/default.nix b/pkgs/applications/editors/lite-xl/default.nix
index 0c2aed88c0e..a468e34393c 100644
--- a/pkgs/applications/editors/lite-xl/default.nix
+++ b/pkgs/applications/editors/lite-xl/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lite-xl";
-  version = "2.0.3";
+  version = "2.0.4";
 
   src = fetchFromGitHub {
     owner = "lite-xl";
     repo = "lite-xl";
     rev = "v${version}";
-    sha256 = "sha256-8Hw2zDYynWG/NwxtWgbEVUCzrtRVkOhwtsisURNqUn8=";
+    sha256 = "sha256-yMdfJ8qE2Tv+CtvbPN6todzY/pDrYo+vaBeppuUt5F4=";
   };
 
   patches = [
diff --git a/pkgs/applications/editors/nano/default.nix b/pkgs/applications/editors/nano/default.nix
index f7fb1b5bfc6..ffef9c5988b 100644
--- a/pkgs/applications/editors/nano/default.nix
+++ b/pkgs/applications/editors/nano/default.nix
@@ -16,11 +16,11 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "nano";
-  version = "5.9";
+  version = "6.0";
 
   src = fetchurl {
     url = "mirror://gnu/nano/${pname}-${version}.tar.xz";
-    sha256 = "dX24zaS7KHNZnkd4OvRj47VHpiewyrsw6nv3H7TCSTc=";
+    sha256 = "k6yMtotK0Q4KrrgKLdFcW7ietmWkhE960Bxn78sWnqI=";
   };
 
   nativeBuildInputs = [ texinfo ] ++ optional enableNls gettext;
diff --git a/pkgs/applications/editors/okteta/default.nix b/pkgs/applications/editors/okteta/default.nix
index 296a1eb2ad8..96256e7ef34 100644
--- a/pkgs/applications/editors/okteta/default.nix
+++ b/pkgs/applications/editors/okteta/default.nix
@@ -4,11 +4,11 @@
 
 mkDerivation rec {
   pname = "okteta";
-  version = "0.26.5";
+  version = "0.26.6";
 
   src = fetchurl {
     url = "mirror://kde/stable/okteta/${version}/src/${pname}-${version}.tar.xz";
-    sha256 = "sha256-n8ft//c+ewWDr1QLDAUvkiHKPxHqP8NgTCvO2wnCmpc=";
+    sha256 = "sha256-xWnNW1VQPkbfGltckWKwiIjEJqpSxvPy+SbGWL7gFEw=";
   };
 
   nativeBuildInputs = [ qtscript extra-cmake-modules kdoctools ];
diff --git a/pkgs/applications/editors/sigil/default.nix b/pkgs/applications/editors/sigil/default.nix
index adbbc05ccce..6b314dff93a 100644
--- a/pkgs/applications/editors/sigil/default.nix
+++ b/pkgs/applications/editors/sigil/default.nix
@@ -6,13 +6,13 @@
 
 mkDerivation rec {
   pname = "sigil";
-  version = "1.7.0";
+  version = "1.8.0";
 
   src = fetchFromGitHub {
     repo = "Sigil";
     owner = "Sigil-Ebook";
     rev = version;
-    sha256 = "sha256-a1gstR7qHbzQ3GZ0g/lxUxcHeZ5QgJIvhCV37tqlVfA=";
+    sha256 = "sha256-luX4/KERB4GwpID7zVnd6F/mN8SHTy9zmqSUzJ1CYPk=";
   };
 
   pythonPath = with python3Packages; [ lxml ];
diff --git a/pkgs/applications/editors/spacevim/default.nix b/pkgs/applications/editors/spacevim/default.nix
index 9f6f895efac..ef3a6538c7c 100644
--- a/pkgs/applications/editors/spacevim/default.nix
+++ b/pkgs/applications/editors/spacevim/default.nix
@@ -28,12 +28,12 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "spacevim";
-  version = "1.7.0";
+  version = "1.8.0";
   src = fetchFromGitHub {
     owner = "SpaceVim";
     repo = "SpaceVim";
     rev = "v${version}";
-    sha256 = "sha256-TmfPeaGkH1Wq2b5lB29PUYDVddJVN3mBuPAmu9EtiGY=";
+    sha256 = "sha256:11snnh5q47nqhzjb9qya6hpnmlzc060958whqvqrh4hc7gnlnqp8";
   };
 
   nativeBuildInputs = [ makeWrapper vim-customized ];
diff --git a/pkgs/applications/editors/standardnotes/default.nix b/pkgs/applications/editors/standardnotes/default.nix
index d3ff564b8f0..4191f6fbd20 100644
--- a/pkgs/applications/editors/standardnotes/default.nix
+++ b/pkgs/applications/editors/standardnotes/default.nix
@@ -2,19 +2,20 @@
 , fetchurl, libsecret, gtk3, gsettings-desktop-schemas }:
 
 let
-  version = "3.8.18";
+  version = "3.9.5";
   pname = "standardnotes";
   name = "${pname}-${version}";
+  throwSystem = throw "Unsupported system: ${stdenv.hostPlatform.system}";
 
   plat = {
-    i386-linux = "i386";
+    i686-linux = "i386";
     x86_64-linux = "x86_64";
-  }.${stdenv.hostPlatform.system};
+  }.${stdenv.hostPlatform.system} or throwSystem;
 
   sha256 = {
-    i386-linux = "1xiypsmvpk8i6kab862pipbdfb0y5d5355hdwjmva7v7g26aa7h7";
-    x86_64-linux = "03qlxlgyypnvcr40jh6i4wriyax2jbfhrb798cq0n7qlc1y4pg8r";
-  }.${stdenv.hostPlatform.system};
+    i686-linux = "sha256-7Mo8ELFV6roZ3IYWBtB2rRDAzJrq4ht9f1v6uohsauw=";
+    x86_64-linux = "sha256-9VPYII9E8E3yL7UuU0+GmaK3qxWX4bwfACDl7F7sngo=";
+  }.${stdenv.hostPlatform.system} or throwSystem;
 
   src = fetchurl {
     url = "https://github.com/standardnotes/desktop/releases/download/v${version}/standard-notes-${version}-linux-${plat}.AppImage";
@@ -60,7 +61,7 @@ in appimageTools.wrapType2 rec {
     '';
     homepage = "https://standardnotes.org";
     license = licenses.agpl3;
-    maintainers = with maintainers; [ mgregoire ];
-    platforms = [ "i386-linux" "x86_64-linux" ];
+    maintainers = with maintainers; [ mgregoire chuangzhu ];
+    platforms = [ "i686-linux" "x86_64-linux" ];
   };
 }
diff --git a/pkgs/applications/editors/vim/common.nix b/pkgs/applications/editors/vim/common.nix
index e068f7df50b..db368d585a0 100644
--- a/pkgs/applications/editors/vim/common.nix
+++ b/pkgs/applications/editors/vim/common.nix
@@ -1,12 +1,12 @@
 { lib, fetchFromGitHub }:
 rec {
-  version = "8.2.3451";
+  version = "8.2.3848";
 
   src = fetchFromGitHub {
     owner = "vim";
     repo = "vim";
     rev = "v${version}";
-    sha256 = "sha256-8OaEaFyOaL59j0EZkUY+kuR6si79H2dN09f8SnltxbQ=";
+    sha256 = "sha256-U6xrEZbieRBU0FDdTloYdZzuNpJ9+Q7FZgfI+0SPEAQ=";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/editors/vscode/vscode.nix b/pkgs/applications/editors/vscode/vscode.nix
index fd56434e7b0..8990ef75a85 100644
--- a/pkgs/applications/editors/vscode/vscode.nix
+++ b/pkgs/applications/editors/vscode/vscode.nix
@@ -14,17 +14,17 @@ let
   archive_fmt = if stdenv.isDarwin then "zip" else "tar.gz";
 
   sha256 = {
-    x86_64-linux = "1w28rmb9fi45s85rrlzzh6r826dnyisd6lh3j8ir4hx6d34cawsf";
-    x86_64-darwin = "1fyg3ygqk0z3jcj5bskgprlq8k9j134y75xq06z4xbv1dhgwhswj";
-    aarch64-linux = "0hha9ksbj51zmq0p3d1fwni4jd0yp0wab0w19carmbhnydhrgh22";
-    aarch64-darwin = "1cmrh621z7ddl4qh95hm0nwzazshl71a43c6113jf4w6b1kvy5m5";
-    armv7l-linux = "1kipvqc5hrpgsfw7x2ab5jydf7zksdd3q8qr2mg20kjsdi4skwy4";
+    x86_64-linux = "1bglf1a8b5whv9pk811fdnx0mvfcfasjxbik73p67msp4yy68lm4";
+    x86_64-darwin = "0cv6i2i69xf6hn0vrfl3gk3ky7r5yvp4k7zx2k695gzck5s9bx8y";
+    aarch64-linux = "1jggspj5q4vfgs4xdvx5p8qsfm98wf17jmxqzs68lmlhmhadyh22";
+    aarch64-darwin = "0c1nz7a54xq20a2a4fqcmlhry6gqwz5f1ys7dx0x5whaxbybh8my";
+    armv7l-linux = "0p2rdxbqpzk79ra7br7wfs8kr0hnh3l022mqb7y16gc426xjlfn4";
   }.${system};
 in
   callPackage ./generic.nix rec {
     # Please backport all compatible updates to the stable release.
     # This is important for the extension ecosystem.
-    version = "1.63.0";
+    version = "1.63.2";
     pname = "vscode";
 
     executableName = "code" + lib.optionalString isInsiders "-insiders";
diff --git a/pkgs/applications/editors/vscode/vscodium.nix b/pkgs/applications/editors/vscode/vscodium.nix
index 4b795fceba2..0ca39a72842 100644
--- a/pkgs/applications/editors/vscode/vscodium.nix
+++ b/pkgs/applications/editors/vscode/vscodium.nix
@@ -13,10 +13,10 @@ let
   archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz";
 
   sha256 = {
-    x86_64-linux = "17kck7pkklhifm6hpsd93wmnyk06vi9sa55gp62m3diymp1b129z";
-    x86_64-darwin = "1japc6yyvw07rll53pf2jfg89m2g9jqj5daghg10v1gqk98j7r3x";
-    aarch64-linux = "0zg05q0hyldnw5g8b9zdf0ls4s07fixib7v830wa5dyi2sjcv149";
-    armv7l-linux = "0mky66cyxhx3cfm35sa4vlwh8m1878rc80jml9mqxdhlrpnxgdiy";
+    x86_64-linux = "0pczrbifjgm905371i8c6bk90ka291cmny6hr1nzfix7bn5psjx0";
+    x86_64-darwin = "12g2jlrhng3i56a4v9jf7nrj045jivnfdx4dhka1fiv60nn4gc46";
+    aarch64-linux = "1bhhz4yvmk3zqljy3b77hlsxbwm2l675pslhwr44p6fb4hmn8fai";
+    armv7l-linux = "15nbskq92b85zdyg7pgagi9mqhnbyisfkipqb3brc2rvmyxpzclb";
   }.${system};
 
   sourceRoot = {
@@ -31,7 +31,7 @@ in
 
     # Please backport all compatible updates to the stable release.
     # This is important for the extension ecosystem.
-    version = "1.63.0";
+    version = "1.63.2";
     pname = "vscodium";
 
     executableName = "codium";
diff --git a/pkgs/applications/graphics/avocode/default.nix b/pkgs/applications/graphics/avocode/default.nix
index a2a9dcd4750..fede2c9bb51 100644
--- a/pkgs/applications/graphics/avocode/default.nix
+++ b/pkgs/applications/graphics/avocode/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "avocode";
-  version = "4.15.1";
+  version = "4.15.5";
 
   src = fetchurl {
     url = "https://media.avocode.com/download/avocode-app/${version}/avocode-${version}-linux.zip";
-    sha256 = "sha256-Cli1tbe/eHS0yk1OhrSgFwjjGx2jvQSYStkKYj6gk4I=";
+    sha256 = "sha256-vPS2hTaWjundVjtguy/1eH1qBaipN2Ij8PQODka+IGg=";
   };
 
   libPath = lib.makeLibraryPath (with xorg; [
diff --git a/pkgs/applications/graphics/digikam/default.nix b/pkgs/applications/graphics/digikam/default.nix
index 141f966253d..f528d587a41 100644
--- a/pkgs/applications/graphics/digikam/default.nix
+++ b/pkgs/applications/graphics/digikam/default.nix
@@ -55,11 +55,11 @@
 
 mkDerivation rec {
   pname   = "digikam";
-  version = "7.3.0";
+  version = "7.4.0";
 
   src = fetchurl {
-    url = "mirror://kde/stable/${pname}/${version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-la6pO+HP05u1IzO4Kz5Xv2gIDH0TGddU0WeiD22+RVE=";
+    url = "mirror://kde/stable/${pname}/${version}/digiKam-${version}.tar.xz";
+    sha256 = "sha256-0Iq2bacyu0SbwQEG7BHdne+ls1Yt7TdBsEHbuqcVUEo=";
   };
 
   nativeBuildInputs = [ cmake doxygen extra-cmake-modules kdoctools wrapGAppsHook ];
diff --git a/pkgs/applications/graphics/drawio/default.nix b/pkgs/applications/graphics/drawio/default.nix
index c05342a2e10..3ba9c2db4b0 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 = "15.8.7";
+  version = "16.0.0";
 
   src = fetchurl {
     url = "https://github.com/jgraph/drawio-desktop/releases/download/v${version}/drawio-x86_64-${version}.rpm";
-    sha256 = "532f9926b4b055cbb741a778d57df42c65c5af82d0a8829e87324eb5e82025e3";
+    sha256 = "4fae34cf49ece02dd4c7a3cd6c9bf3a3cbda0d555b819482edf886afb164ba4d";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/graphics/f3d/default.nix b/pkgs/applications/graphics/f3d/default.nix
index 5dbdc645e9a..9e3374064e6 100644
--- a/pkgs/applications/graphics/f3d/default.nix
+++ b/pkgs/applications/graphics/f3d/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "f3d";
-  version = "1.2.0";
+  version = "1.2.1";
 
   src = fetchFromGitHub {
     owner = "f3d-app";
     repo = "f3d";
     rev = "v${version}";
-    sha256 = "sha256-gIxtCwVbfbIh6OtibxEQRufrBOpXJzhslwhI0yt0XEY=";
+    sha256 = "sha256-Yn1IcGWAbXjG0wJQjRimvreozFu9mf0FMwyGNYc4P+U=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/graphics/hdr-plus/default.nix b/pkgs/applications/graphics/hdr-plus/default.nix
index 0d2f1966006..55411e92f7f 100644
--- a/pkgs/applications/graphics/hdr-plus/default.nix
+++ b/pkgs/applications/graphics/hdr-plus/default.nix
@@ -1,31 +1,19 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch
+{ lib, stdenv, fetchFromGitHub
 , cmake, halide
 , libpng, libjpeg, libtiff, libraw
 }:
 
 stdenv.mkDerivation rec {
-  pname = "hdr-plus-unstable";
-  version = "2020-10-29";
+  pname = "hdr-plus";
+  version = "unstable-2021-12-10";
 
   src = fetchFromGitHub {
     owner = "timothybrooks";
     repo = "hdr-plus";
-    rev = "132bd73ccd4eaef9830124605c93f06a98607cfa";
-    sha256 = "1n49ggrppf336p7n510kapzh376791bysxj3f33m3bdzksq360ps";
+    rev = "0ab70564493bdbcd5aca899b5885505d0c824435";
+    sha256 = "sha256-QV8bGxkwFpbNzJG4kmrWwFQxUo2XzLPnoI1e32UmM6g=";
   };
 
-  patches = [
-    # PR #70, fixes incompatibility with Halide 10.0.0
-    (fetchpatch {
-      url = "https://github.com/timothybrooks/hdr-plus/pull/70/commits/077e1a476279539c72e615210762dca27984c57b.patch";
-      sha256 = "1sg2l1bqs2smpfpy4flwg86fzhcc4yf7zx998v1bfhim43yyrx59";
-    })
-  ];
-
-  postPatch = ''
-    sed -i '2a #include <array>' src/InputSource.h
-  '';
-
   nativeBuildInputs = [ cmake ];
 
   buildInputs = [ halide libpng libjpeg libtiff libraw ];
diff --git a/pkgs/applications/graphics/hydrus/default.nix b/pkgs/applications/graphics/hydrus/default.nix
index 45b3c556377..79540466e29 100644
--- a/pkgs/applications/graphics/hydrus/default.nix
+++ b/pkgs/applications/graphics/hydrus/default.nix
@@ -10,14 +10,14 @@
 
 python3Packages.buildPythonPackage rec {
   pname = "hydrus";
-  version = "464";
+  version = "466";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "hydrusnetwork";
     repo = "hydrus";
     rev = "v${version}";
-    sha256 = "sha256-ZAndODbl6cH0H1rA3Bhn3AlfIuba0LjxWxusGPDYvlA=";
+    sha256 = "sha256-ih2BctOC9cuTYP8A9ikhGBqNP0SToSAkqmZhtBvgpIo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/graphics/icon-library/default.nix b/pkgs/applications/graphics/icon-library/default.nix
new file mode 100644
index 00000000000..276ccb51274
--- /dev/null
+++ b/pkgs/applications/graphics/icon-library/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenv, fetchurl, wrapGAppsHook
+, cargo, desktop-file-utils, meson, ninja, pkg-config, python3, rustc
+, dbus, gdk-pixbuf, glib, gtk3, gtksourceview4, libhandy
+}:
+
+stdenv.mkDerivation rec {
+  pname = "icon-library";
+  version = "0.0.8";
+
+  src = fetchurl {
+    url = "https://gitlab.gnome.org/World/design/icon-library/uploads/fdf890706e0eef2458a5285e3bf65dd5/icon-library-${version}.tar.xz";
+    sha256 = "0807b56bgm8j1gpq4nf8x31gq9wqhcmpzpkqw6s4wissw3cb7q96";
+  };
+
+  nativeBuildInputs = [
+    cargo desktop-file-utils meson ninja pkg-config python3 rustc wrapGAppsHook
+  ];
+  buildInputs = [ dbus gdk-pixbuf glib gtk3 gtksourceview4 libhandy ];
+
+  postPatch = ''
+    patchShebangs build-aux/meson_post_install.py
+  '';
+
+  meta = with lib; {
+    homepage = "https://gitlab.gnome.org/World/design/icon-library";
+    description = "Symbolic icons for your apps";
+    maintainers = with maintainers; [ qyliss ];
+    license = licenses.gpl3Plus;
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/graphics/imv/default.nix b/pkgs/applications/graphics/imv/default.nix
index 04150a1ceb8..f78a4f60681 100644
--- a/pkgs/applications/graphics/imv/default.nix
+++ b/pkgs/applications/graphics/imv/default.nix
@@ -1,6 +1,6 @@
 { stdenv
 , lib
-, fetchFromGitHub
+, fetchFromSourcehut
 , asciidoc
 , cmocka
 , docbook_xsl
@@ -56,13 +56,14 @@ assert builtins.all
 
 stdenv.mkDerivation rec {
   pname = "imv";
-  version = "4.3.0";
+  version = "4.3.1";
+  outputs = [ "out" "man" ];
 
-  src = fetchFromGitHub {
-    owner = "eXeC64";
+  src = fetchFromSourcehut {
+    owner = "~exec64";
     repo = "imv";
     rev = "v${version}";
-    sha256 = "sha256-HP9W9US9e3YAXwCqiHV8NVqrO20SfQKcW3a6+r1XrIs=";
+    sha256 = "sha256-gMAd8skst72QT4jGFH7aRdWeAd4tf/uQgXhGaM/Dpgc=";
   };
 
   mesonFlags = [
diff --git a/pkgs/applications/graphics/megapixels/default.nix b/pkgs/applications/graphics/megapixels/default.nix
index 721caf90691..64782cc7fcc 100644
--- a/pkgs/applications/graphics/megapixels/default.nix
+++ b/pkgs/applications/graphics/megapixels/default.nix
@@ -27,13 +27,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "megapixels";
-  version = "1.4.2";
+  version = "1.4.3";
 
   src = fetchFromGitLab {
     owner = "postmarketOS";
     repo = "megapixels";
     rev = version;
-    sha256 = "sha256-ebeKbAo03+jeMveySSIz36gbwslWVMRLj+/adW8rlEQ=";
+    hash = "sha256-UHJ3Fayf+lS3nRuuhHHLN6mbHfHIPssWkghPMPF5ECg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/graphics/sane/backends/brscan5/default.nix b/pkgs/applications/graphics/sane/backends/brscan5/default.nix
index e42c0980a1b..17e9972cbe9 100644
--- a/pkgs/applications/graphics/sane/backends/brscan5/default.nix
+++ b/pkgs/applications/graphics/sane/backends/brscan5/default.nix
@@ -9,15 +9,15 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "brscan5";
-  version = "1.2.6-0";
+  version = "1.2.7-0";
   src = {
     "i686-linux" = fetchurl {
       url = "https://download.brother.com/welcome/dlf104034/${pname}-${version}.i386.deb";
-      sha256 = "102q745pc0168syggd4gym51qf3m3iqld3a4skfnbkm6yky4w4s8";
+      sha256 = "647d06f629c22408d25be7c0bf49a4b1c7280bf78a27aa2cde6c3e3fa8b6807a";
     };
     "x86_64-linux" = fetchurl {
       url = "https://download.brother.com/welcome/dlf104033/${pname}-${version}.amd64.deb";
-      sha256 = "1pwbzhpg5nzpw2rw936vf2cr334v8iny16y8fbb1zimgzmv427wx";
+      sha256 = "867bd88ab0d90f8e9391dc8127385095127e533cb6bd2d5d13449df602b165ae";
     };
   }."${stdenv.hostPlatform.system}";
 
@@ -56,7 +56,7 @@ stdenv.mkDerivation rec {
     pushd $out/$PATH_TO_BRSCAN5
       ln -s libLxBsDeviceAccs.so.1.0.0 libLxBsDeviceAccs.so.1
       ln -s libLxBsNetDevAccs.so.1.0.0 libLxBsNetDevAccs.so.1
-      ln -s libLxBsScanCoreApi.so.3.0.0 libLxBsScanCoreApi.so.3
+      ln -s libLxBsScanCoreApi.so.3.2.0 libLxBsScanCoreApi.so.3
       ln -s libLxBsUsbDevAccs.so.1.0.0 libLxBsUsbDevAccs.so.1
       ln -s libsane-brother5.so.1.0.7 libsane-brother5.so.1
     popd
diff --git a/pkgs/applications/graphics/symbolic-preview/default.nix b/pkgs/applications/graphics/symbolic-preview/default.nix
new file mode 100644
index 00000000000..de49c9d7cd6
--- /dev/null
+++ b/pkgs/applications/graphics/symbolic-preview/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenv, fetchurl, wrapGAppsHook
+, cargo, desktop-file-utils, meson, ninja, pkg-config, python3, rustc
+, gdk-pixbuf, glib, gtk3, libhandy, libxml2
+}:
+
+stdenv.mkDerivation rec {
+  pname = "symbolic-preview";
+  version = "0.0.2";
+
+  src = fetchurl {
+    url = "https://gitlab.gnome.org/World/design/symbolic-preview/uploads/91fd27bb70553c8d6c3ad2a35446ff6e/symbolic-preview-${version}.tar.xz";
+    sha256 = "1v8l10ppwbjkrq7nvb0wqc3pid6pd8dqpki3jhmjjkmbd7rpdpkq";
+  };
+
+  nativeBuildInputs = [
+    cargo desktop-file-utils meson ninja pkg-config python3 rustc wrapGAppsHook
+  ];
+  buildInputs = [ gdk-pixbuf glib gtk3 libhandy libxml2 ];
+
+  postPatch = ''
+    patchShebangs build-aux/meson_post_install.py
+  '';
+
+  meta = with lib; {
+    homepage = "https://gitlab.gnome.org/World/design/symbolic-preview";
+    description = "Symbolics made easy";
+    maintainers = with maintainers; [ qyliss ];
+    license = licenses.gpl3Plus;
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/kde/akonadi/default.nix b/pkgs/applications/kde/akonadi/default.nix
index f4e4c822350..e656d36a1c9 100644
--- a/pkgs/applications/kde/akonadi/default.nix
+++ b/pkgs/applications/kde/akonadi/default.nix
@@ -36,4 +36,11 @@ mkDerivation {
     ''-DNIX_OUT=\"${placeholder "out"}\"''
     ''-I${lib.getDev kio}/include/KF5''  # Fixes: kio_version.h: No such file or directory
   ];
+
+  # compatibility symlinks for kmymoney, can probably be removed in next kde bump
+  postInstall = ''
+    ln -s $dev/include/KF5/AkonadiCore/Akonadi/Collection $dev/include/KF5/AkonadiCore/Collection
+    ln -s $dev/include/KF5/AkonadiCore/Akonadi/ItemFetchScope $dev/include/KF5/AkonadiCore/ItemFetchScope
+    ln -s $dev/include/KF5/AkonadiCore/Akonadi/RecursiveItemFetchJob $dev/include/KF5/AkonadiCore/RecursiveItemFetchJob
+  '';
 }
diff --git a/pkgs/applications/kde/bovo.nix b/pkgs/applications/kde/bovo.nix
index 989a80aa29f..ae89a8e396f 100644
--- a/pkgs/applications/kde/bovo.nix
+++ b/pkgs/applications/kde/bovo.nix
@@ -6,7 +6,7 @@
 mkDerivation {
   pname = "bovo";
   meta = with lib; {
-    homepage = "https://kde.org/applications/en/games/org.kde.bovo";
+    homepage = "https://apps.kde.org/bovo/";
     description = "Five in a row application";
     longDescription = ''
       Bovo is a Gomoku (from Japanese 五目並べ - lit. "five points") like game for two players,
diff --git a/pkgs/applications/kde/fetch.sh b/pkgs/applications/kde/fetch.sh
index f4eb1b85965..0049b3de8ab 100644
--- a/pkgs/applications/kde/fetch.sh
+++ b/pkgs/applications/kde/fetch.sh
@@ -1 +1 @@
-WGET_ARGS=( https://download.kde.org/stable/release-service/21.08.3/src -A '*.tar.xz' )
+WGET_ARGS=( https://download.kde.org/stable/release-service/21.12.0/src -A '*.tar.xz' )
diff --git a/pkgs/applications/kde/k3b.nix b/pkgs/applications/kde/k3b.nix
index 728260120a5..673567fbef6 100644
--- a/pkgs/applications/kde/k3b.nix
+++ b/pkgs/applications/kde/k3b.nix
@@ -13,7 +13,7 @@ mkDerivation {
     homepage = "https://apps.kde.org/k3b/";
     description = "Disk burning application";
     license = with licenses; [ gpl2Plus ];
-    maintainers = with maintainers; [ sander phreedom ];
+    maintainers = with maintainers; [ sander ];
     platforms = platforms.linux;
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools makeWrapper ];
diff --git a/pkgs/applications/kde/kitinerary.nix b/pkgs/applications/kde/kitinerary.nix
index cc71307f1ac..f69e705bb2f 100644
--- a/pkgs/applications/kde/kitinerary.nix
+++ b/pkgs/applications/kde/kitinerary.nix
@@ -1,6 +1,5 @@
-{
-  mkDerivation, lib, extra-cmake-modules
-, qtbase, qtdeclarative, ki18n, kmime, kpkpass
+{ mkDerivation, lib, extra-cmake-modules
+, qtdeclarative, ki18n, kmime, kpkpass
 , poppler, kcontacts, kcalendarcore
 , shared-mime-info
 }:
@@ -16,8 +15,13 @@ mkDerivation {
     shared-mime-info # for update-mime-database
   ];
   buildInputs = [
-    qtbase qtdeclarative ki18n kmime kpkpass poppler
+    qtdeclarative kmime kpkpass poppler
     kcontacts kcalendarcore
   ];
+
+  CXXFLAGS = [
+    "-I${lib.getDev ki18n}/include/KF5"  # Fixes: ki18n_version.h: No such file or directory
+  ];
+
   outputs = [ "out" "dev" ];
 }
diff --git a/pkgs/applications/kde/krfb.nix b/pkgs/applications/kde/krfb.nix
index 15835bc6107..807b3508b95 100644
--- a/pkgs/applications/kde/krfb.nix
+++ b/pkgs/applications/kde/krfb.nix
@@ -1,10 +1,9 @@
-{
-  mkDerivation, lib,
-  extra-cmake-modules, kdoctools,
-  kconfig, kcoreaddons, kcrash, kdbusaddons, kdnssd, knotifications, kwallet,
-  kwidgetsaddons, kwindowsystem, kxmlgui,
-  libvncserver, libXtst, libXdamage,
-  qtx11extras
+{ mkDerivation, lib
+, extra-cmake-modules, kdoctools
+, kconfig, kcoreaddons, kcrash, kdbusaddons, kdnssd, knotifications, kwallet
+, kwidgetsaddons, kwindowsystem, kxmlgui, kwayland
+, libvncserver, libXtst, libXdamage
+, qtx11extras
 }:
 
 mkDerivation {
@@ -19,7 +18,7 @@ mkDerivation {
   buildInputs = [
     libvncserver libXtst libXdamage
     kconfig kcoreaddons kcrash kdbusaddons knotifications kwallet kwidgetsaddons
-    kwindowsystem kxmlgui
+    kwindowsystem kxmlgui kwayland
     qtx11extras
   ];
   propagatedBuildInputs = [ kdnssd ];
diff --git a/pkgs/applications/kde/picmi.nix b/pkgs/applications/kde/picmi.nix
index 4358eb5ffac..205f1bd5d12 100644
--- a/pkgs/applications/kde/picmi.nix
+++ b/pkgs/applications/kde/picmi.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, lib
+{ mkDerivation, lib, fetchpatch
 , libkdegames, extra-cmake-modules
 , kdeclarative, knewstuff
 }:
@@ -15,6 +15,17 @@ mkDerivation {
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
   };
+
+  patches = [
+    # fix compile error due to usage of deprecated things
+    # probably can be removed with the next kde bump
+    (fetchpatch {
+      url = "https://invent.kde.org/games/picmi/-/commit/99639fb499fe35eb463621efca1c0e4ff2a52bad.patch";
+      revert = true;
+      sha256 = "sha256-rRhTvUB1Hpc3bLv9b5yIf/G7uJy2/OgBfXToZwV4jrg=";
+    })
+  ];
+
   nativeBuildInputs = [
     extra-cmake-modules
   ];
diff --git a/pkgs/applications/kde/srcs.nix b/pkgs/applications/kde/srcs.nix
index 73032655fc4..7e4ff2eb75d 100644
--- a/pkgs/applications/kde/srcs.nix
+++ b/pkgs/applications/kde/srcs.nix
@@ -4,1811 +4,1843 @@
 
 {
   akonadi = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/akonadi-21.08.3.tar.xz";
-      sha256 = "1yqlgzni7kj0n7k2wvi65wfz4il75j7qvmrdjw3a0ld6115j2vqs";
-      name = "akonadi-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/akonadi-21.12.0.tar.xz";
+      sha256 = "1wxqkhqlvjidr7j5g4hcqykvys27snc2cp2k077dixdnp4v71gr3";
+      name = "akonadi-21.12.0.tar.xz";
     };
   };
   akonadi-calendar = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/akonadi-calendar-21.08.3.tar.xz";
-      sha256 = "17pl7viz89zn43iyp6hk9q2dix1mzfxmxf08jk5wcciphabyj2sc";
-      name = "akonadi-calendar-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/akonadi-calendar-21.12.0.tar.xz";
+      sha256 = "0jkzq071f2w3ysra87clxa63ykg8ywr92mqc57fxzc9hydkg0pbs";
+      name = "akonadi-calendar-21.12.0.tar.xz";
     };
   };
   akonadi-calendar-tools = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/akonadi-calendar-tools-21.08.3.tar.xz";
-      sha256 = "0wc3yfb8riijmmwqbny7vpfav24w8id4s2ysbcljrvypv420ii2g";
-      name = "akonadi-calendar-tools-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/akonadi-calendar-tools-21.12.0.tar.xz";
+      sha256 = "0nxcgv1vwr60706sd3hipmxx22nf3sxxif8li2r0pqnfqf542hcy";
+      name = "akonadi-calendar-tools-21.12.0.tar.xz";
     };
   };
   akonadi-contacts = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/akonadi-contacts-21.08.3.tar.xz";
-      sha256 = "1i5mwjf8vp40mmdfkafhhbcmvdd2sihd6aa4z1wnhnbg59cjvp8i";
-      name = "akonadi-contacts-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/akonadi-contacts-21.12.0.tar.xz";
+      sha256 = "0al4v2yv9hf1lidk135m45ckr0hgvvlb0px9wqa2zqkrykpm0qz4";
+      name = "akonadi-contacts-21.12.0.tar.xz";
     };
   };
   akonadi-import-wizard = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/akonadi-import-wizard-21.08.3.tar.xz";
-      sha256 = "1splq2fgifk4mh00j4dd1lmgyc4bvz8sbsw0fznmafg76k1fvama";
-      name = "akonadi-import-wizard-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/akonadi-import-wizard-21.12.0.tar.xz";
+      sha256 = "0lrvmkaphrk4sad83nc2pm3qy5q7jgp13dqh5mvqk2sb3mlpv5xi";
+      name = "akonadi-import-wizard-21.12.0.tar.xz";
     };
   };
   akonadi-mime = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/akonadi-mime-21.08.3.tar.xz";
-      sha256 = "19dbgl9940wwsiyhysh1lm5ks9xb6a5m53p9qmdr5siid9karq64";
-      name = "akonadi-mime-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/akonadi-mime-21.12.0.tar.xz";
+      sha256 = "07rmlsgrghy38j8nahpml5yp5zaxdwjjk77ydp2nn10fprr6ssyq";
+      name = "akonadi-mime-21.12.0.tar.xz";
     };
   };
   akonadi-notes = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/akonadi-notes-21.08.3.tar.xz";
-      sha256 = "0g1kdhj4qjl29x70dl4fl30f4r67s6ldpmqrf0xnj7zwz008r0fn";
-      name = "akonadi-notes-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/akonadi-notes-21.12.0.tar.xz";
+      sha256 = "0p1gn9rl5hyh14kx7p461l9a2va4kc44a1xr2xlk392bpyi7zn22";
+      name = "akonadi-notes-21.12.0.tar.xz";
     };
   };
   akonadi-search = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/akonadi-search-21.08.3.tar.xz";
-      sha256 = "1fvfd1410zy9dbcjl21463wj91s5vly00l53ixaizylnjbj67lm0";
-      name = "akonadi-search-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/akonadi-search-21.12.0.tar.xz";
+      sha256 = "07fazr0hq9ndpvgjvrh606qbkgk429ikmk62bp8lz161n6hxw19k";
+      name = "akonadi-search-21.12.0.tar.xz";
     };
   };
   akonadiconsole = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/akonadiconsole-21.08.3.tar.xz";
-      sha256 = "1id1l6ifc1b8qsx16badhww33idk7c8qnn4lh3bg6mg1whmvy4k2";
-      name = "akonadiconsole-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/akonadiconsole-21.12.0.tar.xz";
+      sha256 = "0ld1z3vidpqhrj2hmbhsiwmfn10za0jvfkg79vbdv8x0gmbyjynd";
+      name = "akonadiconsole-21.12.0.tar.xz";
     };
   };
   akregator = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/akregator-21.08.3.tar.xz";
-      sha256 = "1jb2vd43pn7i1b7ylhm74q0jkk3hwbjxh6nc2hqpl9c0ic20arf2";
-      name = "akregator-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/akregator-21.12.0.tar.xz";
+      sha256 = "0w51ndga17v7xj98r9i944v42py2qqrsg2p7q69r2ip9k73m56cv";
+      name = "akregator-21.12.0.tar.xz";
     };
   };
   analitza = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/analitza-21.08.3.tar.xz";
-      sha256 = "04g1l9q80j5rigz0667js35zjm3as0dpfkjhcm997bna1yb0d92z";
-      name = "analitza-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/analitza-21.12.0.tar.xz";
+      sha256 = "0nr84vr20aq3v3k28vx3xk4la8ff1hw7nm930vvjw8vkhpdkm03m";
+      name = "analitza-21.12.0.tar.xz";
     };
   };
   ark = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ark-21.08.3.tar.xz";
-      sha256 = "1wrxv8csj1irrwcddkjgbcivpxi2v3nj06lvayzr32b29i85h637";
-      name = "ark-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ark-21.12.0.tar.xz";
+      sha256 = "1krhxhhab4m0z4ni8dbgraymbawc85rf3b3q8zcm799zk4hphr6x";
+      name = "ark-21.12.0.tar.xz";
     };
   };
   artikulate = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/artikulate-21.08.3.tar.xz";
-      sha256 = "14g5wcw1bxxmbc9vvy07zbk2ma2cj1zbb5fdcwdf4ybaal9r43jq";
-      name = "artikulate-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/artikulate-21.12.0.tar.xz";
+      sha256 = "13jvbgvqrcrhvcnb2j3dh9r7m50b2m0nf9479ayqkp2cirm77k61";
+      name = "artikulate-21.12.0.tar.xz";
     };
   };
   audiocd-kio = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/audiocd-kio-21.08.3.tar.xz";
-      sha256 = "0fp29igj87pff8jya230j67vcz9pv7g27g4dv2pl3r6gm2kv8c9i";
-      name = "audiocd-kio-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/audiocd-kio-21.12.0.tar.xz";
+      sha256 = "12nxyy16pc4a8kwag39bmyl055f1izfsrwiblm1l5567m0v93vd1";
+      name = "audiocd-kio-21.12.0.tar.xz";
     };
   };
   baloo-widgets = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/baloo-widgets-21.08.3.tar.xz";
-      sha256 = "1pjlw22ivqhpd6bf50d8s9jaq6h2k0l2szwnh841qq7bwwkp9kcb";
-      name = "baloo-widgets-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/baloo-widgets-21.12.0.tar.xz";
+      sha256 = "19f9as73cim6f3h5qcirr88h0cmi3w0r3gcy5hdc6ghyx37wj87p";
+      name = "baloo-widgets-21.12.0.tar.xz";
     };
   };
   blinken = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/blinken-21.08.3.tar.xz";
-      sha256 = "03s3pv61jhkx3lm5rik25fglhda9l4w43blpwh78rbdk3c3s3ijg";
-      name = "blinken-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/blinken-21.12.0.tar.xz";
+      sha256 = "01542z383xkhjznmf220qvgbg902ky5jdpj1p8shbzaij5yxv847";
+      name = "blinken-21.12.0.tar.xz";
     };
   };
   bomber = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/bomber-21.08.3.tar.xz";
-      sha256 = "0h5iwpmpw8xnqh6xcm4zqqcp1ia5wir0ghwsbcgrz9ka59dfdh4z";
-      name = "bomber-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/bomber-21.12.0.tar.xz";
+      sha256 = "1iwk0b5fnv328bjd7mxhs46rmbkrchpdxk7q8mmysn8z6vyscisc";
+      name = "bomber-21.12.0.tar.xz";
     };
   };
   bovo = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/bovo-21.08.3.tar.xz";
-      sha256 = "0p5pi6rnnmikhg72gagld67r022bq3nsrhls0gglx14zfj6pgln3";
-      name = "bovo-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/bovo-21.12.0.tar.xz";
+      sha256 = "0nfzqmqfb6kwprhv4dbp3lpv8hf51rw12ib21hpx9s1jknqs6179";
+      name = "bovo-21.12.0.tar.xz";
     };
   };
   calendarsupport = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/calendarsupport-21.08.3.tar.xz";
-      sha256 = "1kial8x8sw0039n2s3nl9i0wadf8xda1bv2g9kws0kp29k58lyfy";
-      name = "calendarsupport-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/calendarsupport-21.12.0.tar.xz";
+      sha256 = "1a3rxy5g2illphi61x90b6sijkiqyfw458br5cbxj7c1q98y2p1l";
+      name = "calendarsupport-21.12.0.tar.xz";
     };
   };
   cantor = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/cantor-21.08.3.tar.xz";
-      sha256 = "1l3z0aikrfjdpcfq6apmwla9k7dqymvysi275kpx0dqi5sfgi9lb";
-      name = "cantor-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/cantor-21.12.0.tar.xz";
+      sha256 = "04413152yhg1s6iyp3a8ihjs41ni3wbv7kgqx9sz0zmn7vyfl859";
+      name = "cantor-21.12.0.tar.xz";
     };
   };
   cervisia = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/cervisia-21.08.3.tar.xz";
-      sha256 = "0a7g3g849vf0c0222944iwqhymnxcn9qj0v85m2b0bfxgdf0fgk7";
-      name = "cervisia-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/cervisia-21.12.0.tar.xz";
+      sha256 = "17b116y4bvs2d40m2m7xbwjsnf2wffv921lw5f6nwgmxqfdinacp";
+      name = "cervisia-21.12.0.tar.xz";
     };
   };
   dolphin = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/dolphin-21.08.3.tar.xz";
-      sha256 = "19yrgfliqabmymrh3sx2i5129rcc14nxb86f21wd616b3pcby5rv";
-      name = "dolphin-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/dolphin-21.12.0.tar.xz";
+      sha256 = "0s96ggzkwjs8pyad4mp8x2z2hiajxwpb2fzwsjzzkicjwa7c03z7";
+      name = "dolphin-21.12.0.tar.xz";
     };
   };
   dolphin-plugins = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/dolphin-plugins-21.08.3.tar.xz";
-      sha256 = "098i2zydzi95i860pk6p0g0wx1bryyxanawhcis5d5h3xra66s0p";
-      name = "dolphin-plugins-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/dolphin-plugins-21.12.0.tar.xz";
+      sha256 = "150kfhm3qh6x4qq3b5s5fbm7q9z7i9asmnmwqfppcqz3fjc5pg7j";
+      name = "dolphin-plugins-21.12.0.tar.xz";
     };
   };
   dragon = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/dragon-21.08.3.tar.xz";
-      sha256 = "0zfh5kmw2mvnwpcbh9i6xzzdigkglr6y0y7acw2dw6bi2cqx5cc7";
-      name = "dragon-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/dragon-21.12.0.tar.xz";
+      sha256 = "147m5rki2s8xc9i09fan37c16yicbkwz1v95li2ihjah43kgq78h";
+      name = "dragon-21.12.0.tar.xz";
     };
   };
   elisa = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/elisa-21.08.3.tar.xz";
-      sha256 = "0w3sk52ghkka305hagld5ia6z6czavbqgc0abqdz442bgnk1f1vb";
-      name = "elisa-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/elisa-21.12.0.tar.xz";
+      sha256 = "0rs81kbgsd7412sz7h6xax1c83n9lp21k062m2h50ccf4lzx7fyw";
+      name = "elisa-21.12.0.tar.xz";
     };
   };
   eventviews = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/eventviews-21.08.3.tar.xz";
-      sha256 = "08bcw79iag71yiaf7ck27b2ja4pg18ah04rxa1c6g5fr9x6kkk46";
-      name = "eventviews-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/eventviews-21.12.0.tar.xz";
+      sha256 = "1667ck9na8ajqaagxks7rlrwb6w04mxdci7mc5ash8l57icdgp6y";
+      name = "eventviews-21.12.0.tar.xz";
     };
   };
   ffmpegthumbs = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ffmpegthumbs-21.08.3.tar.xz";
-      sha256 = "10l9592f2l63rfak3f0knvzapsaa8nyx3dl82n724359qj43m530";
-      name = "ffmpegthumbs-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ffmpegthumbs-21.12.0.tar.xz";
+      sha256 = "14mimxgml627lkq7gw24j62hs5iglvbwnlbv879p7zlsg46fjg1b";
+      name = "ffmpegthumbs-21.12.0.tar.xz";
     };
   };
   filelight = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/filelight-21.08.3.tar.xz";
-      sha256 = "0j5106x93ljkcxk90cs1yvd9dw3pnr007cd4plsw5z7kgmch3zww";
-      name = "filelight-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/filelight-21.12.0.tar.xz";
+      sha256 = "1w3n550smqnq1vwsizrcry3rnpk8f3xmiabdzkx9bggrk5p07jnj";
+      name = "filelight-21.12.0.tar.xz";
     };
   };
   granatier = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/granatier-21.08.3.tar.xz";
-      sha256 = "1igia7fxll361np76763nw915d90f5hklgqii9iyld8si99amy4y";
-      name = "granatier-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/granatier-21.12.0.tar.xz";
+      sha256 = "19r5lilgjapz7bdam55cxs3z40rclczmzklp5ns348f2rqh36chg";
+      name = "granatier-21.12.0.tar.xz";
     };
   };
   grantlee-editor = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/grantlee-editor-21.08.3.tar.xz";
-      sha256 = "04yry04cdysh4a1y6nznxmfw2pww956xan0dnf77yjzssri9p2fq";
-      name = "grantlee-editor-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/grantlee-editor-21.12.0.tar.xz";
+      sha256 = "1lyv3c6801pv3mgxn8i9k6g319ggxg0mxk85nzq1w74m56ywkx12";
+      name = "grantlee-editor-21.12.0.tar.xz";
     };
   };
   grantleetheme = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/grantleetheme-21.08.3.tar.xz";
-      sha256 = "11c72jp9ywpmsc3d92cj2c9xvwmqbilsfddmlxlwnpnp2rf8q933";
-      name = "grantleetheme-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/grantleetheme-21.12.0.tar.xz";
+      sha256 = "1agkqrr29ib314x48jl4yfybnq10nk45976g7yjlfp6r8qib4pal";
+      name = "grantleetheme-21.12.0.tar.xz";
     };
   };
   gwenview = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/gwenview-21.08.3.tar.xz";
-      sha256 = "06hg20sygi6xfbifgi1d6s5zba5qqpm949xa7gyxi1vsq0kbvrq4";
-      name = "gwenview-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/gwenview-21.12.0.tar.xz";
+      sha256 = "1y484f7fvnj217qrdfva0k3359n7mz4pvxw54xar2xa9z18iqw8g";
+      name = "gwenview-21.12.0.tar.xz";
     };
   };
   incidenceeditor = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/incidenceeditor-21.08.3.tar.xz";
-      sha256 = "0p45x5qkzbfklxk22kzp9zlvl8ggdjgniq889q8hzb1s89ia1cck";
-      name = "incidenceeditor-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/incidenceeditor-21.12.0.tar.xz";
+      sha256 = "1rrda32h004gfqvvxh74wlr9ym3zbgf6a7nd2ldmn7z852z7gpsp";
+      name = "incidenceeditor-21.12.0.tar.xz";
     };
   };
   itinerary = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/itinerary-21.08.3.tar.xz";
-      sha256 = "0w7kb4wvy1sfhlkikvq1ajckizf7k2bzy2wcjdz5is69rrd5cab5";
-      name = "itinerary-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/itinerary-21.12.0.tar.xz";
+      sha256 = "1dwpaznzklxbyaj6fvgm416vbz5fyw78c5bx10z9ygmj88jv6dls";
+      name = "itinerary-21.12.0.tar.xz";
     };
   };
   juk = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/juk-21.08.3.tar.xz";
-      sha256 = "19g1dpvrssip8vysds3j4wa599ivapznz10p0p1254gkjyxdxdm3";
-      name = "juk-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/juk-21.12.0.tar.xz";
+      sha256 = "0gsdiysld5mk2k2c34d883hlgcn3ad2qkvbf4ba6iikn2kbsdhw2";
+      name = "juk-21.12.0.tar.xz";
     };
   };
   k3b = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/k3b-21.08.3.tar.xz";
-      sha256 = "1k5xn33sggx3a7lns8y64sa3schqvg476q81rig9mylh68x8rr5y";
-      name = "k3b-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/k3b-21.12.0.tar.xz";
+      sha256 = "1g6slra4bwbsr282p7xzbldq4j366x03fv99icfj9xj5kargp3jq";
+      name = "k3b-21.12.0.tar.xz";
     };
   };
   kaccounts-integration = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kaccounts-integration-21.08.3.tar.xz";
-      sha256 = "0hyaygrsdp6s96s4wa9z5l1w5w5hxwbw432zs6a2fkgq5dpa3wn4";
-      name = "kaccounts-integration-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kaccounts-integration-21.12.0.tar.xz";
+      sha256 = "0dlan1gjzci3f3xfr3gr6wb4k7qvdm3r91ihxza9bravn2pkf4n7";
+      name = "kaccounts-integration-21.12.0.tar.xz";
     };
   };
   kaccounts-providers = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kaccounts-providers-21.08.3.tar.xz";
-      sha256 = "0chajl87w3gp1a8l7h6bxf93js6jxdkx90ir82glgh45p5qhdhcr";
-      name = "kaccounts-providers-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kaccounts-providers-21.12.0.tar.xz";
+      sha256 = "0y3hirzs0q1pkrfi3k41lyxbylc0zahaky9zar5262w36wcc28ai";
+      name = "kaccounts-providers-21.12.0.tar.xz";
     };
   };
   kaddressbook = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kaddressbook-21.08.3.tar.xz";
-      sha256 = "1c16pcbjd5w04xbkjalvf697nqi751f4g8ldaing3k2rmdvhsqwg";
-      name = "kaddressbook-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kaddressbook-21.12.0.tar.xz";
+      sha256 = "126sf8agg2j8dkq4vbpd28bkg2smmkb0q3ynmxz2llifrzfxz1is";
+      name = "kaddressbook-21.12.0.tar.xz";
     };
   };
   kajongg = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kajongg-21.08.3.tar.xz";
-      sha256 = "15i5vdcwm7a5amrxxbi0f4c3ls7ly1ccg88hff2wc960wwc6nvqb";
-      name = "kajongg-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kajongg-21.12.0.tar.xz";
+      sha256 = "15fj2bmkwz9la4d44w5qpk9fwzb8y77gvybv5rqxpmaknzan2b76";
+      name = "kajongg-21.12.0.tar.xz";
     };
   };
   kalarm = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kalarm-21.08.3.tar.xz";
-      sha256 = "0zcmaf4x9jvpyri1kirnm2rij3886z9k1vx6wxxxmx6sbllpb669";
-      name = "kalarm-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kalarm-21.12.0.tar.xz";
+      sha256 = "0hl1xk6zch2ji4lgh74qpd0j8i00y0vmw6xfmhpzkri6hk3shgrm";
+      name = "kalarm-21.12.0.tar.xz";
     };
   };
   kalarmcal = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kalarmcal-21.08.3.tar.xz";
-      sha256 = "03zmw8pxhfmrm7xl5h2k42xyqwn4cllhrp43sv7pjbym9ya41wyk";
-      name = "kalarmcal-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kalarmcal-21.12.0.tar.xz";
+      sha256 = "0rk078dnr7a3x73n7sfd06p7mr2r84hbv8lvknimfdy3i2c63hhx";
+      name = "kalarmcal-21.12.0.tar.xz";
     };
   };
   kalgebra = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kalgebra-21.08.3.tar.xz";
-      sha256 = "0w2n3nyds9069c4cj1ap2b14w8nw5dc3yb62j5y6yj9qz9ip7cdk";
-      name = "kalgebra-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kalgebra-21.12.0.tar.xz";
+      sha256 = "0qibj81w8l0g144yplhy7wmh3zwws865xhih4vp6n3apa8h3a5bk";
+      name = "kalgebra-21.12.0.tar.xz";
     };
   };
   kalzium = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kalzium-21.08.3.tar.xz";
-      sha256 = "0x7dn0f2bwzplzxal2wvnc3qh2qs522626ksp6ajgf16jwf7d4kl";
-      name = "kalzium-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kalzium-21.12.0.tar.xz";
+      sha256 = "04inkz95qm3s6yh6j4aaa2vja0zkls7f9i3y5zykx665jr90bl87";
+      name = "kalzium-21.12.0.tar.xz";
     };
   };
   kamera = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kamera-21.08.3.tar.xz";
-      sha256 = "1yv87rmb8k6yh5150915fsnh8rdj1d4k8zpc8k54hxa9gjw5wqm7";
-      name = "kamera-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kamera-21.12.0.tar.xz";
+      sha256 = "1vhc5b0ry1344dh4swfbw4r9in08i297p1x0nfv28v989bf15axn";
+      name = "kamera-21.12.0.tar.xz";
     };
   };
   kamoso = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kamoso-21.08.3.tar.xz";
-      sha256 = "1k2kis36a6dlsnh85qc01yd6qnz8kwrv4hvzpkpqvvp3m4ik17wx";
-      name = "kamoso-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kamoso-21.12.0.tar.xz";
+      sha256 = "0fixk5zc647r56z1vigaj5m0xkp7n56lmda248zh54x0n5prhd8d";
+      name = "kamoso-21.12.0.tar.xz";
     };
   };
   kanagram = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kanagram-21.08.3.tar.xz";
-      sha256 = "1rxirjrw6dj23awv6gbypv0jlwfdh4baz86l32rx8pnmd9icg7s3";
-      name = "kanagram-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kanagram-21.12.0.tar.xz";
+      sha256 = "0j7agapb1byd28fn49c3j02gl108n8skk95spyi998rnm9zm2wc6";
+      name = "kanagram-21.12.0.tar.xz";
     };
   };
   kapman = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kapman-21.08.3.tar.xz";
-      sha256 = "0v8ay2s868l7dxasq0rhy065rp9sfb4fzldcqs46lxy7jmk3ws93";
-      name = "kapman-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kapman-21.12.0.tar.xz";
+      sha256 = "11vnm8ajrckg0ix5xc7mpbwqisbsqy3wivf9y18m5qkz5bvis4g4";
+      name = "kapman-21.12.0.tar.xz";
     };
   };
   kapptemplate = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kapptemplate-21.08.3.tar.xz";
-      sha256 = "02dp4qwrv3gylri936c82imh4lv1a3vfzlphmwadyhiy7j9ic5fa";
-      name = "kapptemplate-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kapptemplate-21.12.0.tar.xz";
+      sha256 = "022rrgb8bak62q253x14gk5grsimwhilwkb4rlm2scq84m4lwil7";
+      name = "kapptemplate-21.12.0.tar.xz";
     };
   };
   kate = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kate-21.08.3.tar.xz";
-      sha256 = "1gdz0wxkh34a2zi9vks9qw70g7dvkbvrbp6y68rjg7720sdb0gp2";
-      name = "kate-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kate-21.12.0.tar.xz";
+      sha256 = "0yvg2j4ijx3zq0v0djidjp5w3lj8j7qpfh9ax2ym7a3qf1y2w4ml";
+      name = "kate-21.12.0.tar.xz";
     };
   };
   katomic = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/katomic-21.08.3.tar.xz";
-      sha256 = "1sgrpqbv4zz22qijm00lzv1cv4rwjh7bbf4gz9xmnfmhyw0n88i1";
-      name = "katomic-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/katomic-21.12.0.tar.xz";
+      sha256 = "1k8aivpn9fmzwn5nzcbn2zym7m65xganxx43drk8mhx5m2lgvs0c";
+      name = "katomic-21.12.0.tar.xz";
     };
   };
   kbackup = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kbackup-21.08.3.tar.xz";
-      sha256 = "1cjb2invbc60i2lahn01kd28q3wb6s35grwglgmx2cgqqkmgl42s";
-      name = "kbackup-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kbackup-21.12.0.tar.xz";
+      sha256 = "1ki86g18mc7m9cywjpjcx1i83b5ff9dbjx7qa5fqmy5n16b85l5m";
+      name = "kbackup-21.12.0.tar.xz";
     };
   };
   kblackbox = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kblackbox-21.08.3.tar.xz";
-      sha256 = "1i4c5v5w42akf4b44sqrl9x4rhqgyjljr7k5i440ahch9qkf93pj";
-      name = "kblackbox-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kblackbox-21.12.0.tar.xz";
+      sha256 = "09lafayr6fl50dm272qph0j0qvznqsg7jkfmkq06wwm2sxxlabc9";
+      name = "kblackbox-21.12.0.tar.xz";
     };
   };
   kblocks = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kblocks-21.08.3.tar.xz";
-      sha256 = "0326fxv1nvh37h8xhvv5x4fy3l4gbrzmwsgcwslma1hakys9dhrs";
-      name = "kblocks-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kblocks-21.12.0.tar.xz";
+      sha256 = "0lc4wmgb07x87y4hyaajqkd3sw5afk1yby46wywak3m8v8scyvwg";
+      name = "kblocks-21.12.0.tar.xz";
     };
   };
   kbounce = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kbounce-21.08.3.tar.xz";
-      sha256 = "00d9m7c564qrifpaldvjk6ahclrjk1aawhypjj9sls2sisx2mip4";
-      name = "kbounce-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kbounce-21.12.0.tar.xz";
+      sha256 = "1qb3n03cl1qbnrbm2cqk20zxkpilddr8j67ca22mipp0md67c0fv";
+      name = "kbounce-21.12.0.tar.xz";
     };
   };
   kbreakout = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kbreakout-21.08.3.tar.xz";
-      sha256 = "1h3s4cr4bxi24j55anks946h7iba2wda5kbglsyfqw1ifrsq13vz";
-      name = "kbreakout-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kbreakout-21.12.0.tar.xz";
+      sha256 = "12zd36zv7qbdavism2kzbmx78vx66laykhkskaz66z1qxw1wls6y";
+      name = "kbreakout-21.12.0.tar.xz";
     };
   };
   kbruch = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kbruch-21.08.3.tar.xz";
-      sha256 = "15bfqxz4j5f5ix55fsk780p7ddrzqzmk55gmbjy796sgh8b71wcr";
-      name = "kbruch-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kbruch-21.12.0.tar.xz";
+      sha256 = "1xk8g3zp8qpqz893nnj50h1ypqzbalj57x6m4g7xy77dmwdjqgnd";
+      name = "kbruch-21.12.0.tar.xz";
     };
   };
   kcachegrind = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kcachegrind-21.08.3.tar.xz";
-      sha256 = "188m15y7sj17jyr9963gblgkknhgf32331kvzz4cwqzk14b9krr2";
-      name = "kcachegrind-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kcachegrind-21.12.0.tar.xz";
+      sha256 = "1k5fgqyd76679ay53dlksp46a0f54qyk9av5z0bq4l2ldna5k2ly";
+      name = "kcachegrind-21.12.0.tar.xz";
     };
   };
   kcalc = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kcalc-21.08.3.tar.xz";
-      sha256 = "1d7716law49cwmis4w9ij1xmi4g2wrv4mnc78xcms8kmgba5gs7v";
-      name = "kcalc-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kcalc-21.12.0.tar.xz";
+      sha256 = "1ih0xmldzm39li93xiprr4wm6xqwwkqc15bnmvy846p0b1kqg2s5";
+      name = "kcalc-21.12.0.tar.xz";
     };
   };
   kcalutils = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kcalutils-21.08.3.tar.xz";
-      sha256 = "0l209pyi866mf1pr4rkq7g3pgjvyss5sqhpy9vb2b2w66w3f66ri";
-      name = "kcalutils-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kcalutils-21.12.0.tar.xz";
+      sha256 = "09i4kbfgwpzw55rdlvl0hi1bvra0796b2d18n97lf2idafiz6bny";
+      name = "kcalutils-21.12.0.tar.xz";
     };
   };
   kcharselect = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kcharselect-21.08.3.tar.xz";
-      sha256 = "0fk06whwi4h43sw3adcs4b2s9ycwjamzrwr23m33c31mlpcb3i8z";
-      name = "kcharselect-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kcharselect-21.12.0.tar.xz";
+      sha256 = "1nbys46mbrsb1j5migpap5x11hz54vmfwxcrgcrr5l74g2gr33ks";
+      name = "kcharselect-21.12.0.tar.xz";
     };
   };
   kcolorchooser = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kcolorchooser-21.08.3.tar.xz";
-      sha256 = "07fvl4rfzhgz4kh9dhqkq6kf4913jv9cw9abfdb7k3pbr0r26qgz";
-      name = "kcolorchooser-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kcolorchooser-21.12.0.tar.xz";
+      sha256 = "0dy6p6yg1rki3bnhvskphha3v72lbw70h4x9aazkiczfyb19iyjk";
+      name = "kcolorchooser-21.12.0.tar.xz";
     };
   };
   kcron = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kcron-21.08.3.tar.xz";
-      sha256 = "1374agj9qc5ifm0yckq8m94gq7sjd42n4wwb59p756736asan8k5";
-      name = "kcron-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kcron-21.12.0.tar.xz";
+      sha256 = "1j5jcfamb3srxfli7wd32j194f51y5x60p21hkgprwmj7k8l7nia";
+      name = "kcron-21.12.0.tar.xz";
     };
   };
   kde-dev-scripts = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kde-dev-scripts-21.08.3.tar.xz";
-      sha256 = "152n6iir4xzx1a5d5bi4lb42rgl222pi6jz0hfkchk7swfgpvdfs";
-      name = "kde-dev-scripts-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kde-dev-scripts-21.12.0.tar.xz";
+      sha256 = "0b8xnkk0xmkw7jjhi9ilvgsn41p1f5ni6008nl1vf2ys76iv8ccq";
+      name = "kde-dev-scripts-21.12.0.tar.xz";
     };
   };
   kde-dev-utils = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kde-dev-utils-21.08.3.tar.xz";
-      sha256 = "1xs4fybbqlxji2py06hxabsisfb3bkvbfb3vy9lyj2k5vnnmpkf8";
-      name = "kde-dev-utils-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kde-dev-utils-21.12.0.tar.xz";
+      sha256 = "1jfdadirgpw4cd7apvzxk5ql0hljyqqmpzak0v395q6nhyflpa54";
+      name = "kde-dev-utils-21.12.0.tar.xz";
     };
   };
   kdebugsettings = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kdebugsettings-21.08.3.tar.xz";
-      sha256 = "1d47igv0xg1hlxzyfg10h5g7s79yq44d3ixpr82risyrslbwvll4";
-      name = "kdebugsettings-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kdebugsettings-21.12.0.tar.xz";
+      sha256 = "0jasjhhfyaakgawzhw7dqbxhc7pzfrcbpghg03pw0ld54ma69s0f";
+      name = "kdebugsettings-21.12.0.tar.xz";
     };
   };
   kdeconnect-kde = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kdeconnect-kde-21.08.3.tar.xz";
-      sha256 = "1gfsbg6rwqv3cpfxcayn3q9i99mnhjz666p9x9ih205idlrn6iij";
-      name = "kdeconnect-kde-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kdeconnect-kde-21.12.0.tar.xz";
+      sha256 = "0jlx6rlg2sspfxq9fsl1416b7229vbx0fydy0a4vdj7nrq1iv7ji";
+      name = "kdeconnect-kde-21.12.0.tar.xz";
     };
   };
   kdeedu-data = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kdeedu-data-21.08.3.tar.xz";
-      sha256 = "15qqcl6gws6ddyv373dfql3wj2fryvr5b6d66q4l1xwc1mg6wnqs";
-      name = "kdeedu-data-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kdeedu-data-21.12.0.tar.xz";
+      sha256 = "11wqcli3dvalkpvbzx271nmxmv825crd5bn03gl9606366q94vin";
+      name = "kdeedu-data-21.12.0.tar.xz";
     };
   };
   kdegraphics-mobipocket = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kdegraphics-mobipocket-21.08.3.tar.xz";
-      sha256 = "1bli0ld2mymgppjsjjvkyk7ldpz787p30d7lf6lpafrf64di2bhm";
-      name = "kdegraphics-mobipocket-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kdegraphics-mobipocket-21.12.0.tar.xz";
+      sha256 = "04rcjlhmqhgaclg0hv5mjjaq5r5nx2pi7ngj5rvh1c14001ip8y2";
+      name = "kdegraphics-mobipocket-21.12.0.tar.xz";
     };
   };
   kdegraphics-thumbnailers = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kdegraphics-thumbnailers-21.08.3.tar.xz";
-      sha256 = "1hbjmkjymb3pi1lz43bl5clgdyy6kr928q7fniwiwmak3k1xrng5";
-      name = "kdegraphics-thumbnailers-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kdegraphics-thumbnailers-21.12.0.tar.xz";
+      sha256 = "0zli49aa2zljly10fzhzj60mjjdikfn6fsxspgx48y0vfcqb1p3h";
+      name = "kdegraphics-thumbnailers-21.12.0.tar.xz";
     };
   };
   kdenetwork-filesharing = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kdenetwork-filesharing-21.08.3.tar.xz";
-      sha256 = "19c3my0i9xb3salf7sk870nhv797wkk83dyrczw672skwl8xcnd9";
-      name = "kdenetwork-filesharing-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kdenetwork-filesharing-21.12.0.tar.xz";
+      sha256 = "15svxqkynw9k6zzdjx9b8bwwy5v76lngw9hvygrfjhif8nr2np6m";
+      name = "kdenetwork-filesharing-21.12.0.tar.xz";
     };
   };
   kdenlive = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kdenlive-21.08.3.tar.xz";
-      sha256 = "00ss9i9gw112vc3bjayp193qnfd3dq47bij9mv429azl20ff0y0c";
-      name = "kdenlive-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kdenlive-21.12.0.tar.xz";
+      sha256 = "083lswdllznyj33qzfbzvy7lp73fwbrhn8xvp33x36nqb3h2w7g1";
+      name = "kdenlive-21.12.0.tar.xz";
     };
   };
   kdepim-addons = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kdepim-addons-21.08.3.tar.xz";
-      sha256 = "1ham9yzmj89lp3zwxwpyh0qy7fxrlhgmhphn9crrkx9gsy77ddsf";
-      name = "kdepim-addons-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kdepim-addons-21.12.0.tar.xz";
+      sha256 = "00xn3l54n9c1znp2k5bll04rqsqazr24mx1hg0vk3gqi6fnff2ph";
+      name = "kdepim-addons-21.12.0.tar.xz";
     };
   };
   kdepim-runtime = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kdepim-runtime-21.08.3.tar.xz";
-      sha256 = "1d2208pwalc6mjfnn4gfq2f2fqgxp9w3g8igx6r6l9qsgybh1msx";
-      name = "kdepim-runtime-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kdepim-runtime-21.12.0.tar.xz";
+      sha256 = "1mmp8wlhm6avwkzs81vfvqidxxagv14ll10bg4pyy2mafnm0q31a";
+      name = "kdepim-runtime-21.12.0.tar.xz";
     };
   };
   kdesdk-kioslaves = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kdesdk-kioslaves-21.08.3.tar.xz";
-      sha256 = "0frw2zxwckmqmffxn5gszdxz61zc0k8xpbhbiyfxsqprh3ck4a2y";
-      name = "kdesdk-kioslaves-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kdesdk-kioslaves-21.12.0.tar.xz";
+      sha256 = "1zj1xz6b0hrjvslw00vs3rgcnrhcm50as7d481zgky385j3c5i8r";
+      name = "kdesdk-kioslaves-21.12.0.tar.xz";
     };
   };
   kdesdk-thumbnailers = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kdesdk-thumbnailers-21.08.3.tar.xz";
-      sha256 = "06s7i85g5gpknxlrq59i5w8czpaz5wl1b8kfx9flzx0x6ibm5s9q";
-      name = "kdesdk-thumbnailers-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kdesdk-thumbnailers-21.12.0.tar.xz";
+      sha256 = "1m471h9c8lsd5jchmdjynjwj85i163qq0m6jxcl9pppsn3hvb6a3";
+      name = "kdesdk-thumbnailers-21.12.0.tar.xz";
+    };
+  };
+  kdev-php = {
+    version = "21.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/release-service/21.12.0/src/kdev-php-21.12.0.tar.xz";
+      sha256 = "02s116xbdhpvk14y8rgb6icmccy77d0mwrriqv2fxwgl2d26g57z";
+      name = "kdev-php-21.12.0.tar.xz";
+    };
+  };
+  kdev-python = {
+    version = "21.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/release-service/21.12.0/src/kdev-python-21.12.0.tar.xz";
+      sha256 = "02nfdvbwj4arkx4z5i148n7mxfb4r2f605wjhc2iddkvdmpbgpcx";
+      name = "kdev-python-21.12.0.tar.xz";
+    };
+  };
+  kdevelop = {
+    version = "21.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/release-service/21.12.0/src/kdevelop-21.12.0.tar.xz";
+      sha256 = "17v1347ljvr6wif1lihv6vbd5h2n6pi1nb5v43lin5s165d7scv4";
+      name = "kdevelop-21.12.0.tar.xz";
     };
   };
   kdf = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kdf-21.08.3.tar.xz";
-      sha256 = "061xclwkhmc9m8f113hlb46dwk5zvqlmgahz13yfbvyrpj810a7k";
-      name = "kdf-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kdf-21.12.0.tar.xz";
+      sha256 = "1q5w741kvyy7bkbm4xiif7ac1cyc02v8wrwr7h10fvcvbvyca50a";
+      name = "kdf-21.12.0.tar.xz";
     };
   };
   kdialog = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kdialog-21.08.3.tar.xz";
-      sha256 = "1ibqz8s8p90rxy843f1wn3jnyzrm54srhfpr4ix48amf86afj2gp";
-      name = "kdialog-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kdialog-21.12.0.tar.xz";
+      sha256 = "1klz70xw43rb89mi1dql0rmjpnzz4hp5dmdwybbby8zd7vkwkp07";
+      name = "kdialog-21.12.0.tar.xz";
     };
   };
   kdiamond = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kdiamond-21.08.3.tar.xz";
-      sha256 = "1vkflwvi1wa2kd6hq647g9skxg6c7jdk9hakzfphlq2jw6daml94";
-      name = "kdiamond-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kdiamond-21.12.0.tar.xz";
+      sha256 = "003qaf5nyv098f6ap86gjiqmr3a84vqjxjn40jd2g09vsn717xpf";
+      name = "kdiamond-21.12.0.tar.xz";
     };
   };
   keditbookmarks = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/keditbookmarks-21.08.3.tar.xz";
-      sha256 = "0v9grm385zyxpsqjp287cz8lvrvfzkk7b4blvdr1hi66sng7nr2n";
-      name = "keditbookmarks-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/keditbookmarks-21.12.0.tar.xz";
+      sha256 = "1pglks8hh1h7lhgzqai4jahy5zgw7j5si4ijbnk02s8zi1prjn21";
+      name = "keditbookmarks-21.12.0.tar.xz";
     };
   };
   kfind = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kfind-21.08.3.tar.xz";
-      sha256 = "04qdxqa8gfipjm5akplxrjbnlaky2djkx8nkvcqzqfhvw5i9rxqp";
-      name = "kfind-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kfind-21.12.0.tar.xz";
+      sha256 = "1a5p8673c544w1587pp49ra8xwj80hg8v6vgxh88xs5fjdxwzgf5";
+      name = "kfind-21.12.0.tar.xz";
     };
   };
   kfloppy = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kfloppy-21.08.3.tar.xz";
-      sha256 = "14l53a0mrzhnfrhalr71fv0j0ksz6c1zqj8j33nayhqz386yrccx";
-      name = "kfloppy-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kfloppy-21.12.0.tar.xz";
+      sha256 = "1sk7gaywq90nc54n18vfls5lc6pb780ggljdgn1mr9qyz98brf4v";
+      name = "kfloppy-21.12.0.tar.xz";
     };
   };
   kfourinline = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kfourinline-21.08.3.tar.xz";
-      sha256 = "0w2zdl0yfhwdwbnlqd4l9pdx7q9mr0xq7kw49h9wiajy1zmh8vls";
-      name = "kfourinline-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kfourinline-21.12.0.tar.xz";
+      sha256 = "18nl5gik49gmamdfv21ihg2fvsbx8fviwqzvfqpqjwmf7hmdn854";
+      name = "kfourinline-21.12.0.tar.xz";
     };
   };
   kgeography = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kgeography-21.08.3.tar.xz";
-      sha256 = "03wchz3bd4vlijywp9r2xilmhw4gc3ka54ilf2w60baazslhlnr3";
-      name = "kgeography-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kgeography-21.12.0.tar.xz";
+      sha256 = "0dqv45aaqdw9sf7knrsm1r8bj3vf14vvra41gsi19g6ksv245xzq";
+      name = "kgeography-21.12.0.tar.xz";
     };
   };
   kget = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kget-21.08.3.tar.xz";
-      sha256 = "0zpzh7bf65kz469viff794zdwc54aq84ndafx6g07nhqs3jhnmjp";
-      name = "kget-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kget-21.12.0.tar.xz";
+      sha256 = "0dd57942mv0rlgsdr2hm75x4g1hbkjnzy11fkczhdb2hy49ylmaz";
+      name = "kget-21.12.0.tar.xz";
     };
   };
   kgoldrunner = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kgoldrunner-21.08.3.tar.xz";
-      sha256 = "0c566c83a7kdc4kvzn37q4kdmr373hfrjgmq7mvn9bji5gcaqzch";
-      name = "kgoldrunner-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kgoldrunner-21.12.0.tar.xz";
+      sha256 = "1y5119jxg1fx0wpi9b50gc9h1im1ixzyzhsjcrp0rzqqcdyajm17";
+      name = "kgoldrunner-21.12.0.tar.xz";
     };
   };
   kgpg = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kgpg-21.08.3.tar.xz";
-      sha256 = "0q8da9mzqxg0xmclcpgjh8c744l1sm180ga6hxbasan47wwq67as";
-      name = "kgpg-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kgpg-21.12.0.tar.xz";
+      sha256 = "0i6iqnjplms1rv2f8h3p4z56z20apyw45hmp1mf45pgadwjvs59v";
+      name = "kgpg-21.12.0.tar.xz";
     };
   };
   khangman = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/khangman-21.08.3.tar.xz";
-      sha256 = "1iq4njq0fa7all8zm2q585i1grmv2nfb5qnpr8xpyn13np39q8sr";
-      name = "khangman-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/khangman-21.12.0.tar.xz";
+      sha256 = "1jvw3d743s41b1kq9vpa8l3063br4asbc9spffqlrx09d748w14n";
+      name = "khangman-21.12.0.tar.xz";
     };
   };
   khelpcenter = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/khelpcenter-21.08.3.tar.xz";
-      sha256 = "1pn5822yxqw62hynkf05a33gzs9xvrwwrxam024g6gs0y0v5nsfp";
-      name = "khelpcenter-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/khelpcenter-21.12.0.tar.xz";
+      sha256 = "0mashc7kkmq2hnsbc8cdb3jh5l3q3rynqxvdl2hqwgla83pnfs5c";
+      name = "khelpcenter-21.12.0.tar.xz";
     };
   };
   kidentitymanagement = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kidentitymanagement-21.08.3.tar.xz";
-      sha256 = "00fhw2c7jmv0xqyd1jlrlkahszw163a7cbljn83msws8m5mrnlcb";
-      name = "kidentitymanagement-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kidentitymanagement-21.12.0.tar.xz";
+      sha256 = "0gjdhxqzshc82hkhsmypyq9sgrnppq6r33zcz31c1d1g0bgklrgw";
+      name = "kidentitymanagement-21.12.0.tar.xz";
     };
   };
   kig = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kig-21.08.3.tar.xz";
-      sha256 = "1l4zap7lm1pigyldbqy20jaqysid0r4a6y71qalxk3f565jsqfx5";
-      name = "kig-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kig-21.12.0.tar.xz";
+      sha256 = "00i7ng9csgf6h2db2g6vxnhipqhhhbrnvw4zx6qz7y4f6ik3qxlc";
+      name = "kig-21.12.0.tar.xz";
     };
   };
   kigo = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kigo-21.08.3.tar.xz";
-      sha256 = "1cdrmlwpzbkz1mi2f72z9dh1pvkdkjn885zqqybhqbqicn3w3qch";
-      name = "kigo-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kigo-21.12.0.tar.xz";
+      sha256 = "1r90hxxzd36aphjhkn46q965wmsghqraiwq68x14w1kzgwkh5a7x";
+      name = "kigo-21.12.0.tar.xz";
     };
   };
   killbots = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/killbots-21.08.3.tar.xz";
-      sha256 = "1mwa46r7yvxhavprc6yjh773gjhz5ks0znsvpzambn6hk23r11p8";
-      name = "killbots-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/killbots-21.12.0.tar.xz";
+      sha256 = "19dr1n4hzhzqnhfc1sbgyimb3dr0gnfch031f1wgybg94avdk7yx";
+      name = "killbots-21.12.0.tar.xz";
     };
   };
   kimagemapeditor = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kimagemapeditor-21.08.3.tar.xz";
-      sha256 = "0vzy028cgq0ai4f9rgkc32w09yz5836y280nck2wxk2dajjc5k6x";
-      name = "kimagemapeditor-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kimagemapeditor-21.12.0.tar.xz";
+      sha256 = "0f07k4fwbp7nniky88s5h3p96g60m6zh1shkhndiv1zpznlgiaba";
+      name = "kimagemapeditor-21.12.0.tar.xz";
     };
   };
   kimap = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kimap-21.08.3.tar.xz";
-      sha256 = "11xwkgxm0ghbpcy6bmvkw1hlsfkdrlyyfbblv5m4s881ky7h4aim";
-      name = "kimap-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kimap-21.12.0.tar.xz";
+      sha256 = "0fasq0lk6w477bqg1mfpslxpclwd5jrgayfxi6qxh8pfi486c8fd";
+      name = "kimap-21.12.0.tar.xz";
     };
   };
   kio-extras = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kio-extras-21.08.3.tar.xz";
-      sha256 = "0lx0b9q68mfb96jfwsf0awcx9wn47nmnqqnk57wrbx8zx880q0j2";
-      name = "kio-extras-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kio-extras-21.12.0.tar.xz";
+      sha256 = "15lws6d794rqyxnyp812f58agd1ydgg7vka6gc2d92ks3m438qi4";
+      name = "kio-extras-21.12.0.tar.xz";
     };
   };
   kio-gdrive = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kio-gdrive-21.08.3.tar.xz";
-      sha256 = "1h781cksqq5qana80rlc0x3cfz5prl1g3il4282vf2yqihl3zgrd";
-      name = "kio-gdrive-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kio-gdrive-21.12.0.tar.xz";
+      sha256 = "0ysd1368gal4fc92jilvshj4mxr7babsqmlhx0623q2jm20f5hxj";
+      name = "kio-gdrive-21.12.0.tar.xz";
     };
   };
   kipi-plugins = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kipi-plugins-21.08.3.tar.xz";
-      sha256 = "1vscmljcadz11m4jsbkkx5f8ywbyvmfxnw1g7x5ks8d8hqsrcgd0";
-      name = "kipi-plugins-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kipi-plugins-21.12.0.tar.xz";
+      sha256 = "04abfilhlrh9lf1ayg4pc87qc5i6adxwmw1gyq9yjjg5zg7vksz9";
+      name = "kipi-plugins-21.12.0.tar.xz";
     };
   };
   kirigami-gallery = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kirigami-gallery-21.08.3.tar.xz";
-      sha256 = "0d2psfq5q7zjmd4k1jz0fgwi3gnhi78jn10hrwvc7f8fb6pw4rzc";
-      name = "kirigami-gallery-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kirigami-gallery-21.12.0.tar.xz";
+      sha256 = "1c2dyncjm6nsv4zra3h6pks808xbvgma4g7hjqlivb35snf32ky7";
+      name = "kirigami-gallery-21.12.0.tar.xz";
     };
   };
   kiriki = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kiriki-21.08.3.tar.xz";
-      sha256 = "19qvbxc0dpjq0vb5kh3qsrkv1793bz5ii958a4yqfmmc8xb26v2x";
-      name = "kiriki-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kiriki-21.12.0.tar.xz";
+      sha256 = "1a82091b66rxbfbaqls52q34gxg1jvxkjcangwgs6rq8gk624siq";
+      name = "kiriki-21.12.0.tar.xz";
     };
   };
   kiten = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kiten-21.08.3.tar.xz";
-      sha256 = "0ly44w9y4ha5nw6lqpm5gavxc3ywqc4wh04nl7wpg0m2rm624mci";
-      name = "kiten-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kiten-21.12.0.tar.xz";
+      sha256 = "1c5dh2xip3g7144rbrzaxi15lgw6x1c12aa40svjm29c7xayhac4";
+      name = "kiten-21.12.0.tar.xz";
     };
   };
   kitinerary = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kitinerary-21.08.3.tar.xz";
-      sha256 = "066rq42g5l1rmzf5c7xg21p35ln60ir92d0sp2wg9s5li0l0azbf";
-      name = "kitinerary-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kitinerary-21.12.0.tar.xz";
+      sha256 = "0dzgvijgm7f5zywpalpf9rj47jfi6dzd7j7qnq5k9sdbm9q9bw9k";
+      name = "kitinerary-21.12.0.tar.xz";
     };
   };
   kjumpingcube = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kjumpingcube-21.08.3.tar.xz";
-      sha256 = "0iya370m6n9g6m6rzfkdsb9ypwdd0ksfddiy2g0yvjf1xdxr7im9";
-      name = "kjumpingcube-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kjumpingcube-21.12.0.tar.xz";
+      sha256 = "1y0q6hzjqwaky3vjnx9wrb7glx29ffgv22d5kplgsdzg6pfz890m";
+      name = "kjumpingcube-21.12.0.tar.xz";
     };
   };
   kldap = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kldap-21.08.3.tar.xz";
-      sha256 = "1jb1k5xpicsmazc6c57z203w75h8klja7jp7p8934nvj9dgqqcd1";
-      name = "kldap-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kldap-21.12.0.tar.xz";
+      sha256 = "0q6p7r6h4xad341whg0njgq0cm9z76csdphdpg2adiqbdvgyly3g";
+      name = "kldap-21.12.0.tar.xz";
     };
   };
   kleopatra = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kleopatra-21.08.3.tar.xz";
-      sha256 = "1gpn0kpxrw4jn214k5swg2frkfgp9clr99n45z3mzjdccl8zfsbi";
-      name = "kleopatra-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kleopatra-21.12.0.tar.xz";
+      sha256 = "0q8qn4zxaphlakd2biv19fma7p4zxpc7qliz4n0yxmnkj8mhr2l7";
+      name = "kleopatra-21.12.0.tar.xz";
     };
   };
   klettres = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/klettres-21.08.3.tar.xz";
-      sha256 = "0w4fynbvnvlizz0qjkn2qcnn3xs1b0jjfmy9a01wff93a4nw2cj8";
-      name = "klettres-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/klettres-21.12.0.tar.xz";
+      sha256 = "0wz894rcgpcag23k37w7h4ddaniismvaw7ymfdwz2gzfki7mj8w7";
+      name = "klettres-21.12.0.tar.xz";
     };
   };
   klickety = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/klickety-21.08.3.tar.xz";
-      sha256 = "00dl0c6si302mprdwdngxa4361qmr27ii5kvk38vrdlq0cynzgzv";
-      name = "klickety-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/klickety-21.12.0.tar.xz";
+      sha256 = "1z0z4hb52ahzar7v5y2ap722dbz1mgil33iv6jcny1zazh7ddr5i";
+      name = "klickety-21.12.0.tar.xz";
     };
   };
   klines = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/klines-21.08.3.tar.xz";
-      sha256 = "0n3mdnwlyl0q09bz7dkb3796ki3l181085rb2r1k2mjnjwmn8zya";
-      name = "klines-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/klines-21.12.0.tar.xz";
+      sha256 = "1hjyq1n2bmdgm7v3kqw405gxvnsrf1x0i7278lz2w10x8ab6yzsk";
+      name = "klines-21.12.0.tar.xz";
     };
   };
   kmag = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kmag-21.08.3.tar.xz";
-      sha256 = "09jvp1hhdam31qwljzpflcnm1mczsai6xlxlks6q0qi2n52cxkhb";
-      name = "kmag-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kmag-21.12.0.tar.xz";
+      sha256 = "099mzwlgkc8zjp6nkakp73968kjimbb49wsg1ah9qmmairc0amdf";
+      name = "kmag-21.12.0.tar.xz";
     };
   };
   kmahjongg = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kmahjongg-21.08.3.tar.xz";
-      sha256 = "0afjg3svj1sg47xrz3fgvgkd74lvl71sy26br7jjyxjbq1ag9sin";
-      name = "kmahjongg-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kmahjongg-21.12.0.tar.xz";
+      sha256 = "0givhpisv19il3g4if14b4a8dkmspf90bw5h3ys0ybwnk7nyqj77";
+      name = "kmahjongg-21.12.0.tar.xz";
     };
   };
   kmail = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kmail-21.08.3.tar.xz";
-      sha256 = "02kina7xn10f963xb7jgzrf15z6akzgl8ba4c9a7yb46ra4w2707";
-      name = "kmail-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kmail-21.12.0.tar.xz";
+      sha256 = "11la8c8l6b612qwhqiiahi1nd249lsk9k9s9lihm7sjcqzhii070";
+      name = "kmail-21.12.0.tar.xz";
     };
   };
   kmail-account-wizard = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kmail-account-wizard-21.08.3.tar.xz";
-      sha256 = "1wfzbkipdhmbsj1q5c79ssij1sz57mapg1kkypw10p0nlriklz89";
-      name = "kmail-account-wizard-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kmail-account-wizard-21.12.0.tar.xz";
+      sha256 = "08bl6v4fs955yk3hb0a3csb644r2qpy687nakv8msqkjkm8bkjvj";
+      name = "kmail-account-wizard-21.12.0.tar.xz";
     };
   };
   kmailtransport = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kmailtransport-21.08.3.tar.xz";
-      sha256 = "0xn4imfb4085wx5czxb3yiigslwfxwdi2dmgv7ng01wbphpg0chw";
-      name = "kmailtransport-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kmailtransport-21.12.0.tar.xz";
+      sha256 = "161z6bd4j87c4qksgf5hnsfhip614j0lkvb11dlgnjfn99jfl8gh";
+      name = "kmailtransport-21.12.0.tar.xz";
     };
   };
   kmbox = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kmbox-21.08.3.tar.xz";
-      sha256 = "19dkc5l5h5x4h5nq924clc06vz5abll2ki70pc6r9py33rfjs11j";
-      name = "kmbox-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kmbox-21.12.0.tar.xz";
+      sha256 = "1052hpr6qgqdzhy7ja2bnfqzfd2mj402vbz46rsc1zghzx5vx7qk";
+      name = "kmbox-21.12.0.tar.xz";
     };
   };
   kmime = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kmime-21.08.3.tar.xz";
-      sha256 = "1bmgnsslhfzyix85c5p3mym6r9f2sjw5ajd5kzw9yxzyvzyc7kv6";
-      name = "kmime-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kmime-21.12.0.tar.xz";
+      sha256 = "0n6qya2j5aa8vv6iqn5rxb5jdd3zyk7p5qwp8yza5fjzvb4mrfvm";
+      name = "kmime-21.12.0.tar.xz";
     };
   };
   kmines = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kmines-21.08.3.tar.xz";
-      sha256 = "0x2ligjxam6aaxpzl1zj5circ0ssn9ycafl3ydvhk9pz9j3c9cx1";
-      name = "kmines-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kmines-21.12.0.tar.xz";
+      sha256 = "0jp4d6lfy07iv8ancbd22m8kmy9dx1ip8kl97zsjydzy5jz3ys7z";
+      name = "kmines-21.12.0.tar.xz";
     };
   };
   kmix = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kmix-21.08.3.tar.xz";
-      sha256 = "0smfvkw8svg4fd3sf3f3l5my516jjh2n203kffkg6nr2pgscfw58";
-      name = "kmix-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kmix-21.12.0.tar.xz";
+      sha256 = "02wrbh4g0xic3q7f9x51nb094xgfvsjp19dfx0phq33mcc6257b0";
+      name = "kmix-21.12.0.tar.xz";
     };
   };
   kmousetool = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kmousetool-21.08.3.tar.xz";
-      sha256 = "0fyhni1m96xh7ir7zhggszfvn7rsf5dp8l065pzvla73w7l6iqwy";
-      name = "kmousetool-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kmousetool-21.12.0.tar.xz";
+      sha256 = "0xrrhycdmjc2izrgmlr2c6nb2fd6ilhbgzsq816g5rnn85n2yd66";
+      name = "kmousetool-21.12.0.tar.xz";
     };
   };
   kmouth = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kmouth-21.08.3.tar.xz";
-      sha256 = "0d30r0kyq260pmbk4n9ild0zibwf1sdqwpszvi2j8y5v3gn2bg69";
-      name = "kmouth-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kmouth-21.12.0.tar.xz";
+      sha256 = "15g8b7xjca9klvjlfnpp61n3i4dpr77c7cx3vpm7lhm672vnb6am";
+      name = "kmouth-21.12.0.tar.xz";
     };
   };
   kmplot = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kmplot-21.08.3.tar.xz";
-      sha256 = "0az7krs0m7xly9v2aclfh4schw9hj99qmv6qmqwa1qvdhhhxd52p";
-      name = "kmplot-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kmplot-21.12.0.tar.xz";
+      sha256 = "0jhq983b4sfx57ld7b05z6i81bqbink5v5fcym56l8c7clm7jbwn";
+      name = "kmplot-21.12.0.tar.xz";
     };
   };
   knavalbattle = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/knavalbattle-21.08.3.tar.xz";
-      sha256 = "0ydbkfi1n1j9fv0rjxpvh6nsjp20zwmb5ii47pv77z6a3rk5sqf4";
-      name = "knavalbattle-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/knavalbattle-21.12.0.tar.xz";
+      sha256 = "1rh8v5m05zpvra955y3hgrral5dn0ac0vdgsbs881nj2g2md66gr";
+      name = "knavalbattle-21.12.0.tar.xz";
     };
   };
   knetwalk = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/knetwalk-21.08.3.tar.xz";
-      sha256 = "0nplhxvqiw9ap12hxyk1z247f31jqwg59d5q75jiqi1xr1gf27n2";
-      name = "knetwalk-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/knetwalk-21.12.0.tar.xz";
+      sha256 = "0akkc92s44ddak7k2arrh986pzfan3k9ccxb1b91qv2cr3ma004c";
+      name = "knetwalk-21.12.0.tar.xz";
     };
   };
   knights = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/knights-21.08.3.tar.xz";
-      sha256 = "0ajnn8jaa1h97k89qj5c7i51c2wr3zgbsiiz9bxhhmb6gwrwjqpi";
-      name = "knights-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/knights-21.12.0.tar.xz";
+      sha256 = "179c17zs4nvhwmbi04fshcww4s2lg9nzlx7f2zmg3cnbw905h939";
+      name = "knights-21.12.0.tar.xz";
     };
   };
   knotes = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/knotes-21.08.3.tar.xz";
-      sha256 = "0v5kg8gi2wmz4dhwg6pmq5pd6kh91ha9hg64z21p38b3nc4z07l4";
-      name = "knotes-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/knotes-21.12.0.tar.xz";
+      sha256 = "0qdwfnbp79jh6anvk6laj02zikvwjj1xh33phmbja2g69x9igsxg";
+      name = "knotes-21.12.0.tar.xz";
     };
   };
   kolf = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kolf-21.08.3.tar.xz";
-      sha256 = "1mz30vzdcsa9nhwqmcr6kxwvi9843b876kzpmqrlrxc19ixqbyq4";
-      name = "kolf-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kolf-21.12.0.tar.xz";
+      sha256 = "10qknxia43dh6cxarwdfgfm8qricydginxmv1y9an6v8p1mafpvm";
+      name = "kolf-21.12.0.tar.xz";
     };
   };
   kollision = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kollision-21.08.3.tar.xz";
-      sha256 = "1m46xrik0ppp6nhrsx264zzy0fdvryamcj0w5m6bm0hnyj75c4rk";
-      name = "kollision-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kollision-21.12.0.tar.xz";
+      sha256 = "0bji11sqnz3bkaa85kap2lz3sksy68gbg6062rn6nvwgwvq80fsw";
+      name = "kollision-21.12.0.tar.xz";
     };
   };
   kolourpaint = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kolourpaint-21.08.3.tar.xz";
-      sha256 = "11ciijpr8aa8nd3zgxrikdnx1gk1w78h1v1nhgqn399lxn3vkchi";
-      name = "kolourpaint-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kolourpaint-21.12.0.tar.xz";
+      sha256 = "167b9zishg4z51i2hcdq0ig9wasmmqsgr0hmj6xh8vs7bi6hdfam";
+      name = "kolourpaint-21.12.0.tar.xz";
     };
   };
   kompare = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kompare-21.08.3.tar.xz";
-      sha256 = "1988y00mb5wz9c6h4kchkyda4vas44bhiqd1zc4i0fkyl5wi5vp0";
-      name = "kompare-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kompare-21.12.0.tar.xz";
+      sha256 = "05g9i6nh7bgdxbf1i6w1g5rjbwblgj83xd7vx2l8381db2f0p6ks";
+      name = "kompare-21.12.0.tar.xz";
     };
   };
   konqueror = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/konqueror-21.08.3.tar.xz";
-      sha256 = "1ls9avkwcf7c9qnmxasbi933sjw9q3hnjyys5zf69v7p5hqvg0dz";
-      name = "konqueror-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/konqueror-21.12.0.tar.xz";
+      sha256 = "1cy0n04nnrfwms0clj5p7q6m3aayijg5nkr3n9rgbhaia050sdk7";
+      name = "konqueror-21.12.0.tar.xz";
     };
   };
   konquest = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/konquest-21.08.3.tar.xz";
-      sha256 = "0vsvzz47yn5wyl8zjnbfs1g97466l5ldxcc7mpg1q4y28fxb4jiv";
-      name = "konquest-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/konquest-21.12.0.tar.xz";
+      sha256 = "0wyzgs89xii7pcgkq6x99dfajbwhjma6va4lp58pfrrg7ysisdxw";
+      name = "konquest-21.12.0.tar.xz";
     };
   };
   konsole = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/konsole-21.08.3.tar.xz";
-      sha256 = "1w802g95s8hrlpkilxs2mh7fsg7xq3x9vzw48766kpl9ri3ppx91";
-      name = "konsole-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/konsole-21.12.0.tar.xz";
+      sha256 = "0wvgwcpp8wg6c08s95nc09ypm915741118ggy88ilz3vxf3rjlpk";
+      name = "konsole-21.12.0.tar.xz";
     };
   };
   kontact = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kontact-21.08.3.tar.xz";
-      sha256 = "0rwi34avk98m0jjbaij895ganfcz5c8l926nr399j5qnv9r6j82l";
-      name = "kontact-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kontact-21.12.0.tar.xz";
+      sha256 = "17jrj21jbxp121jmkvdzw05fbkjb6035pz38d982bkwpgc4sv5j9";
+      name = "kontact-21.12.0.tar.xz";
     };
   };
   kontactinterface = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kontactinterface-21.08.3.tar.xz";
-      sha256 = "1284f6cndf3l4il4mw1qrqvf9jmww6nmhh6fx7asw7mfc32r5zaj";
-      name = "kontactinterface-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kontactinterface-21.12.0.tar.xz";
+      sha256 = "01wz9ifmf6d8m0ggmbqyphnm05hi07zgqypy0safy9kvn3m4jj3v";
+      name = "kontactinterface-21.12.0.tar.xz";
     };
   };
   kontrast = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kontrast-21.08.3.tar.xz";
-      sha256 = "1yy4gfckabb175apvm7fcj77nxdc2fdszz1f1zrikrss20r7dc79";
-      name = "kontrast-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kontrast-21.12.0.tar.xz";
+      sha256 = "1dv79n5792pd4fs9f8i7528zy8a7xyaygyzhf3311v9dbi14arg8";
+      name = "kontrast-21.12.0.tar.xz";
     };
   };
   konversation = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/konversation-21.08.3.tar.xz";
-      sha256 = "0wfjhp6scrq9a5llr5f9fcz2k7b5jnid8m8hrp520ai4wg4ll7zv";
-      name = "konversation-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/konversation-21.12.0.tar.xz";
+      sha256 = "1lmfmw9nizp4y35w216ykxp9yz2bbds9hyw8bzy51qjk0k8lw3jl";
+      name = "konversation-21.12.0.tar.xz";
     };
   };
   kopeninghours = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kopeninghours-21.08.3.tar.xz";
-      sha256 = "090rp2qpsbsyqm4nipq398c3pkr0rx46rwmr4393wffzmnbiwcb9";
-      name = "kopeninghours-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kopeninghours-21.12.0.tar.xz";
+      sha256 = "1p0ql8amxaf7j36y5qajy341aa90lb9q5667jw1zbvfc7kf3myq7";
+      name = "kopeninghours-21.12.0.tar.xz";
     };
   };
   kopete = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kopete-21.08.3.tar.xz";
-      sha256 = "105zwy4k7idkdmjjx754x7acszd4yw3y3r7lrf61f44wsm9dv2wr";
-      name = "kopete-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kopete-21.12.0.tar.xz";
+      sha256 = "0m47h44b4xxva5qg6iw09a52ildfgwgz8c7z3wjc09r88akiarsy";
+      name = "kopete-21.12.0.tar.xz";
     };
   };
   korganizer = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/korganizer-21.08.3.tar.xz";
-      sha256 = "00r7abidj71yqgx4g0kd09dfnq0ilqh3kyzq47ms912gp1dkr5b9";
-      name = "korganizer-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/korganizer-21.12.0.tar.xz";
+      sha256 = "1qfc43llhw9941k9lh9g03bal4hzp80m5yapklcnd6smq2z0kk98";
+      name = "korganizer-21.12.0.tar.xz";
     };
   };
   kosmindoormap = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kosmindoormap-21.08.3.tar.xz";
-      sha256 = "15qq6w14yxfprzzj3267z15zkalsb8y0igq772hwyz4v7f6xhydp";
-      name = "kosmindoormap-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kosmindoormap-21.12.0.tar.xz";
+      sha256 = "1li3jz8b6kqxwivdmcfjgyxc4kvldi6i8n7ik4kllvljv67zqch3";
+      name = "kosmindoormap-21.12.0.tar.xz";
     };
   };
   kpat = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kpat-21.08.3.tar.xz";
-      sha256 = "0s8k8q12hvciz2c38gn5w7miz0i97pqn4jrs69sm294nw7wh1xi4";
-      name = "kpat-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kpat-21.12.0.tar.xz";
+      sha256 = "032advwlagv52nkfd2dv6ri6hq3i8wdmffcgcb2879fvdix6jkz2";
+      name = "kpat-21.12.0.tar.xz";
     };
   };
   kpimtextedit = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kpimtextedit-21.08.3.tar.xz";
-      sha256 = "18bjvhlvjn5a1gnzw478l15mgda4c7qba0qqk9rrbh2ryr1ksf7h";
-      name = "kpimtextedit-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kpimtextedit-21.12.0.tar.xz";
+      sha256 = "17yhh63cjpjdxynqflb33cdkfy047zq7d4f1xjx3kczcm5is2ms1";
+      name = "kpimtextedit-21.12.0.tar.xz";
     };
   };
   kpkpass = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kpkpass-21.08.3.tar.xz";
-      sha256 = "0l6n358gng24fqhwjmfpxfmmcw8x80di120k72zahiqplk2arcf5";
-      name = "kpkpass-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kpkpass-21.12.0.tar.xz";
+      sha256 = "02kpwyh169swlvf0dn0n64xn4r3hbzjj6ls2jncnjwlzyrpa56xn";
+      name = "kpkpass-21.12.0.tar.xz";
     };
   };
   kpmcore = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kpmcore-21.08.3.tar.xz";
-      sha256 = "0y9bpw71dn9c39rjsl44az3y2bdczrj833dvwmrwaz6jbnhxl1kj";
-      name = "kpmcore-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kpmcore-21.12.0.tar.xz";
+      sha256 = "0czjkxv8mzf3j7kjrzncb81binvscf2vmzjv19aiaa8nq9gx9i55";
+      name = "kpmcore-21.12.0.tar.xz";
     };
   };
   kpublictransport = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kpublictransport-21.08.3.tar.xz";
-      sha256 = "06jbc0qgi5dgx9jwhdnimw1k480whbqw5x75jrx9bspv5y5br16j";
-      name = "kpublictransport-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kpublictransport-21.12.0.tar.xz";
+      sha256 = "1dzr6b404bg8f2zzphy75pr265kqpyv5bivia9p779s27vc4456a";
+      name = "kpublictransport-21.12.0.tar.xz";
     };
   };
   kqtquickcharts = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kqtquickcharts-21.08.3.tar.xz";
-      sha256 = "0kyznsq7bjzj5c091kpgn443zvkn3qbmn2b0sppj78a7b8ica5ca";
-      name = "kqtquickcharts-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kqtquickcharts-21.12.0.tar.xz";
+      sha256 = "0bnwzpawb7160vi2n10nihgb5r5dqsc5fdzwxyympl37r4l9jxin";
+      name = "kqtquickcharts-21.12.0.tar.xz";
     };
   };
   krdc = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/krdc-21.08.3.tar.xz";
-      sha256 = "0jcbbq9vd4f1kp76fanwnp6q4hq10w3z7ygrb8makpa0daa96vx4";
-      name = "krdc-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/krdc-21.12.0.tar.xz";
+      sha256 = "0v59fdf5nkgbd27nkgpynqvj0ga8a36ii2h8x3kz47rrw9xvr961";
+      name = "krdc-21.12.0.tar.xz";
     };
   };
   kreversi = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kreversi-21.08.3.tar.xz";
-      sha256 = "1ifcckbf9lr4pr9n2ggqjvv6xz747k9hk7m43y5ij0bixi6cq474";
-      name = "kreversi-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kreversi-21.12.0.tar.xz";
+      sha256 = "1s2gh544l1knwg2yl3wm3mkq1d229kp0hb376pi0lzg94cvwhwzw";
+      name = "kreversi-21.12.0.tar.xz";
     };
   };
   krfb = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/krfb-21.08.3.tar.xz";
-      sha256 = "17q0hpwqbwqg4xbq5lmk5g1fl5jplzpx1acyhcbx7il0j06cfcn4";
-      name = "krfb-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/krfb-21.12.0.tar.xz";
+      sha256 = "11vlzk0kimqnqlxcwam1j8hkd7r20lvclaflv0fr8wv5jgy5jikd";
+      name = "krfb-21.12.0.tar.xz";
     };
   };
   kross-interpreters = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kross-interpreters-21.08.3.tar.xz";
-      sha256 = "0z9lmazpw5389sgvhsjsm1219ys3fybr7hg95nrz8a334vw39nqv";
-      name = "kross-interpreters-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kross-interpreters-21.12.0.tar.xz";
+      sha256 = "1p836hhvz37gk84n2z12j49y206q525agvm1gpbf8zvizjiii12g";
+      name = "kross-interpreters-21.12.0.tar.xz";
     };
   };
   kruler = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kruler-21.08.3.tar.xz";
-      sha256 = "0rjxy4ipxxk91wlzhrw9mg5avz18l4p01in29l1ccfz278b97lqm";
-      name = "kruler-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kruler-21.12.0.tar.xz";
+      sha256 = "1ki5g7hzpxzv9fqk6xv368rzsj1pbbgnf7nfsksla0xjb7ixm4mi";
+      name = "kruler-21.12.0.tar.xz";
     };
   };
   kshisen = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kshisen-21.08.3.tar.xz";
-      sha256 = "1fnd2qck51gxnw6ncq52rd1q08abh70azs0apjnh9qk0dyjk91wh";
-      name = "kshisen-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kshisen-21.12.0.tar.xz";
+      sha256 = "1l37an6blv1a9ka8hq3nhf83nbb15mzqqgyza3g80cfziafdiy73";
+      name = "kshisen-21.12.0.tar.xz";
     };
   };
   ksirk = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ksirk-21.08.3.tar.xz";
-      sha256 = "03v8sghnipkpca3c71s3008m3psawinj90a7637r19h7gyvlyws7";
-      name = "ksirk-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ksirk-21.12.0.tar.xz";
+      sha256 = "01amnrk3apxk8i081pr2rpnra5akl751j3x9y61qh248jvh856px";
+      name = "ksirk-21.12.0.tar.xz";
     };
   };
   ksmtp = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ksmtp-21.08.3.tar.xz";
-      sha256 = "0diz01z8gczkwy8c8gvjd583w02vma7kpngzg1ax0wx640vbjq50";
-      name = "ksmtp-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ksmtp-21.12.0.tar.xz";
+      sha256 = "0p85a8svywbli6579zm931lk1nq199lfad7vf23q5qjmlg2hmnic";
+      name = "ksmtp-21.12.0.tar.xz";
     };
   };
   ksnakeduel = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ksnakeduel-21.08.3.tar.xz";
-      sha256 = "0gmcn31dg3isv5dxv01rg8w6cbfdhwsz5rpp98lrr0qx4abphva7";
-      name = "ksnakeduel-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ksnakeduel-21.12.0.tar.xz";
+      sha256 = "0gry8fl74wfs5l2qdhs9qg03l174fw207c24v9fiyhr1hjg18f9w";
+      name = "ksnakeduel-21.12.0.tar.xz";
     };
   };
   kspaceduel = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kspaceduel-21.08.3.tar.xz";
-      sha256 = "0099rc25zvbl2zg1gpmxdhnphl32bd0cxlgikyfvanigq3mx8zkd";
-      name = "kspaceduel-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kspaceduel-21.12.0.tar.xz";
+      sha256 = "1fvw18n8bq18k5n0g4a3p5b15aiwbgbwb67bz0i8p30pr969lsks";
+      name = "kspaceduel-21.12.0.tar.xz";
     };
   };
   ksquares = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ksquares-21.08.3.tar.xz";
-      sha256 = "1mgs9yapz8fm2nmv0zg2x9qfd0ijj518s43dqmss41zrjr0g3mv2";
-      name = "ksquares-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ksquares-21.12.0.tar.xz";
+      sha256 = "16kmw5c8gnfdlssh97z3g24snh7gg1hr9nb1ynszwpazvbrga7mm";
+      name = "ksquares-21.12.0.tar.xz";
     };
   };
   ksudoku = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ksudoku-21.08.3.tar.xz";
-      sha256 = "09s91xvkbybhwdkf80d7kvjj2jvii938vf650fqicypki2vf0zyx";
-      name = "ksudoku-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ksudoku-21.12.0.tar.xz";
+      sha256 = "1rymwcs0klzg6nb9jjckdcw70pv4w8x9scvlvbdyy8n54yflzrw6";
+      name = "ksudoku-21.12.0.tar.xz";
     };
   };
   ksystemlog = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ksystemlog-21.08.3.tar.xz";
-      sha256 = "1m20nvvvfbgzd3aay7hsb5pm1bgjngc36ixqs0hrklhrcmwjq9g6";
-      name = "ksystemlog-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ksystemlog-21.12.0.tar.xz";
+      sha256 = "01mqbk6gzfv1mc1b3g75ia5cb3szx02vbxykjq80icmz4x96nl2g";
+      name = "ksystemlog-21.12.0.tar.xz";
     };
   };
   kteatime = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kteatime-21.08.3.tar.xz";
-      sha256 = "175vmcbhhlan6smhagli0jpa3ik0y0wwiijigfk2srm8cyk29ymn";
-      name = "kteatime-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kteatime-21.12.0.tar.xz";
+      sha256 = "0ywr3cyijzv20qjdiyq5v4wkxhk9a7z38dv450w63v19b309gb28";
+      name = "kteatime-21.12.0.tar.xz";
     };
   };
   ktimer = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ktimer-21.08.3.tar.xz";
-      sha256 = "1nr116cxw81c2bh32l2xrzmrglk36qkzycbfcffxnm7ka4flwzbm";
-      name = "ktimer-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ktimer-21.12.0.tar.xz";
+      sha256 = "0qb9vlr5mvf0dnwdbz375wn8nrqvawlvsbf01g8ad43x67q7yqi7";
+      name = "ktimer-21.12.0.tar.xz";
     };
   };
   ktnef = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ktnef-21.08.3.tar.xz";
-      sha256 = "0vfsy894hs3538ssbqky6nfnjzhyn8yjlmvh0mb6gg69952gcvqa";
-      name = "ktnef-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ktnef-21.12.0.tar.xz";
+      sha256 = "03b5zjmfl6gmsc9pg6a8ig15gqvh2l6513yaix7ib4qxm1dmdrh8";
+      name = "ktnef-21.12.0.tar.xz";
     };
   };
   ktorrent = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ktorrent-21.08.3.tar.xz";
-      sha256 = "0y1vpfc8xsm98lrf119r5clmb6xwq2a8adb347ksyvvr4l7rdkwm";
-      name = "ktorrent-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ktorrent-21.12.0.tar.xz";
+      sha256 = "1jn029494vl2aj9y0c2bgpzkk1f07if904f27j83jv28fv5ynl24";
+      name = "ktorrent-21.12.0.tar.xz";
     };
   };
   ktouch = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ktouch-21.08.3.tar.xz";
-      sha256 = "0i0ph52k2zw6q37qam2s09msxsdxr5v8qiqwxirjab8ad7g9z0gf";
-      name = "ktouch-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ktouch-21.12.0.tar.xz";
+      sha256 = "09ayp6infp1xhh411mrqsfj31n89gyq191rgjcwajn97190kd3ch";
+      name = "ktouch-21.12.0.tar.xz";
     };
   };
   ktp-accounts-kcm = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ktp-accounts-kcm-21.08.3.tar.xz";
-      sha256 = "1ymq8cnvvw62xd4va969imm2g62fw7fhbs8rw3wqrc2lal9d5l1g";
-      name = "ktp-accounts-kcm-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ktp-accounts-kcm-21.12.0.tar.xz";
+      sha256 = "1vhygwh5lx1pxc1qxskc4v87fqhrwnk53a0k1xz5nymighcyxdvy";
+      name = "ktp-accounts-kcm-21.12.0.tar.xz";
     };
   };
   ktp-approver = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ktp-approver-21.08.3.tar.xz";
-      sha256 = "0z9kw2gamgdz425aw6li6nvv1g0b1ffil0rmjh0b0z89bbpbc6jx";
-      name = "ktp-approver-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ktp-approver-21.12.0.tar.xz";
+      sha256 = "1qsfcfym7pbihyb82sh12ziibf9hp73qwhy0hr81h2z5ijg05a7r";
+      name = "ktp-approver-21.12.0.tar.xz";
     };
   };
   ktp-auth-handler = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ktp-auth-handler-21.08.3.tar.xz";
-      sha256 = "1z89ycwpq46w82hylwq1sizd7a563g5a22jdc1chhhlwp9dqmdc2";
-      name = "ktp-auth-handler-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ktp-auth-handler-21.12.0.tar.xz";
+      sha256 = "0m3lwqlykx3dqd77hww7x9rmnwdwxbyl279h6mdjjr0bgnf1ypm1";
+      name = "ktp-auth-handler-21.12.0.tar.xz";
     };
   };
   ktp-call-ui = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ktp-call-ui-21.08.3.tar.xz";
-      sha256 = "1nr064h0f4rqjka030xflhrmq0l8g87fwyi853plk7y0473fy6h2";
-      name = "ktp-call-ui-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ktp-call-ui-21.12.0.tar.xz";
+      sha256 = "0z6v68xlg89i29zr9ldg5hlqzykwrsw1yvmi5q25rhaamqbcbhy8";
+      name = "ktp-call-ui-21.12.0.tar.xz";
     };
   };
   ktp-common-internals = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ktp-common-internals-21.08.3.tar.xz";
-      sha256 = "0ndfdggs4j2jc93pf998r0fyj7fjnc2pz98acc1l6laq8d8aawd2";
-      name = "ktp-common-internals-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ktp-common-internals-21.12.0.tar.xz";
+      sha256 = "1wah79byc6f5w8c0xa0z7iwjbg628m1v18nfqqs2d6mdb0wlclz4";
+      name = "ktp-common-internals-21.12.0.tar.xz";
     };
   };
   ktp-contact-list = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ktp-contact-list-21.08.3.tar.xz";
-      sha256 = "0pdl3w1vj6f4nms4cs91yagfyf5ssqms0bzmcnjf53pcpyf8rhjs";
-      name = "ktp-contact-list-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ktp-contact-list-21.12.0.tar.xz";
+      sha256 = "0r654q55x27m6cd9jsxgf574wd4r4b8wajj30h6mah317kpfnxg4";
+      name = "ktp-contact-list-21.12.0.tar.xz";
     };
   };
   ktp-contact-runner = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ktp-contact-runner-21.08.3.tar.xz";
-      sha256 = "0zjw9f66rn5nc37q3q54qy8m09qlama949ksfrvyyh3qhsxp17pm";
-      name = "ktp-contact-runner-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ktp-contact-runner-21.12.0.tar.xz";
+      sha256 = "1kbwf4pikgiym58g8hksai011braa32r1n6s20dnj2r637fywprd";
+      name = "ktp-contact-runner-21.12.0.tar.xz";
     };
   };
   ktp-desktop-applets = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ktp-desktop-applets-21.08.3.tar.xz";
-      sha256 = "1wlls0rhynfq9cfn48g31avviy067r409c5pcvasfwgzcv5hjan5";
-      name = "ktp-desktop-applets-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ktp-desktop-applets-21.12.0.tar.xz";
+      sha256 = "007wa3mas3cdh2cxw5k1rwhc9bdr96jk3lb0ka82viqz0fiyxlcv";
+      name = "ktp-desktop-applets-21.12.0.tar.xz";
     };
   };
   ktp-filetransfer-handler = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ktp-filetransfer-handler-21.08.3.tar.xz";
-      sha256 = "1vnwgcmn3j18spcn2dl468n2y073mk9nsc3557hid5mmg7byp8ng";
-      name = "ktp-filetransfer-handler-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ktp-filetransfer-handler-21.12.0.tar.xz";
+      sha256 = "19pb90zihhrsqb0nkdwan1w7mb4w65apm9ghsp9zb0j6d7sjj1yx";
+      name = "ktp-filetransfer-handler-21.12.0.tar.xz";
     };
   };
   ktp-kded-module = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ktp-kded-module-21.08.3.tar.xz";
-      sha256 = "0mgw2w812306w04w1xgv9ngd31zj0m4v9hv3cyyk2dz1hi97g9hz";
-      name = "ktp-kded-module-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ktp-kded-module-21.12.0.tar.xz";
+      sha256 = "18n4b3a6fyf3vwyw8pp6ilj34gbcd1s778m4b03xnm5110nrkplv";
+      name = "ktp-kded-module-21.12.0.tar.xz";
     };
   };
   ktp-send-file = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ktp-send-file-21.08.3.tar.xz";
-      sha256 = "1c0yrir3z6p6ravizaqhdgjiwcj2cyzd61n4zcx2mrr4mfq7wr4l";
-      name = "ktp-send-file-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ktp-send-file-21.12.0.tar.xz";
+      sha256 = "1a33cbgczivqlxksjq4a0z0qc5nml8mlkip7g9cx40vly495cj8d";
+      name = "ktp-send-file-21.12.0.tar.xz";
     };
   };
   ktp-text-ui = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ktp-text-ui-21.08.3.tar.xz";
-      sha256 = "0xk9lcdp99rd1n6gg9a4ix5bdfk229y1ddf115ldjsk30ksfv0r0";
-      name = "ktp-text-ui-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ktp-text-ui-21.12.0.tar.xz";
+      sha256 = "1xi4nkvcp13yzf2hdpk77icmvxsf8598njlkq72x5dw9hx6hzxfd";
+      name = "ktp-text-ui-21.12.0.tar.xz";
     };
   };
   ktuberling = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ktuberling-21.08.3.tar.xz";
-      sha256 = "1i0ykflfr2q3043z5j5h1m093n103la8zbax7cacid109d0kca5g";
-      name = "ktuberling-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ktuberling-21.12.0.tar.xz";
+      sha256 = "0n2hlj7v225c58j6xkqkcvk3a246l4wcmqp9fhqlanmagsn2vq2l";
+      name = "ktuberling-21.12.0.tar.xz";
     };
   };
   kturtle = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kturtle-21.08.3.tar.xz";
-      sha256 = "1fw7hgx0zxsl1l9ymjhf3k3w5999ijj8vdagnyiz01y2i2hlnvhc";
-      name = "kturtle-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kturtle-21.12.0.tar.xz";
+      sha256 = "1macqjp0b5iqvpi83d95rzzzyvmcxzfiw99g042hga48na3zz50p";
+      name = "kturtle-21.12.0.tar.xz";
     };
   };
   kubrick = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kubrick-21.08.3.tar.xz";
-      sha256 = "1fq2icsfbd6k4gm9w25aml2rigzami934vvkvb30222vbhs86qr4";
-      name = "kubrick-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kubrick-21.12.0.tar.xz";
+      sha256 = "1v9x3zf80y0aj7nhwi8r14mcxb67fav6ww7cnw6m7czyxwrpmx82";
+      name = "kubrick-21.12.0.tar.xz";
     };
   };
   kwalletmanager = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kwalletmanager-21.08.3.tar.xz";
-      sha256 = "0cbq0md317fipd4lfqvcgan1jm5n0zyilzbrkjymbnl7cy276ajq";
-      name = "kwalletmanager-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kwalletmanager-21.12.0.tar.xz";
+      sha256 = "0n8m46kvax12ji1nd3c42yqa6cznx374yzr569ilm523m1lp74hy";
+      name = "kwalletmanager-21.12.0.tar.xz";
     };
   };
   kwave = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kwave-21.08.3.tar.xz";
-      sha256 = "08qs33mi047jcqaavglgxk3i6gq4h73aygn6gj8xpcpqhq82kjl5";
-      name = "kwave-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kwave-21.12.0.tar.xz";
+      sha256 = "1cgp55c75v200b7l5q8jhvirf1pkfllgk7c2fzv7axzyg4vr2d4v";
+      name = "kwave-21.12.0.tar.xz";
     };
   };
   kwordquiz = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kwordquiz-21.08.3.tar.xz";
-      sha256 = "066v2w8i2fvrrqb1aakscwcd6rchlm4m5pwsql0s6k59mn7wab6b";
-      name = "kwordquiz-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kwordquiz-21.12.0.tar.xz";
+      sha256 = "0ycsy753msm50x5p938lw3mp8cxcdcbvq85f8az9f8x3y7qmnxlm";
+      name = "kwordquiz-21.12.0.tar.xz";
     };
   };
   libgravatar = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/libgravatar-21.08.3.tar.xz";
-      sha256 = "0ni2lgrfpx8vx9mmm43gsn1kw4jj8j52yq4ylfam89q6mhpxcnix";
-      name = "libgravatar-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/libgravatar-21.12.0.tar.xz";
+      sha256 = "1c27azlwp0yfsf4nv33n2nsrb7w9m2shqp9pv09i8hqfv7prm5sq";
+      name = "libgravatar-21.12.0.tar.xz";
     };
   };
   libkcddb = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/libkcddb-21.08.3.tar.xz";
-      sha256 = "00wivb6viw5w1ylcsx3m9ps7j00z7fzjh2s7nap95xnprraihcmv";
-      name = "libkcddb-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/libkcddb-21.12.0.tar.xz";
+      sha256 = "0qipr0399hw5vdlgyw6kp4msi4jlk4z4m8rhgsihp6qdmszhav6d";
+      name = "libkcddb-21.12.0.tar.xz";
     };
   };
   libkcompactdisc = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/libkcompactdisc-21.08.3.tar.xz";
-      sha256 = "1rsmibz9mamqvhppnxwn2db6jmsipvjx2kj8ikpsp9bx8h421n2g";
-      name = "libkcompactdisc-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/libkcompactdisc-21.12.0.tar.xz";
+      sha256 = "03qb8w03qhh5b9y0cm8jx8amfiv7j2ijjjd8wqxih66rda8sj11m";
+      name = "libkcompactdisc-21.12.0.tar.xz";
     };
   };
   libkdcraw = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/libkdcraw-21.08.3.tar.xz";
-      sha256 = "0gm8nfc6ayg1ipba4yvhy5nzfrpdwx6l434bg9y7yqvbm3lm1g86";
-      name = "libkdcraw-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/libkdcraw-21.12.0.tar.xz";
+      sha256 = "0czwigf1w1k9643flfh4ri1xlbn9k9gkfma3x1qkqa14g4dpm2if";
+      name = "libkdcraw-21.12.0.tar.xz";
     };
   };
   libkdegames = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/libkdegames-21.08.3.tar.xz";
-      sha256 = "0ysc5g6ap207c5yq3ryiaxmvkrh6wzqzdgccdffs0lncd24g641a";
-      name = "libkdegames-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/libkdegames-21.12.0.tar.xz";
+      sha256 = "09llvfssc2msidjlh3mf188ayfv0vm0c5bicnxd3m2lfwr7mw6w2";
+      name = "libkdegames-21.12.0.tar.xz";
     };
   };
   libkdepim = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/libkdepim-21.08.3.tar.xz";
-      sha256 = "1776fjzd88kj2crr8lcrwxmkvjsxxyll2gy21wlbmqy4h04bi130";
-      name = "libkdepim-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/libkdepim-21.12.0.tar.xz";
+      sha256 = "1kd67k7n4rkdblfzx8xl671dyjhxrzrw1cfi13s83538sa0hfcyi";
+      name = "libkdepim-21.12.0.tar.xz";
     };
   };
   libkeduvocdocument = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/libkeduvocdocument-21.08.3.tar.xz";
-      sha256 = "1qyi5y5v1zp3qid58sdfpcp83rkmz2s1hsvir4f9j5ngir0czcq1";
-      name = "libkeduvocdocument-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/libkeduvocdocument-21.12.0.tar.xz";
+      sha256 = "1gyv8524xvlgx7h0sh79aziwj9169f8wm0d309839hacwxmz7llb";
+      name = "libkeduvocdocument-21.12.0.tar.xz";
     };
   };
   libkexiv2 = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/libkexiv2-21.08.3.tar.xz";
-      sha256 = "15d8d3mzp0yhj6lm5799mfncqkxnw0cvfxcgpkz0lf9askv2cq8n";
-      name = "libkexiv2-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/libkexiv2-21.12.0.tar.xz";
+      sha256 = "1mpy194pfgxdbhyb8h30f04r8pv90896ppdnyaypsa5dvc0ajr4h";
+      name = "libkexiv2-21.12.0.tar.xz";
     };
   };
   libkgapi = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/libkgapi-21.08.3.tar.xz";
-      sha256 = "101yb495k5bxq402qdvyqd0sdhzc5z3r8szymfmrlilgk35wy9rs";
-      name = "libkgapi-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/libkgapi-21.12.0.tar.xz";
+      sha256 = "11f5kn6hc3whhpppgh78m7a47sdhxi13498p447cbnpfgwzjgxw9";
+      name = "libkgapi-21.12.0.tar.xz";
     };
   };
   libkipi = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/libkipi-21.08.3.tar.xz";
-      sha256 = "12qjvd7ynab33qid2d4j06z8fbfziaxdlrpq0h3ywd2drks0ykvf";
-      name = "libkipi-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/libkipi-21.12.0.tar.xz";
+      sha256 = "1pkf14y97xwl4r9fjv4b8czb0ygwlqn37616gwmvd5zr8c0kkmpc";
+      name = "libkipi-21.12.0.tar.xz";
     };
   };
   libkleo = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/libkleo-21.08.3.tar.xz";
-      sha256 = "0ivyqmc1hv1cljbpxr5xrzyf9z96dbaa48ak54cxxpanphpialrl";
-      name = "libkleo-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/libkleo-21.12.0.tar.xz";
+      sha256 = "1mm5ypnq2847fijp986j9si504mfszlvap1zlama2mkcgfiyjbap";
+      name = "libkleo-21.12.0.tar.xz";
     };
   };
   libkmahjongg = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/libkmahjongg-21.08.3.tar.xz";
-      sha256 = "0rh61491dl90rrlmqmqjdj7vlrjhayhkk5i50zb6jfvrysq9axkc";
-      name = "libkmahjongg-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/libkmahjongg-21.12.0.tar.xz";
+      sha256 = "03v2jszin48mbxd7h8gh76az4j5ns3g9cy832rii6dbwwilakgad";
+      name = "libkmahjongg-21.12.0.tar.xz";
     };
   };
   libkomparediff2 = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/libkomparediff2-21.08.3.tar.xz";
-      sha256 = "0a3980kiigc5kqkyxf4glcxvgr3f4rnc43gcx9vj9mk2qhfcsiqy";
-      name = "libkomparediff2-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/libkomparediff2-21.12.0.tar.xz";
+      sha256 = "1kbj86s7lf3bvjihgmhgrh08b2dcivs5h1amx3lc5qw7nvfqa38d";
+      name = "libkomparediff2-21.12.0.tar.xz";
     };
   };
   libksane = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/libksane-21.08.3.tar.xz";
-      sha256 = "086zrddpammihia888nrx2p18if1fyzvhs3igkxq9q2p551vk9fy";
-      name = "libksane-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/libksane-21.12.0.tar.xz";
+      sha256 = "0r8npxzi8dij4lvi27ycnz51y9cax5agsjcf2rg1zafg4gq3zgcl";
+      name = "libksane-21.12.0.tar.xz";
     };
   };
   libksieve = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/libksieve-21.08.3.tar.xz";
-      sha256 = "1snli2yvq2n567vgi1xs6iiqgn4zp31cid17aqpxllyw8a3xa0l7";
-      name = "libksieve-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/libksieve-21.12.0.tar.xz";
+      sha256 = "0wda6waxqhsffhn7akxbmklq7i6rp57kj13ghm3lyfwccsxf38z0";
+      name = "libksieve-21.12.0.tar.xz";
     };
   };
   libktorrent = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/libktorrent-21.08.3.tar.xz";
-      sha256 = "1zjnnxhd0mv9if61rr28h35wban7sif61dmgc3wsixp4dz1xfrm6";
-      name = "libktorrent-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/libktorrent-21.12.0.tar.xz";
+      sha256 = "0lzb3vnw500bqll7nvz5r5cwbh2fh11c1a845rarnsyrfsvbdh2y";
+      name = "libktorrent-21.12.0.tar.xz";
     };
   };
   lokalize = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/lokalize-21.08.3.tar.xz";
-      sha256 = "0m084mayd9b0iwm4j5cckw22ix1mc4zcwxjfk0cdapm3g2ls1rzd";
-      name = "lokalize-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/lokalize-21.12.0.tar.xz";
+      sha256 = "11rw0g63zcdlqs5649yn1rx327l19ia0pf3yag2g42r5ssdv4znf";
+      name = "lokalize-21.12.0.tar.xz";
     };
   };
   lskat = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/lskat-21.08.3.tar.xz";
-      sha256 = "09l209fz82ibsxzg2f53lhbcsaq6zpwllpyklj2988xzn7h49cqg";
-      name = "lskat-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/lskat-21.12.0.tar.xz";
+      sha256 = "0glg9ql6kldy0cyypsn7z01dv7l5i3h26l8b7andzp8i5345p9yp";
+      name = "lskat-21.12.0.tar.xz";
     };
   };
   mailcommon = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/mailcommon-21.08.3.tar.xz";
-      sha256 = "0vpbp88pl462d1j9f3ww22zybrmz92zx3b5cj4gsl7gmb7ijwb19";
-      name = "mailcommon-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/mailcommon-21.12.0.tar.xz";
+      sha256 = "16i0vzg94ni5hr8ax1r8cc1vfb9s8q47fbk65r7z4svqqwvxhpvw";
+      name = "mailcommon-21.12.0.tar.xz";
     };
   };
   mailimporter = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/mailimporter-21.08.3.tar.xz";
-      sha256 = "00vm445i5c7vjfmbfgzdj3xildqbnlzpi5i16w4c47wyg5kvpj2c";
-      name = "mailimporter-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/mailimporter-21.12.0.tar.xz";
+      sha256 = "0ns2cwq32aymljn9mbkcr5ac8qgkbblcc75b5dbm42cvyjb3a8iz";
+      name = "mailimporter-21.12.0.tar.xz";
     };
   };
   marble = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/marble-21.08.3.tar.xz";
-      sha256 = "0bapnmm2x0ihms5gd12brqb2yx7g5h4c8ky70l1czd4a8d95ha0a";
-      name = "marble-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/marble-21.12.0.tar.xz";
+      sha256 = "1c01v6k8l04vlnm9pslfpmmk2jb3h0wk29n9zcgjigc00klfjrmw";
+      name = "marble-21.12.0.tar.xz";
     };
   };
   markdownpart = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/markdownpart-21.08.3.tar.xz";
-      sha256 = "1cqkwvs1ssg203fkaiibcmqjm2viaq3iq880cjlkx9irh0bv9q9h";
-      name = "markdownpart-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/markdownpart-21.12.0.tar.xz";
+      sha256 = "1ndnr2hlp1njwxf2pcjws3vxl3s3x1qfxhv014msnhll6k1l3lyz";
+      name = "markdownpart-21.12.0.tar.xz";
     };
   };
   mbox-importer = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/mbox-importer-21.08.3.tar.xz";
-      sha256 = "19i5a1rax3xfkcz0hv0vqq9iavggqrliwpqsqnx6zvwjzgjrvsif";
-      name = "mbox-importer-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/mbox-importer-21.12.0.tar.xz";
+      sha256 = "0r9z09yaifj45q1igyh890kzpdazy72rc6q78lisgnslllc22fv1";
+      name = "mbox-importer-21.12.0.tar.xz";
     };
   };
   messagelib = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/messagelib-21.08.3.tar.xz";
-      sha256 = "0q9mligkkvbwb92ghv5g66rkn0vpbw2xfbgsdnn4jajjxsixipg7";
-      name = "messagelib-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/messagelib-21.12.0.tar.xz";
+      sha256 = "1r2p4inav6shbjlnfkxnkpsak58cflzj0ra2c2930gszhyfyc6b1";
+      name = "messagelib-21.12.0.tar.xz";
     };
   };
   minuet = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/minuet-21.08.3.tar.xz";
-      sha256 = "1g2chj23dw9p2lgf094mn9cd26wnhwgslwdwzwax2a23p42j7kb8";
-      name = "minuet-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/minuet-21.12.0.tar.xz";
+      sha256 = "0rglwxfbmh4hl9kf8h8krx42jamzv9i6k5i99gwlaz63rsylh4w6";
+      name = "minuet-21.12.0.tar.xz";
     };
   };
   okular = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/okular-21.08.3.tar.xz";
-      sha256 = "00ghh7z39904d5x5sa39adkavkhl09hzib6fpwjn14f6sz925f9r";
-      name = "okular-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/okular-21.12.0.tar.xz";
+      sha256 = "08vybplc0bhf9bh9jbwddh9x98f3jdrha2wd1yp53nbcz3jqgm68";
+      name = "okular-21.12.0.tar.xz";
     };
   };
   palapeli = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/palapeli-21.08.3.tar.xz";
-      sha256 = "084nvavgzkmrv77rsg2zf2vykfjwwsvn2i2y24jsh63hs7i5xqhb";
-      name = "palapeli-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/palapeli-21.12.0.tar.xz";
+      sha256 = "1sypyhidjn2cv1nly54r85a4v331z0mazg19bby1lfn5rn2sg34r";
+      name = "palapeli-21.12.0.tar.xz";
     };
   };
   parley = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/parley-21.08.3.tar.xz";
-      sha256 = "0wyv5qx4g0941kg870qb9rc9npdw39ggvndjk7ywaad9nkvdj73g";
-      name = "parley-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/parley-21.12.0.tar.xz";
+      sha256 = "0y5lby0jqlsj7cf62hwka1l449na7f1nazq63a6vxng9wf22fl4x";
+      name = "parley-21.12.0.tar.xz";
     };
   };
   partitionmanager = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/partitionmanager-21.08.3.tar.xz";
-      sha256 = "0im782ggbnkyzcczxx3mv5qi4nlqmcyhwkbf0mzh8cz56qkfvzhr";
-      name = "partitionmanager-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/partitionmanager-21.12.0.tar.xz";
+      sha256 = "0g17y1c4fj6c9hr1xac3qp4yllrr666nh3mxhlgl9qkxa9lyh7jp";
+      name = "partitionmanager-21.12.0.tar.xz";
     };
   };
   picmi = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/picmi-21.08.3.tar.xz";
-      sha256 = "0h208sy2r2jzy7a6rmla349d8lydvfvdb2vahdfxrqql0m15s07s";
-      name = "picmi-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/picmi-21.12.0.tar.xz";
+      sha256 = "1l91i7mmj60zawkpv2s14l8qajk84gcyxm8x4zzlx7pf9pizbyps";
+      name = "picmi-21.12.0.tar.xz";
     };
   };
   pim-data-exporter = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/pim-data-exporter-21.08.3.tar.xz";
-      sha256 = "0l6gkwh6pxp6px50n8i0374by3n7nv0gjkb2qy0s4hsvfz8nwlwk";
-      name = "pim-data-exporter-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/pim-data-exporter-21.12.0.tar.xz";
+      sha256 = "19qssd032x4ma12i8hmd42s7904n8x5z8dydwccc32ma29s5hw0p";
+      name = "pim-data-exporter-21.12.0.tar.xz";
     };
   };
   pim-sieve-editor = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/pim-sieve-editor-21.08.3.tar.xz";
-      sha256 = "1z01c0wsxzl69kr0cxfq23l56dgi0xfjak5qbpfd9p4b2kr095s7";
-      name = "pim-sieve-editor-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/pim-sieve-editor-21.12.0.tar.xz";
+      sha256 = "1fpkf5lksy8irzs3bfv1b6g53hs2s575pi02rnps33cpr6lxn8q7";
+      name = "pim-sieve-editor-21.12.0.tar.xz";
     };
   };
   pimcommon = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/pimcommon-21.08.3.tar.xz";
-      sha256 = "1hj49spfjwqrwh7h86kw7ydcx13rknagj54mhcn60kawz639533l";
-      name = "pimcommon-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/pimcommon-21.12.0.tar.xz";
+      sha256 = "02xpw6n1k030hqivqw10xvq6s279712wyy58snn3x2i2a1bzyjaq";
+      name = "pimcommon-21.12.0.tar.xz";
     };
   };
   poxml = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/poxml-21.08.3.tar.xz";
-      sha256 = "0yrn2dbdhm3ap55w401ma8z64b7pgs57lzgakzkdpcf69bww9xkw";
-      name = "poxml-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/poxml-21.12.0.tar.xz";
+      sha256 = "0hvwhg4z5f6m9vr0hpvvnpyxhy6zp8yprbh3qkw1216nfpfaw0md";
+      name = "poxml-21.12.0.tar.xz";
     };
   };
   print-manager = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/print-manager-21.08.3.tar.xz";
-      sha256 = "0dmd1wp6c5f58fssnyc977d29gqcr6pmzplvq5pj97xq0i8fq15z";
-      name = "print-manager-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/print-manager-21.12.0.tar.xz";
+      sha256 = "10glinq92m08kwsgk9hijangz7grbj7l2vd7p3rxivrbk8q6jms5";
+      name = "print-manager-21.12.0.tar.xz";
     };
   };
   rocs = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/rocs-21.08.3.tar.xz";
-      sha256 = "0mdn58wbv5rhljp7ai0282h5z5j7m9yly6q9s6c8vm5kaxhbwg58";
-      name = "rocs-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/rocs-21.12.0.tar.xz";
+      sha256 = "1h94da4qqs1qcnc5rz4lk5vwfwwhpb8ww7bpj40fg0fpdd3w5anw";
+      name = "rocs-21.12.0.tar.xz";
     };
   };
   signon-kwallet-extension = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/signon-kwallet-extension-21.08.3.tar.xz";
-      sha256 = "1m3wyyndlwk4snjzz45j377hz5plx01bl69y39aw1y53rsx0baln";
-      name = "signon-kwallet-extension-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/signon-kwallet-extension-21.12.0.tar.xz";
+      sha256 = "0a8amssfwxsb9acjaw7lw1m812yma1lw2c21x5if35ivgwagnjdx";
+      name = "signon-kwallet-extension-21.12.0.tar.xz";
     };
   };
   skanlite = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/skanlite-21.08.3.tar.xz";
-      sha256 = "1llvq89vdsypbak8lmhnyfr61s72c4lra1yypxmgw0hwqvwqzyjk";
-      name = "skanlite-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/skanlite-21.12.0.tar.xz";
+      sha256 = "0q1sqf2h9y4q0bmy88pnmm0dxlnbwpq7h7plkv9hbkka8k6yk9w1";
+      name = "skanlite-21.12.0.tar.xz";
     };
   };
   spectacle = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/spectacle-21.08.3.tar.xz";
-      sha256 = "0l1p565y2d04fw9mz1ns11bwc9z5apkjd4llgdihz4qwq5j0ri5y";
-      name = "spectacle-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/spectacle-21.12.0.tar.xz";
+      sha256 = "0s196rjphwhsafwqb3vdl3flxkan6a2y9250v2v9m5dkphll13sn";
+      name = "spectacle-21.12.0.tar.xz";
     };
   };
   step = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/step-21.08.3.tar.xz";
-      sha256 = "1pznz6hxj1h0vcsidsyjm9zgzx4pla47yckykc3mxb9biraalhi5";
-      name = "step-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/step-21.12.0.tar.xz";
+      sha256 = "0cjqxyazlrq88nhfz7ha4p9lc06iimpjc439w37qq3030kx3257r";
+      name = "step-21.12.0.tar.xz";
     };
   };
   svgpart = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/svgpart-21.08.3.tar.xz";
-      sha256 = "1zpzmhgvxlyalq4nn446k7plz5fw2pl4r7zv7q3hjrzla1wgcqx8";
-      name = "svgpart-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/svgpart-21.12.0.tar.xz";
+      sha256 = "1qqvkrw3frncs9jni99w0vrsjrzjw9wgdg35qzp2svfaxmyczin1";
+      name = "svgpart-21.12.0.tar.xz";
     };
   };
   sweeper = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/sweeper-21.08.3.tar.xz";
-      sha256 = "0sa8dfx26m9ry3pvqryx41w51l76r8l2xh16b783ixqln7x08z5j";
-      name = "sweeper-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/sweeper-21.12.0.tar.xz";
+      sha256 = "17rkp2dwnyyh4ywx7xhnswvbh3mwgnd6y9ylrw37q5r3m35ym89i";
+      name = "sweeper-21.12.0.tar.xz";
     };
   };
   umbrello = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/umbrello-21.08.3.tar.xz";
-      sha256 = "025qds7nahm6kpi94j4blk8xpv6vh2alrbgwby20vvn3h678z26x";
-      name = "umbrello-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/umbrello-21.12.0.tar.xz";
+      sha256 = "0s6ld4da8hj48xqzk5fwrw23wmyh05d8540m2w1pzp4wiba7d32f";
+      name = "umbrello-21.12.0.tar.xz";
     };
   };
   yakuake = {
-    version = "21.08.3";
+    version = "21.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/release-service/21.12.0/src/yakuake-21.12.0.tar.xz";
+      sha256 = "1wrmzjn317fdv3lp8sgdhzvgxf6n0pdnsbhidh5qw33fr53n8zc1";
+      name = "yakuake-21.12.0.tar.xz";
+    };
+  };
+  zanshin = {
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/yakuake-21.08.3.tar.xz";
-      sha256 = "1za4vhnr495dadrarqqanavmyn1mmzm3y8jx05cpbjyqmlm353dk";
-      name = "yakuake-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/zanshin-21.12.0.tar.xz";
+      sha256 = "07bs2zh12jbwjxrjq2qz6fmfq0vpr5qiz024gqxvxaxvskpbiicp";
+      name = "zanshin-21.12.0.tar.xz";
     };
   };
   zeroconf-ioslave = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/zeroconf-ioslave-21.08.3.tar.xz";
-      sha256 = "1dkig267znwyw03fq6mpdb5g1xnkhr0brnvxskjm44a4d5ipbv2g";
-      name = "zeroconf-ioslave-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/zeroconf-ioslave-21.12.0.tar.xz";
+      sha256 = "1s1vrfifz11z4bqrz8860rkd5fxa1qqvaxaka67gs2yrb788m0ii";
+      name = "zeroconf-ioslave-21.12.0.tar.xz";
     };
   };
 }
diff --git a/pkgs/applications/misc/anytype/default.nix b/pkgs/applications/misc/anytype/default.nix
index f1a46634cb4..9ffc02b9c69 100644
--- a/pkgs/applications/misc/anytype/default.nix
+++ b/pkgs/applications/misc/anytype/default.nix
@@ -2,13 +2,13 @@
 
 let
   pname = "anytype";
-  version = "0.21.9";
+  version = "0.22.3";
   name = "Anytype-${version}";
   nameExecutable = pname;
   src = fetchurl {
     url = "https://at9412003.fra1.digitaloceanspaces.com/Anytype-${version}.AppImage";
     name = "Anytype-${version}.AppImage";
-    sha256 = "sha256-By9rNvCY4voiePvYf47DMwPogUPTd5JdaINEE0ei1Is=";
+    sha256 = "sha256-28qgTWCQrFCREGNfj8bePocEpB+0AZfrKNO4akn7/5I=";
   };
   appimageContents = appimageTools.extractType2 { inherit name src; };
 in
diff --git a/pkgs/applications/misc/appeditor/default.nix b/pkgs/applications/misc/appeditor/default.nix
index 0643e33885d..cf1303422d2 100644
--- a/pkgs/applications/misc/appeditor/default.nix
+++ b/pkgs/applications/misc/appeditor/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "appeditor";
-  version = "1.1.1";
+  version = "1.1.3";
 
   src = fetchFromGitHub {
     owner = "donadigo";
     repo = "appeditor";
     rev = version;
-    sha256 = "14ycw1b6v2sa4vljpnx2lpx4w89mparsxk6s8w3yx4dqjglcg5bp";
+    sha256 = "sha256-0zutz1nnThyF7h44cDxjE53hhAJfJf6DTs9p4HflXr8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/archivy/default.nix b/pkgs/applications/misc/archivy/default.nix
index fd58ea48e55..6da5d46f881 100644
--- a/pkgs/applications/misc/archivy/default.nix
+++ b/pkgs/applications/misc/archivy/default.nix
@@ -53,11 +53,11 @@ with py.pkgs;
 
 buildPythonApplication rec {
   pname = "archivy";
-  version = "1.4.0";
+  version = "1.6.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-wQuR7cltDLr2u8BQ851MSjKmeLW8mQ/3bdEF5c9nxL0=";
+    sha256 = "sha256-nwpH3V6hkPC8G3df+0hTZqvIbvT1Z796uOI/iKnXS1w=";
   };
 
   # Relax some dependencies
diff --git a/pkgs/applications/misc/bemenu/default.nix b/pkgs/applications/misc/bemenu/default.nix
index d230606a3c3..c4c01323594 100644
--- a/pkgs/applications/misc/bemenu/default.nix
+++ b/pkgs/applications/misc/bemenu/default.nix
@@ -11,24 +11,15 @@ assert x11Support -> xorg != null;
 
 stdenv.mkDerivation rec {
   pname = "bemenu";
-  version = "0.6.3";
+  version = "0.6.4";
 
   src = fetchFromGitHub {
     owner = "Cloudef";
     repo = pname;
     rev = version;
-    sha256 = "sha256-U4IMfDvQ0rfEJhE3Uext2c/Cs0mjy1tw+k8uk441Ag8=";
+    sha256 = "5xRM3NQfomG0vJheNEBLy3OaS6UEwabNKYa96u2md6M=";
   };
 
-  patches = [
-    # Pull upstream fix for build against ncurses-6.3
-    (fetchpatch {
-      name = "ncurses-6.3.patch";
-      url = "https://github.com/Cloudef/bemenu/commit/d31164db756989579468946aba62969e42c7ed28.patch";
-      sha256 = "sha256-oyndQI7SaR8cK0IO5wIIxMpmakhfUzwUqLIKRbPkEdw=";
-    })
-  ];
-
   nativeBuildInputs = [ pkg-config pcre ];
 
   makeFlags = ["PREFIX=$(out)"];
diff --git a/pkgs/applications/misc/binance/default.nix b/pkgs/applications/misc/binance/default.nix
index 84a3b266ac6..bbfe8be6f5c 100644
--- a/pkgs/applications/misc/binance/default.nix
+++ b/pkgs/applications/misc/binance/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "binance";
-  version = "1.27.0";
+  version = "1.28.0";
 
   src = fetchurl {
     url = "https://github.com/binance/desktop/releases/download/v${version}/${pname}-${version}-amd64-linux.deb";
-    sha256 = "sha256-klOzCYI2vSkSV7O9WlKny2wt+etl1K8zFjGlUNIOZdI=";
+    sha256 = "sha256-qJuD+O4M9U8P6JhFUFc92yllX1vgZZvTlTd0bph3Vo4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/clifm/default.nix b/pkgs/applications/misc/clifm/default.nix
index 7fc130700aa..20c7497e869 100644
--- a/pkgs/applications/misc/clifm/default.nix
+++ b/pkgs/applications/misc/clifm/default.nix
@@ -2,33 +2,30 @@
 
 stdenv.mkDerivation rec {
   pname = "clifm";
-  version = "1.1";
+  version = "1.3";
 
   src = fetchFromGitHub {
     owner = "leo-arch";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0mf9lrq0l532vyf4ycsikrw8imn4gkavyn3cr42nhjsr1drygrp8";
+    sha256 = "sha256-nYBGM3gUj1NGrxNLt0xpNl00cgS2Ecs3kYjZapiJT48=";
   };
 
   buildInputs = [ libcap acl file readline ];
 
   makeFlags = [
-    "INSTALLPREFIX=${placeholder "out"}/bin"
-    "DESKTOPPREFIX=${placeholder "out"}/share"
+    "DESTDIR=${placeholder "out"}"
+    "DATADIR=/share"
+    "PREFIX=/"
   ];
 
-  preInstall = ''
-    mkdir -p $out/bin $out/share
-  '';
-
   enableParallelBuilding = true;
 
   meta = with lib; {
     homepage = "https://github.com/leo-arch/clifm";
     description = "CliFM is a CLI-based, shell-like, and non-curses terminal file manager written in C: simple, fast, extensible, and lightweight as hell";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ vonfry ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/misc/cobalt/default.nix b/pkgs/applications/misc/cobalt/default.nix
index 9b263e6f0d4..84b8fe1d17f 100644
--- a/pkgs/applications/misc/cobalt/default.nix
+++ b/pkgs/applications/misc/cobalt/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cobalt";
-  version = "0.17.4";
+  version = "0.17.5";
 
   src = fetchFromGitHub {
     owner = "cobalt-org";
     repo = "cobalt.rs";
     rev = "v${version}";
-    sha256 = "sha256-uZcs3VkmpasFwgB7m1spTHi2W86tJt2kWlRTXAotvvo=";
+    sha256 = "sha256-FCt/4JCL7VmD26HH1XLjJeUP8m7uexdPekD414CxGDI=";
   };
 
-  cargoSha256 = "sha256-U2TVg2/SIOxaWs4EehTpcu47uDO/EA2dJK56k3I6F+0=";
+  cargoSha256 = "sha256-S2BVulU2bsgJpxKEt8u2ddNav8/1fd+s7wTVkSeHL4o=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
 
diff --git a/pkgs/applications/misc/cointop/default.nix b/pkgs/applications/misc/cointop/default.nix
index 623c6ce4f1b..209e9f9e3be 100644
--- a/pkgs/applications/misc/cointop/default.nix
+++ b/pkgs/applications/misc/cointop/default.nix
@@ -1,19 +1,19 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGo117Module, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGo117Module rec {
   pname = "cointop";
-  version = "1.6.8";
+  version = "1.6.10";
 
   src = fetchFromGitHub {
     owner = "miguelmota";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-uENfTj+pJjX4t+yrd7zrn3LHRbJJSZFCN1N6Ce47wcE=";
+    sha256 = "sha256-NAw1uoBL/FnNLJ86L9aBCOY65aJn1DDGK0Cd0IO2kr0=";
   };
 
-  goPackagePath = "github.com/miguelmota/cointop";
+  vendorSha256 = null;
 
-  ldflags = [ "-s" "-w" "-X ${goPackagePath}/cointop.version=${version}" ];
+  ldflags = [ "-s" "-w" ];
 
   meta = with lib; {
     description = "The fastest and most interactive terminal based UI application for tracking cryptocurrencies";
diff --git a/pkgs/applications/misc/cura/default.nix b/pkgs/applications/misc/cura/default.nix
index 32b9085b3de..521da8e2f8e 100644
--- a/pkgs/applications/misc/cura/default.nix
+++ b/pkgs/applications/misc/cura/default.nix
@@ -3,13 +3,13 @@
 
 mkDerivation rec {
   pname = "cura";
-  version = "4.10.0";
+  version = "4.12.1";
 
   src = fetchFromGitHub {
     owner = "Ultimaker";
     repo = "Cura";
     rev = version;
-    sha256 = "0v65xg31rw4kc7f98k8zz0kmhrp9m55k8ahblha9r1vr4krcf30z";
+    sha256 = "sha256-QvX9o1nrYmY6zzPcxl+xD6JTMdphzT/is1SMYrISu4o=";
   };
 
   materials = fetchFromGitHub {
diff --git a/pkgs/applications/misc/cura/stable.nix b/pkgs/applications/misc/cura/stable.nix
index 5383cbe9a23..a2ec91193ea 100644
--- a/pkgs/applications/misc/cura/stable.nix
+++ b/pkgs/applications/misc/cura/stable.nix
@@ -1,15 +1,14 @@
-{ lib, stdenv, python27Packages, curaengine, makeDesktopItem, fetchurl }:
-let
-  py = python27Packages;
-  version = "15.04";
-in
+{ lib, stdenv, python27Packages, curaengine, makeDesktopItem, fetchFromGitHub }:
+
 stdenv.mkDerivation rec {
   pname = "cura";
-  inherit version;
+  version = "15.06.03";
 
-  src = fetchurl {
-    url = "https://github.com/daid/Cura/archive/${version}.tar.gz";
-    sha256 = "0xbjvzhp8wzq9lnpmcg1fjf7j5h39bj5463sd5c8jzdjl96izizl";
+  src = fetchFromGitHub {
+    owner = "daid";
+    repo = "Cura";
+    rev = version;
+    sha256 = "sha256-o1cAi4Wi19WOijlRB9iYwNEpSNnmywUj5Bth8rRhqFA=";
   };
 
   desktopItem = makeDesktopItem {
@@ -22,13 +21,13 @@ stdenv.mkDerivation rec {
     categories = "GNOME;GTK;Utility;";
   };
 
-  python_deps = with py; [ pyopengl pyserial numpy wxPython30 power setuptools ];
+  python_deps = with python27Packages; [ pyopengl pyserial numpy wxPython30 power setuptools ];
 
   pythonPath = python_deps;
 
   propagatedBuildInputs = python_deps;
 
-  buildInputs = [ curaengine py.wrapPython ];
+  buildInputs = [ curaengine python27Packages.wrapPython ];
 
   configurePhase = "";
   buildPhase = "";
diff --git a/pkgs/applications/misc/curaengine/default.nix b/pkgs/applications/misc/curaengine/default.nix
index d0dfde5b382..c6af30b7855 100644
--- a/pkgs/applications/misc/curaengine/default.nix
+++ b/pkgs/applications/misc/curaengine/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "curaengine";
-  version = "4.10.0";
+  version = "4.12.1";
 
   src = fetchFromGitHub {
     owner = "Ultimaker";
     repo = "CuraEngine";
     rev = version;
-    sha256 = "sha256-t5i6s0KKcaoMqzDxZ6JL1NyKP33uxWdmyziK3xh8q88=";
+    sha256 = "sha256-+sjysxOaNLq6p3yCoB1qKosBO5Cg2/1o7xmUtZ15wkE=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/misc/dbeaver/default.nix b/pkgs/applications/misc/dbeaver/default.nix
index 156cc7188dc..653ac79267e 100644
--- a/pkgs/applications/misc/dbeaver/default.nix
+++ b/pkgs/applications/misc/dbeaver/default.nix
@@ -20,13 +20,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dbeaver";
-  version = "21.3.0"; # When updating also update fetchedMavenDeps.sha256
+  version = "21.3.1"; # When updating also update fetchedMavenDeps.sha256
 
   src = fetchFromGitHub {
     owner = "dbeaver";
     repo = "dbeaver";
     rev = version;
-    sha256 = "iKxnuMm5hpreP706N+XxaBrDVVwVFRWKNmiCyXkOUCQ=";
+    sha256 = "ePy3uS+LpyDzweLocSk3O/G2zFPISKbMbci9fdELrpE=";
   };
 
   fetchedMavenDeps = stdenv.mkDerivation {
diff --git a/pkgs/applications/misc/dunst/default.nix b/pkgs/applications/misc/dunst/default.nix
index 4f0f98ba3af..4f1d68774de 100644
--- a/pkgs/applications/misc/dunst/default.nix
+++ b/pkgs/applications/misc/dunst/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dunst";
-  version = "1.7.2";
+  version = "1.7.3";
 
   src = fetchFromGitHub {
     owner = "dunst-project";
     repo = "dunst";
     rev = "v${version}";
-    sha256 = "LGLo+K0FxQQ3hrPYwvjApcOnNliZ5j0T6yEtcxZAFOU=";
+    sha256 = "sha256-8s8g1J8vEogCp29tSwX5eqYTDf1dLoyBznnwAlCMQOU=";
   };
 
   nativeBuildInputs = [ perl pkg-config which systemd makeWrapper ];
diff --git a/pkgs/applications/misc/golden-cheetah/default.nix b/pkgs/applications/misc/golden-cheetah/default.nix
index 53c0a96060e..4f411f105ce 100644
--- a/pkgs/applications/misc/golden-cheetah/default.nix
+++ b/pkgs/applications/misc/golden-cheetah/default.nix
@@ -16,13 +16,13 @@ let
   };
 in mkDerivation rec {
   pname = "golden-cheetah";
-  version = "3.6-DEV2107";
+  version = "3.6-DEV2111";
 
   src = fetchFromGitHub {
     owner = "GoldenCheetah";
     repo = "GoldenCheetah";
     rev = "v${version}";
-    sha256 = "1d54x3pv27w1ys2f5l7gnfhyijhgcgdjnq1c1mj7hvg35dmh054d";
+    sha256 = "17sk89szvaq31bcv6rgfn1bbw132k7w8zlalfb3ayflavdxbk6sa";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/misc/gremlin-console/default.nix b/pkgs/applications/misc/gremlin-console/default.nix
index 3204a4a0e85..69024e581e0 100644
--- a/pkgs/applications/misc/gremlin-console/default.nix
+++ b/pkgs/applications/misc/gremlin-console/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "gremlin-console";
-  version = "3.5.0";
+  version = "3.5.1";
   src = fetchzip {
     url = "https://downloads.apache.org/tinkerpop/${version}/apache-tinkerpop-gremlin-console-${version}-bin.zip";
-    sha256 = "sha256-aVhDbOYhgYaWjttGjJvBKbov7OGWh2/llBTePFPGXDM=";
+    sha256 = "sha256-66krBK5mSMT0scCgMmiaigT/9nmYfItxe1OTzSbX+kE=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/misc/grip/default.nix b/pkgs/applications/misc/grip/default.nix
index 6a6666763c1..478a4fe74d1 100644
--- a/pkgs/applications/misc/grip/default.nix
+++ b/pkgs/applications/misc/grip/default.nix
@@ -16,11 +16,11 @@
 
 stdenv.mkDerivation rec {
   pname = "grip";
-  version = "4.2.2";
+  version = "4.2.3";
 
   src = fetchurl {
     url = "mirror://sourceforge/grip/grip-${version}.tar.gz";
-    sha256 = "sha256-nXtGgJeNYM8lyllNi9UdmsnVcHOCXfryWmKGZ9QFTHE=";
+    sha256 = "sha256-5Qgsf4+xs0ckhYJk2csKulXC3nWaLRAsQ15qaTkKkjw=";
   };
 
   nativeBuildInputs = [ pkg-config libtool ];
diff --git a/pkgs/applications/misc/heimer/default.nix b/pkgs/applications/misc/heimer/default.nix
index 0aff0c6bbd1..dba3ef4ee8a 100644
--- a/pkgs/applications/misc/heimer/default.nix
+++ b/pkgs/applications/misc/heimer/default.nix
@@ -2,13 +2,13 @@
 
 mkDerivation rec {
   pname = "heimer";
-  version = "2.8.0";
+  version = "3.0.0";
 
   src = fetchFromGitHub {
     owner = "juzzlin";
     repo = pname;
     rev = version;
-    sha256 = "sha256-838uH8nTxl3FJvtYrLDmS6tYYRdNnFzftZ5RZE8tVpE=";
+    sha256 = "sha256-Q1a+sGZTVUjViakBT3E7+AgqMSldAnp7UJcsSS6KZXs=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/misc/index-fm/default.nix b/pkgs/applications/misc/index-fm/default.nix
index 3165b3d34d6..5321c49b75c 100644
--- a/pkgs/applications/misc/index-fm/default.nix
+++ b/pkgs/applications/misc/index-fm/default.nix
@@ -16,7 +16,7 @@
 }:
 
 mkDerivation rec {
-  pname = "index";
+  pname = "index-fm";
   version = "2.1.0";
 
   src = fetchFromGitLab {
diff --git a/pkgs/applications/misc/logseq/default.nix b/pkgs/applications/misc/logseq/default.nix
index 35e3a8eeb63..741a17be9ee 100644
--- a/pkgs/applications/misc/logseq/default.nix
+++ b/pkgs/applications/misc/logseq/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "logseq";
-  version = "0.5.3";
+  version = "0.5.4";
 
   src = fetchurl {
     url = "https://github.com/logseq/logseq/releases/download/${version}/logseq-linux-x64-${version}.AppImage";
-    sha256 = "xHjT2QbZBfPc0i+tsY/hXo+oY8djJiMnM7GraHVvUHs=";
+    sha256 = "PGrx2JBYmp5vQ8jLpOfiT1T1+SNeRt0W5oHUjHNKuBE=";
     name = "${pname}-${version}.AppImage";
   };
 
diff --git a/pkgs/applications/misc/masterpdfeditor/default.nix b/pkgs/applications/misc/masterpdfeditor/default.nix
index 4f2f800ebd2..a1788587d70 100644
--- a/pkgs/applications/misc/masterpdfeditor/default.nix
+++ b/pkgs/applications/misc/masterpdfeditor/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "masterpdfeditor";
-  version = "5.7.90";
+  version = "5.8.20";
 
   src = fetchurl {
     url = "https://code-industry.net/public/master-pdf-editor-${version}-qt5.x86_64.tar.gz";
-    sha256 = "sha256-wUHLesJ/YV3QyTJfGUr1lFD55JBnfSmjO2VvriaqlII=";
+    sha256 = "sha256-2YfjTRTC/ZvgnV4tEY4wwoqUeUG8+0SCYuRPBzQ8ba4=";
   };
 
   nativeBuildInputs = [ autoPatchelfHook wrapQtAppsHook ];
diff --git a/pkgs/applications/misc/openring/default.nix b/pkgs/applications/misc/openring/default.nix
index 248c33c4dea..3a3db0242bd 100644
--- a/pkgs/applications/misc/openring/default.nix
+++ b/pkgs/applications/misc/openring/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "openring";
-  version = "unstable-2021-06-28";
+  version = "1.0.1";
 
   src = fetchFromSourcehut {
     owner = "~sircmpwn";
     repo = pname;
-    rev = "e566294050776355ca0d3bfd7a1f6f70767cd08b";
-    sha256 = "sha256-h9Tout3KGiv6jbq9Ui3crb5NdTOHcn7BIy+aPoWG5sM=";
+    rev = version;
+    sha256 = "sha256-BY2AtgZXzPLqHk3hd6D+XXbrwvWS9DNTKwLqsua/3uw=";
   };
 
   vendorSha256 = "sha256-BbBTmkGyLrIWphXC+dBaHaVzHuXRZ+4N/Jt2k3nF7Z4=";
@@ -18,7 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A webring for static site generators";
-    homepage = "https://git.sr.ht/~sircmpwn/openring";
+    homepage = "https://sr.ht/~sircmpwn/openring";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ sumnerevans ];
   };
diff --git a/pkgs/applications/misc/pdfsam-basic/default.nix b/pkgs/applications/misc/pdfsam-basic/default.nix
index 9aed6daa5c3..c840f7c72a0 100644
--- a/pkgs/applications/misc/pdfsam-basic/default.nix
+++ b/pkgs/applications/misc/pdfsam-basic/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pdfsam-basic";
-  version = "4.2.7";
+  version = "4.2.8";
 
   src = fetchurl {
     url = "https://github.com/torakiki/pdfsam/releases/download/v${version}/pdfsam_${version}-1_amd64.deb";
-    sha256 = "sha256-PVG4KZX6KxkrooywgEmqOItyLt5hGs+b/KCaguduGyc=";
+    sha256 = "sha256-bbGFSy2ZuUtFWyAgje6s+RSQ6S7NZGAhjvZMbIWfYhE=";
   };
 
   unpackPhase = ''
diff --git a/pkgs/applications/misc/pdfstudio/default.nix b/pkgs/applications/misc/pdfstudio/default.nix
new file mode 100644
index 00000000000..dcb35c41da7
--- /dev/null
+++ b/pkgs/applications/misc/pdfstudio/default.nix
@@ -0,0 +1,91 @@
+{ stdenv,
+  lib,
+  makeWrapper,
+  fetchurl,
+  dpkg,
+  makeDesktopItem,
+  copyDesktopItems,
+  autoPatchelfHook,
+  gst_all_1,
+  sane-backends,
+  xorg,
+  gnome2,
+  alsa-lib,
+  libgccjit,
+  jdk11
+  }:
+
+let
+  year = "2021";
+  major = "1";
+  minor = "1";
+in stdenv.mkDerivation rec {
+  pname = "pdfstudio";
+  version = "${year}.${major}.${minor}";
+  autoPatchelfIgnoreMissingDeps = true;
+
+  src = fetchurl {
+    url = "https://download.qoppa.com/${pname}/v${year}/PDFStudio_v${year}_${major}_${minor}_linux64.deb";
+    sha256 = "089jfpbsxwjhx245g8svlmg213kny3z5nl6ra1flishnrsfjjcxb";
+  };
+
+  nativeBuildInputs = [
+    gst_all_1.gst-libav
+    sane-backends
+    xorg.libXxf86vm
+    xorg.libXtst
+    gnome2.libgtkhtml
+    alsa-lib
+    libgccjit
+    autoPatchelfHook
+    makeWrapper
+    dpkg
+    copyDesktopItems
+    jdk11 # only for unpacking .jar.pack files
+  ];
+
+  desktopItems = [(makeDesktopItem {
+       name = "${pname}${year}";
+       desktopName = "PDF Studio";
+       genericName = "View and edit PDF files";
+       exec = "${pname} %f";
+       icon = "${pname}${year}";
+       comment = "Views and edits PDF files";
+       mimeType = "application/pdf";
+       categories = "Office";
+       type = "Application";
+       terminal = false;
+  })];
+
+  unpackPhase = "dpkg-deb -x $src .";
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin
+    mkdir -p $out/share
+    mkdir -p $out/share/applications
+    mkdir -p $out/share/pixmaps
+    cp -r opt/${pname}${year} $out/share/
+    ln -s $out/share/${pname}${year}/.install4j/${pname}${year}.png  $out/share/pixmaps/
+    makeWrapper $out/share/${pname}${year}/${pname}${year} $out/bin/${pname}
+
+    #Unpack jar files. Otherwise pdfstudio does this and fails due to read-only FS.
+    for pfile in $out/share/${pname}${year}/jre/lib/{,ext/}*.jar.pack; do
+      jar_file=`echo "$pfile" | awk '{ print substr($0,1,length($0)-5) }'`
+      unpack200 -r "$pfile" "$jar_file"
+    done
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://www.qoppa.com/pdfstudio/";
+    description = "An easy to use, full-featured PDF editing software";
+    license = licenses.unfree;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.pwoelfel ];
+  };
+}
diff --git a/pkgs/applications/misc/prusa-slicer/super-slicer.nix b/pkgs/applications/misc/prusa-slicer/super-slicer.nix
index 97629271661..99f1f79ce7c 100644
--- a/pkgs/applications/misc/prusa-slicer/super-slicer.nix
+++ b/pkgs/applications/misc/prusa-slicer/super-slicer.nix
@@ -5,8 +5,8 @@ let
   description = "PrusaSlicer fork with more features and faster development cycle";
 
   versions = {
-    stable = { version = "2.3.56.9"; sha256 = "sha256-vv01wGQkrasKKjpGSDeDqZbd1X5/iTfGXYN5Jwz+FKE="; };
-    latest = { version = "2.3.57.6"; sha256 = "sha256-ZCOtVmvNXDWLo9UMzxARCp+iyRTcy/ogd5sV0k86JG8="; };
+    stable = { version = "2.3.57.7"; sha256 = "sha256-qYvHNGuA2YDatrY/K2g5PE2gD53VXNptCaa7TpWGV7g="; };
+    latest = { version = "2.3.57.7"; sha256 = "sha256-qYvHNGuA2YDatrY/K2g5PE2gD53VXNptCaa7TpWGV7g="; };
   };
 
   override = { version, sha256 }: super: {
@@ -46,6 +46,7 @@ let
       homepage = "https://github.com/supermerili/SuperSlicer";
       license = licenses.agpl3;
       maintainers = with maintainers; [ cab404 moredread ];
+      mainProgram = "superslicer";
     };
 
     passthru = allVersions;
diff --git a/pkgs/applications/misc/remarkable/remarkable-mouse/default.nix b/pkgs/applications/misc/remarkable/remarkable-mouse/default.nix
index a4012eaed72..7805c06bd6f 100644
--- a/pkgs/applications/misc/remarkable/remarkable-mouse/default.nix
+++ b/pkgs/applications/misc/remarkable/remarkable-mouse/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonApplication rec {
   pname = "remarkable-mouse";
-  version = "6.0.0";
+  version = "7.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "46eff5d6a07ca60ed652d09eeee9b4c4566da422be4a3dfa2fcd452a3df65ac1";
+    sha256 = "0c67cd1ef4c46290cb74731c163c3fefc35590cd24749ec354af23012984d99e";
   };
 
   propagatedBuildInputs = with python3Packages; [ screeninfo paramiko pynput libevdev ];
diff --git a/pkgs/applications/misc/skate/default.nix b/pkgs/applications/misc/skate/default.nix
index 1c35c06ec17..f16807ba266 100644
--- a/pkgs/applications/misc/skate/default.nix
+++ b/pkgs/applications/misc/skate/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "skate";
-  version = "0.1.0";
+  version = "0.1.2";
 
   src = fetchFromGitHub {
     owner = "charmbracelet";
     repo = "skate";
     rev = "v${version}";
-    sha256 = "01brxckjz8vlgaq9917l45xf48078d4465qn9l0lyll6hic6p06c";
+    sha256 = "sha256-Z+7unYmwPLOhJAMAhMwjapAmslTNxmP01myjgEOBfu8=";
   };
 
-  vendorSha256 = "0mvx4rzs0mvb1dyxj105mh2awfy0bmp716x7hpfdwhwz3p11fc7k";
+  vendorSha256 = "sha256-CdYyiUiy2q2boEHjdXkgRzVI+6fEb+fBrlInl6IrFjk=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/misc/spicetify-cli/default.nix b/pkgs/applications/misc/spicetify-cli/default.nix
index 5e4b0017da9..2f42f6be9b5 100644
--- a/pkgs/applications/misc/spicetify-cli/default.nix
+++ b/pkgs/applications/misc/spicetify-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "spicetify-cli";
-  version = "2.8.2";
+  version = "2.8.3";
 
   src = fetchFromGitHub {
     owner = "khanhas";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-YMVB9nKsHYy65McYs1w/ETy+1b8GkjuWFk6PZs4HFko=";
+    sha256 = "sha256-Ht+EDCoPn1dA8VHTEiq5xPm34lcsiug8jQHvQdCG2yg=";
   };
 
   vendorSha256 = "sha256-g0RYIVIq4oMXdRZDBDnVYg7ombN5WEo/6O9hChQvOYs=";
diff --git a/pkgs/applications/misc/spotify-tray/default.nix b/pkgs/applications/misc/spotify-tray/default.nix
new file mode 100644
index 00000000000..8b97d9c4851
--- /dev/null
+++ b/pkgs/applications/misc/spotify-tray/default.nix
@@ -0,0 +1,25 @@
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, gtk3 }:
+
+stdenv.mkDerivation rec {
+  pname = "spotify-tray";
+  version = "1.3.2";
+
+  src = fetchFromGitHub {
+    owner = "tsmetana";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-E86rA8cBjy/bI7sZHlT40o7i23PcONXT5GTHEfcaDf0=";
+  };
+
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
+
+  buildInputs = [ gtk3 ];
+
+  meta = with lib; {
+    homepage = "https://github.com/tsmetana/spotify-tray";
+    description = "Adds a tray icon to the Spotify Linux client application.";
+    license = licenses.gpl3Only;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ Enzime ];
+  };
+}
diff --git a/pkgs/applications/misc/ttyper/default.nix b/pkgs/applications/misc/ttyper/default.nix
index 442c2a91682..d2bed3dce0a 100644
--- a/pkgs/applications/misc/ttyper/default.nix
+++ b/pkgs/applications/misc/ttyper/default.nix
@@ -2,21 +2,21 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "ttyper";
-  version = "0.3.1";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "max-niederman";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-lluBxYZQWygX9aujNK251bDilNNErVNr4WDoyqSPTiQ=";
+    sha256 = "sha256-UptjgFGp4QNG8eLuqBzg/Kd5p5Rms3yT172hbf/2hi4=";
   };
 
-  cargoSha256 = "sha256-GQNNl8/Y/jHDBGJQ7LWNpgbOgWaV/3UAMgYLJFJmQ3Y=";
+  cargoSha256 = "sha256-N10X5eJlpDKmCEffEXpkAejS32Lz183Lup0mmLMwOSU=";
 
   meta = with lib; {
     description = "Terminal-based typing test";
     homepage = "https://github.com/max-niederman/ttyper";
     license = licenses.mit;
-    maintainers = with maintainers; [ figsoda ];
+    maintainers = with maintainers; [ figsoda max-niederman ];
   };
 }
diff --git a/pkgs/applications/misc/upwork/default.nix b/pkgs/applications/misc/upwork/default.nix
index 687dc7a49ac..5543b3442bd 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.6.9.3";
+  version = "5.6.10.0";
 
   src = fetchurl {
-    url = "https://upwork-usw2-desktopapp.upwork.com/binaries/v5_6_9_3_10c2eb9781db4d7f/${pname}_${version}_amd64.deb";
-    sha256 = "0b884aa6992d438cee09f58673780218a00a823e03c114b0c753947020c0a327";
+    url = "https://upwork-usw2-desktopapp.upwork.com/binaries/v5_6_10_0_b124e6f3a4944b32/${pname}_${version}_amd64.deb";
+    sha256 = "fd201ce817abe32e1b582bb4b55fef85ac8132806f5ddf0548fd25bbfd48833c";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/visidata/default.nix b/pkgs/applications/misc/visidata/default.nix
index 6c1f035dfef..99657d60bd7 100644
--- a/pkgs/applications/misc/visidata/default.nix
+++ b/pkgs/applications/misc/visidata/default.nix
@@ -25,13 +25,13 @@
 }:
 buildPythonApplication rec {
   pname = "visidata";
-  version = "2.7.1";
+  version = "2.8";
 
   src = fetchFromGitHub {
     owner = "saulpw";
     repo = "visidata";
     rev = "v${version}";
-    sha256 = "13s1541n1sr2rkfk1qpsm61y2q773x6fs4cwin660qq4bzmgymhy";
+    sha256 = "1lcx444yrzmcvix977cgaf18lfrf9yrn2r14ln7knx8ghc15vkqb";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/applications/misc/worker/default.nix b/pkgs/applications/misc/worker/default.nix
index 21dc4a57695..3aa01d9372c 100644
--- a/pkgs/applications/misc/worker/default.nix
+++ b/pkgs/applications/misc/worker/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "worker";
-  version = "4.9.0";
+  version = "4.10.0";
 
   src = fetchurl {
     url = "http://www.boomerangsworld.de/cms/worker/downloads/${pname}-${version}.tar.gz";
-    sha256 = "sha256-l9kWYswQ27erxmZIb+otPzeKFZNwP+d8QIqGuvMMM/k=";
+    sha256 = "sha256-BK6Soh2hJYMunw/bXZFh+05c+iYig2L7lLFEqs6lyxk=";
   };
 
   buildInputs = [ libX11 ];
diff --git a/pkgs/applications/misc/xastir/default.nix b/pkgs/applications/misc/xastir/default.nix
index 63240e0402f..294beb06c5b 100644
--- a/pkgs/applications/misc/xastir/default.nix
+++ b/pkgs/applications/misc/xastir/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config
 , curl, db, libgeotiff
 , libXpm, libXt, motif, pcre
 , perl, proj, rastermagick, shapelib
@@ -6,17 +6,21 @@
 
 stdenv.mkDerivation rec {
   pname = "xastir";
-  version = "2.1.6";
+  version = "2.1.8";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "Release-${version}";
-    sha256 = "0yrvwy6hlc73gzwrsrczflyymyz0k33hj991ajrd1vijq14m3n91";
+    hash = "sha256-hRe0KO1lWOv3hNNDMS70t+X1rxuhNlNKykmo4LEU+U0=";
   };
 
-  buildInputs = [
+  nativeBuildInputs = [
     autoreconfHook
+    pkg-config
+  ];
+
+  buildInputs = [
     curl db libgeotiff
     libXpm libXt motif pcre
     perl proj rastermagick shapelib
diff --git a/pkgs/applications/networking/appgate-sdp/default.nix b/pkgs/applications/networking/appgate-sdp/default.nix
index 0c02963e1ca..e795e71554e 100644
--- a/pkgs/applications/networking/appgate-sdp/default.nix
+++ b/pkgs/applications/networking/appgate-sdp/default.nix
@@ -87,11 +87,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "appgate-sdp";
-  version = "5.5.0";
+  version = "5.5.1";
 
   src = fetchurl {
     url = "https://bin.appgate-sdp.com/${versions.majorMinor version}/client/appgate-sdp_${version}_amd64.deb";
-    sha256 = "sha256-lWInks3DBkSpKQh+dcNyn43iY5vvE67FLadohBbF6n4=";
+    sha256 = "sha256-gN9UAdn61qUZBJLi/9QiHjNRohbQQDV1uVHgcpuXq+Y=";
   };
 
   # just patch interpreter
diff --git a/pkgs/applications/networking/browsers/brave/default.nix b/pkgs/applications/networking/browsers/brave/default.nix
index 9ff1182c1c8..464085d2116 100644
--- a/pkgs/applications/networking/browsers/brave/default.nix
+++ b/pkgs/applications/networking/browsers/brave/default.nix
@@ -93,11 +93,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "brave";
-  version = "1.32.115";
+  version = "1.33.106";
 
   src = fetchurl {
     url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
-    sha256 = "6DY3gLyaMSkjZEPR9o1hiuFFsL22bTeq2SN9Nt3DCSc=";
+    sha256 = "XSqlQyc6gJthchfmq29d5+OVVSaxYG7zpVZNFZpl67s=";
   };
 
   dontConfigure = true;
diff --git a/pkgs/applications/networking/browsers/chromium/browser.nix b/pkgs/applications/networking/browsers/chromium/browser.nix
index d28d797a879..40a0d799752 100644
--- a/pkgs/applications/networking/browsers/chromium/browser.nix
+++ b/pkgs/applications/networking/browsers/chromium/browser.nix
@@ -17,6 +17,7 @@ mkChromiumDerivation (base: rec {
   installPhase = ''
     mkdir -p "$libExecPath"
     cp -v "$buildPath/"*.so "$buildPath/"*.pak "$buildPath/"*.bin "$libExecPath/"
+    cp -v "$buildPath/libvulkan.so.1" "$libExecPath/"
     cp -v "$buildPath/vk_swiftshader_icd.json" "$libExecPath/"
     cp -v "$buildPath/icudtl.dat" "$libExecPath/"
     cp -vLR "$buildPath/locales" "$buildPath/resources" "$libExecPath/"
diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.json b/pkgs/applications/networking/browsers/chromium/upstream-info.json
index 193f1d3e268..1ca7fcff31b 100644
--- a/pkgs/applications/networking/browsers/chromium/upstream-info.json
+++ b/pkgs/applications/networking/browsers/chromium/upstream-info.json
@@ -1,8 +1,8 @@
 {
   "stable": {
-    "version": "96.0.4664.93",
-    "sha256": "14rlm91pzpdll6x2r1sxdswiv19h1ykxcq0csi9k9g0a9s71yyvw",
-    "sha256bin64": "15233njj6ln7q3c112ssfh9s4m3shhp920zw8648z9dr7k8512qb",
+    "version": "96.0.4664.110",
+    "sha256": "1s3ilq0ik36qgqp7l88gfd1yx97zscn8yr2kprsrjfp9q8lrva9n",
+    "sha256bin64": "17cyj1jx47fz6y26f196xhlngrw5gnjgcvapvgkgswlwd7y67jcb",
     "deps": {
       "gn": {
         "version": "2021-09-24",
@@ -18,9 +18,9 @@
     }
   },
   "beta": {
-    "version": "97.0.4692.45",
-    "sha256": "1x55hys3340inrwwp4lzw5vq3vrg56288m746d4p2ligvsy19byp",
-    "sha256bin64": "1jyhq27fb4pzbxlg0ssfz66hza9g8cbsqyx70ydkjqs9sf4yqqcw",
+    "version": "97.0.4692.56",
+    "sha256": "19i572z02hp7n7j7k5i38jr60jfli5jk5qnydfzxavwx9vjqjwgf",
+    "sha256bin64": "1im2dq2p5cdy6hj6n2lvn2nzwb5mgy57hyskhwhfm1fz5xzjzc3g",
     "deps": {
       "gn": {
         "version": "2021-11-03",
@@ -31,22 +31,22 @@
     }
   },
   "dev": {
-    "version": "98.0.4750.0",
-    "sha256": "0qygnmb1wlbarni2pdfs1xl50ggvf0211c6mj7341wwsbd0bpkgr",
-    "sha256bin64": "1psbh5xwlgr4ain4s9vk7d0kdbbd14v29f95ai5i4d2d3cpj2319",
+    "version": "98.0.4758.9",
+    "sha256": "1sq6v2hdhpk12w37sz7jf5vwkn72ydcqzcxysf7hs2flcfgscydj",
+    "sha256bin64": "1jfj08jpxji2q890zbvpvmgf5bjqgvigkr1hg8ch8vaaybs5wr04",
     "deps": {
       "gn": {
-        "version": "2021-12-03",
+        "version": "2021-12-07",
         "url": "https://gn.googlesource.com/gn",
-        "rev": "e0afadf7a743d5b14737bd454df45d5f1caf0d23",
-        "sha256": "00pxhfikscghgm79zckh9j00jgjmdy6hixkpfq5vmgc0xpxif78v"
+        "rev": "fc295f3ac7ca4fe7acc6cb5fb052d22909ef3a8f",
+        "sha256": "02bx3bp85kkis704gndb6jvjph7gv3ij746bq4anl30kfrkpcifh"
       }
     }
   },
   "ungoogled-chromium": {
-    "version": "96.0.4664.93",
-    "sha256": "14rlm91pzpdll6x2r1sxdswiv19h1ykxcq0csi9k9g0a9s71yyvw",
-    "sha256bin64": "15233njj6ln7q3c112ssfh9s4m3shhp920zw8648z9dr7k8512qb",
+    "version": "96.0.4664.110",
+    "sha256": "1s3ilq0ik36qgqp7l88gfd1yx97zscn8yr2kprsrjfp9q8lrva9n",
+    "sha256bin64": "17cyj1jx47fz6y26f196xhlngrw5gnjgcvapvgkgswlwd7y67jcb",
     "deps": {
       "gn": {
         "version": "2021-09-24",
@@ -55,8 +55,8 @@
         "sha256": "0y4414h8jqsbz5af6pn91c0vkfp4s281s85g992xfyl785c5zbsi"
       },
       "ungoogled-patches": {
-        "rev": "96.0.4664.93-1",
-        "sha256": "0r8cwriaxbmzy9sxa6mx71h8n1a0x7pdx3kmqc1sg97b2qwmg15r"
+        "rev": "96.0.4664.110-1",
+        "sha256": "098mfcd1lr2hhlic0i1l5gxsq71axvqnn4gayr4r9j6nbj9byf4h"
       }
     }
   }
diff --git a/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix b/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix
index fab45c2375c..5a38d9d8d7a 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix
+++ b/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix
@@ -1,985 +1,985 @@
 {
-  version = "95.0b3";
+  version = "96.0b3";
   sources = [
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/ach/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/ach/firefox-96.0b3.tar.bz2";
       locale = "ach";
       arch = "linux-x86_64";
-      sha256 = "474c94f46fb3985e2f640ad7beaf66c0fa456ad6e3c6943f00dd0b3bc1daa3a4";
+      sha256 = "780a8e746a4a638ab9cfb69b1dca27135cdf64809883551c0e79e0409487660a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/af/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/af/firefox-96.0b3.tar.bz2";
       locale = "af";
       arch = "linux-x86_64";
-      sha256 = "84603f7b1ae9dc78b7fb184fb8130954241a1135d44b90de41f27650e96353b2";
+      sha256 = "44b86759ab9a5bb675d9d05029cef6e0be17eecbe140ad1ce5d0fc554a8dcf36";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/an/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/an/firefox-96.0b3.tar.bz2";
       locale = "an";
       arch = "linux-x86_64";
-      sha256 = "b672065d9b426d2814908d676329deb72b20f403a583228c584a4e95b8d86040";
+      sha256 = "e4d73a06f2a918395c0428c4190cc080dd03a29a74f1677f297b6bd65ad488b3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/ar/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/ar/firefox-96.0b3.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha256 = "9a62d19d64db198b838c2642d26d70de84205647c7aaed51415495b1c9966b8b";
+      sha256 = "256f2b6d21cccddcaed24b511f71ca4bafdfc08ce989ad1eef45ab9bc009611f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/ast/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/ast/firefox-96.0b3.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha256 = "53b73ad75376e2a2c2b6879d30d4039b327ba0f2bf7fe533e8a29f41a4e3b076";
+      sha256 = "bba26f8b77d27c03a969e08d8974ec9f7a85e0237ca3acacc884f945a9b18832";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/az/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/az/firefox-96.0b3.tar.bz2";
       locale = "az";
       arch = "linux-x86_64";
-      sha256 = "d9ddba7695435bf5915e1f17681fb6a55b4a3e9d4e4d2972c32e9ccd4d67163a";
+      sha256 = "da1c22e87189c991ce27929abe2172ccce6f4a25c44e836ee865550e259e6218";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/be/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/be/firefox-96.0b3.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha256 = "23e9cfe4005bd235ba112f30be729495fafd7d607b9e67dc9b72b9f2fafa2846";
+      sha256 = "183bce430aa7ed98b72eb4492c5a9cf76a2e9961069140f272e438a5d20debc3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/bg/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/bg/firefox-96.0b3.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha256 = "601d6830ddc35f8738a288105741e6c9fc4b2b50e3844287ff8d7f4ff871ded3";
+      sha256 = "145c856566f9063ba861ade8220071623df793b279bf2a3821742f9e0023af74";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/bn/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/bn/firefox-96.0b3.tar.bz2";
       locale = "bn";
       arch = "linux-x86_64";
-      sha256 = "bd41e8b261fa553ca1842cb7291539dd04db2d3668a1da317ac32a3ff7d0c322";
+      sha256 = "dce9827d70a5a7d182316d7286bc6cb4b5442d65bb5c3573d04b235b4a18616a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/br/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/br/firefox-96.0b3.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha256 = "00f69f471ea3385b89ab0fc54c3816271852f6c99cef9b156f0d124a71abe4c2";
+      sha256 = "0df80c30b78cde55015fab74763c7606f75eff72804166b5095eb321b51fa4da";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/bs/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/bs/firefox-96.0b3.tar.bz2";
       locale = "bs";
       arch = "linux-x86_64";
-      sha256 = "288403e57a49651eb31714ff284173a8b3fda3a6d5e67047f97e14f8398fe5a1";
+      sha256 = "1df386c5001327bea3f5675acd52946dab3d0d8ff0bbcf65f8b291ac26a565d0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/ca-valencia/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/ca-valencia/firefox-96.0b3.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-x86_64";
-      sha256 = "266dd8fdcb00ee48c1ed03ccf3d3a478a75123a07490afb4b67cce3bc53ba9e3";
+      sha256 = "c271c6d047c4dee3ea806caec31e2719acaa55aaa608ad86283de45e22cd05f5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/ca/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/ca/firefox-96.0b3.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha256 = "5f7388056ad409c7acb16061b0d945df95ab41cc767ec4fe777df8726421612a";
+      sha256 = "30a2deb4dd1bb82406731f71001950d01ffbb9aa7a24f333e8f322fb23032f6a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/cak/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/cak/firefox-96.0b3.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha256 = "2c315209fe2d966e3abf3eb4b35207fd2479809babbcc210a8e668aaaf6207d4";
+      sha256 = "cbf31b80937ae4a425f4d5507a7f654958e7e93a6c12683c08982a3d14d2ba9a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/cs/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/cs/firefox-96.0b3.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha256 = "f5eef4d4141257dc80362a917cef098cefa65deee791decf4d79137ee2f947a3";
+      sha256 = "72c098b2512a40ce3437f7d329b46e648e4fd6e2d2b7ecdd1e3478b090cd50fc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/cy/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/cy/firefox-96.0b3.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha256 = "a3126e3c83de85459b565aa949ba5d34fd622b8fb7d93c080abada013e59d165";
+      sha256 = "0c05717640e8ff2e0fb52a510dcf3a35db34b911cbc85d2721e7e7e6307f0083";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/da/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/da/firefox-96.0b3.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha256 = "066b881606335352011d2001b0766f42af012a8ac7474f24866bfeeb1e181ef0";
+      sha256 = "c29f815b19cc03e7d628fef8c86e4f06862e268b760e230cc7bdd04c2618a852";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/de/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/de/firefox-96.0b3.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha256 = "48c557034a1370ece846d0d08e31d068c872e7f6a1d9c83d69e5554561f95b5f";
+      sha256 = "6968c6d591a3b43e169dca16628eb4675b8803b90aaa8f605ae35f2115a75d3e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/dsb/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/dsb/firefox-96.0b3.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha256 = "98faa66e3bab14bf28779b36a54657ae3ba69d2c762efe17bd849341d886a2de";
+      sha256 = "47a8cac44c7d813f23ce263e698dad6dad44181c570055973879e57beeb82ee1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/el/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/el/firefox-96.0b3.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha256 = "3591b9ed200707f137dd1c65d159b1f2b412a5f5c2cf17e7d7dcadb691ab047f";
+      sha256 = "476fcbf047743ea61d6e68d37a1bf1203d239667faf98abf5192f15e1b13b927";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/en-CA/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/en-CA/firefox-96.0b3.tar.bz2";
       locale = "en-CA";
       arch = "linux-x86_64";
-      sha256 = "9a018a3abadb9266f647a4fd67a4dcaeab611f1ead3d5ce0b9d83a12e1a58eed";
+      sha256 = "26abc7c1e8aeef3e4898e1dcd120651dd30400a6da9a1c2af5ff02b1b406573d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/en-GB/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/en-GB/firefox-96.0b3.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha256 = "40e6e0b8e9955e5dc8c89db57484eb8eddf06fa8b38f8b2a3d23c1d724a1e137";
+      sha256 = "66b299656f71875f59287c8da5a3c2b0bca53fb69ca9b0f7a0402ad1eeb1aa87";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/en-US/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/en-US/firefox-96.0b3.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha256 = "0ccae3528c97ce6ccd43c21776a85b6e0d485e286814744ae22461cee1a7d79a";
+      sha256 = "37c37849f3d7125da14e3a71c8a9fa522b8756fea7e3e3f8a5792ef7c3285466";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/eo/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/eo/firefox-96.0b3.tar.bz2";
       locale = "eo";
       arch = "linux-x86_64";
-      sha256 = "dabe2c119f889c25c97e15bc588027d3220f96bde47db6f55f66e6df6c043133";
+      sha256 = "cd3ea6fbcbc947acbe1767be78a14fdce4c03b0b44d53e3670a0ffc5ba14dc68";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/es-AR/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/es-AR/firefox-96.0b3.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha256 = "57e787708d8c3947ca5ab5d5636def8411d2b8884825ac4f2a8253734e6a18e9";
+      sha256 = "f661d48a11f66fc326e86126aa5c0de37311042a454719cc609a1c7ff102e423";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/es-CL/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/es-CL/firefox-96.0b3.tar.bz2";
       locale = "es-CL";
       arch = "linux-x86_64";
-      sha256 = "509749b15d990b1dabd2a01ce3ea25753e57f40f829ca2f391c1135ebab2ad48";
+      sha256 = "056f25729222d95316034f0365679ff449a58e4d77624687cf9417e10b52085f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/es-ES/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/es-ES/firefox-96.0b3.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha256 = "d4cc96679b07d33da8cb891d7a0086dc5b00b269a55e8e0c57fbb576642c556b";
+      sha256 = "64da785531a3e2f4b8179f3e9b551723bcce4c1210e184a03c98ec3e2ff1e220";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/es-MX/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/es-MX/firefox-96.0b3.tar.bz2";
       locale = "es-MX";
       arch = "linux-x86_64";
-      sha256 = "07abf9362e1e111f42087367b33df46bbfcb33419785cff32c5a612d7daae1f4";
+      sha256 = "34af4d1a91b7e09e80d2f89730851c508521d6518b0aa2d3ff1924a34f7efba6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/et/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/et/firefox-96.0b3.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha256 = "7866ed658f2a8a19636484f8dc4bacd3919324c171628f83d2194761ed738d71";
+      sha256 = "a1b50e3ba15ae806ffd89ef22e12ee85ceda1eb17f458fb7e8abd6c4355a75d3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/eu/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/eu/firefox-96.0b3.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha256 = "d5a0dc4d72cd499e62a01b749969158769b42854d03a63802ac2d3fe473cfd15";
+      sha256 = "90ec59ce7774bade28052f4f8b5861476e3fb52878e48c8909d250fb6b6e17ad";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/fa/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/fa/firefox-96.0b3.tar.bz2";
       locale = "fa";
       arch = "linux-x86_64";
-      sha256 = "52b51ec4f60f428f8bec21485ceace318949a660aca2031879f9d5b2793ef525";
+      sha256 = "3f09ea9568982a451798dece61a8f19131c4c88e98e2c03b1808503051873e73";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/ff/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/ff/firefox-96.0b3.tar.bz2";
       locale = "ff";
       arch = "linux-x86_64";
-      sha256 = "84efcb94c8bceeef18f621d2b6c457012a4cae82b85530401f8d3d4a68ee2a0c";
+      sha256 = "a483b0aaf523fe404a6b3ec07611812a5160cf8a5c05b0fee1afa6838e1949a6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/fi/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/fi/firefox-96.0b3.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha256 = "a30ce074678d5468bfbb675761e6a267d64e05a53691dfde7c2ba63917091723";
+      sha256 = "12e17583c8932cfa6622ff68490e29d9e09d6862e8443ee1cd1d72f21f6516a7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/fr/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/fr/firefox-96.0b3.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha256 = "005180447c764df009b726696220e84e7e18fe2a90fb35674c613f90ac9806ad";
+      sha256 = "ac3809a3344ac239183a68551eebe5689c53c11c0a399ff4a94452a35ad86c81";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/fy-NL/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/fy-NL/firefox-96.0b3.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha256 = "8306484bc7a3095412c5ef9abe0f129a3e12f9cd7a9642da06c5b5cefa939b75";
+      sha256 = "9385c2bed2d3aa9b65651f396d9a2c6f8762dc4295319757f949fc9f04a6c717";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/ga-IE/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/ga-IE/firefox-96.0b3.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha256 = "7dbeaddaa6e56a97802fd521b21c0e91911313a178b4e3b52b94c9e6192e82ae";
+      sha256 = "f65df6f4d93a39b5bbb1c4c7827eb094a632dff7255b78affc7cc9794a28d3fa";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/gd/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/gd/firefox-96.0b3.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha256 = "a8002495345e1339d1f482a622e8d496b2f44d6f0943bbad5502446c72cde9b5";
+      sha256 = "3cbbd914559e96205e665ad46cd9ba193428cd8d83df90c4fd4849cc11db13be";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/gl/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/gl/firefox-96.0b3.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha256 = "8b7c7ca56394582f1af0e3c53943d96994901f2083d43cccfceeb03d6e40a5fc";
+      sha256 = "7b27f83190cdb84d2d9fca9bcb37bd1128086adfe772e676141fd9960c0de872";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/gn/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/gn/firefox-96.0b3.tar.bz2";
       locale = "gn";
       arch = "linux-x86_64";
-      sha256 = "4b35f17e74ce56757dff9cef391cc19348ff4e1d248f19e74156504c3d2ed394";
+      sha256 = "0194000216bb517390d301166c37228e2128f3b15280cf21629fe13de5f536da";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/gu-IN/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/gu-IN/firefox-96.0b3.tar.bz2";
       locale = "gu-IN";
       arch = "linux-x86_64";
-      sha256 = "fc1233731682071936aadbfbe8db7d4284f2cf47398421cfb2a8c7a8dfb79752";
+      sha256 = "24c92df984f7eff4f294e27324420b0350c4069acade0a304a3e433ea11fadd7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/he/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/he/firefox-96.0b3.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha256 = "47b4dcfacd5d4c8e579757f89d895495321b08115f6b64d025d6129562d66453";
+      sha256 = "5a006adead9f8e647eaebbef8ca56a47116ad2fd1c308c4986aa81bf7618f815";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/hi-IN/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/hi-IN/firefox-96.0b3.tar.bz2";
       locale = "hi-IN";
       arch = "linux-x86_64";
-      sha256 = "a6b47c3149701ce4c98cd0df5629b141bba20d143305d036b488a502c0de7bb1";
+      sha256 = "e8d87a8ad9033793e0c25c8954ddc4f405274468a572f46af494847481bedf11";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/hr/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/hr/firefox-96.0b3.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha256 = "6e992a34955550b0024f626da789f339e68b6b1701f7d20e1cee39de8c693245";
+      sha256 = "47964a5caec7f8ef0546ecba49e0d995dc9f67947fbcaafaa02789bdaa75e6c2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/hsb/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/hsb/firefox-96.0b3.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha256 = "6e7927e7f83a64b97ab2371e798443d27d67fcd7b8051f1f7e87bc78407d8ccf";
+      sha256 = "67f89985f60d21b04a9a20449d38d673c45e74e82a1d5762d82713c02d3e63b2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/hu/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/hu/firefox-96.0b3.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha256 = "b05cfb354ee26a1c841d4101b5c4fae11e6724bbf50d3c7685d5c67459a4c84f";
+      sha256 = "2716ce5bcfaac25456a144eeff6e6b173600d08016574812abbb315a4d001ca1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/hy-AM/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/hy-AM/firefox-96.0b3.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha256 = "246ff4c709da7aebae4afb7625b77bae8ee60e53ce5d04a2c42c0257e8da0e25";
+      sha256 = "c028cfa29f0ea60f284d749dc9818772c074efe3d295590a34a3d6a4548a8f7f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/ia/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/ia/firefox-96.0b3.tar.bz2";
       locale = "ia";
       arch = "linux-x86_64";
-      sha256 = "27495fb4fa2cf5308a04a26b26bcc4da5b6153398479a231fbd17162909c9610";
+      sha256 = "5bd24eff8a4d95f27ff8df44d014d007c943a54fd1b5689435a1ce14b7f61375";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/id/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/id/firefox-96.0b3.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha256 = "d6ce3a5961a40e82e48a9468163403b0a83de89305977ee38edf5dd3a56e222a";
+      sha256 = "0483ce90f8702febedb73674d3cc23348a4e7ef62445084430636f0c4c1fb287";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/is/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/is/firefox-96.0b3.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha256 = "3644ff5170301af31eb05cb9b6d788e9c3f0eac65a45155f03b1cf8d88d465b0";
+      sha256 = "d7b41cb2cd6ae22547d2c4d04dcadd5c4c05a4abf2b51d495baa749d4a2158b6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/it/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/it/firefox-96.0b3.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha256 = "01c6356d1ce2229a6ec5865687a0ed67c61167889f4a679c5c87f8cb8843322e";
+      sha256 = "f5a5a825787fef1f8c4f2a0f0c013e8d39bf1a08c4523d79069c5fb335c0e5a0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/ja/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/ja/firefox-96.0b3.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha256 = "37773526605c3f1aeebc6cf0b5cf85f9dc163150a71631b7153c7eac04ac40d5";
+      sha256 = "64d8c649de837049c2f0f73736a74f141de5bf426e11d19f4e0a5553cba6412e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/ka/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/ka/firefox-96.0b3.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha256 = "69d7a476b28b6eb08b2dc797e3bdcd75df52e6e356e7efff961a6093b75f53e3";
+      sha256 = "01ba137970e9b538bc09195dc3da66927b56fab6204bcab60a85e03055c80a0d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/kab/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/kab/firefox-96.0b3.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha256 = "e912381c7b2d1ed39564cba940bd5b2f80837ecaa9b251844b8ff9ba94d2a839";
+      sha256 = "3a6b4e12f88226b0f19dc066a0f11cadf5a47d87f38540cbcc9f34e82c54290e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/kk/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/kk/firefox-96.0b3.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha256 = "31227990f305bab67fb3e0dd1043b55470d188841f981f665d4a8a2493c990f3";
+      sha256 = "ecb9e0e63eb778892ce15d5df03e50bca8948a6e8dc3369b030cb716b172789a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/km/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/km/firefox-96.0b3.tar.bz2";
       locale = "km";
       arch = "linux-x86_64";
-      sha256 = "d4fe8d5720d38750b1d7fffc6aec1e33733bda34783a2f3e190f0c2d8c7e3b11";
+      sha256 = "31968f898a8916705c67e71bc5010cea11bb43e544f27febad644a624b32c773";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/kn/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/kn/firefox-96.0b3.tar.bz2";
       locale = "kn";
       arch = "linux-x86_64";
-      sha256 = "7ed2af125efd6da29752350a6f717dc159ef4ec2779615d1ef6a00469e09be92";
+      sha256 = "105f4f83a1e0ed15e568a218d49fe5108462db67cda228e088cde3679dd48e04";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/ko/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/ko/firefox-96.0b3.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha256 = "b0a5c394250c62e90831fb890da297708ad7bf7fd1552641a2efbbb807b2dc4d";
+      sha256 = "37932385223cebf7a3f59c362c2abfca321bfab0fd6e5e3da6daa0ec76257784";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/lij/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/lij/firefox-96.0b3.tar.bz2";
       locale = "lij";
       arch = "linux-x86_64";
-      sha256 = "75b98e03016f31a16b24efb8333c2b9262efa805dacb942e9421372811d166a2";
+      sha256 = "ae5c8fbc88f15edf60fa1830ca19d32ca3277194c0669717360659da5ad07b68";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/lt/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/lt/firefox-96.0b3.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha256 = "6d5a36fd2fe4e9054b8bd58134ea8b9d70fb3205d84c60a6793033f0e4acb38e";
+      sha256 = "104cdce0099e51d71d3ae3b8fd4ec40a256d893450c8fc905035480be5d675d9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/lv/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/lv/firefox-96.0b3.tar.bz2";
       locale = "lv";
       arch = "linux-x86_64";
-      sha256 = "f605fa3ae318f437849623819702d5cfe6e4f09c8780044ef94601879c31d207";
+      sha256 = "d2e0055207f62681e4cc9c11ae1cd986179af1581af0252604762eed6637e726";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/mk/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/mk/firefox-96.0b3.tar.bz2";
       locale = "mk";
       arch = "linux-x86_64";
-      sha256 = "dffdaf569892188c729407d9afda0a6f81c3e550ed7abc0ee8d3da75aa2a0746";
+      sha256 = "8b03198b1d6424a1cd024fe17ce62a99c8b1b8c41798b0e229f802752a3b4551";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/mr/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/mr/firefox-96.0b3.tar.bz2";
       locale = "mr";
       arch = "linux-x86_64";
-      sha256 = "e46c0a6320a7660f9e7787aff628ca6a4a7fbdf93454fe58f2caaf1ebd53095e";
+      sha256 = "5f5b132f3292cc0938e28f2c483a03b8ec76a95a306d3a928f2a2bde03f3af76";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/ms/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/ms/firefox-96.0b3.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha256 = "c3d7a6c84f5ef041b9914757893af431285946821a288e654a4b7f0c52644613";
+      sha256 = "9ba3cbfd2061d15356ebee861bad6d78be0cb5f4ea0ad9a13170ecdad67981a7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/my/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/my/firefox-96.0b3.tar.bz2";
       locale = "my";
       arch = "linux-x86_64";
-      sha256 = "a15fc143278e2c2909ba04d14dda8a9bee23b43e4f121f38f06284d7f718b906";
+      sha256 = "700d224adc519fad23798afe919538ae54d53cfad4a74974ecabdf254afcffba";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/nb-NO/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/nb-NO/firefox-96.0b3.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha256 = "ca44d0aef673a2fea953841e94504ccf355fce39ab571eac782a750cab794301";
+      sha256 = "a75fa004af0cef3548238264f7997ad60bcb46d415e3e91ff6e9b16bb86a4a9a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/ne-NP/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/ne-NP/firefox-96.0b3.tar.bz2";
       locale = "ne-NP";
       arch = "linux-x86_64";
-      sha256 = "656f830a25800190e310d2367ac7ea07f3226c4c7b1cfd0f937dd3056804f540";
+      sha256 = "614d82dbc762f0ef2f565d95e5bff8d4212f8fa8174f294877e0ce155d75fb09";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/nl/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/nl/firefox-96.0b3.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha256 = "5e493e4cc81a976bb06bed108d25070ce5add12643de21cd96fd6075cea7cd26";
+      sha256 = "a6b8f0c827443f32c25c478aa11981d714a57fbf752891c2f018fa9542820e6a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/nn-NO/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/nn-NO/firefox-96.0b3.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha256 = "ed1e854675b0f2422d240e45ca78d101a5ce787bd9f5ce4905fe7edbd24b776a";
+      sha256 = "6227882b432684768b739058e7f1aa15e92157348e19b36053e70255172f0b04";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/oc/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/oc/firefox-96.0b3.tar.bz2";
       locale = "oc";
       arch = "linux-x86_64";
-      sha256 = "12df296c5340caf9264401b33f9c7ff56b366ff1026da5c97769db14cde12d0a";
+      sha256 = "3b2590ff70bf7cf8998dda933506c86515ebdb81b031fb15f925b02d5cf88f04";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/pa-IN/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/pa-IN/firefox-96.0b3.tar.bz2";
       locale = "pa-IN";
       arch = "linux-x86_64";
-      sha256 = "d785d9d2f85dfe309757abe0ef0096a968cf01d9c2b148a2aecd1c098a5e1f90";
+      sha256 = "09bbea80b952af6eb5358b2afbc785afbf04ee44a27b38f2f72dc6fa49417086";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/pl/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/pl/firefox-96.0b3.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha256 = "92835e4961dabc99e0b803e06338a9a21799764e2713a36c1e4f681d87bd8996";
+      sha256 = "f0ef3e5e72fcf72ff49a5b631bb9216363fb01440da41d939e4b653e84527694";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/pt-BR/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/pt-BR/firefox-96.0b3.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha256 = "aaa9f81cdb0ca1b74f6d2f7818d12a952e7ee33d60e047df86ab97508356338f";
+      sha256 = "dfe183f6a40d50e3871f632ec79f397e302fd130c43af2c26c6b24acc114c4fb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/pt-PT/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/pt-PT/firefox-96.0b3.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha256 = "ed69921f7c65c31d811a7d54003f5ceef2a01c9405d9bf84b31861b9091dcd7b";
+      sha256 = "c12fb2fb918a38a39655f3350676f290151e2fd6e44acff88379f3c4752743cd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/rm/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/rm/firefox-96.0b3.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha256 = "405a19aff4a45ffde0f09b94ac6f6c9f2dc97398f4b90b77031ce957a31f8b72";
+      sha256 = "14d1ad150edaa100c535c9b007fccd3bbfc0afe09d3035ada361c202ab31cbf8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/ro/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/ro/firefox-96.0b3.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha256 = "aa058e6912b410db1e43aefc3205930a6dff0559b729b0ac80424140020c0053";
+      sha256 = "cd99ae37b4e8552cae7911c86f430900d8d21c96264dc2940c335cc050b8a62f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/ru/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/ru/firefox-96.0b3.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha256 = "7cb7ff67c839f41a4a1739075bfd7847d23bbdc62379215db2d822f2367ff84c";
+      sha256 = "0cf0c23c90f24ef417b460f57b566b87e06ad11df178ed3e7006a7a7a8acf7f7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/sco/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/sco/firefox-96.0b3.tar.bz2";
       locale = "sco";
       arch = "linux-x86_64";
-      sha256 = "e5832ddcd89f443ee9d7e5c211d902c4f96319d53e4647dc1b522c73f3f7e862";
+      sha256 = "58bc7ea18c851d5a88c047bd41b836e9beab1f04289d0fc33e0b1d9fd7e55b3f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/si/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/si/firefox-96.0b3.tar.bz2";
       locale = "si";
       arch = "linux-x86_64";
-      sha256 = "8fe0d2dab49385b643f5aa1e75fe92f6f6e22c731954c9805d96ed6d5f648763";
+      sha256 = "13914c46edc3e5da87c394468cfe83f0811359b2d30d6572b1c3c9726af45c3b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/sk/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/sk/firefox-96.0b3.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha256 = "326ae6e05089d85f978581ccdb295a7110ca8bd3355386fa167a816c6c64aa46";
+      sha256 = "818fd12a70a50061c507c8e06d7118ea7d1062ac905f8b70d31010710df642f3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/sl/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/sl/firefox-96.0b3.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha256 = "f79d40eb29a56120658625e73a1e787999392e5f4f9d7b1138c863d4f416e45c";
+      sha256 = "1d70241ed0cc861c79165a770a73b580496fbbbb6a2530701c02073c9995fc4f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/son/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/son/firefox-96.0b3.tar.bz2";
       locale = "son";
       arch = "linux-x86_64";
-      sha256 = "55dcfbc7dc1798f664dd35e249846edea3dab0b9f803816d7ac7f127f88d430e";
+      sha256 = "3b906867dc5a0ecf4dfb0e034c8e97a3fc39e5d0531ea483c8a408b32df860bc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/sq/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/sq/firefox-96.0b3.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha256 = "a8a324f847552c79c17d217ee8b1e620784608899b5d3bf358c1be036c89c761";
+      sha256 = "b23189c437535a4fad78bab37b81d95e3fe5774a8c3c4c6bd6d77d7f785d2e30";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/sr/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/sr/firefox-96.0b3.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha256 = "f073d9cfd51f99a6ce113b7659b4e4807459c2708ccbd6b4e94caf86d9575c43";
+      sha256 = "08dde33689c92e2c23971b0aeec581ba420b502a118c45799e35d52087113055";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/sv-SE/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/sv-SE/firefox-96.0b3.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha256 = "1e2ce62d0a940d28e92c7252d059c33606b1659cb837c51dce5deac8d7998c62";
+      sha256 = "3a099e8247e4f15879233624489f4df971493bde2019f47a18da3523e0ba142c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/szl/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/szl/firefox-96.0b3.tar.bz2";
       locale = "szl";
       arch = "linux-x86_64";
-      sha256 = "d9e0f2f4f3852920a1f539db556fb8cbb7eb563d329befb3619e8892efd442dc";
+      sha256 = "94497a259e974c3c13bf2a74a4a91180710b57402fa47bdead77cece66696b32";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/ta/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/ta/firefox-96.0b3.tar.bz2";
       locale = "ta";
       arch = "linux-x86_64";
-      sha256 = "ee8b169ac2e368bfeabb18ad609e99966f192ba50d0cb8c71cf4671e9ba5a8bd";
+      sha256 = "006458ee81bd21b2cd3acd5b7893e90cc97233a3507b2247355b183164771502";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/te/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/te/firefox-96.0b3.tar.bz2";
       locale = "te";
       arch = "linux-x86_64";
-      sha256 = "26b6372b6e235ff3976246b0985c68d0fc4d742961b0fdfc39084fa625412117";
+      sha256 = "a1173235bd09193a5fb6081db6af934ac5cea619bcf612c244423cdfaef75861";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/th/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/th/firefox-96.0b3.tar.bz2";
       locale = "th";
       arch = "linux-x86_64";
-      sha256 = "64cd2e44ccabca972a9ea1837d8aa79bb21dd675c7e205cf9b7978418707762a";
+      sha256 = "ce6a04ad52b0ab49fd4db6724fe43c1f054fec37fe2434536985642fba1999db";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/tl/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/tl/firefox-96.0b3.tar.bz2";
       locale = "tl";
       arch = "linux-x86_64";
-      sha256 = "b76c0b12ce6ef4a1b25185290d8f35c834220d1106aa4298f0b0026f29874f5b";
+      sha256 = "10f31d9636f9124aefd213ecb06da9be7ddfe70e2413ce66a1c1f84407f33319";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/tr/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/tr/firefox-96.0b3.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha256 = "f1029745fe9fc26b3e3d1672c736785bf7d1bc182b5942ad0542d72a87a4b772";
+      sha256 = "c83e8170ef55f271fb9c933505cf66d4e42eb8973d6e1751c903ecda3bc92cd6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/trs/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/trs/firefox-96.0b3.tar.bz2";
       locale = "trs";
       arch = "linux-x86_64";
-      sha256 = "cd5115bb83023c0d3a7623b4aa88a093e2ba6f65e4f0275d4af66bffa0ad3bd8";
+      sha256 = "484905693e9e952a56627561f10ab429e7ddd2df5b534252f60aebe52ed41b95";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/uk/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/uk/firefox-96.0b3.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha256 = "dcdea5127200c78331f4fa687a4b1a0a7600345e1493a1653296c0399dc9190e";
+      sha256 = "e17d15802c8d94770c6368aac7d46585483353053968c66f40f326dac00587d0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/ur/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/ur/firefox-96.0b3.tar.bz2";
       locale = "ur";
       arch = "linux-x86_64";
-      sha256 = "88f83c38f0a1a1590e0198ccbd0a48e8d8542bd2f697b3556541ccb49da7aa98";
+      sha256 = "e03b1c472787bf1ccf33568435b7873a4d6e8f43a0b82a01751995e8ccebda9d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/uz/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/uz/firefox-96.0b3.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha256 = "bd7e5a47455e79ae84111a85f368528f41c406e154d0453ff197207e75cfdc64";
+      sha256 = "1952bac0df8fb98273d0a4310f3141e928e6718eb1a91baed6d692088f041171";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/vi/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/vi/firefox-96.0b3.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha256 = "6cda47f9940c2d8a0f9407f087c26732579bdb852a20b385593e2874cc5fdfc8";
+      sha256 = "4d3a70f4cff2d11dccfeabe15c30ed99b74bf5058ad8f8c795d9bfd2db1dc11c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/xh/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/xh/firefox-96.0b3.tar.bz2";
       locale = "xh";
       arch = "linux-x86_64";
-      sha256 = "19a79670ffe4ecbdb577cf87ddf894a60bd447d906cd7f97161cc985fe8b5f80";
+      sha256 = "dd1c33d8a1769f2d4efa39eeb248a7cb6e2993f4b3bee38884fd997d7f20e026";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/zh-CN/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/zh-CN/firefox-96.0b3.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha256 = "7930a72c8c667b8e2d7e6ee9df6cfec692e854c6d8fc0f2f096a7a3158da3f9d";
+      sha256 = "623926088fa86ff736832cb35044d7d134ad1f4ff31666ba7dcbc31619c3a07d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-x86_64/zh-TW/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/zh-TW/firefox-96.0b3.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha256 = "bbc0687aab65d526e71e4050b0df5e7e28c59a046d82720b27d03dfa4efe8409";
+      sha256 = "6276f0e417d45cad209e0f57ac0276f52854f5172f7829684e4c8a49c0e78fde";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/ach/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/ach/firefox-96.0b3.tar.bz2";
       locale = "ach";
       arch = "linux-i686";
-      sha256 = "3304a4622ba40355058e39efc61be03e7ed804c3f7c10070db639e1382621d47";
+      sha256 = "0412368189b73bf54d5679c22271ca82f47c10ca1288431fdd16a42d51cbfb21";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/af/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/af/firefox-96.0b3.tar.bz2";
       locale = "af";
       arch = "linux-i686";
-      sha256 = "4659c04c84ddccd3ac85237fc53b63536bcaaf8a1adc984c0468797f926b6557";
+      sha256 = "67060ebdf9d7ce14c45db9edd588f99fe0485971674f791691766127a656575e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/an/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/an/firefox-96.0b3.tar.bz2";
       locale = "an";
       arch = "linux-i686";
-      sha256 = "e132e70c080fa4059dcf2b0a5c7d70067d7db51e56137df279f57f18ec0cebd6";
+      sha256 = "2c79a9307bfee1727a19cd212fed10ba02d31ef49bd68a51cf0ca0a7faccf2ea";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/ar/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/ar/firefox-96.0b3.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha256 = "822a3be31a33ff6e2819db3474e9b9fd326a5effe5d7106803528ec234e5cdc4";
+      sha256 = "a6ce4fdcb3716e2f70fb83502fa9e9e90489ac58d26a25627eae7b8402a0562f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/ast/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/ast/firefox-96.0b3.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha256 = "23b44191bc18c5412b60958a9dff985f9be1b5ebcdb12444008ea81b61e64e27";
+      sha256 = "21e4519d0403bf3e158eefe6c79d8283f2cc1e0875d91acdb995c0e83c56a9a9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/az/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/az/firefox-96.0b3.tar.bz2";
       locale = "az";
       arch = "linux-i686";
-      sha256 = "5def55e33abd17ab26f5e96b325b1d32bf16e32c6083e6437dacbdf52231b6d2";
+      sha256 = "0c1eaca5b928c2a1cc5a60a2dbbd624280ed2b55f10446bc886158e95af39199";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/be/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/be/firefox-96.0b3.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha256 = "23fa43713fc1e831bbc87bae66ea3fcd3597c60babe96b50bc58caaca2698f86";
+      sha256 = "e7716acc8417dbee838710d3efe670e081712ed3facb26bfa43864a574463ff0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/bg/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/bg/firefox-96.0b3.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha256 = "7ef88eb25bf6b37d89b6b90b76b812eacf70e3ed8d6ef2dbb22a469ad4da78a6";
+      sha256 = "a90e61e0b5a31ffb7cebe747e8a6512e68baba210f234913af1ab8e90c79206c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/bn/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/bn/firefox-96.0b3.tar.bz2";
       locale = "bn";
       arch = "linux-i686";
-      sha256 = "7d9a99a8e4955f746c27b0f54c4d44b30951fe9fbcf106ae7cf43f996e937671";
+      sha256 = "e75ccfcac893ac7d54d8cf849044385ed0749de77dd53be7a1b1686949a4699d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/br/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/br/firefox-96.0b3.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha256 = "94368ed9dc4801dccfca01e97dc07b4db309ccce60aa12846c2eeac68e51e6fd";
+      sha256 = "9c2286f7cf0d5052e44ac9aacf139e2c8abe9d212407960663819a8aa8436bd4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/bs/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/bs/firefox-96.0b3.tar.bz2";
       locale = "bs";
       arch = "linux-i686";
-      sha256 = "1afee889a4d450f373a42416c13305abb2bc2388da8bb3a303a89a418823e01f";
+      sha256 = "ceb98c5fb103e80488f8821027144b0d7124d0f76d360b6139308763a1ca33c4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/ca-valencia/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/ca-valencia/firefox-96.0b3.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-i686";
-      sha256 = "0569eb326a77638e004243dcc62108e4f0997f3496b464644526aa7c01042677";
+      sha256 = "f648e363da8ec8caa13ccfcc4d586efe0ac4e0b0d3574d295c95ac81dda937e0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/ca/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/ca/firefox-96.0b3.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha256 = "c1987149fdc39a601e15d5f64e8d9ecfef1955debe723f10b49ca65d097480af";
+      sha256 = "06b61c45238b90f8bb838193fb5035dc63c48fba416f16b7ab9463597bb92ab2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/cak/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/cak/firefox-96.0b3.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha256 = "72e5ae12cde0a72ae31d393ba637663666edbafaea53740ef806a7fef3d4c140";
+      sha256 = "ae0ce800b1455aa4c607123ead63edf228a55f4bdac14c267746cbb640f60418";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/cs/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/cs/firefox-96.0b3.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha256 = "478eb08e62251dc39f92d4a800c11e9724f3600e8f997dae616ac82e85ca1b3b";
+      sha256 = "1d7f47bdc98efaeda62dc2f3d1d16949a8cf3de96dcf87fdc30015ac7fdbbee5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/cy/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/cy/firefox-96.0b3.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha256 = "086fa2054f1185c40ff297c747abfc8d9324a08b2e12418632cdcc61fc668b02";
+      sha256 = "4a24c3368e2f88f75f81af2e17050e41160d99b27720517cc34a7772533ddcc6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/da/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/da/firefox-96.0b3.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha256 = "b657c66cd373e7644c56e5ae522531ca714fa0f7c529555289c5df45d0bfbd56";
+      sha256 = "5282d6c566361c74d5fb8c8d0f992ba5e929f2183b3abb9d479d7f1d53470dbc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/de/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/de/firefox-96.0b3.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha256 = "dddf834e5674b47d8e59bf921ba007067c9aef3d2efbd85634cc2ea72510bdb8";
+      sha256 = "f88988016fc2a8fa5543822d6fb1ad84c57f8f0d8ed2bafcc63552efb2361085";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/dsb/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/dsb/firefox-96.0b3.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha256 = "a407dd3b2bd3d986d7d59668fa20b6b2f4f71d3b54332a99142c08f7829aac9e";
+      sha256 = "252a9f2b5b99100abcf4ccaaad9982d48ebf903a7761d36e2aef766985fc0ec6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/el/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/el/firefox-96.0b3.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha256 = "8042da6d7c66aa7c45dda5830bfb67877e06a66ae2ead7343c74d51becf56ad5";
+      sha256 = "8e67fef2d4e2cf87a2961c7deebd244a1dfc7863e8474510aa196d54e199b4bb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/en-CA/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/en-CA/firefox-96.0b3.tar.bz2";
       locale = "en-CA";
       arch = "linux-i686";
-      sha256 = "9d9bd958a6e0854918333f65d6fd8a3ea461d127e5e160500da186a4a907d3e6";
+      sha256 = "a687d4abfeece55bdc35bb000a802ac6a67bad8af6cdcf88802b7d42c486789a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/en-GB/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/en-GB/firefox-96.0b3.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha256 = "7fa0b938156a578297d1fc937673142be25f8b3cbbd97480b4be654fe2784b50";
+      sha256 = "27819a8e87dbce94ca4bb2b3465153c6ab974c52bb81b2517fc685b2089548f2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/en-US/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/en-US/firefox-96.0b3.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha256 = "33d62cbaf991fc592da3f913cfb802f0707b0b1f72dc7416fb1cc22c381b7ae4";
+      sha256 = "21cb440725cf0378021b4a6a858fa3d344b39292a61e4a774d065e9e41668e24";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/eo/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/eo/firefox-96.0b3.tar.bz2";
       locale = "eo";
       arch = "linux-i686";
-      sha256 = "d374f116d4e769147be1a56c2c6410f1fdaa8d86ed58475562f906b061c0c3b5";
+      sha256 = "ed0bb4aef9a5ff6790bc36f3ec45bf140ff23343a36716bc59fbdf4cb31c0976";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/es-AR/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/es-AR/firefox-96.0b3.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha256 = "700457bcb26d5ff2169b9e8c23e6140cffe48742865eee51fbf5d9932c59adeb";
+      sha256 = "436ae41521b50068bb5fc9768936c4a4b77bb0a37f48ddb84cf8946a4a7ea76b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/es-CL/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/es-CL/firefox-96.0b3.tar.bz2";
       locale = "es-CL";
       arch = "linux-i686";
-      sha256 = "563af53b075039919e6e15690c089109ea2b846852161e7fafbbc8fe2b20a441";
+      sha256 = "dc354dba3016dbe13ce744fcf654b292254c8fc0f53e55218952c6fbb961fcaa";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/es-ES/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/es-ES/firefox-96.0b3.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha256 = "0c20971406b742f2b18097909f68224f4cab619ba469aeb8da19bb8cc2ca18e6";
+      sha256 = "87bdfeab9856f13736ead5c3157d05a5d0b73c27a2ad0d7537bb63d994cf9703";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/es-MX/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/es-MX/firefox-96.0b3.tar.bz2";
       locale = "es-MX";
       arch = "linux-i686";
-      sha256 = "6ba00dca7e382da326fbe35eaf25312d1b4a85d5baeb64514470d20774a4efae";
+      sha256 = "6dd1f7fcf13e9c651d3359eadb1b8b2c13aca121e294ee5856f663a712438ebb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/et/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/et/firefox-96.0b3.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha256 = "cbd3353c4c236ce9b9b65ae322c6d43dbd74a27db638d2a01c4734e34b285e3c";
+      sha256 = "fa5e600d2cddd4c93596baa0bce310cdfee9eef12df808968972382bee32f57e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/eu/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/eu/firefox-96.0b3.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha256 = "3eafe56e7675aa503cc036d7adb64981ad7a06bf934c7d6c0ecbc4af8a895441";
+      sha256 = "1b277fc9646ea8d060c1bb554ca04e42b0099c70a44e697990ac4289712eb12d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/fa/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/fa/firefox-96.0b3.tar.bz2";
       locale = "fa";
       arch = "linux-i686";
-      sha256 = "0dbb9c473b58ce34d3924dc5f8a41065206f06a0993246f111c0da0561352624";
+      sha256 = "370329076e609bcccdda5f472b334cb8dfe3df0e8eb696d22aadaa44f8b0b539";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/ff/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/ff/firefox-96.0b3.tar.bz2";
       locale = "ff";
       arch = "linux-i686";
-      sha256 = "723bc7955202c4c3425e32045d21177a3d312f41fa4005c3561cd6d959151c10";
+      sha256 = "9b9e685fc94652195b00b5a959e48d81142b7589e0ac9d163c39f07cecadf27d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/fi/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/fi/firefox-96.0b3.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha256 = "085f28f412ed53662519fabff853e6515b26427044e935dcf6106716f419c748";
+      sha256 = "f4b851f9a39fcdfea9034edf0f4930632da04d9a3b949c65b682e30dac63cb45";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/fr/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/fr/firefox-96.0b3.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha256 = "84e90806913574e980a6538cc6519d201bbe939fb857f34feb05897fa8c69409";
+      sha256 = "e72943c2f034282b73aa136b272dc7e7e9d2bdda5b2c2db045029f05a0e8b14a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/fy-NL/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/fy-NL/firefox-96.0b3.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha256 = "8cbcae8c008c679c234c51f56097691e9a9159ba58937c74e38acdb616ae6ba0";
+      sha256 = "e2451341887d6dc51f3aee8c8b9a7dc65277e3cc9df9e2fafacdf67da838e48a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/ga-IE/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/ga-IE/firefox-96.0b3.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha256 = "d40a5549c9f8982a8099ef54d0e459bf6d860b30df38b677ac01c16a0a57e330";
+      sha256 = "01a03a21f479475d224fa7559a5b4e98bf978f61f4e472a58b1d1d272cf5fb24";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/gd/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/gd/firefox-96.0b3.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha256 = "d5eb63613d83d2ffb5e11cdd21629dba7058ba955f5efbb002a010fbbc677406";
+      sha256 = "b64c925beb57420c5c76c4c4ac78282beabe4a6ad7fee19bd6bd4a9af2153422";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/gl/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/gl/firefox-96.0b3.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha256 = "21fd943016e8f8262f1e1873c3761d7bccf75f62c0274b09e441327f35987fa1";
+      sha256 = "250ac76432b7312bc1173ee34a32d0e658c0ea658664eb296b7c5dc2c1fb6ca2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/gn/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/gn/firefox-96.0b3.tar.bz2";
       locale = "gn";
       arch = "linux-i686";
-      sha256 = "3ce4b7cd3cca655ae114e3b2a8b37e10ce4ef8d7a67f9102ec2c0212cfb069df";
+      sha256 = "bc3a716efd7cdb0538714ba3469a5303a9496b0b1f81d43a41b55434c047c991";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/gu-IN/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/gu-IN/firefox-96.0b3.tar.bz2";
       locale = "gu-IN";
       arch = "linux-i686";
-      sha256 = "3312ff91d51e10efa1318403796c0f4029723578784a5d51158ae7c316afc4f4";
+      sha256 = "c6d2e017c5269064a5716d54f5df9f2e2dfe621f9f24e7d2a9dd3bfd6b47983e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/he/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/he/firefox-96.0b3.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha256 = "f9b24ae14c635b8fae22cd0fce522e0b59f1f98590d697c4cbc82af682751bae";
+      sha256 = "0f3e2947b7e03ab0197af6817774a7e0bb11fd5dcf13df23ad3cb2899da49cba";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/hi-IN/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/hi-IN/firefox-96.0b3.tar.bz2";
       locale = "hi-IN";
       arch = "linux-i686";
-      sha256 = "09629e8ae42901795c05957c179020daf446201237d39c055d611806d0b86b78";
+      sha256 = "161d898a2d74fbb709fb3d19c7444c9892e035c2876f66384c920ae3f76e21f0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/hr/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/hr/firefox-96.0b3.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha256 = "6bcfd3b48a09e222046ff349ec824e4b60cc7babcf63172482115ccab078cad5";
+      sha256 = "8bf24778507063352156caa82fdbaadfde5c840f2637196d87cd314ee89a3833";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/hsb/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/hsb/firefox-96.0b3.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha256 = "7e3d6c90d330752792000aabae8250d23fb7ff12f24adc9c47279db194cc6e54";
+      sha256 = "77f1a913c4e2973593edf6982eaa767185ba4b8ae91c16b967e8f3c7e82d72df";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/hu/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/hu/firefox-96.0b3.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha256 = "2fb95d958888fa4247478833ca047ee7ac76e4032b48163ad61ca5597dba1d35";
+      sha256 = "f4ae877d906e7427703df3f219c0c95abffdb995328a80de3b069cbc5eba4a42";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/hy-AM/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/hy-AM/firefox-96.0b3.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha256 = "d6d056f2841b6f359dc4ae9e22b9a5e8698a26df574b09cb3c79fa44d1d86790";
+      sha256 = "0d3371fe5359ec1d23dc58e00151ee81838c18a8e9fb665d48c3276ffa34809d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/ia/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/ia/firefox-96.0b3.tar.bz2";
       locale = "ia";
       arch = "linux-i686";
-      sha256 = "a6360b38bc8d7a7265e3f66ad669bf40bc25770fba8cee29df420c8d396d271c";
+      sha256 = "7194d571e3cd92afbb8e19c5ecfe15e0c0ed4af28961008efeaf5e475ed8c1a9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/id/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/id/firefox-96.0b3.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha256 = "ef34e9290dbe1e8f362311b43798a78c7455db5e214397e2d7285a38f5599ae7";
+      sha256 = "79a5a4d97a106dafb9ff6ede0e853dbbf24aafbc3f654f5b8244ba2a09ac6ff9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/is/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/is/firefox-96.0b3.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha256 = "bf2d2cc1b6735466c70fbd6dd463b240fe17164b6c6a9bea3b6e2839f846699a";
+      sha256 = "fbc2bd2dc236706d1e6599d32a6aef5b4dea0b2dbac4a0d59854205dc66c6958";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/it/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/it/firefox-96.0b3.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha256 = "628ef481ebc9996eefc8cd689d6e7ae6a41c4d11be5cfe1e3a08ef05d2bca8fe";
+      sha256 = "5d1b79b6be89b593f79982460bc10d160f8914c4544a802045562547b59ba364";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/ja/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/ja/firefox-96.0b3.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha256 = "6cd76540da568857deb06c5b1c6c73003548f9399bfadb25b425a35a30e5eeb9";
+      sha256 = "c55511e3e8546d31230e8735a85e9c2745d3358567e424324bbc850c8f9399b2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/ka/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/ka/firefox-96.0b3.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha256 = "811b0f7b73ac2726f6ef5a07d923c29a2821a6f7cacc18e79ead5efb7c4deecc";
+      sha256 = "009a89d79b2020f8e86a9d61b21b5751afd3aae053ce0c037b3cf303f528cec0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/kab/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/kab/firefox-96.0b3.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha256 = "d384e7975ad2110e48cc2c17fb14dc8bcfe14fdae481a538c6b66eef627f70d6";
+      sha256 = "06b51518cb8a3ef97c084f1cafaab34a8175b7efab66e16d3f4f1f7d72aa9df4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/kk/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/kk/firefox-96.0b3.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha256 = "315d84a82ab42fcd471758191f012e52565cf907409546346a35a46b33af87ab";
+      sha256 = "560b8a7cc248639361ba08996a477d2ef7eab0482f41bba67f0371c841ca490e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/km/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/km/firefox-96.0b3.tar.bz2";
       locale = "km";
       arch = "linux-i686";
-      sha256 = "3b0620bcb47b92b7a2e46f52ae6fc306615dd94b85c37e445158eb3161e73ee5";
+      sha256 = "cc0a12c6e2feab652d08d28a27b79a9481209f4c3869372b37f1cc5e27ff8e70";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/kn/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/kn/firefox-96.0b3.tar.bz2";
       locale = "kn";
       arch = "linux-i686";
-      sha256 = "3e4e906b80f438ec81de41464d898f8a2d23385907d8398afe12e8c6473921a1";
+      sha256 = "25541e2722cdf1621dc42ad529447c31c0e9e8ccf7300f87d89f2e1f91240fd9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/ko/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/ko/firefox-96.0b3.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha256 = "d7bedd07d0cae948c4c995930b5fd84f90e84843f7024e93f37af2bec9e5bf2f";
+      sha256 = "cde1314a8135543aa98a9c28c083e3f57700be9990ba2ef780f6dce4a8de6dd3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/lij/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/lij/firefox-96.0b3.tar.bz2";
       locale = "lij";
       arch = "linux-i686";
-      sha256 = "86b64f383a0f139b7ea280dbc8216a98a2bcfa5b89b59cea9a593830eed2400c";
+      sha256 = "f85d1f85763fac8e748662d1b493cd06dbdac37960785cee0e8946daab10fae6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/lt/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/lt/firefox-96.0b3.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha256 = "0d9abd3f952d2a8c5e44bad8e459053d796ab9aa78aef2bed4bc5c9079e9b91c";
+      sha256 = "34ff1895eac6fda351b210ae65b2edbf837ca8a5a5592caa33750ccdf529c6bb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/lv/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/lv/firefox-96.0b3.tar.bz2";
       locale = "lv";
       arch = "linux-i686";
-      sha256 = "de4682948f45b82942a5f544177927d950401ef734d956527528edc098321051";
+      sha256 = "9769e7039a980ae239d242fd6ed4438e7b90e1fd91f7d9ceafd52e8183bde1a5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/mk/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/mk/firefox-96.0b3.tar.bz2";
       locale = "mk";
       arch = "linux-i686";
-      sha256 = "45d25d6f46bb9807cf0b05dd8148049860e7a86c04bc814498e33c68a8958a12";
+      sha256 = "1217469bc4707454ece2ccb422e99e85724845760a4a78205753c07354a2d6aa";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/mr/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/mr/firefox-96.0b3.tar.bz2";
       locale = "mr";
       arch = "linux-i686";
-      sha256 = "f29ac0279437c0392dc77ee3176cff58f0d6c5bf2836e0e51877722fffa83cc6";
+      sha256 = "e70d4bb799117c0343a17f57adc733dac1cdbacf30dcfe0ebc195da3de091408";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/ms/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/ms/firefox-96.0b3.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha256 = "1d6f1af7b50d0aab0385fee820c3aab54471b19d47ff6384f5198aa6ce01cc16";
+      sha256 = "91bff99d4326c16466ae3c4d1646f14cc8d341cf93c71db6dec117ae24dda154";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/my/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/my/firefox-96.0b3.tar.bz2";
       locale = "my";
       arch = "linux-i686";
-      sha256 = "33460df1b8f1db24347b97bb953b8ffa29895c2b048fb1ea3067bb6059122ef1";
+      sha256 = "4efb3b03955ab8cae4925704fef1a1d1ebc20c3bbdbb9332d1be31c2aa0f16a9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/nb-NO/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/nb-NO/firefox-96.0b3.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha256 = "6c3f0adbf54636e6d9e073d4e3265d54b4fd2f63f716562b7b1c0979f2dd792c";
+      sha256 = "9c01453ebeaa772eb1ad092400ff6da05d6a36d901fe4f9ca9d98bf4c41d2d40";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/ne-NP/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/ne-NP/firefox-96.0b3.tar.bz2";
       locale = "ne-NP";
       arch = "linux-i686";
-      sha256 = "b0c5ffde1b4e61e67e7eca8dcd91fab8cddb582a8574ac0c9cd68af2ea16ce9d";
+      sha256 = "697bf0266fd4cb19e42619054795bacf4e9a065dfd976086b074be47038f86ac";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/nl/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/nl/firefox-96.0b3.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha256 = "6beed6c4fa2915425f14c510ad979830cfad2fd72166b24df13000b2f8ec111f";
+      sha256 = "7314cfcd476f18054775d03d96787afd4572437c507b0387fe3104e272e66f32";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/nn-NO/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/nn-NO/firefox-96.0b3.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha256 = "db6056951f6d1728b63834ce33f004d582d14b16d3b376c22518c4f1c7cc3cd4";
+      sha256 = "3fc8dc069fb41aca43581f3551a485f4659a760a275beac5087f479eba0b4605";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/oc/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/oc/firefox-96.0b3.tar.bz2";
       locale = "oc";
       arch = "linux-i686";
-      sha256 = "faaa3ac02d5a7baee92e6ed61354df09152ea21d45ca4ed75cf8b8f8efbad154";
+      sha256 = "22ea3193fbdddec8deb897ad5551fd94ceb659cd8493a04db51525c29ffae0c5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/pa-IN/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/pa-IN/firefox-96.0b3.tar.bz2";
       locale = "pa-IN";
       arch = "linux-i686";
-      sha256 = "5d4d904aa5dd2485ba3e86313604225b077ad962d845f61e6bc6b8eabb6e7f35";
+      sha256 = "2f3dad5c917a28b41fc1ca3365316a281c6e6560283d2002364c2bddad5d7a52";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/pl/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/pl/firefox-96.0b3.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha256 = "e5d83fb5fd509bc184fcb5f3adb8fb81fb463f1c2574e4e72955d33a01272920";
+      sha256 = "6334e79bb84d78fad334d9298c8104472ce7297c17d80f28144cf0751c42ac80";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/pt-BR/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/pt-BR/firefox-96.0b3.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha256 = "aad23fc465192b61be02b5fc5f01740d20aa996d57791876aa19b7720dd40cd2";
+      sha256 = "8fa05c175f271723e107ecce6d2a7d6b8e5afef5578ead1d6c8ece920d4b0a91";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/pt-PT/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/pt-PT/firefox-96.0b3.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha256 = "30b5caf7c87eac3710d111def0de7e54fe526936615749e52c81064a8866e768";
+      sha256 = "7b6751f8883c439f1fefa3b1c220093299f1dbd27b8a49c467113e8200849a72";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/rm/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/rm/firefox-96.0b3.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha256 = "90a0e636e2cf1c09509d7fd3b0066b3fd0fd416278e343785d481b7317e1418c";
+      sha256 = "81dced560a8048a4113c3a99ef72137174de6bff64a0ef4f0bd669f3d7f6d89f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/ro/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/ro/firefox-96.0b3.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha256 = "5435af6e4e1925bb6acc900c317f1f125913c8bddb1e0f0e6683a9e197d9feab";
+      sha256 = "692746c7919b64f23bc92c00a7e7ba60f54152430887b608b84bcc105a436a33";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/ru/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/ru/firefox-96.0b3.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha256 = "97b81dbd06f70809aca62ca6286b9b16146c756b98ceedf637dc7ff63307bde3";
+      sha256 = "52f4b321e3e149fa0317d610f85b4637b464c79b1b2046ceb9dfe2f4e56b6c6f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/sco/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/sco/firefox-96.0b3.tar.bz2";
       locale = "sco";
       arch = "linux-i686";
-      sha256 = "bcc11d20f0a2e3ded5403a5e61b7eae5358c7b96c5aecbf4c67a00bacf2ec781";
+      sha256 = "3297b5b0d67381d1b7f9c4f76b767c6a5f76388d473afe5e9bf0df94a7bce0d9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/si/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/si/firefox-96.0b3.tar.bz2";
       locale = "si";
       arch = "linux-i686";
-      sha256 = "b703797f67966452446b7e7201701c660518d61f20a0f68c927352a434b88ebe";
+      sha256 = "bc1eae9950eb6bc6a79fd185835aaf7b3c9394c7d19bfb78348a1f4987315636";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/sk/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/sk/firefox-96.0b3.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha256 = "55587531dc284fae18b03ea65ccded3c8b0e36c5f6a2302b46954c11f3bbda79";
+      sha256 = "fdef69d9e24c00616b177dba71e2c5db29f8c945cdba4c3dfbb39753b1f01a72";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/sl/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/sl/firefox-96.0b3.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha256 = "f0397fc96c9c46c0962de1c1a009fcbabbb1da6a15aba5568cfc1deee1d127b8";
+      sha256 = "7225b70db5b568634792f18f0f6ddca4ab94e00b225942c6a4f5c4741ac9858c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/son/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/son/firefox-96.0b3.tar.bz2";
       locale = "son";
       arch = "linux-i686";
-      sha256 = "f43039295499f068ef3e2ed9138c25cc6343bcbd68e845b58bf3a40cdbb12db6";
+      sha256 = "2c7f228dadbb2b3ecd424ab2e80a532e17e861f92095e5de5ded2006e79e9dc6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/sq/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/sq/firefox-96.0b3.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha256 = "7c1ef14292fe2bc8bef11c2730d6604c8b82bf102c024c9560e9fa747961e374";
+      sha256 = "63fec6dfd214dbce4b344ed347eeda9adb489707e06e6a4e1ad6fa828e0da7ff";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/sr/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/sr/firefox-96.0b3.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha256 = "e5f72a3073be18d5a5493f15126895c5d8182489be19fc8704dc1cd92997d17a";
+      sha256 = "8d584d48c4e35bd7ff1438c7a80e0b353bb4871ba946119c36f1fb3bd135518c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/sv-SE/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/sv-SE/firefox-96.0b3.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha256 = "27b9c49f5334b06017cd2e953eea41c6a211010b316bbff9dfdf15a7276f293a";
+      sha256 = "d5e7514a67a288e755d7ae30f2dd680e2138e50666fa15c1b710d0a454a51730";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/szl/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/szl/firefox-96.0b3.tar.bz2";
       locale = "szl";
       arch = "linux-i686";
-      sha256 = "b94dcd8e3442ab29763216ceba888f205ae2a27bb1eb8cd9d5d7473f6fec1f9c";
+      sha256 = "1557cd8173d79820d852d99c0cbb07249c2bf17bb778670e437c4d408329fbc3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/ta/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/ta/firefox-96.0b3.tar.bz2";
       locale = "ta";
       arch = "linux-i686";
-      sha256 = "fb6150c6231844130fa488ab0dc91fabf4e06d2dd7e9b8a6605689e84f59b027";
+      sha256 = "2001ea5bb925d5a1e845844d03c441c2cea9a61b042df518d16e484a3a7901ba";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/te/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/te/firefox-96.0b3.tar.bz2";
       locale = "te";
       arch = "linux-i686";
-      sha256 = "07737bb07b4bbea1474084aae0e1733d63f7bb630ee1c51bf006127e1491203e";
+      sha256 = "c9994fe1e9212281fc007ba8f6b703856693deccbc083e17dc94b6da8ed29a72";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/th/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/th/firefox-96.0b3.tar.bz2";
       locale = "th";
       arch = "linux-i686";
-      sha256 = "c11be11dc71a2ab9dd30cf2f11c858d7b4d0d28009e0d1ddb210fe2c83c72d4a";
+      sha256 = "8c6b207b23fe66c7506da96df7de25270218ce9ca61bbedd693fc6f69c970d53";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/tl/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/tl/firefox-96.0b3.tar.bz2";
       locale = "tl";
       arch = "linux-i686";
-      sha256 = "70b6ebd47c72276a4002c4fc390204f8d741e1c04d85e24a53547120b432fc34";
+      sha256 = "c9c7cd8c6195588bfbe1c812425f94e7b2727fa0ab73e247b543cf85ea09b171";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/tr/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/tr/firefox-96.0b3.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha256 = "1d8b06c8141fe52e6417262b9a863d40061d3a02bb76b3084144adba86468093";
+      sha256 = "9b7688be959e16f4ed652ddef4cde0bd5b3df391b8c43c33b6234ae5ba404987";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/trs/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/trs/firefox-96.0b3.tar.bz2";
       locale = "trs";
       arch = "linux-i686";
-      sha256 = "68cd9ec55a3dd9e02fb4cdc5efa1ef5811128aa344bbae7d249be5c5e3a8f661";
+      sha256 = "470596584e9bbf2795624b5baf878955229472450fa7178c9e4612408452b170";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/uk/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/uk/firefox-96.0b3.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha256 = "b596c8dd7c495f13980c9f8f8ed8f2dd622f13c9add9a82009b053edc865b34c";
+      sha256 = "814e5c7e9609b6ae72d2c4c0e012d503394ee6c669e777a0e3b4e4dcb4c7612d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/ur/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/ur/firefox-96.0b3.tar.bz2";
       locale = "ur";
       arch = "linux-i686";
-      sha256 = "ecf825d26894269e22c325116fd22630f6377d8f75931ac078ebb717a0112df0";
+      sha256 = "2113a0313ed3d675bf1adecd574bd0112fa5c03d23f670e522928adea6c97265";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/uz/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/uz/firefox-96.0b3.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha256 = "775015befdf60a0b7afd26a8a5c3fe50e72e34ade98915c8f8035c24d9f1a96d";
+      sha256 = "4e759986facde4229324402963e0442d1592147c8f4bdfdcec5ec067e2d0b123";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/vi/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/vi/firefox-96.0b3.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha256 = "285a179a4739adfd2a1aab9e83363b79ae61b5765119992175aaabb49c109e5c";
+      sha256 = "c77990635980e56d3856b3793f186a61aaa6da43ee0e0970e7ab06953596f85e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/xh/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/xh/firefox-96.0b3.tar.bz2";
       locale = "xh";
       arch = "linux-i686";
-      sha256 = "45824831250c36ecc54cbd01dd54451e11f8243b17da30604121f478cb44b634";
+      sha256 = "b4a725703b13e230f84c3a5aa1b9532a7755888a2bf7516b5a0c3a79f70f1ff0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/zh-CN/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/zh-CN/firefox-96.0b3.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha256 = "3faa40d7423eb4b3c7a83326dd510efb7446eab17ca792e9006e6e1108d47112";
+      sha256 = "fed127eedb2d7bf82977c9aa3311e40eca083b7fdd6a7e58f44b315e209c3267";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0b3/linux-i686/zh-TW/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/zh-TW/firefox-96.0b3.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha256 = "d29c7d36ac4367ad8e0c758ff041602d873c95d962edffbafd132f9ea494e8d9";
+      sha256 = "d29db983e9791aea1dba8f483cf9399ca032fe081e6e8cbb08d9fac3d644c582";
     }
     ];
 }
diff --git a/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix b/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix
index 58976e8ee31..eab96830a8d 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix
+++ b/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix
@@ -1,985 +1,985 @@
 {
-  version = "95.0b3";
+  version = "96.0b3";
   sources = [
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/ach/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/ach/firefox-96.0b3.tar.bz2";
       locale = "ach";
       arch = "linux-x86_64";
-      sha256 = "3fd3329cb4813ed6c241067b6c8ee43ab248cb8557ade63d6019a7b77919517f";
+      sha256 = "dd41bff1f1401eb376a3ab26154a42cdc35e409cdde24435737d753b15435fa6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/af/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/af/firefox-96.0b3.tar.bz2";
       locale = "af";
       arch = "linux-x86_64";
-      sha256 = "2681fd38676829807eaca78013535db672a8ccf9cac12ea4b906898b148d680d";
+      sha256 = "963103d54c26d76abeebbc86480836408f8eb7eeee96178ce53d6fc269029603";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/an/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/an/firefox-96.0b3.tar.bz2";
       locale = "an";
       arch = "linux-x86_64";
-      sha256 = "a07a3708c17587dcadab18e10205938311b4a74a668d820fbaf68d6029c86a75";
+      sha256 = "51862a663ea34d9bb1ae78bcf7846f6148dd8004cbdc6ed49c1252590262afe8";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/ar/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/ar/firefox-96.0b3.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha256 = "02c6f9c848b62b9ef77a9530040c35645cfddbfecad6d479e6845ae93dcfd7a1";
+      sha256 = "24857b772fc0a7b018c0ceb51913b1a76df59ef3a95fd41f464e1c51b5201e6a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/ast/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/ast/firefox-96.0b3.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha256 = "8dcc6a6f746a9f4d766a71608fbd67e737fddcaa50cbf53738780913c5762a32";
+      sha256 = "44c45ef6d101d0bf6f57d663ae6943a7d3bce248eb8feb35dacde292b2c3fcf1";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/az/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/az/firefox-96.0b3.tar.bz2";
       locale = "az";
       arch = "linux-x86_64";
-      sha256 = "4ada53459d9f5040635b2873d21bb59da37f6fcbe3d389bdd42c3484841a3410";
+      sha256 = "c196437bfc3aa231859ebdd2f335eea4991c4eae6bd3cf9c64f4eb195704b1e3";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/be/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/be/firefox-96.0b3.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha256 = "81285777b5e76044d3e1bb66ac458cd1ec40d4c6b7cba8ecbb991869b628e33f";
+      sha256 = "a1d1eb29a51a84c2c779bd2090a7a064d1b7d290e0389672351821d414fdd35d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/bg/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/bg/firefox-96.0b3.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha256 = "f6b2d858c9a7dce01648b04d653d5835f2d23b660fe199b5e5816d5099c5b2a8";
+      sha256 = "1f78b12ceb1951ca0e354ee04ff6a7893fc7596480b9df1c9eb443800778e033";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/bn/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/bn/firefox-96.0b3.tar.bz2";
       locale = "bn";
       arch = "linux-x86_64";
-      sha256 = "0dd4e9ad279a3a70d5aa4df2cbbfc59ce244543d0db5d95d8cdef19851a35c3c";
+      sha256 = "b010759c37cafaa3e296b2b71ab19d2850ed62043c3a04e80b21c4d9e9acd235";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/br/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/br/firefox-96.0b3.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha256 = "4f2efcb73678541f3e30f7b7777060787d8f21c7a9a93f401f67d29716686763";
+      sha256 = "5d58e3ad0cf8de459d68b60653af865bc1e11a1b69a6decca9e630675405885c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/bs/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/bs/firefox-96.0b3.tar.bz2";
       locale = "bs";
       arch = "linux-x86_64";
-      sha256 = "01be296b46d77a34a2c0548bc1e671a5ac22825a1bd34a280a69b12592800418";
+      sha256 = "d3f1ce059e17f6a14cad30ef2609cffe61bc3495bef3ada1a2941bfd8bbc440f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/ca-valencia/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/ca-valencia/firefox-96.0b3.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-x86_64";
-      sha256 = "76872161dd216803b8446a69c953c44d6e58aa6efd9ac829d3f07f52f6cb1270";
+      sha256 = "e06cf1c020f3f65e99c4816b054c9f79da55f892dde27d8acde17ebc24fbc840";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/ca/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/ca/firefox-96.0b3.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha256 = "b92b2b0c22515639aa14ed6526cc01e328e9a66f646113cc2dd3ab573ee8e5e3";
+      sha256 = "0f9644f78246459e2d7b0c8c1dabc5c33d5d20d2c6d517cee20fb540db501cd6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/cak/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/cak/firefox-96.0b3.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha256 = "8e9db7fced10d04d1de472fefdc67b56d1c272d3a5a656d3992f9d2f0aa4cf85";
+      sha256 = "9b78dc607de8f66352a778c05186806b0fed9afa8474fc4f2f9346c4298d0be6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/cs/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/cs/firefox-96.0b3.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha256 = "64f70a9be5f426f6ca3c7c3defbb70ef77f7bdd4e0047a171119af3a700342e3";
+      sha256 = "cdc96bf52e2d9d463e1caca4eb567ec723311678233db59d1cb57a2e7e16c593";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/cy/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/cy/firefox-96.0b3.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha256 = "64f99c6cd821a36e398be38fad603f804511799cfdf5ee42983f31b616ad9f58";
+      sha256 = "91c833ce44c24d3fa7b90bab56d0994c930649ae39403c6888a85c2e22fda7c8";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/da/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/da/firefox-96.0b3.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha256 = "355b1cabe8ec16f3d71718f88fbb28675c3a6af222674d6e4da70e6cc4d14094";
+      sha256 = "e8602e1cf72f9b98dceb23694eaeef70a82bf2704cefb4dfa9db380a31eda03d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/de/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/de/firefox-96.0b3.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha256 = "60dbc682145d8c3ef5c3526768bbfb495e95d6f2724051acca692e23c4f934ea";
+      sha256 = "4d7ab6dfbc168e1edcf7b06b9da65e88b805cde7adc14519e2139fc811188b24";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/dsb/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/dsb/firefox-96.0b3.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha256 = "865e6173162f5120168f449ed56eff83615594e4149d4b7ceb3b42cbfa4cee9f";
+      sha256 = "e0288172d3e7fd5f9d8631cb36a7f69118aed0b3daea8ca6d4bda0eee53a2353";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/el/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/el/firefox-96.0b3.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha256 = "a38442cf1402a6e36606bb1fb8ba65a67028cfe57a787a38ed1495aae1adcb95";
+      sha256 = "eccb1283cee2fa9d6b35ed0cf30f789f422094cf2fb17966b9a406026bfea2d5";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/en-CA/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/en-CA/firefox-96.0b3.tar.bz2";
       locale = "en-CA";
       arch = "linux-x86_64";
-      sha256 = "f4a717ef12401062a8cf4eb2b220ea18d7999f02052b67b82cefc714b18a8c22";
+      sha256 = "7769bc1d977fec4e0b5362fdfeb0b0f52bab1d0b12b012c90ff2b096209bc7c4";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/en-GB/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/en-GB/firefox-96.0b3.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha256 = "27c1b9bb1fa53ef22a6f0c31b91a449c81804734da66b30dce4491f8531acfe0";
+      sha256 = "71e3b186ceb1333f4b95429e63abb1c0807a7f1df2c0e8da26b5af866ad077b7";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/en-US/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/en-US/firefox-96.0b3.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha256 = "43bf184b95b9ff25c415ae9fe533649c0108fe72aee24c56521893d05e2a009a";
+      sha256 = "cb4602feead2f7e7b407e83594ad2edd9de856d334a7f9cfd392a7764adfbbc2";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/eo/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/eo/firefox-96.0b3.tar.bz2";
       locale = "eo";
       arch = "linux-x86_64";
-      sha256 = "5946960568857d35a1fadb3c3bb2bc9a42dc92e64d6652ceec64acc7e20553f9";
+      sha256 = "36ad536374a186e2d9ff4c2894749ae43c512555ce2fcd5f67b0ee76949a764f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/es-AR/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/es-AR/firefox-96.0b3.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha256 = "7380846a63a5b8e8a3471d2af3c26b50719084e0c72253c356280f3e4ca3f508";
+      sha256 = "8f4c854834fe8bffc682f8c29ee674771f70f78d28173cff3beaab13ae637c54";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/es-CL/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/es-CL/firefox-96.0b3.tar.bz2";
       locale = "es-CL";
       arch = "linux-x86_64";
-      sha256 = "6d41074e2c44d1d0ba63c1648697ae2bb1a5254c41da00a1b1f33df1228a0443";
+      sha256 = "3381fa208df76553b85a53cfbd4ced059cfccaea1a8e246a5d0d1c54efed8e8f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/es-ES/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/es-ES/firefox-96.0b3.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha256 = "021c5c9c71ac4556de6c7da4cf6b36e1693fcf0746ac57174effbaa61c0f5025";
+      sha256 = "e98d88c0e6350e477404ef14fc7348ee79f25fc9e31ed2031c93b79298fc37fa";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/es-MX/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/es-MX/firefox-96.0b3.tar.bz2";
       locale = "es-MX";
       arch = "linux-x86_64";
-      sha256 = "c2df6f4a405f8b0194d1aefaa3862156b66ff9f488bbb3b720abc20a3fb473cd";
+      sha256 = "26b84f335c5ba6238d69a7537686141188226859d17b0a64c71a1ca0ac9e9d70";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/et/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/et/firefox-96.0b3.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha256 = "62bef0b8102b3809c46b792e96c130ecd8c2b5a2c53418d4e9cc72dff78b9b99";
+      sha256 = "9371d5111ee591ea4179c4932e03d1686b4f8555c5b6b1dc110382b43dc046f8";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/eu/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/eu/firefox-96.0b3.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha256 = "b4932b60aa4e36150dec1d8b7b5ce0a244bb628d37312b7c8a6f0867966e1773";
+      sha256 = "56336434a3be39e71459a3ae990f3dbf826fc53ddd33410b0208e4104fb9948a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/fa/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/fa/firefox-96.0b3.tar.bz2";
       locale = "fa";
       arch = "linux-x86_64";
-      sha256 = "ee9418278f0e14c7e97258b8b17d100974457f1c59b9cc9957b9426a9846ddcf";
+      sha256 = "75105b2ec1f269e044332dfd1736edf0919141d3ce7ab979da06ac6a47c361f8";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/ff/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/ff/firefox-96.0b3.tar.bz2";
       locale = "ff";
       arch = "linux-x86_64";
-      sha256 = "b7c5d0ac455ed9ba1c5258b61e75b742ebf505a97e703d19f6813e1a013bf146";
+      sha256 = "86439e96051f460ac42154274401cf4f50102f89590e67e78024a7e0928a2dcd";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/fi/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/fi/firefox-96.0b3.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha256 = "ed78862c15000473d37861f592cf878298cddb35fb721f6fd0309a16dc936768";
+      sha256 = "e94714ca233a274a0229bfd6c9e5daceaecd2cab30b8314464b766ac79c1fc2f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/fr/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/fr/firefox-96.0b3.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha256 = "f0ed0ffdca130d03b96948c304150aaffd311486040bc8d925b99e34d4039f8f";
+      sha256 = "4b88a49838eb6f479feccbdf3109e3ae7ffb1215a433233d0200fe8713475344";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/fy-NL/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/fy-NL/firefox-96.0b3.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha256 = "219a1c17ebb2d41b025eb484a9f2df23068b61e56bd34d6ebfb8227d3ae5e5bc";
+      sha256 = "216868ae9bf52b914063b154015efb07ca384f5a722064ce9ce2ef2191722c80";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/ga-IE/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/ga-IE/firefox-96.0b3.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha256 = "793af4d583b68aa0c2102c81f3c677a547af0e335f00713c36580c93396f373e";
+      sha256 = "38fb2079928d7fbe4e8181a14f7c7d955d41fd14f0c73f0122d91c9eb1ef7929";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/gd/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/gd/firefox-96.0b3.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha256 = "97adc63c32a0cade64307695305f325e27cd97d3990bf6bc947da01b83872a62";
+      sha256 = "bd70c4241e3e8233458b7ff6bc2893de43e5917284222146a585fce47f785a5c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/gl/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/gl/firefox-96.0b3.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha256 = "c05af2043451d2f33d01d75addcb8bb6304e4f30322efc8663aab2373186afab";
+      sha256 = "edac88def8dbbcff4cb4b5c33ab77f48d6b96a8ee1765649913028cd92d4b4a1";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/gn/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/gn/firefox-96.0b3.tar.bz2";
       locale = "gn";
       arch = "linux-x86_64";
-      sha256 = "715b877ab23020886f7732e17df318d1e482aa7e63952f65fb6459748d53dabb";
+      sha256 = "1dcb25e73b9dd759cba339bd24b769c279c9eac1a4d2b47338ceac82d9e45bb2";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/gu-IN/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/gu-IN/firefox-96.0b3.tar.bz2";
       locale = "gu-IN";
       arch = "linux-x86_64";
-      sha256 = "8134da66866cb14b2322d7ca346dc00a0ce402cb2931cf33e409ac3f811b0023";
+      sha256 = "122331ecadf4b63319988f781c819f11f905d685f4a549cb08454a9d8478029e";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/he/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/he/firefox-96.0b3.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha256 = "2bc4ba91f25dd7fc0171f7e8c9ff394aec894a4ab537feb13b0f47810fc35965";
+      sha256 = "45f8c33eff249c9373dcf558648475b171be65db5fefa873f7553ba1ce77f2d3";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/hi-IN/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/hi-IN/firefox-96.0b3.tar.bz2";
       locale = "hi-IN";
       arch = "linux-x86_64";
-      sha256 = "7d20310861e6da853531130c814d22d6df4ef8c5d4eb8e0519e29f0b3b034ece";
+      sha256 = "9480b304d5c9ec6a10dfd480484dbd01dc41ea1cacee4b05b962d4a5bced4427";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/hr/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/hr/firefox-96.0b3.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha256 = "8ebc8898ab223c6f975effe14e8507326bc545990cb55b5e8c0efe186fc3c4cc";
+      sha256 = "a287cf31defa7923a7004451fb2cf72018ee507cfc167a67899624f7b8375d97";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/hsb/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/hsb/firefox-96.0b3.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha256 = "f149923e2048412b7e9a4df14479536a2824923e7283b91e14dbb1cd1005816a";
+      sha256 = "792b12bc891d6d6b4e0c14f745641f54e9c50ecc10222ee679a206a4348d0c9c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/hu/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/hu/firefox-96.0b3.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha256 = "d27522e4f7695d1189b59e5a4a926bddaf9e1aa6f9e8fddcf78be203d9645807";
+      sha256 = "958a2569663fed2f45205ddb744e4c1a62210b678bae94e2717e8d4a66161788";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/hy-AM/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/hy-AM/firefox-96.0b3.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha256 = "4e6b2e9edf9024b1021dc397d60630929e97a6bd1ac3a6851b44ac8ba37f4d01";
+      sha256 = "0bd1b2ab4b063faab90a1c2158d9d0d0fc96f7fc81389f06190af39c9247dc21";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/ia/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/ia/firefox-96.0b3.tar.bz2";
       locale = "ia";
       arch = "linux-x86_64";
-      sha256 = "429e1d0cc03abd17effa278a4f64abd4344e1dab0b5475539d406d5283a91dc8";
+      sha256 = "09523f090a020e658e14eaeaafe65a6db0793d389c8dbf0671f9f6d3b291482a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/id/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/id/firefox-96.0b3.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha256 = "5e1455b5cceebc1b1d7ee587640a928331f3db6d32228e37d8029376245f7ed1";
+      sha256 = "39460a0d21b63c39c5aed3467a2177441e23f15222abbc44535b96ca2ac869db";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/is/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/is/firefox-96.0b3.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha256 = "1e09c27534bc853fd82c1ea0c9eb3a86107f0f29724abf107be2e86c7d10408f";
+      sha256 = "7dc87ec09c0fc046a42c583c6ec84d5116ae71ccce466abdfdf8d88578d4fbf2";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/it/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/it/firefox-96.0b3.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha256 = "f8d517efd3c88a110beee9e225b6311f2d986e05f91f524623f856b795290cf7";
+      sha256 = "bbc73998584297e0eed998927c574eec7d81aa37530be11e0b68d1b89fdf31fb";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/ja/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/ja/firefox-96.0b3.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha256 = "73c91c7eced0dc7f2761adbb4c324583d6623b575ff9e6f2af6689308857aa24";
+      sha256 = "6d4c0748a49fe3b14ea9906088ca99e1865002af3bd3fbf1121a67409018a51e";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/ka/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/ka/firefox-96.0b3.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha256 = "287a53af89cc9e7678d86e9c7341868e98493211ba93597767bb5883be1d5e44";
+      sha256 = "595cb5d60786e691078ae1aa8e76ede002f2895fbfac3d9519467f382ddbbbf4";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/kab/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/kab/firefox-96.0b3.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha256 = "214d5e113e90ab0a18235aad810e7546704a805a8761b5c53332b28167376708";
+      sha256 = "59b28149d3724582a5b4c0b4898bda5818d762020eccc4f40d4054cc6752fc62";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/kk/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/kk/firefox-96.0b3.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha256 = "257047f79489b815883e6890e6e4620f2710cf937668d9a1c2b11cd6fcb35264";
+      sha256 = "13278da244a1cf7342235d75eaca237402432e73835d944dc9d5bdb9c5e967d7";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/km/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/km/firefox-96.0b3.tar.bz2";
       locale = "km";
       arch = "linux-x86_64";
-      sha256 = "14fca948f72eedbe8a4aa7081d539957c66fc336cd9c64d0ba85a003156b93ee";
+      sha256 = "de8d8b310cb4b90e40d15e3a991810eee5f7d5418ce1d2b8ae1490c040c9b2f5";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/kn/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/kn/firefox-96.0b3.tar.bz2";
       locale = "kn";
       arch = "linux-x86_64";
-      sha256 = "c78c4d9790a8f71b85fc53f5856e9b611c4e252207dcce0093c6b2feee23c17b";
+      sha256 = "8f400d8effab470e0823ccfa2fe1ba9f49422faebc576d9775a8194957b4d97a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/ko/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/ko/firefox-96.0b3.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha256 = "7f9cd61bce4f20ee219503db674250d3d09b8d4e96d80da8d7c90374a73d8c6e";
+      sha256 = "de78ebc094faedbb79b8b3c050dddd8d89cded9d7f5b8cacf96a8ae0741ed5f0";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/lij/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/lij/firefox-96.0b3.tar.bz2";
       locale = "lij";
       arch = "linux-x86_64";
-      sha256 = "0b34dea142d2906fad1bf28a86845c170789914b2207a7b77ace49859ec68c03";
+      sha256 = "7b46ed0c449eabbed031a6c944c725e20eff8560adaf579afc386728a6aa078b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/lt/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/lt/firefox-96.0b3.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha256 = "c7f254ffbdfac024c186d00a71eae7a4e0620a4e0263f50b9f8f8f95a33242f7";
+      sha256 = "2d51003f43ec3ee6a4891f65d9b1c248bae86da174c997d5cd47b779c403ac3a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/lv/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/lv/firefox-96.0b3.tar.bz2";
       locale = "lv";
       arch = "linux-x86_64";
-      sha256 = "f8e7acb4373f82e8d62e62726442ff007c8b463ce07678e0da4bca8387319dd5";
+      sha256 = "18a3afd1e3799ae4af17ca288b3ca2811437d752851e3043b6b2d506db2e1c95";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/mk/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/mk/firefox-96.0b3.tar.bz2";
       locale = "mk";
       arch = "linux-x86_64";
-      sha256 = "36d245092a6f3739893dcb2763474c762905eb7233768f2739e9381976c7748a";
+      sha256 = "62acd5a8e0eefed468022331f217cebb7e59e629ca8b26010cdd345fcfd3d50a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/mr/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/mr/firefox-96.0b3.tar.bz2";
       locale = "mr";
       arch = "linux-x86_64";
-      sha256 = "f2d0d084482d2b65d4966475e8edac1b1c94c8c2d04cf1bfae58e6dfe5698e8a";
+      sha256 = "4e0ee6d697fafe9b855f3112ce745bab71b53c383a181b94dece0a66589604e7";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/ms/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/ms/firefox-96.0b3.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha256 = "9e1e964a2f64a6a01fe600091f8d3a45334e7710c936cbd3f78e17c593d3db54";
+      sha256 = "1a6ae8edf5732a766c584bc89b7d51b97ad491abccf59cc649db8f250908ea0e";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/my/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/my/firefox-96.0b3.tar.bz2";
       locale = "my";
       arch = "linux-x86_64";
-      sha256 = "d35e42e21e4be92f4921fb886eeb06582b01e142034814624956a07b73c92aa0";
+      sha256 = "f9a53290d295b9be23338bb7b2e6427f75e048f04d0614451a8a23352c286264";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/nb-NO/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/nb-NO/firefox-96.0b3.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha256 = "89ae0d9daeae3fe3965084068d23f3769f8f40ae90bc483135c48b48b8f27926";
+      sha256 = "99261f267895a39fd7ddd376c87fe1a0dafd1c18467e5fefe17419c9a1ae058f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/ne-NP/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/ne-NP/firefox-96.0b3.tar.bz2";
       locale = "ne-NP";
       arch = "linux-x86_64";
-      sha256 = "39087dc455abdc14bb43694865320888326c1c478ed05de9117157edd241b15d";
+      sha256 = "4c3d5200221d7d7bea5e9263329dc216bf74d9f2c822e1b626f8c051262aafaf";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/nl/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/nl/firefox-96.0b3.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha256 = "988d58514ec177c031d8df463de1f9251c6ba932123d96c4ab3adc5ecd0c224d";
+      sha256 = "16a4857eda94f8f561fe482f9e21ea53c8a84404d1cf7d3c01ed62a6215aa95f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/nn-NO/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/nn-NO/firefox-96.0b3.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha256 = "161ba60c1648e66f89f0af272eb848d2654a8af9e1ef7f06d678ad232b09a24b";
+      sha256 = "12171700aab404bf48914952564a0bf862c816eff294885dd441ca5f68a48bb7";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/oc/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/oc/firefox-96.0b3.tar.bz2";
       locale = "oc";
       arch = "linux-x86_64";
-      sha256 = "22321b31f4a20a43c838ebff4c9179e1cb73f4333acf458705c15db5f26f772d";
+      sha256 = "636950ca09f5a406581c1605370c85c610a6f53bd2e8adb4987e4ed7dabfed7c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/pa-IN/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/pa-IN/firefox-96.0b3.tar.bz2";
       locale = "pa-IN";
       arch = "linux-x86_64";
-      sha256 = "e1fd6a78938021707cbdd966f08de7fee0cd0f96a7030acc7169072e9735e3f1";
+      sha256 = "c7ba5162bbd16ad181d19ea42d34d6182c9972b208c98a009b301bb27c865357";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/pl/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/pl/firefox-96.0b3.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha256 = "0684e74c1ef60f6e9db51dbbf0fb7f456636665173406d634fcb474430f16af6";
+      sha256 = "e0cf100f60f73cb96c4ef942240375034c792036608e646a0412fb18179b4316";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/pt-BR/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/pt-BR/firefox-96.0b3.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha256 = "27cb20a8511ead70644dac22d552cf8a33716ee55ca4a8e31f145c41fd1f5109";
+      sha256 = "4e2c43ff8dd482691190cdbee40cce73540f066b777e3c345acbb4b1622eb166";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/pt-PT/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/pt-PT/firefox-96.0b3.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha256 = "857a616824dd7c1776c181628b732f20111c6de8192f8d772711cbe12bb659b0";
+      sha256 = "de92cff3604a82952e49e04777a098cbe7e0fb991a5253e90c66df68f02a598e";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/rm/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/rm/firefox-96.0b3.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha256 = "aebcf988963324d57099078474777f8fff23d78bdda0bb8e8a07b78510dc822d";
+      sha256 = "a88e3919ea3c8c29b1050e7dec608e62d986411fd4ae3fa8dd38ba55f9dab1f3";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/ro/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/ro/firefox-96.0b3.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha256 = "5dad61bf11c5efff6068c2745078474774a859859f373782dacc128892f89556";
+      sha256 = "e8a37f0ed391cd8b7a5bda1b4a492a5fa0201e06521c3c4863df8536c4c2da0a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/ru/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/ru/firefox-96.0b3.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha256 = "c99f75d57e2d39cacc7df8a1031b6f25b0e190371e78205da43d39ebf31e5456";
+      sha256 = "284a8064fb0a41aff769af21194fa2359a951dbe2134d6415d40a41d4a5636f0";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/sco/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/sco/firefox-96.0b3.tar.bz2";
       locale = "sco";
       arch = "linux-x86_64";
-      sha256 = "d653190f119bd11cfb04fc61ead507cd0f1e2a5e1d95eec3f44c3aa15a593dc6";
+      sha256 = "01ac969a91b8d778ed08bb2f58faac842c1c28dda40ce8c0b90b40575658ace9";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/si/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/si/firefox-96.0b3.tar.bz2";
       locale = "si";
       arch = "linux-x86_64";
-      sha256 = "d3ed08ab23f62e4430bac90a840c47bcacc88cdb0dc22a3ec6541e93ca4ffdd7";
+      sha256 = "4348f3da5b2b6ac1fb2fe370d2a4c820933c5100baf3c529fcde1814e32f1fc0";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/sk/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/sk/firefox-96.0b3.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha256 = "48864af2fb4238bddc71cb079c5b8c2d3bac0fd71a086c7cdc6370c686177c58";
+      sha256 = "e55e104417153e939c20be42e6307dc36fec843e9170441a3bd6f7d205111f5e";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/sl/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/sl/firefox-96.0b3.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha256 = "8b4f326420234eb8972eed66780929db4d37ccd8265ed3dae87e7754f49b6563";
+      sha256 = "73be90dd466c418f0f1e7cd231234823c9aec4b37c73d419c272d5f0c6549408";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/son/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/son/firefox-96.0b3.tar.bz2";
       locale = "son";
       arch = "linux-x86_64";
-      sha256 = "0c62ae0a67d83badddfffb599c7347371cd95e98d25c39d7619ab708a45b48cd";
+      sha256 = "e310eb44e199a44f5c6dc938c5278e0cf5a57b0eca9afe93947caf124499a512";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/sq/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/sq/firefox-96.0b3.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha256 = "eb0ed5f8673f04c209c946adf3492d187cdd6e275c6b62aa0e9e2007953da2d2";
+      sha256 = "a878f821fe66613200a69619d26bebeb5abd6e7a512f687dfd939ea7b055117d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/sr/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/sr/firefox-96.0b3.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha256 = "ff835d9cb24936714707df0f3424fc0f311f1de25914ec0ae079626e44125c2f";
+      sha256 = "a485ef9d3785f4dc8c9ce88287f597c550a489901b8c48ca9f760d8984c6c385";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/sv-SE/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/sv-SE/firefox-96.0b3.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha256 = "8dab744e092bab2d0ec6ee9517d639ac4cd3190a617402602d2124f6077743d6";
+      sha256 = "0ecc83a16278aefd627e50e317ad426d8bfe7b68f4633941e6bdbb20e0f1e043";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/szl/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/szl/firefox-96.0b3.tar.bz2";
       locale = "szl";
       arch = "linux-x86_64";
-      sha256 = "d204778205b703e15200acbce9d82bd4e76dc40206328d915fd17915f5a716a4";
+      sha256 = "0de3848f27c6be45f54429cd9679b19a661b79e857eac8c4852b511857a25395";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/ta/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/ta/firefox-96.0b3.tar.bz2";
       locale = "ta";
       arch = "linux-x86_64";
-      sha256 = "f23bdc488e2a53871a2f664ea4dac52607476b35b6abff09fc7203c3b806f829";
+      sha256 = "ebff08a86bfdb646c02add5e9226cc3f09e096d684247c1c67b9ca6faa48f33c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/te/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/te/firefox-96.0b3.tar.bz2";
       locale = "te";
       arch = "linux-x86_64";
-      sha256 = "3ea085d2b02aefcdded47157203ffc8e7addb6828ffb241a03e4ec955b646129";
+      sha256 = "8221220edc9041f76a493feb7ac3199d93590c2a4145fc1d7e62e961188b3f3e";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/th/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/th/firefox-96.0b3.tar.bz2";
       locale = "th";
       arch = "linux-x86_64";
-      sha256 = "04760547a1e18dec91b2bda9501aae9cd3eac6ff17fd1dd0c31b8dd0491b03c1";
+      sha256 = "6f0b612c589ea43323dc8534111808cc1588dcc8dbda09cd4c8326ee513af2c4";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/tl/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/tl/firefox-96.0b3.tar.bz2";
       locale = "tl";
       arch = "linux-x86_64";
-      sha256 = "64f7c59b2c5e84e30329ddaac5206f14189b22d35d6214b1cbc13a61db804131";
+      sha256 = "d21cb5dcbb5a6a290d83f96ab8fd171254f54cc8586b0513689d30fa059a7555";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/tr/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/tr/firefox-96.0b3.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha256 = "bf06ea01a54208dc724931d16b96d091c107198ea6e5ca6d979f111b9a1fda4d";
+      sha256 = "3cf9572b76b5bc627130e27105ce39bc51e55ba0446b4ea867593d7c36b546dc";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/trs/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/trs/firefox-96.0b3.tar.bz2";
       locale = "trs";
       arch = "linux-x86_64";
-      sha256 = "789a98876b52043bd924b71d68858ccabf25061ad8ea25151cdc08d773ed88f6";
+      sha256 = "269d9c9b50acc393ca9daf4f19404cf63e2e792028c26c03afb992f67628bd3e";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/uk/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/uk/firefox-96.0b3.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha256 = "9cf8beab66162b0140cc7ede761331b82effd663c05b36031ff563bd08d951ac";
+      sha256 = "c1d304b0b4a7b5c463c07ccb982b16a0265cb1fc114ade7bc4b39f8e9158f5a3";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/ur/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/ur/firefox-96.0b3.tar.bz2";
       locale = "ur";
       arch = "linux-x86_64";
-      sha256 = "5b6a8de8051e8083ade61a728dba23e7c2b5484d990a9f7022f0356f0dea992a";
+      sha256 = "17ccb256c21e7f7a0851a980952cd5cb006a9d29176b40f420b0002017748da4";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/uz/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/uz/firefox-96.0b3.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha256 = "0b1887c1a2f0d4692b39bb1fe2e4454d586476d9f3972903ec9b2fd009557cb9";
+      sha256 = "1ecd6d4a20e74d1b3116602a4661b6ea1d1e70f786c88e1452a61230125d4ca0";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/vi/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/vi/firefox-96.0b3.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha256 = "df016a17c78cb29ef6f8b6b5f4314e358ba3407beb97997d0e97ae51acc7962d";
+      sha256 = "681857e16b6767b0d66e8d51423b360cfeb8d107839ad52cbeecf1e7003d66ec";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/xh/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/xh/firefox-96.0b3.tar.bz2";
       locale = "xh";
       arch = "linux-x86_64";
-      sha256 = "a86a366761b6af5e70fbbbd10e791db65e17d5b27dac27f5783c79421f6dc639";
+      sha256 = "3122fcb6638c00f489c6540c3cca4312dbdc5de5cc16351746e83c68d02a45ac";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/zh-CN/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/zh-CN/firefox-96.0b3.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha256 = "66d0221e172b22569c6b3f5bb32d1cffddc9ec70987a464e43392b082bba62ef";
+      sha256 = "5e4be58a4891d7b1363d57fcb9ad67e5d1379401cc3df49a5f9ea4fdf71495fa";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-x86_64/zh-TW/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/zh-TW/firefox-96.0b3.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha256 = "419161b9f96062de4b2b17c5052030202ed4be2e707f4028b73b656168423921";
+      sha256 = "e904a8e65e8637d01376a08908bba94f437f952eba13a68b81b0a40936044e14";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/ach/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/ach/firefox-96.0b3.tar.bz2";
       locale = "ach";
       arch = "linux-i686";
-      sha256 = "a2c16ba8478d501abb48ca6129507942a017f322c4d29cace1f662f8d50b351a";
+      sha256 = "f5e383bd0268098f82791079324eb1457298d95431d497adbd6023f12c762932";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/af/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/af/firefox-96.0b3.tar.bz2";
       locale = "af";
       arch = "linux-i686";
-      sha256 = "1f34c7409880d2e3f4eaefd62e47751859a5fed0a7f1615f69631edda1494973";
+      sha256 = "ae99c4ccebc0b938ebf2c20758a815fdeebae0b81715db79d8385d6a649bb6c9";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/an/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/an/firefox-96.0b3.tar.bz2";
       locale = "an";
       arch = "linux-i686";
-      sha256 = "5c7e0997b409029bc3ba64574d3b6f79820cb9cbd21f0d311485150aefdc4ba0";
+      sha256 = "ef7ab3d8b6b51d22f0f30b836024212332aec6989684b9a22a4f045662da6080";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/ar/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/ar/firefox-96.0b3.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha256 = "81ff44fe65466070288bd6fcd4b2d4c9969321597ef9e1773702d098d74f33da";
+      sha256 = "b3728cabcbb46393796b5b948daeb5821b70ae29a8571fb5295faa40d9a8e592";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/ast/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/ast/firefox-96.0b3.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha256 = "34d2b7eb300e0ffa2d5fbcbe061d536a565867853f88eb3388ea1d32684b32ac";
+      sha256 = "ecfcfa573fe215d94e48933bfb276f6dbd573c92a062f4f3ec1ed83ef0da83a7";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/az/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/az/firefox-96.0b3.tar.bz2";
       locale = "az";
       arch = "linux-i686";
-      sha256 = "b79807a1500211349630ff2ae997462e382011b731ccfcd9b0ed787520d7b075";
+      sha256 = "37558cf0fdf41c728b2a22fc2b8142af011ef7beeb924e08de2400f29b2dede7";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/be/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/be/firefox-96.0b3.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha256 = "8029777ac9cd721befa5da4a4fb2af9f4e2d7bd22f30c8506ddc739d8fbf31f4";
+      sha256 = "29a156bac1d7ffe10d05690fa3a82820cf246450ef1a77697e4f7f346c9eda13";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/bg/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/bg/firefox-96.0b3.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha256 = "907f5b83e413227e83bfa9ce7caff0248969690a822de170924538a2d4480616";
+      sha256 = "631e34ca2499d6767a1fdc7b944f08841bdcd9e3c248f1e4f0572465797e819c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/bn/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/bn/firefox-96.0b3.tar.bz2";
       locale = "bn";
       arch = "linux-i686";
-      sha256 = "e0e553ebad27775fd625babe053c9adc5452a8cdf1d495632a9961ac825549f7";
+      sha256 = "3500810a58a0cd5192982fc5536902e377458589faf0e8c978425ac2fffb19ee";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/br/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/br/firefox-96.0b3.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha256 = "a3eaea3797b81f305a0a2162a0491f2f7a22d64308e076ec44ab4866e7100778";
+      sha256 = "979342ef754af3751a5466a5d54b40291f87dc8f084173330b2e337aec84c516";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/bs/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/bs/firefox-96.0b3.tar.bz2";
       locale = "bs";
       arch = "linux-i686";
-      sha256 = "371c7960a78de9fc652ed7d3ff56cbfa7015085e2d430b7cb4d30ecf908fc027";
+      sha256 = "55fe1b0bdac8f8dc37acf3159ccbef78e4054c499ac8df550b215826eeeeec6d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/ca-valencia/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/ca-valencia/firefox-96.0b3.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-i686";
-      sha256 = "2c15a7bcd86c3db9f0fb796eebeb0a984ed9f2689654b8aa22abaaee70e25b40";
+      sha256 = "ff090da1c4a6d6dfb12d1750dfbf1f37fe57e2f5f93250d30851da215f6daefc";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/ca/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/ca/firefox-96.0b3.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha256 = "d1c667da851018502fb884f9fb4ea16e989155cd179da2771fa94cb70d23b325";
+      sha256 = "67027d0efa86c8fea2d27821a99a30e3878a9c478d9f26af3ecfcbdce336f896";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/cak/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/cak/firefox-96.0b3.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha256 = "69f13dcd0cd9a7014e4555f47559a4e5b515d70083abc5331803a6ac58f28b9e";
+      sha256 = "e7c2dd2447f157a2541540ea24d0732dfa0dd84b116824d87d7bae53a572883e";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/cs/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/cs/firefox-96.0b3.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha256 = "0151d00465cb9d23fa9c43847e09d77d7d4bd1892efdade7811bf1f83391d1b6";
+      sha256 = "bd7dc68d840a6a53a525a8a1229e0abca8aa2af14bee6c5f7198d877f3ecab1c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/cy/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/cy/firefox-96.0b3.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha256 = "960b42a14ba87d99549ab66677dab4bce88551fcf44dc3240f29ead31fbff435";
+      sha256 = "4a21599535668ffe96f3adb56801aa3c8b5aef40ce2998fde430e34cbb4898e0";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/da/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/da/firefox-96.0b3.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha256 = "f866c0217a77b9dd77234cb2b83e63858bb227e7b011dee69afcb21c0dbe0d66";
+      sha256 = "5f47de337347f65ba478c48c373d12befcde1b86b99102feb0c921d149541d2a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/de/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/de/firefox-96.0b3.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha256 = "28caa97e671f9165c5b6889a678751c41a83b13ca1d7a9b1b6ee434ba8c10319";
+      sha256 = "4f11bf8857f65091d43835c4c1d16097189e184e72abd2dde6807e8b22370f8e";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/dsb/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/dsb/firefox-96.0b3.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha256 = "519cd1d26de63628de5edc4800c10981bf516ba81484d2c14d15488daf541988";
+      sha256 = "6b426096f9a652e1eca190320fb485c5573c94d7f7558dc70f58b6c49508e5bb";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/el/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/el/firefox-96.0b3.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha256 = "7dd982bb79a8693f935c5f98b4aa015aed8034ff2915e8766928a06f6be7a2b5";
+      sha256 = "f374d64f64529238f867b76e7e894065a32b75b2d669787f1f7285f23ffb653a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/en-CA/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/en-CA/firefox-96.0b3.tar.bz2";
       locale = "en-CA";
       arch = "linux-i686";
-      sha256 = "0ac683ad5725c5e793c646d7f9723f44de8a7a4b099d60683df59d0143e26e70";
+      sha256 = "0806aa2abdc643eed084e7764acae24ee7da7e01c8482b35de5af0cbd809b9e0";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/en-GB/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/en-GB/firefox-96.0b3.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha256 = "37aa0a3fbbb99970c3b6ffc8e84707ced9af815cc32c12f07f51ab22e1f00b85";
+      sha256 = "b41a39b046956ba4971c4ef163d9da6f7ea6b70f2dd419fdc278995bdc300723";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/en-US/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/en-US/firefox-96.0b3.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha256 = "e33957b8729f4c28665039232ea8ba670dd6c8ccc92cbc18453e123f578f80ea";
+      sha256 = "8869e2fadeeca2c22c7732f22cd9709d8da9b435b6e4f9c9d384f67405f0fc76";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/eo/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/eo/firefox-96.0b3.tar.bz2";
       locale = "eo";
       arch = "linux-i686";
-      sha256 = "42aed0847ab7de209cd561a43de5dc0f598646c179738ec905ef814e567edc99";
+      sha256 = "3d339e3dcfe1ff4273d0a35f1177f580c8158b6457add582cc23f67c00676e56";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/es-AR/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/es-AR/firefox-96.0b3.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha256 = "3101bfd23d31cff57f40e7e2f517ff592bba974aa45f893cc76a2589deecdf16";
+      sha256 = "ed129dc3258a62a6e1f02b881d78b2d6348b95b99c2011005644ba484968e3f9";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/es-CL/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/es-CL/firefox-96.0b3.tar.bz2";
       locale = "es-CL";
       arch = "linux-i686";
-      sha256 = "05a8f3c9f12208b396ef3a38ba001bd688f98b730d52ce5b2887c47f7a2fddbd";
+      sha256 = "0691ef7be86c09cc92fbebc431668d1eee722ed85179a068ab3c548cb6f50058";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/es-ES/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/es-ES/firefox-96.0b3.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha256 = "d6a33146ed8ba2dcde668e56b0d6baf76402e6c55c39fcd18cb6927d4120adf3";
+      sha256 = "86629f77d8092ccc4ddfbbfd2613535e1fb3a76e70c10fab46081a87cecaffd8";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/es-MX/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/es-MX/firefox-96.0b3.tar.bz2";
       locale = "es-MX";
       arch = "linux-i686";
-      sha256 = "34407e3d05a5fb50dd94559af7381348471fca04b03fd8c3f3aea11c2b7543a9";
+      sha256 = "5225e99833460c3098057602b82be9e0e52f2b00c060c29c1ca7310e2dec8384";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/et/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/et/firefox-96.0b3.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha256 = "376e9030777f32785517a4fff01b9c125a92100965fc560627cbd61ef8e9882a";
+      sha256 = "0d97b86b2b6834ae518820e83a0f4af5318f3eb8848ca69ad4e3cf2dbbc56e6c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/eu/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/eu/firefox-96.0b3.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha256 = "1b718ceaa8f0c807c2cd8f0fa23c29b5907f5f35d024cb409af537f379a38d38";
+      sha256 = "d44a9db9a6638a6c69c7b4ffba024d5b5028407533eeab387c2c442f73078d47";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/fa/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/fa/firefox-96.0b3.tar.bz2";
       locale = "fa";
       arch = "linux-i686";
-      sha256 = "d8568027e9bd8ff2366a6289c22cb8f2043ab7aa8ce13f6bf92f5a36ec842a7b";
+      sha256 = "df47ebeaf3e3eccfa2b483e46ffc4f7106299d62337923964249c2a7ee070a4d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/ff/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/ff/firefox-96.0b3.tar.bz2";
       locale = "ff";
       arch = "linux-i686";
-      sha256 = "6143d1382bf317876b632db2e1c153dbabd9f977952aa5de90f1dbae4ae90d53";
+      sha256 = "4be5b5876f032e09d87c90efb9da8f168f722b46f71adc0ec036c4a1840a2795";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/fi/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/fi/firefox-96.0b3.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha256 = "dcc0a0c16a26c86bb09a88b150f897806958dc8479f074b28dd057452923b8e1";
+      sha256 = "8ecb3ec4e9387647d3361345a420574887c74ca8bd38f723bea6d8ba4b2f4c81";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/fr/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/fr/firefox-96.0b3.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha256 = "7ae2cd7e392c1c6e47ff0cf0b47797b4a0a7ea7b6554a93462449997ae91272d";
+      sha256 = "15483453905eb6aff243af3c536e6d73a88dcaeee4363e829c30fa3e2e9bcf1b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/fy-NL/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/fy-NL/firefox-96.0b3.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha256 = "ffb5531ead8406c5312e6a16b90d3ebcc27495dd37b167cba6186d838a007c78";
+      sha256 = "991445513ebb294c2bc8e5833e7631b791cbcc72ccd501ee883665b3b0b62ba1";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/ga-IE/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/ga-IE/firefox-96.0b3.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha256 = "12012e40100c80606e076548ad1738f74bcb4cb62b44afa2e89dcce556756a46";
+      sha256 = "036e8d167fc43d940d19ac8b90f4e136f264f16fe7d012fb1827b10dd47d8442";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/gd/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/gd/firefox-96.0b3.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha256 = "f0164a64438bc280a726255ed2887baa9df6021e057558deb6873d76c4157d52";
+      sha256 = "056ee174fe2a43aa714abe4e59521d2f040fc326cd9d4d36b8ab2676fefba24f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/gl/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/gl/firefox-96.0b3.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha256 = "0118909f19a14f855b747d6f9c0257b61ebb26eec6a50337b96a8ad36ecf3801";
+      sha256 = "6f30edc15658ae9395037751fab17c115391f22d4e2560945cbee436344aae92";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/gn/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/gn/firefox-96.0b3.tar.bz2";
       locale = "gn";
       arch = "linux-i686";
-      sha256 = "49b80164481a3b9786bf8a2feb4f05205eec94759781ef6db34664144a2fa13d";
+      sha256 = "d3cab8f98f1011b94c8b887db82ee3b64051f03879f83594113a0534fb7a730a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/gu-IN/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/gu-IN/firefox-96.0b3.tar.bz2";
       locale = "gu-IN";
       arch = "linux-i686";
-      sha256 = "c82736afb3a9394764c10e77df765822c4a63703c4ac10a12a50dfdaa99aceb9";
+      sha256 = "969d9e3ddd308b96fe6475b04e0eaab162aa89f98daa9f921b52a2602e95c93e";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/he/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/he/firefox-96.0b3.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha256 = "2d96c2d26df3d8c748ca5964f0d64cbe3a19f0c2ce19c20aeed75c4cb8ccf75d";
+      sha256 = "874a5cacf1f6025889a4fc0961b8c26f78a56b403e76af8e84cd6bc54de3455b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/hi-IN/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/hi-IN/firefox-96.0b3.tar.bz2";
       locale = "hi-IN";
       arch = "linux-i686";
-      sha256 = "e2416cd7591675eed8228f8c7537d351ee98f8e569d21b7c15e1de958d0686eb";
+      sha256 = "4d369daaffdaf1a28d940f98f3f3d4c3936c5ccb3f913c3c1f0233b4ee448da5";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/hr/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/hr/firefox-96.0b3.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha256 = "c1ed97934c29e95aad7b57ace5eecd5fc25359eda349d08456384135cc5eb1f3";
+      sha256 = "f5138a6569f4c8779c90462b3165fb7bb2351d48e9a81daa88d909e475eef2df";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/hsb/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/hsb/firefox-96.0b3.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha256 = "510137ee420ecd1157f6fa91a6433313625bd64c4ebf6b6bdfe20ace8bd8881b";
+      sha256 = "f410a1786eda2f9b7bc27e30c438f4e0a090b436b871c0614f6fd871f4eaa2fd";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/hu/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/hu/firefox-96.0b3.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha256 = "65fb0b64ffae3627028377507138bfabb9ad74e8c5a828f0cc786ad04ac81046";
+      sha256 = "60aa12adff74ff46ef37141293acc39b4592d61512c9db0a3745a8a41858ce67";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/hy-AM/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/hy-AM/firefox-96.0b3.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha256 = "1acd294876af4206160785bc8c9f55faced43a0415ce039b04faa413736fa325";
+      sha256 = "2187efe8640a541ab3b9c11583d09c977cf3af44c280887b03c5f4ed05239439";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/ia/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/ia/firefox-96.0b3.tar.bz2";
       locale = "ia";
       arch = "linux-i686";
-      sha256 = "097e1b19c26437a24b4ee6d5cb0265617eeddd4b9a8171385d16e8303513759e";
+      sha256 = "1d3a3f28c0a99d56dccd1fc354a56cc1374f4f87a76760b410b616d0128f83fd";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/id/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/id/firefox-96.0b3.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha256 = "a0759b8827d7e891f32bfd15f3c6db173a6ae1a11f19bc6640643598bd165e20";
+      sha256 = "b2e0853123208160486936e98ba978a7d509d8d4e0500c89bbe522ea69a4ff67";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/is/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/is/firefox-96.0b3.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha256 = "48abe4f0ea000ea344c83e4e8791cfe00cc21a958dc27dafbca1ccfafd761671";
+      sha256 = "43e9ca38b6ef601d7834b2b951b4a14394a6442d0da1d5045b83a5ccbf7bad40";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/it/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/it/firefox-96.0b3.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha256 = "fb582c7179b5d912188d07fa8e7b5e2adf97122465d31645ec4ff31e6579a441";
+      sha256 = "ef20972394355ce52307056b94af6dea64a3f6b1cf1887b3796505baf4645fde";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/ja/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/ja/firefox-96.0b3.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha256 = "83092e4f2a61c9655b67247f3d34669abefa2803adda427658a3b4d5b5f3f1ae";
+      sha256 = "ec106d9e5ebf26c698106c0b751a54b1af77959a39ef47ef124433a3b610f146";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/ka/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/ka/firefox-96.0b3.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha256 = "c4d8648f7eaec2268fc94f1a08e3a59f04ae891e0b43dd73ca9a873ef9e87920";
+      sha256 = "19b20479c0df3f63a0d516bfa4521f0c7cb81e7fb9873ad801a6f662bc7558ab";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/kab/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/kab/firefox-96.0b3.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha256 = "213115ee45ec7639ff8b9e9d8a7f3638e1434339a564c2514d6a804afa18c32f";
+      sha256 = "200b9ec8da001ef900fa77ba7954ad67f68504e29ddc78a389847f076d9812db";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/kk/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/kk/firefox-96.0b3.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha256 = "c2a77e482e8c60abeeb12e06e0c0c4277d8d26ad1414a86d3c6e3df2a58bcd35";
+      sha256 = "8400fb463705221d80015a7b69388478f851231618bd3be0d9fffcc6b35783ec";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/km/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/km/firefox-96.0b3.tar.bz2";
       locale = "km";
       arch = "linux-i686";
-      sha256 = "1da5133c8c0eb9ef97092b7c3e2a38dbdbd8026173fcc80e74da20a0c2208ec3";
+      sha256 = "4fee1c00876e71f6d8fe8194ac48dc56bb8ca6da2e5ad41488e1a99e3c65a32c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/kn/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/kn/firefox-96.0b3.tar.bz2";
       locale = "kn";
       arch = "linux-i686";
-      sha256 = "ed1d785de41ff78d2a3891349c44ff61aa0d8ddc2efb491ca0c2bf2c94b5d8b2";
+      sha256 = "c7aaaffd7539351180240837e1930b8303b1eb9d199a1937940f80041aca1632";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/ko/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/ko/firefox-96.0b3.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha256 = "5559ede0cbcba00f9d4dda5a3a5809d83d1484518a7f92c296ac6cb7b6a2e5c8";
+      sha256 = "f54d11032e4b929e0d283223744aec809c46d66a875dfa9e07fc2a9237c5edbc";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/lij/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/lij/firefox-96.0b3.tar.bz2";
       locale = "lij";
       arch = "linux-i686";
-      sha256 = "47658288c6b55b4d64628cd119236f0a3bd6b6673bd1127efa7247e9a86f6ef4";
+      sha256 = "c7e1da38ea4886454f252c656bc1fd9809cbbdbf06b159cc40674e9e03ce0275";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/lt/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/lt/firefox-96.0b3.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha256 = "964cc674d2afd867203965210dd77594ac1303d5b1d1b2de3cf7590f44bf9d3c";
+      sha256 = "5177db2a4e0ca4bbdbd9d7e3fe5aa5785f995df15df4ac4213bc22c2f9380a59";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/lv/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/lv/firefox-96.0b3.tar.bz2";
       locale = "lv";
       arch = "linux-i686";
-      sha256 = "f22df962e2b2c857f6068ea2611260d7a8dff86fc20877e4ce5b2457e7c1f1e6";
+      sha256 = "0e5d27dbb6e1ed3bf87a60bf62bc90beeb1c503fcc545b4a22767fda0e8e695c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/mk/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/mk/firefox-96.0b3.tar.bz2";
       locale = "mk";
       arch = "linux-i686";
-      sha256 = "9bccdf824261c2241e2c925bad37298eb6311949e568de4c525ce72723e9472a";
+      sha256 = "54250e1742ebd3cd0db36ac68f5790fcb803a4b63d77293905727922379c84f5";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/mr/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/mr/firefox-96.0b3.tar.bz2";
       locale = "mr";
       arch = "linux-i686";
-      sha256 = "91ceb3394fe9d33a81955ccba054163c1012c5219b00a532d3c7e007c0d5aba4";
+      sha256 = "887c2cf008099abfd6cae59203f660e71618ad63d8492f0f1de072debab84450";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/ms/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/ms/firefox-96.0b3.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha256 = "17c4dfc95a0413c3d2b599335efdca8685553da02c66347ecf2b6d64ebcc9a36";
+      sha256 = "c34caded0c323906ff15538694b37e3c91a00c731d7f4017434027882f160086";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/my/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/my/firefox-96.0b3.tar.bz2";
       locale = "my";
       arch = "linux-i686";
-      sha256 = "b920b16f5d6d480e2ba82cbe266844e4b4d760ed768edd955d8cfe69c194eea5";
+      sha256 = "f66ebec1bc3783cef6c57436a3f9764b52942f2466195fea8e5435275a276411";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/nb-NO/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/nb-NO/firefox-96.0b3.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha256 = "97c26af5588cb00b063d145ac9cade31d46c86fef2320f6b7cdc6cb5dcf7dcbf";
+      sha256 = "6ac73b95d650bd7f8454345a041d7f9a294aed2cf249d09ab726eff5c6df0036";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/ne-NP/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/ne-NP/firefox-96.0b3.tar.bz2";
       locale = "ne-NP";
       arch = "linux-i686";
-      sha256 = "7256e3dcce679ba4422f167def4733e63aad07f49fb2f7d98478f9c04d1eda4e";
+      sha256 = "9f436cf3504f2629cbec87051539e00782c9942aeef4a03fc4fd44000dfd1b93";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/nl/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/nl/firefox-96.0b3.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha256 = "073255f663230e17878431ce22bcf6cb79c3782599c8f49027c776dd824c27bb";
+      sha256 = "8759bcafc09fd00beda7f9795b49675d2dcc153d96020198c9c4117c30fe9c0c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/nn-NO/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/nn-NO/firefox-96.0b3.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha256 = "01b4f98e2114533f6a80fa458c13f993a470029b797a5e0fcac63ba58063f8cd";
+      sha256 = "2c5fc7af589d06e2bda4de52b6a079b4c8ac9287b71b8d86a6462dd63f64f62c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/oc/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/oc/firefox-96.0b3.tar.bz2";
       locale = "oc";
       arch = "linux-i686";
-      sha256 = "041259974f4aed0698c30d66aab34b5e7feb6d1d4b5c466038d6773b8d4f6151";
+      sha256 = "0f96f8938af715461ab1267713d57beeafbca389aa291931c1712cfee375dcac";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/pa-IN/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/pa-IN/firefox-96.0b3.tar.bz2";
       locale = "pa-IN";
       arch = "linux-i686";
-      sha256 = "a275bd1efe636e16573737c18feb830055556783703b1c712149cef2da416129";
+      sha256 = "1a8f36abd3b638cb4aa82e66e4dcbb13a56c0fe967ae3187686217ffac0c37f0";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/pl/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/pl/firefox-96.0b3.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha256 = "e713eac0580014540d4c522337909fe61da547ab764d47e8b8ec2e22fc2b3d19";
+      sha256 = "01b349d1656b2cc480e22d1a1a4eb376ae3b0be65a4b64d1cfb95e29b8e3a7c0";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/pt-BR/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/pt-BR/firefox-96.0b3.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha256 = "d1071491df87c5fb15e91764353f6aad183fe7c5f038114ced8f1f77f1f1ebca";
+      sha256 = "4db2f4df874ebd5914ac143c9963e108d45c9822474b43d32b7a417d9a0c14ec";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/pt-PT/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/pt-PT/firefox-96.0b3.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha256 = "d86e8c91eae6ef5821b378a7924d46f522f50d972f35642683f1407cbdbd608e";
+      sha256 = "fb4f87a2f1c735fc19da371872990a4dcc76ceee2a0f6776e55b06780795589f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/rm/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/rm/firefox-96.0b3.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha256 = "ef71fa9d42c0869d566f47d80992987026926afeb6d37b5e79e7fc1d349ccc18";
+      sha256 = "a9292aa129c8dc538014481865f046b8dbd069138a4ef73743137ad609656174";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/ro/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/ro/firefox-96.0b3.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha256 = "a5c5b6343be01f7ab99ce21ef2138128d77fca2e3ea86836c6ea95bf461a972a";
+      sha256 = "4da6f323d2cddfd0a6f85f61c75cae777668cfe4a88a9fae3ed6297702604e35";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/ru/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/ru/firefox-96.0b3.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha256 = "62d94da86719653a2143291b9dd201cd1c7ab54379aa64a688dc9264c100ba3b";
+      sha256 = "44eddd02a18b8e419d44bae127a4f37eda740f63fb7524891f3a435a6430f64b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/sco/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/sco/firefox-96.0b3.tar.bz2";
       locale = "sco";
       arch = "linux-i686";
-      sha256 = "99e15a1dc3f5480ace4e78620162363e32f40e307bd73cd9a186a91344cc06c3";
+      sha256 = "aabcfc84e1a06d901e29b571628905871248a3148fdfa9ebe1b26995db92fb81";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/si/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/si/firefox-96.0b3.tar.bz2";
       locale = "si";
       arch = "linux-i686";
-      sha256 = "d8c30f6dc9d44ef986f99fbe0fd4ddbd98685455298e04b91e3001c7bd0eefff";
+      sha256 = "8a8b0fe064719cfb088ac61e412c7b1f2d6d66ea523d7f6742efbb54cf53f0d2";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/sk/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/sk/firefox-96.0b3.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha256 = "b07cd41d70df6d338ff35f1ed1d398ab43243803a010d50f5ad206ff408374c4";
+      sha256 = "0bba256df30a3deeeaf5edb946fa535b762cdb42232f8e15f3d1ce49743c121f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/sl/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/sl/firefox-96.0b3.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha256 = "18653e5212d6b99cb3539d419763af33377b422c0aa239b61f132a0a7d8e3875";
+      sha256 = "5ed15767967d579d6809fdc0fae86f0f42b9f8ec2e024bd40aa151147528ccec";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/son/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/son/firefox-96.0b3.tar.bz2";
       locale = "son";
       arch = "linux-i686";
-      sha256 = "e44583fbd4dad99459cb3bc4cb6c9820d6346bc087a892c41eece5a63fc7a717";
+      sha256 = "5e6f78700f74229fb3dfea3b408a5ac78f18892c6ec407bd85017467a5687ba6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/sq/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/sq/firefox-96.0b3.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha256 = "118eea3d5ca74a46e9aaedeb05c40e895cbeae902ec6b4e31cd61a6167726610";
+      sha256 = "5eb1de045ee119d67e0251be6223f7efb3fd26d8cebc5f372f4513d0928c8a51";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/sr/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/sr/firefox-96.0b3.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha256 = "6154157e166aa7f9466119a34bc62d829c9743f84410443c5c7dd9a9fa57fbb5";
+      sha256 = "78b467f1ceda9ef4d181d5549855241ed37381dc08d4e282bdfdf0db3b0625a3";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/sv-SE/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/sv-SE/firefox-96.0b3.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha256 = "8b3868825c2aada061ce4d99b41971a5d626e9df5cf34ddf6cf9493f700f5f3b";
+      sha256 = "a708c94b51ee31a40532970d59b2d570c87aedeed24454aace5f6870eaccfa5f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/szl/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/szl/firefox-96.0b3.tar.bz2";
       locale = "szl";
       arch = "linux-i686";
-      sha256 = "2610600c408da7cc743144ea628057bdc826035472804e3f9d59134ac235c14a";
+      sha256 = "0095fd3dc0eb4eb46c55ae3b2ccc65bea69127aed00d6fac446fb9c9274f4302";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/ta/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/ta/firefox-96.0b3.tar.bz2";
       locale = "ta";
       arch = "linux-i686";
-      sha256 = "856e537f4bc72e2e0ec8b329db45a69ede9d91b86b70c9413f5bdd6e0e3cd997";
+      sha256 = "c8f052d0275c803da20f62172976b44357861ccd8599d9d70eba9a2c96594824";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/te/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/te/firefox-96.0b3.tar.bz2";
       locale = "te";
       arch = "linux-i686";
-      sha256 = "383b6ac9a74295865064d2da74ef2df72f69f0197d935dee942cba9502e183c5";
+      sha256 = "efad15e6aeb3ad1287cc3d0e3d0daa389faa7f348a002cb5c7f52f812eda8c33";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/th/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/th/firefox-96.0b3.tar.bz2";
       locale = "th";
       arch = "linux-i686";
-      sha256 = "9939510e49b9f9a0831a87b364a13c34afe9ac77e51c5e99ca46db39d0d398ff";
+      sha256 = "dfff091b8e2f6b19842335da51f4cc7107401268b91c1bee55bb473ab5f245bc";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/tl/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/tl/firefox-96.0b3.tar.bz2";
       locale = "tl";
       arch = "linux-i686";
-      sha256 = "5fffc0f168072b0da9ff7f74742bb6ae0fb7d5f02ec3258eeafcb5971b215366";
+      sha256 = "35f3b8459096105e29d87645ebfba3a93fb23412ac7fcc30357f2ebbce658f2a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/tr/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/tr/firefox-96.0b3.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha256 = "61fec1fcc042f9d50d3fa4e4c178493a45ecf42b91df9fe19131e555995c1747";
+      sha256 = "3727440d1c3fac9b5761e3f79e46658dfeb5bee2f3ed17ec78697d869be7a7c0";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/trs/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/trs/firefox-96.0b3.tar.bz2";
       locale = "trs";
       arch = "linux-i686";
-      sha256 = "7058996e6f42de987bfbfd7d8f43ae51693ef985f71cc265d850552b8f61bc52";
+      sha256 = "91808cdc62ff8f8670d3c22acb6c203832471ade8e24fd606a2c00312fc39d7d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/uk/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/uk/firefox-96.0b3.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha256 = "f9e4a138049e31321198bf0d01a4a090ce3b0d6542341d6c7260a276a33a9871";
+      sha256 = "947f2cb2572e17d04263e5ebebd897a6900d22dbc85196826e316706a8622aa6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/ur/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/ur/firefox-96.0b3.tar.bz2";
       locale = "ur";
       arch = "linux-i686";
-      sha256 = "222fb81fc237b70ea79d0defc66dea43fd004c0558db284f7cf450cbbb43afcc";
+      sha256 = "d5baa22518ee5f189f780d159aef432591c7d4855cce7f1dc4c67d48c69d5780";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/uz/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/uz/firefox-96.0b3.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha256 = "1cb5f7ee568b85b8151e5119ab163c91f0ba6633551d0683f6cd476b3bc37486";
+      sha256 = "25b19eac0ad6491c7285633ad61dab8f8d2833ba011b7aaa8dd1a2d0eca2b6da";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/vi/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/vi/firefox-96.0b3.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha256 = "2e851524f4ea2ec410f9da393e034af1b021fedbe9e8b8103299662329867ca0";
+      sha256 = "ad284426be9590e9a118c5f151c478d15e6d964beb46312fe7172347783e9162";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/xh/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/xh/firefox-96.0b3.tar.bz2";
       locale = "xh";
       arch = "linux-i686";
-      sha256 = "4f9ee5271308191bbd89b0410a6141ed21eeb590de3a5586e1736419f456caa3";
+      sha256 = "ee90ff4921848363791e0486fc8810d892bf07c448c576bc4c0ea09a6bea8e55";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/zh-CN/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/zh-CN/firefox-96.0b3.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha256 = "dedf2b2df257161288dd6fc4385ba56fdb285e532bd16f53294162e4c83b0a98";
+      sha256 = "9cc4ec8d6ac780a0fa8ad01b5b16438a0bcb290da79691e7dbf993033bd919f0";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/95.0b3/linux-i686/zh-TW/firefox-95.0b3.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/zh-TW/firefox-96.0b3.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha256 = "342f39908d268a871133b6e51c4e5d92026f92e7b9fd8602b31a6c75c1566ad4";
+      sha256 = "6018bca3d3963b3b6dbed521ae068d15f659b6779240e8ed1f9c3c66ec75b932";
     }
     ];
 }
diff --git a/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix b/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
index a2cc1ea9283..0a7d185d59b 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
+++ b/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
@@ -1,985 +1,985 @@
 {
-  version = "95.0";
+  version = "95.0.2";
   sources = [
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/ach/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/ach/firefox-95.0.2.tar.bz2";
       locale = "ach";
       arch = "linux-x86_64";
-      sha256 = "baa9aae395c8ce157bdde4741c298153e864eb16b3ebb5c5ff02ec5427a4be7a";
+      sha256 = "30c3158285d010145b154249c1182a2a705881b18194166bbbf72d6f2fae45ce";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/af/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/af/firefox-95.0.2.tar.bz2";
       locale = "af";
       arch = "linux-x86_64";
-      sha256 = "ba77c17049bb0773d792705e95963f8097142c1107b392db0b8a57a80f62f3d8";
+      sha256 = "293b4f0d6ca7bb1ab8f51acb8a97894e81ef6ff36832a84b05f4789856001654";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/an/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/an/firefox-95.0.2.tar.bz2";
       locale = "an";
       arch = "linux-x86_64";
-      sha256 = "63ca2166a44bb00cea7f78b12bb32a3910192f32fb3a421182470c300481f9fc";
+      sha256 = "27a437c1a44594e7b6c7b2200031635cb5c10d529337b764d97e7c5529c9e82b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/ar/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/ar/firefox-95.0.2.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha256 = "88c7b793915b6e0a7568637913ebbd915595be0d16e6fc56162dcc4629ac72a6";
+      sha256 = "f40e52d8c0012a87153291f55b3418fa6a9569f370b394b86b0d48a80935bcec";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/ast/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/ast/firefox-95.0.2.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha256 = "63dd7cf9eb56588977e9e1ae767cd951419c32a5d1995f42d76ea1a41913154c";
+      sha256 = "5ad7e850cca208ae3125c3e628a0ed9bd9b5a7393d6e25b88a83cffa6dc9c7f0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/az/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/az/firefox-95.0.2.tar.bz2";
       locale = "az";
       arch = "linux-x86_64";
-      sha256 = "4f2e42edbf2df416a9ce92b6fdb06ad4fff11e2116845a5fe50ea6e60bea7fd0";
+      sha256 = "3953a2a6f71ccabcbc6811e92baa7e86d548fa5935f5b149c54ccff94f8a7648";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/be/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/be/firefox-95.0.2.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha256 = "cba02b799d49dbff0207c3c35c1d0545eb435c10c2414b355a7189cdcb29e4ea";
+      sha256 = "07e1692b749114e441e99509e5da570d2104c598f4335b16fe807bc01baa2943";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/bg/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/bg/firefox-95.0.2.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha256 = "618998ea66f5ca3c50b81c276fafb4a8ec98a4dc947a6fafdd15567e831b3421";
+      sha256 = "a15479f6066404f7def523febf56ea51fc5d51e29302ae65e6022e7c6f6eb3b5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/bn/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/bn/firefox-95.0.2.tar.bz2";
       locale = "bn";
       arch = "linux-x86_64";
-      sha256 = "2f2854f7ec2d485283e01c07aab545b1d2a82f1911f8f178c8a8da210ce01303";
+      sha256 = "641cf4adc3bc2ee15e60e458aa3c25959355ab511087d2601391694533bd2f11";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/br/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/br/firefox-95.0.2.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha256 = "835cc39aef8abb56efd235d1f2a40910a89f347a55516d6e535a73af90c63690";
+      sha256 = "0b2e5ff481047324de3bf832e88893b6ff0c632c4e2c3275ad35d36149870ead";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/bs/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/bs/firefox-95.0.2.tar.bz2";
       locale = "bs";
       arch = "linux-x86_64";
-      sha256 = "55aee6e59d7621a057395068ab3d7607e2afe914e7f702c898f7d0cd5c3f4224";
+      sha256 = "03a65771f51281b8f6f116c794671f8cb42e2a3832027380785785cc47c16e46";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/ca-valencia/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/ca-valencia/firefox-95.0.2.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-x86_64";
-      sha256 = "2b20ea86d0c373f5e30d0613b7fd292b8688d8efcab49f48ea01bc69b282c127";
+      sha256 = "e42666332c27cd4b8e904f0c9c332971a8d17e12697fe18c7c93a8415f620f0c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/ca/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/ca/firefox-95.0.2.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha256 = "fbff6e874bb0157da7537606caa05e79ab6e32051e0cf7a7256d97c29030234c";
+      sha256 = "915ee8e30d27dec75019956f960a4777cf33a8eaaf86955d9c0d8fe81a2a6e8b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/cak/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/cak/firefox-95.0.2.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha256 = "653ed03acbec86de19801a17a56db21cfc5b83a03a6410e2d700a49a4764e4d3";
+      sha256 = "31e2dfc109314c942e52e0783c1df09959b7bc27961c419a7dcea709d0a27e50";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/cs/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/cs/firefox-95.0.2.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha256 = "4e9318161e27eb06321e89bf35f5c91bae91b538b1a8d8b72444acb582d3e6b9";
+      sha256 = "5657b42bf6c9baddb68740d05ff75f791d53d5fbe36159db3f3afd16b22e275d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/cy/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/cy/firefox-95.0.2.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha256 = "b16523a2ed527384caf84bd496fcf20b99204378b650fd236246b502cd9848f4";
+      sha256 = "c553331598f9666a8acb0c54eb47872d6e0e81d5884a4296e69adf3fb93a447a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/da/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/da/firefox-95.0.2.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha256 = "6be5b08d06bd54e93d7cf83a54738efe7172596db8b0a4ad6748b7c31775d0e1";
+      sha256 = "affb6428a8075a20ab8ed161972297d7841e533ab63d37172fba0fd221933031";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/de/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/de/firefox-95.0.2.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha256 = "d606f35b5c34d77810c22044475c26b1d0f0035ff53b05b9b2a55736a786bc19";
+      sha256 = "2bc45b8224591336c7ae61e0a2bcc0e3c9e172845cd9d267df118657c4d9e0bb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/dsb/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/dsb/firefox-95.0.2.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha256 = "86dd9dfbc03e71dd306a6845ad565ac7bc6bbe00dec27501959bc436a1747023";
+      sha256 = "ab7f31ca329192242baa95738bc762e300f8208cdd9bb825d39fa6f1965b3681";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/el/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/el/firefox-95.0.2.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha256 = "d8aa815d9168a52b5573dcbb57dbe4399b811ad1d3845297bbf4a97df6a0ba5f";
+      sha256 = "2fa3ae5de7cc898a838edd5beb33b706f50536864df60dd958506a0c86a86c77";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/en-CA/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/en-CA/firefox-95.0.2.tar.bz2";
       locale = "en-CA";
       arch = "linux-x86_64";
-      sha256 = "74784c48615d4537708af71d52350c0630aafba46a2bc957e0de853a79574cc2";
+      sha256 = "02ed1a2a567a9554d07a98a6ecae87c1fba977d84c3467347ebaf67142a51584";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/en-GB/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/en-GB/firefox-95.0.2.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha256 = "3e1251f33163c986b371489209f2704f408fc156bfeb6d1087e5a0514cdd248e";
+      sha256 = "cc4c7a8215f2cdf91cba03c1e9b2b41c35e7d3867946a9f1f829556f8848d59c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/en-US/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/en-US/firefox-95.0.2.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha256 = "244ec7d444e340116eb4d0f21c513c5cde7f8d5bee75ad9cf492d563a6842554";
+      sha256 = "f78a41215d168a2a215528a08877b3cc51e0caa3f1a840c27075b3112ef3d7d7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/eo/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/eo/firefox-95.0.2.tar.bz2";
       locale = "eo";
       arch = "linux-x86_64";
-      sha256 = "45de848c53f75be24d2a193863af4a7d64b8625a90a24b99dc582d3aa9369e2c";
+      sha256 = "125bd4c7c0b758610165a360a7d754cbe74a75564428314dac88aaaca070b0e7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/es-AR/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/es-AR/firefox-95.0.2.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha256 = "057107d1a382484cf39ee4dbb171fed219fa480cf4c01f2d7df1998a7205cbfa";
+      sha256 = "98f889c83e063bb14c1b0893507322a43676383490527c5a4c3c43540d19bcad";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/es-CL/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/es-CL/firefox-95.0.2.tar.bz2";
       locale = "es-CL";
       arch = "linux-x86_64";
-      sha256 = "aef658a4f607e137507496317c04b16f228a33338d81bf2a733458e031b8b96e";
+      sha256 = "af09fd6032a2b40a5af5207acb35240462f827abd46edc0336fce79498230b55";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/es-ES/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/es-ES/firefox-95.0.2.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha256 = "cca26806cfa1ce2864431f26d0f759a9f91eb283afe3ff369af9aa89228d6fac";
+      sha256 = "31fb87e5c96a328db0729cc17900ecd4ced722cb85790fda5781125fb1402f8d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/es-MX/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/es-MX/firefox-95.0.2.tar.bz2";
       locale = "es-MX";
       arch = "linux-x86_64";
-      sha256 = "f12c94f8e9cbfdbff5436c93bf77f8405d2fa0b31488a616c8b23b7c02af5e1d";
+      sha256 = "c56edc5a194cae8d442ed2119e3e5988923b308b38849879da801fad73814d93";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/et/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/et/firefox-95.0.2.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha256 = "4c0e482f764d0b8ad71a82040c62dd5744707ce537a8b44721e50f5902a6204b";
+      sha256 = "b9aa36097f1d91e49442b9da2313e6e4604e50a496d41472a707b45d452e22e5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/eu/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/eu/firefox-95.0.2.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha256 = "5932a656e9aada3b0230b284abec1b00be5e69adb08425459df7f50dc2b102e7";
+      sha256 = "e47e56023251ea1660e29d0c0e0b6827caad83fd6250a19d4951ebfb29411dbb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/fa/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/fa/firefox-95.0.2.tar.bz2";
       locale = "fa";
       arch = "linux-x86_64";
-      sha256 = "d905ffbe0a3d1de35457d8a6eb3e7573471d14f0b302041a30fa8b3edf8983a9";
+      sha256 = "97b597c2c932a26d9addb602ad912dc718b0a195910da42089498ab1e6c8065b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/ff/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/ff/firefox-95.0.2.tar.bz2";
       locale = "ff";
       arch = "linux-x86_64";
-      sha256 = "9e9ab77234fe8778b92ec9a0e67465243ebee6564d9f7eecc6a3b54ef684d244";
+      sha256 = "606034717d76da565c643ac69e3799f7777741130f607073b701786e6fc103a6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/fi/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/fi/firefox-95.0.2.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha256 = "6355fd54bbac7b4b621f983bbb504b6cac4f9db2060648b8755247176ac8a096";
+      sha256 = "e2a5df47c570ff5fa9eb6e3206d4ef3ae653c7b787916962138cad40745aaf39";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/fr/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/fr/firefox-95.0.2.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha256 = "3b72353e3caf132e88e47853abf2de51aae70dd11dfe853b7ebf7c483aaaf50d";
+      sha256 = "d21aeaadad2390663b353445559518d25140f9dc6bf5673e36f44f107690971d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/fy-NL/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/fy-NL/firefox-95.0.2.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha256 = "3af7b6385611e5874641bc1ca6090bd6ff3d5309c7d718579082c2ab2f763b76";
+      sha256 = "6d15d80b73a5295e2ee3cac50f3eb15b5992c2519fe916eeae3df52f90a28927";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/ga-IE/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/ga-IE/firefox-95.0.2.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha256 = "8f007391d9da8271f76eda6b15bbe99f7e3ce6b0b36ec18a98bf49b49904abb7";
+      sha256 = "3aca43ca905a894173ee2063d170ef4d348bfbfef9bd2a6b9ffdab3effef6725";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/gd/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/gd/firefox-95.0.2.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha256 = "3cf3500b574dc7feea15df2c9d7e2849ce4ef8b2fd5fcab16ceb4081214149e2";
+      sha256 = "05f8f4832397706aedea72f049b9f8cbbe9056aff20aaddf0d8ea61a9ae5dd41";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/gl/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/gl/firefox-95.0.2.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha256 = "5ff72519e9c849b6d5e493405c030abf1211ee0a37cc6bb420f056ac8ca40270";
+      sha256 = "5cd94e5d8d7f884fa7b747a814c6f80551dfecac683b55c0e6553407c43c4f13";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/gn/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/gn/firefox-95.0.2.tar.bz2";
       locale = "gn";
       arch = "linux-x86_64";
-      sha256 = "b1dcb67a545411e0b54a3b9c2841c590802d9cdd33fe54439183d3d9cd60906f";
+      sha256 = "063f3d55e2d9ca33c051f49176e663ef40896deb87980d90eac56484b87f2aa5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/gu-IN/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/gu-IN/firefox-95.0.2.tar.bz2";
       locale = "gu-IN";
       arch = "linux-x86_64";
-      sha256 = "e94ef0238ee276189d91c90efe8547838c06d5ab65fcabfcee88d7d1e0eaff3f";
+      sha256 = "1f74c4a721f414ee37f8b4090e425971da64354dc31c338c4d9cdb07ac84485c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/he/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/he/firefox-95.0.2.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha256 = "07deed3310507e706c0984de5a3da02549d393aa10cbf23f38d56079605d9013";
+      sha256 = "d70277a80d159ae3bea155cf2f813179393317a1bbe2885d6c8fda4aa607d0c6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/hi-IN/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/hi-IN/firefox-95.0.2.tar.bz2";
       locale = "hi-IN";
       arch = "linux-x86_64";
-      sha256 = "82ce6607f1ad5df058b58960231a05c5644453170ff4e2a6d6149f545d781f43";
+      sha256 = "0b562e989e9dce6c04c3d556e09991ab28df4cb9cbf514a98b584c2ce8503d7b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/hr/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/hr/firefox-95.0.2.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha256 = "8d7aeaae29bcdaf991879fcd4e991c66abf10deccee70490d0fe3115a249e59f";
+      sha256 = "df5788906b8b0d506e75054f133fef9bdd8fadc14fbaa570409afb3a8b8af8c1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/hsb/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/hsb/firefox-95.0.2.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha256 = "0558a426a0633a087b74dd3335a3058e9c80dde01a8030e0551ee88a822d5320";
+      sha256 = "f0f9f54b037b5e519c80f5742202cdb509bffdd1558af4e4025b59e169711eb6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/hu/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/hu/firefox-95.0.2.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha256 = "0c3aa5f841b9b5a18dea64991d8578b69c55d8d1b7e98257e9a1cad3cc38f06e";
+      sha256 = "eb11850c9df446876e21ec6d292b0bd0f8073f66347504b7d7384365d0097b2a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/hy-AM/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/hy-AM/firefox-95.0.2.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha256 = "4dc589986cf48bd51347d87009b0e4e296086046535b149ab0a973a7c72a491b";
+      sha256 = "bd23fe1e26a17d328d6f98fc8cdade954c2072297d95197b52288e4ac95dc812";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/ia/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/ia/firefox-95.0.2.tar.bz2";
       locale = "ia";
       arch = "linux-x86_64";
-      sha256 = "06b3253d7f01424e3bf7735707a0092f9d578f3c6d0d335f3f9befb1e5aab85c";
+      sha256 = "a4fedb53f10455ea42f313a63c0dcab601b8b53043e736d307f3752e2e01e298";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/id/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/id/firefox-95.0.2.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha256 = "abd11ec916db3b548a453f77d61e4c33c698928bfc3eae47f9aaec5bd8ca7540";
+      sha256 = "59e05c58d03dcb6c55e160414a5209e3590c92364eb4a7edcc381ee4076cad7e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/is/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/is/firefox-95.0.2.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha256 = "dab3669a92a8632ebdb2303e0962186ecd86896fc0bb6bf5749d337430f05fb8";
+      sha256 = "d8f4626e7dd9fbddd37caadeec90985b5aeae052553cbc4e8a96cd8916688227";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/it/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/it/firefox-95.0.2.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha256 = "2572d4f3235658a5ac94d69c7e1d12e289b548c0c7443ff665840c9960bcf470";
+      sha256 = "cd03b57ee4b1bda04c4ef3d6d76db0e0b25c2e802f5b93390bcb39111231f2b6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/ja/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/ja/firefox-95.0.2.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha256 = "d8c46fb80f6324d04b2dc99edd23d59d8f7c043c5ef598137dc2055fd1a1dd5d";
+      sha256 = "93d3b15e2c9fd8eab8636e194f3db3bf164008f009d26e8e8858fd9b67556f10";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/ka/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/ka/firefox-95.0.2.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha256 = "9358fa80b30d5f1787084e4e0cfc82a0b231bbbfa196942cbc7f5e8679530d0f";
+      sha256 = "614e9544235c6c6be9a05ca5193993a3122aa4580d62a69b71cf024c1a5be2d9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/kab/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/kab/firefox-95.0.2.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha256 = "d30cb205c3f4be385df74b3145bee60fbde879c2b67e1eb4e665dd7347d12f7b";
+      sha256 = "83f64f8b96369d3027081155f9a73eea31dad343daf16a67b4daa81208963809";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/kk/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/kk/firefox-95.0.2.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha256 = "4dc2d6a0284c498986806bf13b47c06e6d40c7f462e1b605d8e82ca7a56014a3";
+      sha256 = "6053e9164deaced2b0d0dddc3ecd8a6282da862f426e935231e530b0dce5eace";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/km/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/km/firefox-95.0.2.tar.bz2";
       locale = "km";
       arch = "linux-x86_64";
-      sha256 = "9de0952da56730f1d8fd3d9906259f5198ee36f189b510bddca93afe4d59be43";
+      sha256 = "10061378569908531c59f89c39c4364d8ba5cffbb8d2431d24cb936e61d949b7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/kn/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/kn/firefox-95.0.2.tar.bz2";
       locale = "kn";
       arch = "linux-x86_64";
-      sha256 = "f7f406c1f6d0af09aa47bb544f9819e3f60b0f07d88e63d618854082b5fe05d8";
+      sha256 = "3a958d7739948f6a051761af519b96e4209a27141d7487d37ced02eac115be20";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/ko/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/ko/firefox-95.0.2.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha256 = "36485ad2370218ac0577ce9c0045cace447943e8bdb252aa6f9a3d9437272833";
+      sha256 = "4a00e445bcebf1bb09b30958ee7ced9bb74fc99d459f13c001be625dfeafb2ae";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/lij/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/lij/firefox-95.0.2.tar.bz2";
       locale = "lij";
       arch = "linux-x86_64";
-      sha256 = "07b1db708ce1e0c2412bfb25f5cf343ebc3043441fc50bb67437f796b5c2019a";
+      sha256 = "5581da8f54ea490834504bdf6c6ba38ba94e580a3f5ded68864ca1de9db51ccc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/lt/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/lt/firefox-95.0.2.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha256 = "012db635331490afda012450f30f6b0c03119e964bccae9734eb138d8ad905ee";
+      sha256 = "9fbb08c96b44ab8e79c9d1f4c485b3e82abe0c0c44ced0b2e79640bd036042dd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/lv/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/lv/firefox-95.0.2.tar.bz2";
       locale = "lv";
       arch = "linux-x86_64";
-      sha256 = "90a9b9a41c6bd13c72dd7af41f815c26b7ad1e50837f7a5530d5e8676921dea5";
+      sha256 = "26d5a0d071e6df933f5fa602e5ac92908d6bee3aea3a0878dd9fb78e0fafaa34";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/mk/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/mk/firefox-95.0.2.tar.bz2";
       locale = "mk";
       arch = "linux-x86_64";
-      sha256 = "2ca9cf3a4084c9dcdc9fea68623afc1a51f11ae752aa9427d350b477eb850326";
+      sha256 = "77eaffb3409fe962c042033304f0272a9b6a1d83a67c04039e0bfbe3fa77a406";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/mr/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/mr/firefox-95.0.2.tar.bz2";
       locale = "mr";
       arch = "linux-x86_64";
-      sha256 = "cb26b2267e6e8a6618b9abe8c9b3f30181bb96098792f78fc916f62bbc93804d";
+      sha256 = "bbec138ef10b1d2dfa70e92b6911d5ba93d4a83c19d32af0e7d0f7b2273a440d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/ms/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/ms/firefox-95.0.2.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha256 = "ef7260b1a60362f8a6a53a038daa87d46f8704a1a3b22a7b696699cbdaeab2c3";
+      sha256 = "f00ac99116a2ed626af9e384114414a385121f4c5ac9d6fdf88d514391c310be";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/my/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/my/firefox-95.0.2.tar.bz2";
       locale = "my";
       arch = "linux-x86_64";
-      sha256 = "41dd943b89aa611479c91cee4a8ad5c371c9383e37c2b33715f8af8a91c915e4";
+      sha256 = "c8f24d949500f9829d539df0cad530431809a7fa74904e60646a3b0d68c49010";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/nb-NO/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/nb-NO/firefox-95.0.2.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha256 = "9c6069b9b1f55083b733d9051bad33b62e9f7662d3493385ac238052901b0a94";
+      sha256 = "46a25d5703164b941fa33bbd8d51098129cf69aed3d29471b50bf47b0fa402ec";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/ne-NP/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/ne-NP/firefox-95.0.2.tar.bz2";
       locale = "ne-NP";
       arch = "linux-x86_64";
-      sha256 = "74195c151bd830fc2b465a4c3f746a3623d7079d38c929babee64193b3a0a9b9";
+      sha256 = "7d10b7aeca90d46e0e58f7ae275432bdd99bf0f85009c85cb7c4b24f4801d552";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/nl/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/nl/firefox-95.0.2.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha256 = "3b4f506a30fde52ec32d643e0c9704e340d6a6314c006e2629297a685a816313";
+      sha256 = "534b7103ae81a7804a9c7a08e99d208daeaa9ca0e90d7f7e33c57357f07ca432";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/nn-NO/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/nn-NO/firefox-95.0.2.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha256 = "c5daf05a026075c293a1b07a125c5c6bca8708d3ec32788ed864f640ce7a5ea8";
+      sha256 = "9bffdc0f5f5b53ec578a5dc2681b122b0d7a744e0c57955973c49df6f0f6e46a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/oc/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/oc/firefox-95.0.2.tar.bz2";
       locale = "oc";
       arch = "linux-x86_64";
-      sha256 = "4880d83693cc1e2d59e46708bfcf11cf1a5554a4112786c711f239749433b013";
+      sha256 = "292c4b1fa823d2260b34065f648e18aa56b27254fd59cb226df13de7861ebc8c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/pa-IN/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/pa-IN/firefox-95.0.2.tar.bz2";
       locale = "pa-IN";
       arch = "linux-x86_64";
-      sha256 = "f2f17bb3512fea2308ce57e641ac67d4d66fae9afa6d5e3d85d86f0262b382e1";
+      sha256 = "325bb3da2c70e34507f139697c4ece086a0002e488745ff33540778634b51c93";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/pl/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/pl/firefox-95.0.2.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha256 = "db38542cc14db8e81638538e1457561c3f5aa84232bd81b01a0cb307810469d2";
+      sha256 = "4f8dc3240001f4fad31c9e3e7f70499e0ac4d9e6c7080b727e7eb71b8e91003b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/pt-BR/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/pt-BR/firefox-95.0.2.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha256 = "dfec0d003fad9289075086758843c5e743ddb866d80343f7dc6885a45cfded73";
+      sha256 = "88ae3bb932005d9271eb5d82951f32c2333296c2c24f23881ab8a1a3d563bc76";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/pt-PT/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/pt-PT/firefox-95.0.2.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha256 = "a465df64671b5a6ea654dd6da45ff2c0759d55d13157f92db4a3da9bd01e3d3d";
+      sha256 = "a7a80f21b5e5a0e6e40c6865ef3526f1eec3c983f8d49caaba35a2e5ca5401c6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/rm/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/rm/firefox-95.0.2.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha256 = "b3504230febc7cee42493b9d6f40dd2a5bbe53cc49989dff161520588eb5a470";
+      sha256 = "9d16c2bcf15bf2b36f5ca664a0476e080d756b14566880c0a3c8590f707a1cba";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/ro/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/ro/firefox-95.0.2.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha256 = "dc1a1506008e922f9a24311a492ce9f5782d5bfabd2c367a377d503b6c9dcde3";
+      sha256 = "db0cf0ac7b6383fdaa8a3ef5e6d59f3677009908ddfd12221e0f97b19b58be6b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/ru/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/ru/firefox-95.0.2.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha256 = "0873ffd9748d237a092af955a8a2cc18979b94b6fa9ca8fa3869ed352fad428c";
+      sha256 = "f1def34584ce90445355eaeb64bad5ace27e1c6447b3a1346dd2e5d32ef1428a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/sco/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/sco/firefox-95.0.2.tar.bz2";
       locale = "sco";
       arch = "linux-x86_64";
-      sha256 = "631ab970b1ae2a3c6b3bd68298e35619d99baac10f5bfb3d573deaeba228906b";
+      sha256 = "e1c3953c2ebb12fb6975727b68ad9667b983d1d1c7fdccdbe0c52e5cf12c815c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/si/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/si/firefox-95.0.2.tar.bz2";
       locale = "si";
       arch = "linux-x86_64";
-      sha256 = "82bb94b5144937115072569b8a6e81d7a1fdbe79c0ad581e23d0cbbef45fb708";
+      sha256 = "268bf3da414e1e00696262e0104b77d71e2b61b6b6fe1fc23cff33ede4108f58";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/sk/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/sk/firefox-95.0.2.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha256 = "4aba124990ae7ab68c2d5a3a6f5866d79f900614bb8a01387b80916aa91d11f0";
+      sha256 = "39c018398173f92334775077b0b11379f859597b162f5b186747e9c403206718";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/sl/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/sl/firefox-95.0.2.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha256 = "a9a24b17498a39393cc326e2bc25e1e79c9c8be62ea96b9e1b31d8ec1ede6adc";
+      sha256 = "0bd6c112fd967944205fd08055ca7a5096c23bc7ea8e0d09738883635a3653cf";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/son/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/son/firefox-95.0.2.tar.bz2";
       locale = "son";
       arch = "linux-x86_64";
-      sha256 = "2063c717103962c9f3e0eaa9ba4fe27ce93ed9c18ef7427d7b99e9b7429fb8f0";
+      sha256 = "c7a7b276935012c9be0cda1531f6206163434ac5810580a65a1b0f0f2c839660";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/sq/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/sq/firefox-95.0.2.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha256 = "359dd64cbdc1c3a905c14184f5cc2d9019d82abae35850f718daea2e139c8f25";
+      sha256 = "27d6cd975c7f68d4622b0a2e1b7847d0f3e301b2e9e76008e047d522917e7d3b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/sr/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/sr/firefox-95.0.2.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha256 = "33a0cc70a9654f93b7d01a10b49e890b4fb56c72b95a2e5ab29884e902c7bd41";
+      sha256 = "68a99dc76c9c7179f12bb892920aa02f3a9019186a8999a06448a0e19fa93ff7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/sv-SE/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/sv-SE/firefox-95.0.2.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha256 = "7c935aadd46b14f89ca5357f36108965d18c0c2fd4b470b51c0bd3110c9b0f2e";
+      sha256 = "d0d64191bab8421feadb1abe91b471a6b059041b2935e0bc43f6d9c959d2dfaf";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/szl/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/szl/firefox-95.0.2.tar.bz2";
       locale = "szl";
       arch = "linux-x86_64";
-      sha256 = "ec4c7bc828df6bb42d5551ab16a654406cd16e0d80ce52af5ed8e7ff37c38a45";
+      sha256 = "3c698e152b2aba10d46ee06a5ee0425afd4c7e7354984b45d883ed5e286890f7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/ta/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/ta/firefox-95.0.2.tar.bz2";
       locale = "ta";
       arch = "linux-x86_64";
-      sha256 = "85edd369185287c09e68eb45614199d27fe20ce3352a89a04c30a5823bc59ef1";
+      sha256 = "ca9883cbe4558e38ac9cda62b0f43f3c173c9dc479214b6a746805e43aeda031";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/te/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/te/firefox-95.0.2.tar.bz2";
       locale = "te";
       arch = "linux-x86_64";
-      sha256 = "75af554b90f0e591882b173ba73439110ab3eb39da6d55ca46ffcd3ae3001fe9";
+      sha256 = "251915074e437e83c1165005b41c28d0b17b4234bd3caff8197ac660bb35eeac";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/th/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/th/firefox-95.0.2.tar.bz2";
       locale = "th";
       arch = "linux-x86_64";
-      sha256 = "2751b94c8896689e37d98399cfe8ce91af6ddfa927bd8b071fbb6841b94a4b17";
+      sha256 = "7275ebab122274b2ec633a760bb2dc7b1257d3523051266ecccd55661cdd7b45";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/tl/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/tl/firefox-95.0.2.tar.bz2";
       locale = "tl";
       arch = "linux-x86_64";
-      sha256 = "a3f44ac0e29f273617a5e47c79bffd46ed81bf87d633ace1596696d060a4a053";
+      sha256 = "0217bdd9c71f993360ca97fe185d020d222c4e250138499088d521e0f21c984c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/tr/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/tr/firefox-95.0.2.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha256 = "c85fff23b1aafd3385384d365b357db941735d070e009f63c0f44b5af61be17f";
+      sha256 = "d9923e72ed18af3204df15d7a414f5c41627ab80e9566b1cc16f4cd0d5bcbb16";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/trs/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/trs/firefox-95.0.2.tar.bz2";
       locale = "trs";
       arch = "linux-x86_64";
-      sha256 = "d22fd5d0768bf5e514c885aecdb4bb28f905362349cb23ff284c8f160b829589";
+      sha256 = "3ec42470cfd25149f8291ae6634825648e64d0bdd115c75cc2aaefb7db953d03";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/uk/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/uk/firefox-95.0.2.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha256 = "071eecdd89c97e9da18952e08cb00db4d15dc32ed07a958b011634646c1b8cf8";
+      sha256 = "a059f9ea668d4c70ce6574f59762f917baef5cc62bb0af0c7e422577a55828f5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/ur/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/ur/firefox-95.0.2.tar.bz2";
       locale = "ur";
       arch = "linux-x86_64";
-      sha256 = "d7be441c1f3e35e0f96654978040645965017fbfab9e05150bbd7839f6e3f4ef";
+      sha256 = "d68ffb37896e8c1405f919adf301053266c3bee0f729a7889be1d234343dd9f8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/uz/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/uz/firefox-95.0.2.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha256 = "3df397b4c56e87407bf4c6d8507ae240ed31e76176f2c4eddb7ee928f4ea66f6";
+      sha256 = "54ffc455910dcb2aa83e1736e36672cfae84658486d5117fd0c1b97f61f829b4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/vi/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/vi/firefox-95.0.2.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha256 = "8c1d6216ffec804d14e75a7f44f0dbbb566e6265bfda8aac225d42bcd0c2782e";
+      sha256 = "9b46375c46b831db3680d592400e68ad953dc778e77742a4f24f36af73e9e810";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/xh/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/xh/firefox-95.0.2.tar.bz2";
       locale = "xh";
       arch = "linux-x86_64";
-      sha256 = "dee937b1ae586b456f846d943163ceb5243f67c1c2185c56c1190b1543b136ca";
+      sha256 = "e728b54cde7f96a6c036a7d65c14ab14df2a073227f33709485e52a5f34bc565";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/zh-CN/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/zh-CN/firefox-95.0.2.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha256 = "4504bd20b5161cdedf2289040b93c00fe486102033d00181eede0c01990b9661";
+      sha256 = "5856e43a3f3a7bfa7710b42f15209e0d0ce39a98d8509e0e19f957b972e7c1e7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-x86_64/zh-TW/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/zh-TW/firefox-95.0.2.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha256 = "31b6d0b818458297ada27bc01bd752dda8f22965c233e66f975c2580736117de";
+      sha256 = "9defb0e1cac327e91f4a950448d553dec01d5e359008d365991e1e188453dafc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/ach/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/ach/firefox-95.0.2.tar.bz2";
       locale = "ach";
       arch = "linux-i686";
-      sha256 = "cc75ccf528eb8b7631d9a9f1fc6c3630c6c454fef108d510d6f6bb4c76f20500";
+      sha256 = "158fa1d03e0b7bafe9603c7b2f30e78819dbce67b07b2ec78c4fd89f05303729";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/af/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/af/firefox-95.0.2.tar.bz2";
       locale = "af";
       arch = "linux-i686";
-      sha256 = "8a41e9225d2098dae45e55d3376607fd23dc014cada61acd5cfc8a05646911a2";
+      sha256 = "a6ce2aaac2061d36b294de9871bbfbb4321f4ad1f421460a6e3d799ef54b608d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/an/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/an/firefox-95.0.2.tar.bz2";
       locale = "an";
       arch = "linux-i686";
-      sha256 = "bd7fbc5a40e9c496d25d3a84513a5c209752a62b33caa7ae1d96a5d1ab28f08b";
+      sha256 = "1e8d592f2431a2e5df7453dee984bd29bf94d3ad1781474effa14ffe9de3ba3f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/ar/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/ar/firefox-95.0.2.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha256 = "dc7405a5710a03474bed35a2be62445578d1ad25944a641f3498ee683f2f043a";
+      sha256 = "ae55b1595118148889049b9ddf25ed9e32e6d6b2cc66b0e90821cf79d6bf2ff0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/ast/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/ast/firefox-95.0.2.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha256 = "0adf72fe71be6043e9f94f97b29dc0f29c0e45925f61b99a4afb5400531890ca";
+      sha256 = "17e76ef25a9028042f3e35b725ff0171bfd82678c6ab826115785ce6ff2d2010";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/az/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/az/firefox-95.0.2.tar.bz2";
       locale = "az";
       arch = "linux-i686";
-      sha256 = "4bd717814aeb0072a365b0d095cefb236c3e728f50be1e11e74db218daa49e3c";
+      sha256 = "2ffd85a5982a0ed0c359d1f8f8712407aa6ff10823d21750cfb16d925fa0c5f7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/be/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/be/firefox-95.0.2.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha256 = "9f74759b23c44e64a49ad7de046af7f1f6dc2b520a57053721125536f9dee993";
+      sha256 = "e78fa23ab27503921d3d4e2f79dfd391d0e200552f2bb48cd27a6cdd47468ab7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/bg/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/bg/firefox-95.0.2.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha256 = "376eda6be2803529cfd913e1fba1b9aed37561563eb9339172d310300520deb3";
+      sha256 = "4e866bb3705f17fdcd7b98313b025e52544dd7bee2f523e886b3654455480b62";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/bn/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/bn/firefox-95.0.2.tar.bz2";
       locale = "bn";
       arch = "linux-i686";
-      sha256 = "740a3223f951fca7b51d44707db9ae5f9d73e9a69a7a8b0f9086eda405c3dae4";
+      sha256 = "e170018a2e2f6a568148ec5073c5f82fa401894f5310b887dafe36e388b8876f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/br/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/br/firefox-95.0.2.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha256 = "5488cdaed093da089cfbbb985fd2b3a0338067fedbe761ce557fac36b9c856ca";
+      sha256 = "73ea87a78ab765589c7e76237044bcdffd783183ea6b8afc67f2871231692143";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/bs/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/bs/firefox-95.0.2.tar.bz2";
       locale = "bs";
       arch = "linux-i686";
-      sha256 = "a869c7eab0a99527221f4fe7bebbe3b5027843f1c4c18f82129398bf0d976ad3";
+      sha256 = "900d9625d1cbaed04155e5e024cf7872d454f6b22ee37a57739c702c6a328657";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/ca-valencia/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/ca-valencia/firefox-95.0.2.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-i686";
-      sha256 = "407aa59bf97828b477688b2467fb036fa6b258c27db020202813c4ed3f628ae3";
+      sha256 = "bfd22c146671bfb21b7f36c17691754cbd8c6abb29eeb0703d3a030df51364f2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/ca/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/ca/firefox-95.0.2.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha256 = "b4237a23abbe94df193cd97d224814e9f4d1a9917c3e0fa5f2bc963e69f0ac8b";
+      sha256 = "1b1e3fcdcaf4c299cd8c0f5b109493646e74c46bf9a0b09dc5f33b33062a398f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/cak/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/cak/firefox-95.0.2.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha256 = "a7d59111decada5f71662f61ad4b751f94fb471e9f3ac556a409ea990d080f50";
+      sha256 = "ce307ae50893ac9e424eedbedea8cb1a9358e287ee2893a8d0894003cbdfe609";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/cs/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/cs/firefox-95.0.2.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha256 = "ddcae74269b833142bd4f074fc17a90ac21e0c4bc30cbfa92a6777868e8cea02";
+      sha256 = "c6230333dc66ccf20b68879c31a69061874b5a0869786d87d8190c88d5a02664";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/cy/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/cy/firefox-95.0.2.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha256 = "24a117c1ecebe391a51dd6dcda6f35c4e0a67c1ce874968ef356538155090e47";
+      sha256 = "3f87de3d75fd4a7f66af64bcb3eda0dc43a8717797840235dd64c0acd5eca1a8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/da/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/da/firefox-95.0.2.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha256 = "9ed7cfe2fc57966276230c88babc60841da95144686e5437404028cb20f2e07a";
+      sha256 = "eac9b4c6bc7737c82fd631608157448ad9c78e793c4c7b4e319e36a6e5ff61b1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/de/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/de/firefox-95.0.2.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha256 = "4d152c48347566d9c518456bcc2776aaf4959c05067843953f3ae7dcc4c7e150";
+      sha256 = "71b618dee298b67383c8567addc0e2d93d4bcf2d196ca7db87ec20a3315ccace";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/dsb/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/dsb/firefox-95.0.2.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha256 = "58fce69bd6a5b4c5558756dd2e3cabbadd8e37169a8521b4ef0b0fc5d3e5e256";
+      sha256 = "cbeb7eeffef1c0437644182dd5475e770bf0118a351eadb3c7892c69fed7e0a4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/el/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/el/firefox-95.0.2.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha256 = "28373344f2c1004961665a9a0a593674950396c65e15c17404d482cf584b0eb6";
+      sha256 = "2d9bd41145a737c8b25826d7af978219a61199b9d045651b6aa68029e5027187";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/en-CA/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/en-CA/firefox-95.0.2.tar.bz2";
       locale = "en-CA";
       arch = "linux-i686";
-      sha256 = "d5dbc14a08dda403c80ffa7102d5044fe6422890b4f98f41a873372a7bc9f88f";
+      sha256 = "65d83800562d29c0b042dcd9ae4d7fb230f8248ba0bd0cf8bd40505884f839c9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/en-GB/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/en-GB/firefox-95.0.2.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha256 = "4c1ac8c5b2e6faa5e9aea22539cb582f721659ce5f91aaf9a02cd5a2ea1a0236";
+      sha256 = "bf4cc0aea5826f1bcdcf493f241cf23509f626f81fafbf436430b0f0507f674d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/en-US/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/en-US/firefox-95.0.2.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha256 = "3d007099ea060e4f2f5ac2d8272cab6c2c47b5d084b2fb46291851b3a3a34662";
+      sha256 = "86e33e0163773378fcef227884d3c439f61c2d0d6ec3cdafde1740816812c811";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/eo/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/eo/firefox-95.0.2.tar.bz2";
       locale = "eo";
       arch = "linux-i686";
-      sha256 = "7b80a915b6aab7caf5e8d0ecda625700cf65bd1cbafac22123c3a3c940b46cc5";
+      sha256 = "18fa6af5ca174cefd1b8f266e1c6bb6576facc8acd28b6b9a8f6121fba1d6426";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/es-AR/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/es-AR/firefox-95.0.2.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha256 = "17d0ebb9a65e1d178545da02fd8a2e30dc3efcc3852dd4151d0f302185aeeb38";
+      sha256 = "efce9ac44d6156558ee28c7bc4b1489f1554afa632ed0dda2dafe2272e885d6f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/es-CL/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/es-CL/firefox-95.0.2.tar.bz2";
       locale = "es-CL";
       arch = "linux-i686";
-      sha256 = "49842dc33d13b8ea0420c42f9c5e1d93cf8bf27c94ba8348c3ef9bd7c43cef96";
+      sha256 = "920e9183e71935da136d2142ed0b1a9e5a764e7d4bcd6ac2c65e3e405ee0d82f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/es-ES/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/es-ES/firefox-95.0.2.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha256 = "bda3356795b781d6a0cb44861e973c0b429f3a4567c6d19bd609b99d08668b1e";
+      sha256 = "3c6cd25f55dc3aa17f1d613878b3b40bee28847a80b36fcb7d0c3b4ee5e6462b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/es-MX/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/es-MX/firefox-95.0.2.tar.bz2";
       locale = "es-MX";
       arch = "linux-i686";
-      sha256 = "b1ea0f018a62d47f1fec31423f7fbe7fbdf5571a0354307880de8ffbbd4ac6e7";
+      sha256 = "7b076daa30e58362534aa2373931d0f984967824f3592dd92ffecc7597c4826c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/et/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/et/firefox-95.0.2.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha256 = "70774afb5aec486c63b6bcaf324b3d9d780ea5ade0db889afe8b381f697c485a";
+      sha256 = "d9188331a592ee8e7f40c3cc70fd5947164408bb18066195af5966b25deffa44";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/eu/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/eu/firefox-95.0.2.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha256 = "741ecc912aaf732da0ea2a2f0b29e75c86af5b2dbe382ac857852a4a589d4582";
+      sha256 = "48414c68c2c67719d43845799dcbb64a13d513aadadc8299e5ced7ac7dad89d3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/fa/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/fa/firefox-95.0.2.tar.bz2";
       locale = "fa";
       arch = "linux-i686";
-      sha256 = "1521a32450d77eadcee4dbf60b0cc69dab0a56e668a0679e98d1406a2a943fc8";
+      sha256 = "1cfc92b1100d803a148feea5bd0d40af26dbd976fb30b29e79125687bc5ab247";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/ff/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/ff/firefox-95.0.2.tar.bz2";
       locale = "ff";
       arch = "linux-i686";
-      sha256 = "1be559b1e2e34718fabf031d9a86d51e10277db08c705ecb24293376d61a0acd";
+      sha256 = "0e576c6cc65b92123294b7d230ea3431704ac107be56ed93486c93021019cc2b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/fi/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/fi/firefox-95.0.2.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha256 = "ac970e4dd896c0119a29a3c1b83ef6ea49abd1c2db3df10f31074345a938f110";
+      sha256 = "031de60746e0acba133c58091ff8993e9f03822b8eb2dde8636719685b10a5f0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/fr/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/fr/firefox-95.0.2.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha256 = "576b3fad11ca409d30d3a8e79b38e1691048d0a727d20e1901d66abfa8e6bc43";
+      sha256 = "072876a0c2f8d78271b83faba916c61b9e14f783a9afc6af08158e7e988c850c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/fy-NL/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/fy-NL/firefox-95.0.2.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha256 = "a636aa013c5801d48a1e4bcfdbb49558cff3d4daa553d09e26e8672c7b6863ac";
+      sha256 = "cde0cb368aee49b281ef4f0893eaa15345ca60623c57dc7f93d8320216fd1edd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/ga-IE/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/ga-IE/firefox-95.0.2.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha256 = "621ec0e14c7e33a7152f163393a730c8e0f60a2425fe5d7ff99600955c5cee5a";
+      sha256 = "cab5ecdbdb5e3286726b06e7fa8adb43d49f8c8316ee240ccc849c339bac3076";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/gd/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/gd/firefox-95.0.2.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha256 = "bd8ed6d2ce3a96ab48fe84f9b438a5e5f06afe5c8da2c97390fa58a79c651cad";
+      sha256 = "ee5c4c06b9b899b14374dc6abeee533e130e90242acd866e02b0c759ca6ed397";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/gl/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/gl/firefox-95.0.2.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha256 = "56aea4182c10376796bd2b7a28abb83fadf183d71462317b9c3bf32f0b0d9a67";
+      sha256 = "e8fb73e3495d3c4dc1e827b21d50458e6ebfd56f3735c5c87ed88fb9bc9d379c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/gn/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/gn/firefox-95.0.2.tar.bz2";
       locale = "gn";
       arch = "linux-i686";
-      sha256 = "98bc2499d03481333b4704bc4fccf43cebbdd5ade97c5336b38fc19bbe0f7e75";
+      sha256 = "3511c27b51f12f26238e5862edff7b171cb9eb6b0843843d62ae6ad4f23891d7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/gu-IN/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/gu-IN/firefox-95.0.2.tar.bz2";
       locale = "gu-IN";
       arch = "linux-i686";
-      sha256 = "36ed43fd439ff12ea56ffb8cbc35ad58a6c28b946529d8e40b9e80f91b447077";
+      sha256 = "34fb15517f0e8472655950e0269050b897b5d2986aec4545dc6aa4e4314054a6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/he/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/he/firefox-95.0.2.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha256 = "5d7c3c285ddcef14e54ea0998ac89b0b1bc1e96b80d44ae98bdefd06ff32650f";
+      sha256 = "263e6ec46f8347a27be1b8ae44ecfd3bd4475d2142fc0bbf21eedf791fa6e522";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/hi-IN/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/hi-IN/firefox-95.0.2.tar.bz2";
       locale = "hi-IN";
       arch = "linux-i686";
-      sha256 = "c560aa53eeab811821e8c0c9981c89bc1fd9e96e5e95895e7c27eedb9c8b5ccb";
+      sha256 = "c19cee388dfb212fa28ab7b93379db8bd60964dfb3a8a6f5371f5b4384fcefad";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/hr/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/hr/firefox-95.0.2.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha256 = "ee078f88bcbc04b484c0768a554465aec6ff6c7bdcc8a7c57910e22fa0ad4b27";
+      sha256 = "b3af09b207e11d6ba87b39f33e7c8ddffc80482fd3f5d910d2079481b3db4268";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/hsb/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/hsb/firefox-95.0.2.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha256 = "1c561e157a3dcdd79866784e442683bc028a3b99bf088c323138dae87e1d1ae7";
+      sha256 = "ea52879ce3a7b7a0921746d56163af72d824a287ead51a97b491682a479ebd05";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/hu/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/hu/firefox-95.0.2.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha256 = "8d5e7f800f312267dd2ebb388bd5d82b2b5570af4964d420cfc770a80d386afd";
+      sha256 = "e83307c88b9246e098a1063b61a886148c930bd891cbc75f8b6a1257f9746363";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/hy-AM/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/hy-AM/firefox-95.0.2.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha256 = "d85ecfb1cee8aac613d9cb02813d7a96967d50996fbc1a31c2d439d5d3aa6f4e";
+      sha256 = "f414105b7cb3485004af9e798d8159a0eb801e8f384b8b6926d34fd07af6ec0f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/ia/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/ia/firefox-95.0.2.tar.bz2";
       locale = "ia";
       arch = "linux-i686";
-      sha256 = "0e836a7f7017cbf29b6960d7b072380a879e764c42dcf2b32b1f89a4009415c9";
+      sha256 = "ef3879f8e5ada797c0011ddf3a6fcf6407f2ee1e858f254ad2d500233c7703ba";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/id/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/id/firefox-95.0.2.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha256 = "02b5821c24c1b7124faaed34fd3aedf80fa4db2616fa9d6ba7f2d1d3ced524e9";
+      sha256 = "6c888381f1d10e4ffe6ed3a056933400e8adcb64e4a5c6da2524f92ce0eda62f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/is/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/is/firefox-95.0.2.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha256 = "3d0c544e1886ebe3b957eee0a0167fee4a8b81f86fb5816f46a0b694115e9bc7";
+      sha256 = "3d256a5d9382866e93f0b6f5a0cf1dac1bd724ef5f7c693ed0e355ad34db8476";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/it/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/it/firefox-95.0.2.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha256 = "3f1a4c25b671ad1a83614f965b3294bc2147969078f331887a1a00f5d4410c64";
+      sha256 = "fda1bea7c61c172dcba91e07e22f2e205f08e99b63ceba5d96576a432af47b60";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/ja/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/ja/firefox-95.0.2.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha256 = "303487f5bc53fdf81de218e56fbe289419debe43f9ea6152305a4d597734d1ad";
+      sha256 = "ae5aac021a845ff644d893de7a39a96aec33b128b1537e583fd48a06ff87e07f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/ka/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/ka/firefox-95.0.2.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha256 = "9a5847b1cb64d0c26c3f2c7461251d3bfc94614bec406830fc4a201dacfa8fe9";
+      sha256 = "043e54c91838a71c1b9ceae8fa40112c54dcd5a530d96cf0874b1eba76220878";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/kab/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/kab/firefox-95.0.2.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha256 = "0d372c08f22ba13d3b5496e53f065b55b09e0899e62018f343636c1bac426f18";
+      sha256 = "fd7368cd63c612606cf57eee9476e009abd9c2f35a200f9887c50b34f36fddf0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/kk/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/kk/firefox-95.0.2.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha256 = "d38b5dbea246202124cfe708bc22991305765f67130c816b04e96e75c1756268";
+      sha256 = "b4a7e455aae1894b2b9418e3f0b14350f0a3446923684fcf61a8e6abdf131681";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/km/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/km/firefox-95.0.2.tar.bz2";
       locale = "km";
       arch = "linux-i686";
-      sha256 = "c596c6e585ff5560b3bcd93fef6da771008b296c226bbe3d80b03a7f4599ffac";
+      sha256 = "2635a41aa81a9ca863652b5e726bc2022369993059d64a6ad81a2f751e65ff1d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/kn/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/kn/firefox-95.0.2.tar.bz2";
       locale = "kn";
       arch = "linux-i686";
-      sha256 = "fce6d171e94bca48915a20aae377bb3b92e5e3c6f64803bd732519e039853ed1";
+      sha256 = "adf9111e992ce6504aae6dc2bde5519e58ce474ce52317fbb503138fb49a490c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/ko/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/ko/firefox-95.0.2.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha256 = "cf6383fb59b08da5b69bef818fe3d1cc4458a2319fe5f8fd55077a7464054535";
+      sha256 = "b47532250fa7baff58d47052a51c966ed52b6e8009bc36b67958e67631e2de1b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/lij/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/lij/firefox-95.0.2.tar.bz2";
       locale = "lij";
       arch = "linux-i686";
-      sha256 = "70f8da49e6f62b8837e7cf56d628980b47abe291a18717b4b12809e863b3eb76";
+      sha256 = "92d270be61a7a30876d00bd1e2741c0db4363f34f87a97456b700c5af28252c9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/lt/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/lt/firefox-95.0.2.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha256 = "be9bfc950e8480c34331c5ea4118e63c27f9845ad9478e676ea1f1b130ae0afd";
+      sha256 = "8c4efa500b88d76ca8b0abde737552ab905db34807816df0d2614e3d47a00dd7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/lv/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/lv/firefox-95.0.2.tar.bz2";
       locale = "lv";
       arch = "linux-i686";
-      sha256 = "5e50d2592f1282c333840dad77d990c7b6ec2ea6ff708ccb600bafc0f973be38";
+      sha256 = "db86073e2910f6d54466e8015fd8ed68b02f08c6ba4595ce21c3547addada57d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/mk/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/mk/firefox-95.0.2.tar.bz2";
       locale = "mk";
       arch = "linux-i686";
-      sha256 = "0840349cefa0ac4b2831132bec2fffbadb58858d84566cbbae20ed751be85449";
+      sha256 = "91a39fbc897197d48792bb1ed82e4e6a2bc969efdbe31c9d6cdaed60e4af4884";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/mr/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/mr/firefox-95.0.2.tar.bz2";
       locale = "mr";
       arch = "linux-i686";
-      sha256 = "e34eabbfe097b0672159d5bb78502956dcb600553bf44456e1ae1fc4146e9332";
+      sha256 = "97e775f3926ee3f158d30a16dfa5dcebf67b9d337e51ddad43235d1c7ac77cfc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/ms/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/ms/firefox-95.0.2.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha256 = "bfeb480b4f1f885f8fa20d25c5d66fd60fcc73d7403809b3d5ac54065e8ed2b6";
+      sha256 = "32cd9715073cb1b987abf73f909185c96231d9bc9ea07972ff6c58a1e1ef5dde";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/my/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/my/firefox-95.0.2.tar.bz2";
       locale = "my";
       arch = "linux-i686";
-      sha256 = "3645f4555133a5cbd2445453281e7fb9ca31fd78f977800a0a932e87d2bb21f9";
+      sha256 = "4e70811af633f19718076fd1d0ce4008e6cc8ab6b24842fb1eeb184b505cef50";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/nb-NO/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/nb-NO/firefox-95.0.2.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha256 = "17f3092a79d955ac428c89eb1c9de7f87329b7cc70a05ef1ec1b6ae8e8799966";
+      sha256 = "97dda05d66002f87bf7b4ba2d08c18402ce2462ef2fb3e3876d4a55520329823";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/ne-NP/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/ne-NP/firefox-95.0.2.tar.bz2";
       locale = "ne-NP";
       arch = "linux-i686";
-      sha256 = "0af38c47e0455bfc7beadf6ad67a2efeda8f9d199728284cf7a27966fe28c827";
+      sha256 = "7ea002b8d50f49e64123612d0a43100411a5edc975d40081b1d99e47b6413242";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/nl/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/nl/firefox-95.0.2.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha256 = "d15581b93acf1f0dcf5da2b803718e81447c3bfca5f56b85aecdf30f5e50524f";
+      sha256 = "da9bd1e61d17d5625d9c9114315b63b37b062a3af13e91fa480af0e0aff35366";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/nn-NO/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/nn-NO/firefox-95.0.2.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha256 = "aff9b26e755f32eaf4a8de9d7e0e604d2e275aec1a85b041dbaf6b2a0a6e77b6";
+      sha256 = "096683e5c3cc1794c099197c6126df8d3f74b677a5c583559d0bfb884d380bef";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/oc/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/oc/firefox-95.0.2.tar.bz2";
       locale = "oc";
       arch = "linux-i686";
-      sha256 = "4a0926db56d9562cbc3254f07df0e065d1010a998227dc84d9b77eef178d4283";
+      sha256 = "5823e9978b4abbfe5edd656165dc2d8a49a1cc1b65fd8e4fedc0d8dc642af695";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/pa-IN/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/pa-IN/firefox-95.0.2.tar.bz2";
       locale = "pa-IN";
       arch = "linux-i686";
-      sha256 = "b16ddfd2baff64ce836429c73e4eb2ab7a6580227b1ddc9bcfcbb19bd0669c2b";
+      sha256 = "56f1acdbd9c9613923aabdc69f80878f21acf3ff10a713eddb9e2224c35d7399";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/pl/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/pl/firefox-95.0.2.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha256 = "fdcf593d53278eedda628ada66831fbe6f2d48f3adb1655f48793b86fb842d8b";
+      sha256 = "ec6c676224031272a81cf624db09d5c9a26fe02ac0fca72255a7af25ceab70fc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/pt-BR/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/pt-BR/firefox-95.0.2.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha256 = "70f75817de5c329946514036f51a93498500dec61ab9feda84c30c12ee539881";
+      sha256 = "2c86036d927857fa93778ad5b56ef134cd3bd95ba6be032c8fd6f94a9b01dac0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/pt-PT/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/pt-PT/firefox-95.0.2.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha256 = "02feb1fdfa83ececf169be3313fd2b18c438b2e2e2e9312e0a3fed46d1d6df8f";
+      sha256 = "331e81e86dfd3802432457bb78f5c65cc35c2ee459503b5158c0d9a44ddf38d7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/rm/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/rm/firefox-95.0.2.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha256 = "4af7ff39aef89e677d8350974106d6bb033ec1d0caa7cea3977d3e187fa249c2";
+      sha256 = "8d238b1fa93a4aacdc6f54a456fe523a9ac61d834420cf2b349062dc35e8d228";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/ro/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/ro/firefox-95.0.2.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha256 = "de7fcdea9cc12d81c33ce12dd3800a106cbf950314b96f20744bb43faf9adc4d";
+      sha256 = "caff2dde8dde6829c5401f0408c0c1cf146453583b407efed01f5dd629d70bf1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/ru/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/ru/firefox-95.0.2.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha256 = "4c6558c904cf3271fefcbb8d6151013e6bf006ad8e35b2d344e7a92d7b7b1a23";
+      sha256 = "762466026aeaf8c8d0bee290113d658712cf02d09b130ac0cfb638d7d2806eda";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/sco/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/sco/firefox-95.0.2.tar.bz2";
       locale = "sco";
       arch = "linux-i686";
-      sha256 = "fdcc0dee6b7b21e91dfa85efeefb6f20034053611bf73656901618231ee4f292";
+      sha256 = "e75313594dfd1390e452667746073e6eab67f62da7e5bb8f9d9c3c399e0873c2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/si/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/si/firefox-95.0.2.tar.bz2";
       locale = "si";
       arch = "linux-i686";
-      sha256 = "a8bcb47f663e4e723279a52e4db1566059021e23d4727db0d390c01bb12721d1";
+      sha256 = "4672751457c6bab937736fb5085fa24588e97543989d9e340859876c5537d793";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/sk/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/sk/firefox-95.0.2.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha256 = "214ca20e6e3af96c4af3a0679a9d93de4c4f9428a2d4e451d5880a36bcef7186";
+      sha256 = "bd17ebe6aad0ab05854d20c66de4d695d9fe967d867f46c29e2c8c40da709b2a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/sl/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/sl/firefox-95.0.2.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha256 = "3b7e3374533ef821618203d72c4daac774e69692f849286fc32c2d79f16353ed";
+      sha256 = "c68745642e9c3581bb7f4bbcf17eab7f62c397caac5b2b7fc14668a0b2ac3daf";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/son/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/son/firefox-95.0.2.tar.bz2";
       locale = "son";
       arch = "linux-i686";
-      sha256 = "0f371b37d6c66047d630f0c4d405b1db182d5bc1706fdaab8d757504666c4bfc";
+      sha256 = "895170b400df833df90608a44e17b99405dbc932cf15ec5e1b5e91febc2fd629";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/sq/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/sq/firefox-95.0.2.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha256 = "0e4ebae09edd895a00615459b6f10b573cd7a584fd12e8ad14b7fd35144b0739";
+      sha256 = "ee67428d035b065e4d6c129e0659a508bf6eca7e0d64802edbabdc460db479ee";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/sr/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/sr/firefox-95.0.2.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha256 = "48a8bace93131d0dbb1b18e6de55dab40b116894e890dc5a0f4128323b522886";
+      sha256 = "954800db592b449bdd7c37141198702cc1a3a2b8b217f71f5ca4ee7e9dcbb04d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/sv-SE/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/sv-SE/firefox-95.0.2.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha256 = "ed4f22a819a35ed67cfeeeed1f3e5110ec0df80102e7e14fc24bb2e50c600374";
+      sha256 = "ca2604feb91c22f5dee9e59f3c1098ad12c34b5082fc45841d54ecea4e6c8e4c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/szl/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/szl/firefox-95.0.2.tar.bz2";
       locale = "szl";
       arch = "linux-i686";
-      sha256 = "226c7b2474bc079fce8f7e3eff7f3d07c28603533301df36845c1e5e58882a88";
+      sha256 = "3e434f5a395d1f0230affedb75d97976f5571a3f90801f92a606f1ff39377393";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/ta/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/ta/firefox-95.0.2.tar.bz2";
       locale = "ta";
       arch = "linux-i686";
-      sha256 = "59f352b471823393d7bc94bd2f27190a5f8714b715f4e275b1ace658aa1963cb";
+      sha256 = "ba25db7b2fd274e2e29f3cb10bc5a5d2af8c4ab5e75fe62164a538316d7171cc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/te/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/te/firefox-95.0.2.tar.bz2";
       locale = "te";
       arch = "linux-i686";
-      sha256 = "8ac438f4751f34bfd84a0257dfb2c6ac8d3a044b8d2f0fc75154b73b61ca8f0e";
+      sha256 = "f0bb3fe0d28a1e7440e07060c36d8a4c62a7d8e7d7567c793997f23504018406";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/th/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/th/firefox-95.0.2.tar.bz2";
       locale = "th";
       arch = "linux-i686";
-      sha256 = "5ad4843b8a4b89117228bad779aa317c042dc5de408f61383dc8db8835243ff8";
+      sha256 = "705f294d3b735821cbc6cc93ce25264e4e2eb398194926ecaac2bb03fe51ef8a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/tl/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/tl/firefox-95.0.2.tar.bz2";
       locale = "tl";
       arch = "linux-i686";
-      sha256 = "714f87ba16bd6650b1e32c7e5a42edf184720fd23677e6e80ad11431e6f3558f";
+      sha256 = "2f12aa7ac32ec89b5ca09289a8d6296fe9fbf332b53b7d183b75fb9b1dca3b11";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/tr/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/tr/firefox-95.0.2.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha256 = "b306db5728e47834f38702a1751f418de967c6f99d67c98ca999cdcc42e0d8eb";
+      sha256 = "5353938c7b90e557cb5e14e2f8556e9a14698e135b94eba0475c4303b293642a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/trs/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/trs/firefox-95.0.2.tar.bz2";
       locale = "trs";
       arch = "linux-i686";
-      sha256 = "e8aafa349540d8ef612f085ba49c583958075525df8e9e6d8f958f8d79be7620";
+      sha256 = "428ec7d2ba7ab418f6c3eb51f1cfe81ee798360333211195bc15c3372522107e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/uk/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/uk/firefox-95.0.2.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha256 = "8d3a3164dd9919bcc0ef0c95bb9be6a994bee95c2f51685b7ccc7ec583c8b9f7";
+      sha256 = "b32b3419816ae3e5cf738baa307a30c364652e3344d002468fbf2cb021e2561e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/ur/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/ur/firefox-95.0.2.tar.bz2";
       locale = "ur";
       arch = "linux-i686";
-      sha256 = "cb243dfee7f738643d2008bf0985e21e8a8f282bbc085eb0231a4d30a96b2b78";
+      sha256 = "1219c56cef41202253988164a8708f09a5f7cdcc7454887326a9e04eb355388e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/uz/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/uz/firefox-95.0.2.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha256 = "915c7a7d20668973e93196f3c0aad833646aa90c8eb492d68663c468f0c7cee4";
+      sha256 = "68cc0b19902ba281441aab7d0f90b25ee839cbd9017ca7aee6330589dd1a83a0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/vi/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/vi/firefox-95.0.2.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha256 = "1c3cd736af3a54512c60d38ac14529cfce2cede3495774cf45ebcb22d1777b46";
+      sha256 = "577dd4afc185e80a7132334897fabe4017f36df51a388084704c18980dcf995a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/xh/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/xh/firefox-95.0.2.tar.bz2";
       locale = "xh";
       arch = "linux-i686";
-      sha256 = "935e1cef0bf29fcd0476e91c40431c330c10ad58ae304024f4a22c2f5802a06c";
+      sha256 = "b53674150eb3726b22a2cef24d762390e63e43283e303f2b9e04f54f988b1f8f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/zh-CN/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/zh-CN/firefox-95.0.2.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha256 = "48e44f731e148d01168255522c902e3eaa61a52662b6def5fa3b99b26a0256a9";
+      sha256 = "b59cc02e88c94d3dd681d59f705b0c554a0998ce3670f9bde435f75a07a6b97e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0/linux-i686/zh-TW/firefox-95.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/zh-TW/firefox-95.0.2.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha256 = "dc4e3791021743cfef6030f557df9a9134b56ca92791edb6db0dfacaedd2ccfe";
+      sha256 = "8dfb5d549ca2a63b0be9b2e32df95122a1f40f2066cfc3d3144e506a37c72371";
     }
     ];
 }
diff --git a/pkgs/applications/networking/browsers/firefox/packages.nix b/pkgs/applications/networking/browsers/firefox/packages.nix
index 2d4d6d4a6bc..6287414a29f 100644
--- a/pkgs/applications/networking/browsers/firefox/packages.nix
+++ b/pkgs/applications/networking/browsers/firefox/packages.nix
@@ -7,10 +7,10 @@ in
 rec {
   firefox = common rec {
     pname = "firefox";
-    version = "95.0";
+    version = "95.0.2";
     src = fetchurl {
       url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
-      sha512 = "350672a2cd99195c67dafc0e71c6eaf1e23e85a5fe92775697119a054f17c34a736035e23d7f2bb404b544f0f144efef3843cfc293596a6e61d1ea36efc3a724";
+      sha512 = "1b9eb91d72a6975b4d2558a7c5de0e008095398b9862498623656ab6d8056e3cffc12263f58aa07feeddc91ccfb512aa4b582dfeadb142d548d96c3d50204196";
     };
 
     meta = {
@@ -32,10 +32,10 @@ rec {
 
   firefox-esr-91 = common rec {
     pname = "firefox-esr";
-    version = "91.4.0esr";
+    version = "91.4.1esr";
     src = fetchurl {
       url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
-      sha512 = "781bf62a0e1215cad7d90de7c822978997bfeaf71bde4e7124a732921d130762c6654417c708a299726039d1603ff5e0796106118ad4b2ddef4e9dac84887765";
+      sha512 = "1b9f17c4e58e3753f8507754bba93e3b7f76df5b6845d6173719fbdd98b70af2a90242df42fe274217f56d0280e5dbae17962f5b6bf111421260790f770f5337";
     };
 
     meta = {
diff --git a/pkgs/applications/networking/browsers/opera/default.nix b/pkgs/applications/networking/browsers/opera/default.nix
index 0bad6c58d0a..c53d4c132f4 100644
--- a/pkgs/applications/networking/browsers/opera/default.nix
+++ b/pkgs/applications/networking/browsers/opera/default.nix
@@ -13,6 +13,7 @@
 , glib
 , gnome2
 , gtk3
+, gtk4
 , lib
 , libX11
 , libxcb
@@ -50,11 +51,11 @@ let
 in stdenv.mkDerivation rec {
 
   pname = "opera";
-  version = "76.0.4017.94";
+  version = "82.0.4227.23";
 
   src = fetchurl {
     url = "${mirror}/${version}/linux/${pname}-stable_${version}_amd64.deb";
-    sha256 = "sha256-vjSfzkl1jIQ9P1ARDa0eOuD8CmKHIEZ+IwMB2wIVjE8=";
+    sha256 = "sha256-jA8fglRLH0aqhjsD65bsieplCLCJXgdBViPGrAu9sSQ=";
   };
 
   unpackCmd = "${dpkg}/bin/dpkg-deb -x $curSrc .";
@@ -111,12 +112,16 @@ in stdenv.mkDerivation rec {
     # brings up the crash report, which also crashes. `strace -f` hints at a
     # missing libudev.so.0.
     (lib.getLib systemd)
+
+    # Error at startup:
+    # "Illegal instruction (core dumped)"
+    gtk3
+    gtk4
   ];
 
   installPhase = ''
     mkdir -p $out
     cp -r . $out/
-    mv $out/lib/*/opera/*.so $out/lib/
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/networking/browsers/palemoon/default.nix b/pkgs/applications/networking/browsers/palemoon/default.nix
index 8a257ee626f..a536bf15cfe 100644
--- a/pkgs/applications/networking/browsers/palemoon/default.nix
+++ b/pkgs/applications/networking/browsers/palemoon/default.nix
@@ -44,12 +44,12 @@ assert with lib.strings; (
 
 stdenv.mkDerivation rec {
   pname = "palemoon";
-  version = "29.4.2.1";
+  version = "29.4.3";
 
   src = fetchzip {
     name = "${pname}-${version}";
     url = "http://archive.palemoon.org/source/${pname}-${version}.source.tar.xz";
-    sha256 = "sha256-iTn1jbbsw7u+rVe/1J9yJbS0wi5Rlkcy4rO8nWcXu2I=";
+    sha256 = "sha256-9Qut7zgzDrU6T/sWbSF2Me7E02VJVL/B2bzJw14KWFs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/cluster/argocd/default.nix b/pkgs/applications/networking/cluster/argocd/default.nix
index e70344f9399..53f3368280e 100644
--- a/pkgs/applications/networking/cluster/argocd/default.nix
+++ b/pkgs/applications/networking/cluster/argocd/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "argocd";
-  version = "2.1.7";
-  commit = "a408e299ffa743213df3aa9135bf7945644ec936";
+  version = "2.2.0";
+  commit = "6da92a8e8103ce4145bb0fe2b7e952be79c9ff0a";
   tag = "v${version}";
 
   src = fetchFromGitHub {
     owner = "argoproj";
     repo = "argo-cd";
     rev = tag;
-    sha256 = "sha256-c6WUqD7x8/P+W64fWs4cw1RiUFepevIJCPpWSzNfIMc=";
+    sha256 = "sha256-6D7aSisFxiGhBvnp4FDN1MHbO1yL4a1SWq1ri8nO7Cw=";
   };
 
-  vendorSha256 = "sha256-N45yRlBGZ/c9ve2YPcWA26pylV8hzxjPh6evKtkgnoc=";
+  vendorSha256 = "sha256-GeU8uQM+oMottzYsE6oQyKZL3aWB5vQgTDLQiuQdapw=";
 
   nativeBuildInputs = [ packr makeWrapper installShellFiles ];
 
diff --git a/pkgs/applications/networking/cluster/fluxcd/default.nix b/pkgs/applications/networking/cluster/fluxcd/default.nix
index 2c8ecbebdc1..54eaf06e12f 100644
--- a/pkgs/applications/networking/cluster/fluxcd/default.nix
+++ b/pkgs/applications/networking/cluster/fluxcd/default.nix
@@ -1,9 +1,9 @@
 { lib, buildGoModule, fetchFromGitHub, fetchzip, installShellFiles }:
 
 let
-  version = "0.24.0";
-  sha256 = "025dynxkfqrnpqrvdq39394biky2ra1mfjirrigamngchifav3b3";
-  manifestsSha256 = "0sbbvv40c66qdrhlvas42qcdmpgg1mb8zzcdrfr5yrkqwxnzis7x";
+  version = "0.24.1";
+  sha256 = "18jzf5kd06c10f45y4crvaqa5r10dhq2ashlhppzrmhigiyavxac";
+  manifestsSha256 = "0qbdik65irnwgw7klj5w0z00jxflm855gikpnqb9gsxd7rbw8ysk";
 
   manifests = fetchzip {
     url =
@@ -23,7 +23,7 @@ in buildGoModule rec {
     inherit sha256;
   };
 
-  vendorSha256 = "0w1qzsri3dkyzwfh6s13np52j3xzxxhk02pqgfh7297djwbppnbs";
+  vendorSha256 = "sha256-HoAVdY+kZLpUEl3mE7obbTzAJUyt5MBPjGhs6ZDSnzU=";
 
   postUnpack = ''
     cp -r ${manifests} source/cmd/flux/manifests
diff --git a/pkgs/applications/networking/cluster/istioctl/default.nix b/pkgs/applications/networking/cluster/istioctl/default.nix
index c4c4ff42c05..1340133e711 100644
--- a/pkgs/applications/networking/cluster/istioctl/default.nix
+++ b/pkgs/applications/networking/cluster/istioctl/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "istioctl";
-  version = "1.11.5";
+  version = "1.12.1";
 
   src = fetchFromGitHub {
     owner = "istio";
     repo = "istio";
     rev = version;
-    sha256 = "sha256-GngjZnE6G/7Iz/BFUKciZAnk/FjcSngt9H+M23E3hHk=";
+    sha256 = "sha256-oMf60mxreBSlgxVInTFM8kozYVZz5RdgzV3rYUnadnA=";
   };
-  vendorSha256 = "sha256-MzlDChyuEVfcfS0DLf/FqKXk3qzsqwO3ZBVJlZqrNhg=";
+  vendorSha256 = "sha256-e8qh8J745TXUo6c1uMS8GyawEG9YFlMYl/nHpWIFK1Q=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/networking/cluster/k9s/default.nix b/pkgs/applications/networking/cluster/k9s/default.nix
index e7d50527b31..14e03078493 100644
--- a/pkgs/applications/networking/cluster/k9s/default.nix
+++ b/pkgs/applications/networking/cluster/k9s/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "k9s";
-  version = "0.25.8";
+  version = "0.25.12";
 
   src = fetchFromGitHub {
     owner  = "derailed";
     repo   = "k9s";
     rev    = "v${version}";
-    sha256 = "sha256-ZHIFMNY6eW3t604Kd6Cb9Ex9DbsG31ShD4ITKnDAUbs=";
+    sha256 = "sha256-S+roKkAtiGJmp/MHFeB+8mLQDL9okzLuJW6DMz3dQDk=";
   };
 
   ldflags = [
diff --git a/pkgs/applications/networking/cluster/kbst/default.nix b/pkgs/applications/networking/cluster/kbst/default.nix
new file mode 100644
index 00000000000..3787c346267
--- /dev/null
+++ b/pkgs/applications/networking/cluster/kbst/default.nix
@@ -0,0 +1,40 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "kbst";
+  version = "0.1.5";
+
+  src = fetchFromGitHub{
+    owner = "kbst";
+    repo = "kbst";
+    rev = "v${version}";
+    sha256 = "0cz327fl6cqj9rdi8zw6xrazzigjymhn1hsbjr9xxvfvfnn67xz2";
+  };
+
+  ldflags =
+    let package_url = "github.com/kbst/kbst"; in
+    [
+      "-s" "-w"
+      "-X ${package_url}.version=${version}"
+      "-X ${package_url}.buildDate=unknown"
+      "-X ${package_url}.gitCommit=${src.rev}"
+      "-X ${package_url}.gitTag=v${version}"
+      "-X ${package_url}.gitTreeState=clean"
+    ];
+
+  vendorSha256 = "sha256-DZ47Bj8aFfBnxU9+e1jZiTMF75rCJtcj4yUfZRJWCic=";
+
+  doCheck = false;
+
+  doPostInstallCheck = true;
+  PostInstallCheckPhase = ''
+    $out/bin/kbst help | grep v${version} > /dev/null
+  '';
+
+  meta = with lib; {
+    description = "Kubestack framework CLI";
+    homepage = "https://www.kubestack.com/";
+    license = licenses.apsl20;
+    maintainers = with maintainers; [ mtrsk ];
+  };
+}
diff --git a/pkgs/applications/networking/cluster/kn/default.nix b/pkgs/applications/networking/cluster/kn/default.nix
index 411efb6e527..796429f2a99 100644
--- a/pkgs/applications/networking/cluster/kn/default.nix
+++ b/pkgs/applications/networking/cluster/kn/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "kn";
-  version = "0.27.0";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "knative";
     repo = "client";
-    rev = "v${version}";
-    sha256 = "sha256-nuSx+JKXBgkVwuy6RMZc8pxDv5WjXN3+5pIudazTttc=";
+    rev = "knative-v${version}";
+    sha256 = "sha256-lRQ4IXV+q1idoTyhppJGlzjuUuRykP8DtQ3t/CsxhNw=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/applications/networking/cluster/kubecolor/default.nix b/pkgs/applications/networking/cluster/kubecolor/default.nix
new file mode 100644
index 00000000000..8a3c2d12d1b
--- /dev/null
+++ b/pkgs/applications/networking/cluster/kubecolor/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "kubecolor";
+  version = "0.0.20";
+
+  src = fetchFromGitHub {
+    owner = "hidetatz";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-bKHEp9AxH1CcObhNzD3BkNOdyWZu7JrEdsXpo49wEcI=";
+  };
+
+  vendorSha256 = "sha256-C1K7iEugA4HBLthcOI7EZ6H4YHW6el8X6FjVN1BeJR0=";
+
+  meta = with lib; {
+    description = "Colorizes kubectl output";
+    homepage = "https://github.com/hidetatz/kubecolor";
+    changelog = "https://github.com/hidetatz/kubecolor/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = [ maintainers.ivankovnatsky ];
+  };
+}
diff --git a/pkgs/applications/networking/cluster/nerdctl/default.nix b/pkgs/applications/networking/cluster/nerdctl/default.nix
index fdd4a7fccf0..7b7a7a40e2b 100644
--- a/pkgs/applications/networking/cluster/nerdctl/default.nix
+++ b/pkgs/applications/networking/cluster/nerdctl/default.nix
@@ -10,16 +10,16 @@
 
 buildGoModule rec {
   pname = "nerdctl";
-  version = "0.14.0";
+  version = "0.15.0";
 
   src = fetchFromGitHub {
     owner = "containerd";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Esj1LFf884m9iTJjqqGCMhbgBNSGpYAfi2stPYSNgRA=";
+    sha256 = "sha256-LXXTzpG0UDSzEL6RdczvBZHlH5eJTkt7oc3wMFLO1JQ=";
   };
 
-  vendorSha256 = "sha256-cfxHx4oyIfUX9bGjwZ9Hu3VieIXOB0VGHjaQWm4kYOk=";
+  vendorSha256 = "sha256-jFTtg3p8nS8j267CZ+wuoynruwFTRamwkEpResQSMjk=";
 
   nativeBuildInputs = [ makeWrapper installShellFiles ];
 
diff --git a/pkgs/applications/networking/cluster/nomad/1.0.nix b/pkgs/applications/networking/cluster/nomad/1.0.nix
index 53430cdf94e..079c957ebb0 100644
--- a/pkgs/applications/networking/cluster/nomad/1.0.nix
+++ b/pkgs/applications/networking/cluster/nomad/1.0.nix
@@ -6,6 +6,6 @@
 
 callPackage ./generic.nix {
   inherit buildGoPackage nvidia_x11 nvidiaGpuSupport;
-  version = "1.0.12";
-  sha256 = "04fqliz7y4zzs4xraid54mqxwgrzh138nmfcs876vp534slvikpi";
+  version = "1.0.13";
+  sha256 = "19wlma2y8lpb7p01wb0l20rb6nvrvldz0mm3qfisx33y56ykjyh8";
 }
diff --git a/pkgs/applications/networking/cluster/nomad/1.1.nix b/pkgs/applications/networking/cluster/nomad/1.1.nix
index b8c58e9c347..5a3e964ad5f 100644
--- a/pkgs/applications/networking/cluster/nomad/1.1.nix
+++ b/pkgs/applications/networking/cluster/nomad/1.1.nix
@@ -6,7 +6,7 @@
 
 callPackage ./genericModule.nix {
   inherit buildGoModule nvidia_x11 nvidiaGpuSupport;
-  version = "1.1.6";
-  sha256 = "1q6fqay1s9qwimjwlldc8hr6009cgx3ghz142mdx36jjv9isj9ln";
-  vendorSha256 = "0rfd22rf76mwj489zhswah4g3dhhz6davm336xgm9dbnyaz9d8r0";
+  version = "1.1.8";
+  sha256 = "05k1r157h3jaqzzsrkgc96zcny3mi8dvixc2v1w0lwcxixqk0y2l";
+  vendorSha256 = "03hjin9nybf7fpbj5r82qh19qh3cc8m0b236mk0ajhsyjqrk8pir";
 }
diff --git a/pkgs/applications/networking/cluster/pgo-client/default.nix b/pkgs/applications/networking/cluster/pgo-client/default.nix
index 87bde3c2edd..33dbb47d11c 100644
--- a/pkgs/applications/networking/cluster/pgo-client/default.nix
+++ b/pkgs/applications/networking/cluster/pgo-client/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "pgo-client";
-  version = "4.7.3";
+  version = "4.7.4";
 
   src = fetchFromGitHub {
     owner = "CrunchyData";
     repo = "postgres-operator";
     rev = "v${version}";
-    sha256 = "sha256-nIflJLHhzEMq4RZUHjZYvBW+cxsi/gc9ZnMoGCesbrc=";
+    sha256 = "sha256-8L3eFMATCGIM6xxUM7mi/D3njHMFk7cgPLJotilAS5k=";
   };
 
-  vendorSha256 = "sha256-m8b6Lh6it67A6cppdBDX4X0u7Kde4GQz9wln/TrHVwI=";
+  vendorSha256 = "sha256-4Vz7Lioj6iLU7dbz/B2BSAgfaCl2MyC8MM9yiyWLi2o=";
 
   subPackages = [ "cmd/pgo" ];
 
diff --git a/pkgs/applications/networking/cluster/rancher/default.nix b/pkgs/applications/networking/cluster/rancher/default.nix
index 665b2091edc..7c219725d7c 100644
--- a/pkgs/applications/networking/cluster/rancher/default.nix
+++ b/pkgs/applications/networking/cluster/rancher/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "rancher-cli";
-  version = "2.4.13";
+  version = "2.6.0";
 
   src = fetchFromGitHub {
     owner  = "rancher";
     repo   = "cli";
     rev    = "v${version}";
-    sha256 = "sha256-tkAnbQP35P+ZEE/WTpjgjdmvt0eJ0esKJ+I21cWraEI=";
+    sha256 = "sha256-RfhcTo10nkHmKGwmS8WdjBioZhDIGSQ9vPPOv3Wg0Y4=";
   };
 
   ldflags = [
@@ -19,7 +19,7 @@ buildGoModule rec {
     "-static"
   ];
 
-  vendorSha256 = "sha256-agXztvvrMEoa6bo/bQr3qhinOSj7bFnZ4kzTx4F0VxQ=";
+  vendorSha256 = "sha256-Nay4YkUNXuH7vTK3ergILF0efCF1XyJZd2wBiT6fims=";
 
   postInstall = ''
     mv $out/bin/cli $out/bin/rancher
diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.json b/pkgs/applications/networking/cluster/terraform-providers/providers.json
index a436422d904..b63d4848b5e 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/providers.json
+++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json
@@ -380,10 +380,10 @@
     "owner": "integrations",
     "provider-source-address": "registry.terraform.io/integrations/github",
     "repo": "terraform-provider-github",
-    "rev": "v4.18.2",
-    "sha256": "1m4ddj4bm84ljrkg8i98gdgbf5c89chv3yz13xbmyl2iga2x5bf7",
+    "rev": "v4.19.0",
+    "sha256": "17xpkcrklzbim91rxw4g4n8izk9qiw9q0vfivr467i32dv5mzc2d",
     "vendorSha256": null,
-    "version": "4.18.2"
+    "version": "4.19.0"
   },
   "gitlab": {
     "owner": "gitlabhq",
diff --git a/pkgs/applications/networking/cluster/terraform/default.nix b/pkgs/applications/networking/cluster/terraform/default.nix
index da4fc449bed..92b52770e33 100644
--- a/pkgs/applications/networking/cluster/terraform/default.nix
+++ b/pkgs/applications/networking/cluster/terraform/default.nix
@@ -197,8 +197,8 @@ rec {
   };
 
   terraform_1 = mkTerraform {
-    version = "1.1.0";
-    sha256 = "sha256-nnYMoQitqFbOjI8twDh9hWDb1qxMNNVy6wldxkyDKY0=";
+    version = "1.1.2";
+    sha256 = "sha256-8M/hs4AiApe9C19VnVhWYYOkKqXbv3aREUTNfExTDww=";
     vendorSha256 = "sha256-inPNvNUcil9X0VQ/pVgZdnnmn9UCfEz7qXiuKDj8RYM=";
     patches = [ ./provider-path-0_15.patch ];
     passthru = { inherit plugins; };
diff --git a/pkgs/applications/networking/cluster/tilt/default.nix b/pkgs/applications/networking/cluster/tilt/default.nix
index 399f37baabc..d34f4e3373d 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.23.2";
+  version = "0.23.3";
 
   src = fetchFromGitHub {
     owner  = "tilt-dev";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "sha256-lCo+sTkbqpbCI9aCh/QqlDw7jzYzKt3Gf67shvBIc7k=";
+    sha256 = "sha256:1612yrlsajl1j95zh057k82nzz492a9p1cgamph4m84zpm0v67jc";
   };
   vendorSha256 = null;
 
diff --git a/pkgs/applications/networking/dnscontrol/default.nix b/pkgs/applications/networking/dnscontrol/default.nix
index bf0b6c72257..92421b33a21 100644
--- a/pkgs/applications/networking/dnscontrol/default.nix
+++ b/pkgs/applications/networking/dnscontrol/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "dnscontrol";
-  version = "3.13.0";
+  version = "3.13.1";
 
   src = fetchFromGitHub {
     owner = "StackExchange";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-XBpdNQHG90rJWGfXpJgXsj5AR2VhK/3+1U7Zl8XDlsw=";
+    sha256 = "sha256-S3/uxtrCFU9HbNhYKqOYy1ytSVi2DU/lXIlhBgNnaPg=";
   };
 
-  vendorSha256 = "sha256-Ob4ZPtP14TsNOnGVfR5lFAKpJsjoJDKmiE++DqY32QA=";
+  vendorSha256 = "sha256-OwiZL+MBmAFtV8Vg2Wl9yAeTG3AzMSmCjefxObU7lfQ=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/applications/networking/flexget/default.nix b/pkgs/applications/networking/flexget/default.nix
index cdd7eba2332..58fb7aa2696 100644
--- a/pkgs/applications/networking/flexget/default.nix
+++ b/pkgs/applications/networking/flexget/default.nix
@@ -2,14 +2,14 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "flexget";
-  version = "3.2.4";
+  version = "3.2.6";
 
   # Fetch from GitHub in order to use `requirements.in`
   src = fetchFromGitHub {
     owner = "flexget";
     repo = "flexget";
     rev = "v${version}";
-    sha256 = "sha256-kwvZvIu+uACI2vBBy9eVuLLJlv1evUJ/4gI6rx1NW/g=";
+    sha256 = "0cwzhk1w2wpf33cqbnrzckqy91b58qqpnkmh5nxv02z6fl7psmbh";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/networking/gopher/sacc/default.nix b/pkgs/applications/networking/gopher/sacc/default.nix
index 64f58daec76..5252fe59c09 100644
--- a/pkgs/applications/networking/gopher/sacc/default.nix
+++ b/pkgs/applications/networking/gopher/sacc/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "sacc";
-  version = "1.04";
+  version = "1.05";
 
   src = fetchurl {
-    url = "ftp://bitreich.org/releases/sacc/sacc-${version}.tgz";
-    sha512 = "1rjxs77a5k2mgpwr2ln1czn64fmss9yw59g0k60r25c2ny2la6ddfcl5zclawcikk346na6m96jrfwssmka0axr2spwpl61wm0lijnk";
+    url = "ftp://bitreich.org/releases/sacc/sacc-${version}.tar.gz";
+    sha512 = "080vpacipdis396lrw3fxc1z7h2d0njm2zi63kvlk0n2m1disv97c968zx8dp76kfw1s03nvvr6v3vnpfkkywiz1idjc92s5rgcbsk1";
   };
 
   inherit patches;
diff --git a/pkgs/applications/networking/instant-messengers/alfaview/default.nix b/pkgs/applications/networking/instant-messengers/alfaview/default.nix
index 52754e3ad52..769636ab797 100644
--- a/pkgs/applications/networking/instant-messengers/alfaview/default.nix
+++ b/pkgs/applications/networking/instant-messengers/alfaview/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "alfaview";
-  version = "8.32.0";
+  version = "8.33.0";
 
   src = fetchurl {
     url = "https://production-alfaview-assets.alfaview.com/stable/linux/${pname}_${version}.deb";
-    sha256 = "sha256-cBf/9MdNXhFRYPAOhQQ8j3rpY4JYh/+NyA7Eji9/E9Q=";
+    sha256 = "sha256-L6vdPdWwNnN09hwzzw9woPRhGIsBKh7iY0cbI2oJX4Q=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix b/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix
index cd29268bec6..fa795a11c2a 100644
--- a/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix
@@ -16,45 +16,41 @@
 
 let
   libdeltachat' = libdeltachat.overrideAttrs (old: rec {
-    version = "1.60.0";
+    version = "1.70.0";
     src = fetchFromGitHub {
       owner = "deltachat";
       repo = "deltachat-core-rust";
       rev = version;
-      sha256 = "1agm5xyaib4ynmw4mhgmkhh4lnxs91wv0q9i1zfihv2vkckfm2s2";
+      hash = "sha256-702XhFWvFG+g++3X97sy6C5DMNWogv1Xbr8QPR8QyLo=";
     };
     cargoDeps = rustPlatform.fetchCargoTarball {
       inherit src;
       name = "${old.pname}-${version}";
-      sha256 = "09d3mw2hb1gmqg7smaqwnfm7izw40znl0h1dz7s2imms2cnkjws1";
+      hash = "sha256-MiSGJMXe8vouv4XEHXq274FHEvBMtd7IX6DyNJIWYeU=";
     };
-    patches = [
-      # https://github.com/deltachat/deltachat-core-rust/pull/2589
-      (fetchpatch {
-        url = "https://github.com/deltachat/deltachat-core-rust/commit/408467e85d04fbbfd6bed5908d84d9e995943487.patch";
-        sha256 = "1j2ywaazglgl6370js34acrg0wrh0b7krqg05dfjf65n527lzn59";
-      })
-      ./no-static-lib.patch
-      # https://github.com/deltachat/deltachat-core-rust/pull/2660
-      (fetchpatch {
-        url = "https://github.com/deltachat/deltachat-core-rust/commit/8fb5e038a97d8ae68564c885d61b93127a68366d.patch";
-        sha256 = "088pzfrrkgfi4646dc72404s3kykcpni7hgkppalwlzg0p4is41x";
-      })
-    ];
   });
   electronExec = if stdenv.isDarwin then
     "${electron}/Applications/Electron.app/Contents/MacOS/Electron"
   else
     "${electron}/bin/electron";
+  esbuild' = esbuild.overrideAttrs (old: rec {
+    version = "0.12.29";
+    src = fetchFromGitHub {
+      owner = "evanw";
+      repo = "esbuild";
+      rev = "v${version}";
+      hash = "sha256-oU++9E3StUoyrMVRMZz8/1ntgPI62M1NoNz9sH/N5Bg=";
+    };
+  });
 in nodePackages.deltachat-desktop.override rec {
   pname = "deltachat-desktop";
-  version = "1.22.2";
+  version = "1.26.0";
 
   src = fetchFromGitHub {
     owner = "deltachat";
     repo = "deltachat-desktop";
     rev = "v${version}";
-    sha256 = "0in6w2vl4ypgjb9gfhyh77vg05ni5p3z24lah7wvvhywcpv1jp2n";
+    hash = "sha256-IDyGV2+/+wHp5N4G10y5OHvw2yoyVxWx394xszIYoj4=";
   };
 
   nativeBuildInputs = [
@@ -72,6 +68,7 @@ in nodePackages.deltachat-desktop.override rec {
   ];
 
   ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
+  ESBUILD_BINARY_PATH = "${esbuild'}/bin/esbuild";
   USE_SYSTEM_LIBDELTACHAT = "true";
   VERSION_INFO_GIT_REF = src.rev;
 
diff --git a/pkgs/applications/networking/instant-messengers/deltachat-desktop/package.json b/pkgs/applications/networking/instant-messengers/deltachat-desktop/package.json
index 41bcdeca186..fe9f024052c 100644
--- a/pkgs/applications/networking/instant-messengers/deltachat-desktop/package.json
+++ b/pkgs/applications/networking/instant-messengers/deltachat-desktop/package.json
@@ -1,24 +1,24 @@
 {
   "name": "deltachat-desktop",
-  "version": "1.22.2",
+  "version": "1.26.0",
   "dependencies": {
     "@blueprintjs/core": "^3.22.3",
+    "@deltachat/message_parser_wasm": "^0.1.0",
     "@mapbox/geojson-extent": "^1.0.0",
     "application-config": "^1.0.1",
     "classnames": "^2.3.1",
     "debounce": "^1.2.0",
-    "deltachat-node": "1.60.0",
+    "deltachat-node": "1.70.0",
     "emoji-js-clean": "^4.0.0",
     "emoji-mart": "^3.0.0",
     "emoji-regex": "^9.2.2",
     "error-stack-parser": "^2.0.6",
-    "filesize": "^6.1.0",
+    "filesize": "^8.0.6",
     "mapbox-gl": "^1.12.0",
     "mime-types": "^2.1.31",
     "moment": "^2.27.0",
     "node-fetch": "^2.6.1",
     "path-browserify": "^1.0.1",
-    "punycode": "^2.1.1",
     "rc": "^1.2.8",
     "react": "^17.0.2",
     "react-dom": "^17.0.2",
@@ -28,15 +28,14 @@
     "react-virtualized-auto-sizer": "^1.0.5",
     "react-window": "^1.8.6",
     "react-window-infinite-loader": "^1.0.7",
-    "simple-markdown": "^0.7.1",
     "source-map-support": "^0.5.19",
     "tempy": "^0.3.0",
-    "url-parse": "^1.4.7",
+    "url-parse": "^1.5.3",
     "use-debounce": "^3.3.0",
     "@babel/core": "^7.7.7",
-    "@types/debounce": "^1.2.0",
     "@babel/preset-env": "^7.7.7",
     "@babel/preset-react": "^7.7.4",
+    "@types/debounce": "^1.2.0",
     "@types/emoji-mart": "^3.0.2",
     "@types/mapbox-gl": "^0.54.5",
     "@types/mime-types": "^2.1.0",
@@ -50,9 +49,10 @@
     "@types/react-window-infinite-loader": "^1.0.4",
     "@types/url-parse": "^1.4.3",
     "electron": "^13.1.6",
+    "esbuild": "^0.12.15",
     "glob-watcher": "^5.0.5",
     "sass": "^1.26.5",
-    "typescript": "^3.9.7",
+    "typescript": "^4.4.4",
     "xml-js": "^1.6.8"
   }
 }
diff --git a/pkgs/applications/networking/instant-messengers/deltachat-desktop/update.sh b/pkgs/applications/networking/instant-messengers/deltachat-desktop/update.sh
index dbe249d56da..3f14f01b360 100755
--- a/pkgs/applications/networking/instant-messengers/deltachat-desktop/update.sh
+++ b/pkgs/applications/networking/instant-messengers/deltachat-desktop/update.sh
@@ -20,16 +20,16 @@ if [ "$ver" = "$old_ver" ]; then
 fi
 echo "$old_ver -> $ver"
 
-sha256=$(nix-prefetch -f "$nixpkgs" deltachat-desktop --rev "$rev")
+hash=$(nix-prefetch -f "$nixpkgs" deltachat-desktop --rev "$rev")
 tac default.nix \
     | sed -e "0,/version = \".*\"/s//version = \"$ver\"/" \
-          -e "0,/sha256 = \".*\"/s//sha256 = \"$sha256\"/" \
+          -e "0,/hash = \".*\"/s//hash = \"${hash//\//\\/}\"/" \
     | tac \
     | sponge default.nix
 
 src=$(nix-build "$nixpkgs" -A deltachat-desktop.src --no-out-link)
 
-jq '{ name, version, dependencies: (.dependencies + (.devDependencies | del(.["@typescript-eslint/eslint-plugin","@typescript-eslint/parser","esbuild","electron-builder","electron-devtools-installer","electron-notarize","esbuild","eslint","eslint-config-prettier","eslint-plugin-react-hooks","hallmark","prettier","tape","testcafe","testcafe-browser-provider-electron","testcafe-react-selectors","walk"]))) }' \
+jq '{ name, version, dependencies: (.dependencies + (.devDependencies | del(.["@typescript-eslint/eslint-plugin","@typescript-eslint/parser","electron-builder","electron-devtools-installer","electron-notarize","eslint","eslint-config-prettier","eslint-plugin-react-hooks","hallmark","prettier","tape","testcafe","testcafe-browser-provider-electron","testcafe-react-selectors","walk"]))) }' \
     "$src/package.json" > package.json.new
 
 if cmp --quiet package.json{.new,}; then
diff --git a/pkgs/applications/networking/instant-messengers/ferdi/default.nix b/pkgs/applications/networking/instant-messengers/ferdi/default.nix
index a1c63cc9837..a34d2c5d928 100644
--- a/pkgs/applications/networking/instant-messengers/ferdi/default.nix
+++ b/pkgs/applications/networking/instant-messengers/ferdi/default.nix
@@ -17,10 +17,10 @@ in
 mkFranzDerivation' rec {
   pname = "ferdi";
   name = "Ferdi";
-  version = "5.6.3";
+  version = "5.6.4";
   src = fetchurl {
     url = "https://github.com/getferdi/ferdi/releases/download/v${version}/ferdi_${version}_amd64.deb";
-    sha256 = "sha256-cfX3x0ZRxT6sxMm20uL8lKhMbrI/yiCHVrBTPKIlDSE=";
+    sha256 = "sha256-y3kuhSWoGysGkvDTV+bze6LSXVO4uDfDOos64eSYFf0=";
   };
   extraBuildInputs = [ xorg.libxshmfence ];
   meta = with lib; {
diff --git a/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_args_common b/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_args_common
index b611885a611..9376a38b187 100644
--- a/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_args_common
+++ b/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_args_common
@@ -22,6 +22,7 @@
 --enable-muxer=h263
 --enable-muxer=h264
 --enable-muxer=hevc
+--enable-muxer=matroska
 --enable-muxer=webm
 --enable-muxer=ogg
 --enable-muxer=pcm_s16be
diff --git a/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_patches b/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_patches
index 127e5b18f77..2422192c09f 100644
--- a/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_patches
+++ b/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_patches
@@ -3,3 +3,4 @@ change-RTCP-ratio.patch
 rtp_ext_abs_send_time.patch
 libopusdec-enable-FEC.patch
 libopusenc-enable-FEC.patch
+screen-sharing-x11-fix.patch
diff --git a/pkgs/applications/networking/instant-messengers/jami/default.nix b/pkgs/applications/networking/instant-messengers/jami/default.nix
index e3bf7054949..5be6e021178 100644
--- a/pkgs/applications/networking/instant-messengers/jami/default.nix
+++ b/pkgs/applications/networking/instant-messengers/jami/default.nix
@@ -8,11 +8,11 @@
 }:
 
 rec {
-  version = "20211104.2.e80361d";
+  version = "20211213.2.37be4c3";
 
   src = fetchzip {
     url = "https://dl.jami.net/release/tarballs/jami_${version}.tar.gz";
-    sha256 = "1l48svppshh8mg7y1dymnh0rgwswy4qwdyl7qlg25mmh4y1li21f";
+    sha256 = "08abswvxwsxh6b0smb4l4cmymsbfiy7473b2sgvghj55w603prsc";
 
     stripRoot = false;
     extraPostFetch = ''
diff --git a/pkgs/applications/networking/instant-messengers/jami/pjproject-src.nix b/pkgs/applications/networking/instant-messengers/jami/pjproject-src.nix
index 16817692487..76e88d88755 100644
--- a/pkgs/applications/networking/instant-messengers/jami/pjproject-src.nix
+++ b/pkgs/applications/networking/instant-messengers/jami/pjproject-src.nix
@@ -2,5 +2,5 @@
   owner = "savoirfairelinux";
   repo = "pjproject";
   rev = "e1f389d0b905011e0cb62cbdf7a8b37fc1bcde1a";
-  sha256 = "sha256-6t+3b7pvvwi+VD05vxtujabEJmWmJTAeyD/Dapav10Y=";
+  sha256 = "0inpmyb6mhrzr0g309d6clkc99lddqdvyf9xajz0igvgp9pvgpza";
 }
diff --git a/pkgs/applications/networking/instant-messengers/nheko/default.nix b/pkgs/applications/networking/instant-messengers/nheko/default.nix
index 0af9cf7d184..bee1f7cf289 100644
--- a/pkgs/applications/networking/instant-messengers/nheko/default.nix
+++ b/pkgs/applications/networking/instant-messengers/nheko/default.nix
@@ -32,13 +32,13 @@
 
 mkDerivation rec {
   pname = "nheko";
-  version = "0.9.0";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     owner = "Nheko-Reborn";
     repo = "nheko";
     rev = "v${version}";
-    sha256 = "1akhnngxkxbjwjkg5ispl6j5s2ylbcj92r3zxqqry4gbfxbjpx8k";
+    sha256 = "sha256-KnWZ1DSTg8vtNSlpG5LGUG8YDHt25s9pMLpLuj0WLnM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/instant-messengers/psi-plus/default.nix b/pkgs/applications/networking/instant-messengers/psi-plus/default.nix
index 5344e520480..c8075738410 100644
--- a/pkgs/applications/networking/instant-messengers/psi-plus/default.nix
+++ b/pkgs/applications/networking/instant-messengers/psi-plus/default.nix
@@ -4,6 +4,7 @@
 , cmake
 , qtbase
 , qtmultimedia
+, qtimageformats
 , qtx11extras
 , qttools
 , libidn
@@ -67,6 +68,7 @@ mkDerivation rec {
   buildInputs = [
     qtbase
     qtmultimedia
+    qtimageformats
     qtx11extras
     libidn
     qca-qt5
diff --git a/pkgs/applications/networking/instant-messengers/session-desktop-appimage/default.nix b/pkgs/applications/networking/instant-messengers/session-desktop-appimage/default.nix
index e83e45370cd..c998f869d1e 100644
--- a/pkgs/applications/networking/instant-messengers/session-desktop-appimage/default.nix
+++ b/pkgs/applications/networking/instant-messengers/session-desktop-appimage/default.nix
@@ -3,14 +3,12 @@
 , appimageTools
 }:
 
-let
-  version = "1.7.4";
-in
-appimageTools.wrapType2 {
-  name = "session-desktop-appimage-${version}";
+appimageTools.wrapType2 rec {
+  pname = "session-desktop-appimage";
+  version = "1.7.6";
   src = fetchurl {
     url = "https://github.com/oxen-io/session-desktop/releases/download/v${version}/session-desktop-linux-x86_64-${version}.AppImage";
-    sha256 = "1yjah9ip3r2irvv2g9j0ql55nkmpwml7lngmq954xrkq9smrdrm5";
+    sha256 = "PNjUslqLcSxkRSXFpesBr2sfre4wetZWfUQTjywdClU=";
   };
 
   meta = with lib; {
diff --git a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
index 5cd3520149a..f9fb19a80f9 100644
--- a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
@@ -24,7 +24,7 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "signal-desktop";
-  version = "5.25.1"; # Please backport all updates to the stable channel.
+  version = "5.26.0"; # 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:
@@ -34,7 +34,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 = "1b634sy2bac5i548g1z1fd5qqy8jr6abl5kbhq50d1kmwnqy1a5l";
+    sha256 = "1l61m976x2pha3bvlcjppkgwn6b8ws1nqfa9zk7xwq4c5qz9mpj2";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix b/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
index 7550e72277f..feb6a0c4b77 100644
--- a/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
+++ b/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
@@ -7,7 +7,7 @@ let
 
   # Please keep the version x.y.0.z and do not update to x.y.76.z because the
   # source of the latter disappears much faster.
-  version = "8.77.0.97";
+  version = "8.79.0.92";
 
   rpath = lib.makeLibraryPath [
     alsa-lib
@@ -69,7 +69,7 @@ let
           "https://mirror.cs.uchicago.edu/skype/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
           "https://web.archive.org/web/https://repo.skype.com/deb/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
         ];
-        sha256 = "sha256-0u1fpKJrsEgbvTwdkqJZ/SwCRDmJwEi9IXHbMmY8MJI=";
+        sha256 = "sha256-wGt0zNBmJf5NJGGOopWNUoBoy8sr4jWp8UKLd8AudnM=";
       }
     else
       throw "Skype for linux is not supported on ${stdenv.hostPlatform.system}";
diff --git a/pkgs/applications/networking/instant-messengers/torchat/default.nix b/pkgs/applications/networking/instant-messengers/torchat/default.nix
index 4a1ffef292f..8fece541272 100644
--- a/pkgs/applications/networking/instant-messengers/torchat/default.nix
+++ b/pkgs/applications/networking/instant-messengers/torchat/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/prof7bit/TorChat";
     description = "Instant messaging application on top of the Tor network and it's location hidden services";
     license = licenses.gpl3;
-    maintainers = [ maintainers.phreedom ];
+    maintainers = [ ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/networking/ipfs/default.nix b/pkgs/applications/networking/ipfs/default.nix
index c90353a1845..c0526fc0d97 100644
--- a/pkgs/applications/networking/ipfs/default.nix
+++ b/pkgs/applications/networking/ipfs/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "ipfs";
-  version = "0.10.0";
+  version = "0.11.0";
   rev = "v${version}";
 
   # go-ipfs makes changes to it's source tarball that don't match the git source.
   src = fetchurl {
     url = "https://github.com/ipfs/go-ipfs/releases/download/${rev}/go-ipfs-source.tar.gz";
-    sha256 = "sha256-okfIxNoFoJZx1WCWe/6NcYhwU+ZzOyn01g8BGtXO3UQ=";
+    sha256 = "lTPGnFqDgyMWmSCPmLHguGNnJQMWi9LPrOZfDgeS9Y4=";
   };
 
   # tarball contains multiple files/directories
diff --git a/pkgs/applications/networking/irc/quassel/default.nix b/pkgs/applications/networking/irc/quassel/default.nix
index 7869333479e..44e7fb85360 100644
--- a/pkgs/applications/networking/irc/quassel/default.nix
+++ b/pkgs/applications/networking/irc/quassel/default.nix
@@ -93,7 +93,7 @@ in (if !buildClient then stdenv.mkDerivation else mkDerivation) rec {
       as WeeChat, but graphical (based on Qt4/KDE4 or Qt5/KF5).
     '';
     license = licenses.gpl3;
-    maintainers = with maintainers; [ phreedom ttuegel ];
+    maintainers = with maintainers; [ ttuegel ];
     repositories.git = "https://github.com/quassel/quassel.git";
     inherit (qtbase.meta) platforms;
   };
diff --git a/pkgs/applications/networking/jmeter/default.nix b/pkgs/applications/networking/jmeter/default.nix
index d52d00f9a05..100a26692da 100644
--- a/pkgs/applications/networking/jmeter/default.nix
+++ b/pkgs/applications/networking/jmeter/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "jmeter";
-  version = "5.4.1";
+  version = "5.4.2";
   src = fetchurl {
     url = "https://archive.apache.org/dist/jmeter/binaries/apache-${pname}-${version}.tgz";
-    sha256 = "sha256-TtrpmIHRzbUEiYesy9ArPzza3qShCNFtB/sVJe9hLPM=";
+    sha256 = "sha256-rtv68ACqLRnjU0zEBirLn5cwhxGy03upZWQyIqeECxA=";
   };
 
   nativeBuildInputs = [ makeWrapper jre ];
diff --git a/pkgs/applications/networking/mailreaders/mblaze/default.nix b/pkgs/applications/networking/mailreaders/mblaze/default.nix
index f24ed3a51df..8572bec3432 100644
--- a/pkgs/applications/networking/mailreaders/mblaze/default.nix
+++ b/pkgs/applications/networking/mailreaders/mblaze/default.nix
@@ -4,7 +4,7 @@
 
 stdenv.mkDerivation rec {
   pname = "mblaze";
-  version = "1.1";
+  version = "1.2";
 
   nativeBuildInputs = [ installShellFiles makeWrapper ];
   buildInputs = [ ruby ] ++ lib.optionals stdenv.isDarwin [ libiconv ];
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     owner = "leahneukirchen";
     repo = "mblaze";
     rev = "v${version}";
-    sha256 = "sha256-Ho2Qoxs93ig4yYUOaoqdYnLA8Y4+7CfRM0dju89JOa4=";
+    sha256 = "sha256-LCyw3xGsYjsbExueRHVRqoJYluji9MmZq5zGclvSSDk=";
   };
 
   makeFlags = [ "PREFIX=$(out)" ];
diff --git a/pkgs/applications/networking/mailreaders/mutt/default.nix b/pkgs/applications/networking/mailreaders/mutt/default.nix
index a94555e7959..04c952cb631 100644
--- a/pkgs/applications/networking/mailreaders/mutt/default.nix
+++ b/pkgs/applications/networking/mailreaders/mutt/default.nix
@@ -27,11 +27,11 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "mutt";
-  version = "2.1.3";
+  version = "2.1.4";
 
   src = fetchurl {
     url = "http://ftp.mutt.org/pub/mutt/${pname}-${version}.tar.gz";
-    sha256 = "0z74slnq3y9wr1xr07jigz4n8dgxhk9qb0787sd0j6wj9g4rqxgg";
+    sha256 = "0yfvnjqw9l99kdcr995by3mx5vwad6b530x93yb8ipr3xa1bcq9k";
   };
 
   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 6d9f62e75ab..98792527faf 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
@@ -2,34 +2,25 @@
 #
 # To update `thunderbird-bin`'s `release_sources.nix`, run from the nixpkgs root:
 #
-#     nix-shell maintainers/scripts/update.nix --argstr package pkgs.firefox-bin-unwrapped
-{ stdenv, lib, fetchurl, config, makeWrapper
+#     nix-shell maintainers/scripts/update.nix --argstr package pkgs.thunderbird-bin-unwrapped
+{ lib, stdenv, fetchurl, config, wrapGAppsHook
 , alsa-lib
-, at-spi2-atk
 , atk
 , cairo
-, coreutils
-, cups
 , curl
-, dbus
+, cups
 , dbus-glib
+, dbus
 , fontconfig
 , freetype
 , gdk-pixbuf
 , glib
 , glibc
-, gnome
-, gnugrep
-, gnupg
-, gnused
-, gpgme
 , gtk2
 , gtk3
 , libkrb5
-, libcanberra
-, libGL
-, libGLU
 , libX11
+, libXScrnSaver
 , libxcb
 , libXcomposite
 , libXcursor
@@ -39,24 +30,43 @@
 , libXi
 , libXinerama
 , libXrender
-, libXScrnSaver
+, libXrandr
 , libXt
+, libXtst
+, libcanberra
+, libnotify
+, adwaita-icon-theme
+, libGLU, libGL
 , nspr
 , nss
 , pango
-, runtimeShell
+, pipewire
+, pciutils
+, libheimdal
+, libpulseaudio
+, systemd
 , writeScript
-, xdg-utils
+, writeText
 , xidel
+, coreutils
+, gnused
+, gnugrep
+, gnupg
+, ffmpeg
+, runtimeShell
+, mesa # thunderbird wants gbm for drm+dmabuf
+, systemLocale ? config.i18n.defaultLocale or "en_US"
 }:
 
-# imports `version` and `sources`
-with (import ./release_sources.nix);
-
 let
-  arch = if stdenv.hostPlatform.system == "i686-linux"
-    then "linux-i686"
-    else "linux-x86_64";
+  inherit (import ./release_sources.nix) version sources;
+
+  mozillaPlatforms = {
+    i686-linux = "linux-i686";
+    x86_64-linux = "linux-x86_64";
+  };
+
+  arch = mozillaPlatforms.${stdenv.hostPlatform.system};
 
   isPrefixOf = prefix: string:
     builtins.substring 0 (builtins.stringLength prefix) string == prefix;
@@ -64,11 +74,17 @@ let
   sourceMatches = locale: source:
       (isPrefixOf source.locale locale) && source.arch == arch;
 
-  systemLocale = config.i18n.defaultLocale or "en-US";
+  policies = { DisableAppUpdate = true; } // config.thunderbird.policies or { };
+  policiesJson = writeText "thunderbird-policies.json" (builtins.toJSON { inherit policies; });
 
   defaultSource = lib.findFirst (sourceMatches "en-US") {} sources;
 
-  source = lib.findFirst (sourceMatches systemLocale) defaultSource sources;
+  mozLocale =
+    if systemLocale == "ca_ES@valencia"
+    then "ca-valencia"
+    else lib.replaceStrings ["_"] ["-"] systemLocale;
+
+  source = lib.findFirst (sourceMatches mozLocale) defaultSource sources;
 in
 
 stdenv.mkDerivation {
@@ -83,11 +99,10 @@ stdenv.mkDerivation {
   libPath = lib.makeLibraryPath
     [ stdenv.cc.cc
       alsa-lib
-      at-spi2-atk
       atk
       cairo
-      cups
       curl
+      cups
       dbus-glib
       dbus
       fontconfig
@@ -98,34 +113,55 @@ stdenv.mkDerivation {
       gtk2
       gtk3
       libkrb5
+      mesa
       libX11
       libXScrnSaver
       libXcomposite
       libXcursor
+      libxcb
       libXdamage
       libXext
       libXfixes
       libXi
       libXinerama
       libXrender
+      libXrandr
       libXt
-      libxcb
+      libXtst
       libcanberra
+      libnotify
       libGLU libGL
       nspr
       nss
       pango
+      pipewire
+      pciutils
+      libheimdal
+      libpulseaudio
+      systemd
+      ffmpeg
     ] + ":" + lib.makeSearchPathOutput "lib" "lib64" [
       stdenv.cc.cc
     ];
 
-  buildInputs = [ gtk3 gnome.adwaita-icon-theme ];
+  inherit gtk3;
+
+  nativeBuildInputs = [ wrapGAppsHook ];
+
+  buildInputs = [ gtk3 adwaita-icon-theme ];
+
+  # "strip" after "patchelf" may break binaries.
+  # See: https://github.com/NixOS/patchelf/issues/10
+  dontStrip = true;
+  dontPatchELF = true;
 
-  nativeBuildInputs = [ makeWrapper ];
+  patchPhase = ''
+    # Don't download updates from Mozilla directly
+    echo 'pref("app.update.auto", "false");' >> defaults/pref/channel-prefs.js
+  '';
 
   # 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}"
@@ -135,41 +171,27 @@ stdenv.mkDerivation {
       ln -s "$prefix/usr/lib/thunderbird-bin-${version}/thunderbird" "$out/bin/"
 
       for executable in \
-        thunderbird crashreporter thunderbird-bin plugin-container updater
+        thunderbird thunderbird-bin plugin-container \
+        updater crashreporter webapprt-stub
       do
-        patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-          "$out/usr/lib/thunderbird-bin-${version}/$executable"
+        if [ -e "$out/usr/lib/thunderbird-bin-${version}/$executable" ]; then
+          patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+            "$out/usr/lib/thunderbird-bin-${version}/$executable"
+        fi
       done
 
       find . -executable -type f -exec \
         patchelf --set-rpath "$libPath" \
           "$out/usr/lib/thunderbird-bin-${version}/{}" \;
 
-      # Create a desktop item.
-      mkdir -p $out/share/applications
-      cat > $out/share/applications/thunderbird.desktop <<EOF
-      [Desktop Entry]
-      Type=Application
-      Exec=$out/bin/thunderbird
-      Icon=$out/usr/lib/thunderbird-bin-${version}/chrome/icons/default/default256.png
-      Name=Thunderbird
-      GenericName=Mail Reader
-      Categories=Application;Network;
-      EOF
-
-      # SNAP_NAME: https://github.com/NixOS/nixpkgs/pull/61980
-      # MOZ_LEGACY_PROFILES and MOZ_ALLOW_DOWNGRADE:
-      #   commit 87e261843c4236c541ee0113988286f77d2fa1ee
-      wrapProgram "$out/bin/thunderbird" \
-        --argv0 "$out/bin/.thunderbird-wrapped" \
-        --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH:" \
-        --suffix XDG_DATA_DIRS : "$XDG_ICON_DIRS" \
-        --set SNAP_NAME "thunderbird" \
-        --set MOZ_LEGACY_PROFILES 1 \
-        --set MOZ_ALLOW_DOWNGRADE 1 \
-        --prefix PATH : "${lib.getBin gnupg}/bin" \
-        --prefix PATH : "${lib.getBin xdg-utils}/bin" \
-        --prefix LD_LIBRARY_PATH : "${lib.getLib gpgme}/lib"
+      # wrapThunderbird expects "$out/lib" instead of "$out/usr/lib"
+      ln -s "$out/usr/lib" "$out/lib"
+
+      gappsWrapperArgs+=(--argv0 "$out/bin/.thunderbird-wrapped")
+
+      # See: https://github.com/mozilla/policy-templates/blob/master/README.md
+      mkdir -p "$out/lib/thunderbird-bin-${version}/distribution";
+      ln -s ${policiesJson} "$out/lib/thunderbird-bin-${version}/distribution/policies.json";
     '';
 
   passthru.updateScript = import ./../../browsers/firefox-bin/update.nix {
@@ -180,14 +202,13 @@ stdenv.mkDerivation {
     basePath = "pkgs/applications/networking/mailreaders/thunderbird-bin";
     baseUrl = "http://archive.mozilla.org/pub/thunderbird/releases/";
   };
+
   meta = with lib; {
     description = "Mozilla Thunderbird, a full-featured email client (binary package)";
     homepage = "http://www.mozilla.org/thunderbird/";
-    license = {
-      free = false;
-      url = "http://www.mozilla.org/en-US/foundation/trademarks/policy/";
-    };
-    maintainers = with lib.maintainers; [ ];
-    platforms = platforms.linux;
+    license = licenses.mpl20;
+    maintainers = with lib.maintainers; [ lovesegfault ];
+    platforms = builtins.attrNames mozillaPlatforms;
+    hydraPlatforms = [ ];
   };
 }
diff --git a/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix b/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
index 0eb64b26195..b3ecb27dfb2 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
@@ -1,655 +1,655 @@
 {
-  version = "91.4.0";
+  version = "91.4.1";
   sources = [
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/af/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/af/thunderbird-91.4.1.tar.bz2";
       locale = "af";
       arch = "linux-x86_64";
-      sha256 = "3be3eebddd9358c396e560433ab0148814150c2afb46dc72b0473b52340e241c";
+      sha256 = "7af2c19b46daf1869af49289c1ab080559f8640c6dfc21cdae1ff48cdc26bf1f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/ar/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/ar/thunderbird-91.4.1.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha256 = "5e025b85b0161a7bb7ef4416f1921f9c91603d64fa67e3d4a002fa59d0a4ee52";
+      sha256 = "dfabb7336f9b5929041c43997ad7ac34fca0750d70293dacdc32f9048de2fc7d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/ast/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/ast/thunderbird-91.4.1.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha256 = "88ed83a3e3272bae3ba1e279e632823b2226743822b601f21c1625c4e1421806";
+      sha256 = "3aade12867be4da3fb890214a7cd8551e12e962fb2a66b7e76da20a06755d045";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/be/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/be/thunderbird-91.4.1.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha256 = "5eb2a942e48916be5a7b48918664346f92794e886be4dfb55aff31a2265aa59c";
+      sha256 = "8bb288330b957d8361880738b7d5e5833602dd81aad580a96f1031e88bd963f4";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/bg/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/bg/thunderbird-91.4.1.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha256 = "d1670f37f539fde5f4dbebeb8ead7e6706086e284d93e6b4e85c4d66ea7279ac";
+      sha256 = "fcd8bbef82a24b146f4473da351cbd5262f8286d5b7ea78265516e815c7c84da";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/br/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/br/thunderbird-91.4.1.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha256 = "c176f3690d2e588cfb5a031f9d31fcc05905d895f4abf7ae2b40b1ba425b8f65";
+      sha256 = "c1d331f6621fc120076d49015046f22ff898b089af8cac5226491bbe82391b9a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/ca/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/ca/thunderbird-91.4.1.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha256 = "9262bfcee1dc40e007d53dd6c333be5042d148814e6986916505dd208596f07c";
+      sha256 = "7b2a63bd30d1e47db16f64ea077623dfca965d71b2aa7f7ce56f8940a2f59301";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/cak/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/cak/thunderbird-91.4.1.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha256 = "d2627fb1b8875c1fe420cf17f46c89fa5a9be13c7dcae79e4045989bc5453eea";
+      sha256 = "f22de3c4bc4237610e7826ed6d46f84f8a02d5370e7d0675932abd98ee24256e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/cs/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/cs/thunderbird-91.4.1.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha256 = "68dfd2ca7024f6cef6647d6620c314dc8b195f1c86cee74deb335566450c302d";
+      sha256 = "8dd685427622c1bc710d8056e527d5766f7e5f0c47ca7e170b8e48ed01e8c5a5";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/cy/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/cy/thunderbird-91.4.1.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha256 = "1ec5083fa75036c438c529a58a8c57362b05a40bf825dd9619fd4bfe29d49e6a";
+      sha256 = "d98ebd1787b29a6ee785a4b7cfaa2283b836f23214c3c27d4fbb3e7154c1e9e5";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/da/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/da/thunderbird-91.4.1.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha256 = "0206e556c9a4d759f6f6f6a7956af5172d12c52529083be45c814ec269c0b035";
+      sha256 = "202729a6f4813bb3760a5ae834731a019593dbcd5d66173999f5cbbedf277f00";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/de/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/de/thunderbird-91.4.1.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha256 = "3686cedea2d15cebbe9d0f6122071c01ac493be063b3f115373a6613b213cd35";
+      sha256 = "c035ce2cb81b7083d0c6fc859ee259afce5440bc8f2c8e1ca1db02ce97f0b237";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/dsb/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/dsb/thunderbird-91.4.1.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha256 = "2d7fe8840ea77319a6fcf7b7cedca51b2321251f5844181612947a117f340277";
+      sha256 = "413eda01d4390e41f6d859def75c5972c4595b453fc9da948415e8e38f4766c0";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/el/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/el/thunderbird-91.4.1.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha256 = "33933114fb6cc176cbf2c950234250b9afe6671c5f77a211d3d9f2c0dfeaeeef";
+      sha256 = "b238ee1b8dbf54ab0aa4c6f23a646e037a48e31d77749698744dc122bf38608a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/en-CA/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/en-CA/thunderbird-91.4.1.tar.bz2";
       locale = "en-CA";
       arch = "linux-x86_64";
-      sha256 = "e60d21b42e5b5c5fb7161c426c8c5d370331f137e0239e830b6174682c93b566";
+      sha256 = "4ef51ab9fdcd3c6ab1323a402253f5cd8682fa100f3b05fa62bf1153bbc04c28";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/en-GB/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/en-GB/thunderbird-91.4.1.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha256 = "1c9d9d126893b64213370f44a15008c26bd1de01959a5e6adedf9b4129c6ec0e";
+      sha256 = "3ee22d3b5c23bfba703d36e58185ef139ccfa923c1877f983fed90419e7fdf8b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/en-US/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/en-US/thunderbird-91.4.1.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha256 = "87b5229900a144dfa362dcfeee9320b1a2437373db7c03400de3a3d6ad0d5902";
+      sha256 = "6bd3bbcf3d92efe04b19bb45c0d9ac3abe8dd68fc84e255b76467b37ea5918b1";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/es-AR/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/es-AR/thunderbird-91.4.1.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha256 = "728938aae6d8582936420f47af80812d490de9ef37b0cfea382c6fe5fd0ed8e8";
+      sha256 = "14b7fac461e90c4dd1790f6095e291e1ba510561d51655b16bda4ad7050dca8e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/es-ES/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/es-ES/thunderbird-91.4.1.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha256 = "67a12aa230c61d363f51c4dac2d54ff41c9e7f5de065da9d314ec9116e3ee669";
+      sha256 = "ee910bc3415e314d5f3b072608d61089ae55e969a138ee446377edf0e5ba710a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/et/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/et/thunderbird-91.4.1.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha256 = "b8365b62a82218d4e322707d118a309dda8c0f6d8ffd5a58b52bbc16ff74a804";
+      sha256 = "a643d96e71123c554a8af69bc875515113ffd30ab621d5f3b5678c33931cfab0";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/eu/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/eu/thunderbird-91.4.1.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha256 = "802c5a450be9fd157fdf7a024ab09ea1a19581b7b8efe9075235d2b42f2f8943";
+      sha256 = "b910976d8e940331d46ac92f82f56aff61f8d91137bae9c869715cb371309f9e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/fi/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/fi/thunderbird-91.4.1.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha256 = "2eb0961a5e2c09abee83e9a7b6e80dede870429cd31e8c63355aea75e4ffe796";
+      sha256 = "a8dd93299fde700cf1419187da06405093b3f010e7fdd327742fbddcef1721a0";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/fr/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/fr/thunderbird-91.4.1.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha256 = "2f7dda40a5b6f8968fb742894c9b6c6d02edffe11ca3570e9422da6a48c5eb71";
+      sha256 = "526f4f4feae5f6a0b9f1d80b0f76a7f26af7456e1eb09e36eadd51fc8d4115ed";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/fy-NL/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/fy-NL/thunderbird-91.4.1.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha256 = "bb1c76147edfcd7e47e20fc300c8a0c6994545eb2157c8a92300f1c7ec98c7ba";
+      sha256 = "df5320f98ecd32439273b18237a742c34590e5b533a7da9471cfd37921725108";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/ga-IE/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/ga-IE/thunderbird-91.4.1.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha256 = "a634a34993effba945f2a58ab4b312ad1cafed7f42e3688fec288cad8bf508f9";
+      sha256 = "c13529036ec2186e0e3088f63e351086bee21b0f8a3479586420c6a2701ee8f1";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/gd/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/gd/thunderbird-91.4.1.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha256 = "f814e79a7575bc1bf026006e0ca41d46e4e5139acce0dfbf1ec5d39e4f650b0d";
+      sha256 = "f6c2c7cf6c8a39997e272d9aae5c7ab4620f426e2be96b4e90c3641db672a6ea";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/gl/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/gl/thunderbird-91.4.1.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha256 = "b75622470f9d3c183e44c26d3ea9660ed3d61edca363600de233976cb9dd4125";
+      sha256 = "ba0d17f99ca15bc81631201057509694c5dc656176a03e67d5f89371a4200eda";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/he/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/he/thunderbird-91.4.1.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha256 = "92ef6ee1efa4c2be6a38cd653c73e9fe3b47616c421aff4c96a927c63e56fc47";
+      sha256 = "c71bf27c55ad5b6c7981a434d598eeab8a927dbfc0510d4d68df357cb1abff9f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/hr/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/hr/thunderbird-91.4.1.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha256 = "7c54885c323b7dd586e6c9114fe7536b3838063628b9f6578115b67ae040e434";
+      sha256 = "9cf92e922329ec46ed68f352284de30c78aa2d25f040da4e1289d5ea0226bc3a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/hsb/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/hsb/thunderbird-91.4.1.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha256 = "fee3d8938ccdbe7caa1043c8ea987412cab1ac0cf442ffe576de3091aaafc8e2";
+      sha256 = "e4d6baa0d92fbe7f40071045fcdb20f59944a0c1422c1095b946019461013242";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/hu/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/hu/thunderbird-91.4.1.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha256 = "a659632e89b3005ea8088b78a0b750ae8cde89c1a8f911033f44eb3975f52c31";
+      sha256 = "cea2f9b614e0b7cec709947ff75b9eb6abe6600b76d642b60910e2de1788f09b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/hy-AM/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/hy-AM/thunderbird-91.4.1.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha256 = "e7d7647d5abcb54b0a69b4d1d1898688426b7d818b0482156a45955eaf1c3a02";
+      sha256 = "8708acca6f1e4088f10f94f8c26a7790913fe55acbf0ab555e22b1256b74a866";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/id/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/id/thunderbird-91.4.1.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha256 = "e256f1a46c80bbc4fdb9704a5b7443a196f25ed7ac039107e871639ce4dc1d1e";
+      sha256 = "745ecb2038a84b1571e326ed0e6d38e7519bcf5b7f2bacf6ef053c9a88926c77";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/is/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/is/thunderbird-91.4.1.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha256 = "aa1dc2188f27399c286555328e75ae558f76168713d0e0455f556d65752ad72b";
+      sha256 = "e04b6fc88ddd46e6e6cbe47eb681acce91b47df355847f65e793d92419dc4204";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/it/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/it/thunderbird-91.4.1.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha256 = "ba86dc3512c7b86090edc0d3533f2215a3bf4e40a8c4a5b5f52a9ff251fdb185";
+      sha256 = "e23eb2075bcac5abc195b1abffe64b8e1a409c855699c6d5bcbd102c19a2ad4b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/ja/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/ja/thunderbird-91.4.1.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha256 = "625bc18ba17b9b00e70add05b355924832b29721de0b7488dd5de50d3b9efef0";
+      sha256 = "a79711803c46b6ab95f654d5b9dffafe85733b6c839238de8f76d30f9757553c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/ka/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/ka/thunderbird-91.4.1.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha256 = "44a4d98c2de5840c115f9bddf03c1b08b941d297f6db46c82c6a85c8d28e1c66";
+      sha256 = "3076defee6dadfad4560800ecf2b3556fcf8f4dd5a8795bb578ee73bbbccf72f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/kab/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/kab/thunderbird-91.4.1.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha256 = "fc28e7060e9b5369e77e51e1016a0211e2e7d81ab637d1e81444cb74e668d3a4";
+      sha256 = "65f796d71d02118794b79d5460ef9db06e3d172e5d15ff350eff52cc214587dc";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/kk/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/kk/thunderbird-91.4.1.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha256 = "02bd9d39dc6364d4b271401576fe3bc1c08271768c7d45e60bde8778d5bd5b04";
+      sha256 = "f8df25990df8b577e224551f1af44fb87c867b7d7622931214bbceeec3699646";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/ko/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/ko/thunderbird-91.4.1.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha256 = "b1809eb98b26498b82895b6fd8bd94f5b6872f02c6147d751b21f3b9d1bb3879";
+      sha256 = "77d6e16972f9ddb553d9bd19627a0725d25d42a0ad6d1e665d249b094b137dc9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/lt/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/lt/thunderbird-91.4.1.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha256 = "7bdbf09ec758447123c2595d88a3074235443f8b51469b51a3216a9996529d03";
+      sha256 = "208eb06ba9e8b1cd391a7694552af6e7ba3ead33567d51fda82d70e024378f56";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/lv/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/lv/thunderbird-91.4.1.tar.bz2";
       locale = "lv";
       arch = "linux-x86_64";
-      sha256 = "00fe22a51ff346f2907a42d1de320323bc8b25e95ec902cec6f916436d8af91b";
+      sha256 = "a4a85c3f969dc40149ad82d0dbc4e1089de67ba3c6d7495f5c45196e8c7083a8";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/ms/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/ms/thunderbird-91.4.1.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha256 = "3873d43f1a6f44b2f3787049dc1b2cf7cdc18a851ccd4299a2ee1ddb82524780";
+      sha256 = "e5f3259e002b31d9a2738ad81826d59dd464aa34532441e9092e976efe8be7b4";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/nb-NO/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/nb-NO/thunderbird-91.4.1.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha256 = "26b45dd7dfb73fcba5c6d732b60f22158ce06f010b1c2c12e7955e9311753511";
+      sha256 = "33fa29d2490c7618d1f9bbaceb34b898d150e57fc9b96b957a5b348b6fe47cfc";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/nl/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/nl/thunderbird-91.4.1.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha256 = "78084ad324a96bf6a9ef18950fe36015857a8bc3675eeacaeec4fb926292338b";
+      sha256 = "726962fd26948726230b49736f2d1e6c6daa562a4389e0fa0069ab737304cbac";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/nn-NO/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/nn-NO/thunderbird-91.4.1.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha256 = "85c20b0abae2042661ff716a7125f313e1f9ca97f651c0be40a42feb5e3a015d";
+      sha256 = "09bab6f8061400413e7167693e4c2f14caa4aba0ac68c7cfeaf9ed2dfa44ea0a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/pa-IN/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/pa-IN/thunderbird-91.4.1.tar.bz2";
       locale = "pa-IN";
       arch = "linux-x86_64";
-      sha256 = "2ae1cf3f473cb4b4572fe783792055aa7492534d6d7e7f9fe86c4a003053b0ef";
+      sha256 = "2203476872b140a1fec867435bf1a006b63a7ffc018eb466ea164597474a2083";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/pl/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/pl/thunderbird-91.4.1.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha256 = "cf8c68489c0b4d9e76442c6dd92c86d144631de6e9acfee244fc32e2bc3a97ea";
+      sha256 = "3cc4fa964b4deaef9d901fd9fba597059f638b1b8322515ac02cbb97f5a5c28b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/pt-BR/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/pt-BR/thunderbird-91.4.1.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha256 = "2f44f9e600fdbef8abf1d78e209da45b5e3584b1c49fd3272e60e2fab4d2bf59";
+      sha256 = "c68055c96551a1b529bdf81659231ec5244c4c68255d88f581c378046bbb5e84";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/pt-PT/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/pt-PT/thunderbird-91.4.1.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha256 = "bfcc6f96739377d73cf085a812494fe550ee0daefc34f01309d81df8cb6e2307";
+      sha256 = "36c9b2170aff5e6f58377efd53f679e9e823f45b67d7407cb3c34d72f676625a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/rm/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/rm/thunderbird-91.4.1.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha256 = "5de8b781f5abbacc7ae2ed827ac31cccb5f7a198d6eacbdd02f6899525d38e71";
+      sha256 = "2f00df17c29128e2b135136fe700930ff0078e8896e1cb4f7c34b44af0cfd8f2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/ro/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/ro/thunderbird-91.4.1.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha256 = "f00966ff2e80d68f073fd60ceced6af07d0c01665af710efc82c88dd8dbde940";
+      sha256 = "ed93041b32a711e04de6737c5d6fbcf6b598ca9eccefe5ab0e02cf3cacba5ffa";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/ru/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/ru/thunderbird-91.4.1.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha256 = "023823360aea2b851c236a95fdcdeb933ae90b0fa6ff3f92f4082fd506866f32";
+      sha256 = "206ccfcb5d6a9d70f4258ddeff0cc79c38e801d860a05bf6214c03b24e2f9057";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/sk/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/sk/thunderbird-91.4.1.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha256 = "3d416a43f489c386070a9ead39a0658e3cc07aae4f6ed50535e733b2d282db84";
+      sha256 = "aa8e6dd53d5b741bee345d1f7a5b03866121619f54993233cb4239c6107eb3e6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/sl/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/sl/thunderbird-91.4.1.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha256 = "5d28c2b66dcb4bbdcd20fa81e9ce2fc6019b1c12b4e4d194fb1b401bdbf764bb";
+      sha256 = "95f3a97adc32abb33c0a7579c19247595f6f27c7da0cf06bf1fa9d8270b41996";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/sq/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/sq/thunderbird-91.4.1.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha256 = "3b09565a7cd2545f36f83b8820847b5c35381cebd8e89d8f1ccb9ab6f28c8497";
+      sha256 = "fe8255e55081a6cae15085cfcf793c4094de55a2b12d3732c7e75ce567b85716";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/sr/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/sr/thunderbird-91.4.1.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha256 = "a0810cda6e486e5063a9f2d2397279293a43d633145f02f9ab5aec5d49d5f271";
+      sha256 = "f889e1ff38542aae19d6ebaf827a2c6d6f8dbd6e16a80966bc311588e4e10ffc";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/sv-SE/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/sv-SE/thunderbird-91.4.1.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha256 = "ca3d68b171efe8e5196874edebb249c06d80c7bf47e96681cb7653cda071307e";
+      sha256 = "2f90c95bbdcb6bfd59cee40013cc1c498e50f5cc0209799dfe1dfc57afbc37ad";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/th/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/th/thunderbird-91.4.1.tar.bz2";
       locale = "th";
       arch = "linux-x86_64";
-      sha256 = "3eef75f4fb6614f126dd08e75cb266c9972aa0a67575dcbc0ab205b41512fe92";
+      sha256 = "3fa19fef25c76f49f9e6ee9edc2f24cd02c2b589b8e2cea270f4aa71f1a1a621";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/tr/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/tr/thunderbird-91.4.1.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha256 = "71d2c4cdff44b8cd5c36dea22e047a1a6829280919e3b7f202c23410e9a6694e";
+      sha256 = "7de3ccbe109401dab260ed1c8ae9fc360e5392c81111df930d0c7f7d46211f83";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/uk/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/uk/thunderbird-91.4.1.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha256 = "b23a2a03a9c4beacaf48a0fcb8da18f8c0c9bd84a51045566eefd2e470dec21c";
+      sha256 = "967020d05810d1514be84635cb56162b83f7f28a2bea221ad21ecb4ebd960968";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/uz/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/uz/thunderbird-91.4.1.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha256 = "8de3299f2314242c149564d89710ad7cde4c62a884f2bda76dfea3f890d5c038";
+      sha256 = "371d60bc164552f04cf680a29af5992f1ac353e8bb30af62a5cdadf744576c71";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/vi/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/vi/thunderbird-91.4.1.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha256 = "22f2611e6d80772d08be3e42db7e48a354696297f1f52baceaa6e413ffd6379c";
+      sha256 = "600cc9d18a18ebc13bd8371140b573723b913e100937b3bb22ab04cf7846e1e7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/zh-CN/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/zh-CN/thunderbird-91.4.1.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha256 = "df54708c794d8e4f11c7e4af064c3b04af14942c295364ea8302a54cf27a5446";
+      sha256 = "ae59930a4c609e4ce0562338019db1202c3eafc2e3dabd90888076ece4fe8ee5";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-x86_64/zh-TW/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/zh-TW/thunderbird-91.4.1.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha256 = "e8d9f90517d55cca7e6300b4d0aa65093fd952a109d8a6875bfd2ee5821fdde5";
+      sha256 = "2cd58c1fb54b572e6a2f63b9881f53ee65d9992d75c0905ea2e1047afabd08a9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/af/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/af/thunderbird-91.4.1.tar.bz2";
       locale = "af";
       arch = "linux-i686";
-      sha256 = "3689b2c806fb72d16d38941b28df89df5e3a43c14b65111504f39ec749d0035f";
+      sha256 = "bbf9e3a8856f66ed2d263b05d5520a9be26719f45380a5f29e6cf27c891c3e23";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/ar/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/ar/thunderbird-91.4.1.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha256 = "8242528cb5a3a7ee7ac0c4dbad985364d16b97fccaf45ac8e65803e4773dc086";
+      sha256 = "0df457c90aedef53adca7dafe34dc95847b77603362b27f814f4e88d40311ccb";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/ast/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/ast/thunderbird-91.4.1.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha256 = "a135aebb3c0a7ec21808f54925704b70c7258ebdca57c8db4e33f5860d836124";
+      sha256 = "b97a3fc046dcd75e2703629e01abbe2c7a81bc98746fdd96ac195b2508e396b7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/be/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/be/thunderbird-91.4.1.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha256 = "970999c541df842456056abfe9699d9e60dce2b76de19de03668507648b45771";
+      sha256 = "158495d87e2bc8c2b257d055fc9096580bbb7dcc126b3b83a4aa0f3deaae9cf7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/bg/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/bg/thunderbird-91.4.1.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha256 = "5af84a93814752571f50a03ddbc03acbddcb70fcacc381d82c02986ab4b54fd9";
+      sha256 = "77497a922cd441a3ed791d6f497586b2d3b286a64cf057cf34b07e38b6c1f5f2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/br/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/br/thunderbird-91.4.1.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha256 = "8d9906563f1f57c6e20c15420b18afb3a135c20952401b4075e9a270be420ff9";
+      sha256 = "862629fb07c7743a2bc909883ebe19347fea71fc91b8df927d846054ce2b1b08";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/ca/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/ca/thunderbird-91.4.1.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha256 = "1074d8fb6aa7c56bf38e566d79603578b328e4bb3b06c6079293b8901cc99ef6";
+      sha256 = "33ab06809f5982036b849aed5ec46d7271c217cb7330149f4783fd308c19ef46";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/cak/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/cak/thunderbird-91.4.1.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha256 = "5b3d8e5a140fb1767a59b292eb4ec03033f6cec8f520042337d4378bdc3a6622";
+      sha256 = "6bd1cd49eb18ce7bb88e4e023063bf03e2c2078f7c3ccf0f1c477d712b4e67fb";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/cs/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/cs/thunderbird-91.4.1.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha256 = "c5abbac9000ad9a85a3c6c22b57d7abedc1f6c665588f46f37ce6a335977f194";
+      sha256 = "528aba25c407f52e728361e5174cb232f2583ef5ff62bf47386d4766f776566d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/cy/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/cy/thunderbird-91.4.1.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha256 = "e96a8630c03658b7502581427a59b57163b89018bf7fc8c94b844bfd152b9ef0";
+      sha256 = "efd1490cd2a357c1d61d5225a8d1b1b9a61be5c25805b26496ea3ad946d4cbcc";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/da/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/da/thunderbird-91.4.1.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha256 = "c18172bd11939c20d95ce015867f71355dcd87ce6c16ee6c5769bcde1347d490";
+      sha256 = "00e9e787a8bf21caebcd1b21889c5534d38d14d8eb2e10b297b320e71455910f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/de/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/de/thunderbird-91.4.1.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha256 = "a2bc728d69b77e36cacc0aa794066efe26e3ba1afba4295e9d438cb8120b5602";
+      sha256 = "1c93e59e8d55ff671e630dc86091b1503b73e8b92f7bf0b6726d3b9829bfa8d1";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/dsb/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/dsb/thunderbird-91.4.1.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha256 = "bc34beee2e9561d80df9891720b78b7c8d208223aca29759ee13c363b5d621f7";
+      sha256 = "d8de15bf2699fa44b82aab0872b966d20dae733b46404b03a1e8c41e28b2c4dd";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/el/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/el/thunderbird-91.4.1.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha256 = "af327d95a9edfe8965e3eeb3777280034f2aa4157b6ae08073278b70558ada64";
+      sha256 = "1ecb81092cd8bdae878792f2be7a32edc378d3691ca696bcfe3899e81ace7cd7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/en-CA/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/en-CA/thunderbird-91.4.1.tar.bz2";
       locale = "en-CA";
       arch = "linux-i686";
-      sha256 = "490b262a886404d2f56c6dcb97f3342b118d836ffb6fa7abeeb883800d36edb6";
+      sha256 = "68836e09adf5f9d2b5c9f3b96ed5b05f56931faa33bbb17c578436c13c5cc4ee";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/en-GB/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/en-GB/thunderbird-91.4.1.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha256 = "e70afee7dbd04de6858dd610dbe734237fb9d1a9ead2f261c0bec3bfe8e2dbae";
+      sha256 = "b20a74cc35abd3d066384f57b5d2f7a6a1dd24193b720fedce693d8b864058b6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/en-US/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/en-US/thunderbird-91.4.1.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha256 = "5eeafe853b41f8872905ea4ee8ebcaf2a87b6974552657ca7fb5441eb200e70e";
+      sha256 = "8f3bffb289081a898f9e77c291ef1ce63af8c0e966894b54a3c533741b655aa9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/es-AR/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/es-AR/thunderbird-91.4.1.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha256 = "964ae792ce87d9cded44e6276d657bc28a34e98f8ad00aaa999c25731f0da613";
+      sha256 = "b1c26f4dd600995a88ad960f55fbf6026ad2ff93b94ac12af991440ada44a54a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/es-ES/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/es-ES/thunderbird-91.4.1.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha256 = "297b6338d9c437a0161fa56b7a89aa82f206175bfb167de885ed9c654333aa11";
+      sha256 = "a28fb5020e2e5a577958f4702cd3f15dadf4fcc62c3bfc954d5df3777ef4152a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/et/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/et/thunderbird-91.4.1.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha256 = "0aec73f1204034381058ff04dfd7b674b0fc5d5fb8c15b73e03ecfe0a3a22d74";
+      sha256 = "9a8fc8ba9df9aa179ca6b18d412ee0395c54ed3e2394d951c1cb85d4cb656808";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/eu/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/eu/thunderbird-91.4.1.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha256 = "667648ef39f4da6a1c5e37dc11026c9b6194262295df82dfffb6aee3adfd403b";
+      sha256 = "56b10b3f9a824fbd91d1107db46e085b45d2c7d78a67a9eb8554afa7aab881a9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/fi/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/fi/thunderbird-91.4.1.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha256 = "8b2c7f7f404ae3765cabc28f975e6e16d79d648c3181cb95255d36bc8d85da73";
+      sha256 = "ef41d1f5a985f1bf98790f76cd9dc9cf8d02614b0d780c59f95fe30224678f02";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/fr/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/fr/thunderbird-91.4.1.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha256 = "225ef7ff45f4da612ca08ae5a748c3782c96048fcfc1f4f755b1ff46e1b73be6";
+      sha256 = "2af9a88a1bf2bc0932ef0131a53b2ab3fda256ceaf3e8f256e41f648153eea8f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/fy-NL/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/fy-NL/thunderbird-91.4.1.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha256 = "e3539e9a0c4fdefb000cd1b6df0f68109e65a8e67be36e2560c1de0b938d41ac";
+      sha256 = "3406057ce9f70c9f1a2efce979fd9b1bffa2ad7fe63bb90e541ea539a2eb071f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/ga-IE/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/ga-IE/thunderbird-91.4.1.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha256 = "1f25e54b06553a91fc4cefe6db82307e9aa36ebcc8fe48f55ce925d59167e1b0";
+      sha256 = "ee6a8941da6093a7b342da1f124ab5d82cfc9ed288a7385c2ce33e5d95370fb6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/gd/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/gd/thunderbird-91.4.1.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha256 = "8e7cbf2f7011b240223cce85e385873fc8a194d420e704a1419e788658c098a3";
+      sha256 = "9b57c51af6dbdb9c654e0fc96fe086c04f4dc482fa3528c9658261b9710bc229";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/gl/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/gl/thunderbird-91.4.1.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha256 = "45f347b9ac0929db5d6e1f7195773ffcd85be255844f497b7af4a5e2aca33e40";
+      sha256 = "d2d12a17334c0b74904fd5a64294c0ca86430d79ebd765d7118b3451cb361819";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/he/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/he/thunderbird-91.4.1.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha256 = "bd9e9d5b1af8b522ee25ced2da96d5b6a1e01ab7e861edb161d7b158dd251f51";
+      sha256 = "da8791864ea612b37839075a85ed446aecd4be941c4f624ed212fa1e4d322768";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/hr/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/hr/thunderbird-91.4.1.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha256 = "bae4e964a2a9ef34d622192e465f65b5b48fadfd96e08587caa7ac9252e73bce";
+      sha256 = "11ef3a9c2b7555ef144cc0689265f928c29b01fccded781d76a3f2105d15ed67";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/hsb/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/hsb/thunderbird-91.4.1.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha256 = "5fd52072fc37907c88fe58b19cc24ddd7a7abd9a88542e4fde9982ac228b6c61";
+      sha256 = "bce0ebbaa3e19912d74e5a9754a45a93948f41d5fa9dfab77aea03856ea70ef4";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/hu/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/hu/thunderbird-91.4.1.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha256 = "528d14b06218fa01659f5b1f61c83d8cc26cf34e1b88243f75b401f9e926e1c3";
+      sha256 = "dd1b5a48fb175be82967f3b9ca72ea86b2797ebb68285fee143c77ae72a9e659";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/hy-AM/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/hy-AM/thunderbird-91.4.1.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha256 = "b44298006937fe8b354369d4b3383fc88c57fdeb1708ba409faec0c96f85174f";
+      sha256 = "cc172a84b6c586a786a7691eb728e8bce5af253316cec64b989fe2f10f253f95";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/id/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/id/thunderbird-91.4.1.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha256 = "67a63f95434f8ff4436d4c5ce0d4a691160a4ad54a62e145d7ccbbfe9e1fcd9d";
+      sha256 = "6ac4c494569bb7d5a9948d1e19cb273135638b3b0fa487a535d36f2b70c86bfa";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/is/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/is/thunderbird-91.4.1.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha256 = "648d7812de1e99fce456912a45ceb03aad9d587d0fae0e3a203106b27866a17e";
+      sha256 = "e98642ccc27cc77180a83b34a55a59f9b653beb993e80647b76b1c2d1fec003a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/it/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/it/thunderbird-91.4.1.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha256 = "3177ed359e2c71bf5bbddfac9ffec4015d8384780f8b2acf662eaa3633312c0c";
+      sha256 = "bada535c73a41318650acb3e744771beea09bf192b3f88e6e8be0de0f9c15b4f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/ja/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/ja/thunderbird-91.4.1.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha256 = "15e1ed124862ab1d08fa522e19b8d30bfd2deaa73fdefa71f6df960198d0549f";
+      sha256 = "dc30bc5943518dbde7b213df3fdd0b454550612d741e167003efc0463b3fd2ae";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/ka/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/ka/thunderbird-91.4.1.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha256 = "1cb27df9af00fa68ab10ea3c873eddecfb885d5242996bc5ce61607410fc4c46";
+      sha256 = "747b850fdb8cad7607b807bf402e2b6d9b58006c9d8323947c2c991d3d775d1e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/kab/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/kab/thunderbird-91.4.1.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha256 = "617fd035e09b09915dd88d265dced2e938730f2cc4542ae6868d6a4cf3ebb345";
+      sha256 = "fd063bc5e41bec78ad7d006370ecc0be0644a63bb0f5d6cfdda7148790113059";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/kk/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/kk/thunderbird-91.4.1.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha256 = "0f58fd7b537761a763165766db29b289281b7a8d0d6d3e7d2b24bb9dfa74dfae";
+      sha256 = "f853aeb878ed181070b192f1b27dd985a6f0b2318500373b23358c53a56c3d97";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/ko/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/ko/thunderbird-91.4.1.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha256 = "2bf191f8950d0dc7d4481f1f24c4d799712b9336c48634760712e92222b4e143";
+      sha256 = "7444d40c6db9b592d3831115e981208567311a58d47606da6947217e58650e90";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/lt/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/lt/thunderbird-91.4.1.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha256 = "9a5116b4eaa3b706ba3a65ede8fa43e4af77ef3bc56adabf7e31cf3d5e9acf2f";
+      sha256 = "c7f1cf8b583e6659ec84a0546a3e7828626bae3664de35bc9bcd9fbbb97b56ba";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/lv/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/lv/thunderbird-91.4.1.tar.bz2";
       locale = "lv";
       arch = "linux-i686";
-      sha256 = "732b7b26ccc5f8936f02bc53636cce6ec388139dc471e404428c62b124de8811";
+      sha256 = "30671983c35bb5c112b2b9755e56a1c36afe5bd03c0f09ba930095880b7ab25a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/ms/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/ms/thunderbird-91.4.1.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha256 = "0cff4335e3098c9575a000ab099c18464746bcac70e5b60ced6a5b1c4fe38a4c";
+      sha256 = "233464fc722e9deba822c3cec0c7ebf5b1b72295a6847a3203410784e8e33f0f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/nb-NO/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/nb-NO/thunderbird-91.4.1.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha256 = "dddd79e6e5ea2588b863235981e417a07c1c35f51a39f615c2edb38a481c9102";
+      sha256 = "299f50b9d2077ea8300959cd90aaf3113b5fc5da77fa66617533d2b6d4a11f72";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/nl/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/nl/thunderbird-91.4.1.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha256 = "e03d4205bd66a6096881f44c5893361790fe5e77d2dba6b6b5e9f93344d99c88";
+      sha256 = "4374b5d175d4c990d706241083886e9459f9aa51b1c9862dc02c5134df6a8523";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/nn-NO/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/nn-NO/thunderbird-91.4.1.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha256 = "df986a9c003895c47f939dcdfb706fed7cb705167016753f4de0fdae775c7256";
+      sha256 = "786c23053df9dedb177bd22ab3cf78e3083b73b9bd11b45c17bae35921f8c762";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/pa-IN/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/pa-IN/thunderbird-91.4.1.tar.bz2";
       locale = "pa-IN";
       arch = "linux-i686";
-      sha256 = "6df4c8228c7bc1bda29a701be13d5fd5970e36f5b16cac74f4df6a9f2ac7c308";
+      sha256 = "cc3df207d658cdc6b13e8d67dec598afa477520d81d6c4bda23bfa0a3bdfe9f7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/pl/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/pl/thunderbird-91.4.1.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha256 = "6099031f386bf055ec1574a15272ca55b04af7b8be638369ad008e3691ca7852";
+      sha256 = "9471ddfc7086cf21222eb1de8c5de76f61f0d9479d6691fa4cce16ea4a481361";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/pt-BR/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/pt-BR/thunderbird-91.4.1.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha256 = "4cad6363cee8d8f4a2fd1a0ae4eb1d26909c836105089771b0632c258e86d544";
+      sha256 = "0e466b0a1a0e258b9d3b5288902dcf4fc114a192ba156d956d8be9bbcea1a42a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/pt-PT/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/pt-PT/thunderbird-91.4.1.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha256 = "b78826f06c038b90b697c6d8f7497f8ea2b65bdd2e5fa01e0fbee8669cd63390";
+      sha256 = "83b0e2bfe657f16b88906f2a70a0d954b73d053c01b545812e40d02f343b50ef";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/rm/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/rm/thunderbird-91.4.1.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha256 = "e1d2111515943e16acf02b4c26bc5f5021126015ad297c20dfdbf056bfac7531";
+      sha256 = "507059e7cad7c0665c0468436e334a3c2cef258751fe97e90a731d067e0cc672";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/ro/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/ro/thunderbird-91.4.1.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha256 = "034e52732646c469ebba33aa69b9d622eff01ccdf219a0bd930e3e739216d30b";
+      sha256 = "61e4d4652ecbce03421dab02aa15f49e4a782cf63380d76207173afd07dc6183";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/ru/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/ru/thunderbird-91.4.1.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha256 = "6acb1349d5ada1b4d728a0d11e58f10920fc082fa48842256ce2f6a6277bc705";
+      sha256 = "b3c1d07ace631bc8117d1003029216a5579a64f7e83a4289877fe5101c0b261b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/sk/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/sk/thunderbird-91.4.1.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha256 = "47501f7445adec46ffb93f94158759aed7eff7c74343d2f55528e006e444c784";
+      sha256 = "ec8949eec7a001e075888500749f7b0211996afe4d25dc081df34e20a214e835";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/sl/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/sl/thunderbird-91.4.1.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha256 = "2ee00780f253a3f96018692d5c8a74765f1c0255a85ff3249b39402f0c094a32";
+      sha256 = "026a55fbb143621ba98d2218ff72c5eea2491ea74e3abbf46dc4d8405a7df327";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/sq/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/sq/thunderbird-91.4.1.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha256 = "2c378621ef2ca8530f777115ad7aefcbf562c3922f5605f7325c7a0b6b342304";
+      sha256 = "0a22abf8961874edc88fb7654d8b66694050f98ed4440eb7aabbf7a4969bd993";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/sr/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/sr/thunderbird-91.4.1.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha256 = "4e264f5f28c8ba96717876ade6b6bf48889988784098511bb1bfc81a95d35275";
+      sha256 = "4304ac8a1283065aabc63b39734cd7d023a82b590cc1d255093d73cc1155e30c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/sv-SE/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/sv-SE/thunderbird-91.4.1.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha256 = "3b0f6b37d7511ab0451f64e5c94bdaa565ba567fbd937090e1f2f7a47e0a1357";
+      sha256 = "b2196727748a1d42bc67fcde4df47e7e1661a446e0620e11c64dcc1a7db0da06";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/th/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/th/thunderbird-91.4.1.tar.bz2";
       locale = "th";
       arch = "linux-i686";
-      sha256 = "1b76b5010d315de74357995ff799b80be9819b907c7b9ace26f002f52e0d73da";
+      sha256 = "de52a8a1a64b26d29721be3843c12df6bdb732354c9263782f989918a51dee2a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/tr/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/tr/thunderbird-91.4.1.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha256 = "be4562c983fe2cd4b0e7835126eb4a7d7314f9d3f8b149c64489b7447cc5a59a";
+      sha256 = "bba119fb7749350c06760d6885a89efa0632098e593f22a23451a592dbea9e1d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/uk/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/uk/thunderbird-91.4.1.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha256 = "94953f788173984087f957009e6d9704c573ec4fee9b8867d67b6c44dd912548";
+      sha256 = "34198ab171b0783d0ac592e0a72ea355aae75b950f2569d2e6ed30a9b1a5d2f8";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/uz/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/uz/thunderbird-91.4.1.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha256 = "be4e33ff98c36378e32c9a63b91140c9ffcb65a1d606a8052d6d68b95695c94c";
+      sha256 = "1adcedb12bb9485da32b47558352d5fa9182fd8411450386d9ac8a528b40cca4";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/vi/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/vi/thunderbird-91.4.1.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha256 = "ff7090e0a1995681d785c1f77158ad75594a60bcc9c5d65f54760ff72626cd25";
+      sha256 = "c22cd41206fd7e4d80c6855c7217071be3890e84460cd030f4029a910c672bb2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/zh-CN/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/zh-CN/thunderbird-91.4.1.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha256 = "5a320e0c6630b2d0b174a4bcfef777ad042d5764096e27d6ebfa4e429d2bc671";
+      sha256 = "744515522d16884b4067a75412977243753baece132c4d5c815ac60d5a26bd7b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.0/linux-i686/zh-TW/thunderbird-91.4.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/zh-TW/thunderbird-91.4.1.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha256 = "c1d7bb5f254fed0c38b3070826dcbcf04e12d4499f715161dca53204b61158d3";
+      sha256 = "21fcb4c30b76c607e215363688966ea92ae1f3cd658ce7c9118f3d0f2cfff729";
     }
     ];
 }
diff --git a/pkgs/applications/networking/mailreaders/thunderbird/packages.nix b/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
index 8f16523512b..1ba3c40ea98 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
@@ -10,12 +10,12 @@ in
 rec {
   thunderbird = common rec {
     pname = "thunderbird";
-    version = "91.4.0";
+    version = "91.4.1";
     application = "comm/mail";
     binaryName = pname;
     src = fetchurl {
       url = "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
-      sha512 = "f19eba17b8018d11358258f6c9fbe4b2d20858f5afdf82ad5a81de5f6191f833ecf01ee4631297b0880dfa8b76baa1f9cd09a976cab2d2206ca5a902283fa102";
+      sha512 = "aa442ef886277f5091ebadff907a29451a0ee6542f24adb5c1fb4223193d719c2cb01474d3ccd96067695b19ce3cbf042893b0beaaeb7c65e0660ab5072bf82e";
     };
     patches = [
       # The file to be patched is different from firefox's `no-buildconfig-ffx90.patch`.
diff --git a/pkgs/applications/networking/nextcloud-client/default.nix b/pkgs/applications/networking/nextcloud-client/default.nix
index 97a86055f39..bbdddbf6068 100644
--- a/pkgs/applications/networking/nextcloud-client/default.nix
+++ b/pkgs/applications/networking/nextcloud-client/default.nix
@@ -21,13 +21,13 @@
 
 mkDerivation rec {
   pname = "nextcloud-client";
-  version = "3.4.0";
+  version = "3.4.1";
 
   src = fetchFromGitHub {
     owner = "nextcloud";
     repo = "desktop";
     rev = "v${version}";
-    sha256 = "sha256-+b+DJwbYegbeoQmcdBg5Y7rJmKwPjz2XRUroP55ZO+g=";
+    sha256 = "sha256-1fUk4PUFkWcLOvrYvM+K+ZarUSeq/JtDU2bHHPoAoC8=";
   };
 
   patches = [
diff --git a/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix b/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix
index 0f7a806ed8f..02c383b30ff 100644
--- a/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix
+++ b/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl, jre, makeWrapper }:
 
 stdenv.mkDerivation rec {
-  version = "6.9.4";
+  version = "6.9.5";
   pname = "frostwire";
 
   src = fetchurl {
     url = "https://dl.frostwire.com/frostwire/${version}/frostwire-${version}.amd64.tar.gz";
-    sha256 = "sha256-sWvQDUJGytKA9/UbC7fOk6WhDtTqdhyRmW9GvHFMZh4=";
+    sha256 = "sha256-jMv4wIBsmgg2Q/Q/QDJnWa5wUeD1ur6Lu6eXOCLaGg4=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/networking/powerdns-admin/default.nix b/pkgs/applications/networking/powerdns-admin/default.nix
index 9dba30e3d88..8ea5c4904f1 100644
--- a/pkgs/applications/networking/powerdns-admin/default.nix
+++ b/pkgs/applications/networking/powerdns-admin/default.nix
@@ -1,12 +1,12 @@
-{ lib, stdenv, fetchFromGitHub, mkYarnPackage, writeText, python3 }:
+{ lib, stdenv, fetchFromGitHub, mkYarnPackage, nixosTests, writeText, python3 }:
 
 let
-  version = "0.2.3";
+  version = "0.2.4";
   src = fetchFromGitHub {
     owner = "ngoduykhanh";
     repo = "PowerDNS-Admin";
     rev = "v${version}";
-    sha256 = "16faz57d77mxkflkvwyi8gb9wvnq2vhw79b84v1fmqvxri1yaphw";
+    sha256 = "sha256-xJ0NNnDVwGl+t9q1INPhCxcTmQayYBYdjEG0PbPCI9E=";
   };
 
   python = python3.override {
@@ -22,9 +22,9 @@ let
   };
 
   pythonDeps = with python.pkgs; [
-    flask flask_assets flask_login flask_sqlalchemy flask_migrate flask-seasurf flask_mail flask-sslify
-    mysqlclient sqlalchemy
-    configobj bcrypt requests ldap pyotp qrcode dnspython
+    flask flask_assets flask_login flask_sqlalchemy flask_migrate flask-seasurf flask_mail flask-session flask-sslify
+    mysqlclient psycopg2 sqlalchemy
+    cffi configobj cryptography bcrypt requests ldap pyotp qrcode dnspython
     gunicorn python3-saml pyopenssl pytz cssmin jsmin authlib bravado-core
     lima pytimeparse pyyaml
   ];
@@ -91,6 +91,7 @@ in stdenv.mkDerivation rec {
 
   postPatch = ''
     rm -r powerdnsadmin/static powerdnsadmin/assets.py
+    sed -i "s/id:/'id':/" migrations/versions/787bdba9e147_init_db.py
   '';
 
   installPhase = ''
@@ -100,7 +101,7 @@ in stdenv.mkDerivation rec {
     wrapPythonPrograms
 
     mkdir -p $out/share $out/bin
-    cp -r powerdnsadmin $out/share/powerdnsadmin
+    cp -r migrations powerdnsadmin $out/share/
 
     ln -s ${assets} $out/share/powerdnsadmin/static
     ln -s ${assetsPy} $out/share/powerdnsadmin/assets.py
@@ -114,10 +115,16 @@ in stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
+  passthru = {
+    # PYTHONPATH of all dependencies used by the package
+    pythonPath = python3.pkgs.makePythonPath pythonDeps;
+    tests = nixosTests.powerdns-admin;
+  };
+
   meta = with lib; {
     description = "A PowerDNS web interface with advanced features";
     homepage = "https://github.com/ngoduykhanh/PowerDNS-Admin";
     license = licenses.mit;
-    maintainers = with maintainers; [ zhaofengli ];
+    maintainers = with maintainers; [ Flakebi zhaofengli ];
   };
 }
diff --git a/pkgs/applications/networking/powerdns-admin/package.json b/pkgs/applications/networking/powerdns-admin/package.json
index cb21306308c..84f49592074 100644
--- a/pkgs/applications/networking/powerdns-admin/package.json
+++ b/pkgs/applications/networking/powerdns-admin/package.json
@@ -12,5 +12,5 @@
     "multiselect": "^0.9.12"
   },
   "name": "powerdns-admin-assets",
-  "version": "0.2.3"
+  "version": "0.2.4"
 }
diff --git a/pkgs/applications/networking/powerdns-admin/yarndeps.nix b/pkgs/applications/networking/powerdns-admin/yarndeps.nix
index 02d9eb0046e..7dcd54b53c2 100644
--- a/pkgs/applications/networking/powerdns-admin/yarndeps.nix
+++ b/pkgs/applications/networking/powerdns-admin/yarndeps.nix
@@ -114,11 +114,11 @@
       };
     }
     {
-      name = "bn.js___bn.js_4.11.9.tgz";
+      name = "bn.js___bn.js_4.12.0.tgz";
       path = fetchurl {
-        name = "bn.js___bn.js_4.11.9.tgz";
-        url  = "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz";
-        sha1 = "26d556829458f9d1e81fc48952493d0ba3507828";
+        name = "bn.js___bn.js_4.12.0.tgz";
+        url  = "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz";
+        sha1 = "775b3f278efbb9718eec7361f483fb36fbbfea88";
       };
     }
     {
@@ -530,11 +530,11 @@
       };
     }
     {
-      name = "elliptic___elliptic_6.5.3.tgz";
+      name = "elliptic___elliptic_6.5.4.tgz";
       path = fetchurl {
-        name = "elliptic___elliptic_6.5.3.tgz";
-        url  = "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz";
-        sha1 = "cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6";
+        name = "elliptic___elliptic_6.5.4.tgz";
+        url  = "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz";
+        sha1 = "da37cebd31e79a1367e941b592ed1fbebd58abbb";
       };
     }
     {
diff --git a/pkgs/applications/networking/remote/nice-dcv-client/default.nix b/pkgs/applications/networking/remote/nice-dcv-client/default.nix
index 82debe6f8a1..20b85032887 100644
--- a/pkgs/applications/networking/remote/nice-dcv-client/default.nix
+++ b/pkgs/applications/networking/remote/nice-dcv-client/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchurl
 , glib
 , libX11
@@ -16,22 +17,23 @@
 , gtk3
 , libselinux
 , libxml2
+, libffi
 , python3Packages
 , cpio
 , autoPatchelfHook
+, wrapGAppsHook
 }:
 
 stdenv.mkDerivation rec {
   pname = "nice-dcv-client";
-  version = "2020.2.1737-1";
-
+  version = "2021.2.3797-1";
   src =
     fetchurl {
-      url = "https://d1uj6qtbmh3dt5.cloudfront.net/2020.2/Clients/nice-dcv-viewer-${version}.el8.x86_64.rpm";
-      sha256 = "sha256-SUpfHd/Btc07cfjc3zx5I5BiNatr/c4E2/mfJuU4R1E=";
+      url = "https://d1uj6qtbmh3dt5.cloudfront.net/2021.2/Clients/nice-dcv-viewer-${version}.el8.x86_64.rpm";
+      sha256 = "sha256-iLz25SB5v7ghkAZOMGPmpNaPihd8ikzCQS//r1xBNRU=";
     };
 
-  nativeBuildInputs = [ autoPatchelfHook python3Packages.rpm ];
+  nativeBuildInputs = [ autoPatchelfHook wrapGAppsHook python3Packages.rpm ];
   unpackPhase = ''
     rpm2cpio $src | ${cpio}/bin/cpio -idm
   '';
@@ -57,31 +59,28 @@ stdenv.mkDerivation rec {
   installPhase = ''
     mkdir -p $out/bin/
     mkdir -p $out/lib64/
-
     mv usr/bin/dcvviewer $out/bin/dcvviewer
     mv usr/lib64/* $out/lib64/
-
     mkdir -p $out/libexec/dcvviewer
     mv usr/libexec/dcvviewer/dcvviewer $out/libexec/dcvviewer/dcvviewer
     patchelf \
       --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
       $out/libexec/dcvviewer/dcvviewer
-
     # Fix the wrapper script to have the right basedir.
     sed -i "s#basedir=/usr#basedir=$out#" $out/bin/dcvviewer
-
     mv usr/share $out/
+
     ${glib.dev}/bin/glib-compile-schemas $out/share/glib-2.0/schemas
 
-    # broken symlink, seems to give a warning message if i don't delete it
-    rm $out/lib64/dcvviewer/gio/modules/libdconfsettings.so
+    # we already ship libffi.so.7
+    ln -s ${lib.getLib libffi}/lib/libffi.so $out/lib64/libffi.so.6
   '';
 
   meta = with lib; {
     description = "High-performance remote display protocol";
     homepage = "https://aws.amazon.com/hpc/dcv/";
     license = licenses.unfree;
-    platforms = platforms.linux;
+    platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ rmcgibbo ];
   };
 }
diff --git a/pkgs/applications/networking/remote/teamviewer/default.nix b/pkgs/applications/networking/remote/teamviewer/default.nix
index 158f2aa327e..f292adfa427 100644
--- a/pkgs/applications/networking/remote/teamviewer/default.nix
+++ b/pkgs/applications/networking/remote/teamviewer/default.nix
@@ -6,11 +6,11 @@
 
 mkDerivation rec {
   pname = "teamviewer";
-  version = "15.22.3";
+  version = "15.24.5";
 
   src = fetchurl {
     url = "https://dl.tvcdn.de/download/linux/version_15x/teamviewer_${version}_amd64.deb";
-    sha256 = "15fvzhdq7mnx2l2w4byvij8ww16qwdlkbadal60rm66yzv79mv9w";
+    sha256 = "sha256-u4azVjwD5xTc0vWe8tDEx44rBdYFZljZPVQ0yilqeR0=";
   };
 
   unpackPhase = ''
diff --git a/pkgs/applications/networking/remote/waypipe/default.nix b/pkgs/applications/networking/remote/waypipe/default.nix
index eb1ec40cc15..8bde51d8937 100644
--- a/pkgs/applications/networking/remote/waypipe/default.nix
+++ b/pkgs/applications/networking/remote/waypipe/default.nix
@@ -4,15 +4,15 @@
 }:
 
 stdenv.mkDerivation rec {
-  pname = "waypipe-unstable";
-  version = "0.8.1";
+  pname = "waypipe";
+  version = "0.8.2";
 
   src = fetchFromGitLab {
     domain = "gitlab.freedesktop.org";
     owner = "mstoeckl";
     repo = "waypipe";
     rev = "v${version}";
-    sha256 = "1v08dv3dfz420v51ahz7qgv3429073kmgrf8f66s4c3jlpch2pa1";
+    sha256 = "02q8l1qaahmd41h6v3r46akh7xlqz7fpwwsy15qww4jdvypg6vg4";
   };
 
   nativeBuildInputs = [ meson ninja pkg-config scdoc ];
diff --git a/pkgs/applications/networking/remote/wayvnc/default.nix b/pkgs/applications/networking/remote/wayvnc/default.nix
index f5641c762ec..21244a1859b 100644
--- a/pkgs/applications/networking/remote/wayvnc/default.nix
+++ b/pkgs/applications/networking/remote/wayvnc/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wayvnc";
-  version = "0.4.0";
+  version = "0.4.1";
 
   src = fetchFromGitHub {
     owner = "any1";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0q48fgh6gf3jicy4bk3kq18h9lhqfq9qz32ri6j9ffvbb8mcw64s";
+    sha256 = "0cws9jfnmxqycmlyllvvqzw4jsbrwwk10v9gy8wifv3c61rwgdkk";
   };
 
   nativeBuildInputs = [ meson pkg-config ninja scdoc wayland-scanner ];
diff --git a/pkgs/applications/networking/shellhub-agent/default.nix b/pkgs/applications/networking/shellhub-agent/default.nix
index ae2dee21fb2..3128529f0e6 100644
--- a/pkgs/applications/networking/shellhub-agent/default.nix
+++ b/pkgs/applications/networking/shellhub-agent/default.nix
@@ -9,18 +9,18 @@
 
 buildGoModule rec {
   pname = "shellhub-agent";
-  version = "0.7.2";
+  version = "0.8.2";
 
   src = fetchFromGitHub {
     owner = "shellhub-io";
     repo = "shellhub";
     rev = "v${version}";
-    sha256 = "02ka7acynkwkml2pavlv4j5vkm6x5aq5sfxgydv26qzs39f1wdgc";
+    sha256 = "saaohHHjX9ws74SXlpP+V9cks0ddLkz04ceY14uoVhA=";
   };
 
   modRoot = "./agent";
 
-  vendorSha256 = "18z3vwcwkyj6hcvl35qmj034237h9l18dvcbx1hxry7qdwv807c9";
+  vendorSha256 = "sha256-Xfzk6Ts6+LzGaMTcbopGG6WT541nkAnZxq/3AlX81ks=";
 
   ldflags = [ "-s" "-w" "-X main.AgentVersion=v${version}" ];
 
diff --git a/pkgs/applications/networking/syncplay/default.nix b/pkgs/applications/networking/syncplay/default.nix
index 893a2bc5fb3..b3c40b0f2fc 100644
--- a/pkgs/applications/networking/syncplay/default.nix
+++ b/pkgs/applications/networking/syncplay/default.nix
@@ -27,6 +27,6 @@ buildPythonApplication rec {
     description = "Free software that synchronises media players";
     license = licenses.asl20;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ enzime ];
+    maintainers = with maintainers; [ Enzime ];
   };
 }
diff --git a/pkgs/applications/office/calligra/default.nix b/pkgs/applications/office/calligra/default.nix
index 03437742612..234d4910288 100644
--- a/pkgs/applications/office/calligra/default.nix
+++ b/pkgs/applications/office/calligra/default.nix
@@ -65,7 +65,7 @@ mkDerivation rec {
       vector graphics.
     '';
     homepage = "https://www.calligra.org/";
-    maintainers = with maintainers; [ phreedom ebzzry zraexy ];
+    maintainers = with maintainers; [ ebzzry zraexy ];
     platforms = platforms.linux;
     license = with licenses; [ gpl2 lgpl2 ];
   };
diff --git a/pkgs/applications/office/notes-up/default.nix b/pkgs/applications/office/notes-up/default.nix
index 1aa6f7f78e9..2f1bcab0649 100644
--- a/pkgs/applications/office/notes-up/default.nix
+++ b/pkgs/applications/office/notes-up/default.nix
@@ -2,40 +2,42 @@
 , stdenv
 , fetchFromGitHub
 , nix-update-script
-, pantheon
+, desktop-file-utils
+, meson
+, ninja
 , pkg-config
+, python3
 , vala
-, cmake
-, ninja
+, wrapGAppsHook
+, discount
+, glib
 , gtk3
-, gtksourceview3
-, webkitgtk
+, gtksourceview4
 , gtkspell3
-, glib
 , libgee
-, pcre
+, pantheon
 , sqlite
-, discount
-, wrapGAppsHook
-, withPantheon ? false
+, webkitgtk
 }:
 
 stdenv.mkDerivation rec {
   pname = "notes-up";
-  version = "unstable-2020-12-29";
+  version = "2.0.6";
 
   src = fetchFromGitHub {
     owner = "Philip-Scott";
     repo = "Notes-up";
-    rev = "2ea9f35f588769758f5d2d4436d71c4059141a6f";
-    sha256 = "sha256-lKOM9+s34xYB9bF9pgip9DFu+6AaxSE4HjFVhoWtttk=";
+    rev = version;
+    sha256 = "sha256-t9BCtdWd2JLrKTcmri1Lgl5RLBYD2xWCtMxoVXz0XPk=";
   };
 
   nativeBuildInputs = [
-    cmake
+    desktop-file-utils
+    meson
     ninja
-    vala
     pkg-config
+    python3
+    vala
     wrapGAppsHook
   ];
 
@@ -43,17 +45,18 @@ stdenv.mkDerivation rec {
     discount
     glib
     gtk3
-    gtksourceview3
+    gtksourceview4
     gtkspell3
     libgee
     pantheon.granite
-    pcre
     sqlite
     webkitgtk
   ];
 
-  # Whether to build with contractor support (Pantheon specific)
-  cmakeFlags = lib.optional (!withPantheon) "-Dnoele=yes";
+  postPatch = ''
+    chmod +x meson/post_install.py
+    patchShebangs meson/post_install.py
+  '';
 
   passthru = {
     updateScript = nix-update-script {
@@ -62,12 +65,11 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "Markdown notes editor and manager designed for elementary OS"
-      + lib.optionalString withPantheon " - built with Contractor support";
+    description = "Markdown notes editor and manager designed for elementary OS";
     homepage = "https://github.com/Philip-Scott/Notes-up";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ ] ++ teams.pantheon.members;
     platforms = platforms.linux;
-    mainProgram = "com.github.philip-scott.notes-up";
+    mainProgram = "com.github.philip_scott.notes-up";
   };
 }
diff --git a/pkgs/applications/office/qownnotes/default.nix b/pkgs/applications/office/qownnotes/default.nix
index 851b367ac45..fdbf0093e07 100644
--- a/pkgs/applications/office/qownnotes/default.nix
+++ b/pkgs/applications/office/qownnotes/default.nix
@@ -5,13 +5,13 @@
 
 mkDerivation rec {
   pname = "qownnotes";
-  version = "21.12.1";
+  version = "21.12.3";
 
   src = fetchurl {
     url = "https://download.tuxfamily.org/${pname}/src/${pname}-${version}.tar.xz";
     # Fetch the checksum of current version with curl:
     # curl https://download.tuxfamily.org/qownnotes/src/qownnotes-<version>.tar.xz.sha256
-    sha256 = "sha256-gTxt3U2/x3VMWYU9cb5FPRvqezdn2K6VGYwEKBi5xFk=";
+    sha256 = "sha256-qS3zj5yI84Gvd4AMM5/mqoGWp6JgCBsKSPYfGuTCgCk=";
   };
 
   nativeBuildInputs = [ qmake qttools ];
diff --git a/pkgs/applications/office/todoman/default.nix b/pkgs/applications/office/todoman/default.nix
index f1740b326dc..639823dacd6 100644
--- a/pkgs/applications/office/todoman/default.nix
+++ b/pkgs/applications/office/todoman/default.nix
@@ -9,11 +9,11 @@ let
 in
 buildPythonApplication rec {
   pname = "todoman";
-  version = "4.0.1";
+  version = "4.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ec88f8009321e77deb0ae682f7d036c139edf4175f8413011b532905c6e7d2b1";
+    sha256 = "ce3caa481d923e91da9b492b46509810a754e2d3ef857f5d20bc5a8e362b50c8";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/pkgs/applications/office/trilium/default.nix b/pkgs/applications/office/trilium/default.nix
index 0f07dd0efd3..8782b2288e6 100644
--- a/pkgs/applications/office/trilium/default.nix
+++ b/pkgs/applications/office/trilium/default.nix
@@ -19,16 +19,16 @@ let
     maintainers = with maintainers; [ fliegendewurst ];
   };
 
-  version = "0.48.7";
+  version = "0.48.8";
 
   desktopSource = {
     url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-${version}.tar.xz";
-    sha256 = "16clrn89mq2n30hb50y45s6qn5l7n1hj4b124wjxrkmmwpdbjwad";
+    sha256 = "1dz4wdx3d1pmm3yrvipqa929f6gqilhfc3sp6xcgbn9faypp6qra";
   };
 
   serverSource = {
     url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-server-${version}.tar.xz";
-    sha256 = "18zwplcai4s82pdy3l30862jdl22311qh78anrjz29fm6srx1y9l";
+    sha256 = "0jp1hj51x5wz27f7739nwwli119pzpskg269cxk4i04xxbhr145j";
   };
 
 in {
@@ -40,15 +40,6 @@ in {
 
     src = fetchurl desktopSource;
 
-    # Fetch from source repo, no longer included in release.
-    # (they did special-case icon.png but we want the scalable svg)
-    # Use the version here to ensure we get any changes.
-    trilium_svg = fetchurl {
-      url = "https://raw.githubusercontent.com/zadam/trilium/v${version}/images/icon.svg";
-      sha256 = "0sz3piskdlx267whx8r6afrdadn25bf0zmxplj1599zqkf7w7n0x";
-    };
-
-
     nativeBuildInputs = [
       autoPatchelfHook
       makeWrapper
@@ -61,12 +52,12 @@ in {
       runHook preInstall
       mkdir -p $out/bin
       mkdir -p $out/share/trilium
-      mkdir -p $out/share/{applications,icons/hicolor/scalable/apps}
+      mkdir -p $out/share/{applications,icons/hicolor/128x128/apps}
 
       cp -r ./* $out/share/trilium
       ln -s $out/share/trilium/trilium $out/bin/trilium
 
-      ln -s ${trilium_svg} $out/share/icons/hicolor/scalable/apps/trilium.svg
+      ln -s $out/share/trilium/icon.png $out/share/icons/hicolor/128x128/apps/trilium.png
       cp ${desktopItem}/share/applications/* $out/share/applications
       runHook postInstall
     '';
diff --git a/pkgs/applications/office/zanshin/default.nix b/pkgs/applications/office/zanshin/default.nix
index 843e7ec0145..57947e23baa 100644
--- a/pkgs/applications/office/zanshin/default.nix
+++ b/pkgs/applications/office/zanshin/default.nix
@@ -1,55 +1,31 @@
 { mkDerivation
 , lib
 , fetchurl
-, fetchpatch
 , extra-cmake-modules
-, qtbase
 , boost
 , akonadi-calendar
-, akonadi-notes
-, akonadi-search
-, kidentitymanagement
 , kontactinterface
-, kldap
 , krunner
-, kwallet
-, kcalendarcore
 }:
 
 mkDerivation rec {
   pname = "zanshin";
-  version = "0.5.71";
+  version = "21.12.0";
 
   src = fetchurl {
-    url = "mirror://kde/stable/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "0b316ddcd46sawva84x5d8nsp19v66gbm83djrra7fv3k8nkv4xh";
+    url = "mirror://kde/stable/release-service/${version}/src/zanshin-${version}.tar.xz";
+    sha256 = "sha256-l8W47tS7q747fkSAH3HJdwPsqjMfCyxzl3xJEeAXeh0=";
   };
 
-  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
   ];
 
   buildInputs = [
-    qtbase
     boost
     akonadi-calendar
-    akonadi-notes
-    akonadi-search
-    kidentitymanagement
     kontactinterface
-    kldap
     krunner
-    kwallet
-    kcalendarcore
   ];
 
   meta = with lib; {
diff --git a/pkgs/applications/office/zk/default.nix b/pkgs/applications/office/zk/default.nix
index bfb97d88e86..f6b9f1393ea 100644
--- a/pkgs/applications/office/zk/default.nix
+++ b/pkgs/applications/office/zk/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "zk";
-  version = "0.8.0";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "mickael-menu";
     repo = "zk";
     rev = "v${version}";
-    sha256 = "sha256-lTg5jB3krZWmCn3wWoAwzqBji1AyTTTVf/BphC7Mr5s=";
+    sha256 = "sha256-AXKIi70evf581lMwfbfxm8hFCzsnhKRQgnIEZQFS75A=";
   };
 
   vendorSha256 = "sha256-m7QGv8Vx776TsN7QHXtO+yl3U1D573UMZVyg1B4UeIk=";
diff --git a/pkgs/applications/radio/gqrx/default.nix b/pkgs/applications/radio/gqrx/default.nix
index d18fca6f91b..3e19dc2befb 100644
--- a/pkgs/applications/radio/gqrx/default.nix
+++ b/pkgs/applications/radio/gqrx/default.nix
@@ -24,13 +24,13 @@ assert !(pulseaudioSupport && portaudioSupport);
 
 gnuradio3_8Minimal.pkgs.mkDerivation rec {
   pname = "gqrx";
-  version = "2.14.6";
+  version = "2.15";
 
   src = fetchFromGitHub {
-    owner = "csete";
+    owner = "gqrx-sdr";
     repo = "gqrx";
     rev = "v${version}";
-    sha256 = "sha256-DMmQXcGPudAVOwuc+LVrcIzfwMMQVBZPbM6Bt1w56D8=";
+    sha256 = "sha256-m3YV5Hbu5+3eS+LOy+x6HjpdiJo1iObbeEKuQXXmAak=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/science/astronomy/astrolog/default.nix b/pkgs/applications/science/astronomy/astrolog/default.nix
new file mode 100644
index 00000000000..90749f54310
--- /dev/null
+++ b/pkgs/applications/science/astronomy/astrolog/default.nix
@@ -0,0 +1,44 @@
+{ lib, stdenv, fetchzip, fetchurl, xorg, gnused }:
+stdenv.mkDerivation rec {
+  pname = "astrolog";
+  version = "7.30";
+
+  src = fetchzip {
+    url = "http://www.astrolog.org/ftp/ast73src.zip";
+    sha256 = "0nry4gxwy5aa99zzr8dlb6babpachsc3jjyk0vw82c7x3clbhl7l";
+    stripRoot = false;
+  };
+
+  patchPhase = ''
+    ${gnused}/bin/sed -i "s:~/astrolog:$out/astrolog:g" astrolog.h
+  '';
+
+  buildInputs = [ xorg.libX11 ];
+  NIX_CFLAGS_COMPILE = "-Wno-format-security";
+
+  installPhase =
+  let
+    ephemeris = fetchzip {
+      url = "http://astrolog.org/ftp/ephem/astephem.zip";
+      sha256 = "1mwvpvfk3lxjcc79zvwl4ypqzgqzipnc01cjldxrmx56xkc35zn7";
+      stripRoot = false;
+    };
+    atlas = fetchurl {
+      url = "http://astrolog.org/ftp/atlas/atlasbig.as";
+      sha256 = "1k8cy8gpcvkwkhyz248qhvrv5xiwp1n1s3b7rlz86krh7vzz01mp";
+    };
+  in ''
+    mkdir -p $out/bin $out/astrolog
+    cp -r ${ephemeris}/*.se1 $out/astrolog
+    cp *.as $out/astrolog
+    install astrolog $out/bin
+  '';
+
+  meta = with lib; {
+    maintainers = [ maintainers.kmein ];
+    homepage = "https://astrolog.org/astrolog.htm";
+    description = "Freeware astrology program";
+    platforms = platforms.linux;
+    license = licenses.gpl2Plus;
+  };
+}
diff --git a/pkgs/applications/science/biology/subread/default.nix b/pkgs/applications/science/biology/subread/default.nix
new file mode 100644
index 00000000000..431bd3788e7
--- /dev/null
+++ b/pkgs/applications/science/biology/subread/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, stdenv
+, fetchurl
+, zlib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "subread";
+  version = "2.0.3";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/subread/subread-${version}/subread-${version}-source.tar.gz";
+    sha256 = "sha256-Vs7zovkU1DJxMGnVwoL0iDHDoezIlDKtVYDKoyKl9Ws=";
+  };
+
+  buildInputs = [
+    zlib
+  ];
+
+  configurePhase = ''
+    cd src
+    cp Makefile.${if stdenv.isLinux then "Linux" else "MacOS"} Makefile
+  '';
+
+  makeFlags = [ "CC_EXEC=cc" ];
+
+  installPhase = ''
+    mkdir $out
+    cp -r ../bin $out
+  '';
+
+  meta = with lib; {
+    description = "High-performance read alignment, quantification and mutation discovery";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ jbedo ];
+    platforms = [ "x86_64-darwin" "x86_64-linux" ];
+    homepage = "http://subread.sourceforge.net/";
+  };
+
+}
diff --git a/pkgs/applications/science/logic/ekrhyper/default.nix b/pkgs/applications/science/logic/ekrhyper/default.nix
index 38cc0f06088..d6d9bb11a9a 100644
--- a/pkgs/applications/science/logic/ekrhyper/default.nix
+++ b/pkgs/applications/science/logic/ekrhyper/default.nix
@@ -1,32 +1,26 @@
-{lib, stdenv, fetchurl, ocaml, perl}:
-let
-  s = # Generated upstream information
-  rec {
-    baseName="ekrhyper";
-    version="1_4_21022014";
-    name="${baseName}-${version}";
-    hash="14xaaxyvfli1nd4vd9fp4j1s8k76z2bhazxzzc7br3q6hc6b8ivw";
-    url="http://userpages.uni-koblenz.de/~bpelzer/ekrhyper/ekrh_1_4_21022014.tar.gz";
-    sha256="14xaaxyvfli1nd4vd9fp4j1s8k76z2bhazxzzc7br3q6hc6b8ivw";
+{ lib, stdenv, fetchurl, ocaml, perl }:
+
+stdenv.mkDerivation rec {
+  pname = "ekrhyper";
+  version = "1_4_21022014";
+
+  src = fetchurl {
+    url = "http://userpages.uni-koblenz.de/~bpelzer/ekrhyper/ekrh_${version}.tar.gz";
+    sha256 = "sha256-fEe0DIMGj7wO+79/BZf45kykgyTXpbZJsyFSt31XqpM=";
   };
+
   buildInputs = [
-    ocaml perl
+    ocaml
+    perl
   ];
-in
-stdenv.mkDerivation {
-  inherit (s) name version;
-  inherit buildInputs;
-  src = fetchurl {
-    inherit (s) url sha256;
-  };
   setSourceRoot = "export sourceRoot=$(echo */ekrh/src/)";
   preInstall = "export INSTALLDIR=$out";
   postInstall = ''for i in "$out/casc"/*; do ln -s "$i" "$out/bin/ekrh-casc-$(basename $i)"; done '';
-  meta = {
-    inherit (s) version;
+
+  meta = with lib; {
     description = "Automated first-order theorem prover";
-    license = lib.licenses.gpl2 ;
-    maintainers = [lib.maintainers.raskin];
-    platforms = lib.platforms.linux;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/science/logic/ekrhyper/default.upstream b/pkgs/applications/science/logic/ekrhyper/default.upstream
deleted file mode 100644
index 310e93ea53f..00000000000
--- a/pkgs/applications/science/logic/ekrhyper/default.upstream
+++ /dev/null
@@ -1,3 +0,0 @@
-url http://userpages.uni-koblenz.de/~bpelzer/ekrhyper/
-ensure_choice
-version '.*[^0-9]_([-0-9_]+)[.].*' '\1'
diff --git a/pkgs/applications/science/logic/elan/0001-dynamically-patchelf-binaries.patch b/pkgs/applications/science/logic/elan/0001-dynamically-patchelf-binaries.patch
index dc76305bd74..768be10b6df 100644
--- a/pkgs/applications/science/logic/elan/0001-dynamically-patchelf-binaries.patch
+++ b/pkgs/applications/science/logic/elan/0001-dynamically-patchelf-binaries.patch
@@ -22,13 +22,13 @@ index c51e76d..ae8159e 100644
 +            .output();
 +    }
 +
-+    if dest_path.extension() == Some(::std::ffi::OsStr::new("lld")) {
++    if dest_path.file_name() == Some(::std::ffi::OsStr::new("leanc")) {
 +        use std::os::unix::fs::PermissionsExt;
 +        let new_path = dest_path.with_extension("orig");
 +        ::std::fs::rename(dest_path, &new_path)?;
 +        ::std::fs::write(dest_path, format!(r#"#! @shell@
-+exec -a "$0" {} "$@" --dynamic-linker=@dynamicLinker@
-+"#, new_path.to_str().unwrap()))?;
++LEAN_CC="${{LEAN_CC:-@cc@}}" exec -a "$0" {} "$@" -L {}/lib  # use bundled libraries, but not bundled compiler that doesn't know about NIX_LDFLAGS
++"#, new_path.to_str().unwrap(), dest_path.parent().unwrap().parent().unwrap().to_str().unwrap()))?;
 +        ::std::fs::set_permissions(dest_path, ::std::fs::Permissions::from_mode(0o755))?;
      }
  
diff --git a/pkgs/applications/science/logic/elan/default.nix b/pkgs/applications/science/logic/elan/default.nix
index 4326c5b0d6b..89331f53686 100644
--- a/pkgs/applications/science/logic/elan/default.nix
+++ b/pkgs/applications/science/logic/elan/default.nix
@@ -24,9 +24,10 @@ rustPlatform.buildRustPackage rec {
 
   patches = lib.optionals stdenv.isLinux [
     # Run patchelf on the downloaded binaries.
-    # This necessary because Lean 4 now dynamically links to GMP.
+    # This is necessary because Lean 4 is now dynamically linked.
     (runCommand "0001-dynamically-patchelf-binaries.patch" {
         CC = stdenv.cc;
+        cc = "${stdenv.cc}/bin/cc";
         patchelf = patchelf;
         shell = runtimeShell;
       } ''
@@ -34,6 +35,7 @@ rustPlatform.buildRustPackage rec {
      substitute ${./0001-dynamically-patchelf-binaries.patch} $out \
        --subst-var patchelf \
        --subst-var dynamicLinker \
+       --subst-var cc \
        --subst-var shell
     '')
   ];
diff --git a/pkgs/applications/science/logic/potassco/clingcon.nix b/pkgs/applications/science/logic/potassco/clingcon.nix
index 0f3218b7673..1614adf4553 100644
--- a/pkgs/applications/science/logic/potassco/clingcon.nix
+++ b/pkgs/applications/science/logic/potassco/clingcon.nix
@@ -1,39 +1,33 @@
 { lib, stdenv
 , fetchFromGitHub
 , cmake
-, bison
-, re2c
+, clingo
 }:
 
 stdenv.mkDerivation rec {
   pname = "clingcon";
-  version = "3.3.0";
+  version = "5.0.0";
 
   src = fetchFromGitHub {
     owner = "potassco";
     repo = pname;
     rev = "v${version}";
-    fetchSubmodules = true;
-    sha256 = "1q7517h10jfvjdk2czq8d6y57r8kr1j1jj2k2ip2qxkpyfigk4rs";
+    sha256 = "1g2xkz9nsgqnrw3fdf5jchl16f0skj5mm32va61scc2yrchll166";
    };
 
-  # deal with clingcon through git submodules recursively importing
-  # an outdated version of libpotassco which uses deprecated <xlocale.h> header in .cpp files
-  postPatch = ''
-    find ./ -type f -exec sed -i 's/<xlocale.h>/<locale.h>/g' {} \;
-  '';
-
-  nativeBuildInputs = [ cmake bison re2c ];
+  nativeBuildInputs = [ cmake clingo ];
 
   cmakeFlags = [
     "-DCLINGCON_MANAGE_RPATH=ON"
-    "-DCLINGO_BUILD_WITH_PYTHON=OFF"
-    "-DCLINGO_BUILD_WITH_LUA=OFF"
+    "-DPYCLINGCON_ENABLE=OFF"
+    "-DCLINGCON_BUILD_TESTS=ON"
   ];
 
+  doCheck = true;
+
   meta = {
     description = "Extension of clingo to handle constraints over integers";
-    license = lib.licenses.gpl3; # for now GPL3, next version MIT!
+    license = lib.licenses.mit;
     platforms = lib.platforms.unix;
     homepage = "https://potassco.org/";
     downloadPage = "https://github.com/potassco/clingcon/releases/";
diff --git a/pkgs/applications/science/math/mathematica/l10ns.nix b/pkgs/applications/science/math/mathematica/l10ns.nix
index 7de63c287ea..474c8d1ea06 100644
--- a/pkgs/applications/science/math/mathematica/l10ns.nix
+++ b/pkgs/applications/science/math/mathematica/l10ns.nix
@@ -8,31 +8,76 @@ let allVersions = with lib; flip map
   # N.B. Versions in this list should be ordered from newest to oldest.
   [
     {
+      version = "13.0.0";
+      lang = "en";
+      language = "English";
+      sha256 = "15bbad39a5995031325d1d178f63b00e71706d3ec9001eba6d1681fbc991d3e1";
+      installer = "Mathematica_13.0.0_BNDL_LINUX.sh";
+    }
+    {
       version = "12.3.1";
       lang = "en";
       language = "English";
       sha256 = "51b9cab12fd91b009ea7ad4968a2c8a59e94dc55d2e6cc1d712acd5ba2c4d509";
+      installer = "Mathematica_12.3.1_LINUX.sh";
+    }
+    {
+      version = "12.3.0";
+      lang = "en";
+      language = "English";
+      sha256 = "045df045f6e796ded59f64eb2e0f1949ac88dcba1d5b6e05fb53ea0a4aed7215";
+      installer = "Mathematica_12.3.0_LINUX.sh";
+    }
+    {
+      version = "12.2.0";
+      lang = "en";
+      language = "English";
+      sha256 = "3b6676a203c6adb7e9c418a5484b037974287b5be09c64e7dfea74ddc0e400d7";
+      installer = "Mathematica_12.2.0_LINUX.sh";
+    }
+    {
+      version = "12.1.1";
+      lang = "en";
+      language = "English";
+      sha256 = "02mk8gmv8idnakva1nc7r7mx8ld02lk7jgsj1zbn962aps3bhixd";
+      installer = "Mathematica_12.1.1_LINUX.sh";
+    }
+    {
+      version = "12.1.0";
+      lang = "en";
+      language = "English";
+      sha256 = "15m9l20jvkxh5w6mbp81ys7mx2lx5j8acw5gz0il89lklclgb8z7";
+      installer = "Mathematica_12.1.0_LINUX.sh";
+    }
+    {
+      version = "12.0.0";
+      lang = "en";
+      language = "English";
+      sha256 = "b9fb71e1afcc1d72c200196ffa434512d208fa2920e207878433f504e58ae9d7";
+      installer = "Mathematica_12.0.0_LINUX.sh";
     }
     {
       version = "11.3.0";
       lang = "en";
       language = "English";
       sha256 = "0fcfe208c1eac8448e7be3af0bdb84370b17bd9c5d066c013928c8ee95aed10e";
+      installer = "Mathematica_11.3.0_LINUX.sh";
     }
     {
       version = "11.2.0";
       lang = "ja";
       language = "Japanese";
       sha256 = "916392edd32bed8622238df435dd8e86426bb043038a3336f30df10d819b49b1";
+      installer = "Mathematica_11.2.0_ja_LINUX.sh";
     }
   ]
-  ({ version, lang, language, sha256 }: {
+  ({ version, lang, language, sha256, installer }: {
     inherit version lang;
     name = "mathematica-${version}" + optionalString (lang != "en") "-${lang}";
-    src = requireFile rec {
-      name = "Mathematica_${version}" + optionalString (lang != "en") "_${language}" + "_LINUX.sh";
+    src = requireFile {
+      name = installer;
       message = ''
-        This nix expression requires that ${name} is
+        This nix expression requires that ${installer} is
         already part of the store. Find the file on your Mathematica CD
         and add it to the nix store with nix-store --add-fixed sha256 <FILE>.
       '';
diff --git a/pkgs/applications/science/math/mxnet/default.nix b/pkgs/applications/science/math/mxnet/default.nix
index ab360a96385..c9ffb8ed5cb 100644
--- a/pkgs/applications/science/math/mxnet/default.nix
+++ b/pkgs/applications/science/math/mxnet/default.nix
@@ -1,5 +1,5 @@
-{ config, stdenv, lib, fetchurl, bash, cmake
-, opencv3, gtest, blas, perl
+{ config, stdenv, lib, fetchurl, fetchpatch, bash, cmake
+, opencv3, gtest, blas, gomp, llvmPackages, perl
 , cudaSupport ? config.cudaSupport or false, cudatoolkit, nvidia_x11
 , cudnnSupport ? cudaSupport, cudnn
 }:
@@ -8,18 +8,35 @@ assert cudnnSupport -> cudaSupport;
 
 stdenv.mkDerivation rec {
   pname = "mxnet";
-  version = "1.6.0";
+  version = "1.8.0";
 
   src = fetchurl {
-    url = "https://github.com/apache/incubator-mxnet/releases/download/${version}/apache-mxnet-src-${version}-incubating.tar.gz";
-    sha256 = "1vvdb7pfh63kb9fzs6gqp95q550a3ck4cj9mqxlk9wwhkh30dsq1";
+    name = "apache-mxnet-src-${version}-incubating.tar.gz";
+    url = "https://dlcdn.apache.org/incubator/mxnet/${version}/apache-mxnet-src-${version}-incubating.tar.gz";
+    hash = "sha256-la/5hYlaukCcCNVRRRCuOLiEkM+2KBqzpf8PWCbI21Q=";
   };
 
+  patches = [
+    # Fix build error https://github.com/apache/incubator-mxnet/issues/19405
+    (fetchpatch {
+      name = "mxnet-fix-gcc-linker-error-1.patch";
+      url = "https://github.com/apache/incubator-mxnet/commit/78e31d66d19e385ca4ef73245ce79a47e375d8d1.diff";
+      sha256 = "sha256-UfmGhh4RbvrEOXe6IJxHm1Aqpy1gS6gHxrX5KQBXjv4=";
+    })
+    (fetchpatch {
+      name = "mxnet-fix-gcc-linker-error-2.patch";
+      url = "https://github.com/apache/incubator-mxnet/commit/9bfe3116aabd01049fdbd90855cb245a30b795df.diff";
+      sha256 = "sha256-BL7Zf7Bgn0qpai9HbQ6LBxZNa3iLjVJSe5nxZgqI/fw=";
+    })
+  ];
+
   nativeBuildInputs = [ cmake perl ];
 
   buildInputs = [ opencv3 gtest blas.provider ]
-              ++ lib.optionals cudaSupport [ cudatoolkit nvidia_x11 ]
-              ++ lib.optional cudnnSupport cudnn;
+    ++ lib.optional stdenv.cc.isGNU gomp
+    ++ lib.optional stdenv.cc.isClang llvmPackages.openmp
+    ++ lib.optionals cudaSupport [ cudatoolkit nvidia_x11 ]
+    ++ lib.optional cudnnSupport cudnn;
 
   cmakeFlags =
     [ "-DUSE_MKL_IF_AVAILABLE=OFF" ]
@@ -48,6 +65,6 @@ stdenv.mkDerivation rec {
     homepage = "https://mxnet.incubator.apache.org/";
     maintainers = with maintainers; [ abbradar ];
     license = licenses.asl20;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/science/math/qalculate-gtk/default.nix b/pkgs/applications/science/math/qalculate-gtk/default.nix
index ab5e54dab77..03f4b223803 100644
--- a/pkgs/applications/science/math/qalculate-gtk/default.nix
+++ b/pkgs/applications/science/math/qalculate-gtk/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "qalculate-gtk";
-  version = "3.21.0";
+  version = "3.22.0";
 
   src = fetchFromGitHub {
     owner = "qalculate";
     repo = "qalculate-gtk";
     rev = "v${version}";
-    sha256 = "sha256-w0frk1Nd1/HTo94VAbD7QjVuT8laPbmgd8ENTb0+89c=";
+    sha256 = "sha256-BarbO25c103YImOOnjVgwgqpa3mUVvndgJeUHRf2I60=";
   };
 
   hardeningDisable = [ "format" ];
diff --git a/pkgs/applications/science/misc/boinc/default.nix b/pkgs/applications/science/misc/boinc/default.nix
index 460ea1408ec..05304ef6a9e 100644
--- a/pkgs/applications/science/misc/boinc/default.nix
+++ b/pkgs/applications/science/misc/boinc/default.nix
@@ -3,8 +3,8 @@ libGLU, libGL, libXmu, libXi, freeglut, libjpeg, libtool, wxGTK30, xcbutil,
 sqlite, gtk2, patchelf, libXScrnSaver, libnotify, libX11, libxcb }:
 
 let
-  majorVersion = "7.14";
-  minorVersion = "2";
+  majorVersion = "7.18";
+  minorVersion = "1";
 in
 
 stdenv.mkDerivation rec {
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     owner = "BOINC";
     repo = "boinc";
     rev = "client_release/${majorVersion}/${version}";
-    sha256 = "0nicpkag18xq0libfqqvs0im22mijpsxzfk272iwdd9l0lmgfvyd";
+    sha256 = "sha256-ijkfWTFwwJXvh6f0P5hkzWODxU+Ugz6iQUK+5jEpWXQ=";
   };
 
   nativeBuildInputs = [ libtool automake autoconf m4 pkg-config ];
@@ -37,10 +37,15 @@ stdenv.mkDerivation rec {
 
   configureFlags = [ "--disable-server" ];
 
-  meta = {
+  postInstall = ''
+    install --mode=444 -D 'client/scripts/boinc-client.service' "$out/etc/systemd/system/boinc.service"
+  '';
+
+  meta = with lib; {
     description = "Free software for distributed and grid computing";
     homepage = "https://boinc.berkeley.edu/";
-    license = lib.licenses.lgpl2Plus;
-    platforms = lib.platforms.linux;  # arbitrary choice
+    license = licenses.lgpl2Plus;
+    platforms = platforms.linux;  # arbitrary choice
+    maintainers = with maintainers; [ Luflosi ];
   };
 }
diff --git a/pkgs/applications/science/programming/scyther/cli.nix b/pkgs/applications/science/programming/scyther/cli.nix
deleted file mode 100644
index 0acf0989c63..00000000000
--- a/pkgs/applications/science/programming/scyther/cli.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ stdenv, glibc, flex, bison, cmake
-, version, src, meta }:
-stdenv.mkDerivation {
-  pname = "scyther-cli";
-  inherit version;
-
-  inherit src meta;
-
-  nativeBuildInputs = [ cmake flex bison ];
-  buildInputs = [ glibc.static ];
-
-  patchPhase = ''
-    # Since we're not in a git dir, the normal command this project uses to create this file wouldn't work
-    printf "%s\n" "#define TAGVERSION \"${version}\"" > src/version.h
-  '';
-
-  configurePhase = ''
-    (cd src && cmakeConfigurePhase)
-  '';
-
-  dontUseCmakeBuildDir = true;
-  cmakeFlags = [ "-DCMAKE_C_FLAGS=-std=gnu89" ];
-
-  installPhase = ''
-    mkdir -p "$out/bin"
-    mv src/scyther-linux "$out/bin/scyther-cli"
-    ln -s "$out/bin/scyther-cli" "$out/bin/scyther-linux"
-  '';
-}
diff --git a/pkgs/applications/science/programming/scyther/default.nix b/pkgs/applications/science/programming/scyther/default.nix
deleted file mode 100644
index ca6b57de611..00000000000
--- a/pkgs/applications/science/programming/scyther/default.nix
+++ /dev/null
@@ -1,80 +0,0 @@
-{ stdenv, lib, buildEnv, pkgsi686Linux, fetchFromGitHub, python27Packages, graphviz
-, includeGUI ? true
-, includeProtocols ? true
-}:
-let
-  version = "1.1.3";
-
-  src = fetchFromGitHub {
-    rev = "v${version}";
-    sha256 = "0rb4ha5bnjxnwj4f3hciq7kyj96fhw14hqbwl5kr9cdw8q62mx0h";
-    owner = "cascremers";
-    repo = "scyther";
-  };
-
-  meta = with lib; {
-    description = "A tool for the automatic verification of security protocols";
-    homepage = "https://www.cs.ox.ac.uk/people/cas.cremers/scyther/";
-    license = licenses.gpl2;
-    maintainers = with maintainers; [ infinisil ];
-    platforms = platforms.linux;
-  };
-
-  cli = pkgsi686Linux.callPackage ./cli.nix {
-    inherit version src meta;
-  };
-
-  gui = stdenv.mkDerivation {
-    pname = "scyther-gui";
-    inherit version;
-    inherit src meta;
-    buildInputs = [
-      python27Packages.wrapPython
-    ];
-
-    patchPhase = ''
-      file=gui/Scyther/Scyther.py
-
-      # By default the scyther binary is looked for in the directory of the python script ($out/gui), but we want to have it look where our cli package is
-      substituteInPlace $file --replace "return getMyDir()" "return \"${cli}/bin\""
-
-      # Removes the Shebang from the file, as this would be wrapped wrongly
-      sed -i -e "1d" $file
-    '';
-
-    dontBuild = true;
-
-    propagatedBuildInputs = [
-      python27Packages.wxPython
-      graphviz
-    ];
-
-    installPhase = ''
-      mkdir -p "$out"/gui "$out"/bin
-      cp -r gui/* "$out"/gui
-      ln -s "$out"/gui/scyther-gui.py "$out/bin/scyther-gui"
-    '';
-
-    postFixup = ''
-      wrapPythonProgramsIn "$out/gui" "$out $pythonPath"
-    '';
-
-    doInstallCheck = true;
-    installCheckPhase = ''
-      "$out/gui/scyther.py" "$src/gui/Protocols/Demo/ns3.spdl"
-    '';
-  };
-in
-  buildEnv {
-    name = "scyther-${version}";
-    inherit meta;
-    paths = [ cli ] ++ lib.optional includeGUI gui;
-    pathsToLink = [ "/bin" ];
-
-    postBuild = ''
-      rm "$out/bin/scyther-linux"
-    '' + lib.optionalString includeProtocols ''
-      mkdir -p "$out/protocols"
-      cp -rv ${src}/protocols/* "$out/protocols"
-    '';
-  }
diff --git a/pkgs/applications/science/robotics/mavproxy/default.nix b/pkgs/applications/science/robotics/mavproxy/default.nix
index 12d8ef7c0bb..c1e5b128fc7 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.45";
+  version = "1.8.46";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f1010cefb5b97a5d392d32aa1425bdb7df995161125f8686f2c7383c2a86e9e5";
+    sha256 = "c740c11551af4bcb1378772bde77ca6c846c6fd261b79d932c0ecbb164afe3bd";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/terminal-emulators/contour/default.nix b/pkgs/applications/terminal-emulators/contour/default.nix
index 864a9e7c487..6ef16a5b9e4 100644
--- a/pkgs/applications/terminal-emulators/contour/default.nix
+++ b/pkgs/applications/terminal-emulators/contour/default.nix
@@ -1,4 +1,4 @@
-{ lib, mkDerivation, fetchFromGitHub, cmake, pkg-config, freetype, libGL, pcre }:
+{ lib, stdenv, mkDerivation, fetchFromGitHub, cmake, pkg-config, freetype, libGL, pcre }:
 
 mkDerivation rec {
   pname = "contour";
@@ -23,5 +23,6 @@ mkDerivation rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ fortuneteller2k ];
     platforms = platforms.unix;
+    broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/contour.x86_64-darwin
   };
 }
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 3b1c648144d..ed01e9259f7 100644
--- a/pkgs/applications/version-management/git-and-tools/delta/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/delta/default.nix
@@ -11,16 +11,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "delta";
-  version = "0.11.2";
+  version = "0.11.3";
 
   src = fetchFromGitHub {
     owner = "dandavison";
     repo = pname;
     rev = version;
-    sha256 = "sha256-GboG7Ia27CTisY0YCFiAhzoCMxMAXlCeAPll19+JoxM=";
+    sha256 = "sha256-qpoXUzXRcsUi1WHZAYGgnEaNxBYEQAdkXAz7YPiPae8=";
   };
 
-  cargoSha256 = "sha256-JEIMZFDEWaKXfe4OzaAxMop0XYQAcz8L7hcTBD8DJio=";
+  cargoSha256 = "sha256-eds2W47+lOwO/HHKR+IjXOJOD8p1OYkk5qilDYTOUyk=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/applications/version-management/git-and-tools/gh/default.nix b/pkgs/applications/version-management/git-and-tools/gh/default.nix
index ab9d08f6db5..59aba526c3f 100644
--- a/pkgs/applications/version-management/git-and-tools/gh/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/gh/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "gh";
-  version = "2.3.0";
+  version = "2.4.0";
 
   src = fetchFromGitHub {
     owner = "cli";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "sha256-l6MwBxPWIL5oEaq9c0HJZumZf17WzZymZtytyWZOwWE=";
+    sha256 = "sha256-RFKS6fHh+rX5S31MvAQpJUNgaI6loiUw0FNkdsMFqlQ=";
   };
 
-  vendorSha256 = "sha256-ONeeFZbD5RJXWiXejUt5VKzGl0pz+3Hn73/Y5a+gJRw=";
+  vendorSha256 = "sha256-6owFzn+NAhlHjTJEur1H5oZY87ZoptvAnF2w6kafix8=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/applications/version-management/git-and-tools/git-credential-1password/default.nix b/pkgs/applications/version-management/git-and-tools/git-credential-1password/default.nix
new file mode 100644
index 00000000000..de7f47507fb
--- /dev/null
+++ b/pkgs/applications/version-management/git-and-tools/git-credential-1password/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "git-credential-1password";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "develerik";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-WMEUa0mSxmeFXQBejwxtlhWuuLKguugavRaBUVpYA3g=";
+  };
+
+  vendorSha256 = "sha256-eUjaSpmQpSOvSBW+7ajXiEDepkyvHsIiEY0RGpfnao0=";
+
+  meta = with lib; {
+    description = "A git credential helper for 1Password";
+    homepage = "https://github.com/develerik/git-credential-1password";
+    changelog = "https://github.com/develerik/git-credential-1password/releases/tag/v${version}";
+    license = licenses.isc;
+    maintainers = [ maintainers.ivankovnatsky ];
+  };
+}
diff --git a/pkgs/applications/version-management/git-and-tools/git-delete-merged-branches/default.nix b/pkgs/applications/version-management/git-and-tools/git-delete-merged-branches/default.nix
index 3e49af5bbb9..c128536d343 100644
--- a/pkgs/applications/version-management/git-and-tools/git-delete-merged-branches/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-delete-merged-branches/default.nix
@@ -13,7 +13,7 @@ python3Packages.buildPythonApplication rec {
 
   propagatedBuildInputs = with python3Packages; [
     colorama
-    clintermission
+    prompt-toolkit
   ];
 
   checkInputs = [ git ]
diff --git a/pkgs/applications/version-management/git-and-tools/glitter/default.nix b/pkgs/applications/version-management/git-and-tools/glitter/default.nix
index 04b850cc595..8dec11dde80 100644
--- a/pkgs/applications/version-management/git-and-tools/glitter/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/glitter/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "glitter";
-  version = "1.5.10";
+  version = "1.5.11";
 
   src = fetchFromGitHub {
     owner = "milo123459";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-4d1zMCQ4rYU5kL7Qhwibt6+IfKHUjYndHHeX7JT9zwU=";
+    sha256 = "sha256-WAQ4DwPKkATLa52GE5LZRVY0YH4nRStjPuQg7kdXRjw=";
   };
 
-  cargoSha256 = "sha256-eaSQGbsvAas7CLMtgSNWCqdrYU5Kc/0GY10rkNK05Uo=";
+  cargoSha256 = "sha256-UK3gUAs+FalqboK7MuhE9kOc/Smu/EAN0BYbgg4PWns=";
 
   # tests require it to be in a git repository
   preCheck = ''
diff --git a/pkgs/applications/version-management/git-and-tools/radicle-upstream/default.nix b/pkgs/applications/version-management/git-and-tools/radicle-upstream/default.nix
index 6d521151bd8..87d92e72a8f 100644
--- a/pkgs/applications/version-management/git-and-tools/radicle-upstream/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/radicle-upstream/default.nix
@@ -2,17 +2,17 @@
 
 let
   pname = "radicle-upstream";
-  version = "0.2.10";
+  version = "0.2.12";
   name = "${pname}-${version}";
 
   srcs = {
     x86_64-linux = fetchurl {
       url = "https://releases.radicle.xyz/radicle-upstream-${version}.AppImage";
-      sha256 = "sha256-iZC7FzYaQsCoAq/soi5g2oo/Xd2PtZgO/wR8zDgN4Fk=";
+      sha256 = "7520c7feb94234df6f8523689d098e0d19510e2ac0122e482d1e01086c9b02fe";
     };
     x86_64-darwin = fetchurl {
       url = "https://releases.radicle.xyz/radicle-upstream-${version}.dmg";
-      sha256 = "sha256-gc5OrNu7t0VJrjLQO7+7TWvEj7D51WmMJfL/KQDMgvA=";
+      sha256 = "8bbff051f169f029044e4c4965cad88f48e939b945fd5c253f0c39665a19ce44";
     };
   };
   src = srcs.${stdenv.hostPlatform.system};
diff --git a/pkgs/applications/version-management/gitkraken/default.nix b/pkgs/applications/version-management/gitkraken/default.nix
index a92c6b5d527..188976da359 100644
--- a/pkgs/applications/version-management/gitkraken/default.nix
+++ b/pkgs/applications/version-management/gitkraken/default.nix
@@ -11,19 +11,19 @@ with lib;
 let
   curlWithGnuTls = curl.override { gnutlsSupport = true; opensslSupport = false; };
   pname = "gitkraken";
-  version = "8.1.1";
+  version = "8.2.0";
 
   throwSystem = throw "Unsupported system: ${stdenv.hostPlatform.system}";
 
   srcs = {
     x86_64-linux = fetchzip {
       url = "https://release.axocdn.com/linux/GitKraken-v${version}.tar.gz";
-      sha256 = "sha256-C6R7/ucQhMsugg7qT+B8OG77AMOx2nmZlVAQcxAfpmc=";
+      sha256 = "sha256-id8pdkTphi3J0ZG88K7oc/O6OwAvmWyFEs9kMbleSFs=";
     };
 
     x86_64-darwin = fetchzip {
       url = "https://release.axocdn.com/darwin/GitKraken-v${version}.zip";
-      sha256 = "sha256-l0K9Ha+0KqVqNQOSouT2rwRRi4YoIjMNnZnmBY8Loa8=";
+      sha256 = "sha256-dwPKIXOQB3lixvMBJJRrRSamYRoC9n1rjcqi542dA44=";
     };
 
     aarch64-darwin = srcs.x86_64-darwin;
diff --git a/pkgs/applications/video/kodi-packages/a4ksubtitles/default.nix b/pkgs/applications/video/kodi/addons/a4ksubtitles/default.nix
index 9c62198cb0f..9c62198cb0f 100644
--- a/pkgs/applications/video/kodi-packages/a4ksubtitles/default.nix
+++ b/pkgs/applications/video/kodi/addons/a4ksubtitles/default.nix
diff --git a/pkgs/applications/video/kodi-packages/addon-update-script/default.nix b/pkgs/applications/video/kodi/addons/addon-update-script/default.nix
index 17c1d45783f..17c1d45783f 100644
--- a/pkgs/applications/video/kodi-packages/addon-update-script/default.nix
+++ b/pkgs/applications/video/kodi/addons/addon-update-script/default.nix
diff --git a/pkgs/applications/video/kodi-packages/archive_tool/default.nix b/pkgs/applications/video/kodi/addons/archive_tool/default.nix
index 4788556a879..4788556a879 100644
--- a/pkgs/applications/video/kodi-packages/archive_tool/default.nix
+++ b/pkgs/applications/video/kodi/addons/archive_tool/default.nix
diff --git a/pkgs/applications/video/kodi-packages/certifi/default.nix b/pkgs/applications/video/kodi/addons/certifi/default.nix
index 1088f560adf..1088f560adf 100644
--- a/pkgs/applications/video/kodi-packages/certifi/default.nix
+++ b/pkgs/applications/video/kodi/addons/certifi/default.nix
diff --git a/pkgs/applications/video/kodi-packages/chardet/default.nix b/pkgs/applications/video/kodi/addons/chardet/default.nix
index fe482447cfa..fe482447cfa 100644
--- a/pkgs/applications/video/kodi-packages/chardet/default.nix
+++ b/pkgs/applications/video/kodi/addons/chardet/default.nix
diff --git a/pkgs/applications/video/kodi-packages/controllers/default.nix b/pkgs/applications/video/kodi/addons/controllers/default.nix
index 825ad5d53fc..825ad5d53fc 100644
--- a/pkgs/applications/video/kodi-packages/controllers/default.nix
+++ b/pkgs/applications/video/kodi/addons/controllers/default.nix
diff --git a/pkgs/applications/video/kodi-packages/dateutil/default.nix b/pkgs/applications/video/kodi/addons/dateutil/default.nix
index 54a22cedf90..54a22cedf90 100644
--- a/pkgs/applications/video/kodi-packages/dateutil/default.nix
+++ b/pkgs/applications/video/kodi/addons/dateutil/default.nix
diff --git a/pkgs/applications/video/kodi-packages/defusedxml/default.nix b/pkgs/applications/video/kodi/addons/defusedxml/default.nix
index 11738065ff6..11738065ff6 100644
--- a/pkgs/applications/video/kodi-packages/defusedxml/default.nix
+++ b/pkgs/applications/video/kodi/addons/defusedxml/default.nix
diff --git a/pkgs/applications/video/kodi-packages/iagl/default.nix b/pkgs/applications/video/kodi/addons/iagl/default.nix
index 8ca0abdf960..8ca0abdf960 100644
--- a/pkgs/applications/video/kodi-packages/iagl/default.nix
+++ b/pkgs/applications/video/kodi/addons/iagl/default.nix
diff --git a/pkgs/applications/video/kodi-packages/idna/default.nix b/pkgs/applications/video/kodi/addons/idna/default.nix
index 01f16696fae..01f16696fae 100644
--- a/pkgs/applications/video/kodi-packages/idna/default.nix
+++ b/pkgs/applications/video/kodi/addons/idna/default.nix
diff --git a/pkgs/applications/video/kodi-packages/inputstream-adaptive/default.nix b/pkgs/applications/video/kodi/addons/inputstream-adaptive/default.nix
index e029bd97429..e029bd97429 100644
--- a/pkgs/applications/video/kodi-packages/inputstream-adaptive/default.nix
+++ b/pkgs/applications/video/kodi/addons/inputstream-adaptive/default.nix
diff --git a/pkgs/applications/video/kodi-packages/inputstream-ffmpegdirect/default.nix b/pkgs/applications/video/kodi/addons/inputstream-ffmpegdirect/default.nix
index 313456bbfa7..313456bbfa7 100644
--- a/pkgs/applications/video/kodi-packages/inputstream-ffmpegdirect/default.nix
+++ b/pkgs/applications/video/kodi/addons/inputstream-ffmpegdirect/default.nix
diff --git a/pkgs/applications/video/kodi-packages/inputstream-rtmp/default.nix b/pkgs/applications/video/kodi/addons/inputstream-rtmp/default.nix
index eb53aee68bb..eb53aee68bb 100644
--- a/pkgs/applications/video/kodi-packages/inputstream-rtmp/default.nix
+++ b/pkgs/applications/video/kodi/addons/inputstream-rtmp/default.nix
diff --git a/pkgs/applications/video/kodi-packages/inputstreamhelper/default.nix b/pkgs/applications/video/kodi/addons/inputstreamhelper/default.nix
index 7698e6619d9..7698e6619d9 100644
--- a/pkgs/applications/video/kodi-packages/inputstreamhelper/default.nix
+++ b/pkgs/applications/video/kodi/addons/inputstreamhelper/default.nix
diff --git a/pkgs/applications/video/kodi-packages/jellyfin/default.nix b/pkgs/applications/video/kodi/addons/jellyfin/default.nix
index 59aaa2e8b26..59aaa2e8b26 100644
--- a/pkgs/applications/video/kodi-packages/jellyfin/default.nix
+++ b/pkgs/applications/video/kodi/addons/jellyfin/default.nix
diff --git a/pkgs/applications/video/kodi-packages/joystick/default.nix b/pkgs/applications/video/kodi/addons/joystick/default.nix
index a1b9c3eeeef..a1b9c3eeeef 100644
--- a/pkgs/applications/video/kodi-packages/joystick/default.nix
+++ b/pkgs/applications/video/kodi/addons/joystick/default.nix
diff --git a/pkgs/applications/video/kodi-packages/keymap/default.nix b/pkgs/applications/video/kodi/addons/keymap/default.nix
index d7b45485d68..d7b45485d68 100644
--- a/pkgs/applications/video/kodi-packages/keymap/default.nix
+++ b/pkgs/applications/video/kodi/addons/keymap/default.nix
diff --git a/pkgs/applications/video/kodi-packages/kodi-platform/default.nix b/pkgs/applications/video/kodi/addons/kodi-platform/default.nix
index 6d458f7377d..6d458f7377d 100644
--- a/pkgs/applications/video/kodi-packages/kodi-platform/default.nix
+++ b/pkgs/applications/video/kodi/addons/kodi-platform/default.nix
diff --git a/pkgs/applications/video/kodi-packages/kodi-six/default.nix b/pkgs/applications/video/kodi/addons/kodi-six/default.nix
index 24404ef349e..24404ef349e 100644
--- a/pkgs/applications/video/kodi-packages/kodi-six/default.nix
+++ b/pkgs/applications/video/kodi/addons/kodi-six/default.nix
diff --git a/pkgs/applications/video/kodi-packages/libretro-genplus/default.nix b/pkgs/applications/video/kodi/addons/libretro-genplus/default.nix
index 064375107e2..064375107e2 100644
--- a/pkgs/applications/video/kodi-packages/libretro-genplus/default.nix
+++ b/pkgs/applications/video/kodi/addons/libretro-genplus/default.nix
diff --git a/pkgs/applications/video/kodi-packages/libretro-mgba/default.nix b/pkgs/applications/video/kodi/addons/libretro-mgba/default.nix
index a58f1c51b29..a58f1c51b29 100644
--- a/pkgs/applications/video/kodi-packages/libretro-mgba/default.nix
+++ b/pkgs/applications/video/kodi/addons/libretro-mgba/default.nix
diff --git a/pkgs/applications/video/kodi-packages/libretro-snes9x/default.nix b/pkgs/applications/video/kodi/addons/libretro-snes9x/default.nix
index 640aec3d497..640aec3d497 100644
--- a/pkgs/applications/video/kodi-packages/libretro-snes9x/default.nix
+++ b/pkgs/applications/video/kodi/addons/libretro-snes9x/default.nix
diff --git a/pkgs/applications/video/kodi-packages/libretro/default.nix b/pkgs/applications/video/kodi/addons/libretro/default.nix
index d1fc3d4afd2..d1fc3d4afd2 100644
--- a/pkgs/applications/video/kodi-packages/libretro/default.nix
+++ b/pkgs/applications/video/kodi/addons/libretro/default.nix
diff --git a/pkgs/applications/video/kodi-packages/myconnpy/default.nix b/pkgs/applications/video/kodi/addons/myconnpy/default.nix
index e39625545f6..e39625545f6 100644
--- a/pkgs/applications/video/kodi-packages/myconnpy/default.nix
+++ b/pkgs/applications/video/kodi/addons/myconnpy/default.nix
diff --git a/pkgs/applications/video/kodi-packages/netflix/default.nix b/pkgs/applications/video/kodi/addons/netflix/default.nix
index d9d11657e8b..86f5dfb7545 100644
--- a/pkgs/applications/video/kodi-packages/netflix/default.nix
+++ b/pkgs/applications/video/kodi/addons/netflix/default.nix
@@ -3,13 +3,13 @@
 buildKodiAddon rec {
   pname = "netflix";
   namespace = "plugin.video.netflix";
-  version = "1.16.2";
+  version = "1.18.2";
 
   src = fetchFromGitHub {
     owner = "CastagnaIT";
     repo = namespace;
     rev = "v${version}";
-    sha256 = "0yycwm8vrpkr4fsbf713mhpnaxfd849nhzp5r1898sb9vldab4xk";
+    sha256 = "sha256-nunjcVapWWTxYtILEcrkfJiWvSz71zyxSCbWQ4aCfLM=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/applications/video/kodi-packages/osmc-skin/default.nix b/pkgs/applications/video/kodi/addons/osmc-skin/default.nix
index 7bbb62029bb..7bbb62029bb 100644
--- a/pkgs/applications/video/kodi-packages/osmc-skin/default.nix
+++ b/pkgs/applications/video/kodi/addons/osmc-skin/default.nix
diff --git a/pkgs/applications/video/kodi-packages/pdfreader/default.nix b/pkgs/applications/video/kodi/addons/pdfreader/default.nix
index 62a5853c796..62a5853c796 100644
--- a/pkgs/applications/video/kodi-packages/pdfreader/default.nix
+++ b/pkgs/applications/video/kodi/addons/pdfreader/default.nix
diff --git a/pkgs/applications/video/kodi-packages/pvr-hdhomerun/default.nix b/pkgs/applications/video/kodi/addons/pvr-hdhomerun/default.nix
index 093322b231c..093322b231c 100644
--- a/pkgs/applications/video/kodi-packages/pvr-hdhomerun/default.nix
+++ b/pkgs/applications/video/kodi/addons/pvr-hdhomerun/default.nix
diff --git a/pkgs/applications/video/kodi-packages/pvr-hts/default.nix b/pkgs/applications/video/kodi/addons/pvr-hts/default.nix
index 30f56b2c3c7..30f56b2c3c7 100644
--- a/pkgs/applications/video/kodi-packages/pvr-hts/default.nix
+++ b/pkgs/applications/video/kodi/addons/pvr-hts/default.nix
diff --git a/pkgs/applications/video/kodi-packages/pvr-iptvsimple/default.nix b/pkgs/applications/video/kodi/addons/pvr-iptvsimple/default.nix
index 17811c16292..17811c16292 100644
--- a/pkgs/applications/video/kodi-packages/pvr-iptvsimple/default.nix
+++ b/pkgs/applications/video/kodi/addons/pvr-iptvsimple/default.nix
diff --git a/pkgs/applications/video/kodi-packages/requests-cache/default.nix b/pkgs/applications/video/kodi/addons/requests-cache/default.nix
index de785ab9bb5..de785ab9bb5 100644
--- a/pkgs/applications/video/kodi-packages/requests-cache/default.nix
+++ b/pkgs/applications/video/kodi/addons/requests-cache/default.nix
diff --git a/pkgs/applications/video/kodi-packages/requests/default.nix b/pkgs/applications/video/kodi/addons/requests/default.nix
index c5759fcc325..c5759fcc325 100644
--- a/pkgs/applications/video/kodi-packages/requests/default.nix
+++ b/pkgs/applications/video/kodi/addons/requests/default.nix
diff --git a/pkgs/applications/video/kodi-packages/routing/default.nix b/pkgs/applications/video/kodi/addons/routing/default.nix
index a75e786cf1f..a75e786cf1f 100644
--- a/pkgs/applications/video/kodi-packages/routing/default.nix
+++ b/pkgs/applications/video/kodi/addons/routing/default.nix
diff --git a/pkgs/applications/video/kodi-packages/signals/default.nix b/pkgs/applications/video/kodi/addons/signals/default.nix
index b66b1e99a8b..b66b1e99a8b 100644
--- a/pkgs/applications/video/kodi-packages/signals/default.nix
+++ b/pkgs/applications/video/kodi/addons/signals/default.nix
diff --git a/pkgs/applications/video/kodi-packages/six/default.nix b/pkgs/applications/video/kodi/addons/six/default.nix
index 1742d1f6f04..1742d1f6f04 100644
--- a/pkgs/applications/video/kodi-packages/six/default.nix
+++ b/pkgs/applications/video/kodi/addons/six/default.nix
diff --git a/pkgs/applications/video/kodi-packages/steam-controller/default.nix b/pkgs/applications/video/kodi/addons/steam-controller/default.nix
index d2b79029f7c..d2b79029f7c 100644
--- a/pkgs/applications/video/kodi-packages/steam-controller/default.nix
+++ b/pkgs/applications/video/kodi/addons/steam-controller/default.nix
diff --git a/pkgs/applications/video/kodi-packages/steam-launcher/default.nix b/pkgs/applications/video/kodi/addons/steam-launcher/default.nix
index c4a695b8f81..c4a695b8f81 100644
--- a/pkgs/applications/video/kodi-packages/steam-launcher/default.nix
+++ b/pkgs/applications/video/kodi/addons/steam-launcher/default.nix
diff --git a/pkgs/applications/video/kodi-packages/steam-library/default.nix b/pkgs/applications/video/kodi/addons/steam-library/default.nix
index fe772c9f732..fe772c9f732 100644
--- a/pkgs/applications/video/kodi-packages/steam-library/default.nix
+++ b/pkgs/applications/video/kodi/addons/steam-library/default.nix
diff --git a/pkgs/applications/video/kodi-packages/svtplay/default.nix b/pkgs/applications/video/kodi/addons/svtplay/default.nix
index db4fbb642c0..db4fbb642c0 100644
--- a/pkgs/applications/video/kodi-packages/svtplay/default.nix
+++ b/pkgs/applications/video/kodi/addons/svtplay/default.nix
diff --git a/pkgs/applications/video/kodi-packages/urllib3/default.nix b/pkgs/applications/video/kodi/addons/urllib3/default.nix
index de0fbb99765..de0fbb99765 100644
--- a/pkgs/applications/video/kodi-packages/urllib3/default.nix
+++ b/pkgs/applications/video/kodi/addons/urllib3/default.nix
diff --git a/pkgs/applications/video/kodi-packages/vfs-libarchive/default.nix b/pkgs/applications/video/kodi/addons/vfs-libarchive/default.nix
index 2db17f17aba..2db17f17aba 100644
--- a/pkgs/applications/video/kodi-packages/vfs-libarchive/default.nix
+++ b/pkgs/applications/video/kodi/addons/vfs-libarchive/default.nix
diff --git a/pkgs/applications/video/kodi-packages/vfs-sftp/default.nix b/pkgs/applications/video/kodi/addons/vfs-sftp/default.nix
index e41f008281a..e41f008281a 100644
--- a/pkgs/applications/video/kodi-packages/vfs-sftp/default.nix
+++ b/pkgs/applications/video/kodi/addons/vfs-sftp/default.nix
diff --git a/pkgs/applications/video/kodi-packages/websocket/default.nix b/pkgs/applications/video/kodi/addons/websocket/default.nix
index 423dfa73f34..423dfa73f34 100644
--- a/pkgs/applications/video/kodi-packages/websocket/default.nix
+++ b/pkgs/applications/video/kodi/addons/websocket/default.nix
diff --git a/pkgs/applications/video/kodi-packages/youtube/default.nix b/pkgs/applications/video/kodi/addons/youtube/default.nix
index 090e09d55ef..090e09d55ef 100644
--- a/pkgs/applications/video/kodi-packages/youtube/default.nix
+++ b/pkgs/applications/video/kodi/addons/youtube/default.nix
diff --git a/pkgs/applications/video/qmplay2/default.nix b/pkgs/applications/video/qmplay2/default.nix
index 538f540c63b..9dd1e98ea92 100644
--- a/pkgs/applications/video/qmplay2/default.nix
+++ b/pkgs/applications/video/qmplay2/default.nix
@@ -22,13 +22,13 @@
 }:
 stdenv.mkDerivation rec {
   pname = "qmplay2";
-  version = "21.06.07";
+  version = "21.12.07";
 
   src = fetchFromGitHub {
     owner = "zaps166";
     repo = "QMPlay2";
     rev = version;
-    sha256 = "sha256-NV9uglYnqebXhMx8uL0DhGe9l5TBVjlSIaB4IWC8YAc=";
+    sha256 = "sha256-iFT88CTz7L7tnNmpe/HaeTrHiE8l0Jk+r0c6O7wJ7N8=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/video/vlc/default.nix b/pkgs/applications/video/vlc/default.nix
index ce9a72aebf9..5ef62ff6b46 100644
--- a/pkgs/applications/video/vlc/default.nix
+++ b/pkgs/applications/video/vlc/default.nix
@@ -7,8 +7,8 @@
 , mpeg2dec, systemd, gnutls, avahi, libcddb, libjack2, SDL, SDL_image
 , libmtp, unzip, taglib, libkate, libtiger, libv4l, samba, libssh2, liboggz
 , libass, libva, libdvbpsi, libdc1394, libraw1394, libopus
-, libvdpau, libsamplerate, live555, fluidsynth, wayland, wayland-protocols
-, ncurses, srt
+, libvdpau, libsamplerate, libspatialaudio, live555, fluidsynth
+, wayland, wayland-protocols, ncurses, srt
 , onlyLibVLC ? false
 , withQt5 ? true, qtbase, qtsvg, qtx11extras, wrapQtAppsHook
 , jackSupport ? false
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
     libkate libtiger libv4l samba libssh2 liboggz libass libdvbpsi libva
     xorg.xlibsWrapper xorg.libXv xorg.libXvMC xorg.libXpm xorg.xcbutilkeysyms
     libdc1394 libraw1394 libopus libebml libmatroska libvdpau libsamplerate
-    fluidsynth wayland wayland-protocols ncurses srt
+    libspatialaudio fluidsynth wayland wayland-protocols ncurses srt
   ] ++ optional (!stdenv.hostPlatform.isAarch64 && !stdenv.hostPlatform.isAarch32) live555
     ++ optionals withQt5    [ qtbase qtsvg qtx11extras ]
     ++ optionals skins2Support (with xorg; [ libXpm freetype libXext libXinerama ])
@@ -101,6 +101,12 @@ stdenv.mkDerivation rec {
     sed -i 's|^#define CONFIGURE_LINE.*$|#define CONFIGURE_LINE "<removed>"|g' config.h
   '';
 
+  # Add missing SOFA files
+  # Given in EXTRA_DIST, but not in install-data target
+  postInstall = ''
+    cp -R share/hrtfs $out/share/vlc
+  '';
+
   meta = with lib; {
     description = "Cross-platform media player and streaming server";
     homepage = "http://www.videolan.org/vlc/";
diff --git a/pkgs/applications/virtualization/buildkit-nix/default.nix b/pkgs/applications/virtualization/buildkit-nix/default.nix
new file mode 100644
index 00000000000..f9a2ba34f09
--- /dev/null
+++ b/pkgs/applications/virtualization/buildkit-nix/default.nix
@@ -0,0 +1,27 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "buildkit-nix";
+  version = "0.0.1";
+
+  src = fetchFromGitHub {
+    owner = "AkihiroSuda";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-Bdw7kYAZmRf1VOJ8y7JISQbAo0vLjWlo0j5x+VD9lSU=";
+  };
+
+  vendorSha256 = "sha256-c+VHt2uTaEQIXsmJ9TA7X5lfMxGL9yKbbnnXn4drCLU=";
+
+  CGO_ENABLED = 0;
+
+  ldflags = [ "-s" "-w" ];
+
+  meta = with lib; {
+    description = "Nix frontend for BuildKit";
+    homepage = "https://github.com/AkihiroSuda/buildkit-nix/";
+    license = licenses.asl20;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ lesuisse ];
+  };
+}
diff --git a/pkgs/applications/virtualization/cloud-hypervisor/default.nix b/pkgs/applications/virtualization/cloud-hypervisor/default.nix
index 7b45656c5e9..f68c1ddc8a5 100644
--- a/pkgs/applications/virtualization/cloud-hypervisor/default.nix
+++ b/pkgs/applications/virtualization/cloud-hypervisor/default.nix
@@ -2,19 +2,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cloud-hypervisor";
-  version = "20.0";
+  version = "20.1";
 
   src = fetchFromGitHub {
     owner = "cloud-hypervisor";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1j2p2phv1fxsa2mdr66gyswqgij33m3sdaa460xrf98dm581bqw2";
+    sha256 = "1r55ykxwa0xr1f9sp7mnv8nqf0dr7vw62b1w8r7mmyrndwnq6z5b";
   };
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl ] ++ lib.optional stdenv.isAarch64 dtc;
 
-  cargoSha256 = "12fmpq1y29mawa3xdwbwa3fw2hnhy5rqhlx54qp0s3x9g2jd7gsa";
+  cargoSha256 = "07wpfhlp82hp3hr8vc52vhkrxd8xpyvdvfqh1dn1fnhxk3b1z7lz";
 
   meta = with lib; {
     homepage = "https://github.com/cloud-hypervisor/cloud-hypervisor";
diff --git a/pkgs/applications/virtualization/docker-slim/default.nix b/pkgs/applications/virtualization/docker-slim/default.nix
index ebfaac0bde1..cd8a1f5041a 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.37.2";
+  version = "1.37.3";
 
   goPackagePath = "github.com/docker-slim/docker-slim";
 
@@ -14,7 +14,7 @@ buildGoPackage rec {
     owner = "docker-slim";
     repo = "docker-slim";
     rev = version;
-    sha256 = "1svhi9xf71zrk843bnwkpmq4iaaln07dpfrdvq0vdqhj5xvbx47g";
+    sha256 = "sha256-jzwQ3nrhLDiQXcVkPiXrRAmpLQOD8ILBnoCEUiEbxzw=";
   };
 
   subPackages = [ "cmd/docker-slim" "cmd/docker-slim-sensor" ];
diff --git a/pkgs/applications/virtualization/lima/default.nix b/pkgs/applications/virtualization/lima/default.nix
index f22109b791d..d6eba5f1029 100644
--- a/pkgs/applications/virtualization/lima/default.nix
+++ b/pkgs/applications/virtualization/lima/default.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "lima";
-  version = "0.7.4";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "lima-vm";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-pn8GtFAZMQyFjOpn6blNBoDgQL7X1gaYjGsQHwvMzaQ=";
+    sha256 = "sha256-bO7o3z9E7mGiUtlqI+mhhh+D6CG9j3BZ7IB8o/LDUPM=";
   };
 
-  vendorSha256 = "sha256-egZFJSGnFYfOcBMNNEsPV6ngf3ddoYCSntnuloYfpxo=";
+  vendorSha256 = "sha256-MDmRkGa1m3YuUbffCwoChG0Fg74jyuQQ6ljfDlLatjI=";
 
   nativeBuildInputs = [ makeWrapper installShellFiles ];
 
diff --git a/pkgs/applications/window-managers/phosh/default.nix b/pkgs/applications/window-managers/phosh/default.nix
index 2971bdeb57c..e1f805662c6 100644
--- a/pkgs/applications/window-managers/phosh/default.nix
+++ b/pkgs/applications/window-managers/phosh/default.nix
@@ -30,7 +30,7 @@
 
 stdenv.mkDerivation rec {
   pname = "phosh";
-  version = "0.14.0";
+  version = "0.14.1";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
     repo = pname;
     rev = "v${version}";
     fetchSubmodules = true; # including gvc and libcall-ui which are designated as subprojects
-    sha256 = "sha256-pN2IWJDsQoTSOUki5gKhIucFYlYchzrqKHQYq6o4EkI=";
+    sha256 = "sha256-FILSNVBYpWSPXeDb1Vc4jZ7zJMg0Gj6EY5yoc81gUr0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/build-support/build-dotnet-module/default.nix b/pkgs/build-support/build-dotnet-module/default.nix
index 7e56e70bf8b..93077f438bf 100644
--- a/pkgs/build-support/build-dotnet-module/default.nix
+++ b/pkgs/build-support/build-dotnet-module/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenvNoCC, linkFarmFromDrvs, makeWrapper, fetchurl, xml2, dotnetCorePackages, dotnetPackages, cacert }:
+{ lib, stdenvNoCC, linkFarmFromDrvs, nuget-to-nix, writeScript, makeWrapper, fetchurl, xml2, dotnetCorePackages, dotnetPackages, cacert }:
 
 { name ? "${args.pname}-${args.version}"
 , enableParallelBuilding ? true
@@ -28,7 +28,7 @@
 # The packages project file, which contains instructions on how to compile it. This can be an array of multiple project files as well.
 , projectFile ? null
 # The NuGet dependency file. This locks all NuGet dependency versions, as otherwise they cannot be deterministically fetched.
-# This can be generated using the `nuget-to-nix` tool.
+# This can be generated by running the `passthru.fetch-deps` script.
 , nugetDeps ? null
 # A list of derivations containing nupkg packages for local project references.
 # Referenced derivations can be built with `buildDotnetModule` with `packNupkg=true` flag.
@@ -63,7 +63,7 @@ assert projectFile == null -> throw "Defining the `projectFile` attribute is req
 
 # TODO: Automatically generate a dependency file when a lockfile is present.
 # This file is unfortunately almost never present, as Microsoft recommands not to push this in upstream repositories.
-assert nugetDeps == null -> throw "Defining the `nugetDeps` attribute is required, as to lock the NuGet dependencies. This file can be generated using the `nuget-to-nix` tool.";
+assert nugetDeps == null -> throw "Defining the `nugetDeps` attribute is required, as to lock the NuGet dependencies. This file can be generated by running the `passthru.fetch-deps` script.";
 
 let
   _nugetDeps = linkFarmFromDrvs "${name}-nuget-deps" (import nugetDeps {
@@ -113,6 +113,41 @@ let
     DOTNET_NOLOGO = true; # This disables the welcome message.
     DOTNET_CLI_TELEMETRY_OPTOUT = true;
 
+    passthru.fetch-deps = args.passthru.fetch-deps or writeScript "fetch-${args.pname}-deps" ''
+      set -euo pipefail
+      cd "$(dirname "''${BASH_SOURCE[0]}")"
+
+      export HOME=$(mktemp -d)
+      deps_file="/tmp/${args.pname}-deps.nix"
+
+      store_src="${package.src}"
+      src="$(mktemp -d /tmp/${args.pname}.XXX)"
+      cp -rT "$store_src" "$src"
+      chmod -R +w "$src"
+
+      trap "rm -rf $src $HOME" EXIT
+      pushd "$src"
+
+      export DOTNET_NOLOGO=1
+      export DOTNET_CLI_TELEMETRY_OPTOUT=1
+
+      mkdir -p "$HOME/nuget_pkgs"
+
+      for project in "${lib.concatStringsSep "\" \"" (lib.toList projectFile)}"; do
+        ${dotnet-sdk}/bin/dotnet restore "$project" \
+          ${lib.optionalString (!enableParallelBuilding) "--disable-parallel"} \
+          -p:ContinuousIntegrationBuild=true \
+          -p:Deterministic=true \
+          --packages "$HOME/nuget_pkgs" \
+          "''${dotnetRestoreFlags[@]}" \
+          "''${dotnetFlags[@]}"
+      done
+
+      echo "Writing lockfile..."
+      ${nuget-to-nix}/bin/nuget-to-nix "$HOME/nuget_pkgs" > "$deps_file"
+      echo "Succesfully wrote lockfile to: $deps_file"
+    '';
+
     configurePhase = args.configurePhase or ''
       runHook preConfigure
 
diff --git a/pkgs/build-support/docker/default.nix b/pkgs/build-support/docker/default.nix
index 9a20df57777..1b6c340f7f0 100644
--- a/pkgs/build-support/docker/default.nix
+++ b/pkgs/build-support/docker/default.nix
@@ -240,7 +240,7 @@ rec {
           # Unpack all of the parent layers into the image.
           lowerdir=""
           extractionID=0
-          for layerTar in $(tac layer-list); do
+          for layerTar in $(cat layer-list); do
             echo "Unpacking layer $layerTar"
             extractionID=$((extractionID + 1))
 
diff --git a/pkgs/build-support/docker/examples.nix b/pkgs/build-support/docker/examples.nix
index f2d4f809ae4..941ee048666 100644
--- a/pkgs/build-support/docker/examples.nix
+++ b/pkgs/build-support/docker/examples.nix
@@ -405,6 +405,29 @@ rec {
     created = "now";
   };
 
+  # 23. Ensure that layers are unpacked in the correct order before the
+  # runAsRoot script is executed.
+  layersUnpackOrder =
+  let
+    layerOnTopOf = parent: layerName:
+      pkgs.dockerTools.buildImage {
+        name = "layers-unpack-order-${layerName}";
+        tag = "latest";
+        fromImage = parent;
+        contents = [ pkgs.coreutils ];
+        runAsRoot = ''
+          #!${pkgs.runtimeShell}
+          echo -n "${layerName}" >> /layer-order
+        '';
+      };
+    # When executing the runAsRoot script when building layer C, if layer B is
+    # not unpacked on top of layer A, the contents of /layer-order will not be
+    # "ABC".
+    layerA = layerOnTopOf null   "a";
+    layerB = layerOnTopOf layerA "b";
+    layerC = layerOnTopOf layerB "c";
+  in layerC;
+
   # buildImage without explicit tag
   bashNoTag = pkgs.dockerTools.buildImage {
     name = "bash-no-tag";
diff --git a/pkgs/build-support/emacs/generic.nix b/pkgs/build-support/emacs/generic.nix
index ef154982ad0..1b81dbcf9ed 100644
--- a/pkgs/build-support/emacs/generic.nix
+++ b/pkgs/build-support/emacs/generic.nix
@@ -86,7 +86,7 @@ stdenv.mkDerivation ({
 
     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"
+          "emacs --batch --eval '(setq large-file-warning-threshold nil)' -f batch-native-compile {} || true"
   '';
 }
 
diff --git a/pkgs/build-support/emacs/melpa2nix.el b/pkgs/build-support/emacs/melpa2nix.el
index bd2aadd5aeb..383423af081 100644
--- a/pkgs/build-support/emacs/melpa2nix.el
+++ b/pkgs/build-support/emacs/melpa2nix.el
@@ -8,6 +8,9 @@
 (setq package-build-archive-dir (expand-file-name "packages/"))
 (setq package-build-recipes-dir (expand-file-name "recipes/"))
 
+;; Allow installing package tarfiles larger than 10MB
+(setq large-file-warning-threshold nil)
+
 (defun melpa2nix-build-package ()
   (if (not noninteractive)
       (error "`melpa2nix-build-package' is to be used only with -batch"))
diff --git a/pkgs/build-support/setup-hooks/make-binary-wrapper.sh b/pkgs/build-support/setup-hooks/make-binary-wrapper.sh
index abc929cb89d..986be5b9e11 100644
--- a/pkgs/build-support/setup-hooks/make-binary-wrapper.sh
+++ b/pkgs/build-support/setup-hooks/make-binary-wrapper.sh
@@ -33,13 +33,20 @@ assertExecutable() {
 # To troubleshoot a binary wrapper after you compiled it,
 # use the `strings` command or open the binary file in a text editor.
 makeWrapper() {
-    assertExecutable "$1"
-    makeDocumentedCWrapper "$1" "${@:3}" | \
+    local original="$1"
+    local wrapper="$2"
+    shift 2
+
+    assertExecutable "$original"
+
+    mkdir -p "$(dirname "$wrapper")"
+
+    makeDocumentedCWrapper "$original" "$@" | \
       @CC@ \
         -Wall -Werror -Wpedantic \
         -Os \
         -x c \
-        -o "$2" -
+        -o "$wrapper" -
 }
 
 # Syntax: wrapProgram <PROGRAM> <MAKE-WRAPPER FLAGS...>
diff --git a/pkgs/build-support/vm/default.nix b/pkgs/build-support/vm/default.nix
index 20df74d3666..84222eca98b 100644
--- a/pkgs/build-support/vm/default.nix
+++ b/pkgs/build-support/vm/default.nix
@@ -114,7 +114,7 @@ rec {
 
     echo "mounting Nix store..."
     mkdir -p /fs${storeDir}
-    mount -t 9p store /fs${storeDir} -o trans=virtio,version=9p2000.L,cache=loose
+    mount -t 9p store /fs${storeDir} -o trans=virtio,version=9p2000.L,cache=loose,msize=131072
 
     mkdir -p /fs/tmp /fs/run /fs/var
     mount -t tmpfs -o "mode=1777" none /fs/tmp
@@ -123,7 +123,7 @@ rec {
 
     echo "mounting host's temporary directory..."
     mkdir -p /fs/tmp/xchg
-    mount -t 9p xchg /fs/tmp/xchg -o trans=virtio,version=9p2000.L
+    mount -t 9p xchg /fs/tmp/xchg -o trans=virtio,version=9p2000.L,msize=131072
 
     mkdir -p /fs/proc
     mount -t proc none /fs/proc
diff --git a/pkgs/build-support/writers/aliases.nix b/pkgs/build-support/writers/aliases.nix
new file mode 100644
index 00000000000..fb108a6fd85
--- /dev/null
+++ b/pkgs/build-support/writers/aliases.nix
@@ -0,0 +1,35 @@
+lib: prev:
+
+let
+  # Removing recurseForDerivation prevents derivations of aliased attribute
+  # set to appear while listing all the packages available.
+  removeRecurseForDerivations = alias: with lib;
+    if alias.recurseForDerivations or false then
+      removeAttrs alias ["recurseForDerivations"]
+    else alias;
+
+  # Disabling distribution prevents top-level aliases for non-recursed package
+  # sets from building on Hydra.
+  removeDistribute = alias: with lib;
+    if isDerivation alias then
+      dontDistribute alias
+    else alias;
+
+  # Make sure that we are not shadowing something from
+  # writers.
+  checkInPkgs = n: alias: if builtins.hasAttr n prev
+                          then throw "Alias ${n} is still in writers"
+                          else alias;
+
+  mapAliases = aliases:
+    lib.mapAttrs (n: alias: removeDistribute
+                             (removeRecurseForDerivations
+                              (checkInPkgs n alias)))
+                     aliases;
+
+in
+mapAliases ({
+  /* Cleanup before 22.05, Added 2021-12-11 */
+  writePython2 = "Python 2 is EOL and the use of writers.writePython2 is deprecated.";
+  writePython2Bin = "Python 2 is EOL and the use of writers.writePython2Bin is deprecated.";
+})
diff --git a/pkgs/build-support/writers/default.nix b/pkgs/build-support/writers/default.nix
index 3797df56afa..30301e3b2e5 100644
--- a/pkgs/build-support/writers/default.nix
+++ b/pkgs/build-support/writers/default.nix
@@ -1,7 +1,9 @@
-{ pkgs, buildPackages, lib, stdenv, libiconv, gawk, gnused, gixy }:
+{ pkgs, config, buildPackages, lib, stdenv, libiconv, gawk, gnused, gixy }:
 
-with lib;
-rec {
+let
+  aliases = if (config.allowAliases or true) then (import ./aliases.nix lib) else prev: {};
+
+  writers = with lib; rec {
   # Base implementation for non-compiled executables.
   # Takes an interpreter, for example `${pkgs.bash}/bin/bash`
   #
@@ -245,11 +247,11 @@ rec {
     '');
   } name;
 
-  # writePython2 takes a name an attributeset with libraries and some python2 sourcecode and
+  # writePyPy2 takes a name an attributeset with libraries and some pypy2 sourcecode and
   # returns an executable
   #
   # Example:
-  # writePython2 "test_python2" { libraries = [ pkgs.python2Packages.enum ]; } ''
+  # writePyPy2 "test_pypy2" { libraries = [ pkgs.pypy2Packages.enum ]; } ''
   #   from enum import Enum
   #
   #   class Test(Enum):
@@ -257,11 +259,11 @@ rec {
   #
   #   print Test.a
   # ''
-  writePython2 = makePythonWriter pkgs.python2 pkgs.python2Packages;
+  writePyPy2 = makePythonWriter pkgs.pypy2 pkgs.pypy2Packages;
 
-  # writePython2Bin takes the same arguments as writePython2 but outputs a directory (like writeScriptBin)
-  writePython2Bin = name:
-    writePython2 "/bin/${name}";
+  # writePyPy2Bin takes the same arguments as writePyPy2 but outputs a directory (like writeScriptBin)
+  writePyPy2Bin = name:
+    writePyPy2 "/bin/${name}";
 
   # writePython3 takes a name an attributeset with libraries and some python3 sourcecode and
   # returns an executable
@@ -280,4 +282,25 @@ rec {
   # writePython3Bin takes the same arguments as writePython3 but outputs a directory (like writeScriptBin)
   writePython3Bin = name:
     writePython3 "/bin/${name}";
-}
+
+  # writePyPy3 takes a name an attributeset with libraries and some pypy3 sourcecode and
+  # returns an executable
+  #
+  # Example:
+  # writePyPy3 "test_pypy3" { libraries = [ pkgs.pypy3Packages.pyyaml ]; } ''
+  #   import yaml
+  #
+  #   y = yaml.load("""
+  #     - test: success
+  #   """)
+  #   print(y[0]['test'])
+  # ''
+  writePyPy3 = makePythonWriter pkgs.pypy3 pkgs.pypy3Packages;
+
+  # writePyPy3Bin takes the same arguments as writePyPy3 but outputs a directory (like writeScriptBin)
+  writePyPy3Bin = name:
+    writePyPy3 "/bin/${name}";
+
+};
+in
+writers // (aliases writers)
diff --git a/pkgs/build-support/writers/test.nix b/pkgs/build-support/writers/test.nix
index 69bc7dd2c61..decd7e42d5c 100644
--- a/pkgs/build-support/writers/test.nix
+++ b/pkgs/build-support/writers/test.nix
@@ -3,8 +3,9 @@
 , lib
 , nodePackages
 , perlPackages
-, python2Packages
+, pypy2Packages
 , python3Packages
+, pypy3Packages
 , runCommand
 , writers
 , writeText
@@ -54,7 +55,7 @@ let
       print "success\n" if true;
     '';
 
-    python2 = writePython2Bin "test-writers-python2-bin" { libraries = [ python2Packages.enum ]; } ''
+    pypy2 = writePyPy2Bin "test-writers-pypy2-bin" { libraries = [ pypy2Packages.enum ]; } ''
       from enum import Enum
 
 
@@ -73,6 +74,15 @@ let
       """)
       print(y[0]['test'])
     '';
+
+    pypy3 = writePyPy3Bin "test-writers-pypy3-bin" { libraries = [ pypy3Packages.pyyaml ]; } ''
+      import yaml
+
+      y = yaml.load("""
+        - test: success
+      """)
+      print(y[0]['test'])
+    '';
   };
 
   simple = {
@@ -111,7 +121,7 @@ let
       print "success\n" if true;
     '';
 
-    python2 = writePython2 "test-writers-python2" { libraries = [ python2Packages.enum ]; } ''
+    pypy2 = writePyPy2 "test-writers-pypy2" { libraries = [ pypy2Packages.enum ]; } ''
       from enum import Enum
 
 
@@ -131,13 +141,26 @@ let
       print(y[0]['test'])
     '';
 
-    python2NoLibs = writePython2 "test-writers-python2-no-libs" {} ''
+    pypy3 = writePyPy3 "test-writers-pypy3" { libraries = [ pypy3Packages.pyyaml ]; } ''
+      import yaml
+
+      y = yaml.load("""
+        - test: success
+      """)
+      print(y[0]['test'])
+    '';
+
+    pypy2NoLibs = writePyPy2 "test-writers-pypy2-no-libs" {} ''
       print("success")
     '';
 
     python3NoLibs = writePython3 "test-writers-python3-no-libs" {} ''
       print("success")
     '';
+
+    pypy3NoLibs = writePyPy3 "test-writers-pypy3-no-libs" {} ''
+      print("success")
+    '';
   };
 
 
diff --git a/pkgs/data/documentation/s6-man-pages/default.nix b/pkgs/data/documentation/s6-man-pages/default.nix
index d38df8cf037..db4d05a91b0 100644
--- a/pkgs/data/documentation/s6-man-pages/default.nix
+++ b/pkgs/data/documentation/s6-man-pages/default.nix
@@ -2,8 +2,8 @@
 
 buildManPages {
   pname = "s6-man-pages";
-  version = "2.11.0.0.2";
-  sha256 = "1ddab4l4wwrg2jdcrdqp1rx8dzbzbdsvx4mzayraxva4q97d1g9r";
+  version = "2.11.0.0.5";
+  sha256 = "03gl0vvdaqfb5hs0dfdbs9djxiyq3abcx9vwgkfw22b1rm2fa0r6";
   description = "Port of the documentation for the s6 supervision suite to mdoc";
   maintainers = [ lib.maintainers.sternenseemann ];
 }
diff --git a/pkgs/data/fonts/unfonts-core/default.nix b/pkgs/data/fonts/unfonts-core/default.nix
new file mode 100644
index 00000000000..7f01d5531e1
--- /dev/null
+++ b/pkgs/data/fonts/unfonts-core/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchzip }:
+
+let
+  pname = "unfonts-core";
+  version = "1.0.2-080608";
+in fetchzip {
+  name = "${pname}-${version}";
+  url = "https://kldp.net/unfonts/release/2607-un-fonts-core-${version}.tar.gz";
+  hash = "sha256-k9C7d/SbVLWFzRnDWpOIMtY6cAEIcaLcbxQAqjwuWds=";
+
+  postFetch = ''
+    tar -xzf $downloadedFile --strip-components=1
+    install -m444 -Dt $out/share/fonts/truetype *.ttf
+  '';
+
+  meta = with lib; {
+    homepage = "https://kldp.net/unfonts/";
+    description = "Korean Hangul typeface collection";
+    longDescription = ''
+      The Un-fonts come from the HLaTeX as type1 fonts in 1998 by Koaunghi Un, he made type1 fonts to use with Korean TeX (HLaTeX) in the late 1990's and released it under the GPL license.
+
+      They were converted to TrueType with the FontForge (PfaEdit) by Won-kyu Park in 2003.
+          '';
+    license = licenses.gpl2;
+    platforms = platforms.all;
+    maintainers = [ maintainers.ehmry ];
+  };
+}
diff --git a/pkgs/data/icons/luna-icons/default.nix b/pkgs/data/icons/luna-icons/default.nix
index 70cacaf7fa6..3d87e9577d5 100644
--- a/pkgs/data/icons/luna-icons/default.nix
+++ b/pkgs/data/icons/luna-icons/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "luna-icons";
-  version = "1.7";
+  version = "1.8";
 
   src = fetchFromGitHub {
     owner = "darkomarko42";
     repo = pname;
     rev = version;
-    sha256 = "sha256-L8bkO2zGEXfwqoWZRDCm/PdBxwedkx57kduwlMoyAME=";
+    sha256 = "1c317ac43ff70sxn1syx20qhs4nkccv6hbf69fmi3acswqsll1z4";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/data/misc/hackage/pin.json b/pkgs/data/misc/hackage/pin.json
index 9efdd76ce23..b5d5b4f4290 100644
--- a/pkgs/data/misc/hackage/pin.json
+++ b/pkgs/data/misc/hackage/pin.json
@@ -1,6 +1,6 @@
 {
-  "commit": "5b1efa929ec68b76f8e84df53bf48b6e4a392feb",
-  "url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/5b1efa929ec68b76f8e84df53bf48b6e4a392feb.tar.gz",
-  "sha256": "1azja4gm6yy8zs0fjfiscjamfn13w4wp9wwadqhzhv0dmisg9y8v",
-  "msg": "Update from Hackage at 2021-12-08T21:36:39Z"
+  "commit": "45e72928a9053df2938492a535a1b4351251d82f",
+  "url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/45e72928a9053df2938492a535a1b4351251d82f.tar.gz",
+  "sha256": "1a87yf9bly5ayldgrkakyipxfkk7h9ifqb4dpd8l1f9zb1csdg1x",
+  "msg": "Update from Hackage at 2021-12-09T20:50:23Z"
 }
diff --git a/pkgs/data/misc/v2ray-domain-list-community/default.nix b/pkgs/data/misc/v2ray-domain-list-community/default.nix
index c0a41a39cd2..e3385983f04 100644
--- a/pkgs/data/misc/v2ray-domain-list-community/default.nix
+++ b/pkgs/data/misc/v2ray-domain-list-community/default.nix
@@ -1,7 +1,7 @@
-{ stdenv, buildGoModule, fetchFromGitHub, lib }:
+{ stdenv, pkgsBuildBuild, fetchFromGitHub, lib }:
 
 let
-  generator = buildGoModule rec {
+  generator = pkgsBuildBuild.buildGoModule rec {
     pname = "v2ray-domain-list-community";
     version = "20211119143108";
     src = fetchFromGitHub {
diff --git a/pkgs/data/misc/v2ray-geoip/default.nix b/pkgs/data/misc/v2ray-geoip/default.nix
index 7187dec537a..2f3a516de07 100644
--- a/pkgs/data/misc/v2ray-geoip/default.nix
+++ b/pkgs/data/misc/v2ray-geoip/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "v2ray-geoip";
-  version = "202112090029";
+  version = "202112160030";
 
   src = fetchFromGitHub {
     owner = "v2fly";
     repo = "geoip";
-    rev = "97f4acb31d926ae31bb3cdc5c8948d8dcdddca79";
-    sha256 = "sha256-kYMp/D7xVpBTu35YXq45bR2XebpVOW57UAc7H/6px/U=";
+    rev = "4d86284b91a444c2ca989207f8f08a1c8798c95c";
+    sha256 = "sha256-pv+oZVMROr7gyGcv60jIP8INt4vBAnUJT0FJNNn+Czc=";
   };
 
   installPhase = ''
diff --git a/pkgs/data/themes/flat-remix-gtk/default.nix b/pkgs/data/themes/flat-remix-gtk/default.nix
index 722c3cbc41e..813fba61dde 100644
--- a/pkgs/data/themes/flat-remix-gtk/default.nix
+++ b/pkgs/data/themes/flat-remix-gtk/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "flat-remix-gtk";
-  version = "20211130";
+  version = "20211201";
 
   src = fetchFromGitHub {
     owner = "daniruiz";
     repo = pname;
     rev = version;
-    sha256 = "0n6djx346bzk558yd9nk0r6hqszcbkj0h1pv2n8n15ps2j9lyvw8";
+    sha256 = "sha256-JxvCdmExDh9t5UZKqF936SiT/PYxAJpGgY1Hgh8ykzw=";
   };
 
   dontBuild = true;
diff --git a/pkgs/data/themes/marwaita/default.nix b/pkgs/data/themes/marwaita/default.nix
index 5676d03abee..7a1b79d6d97 100644
--- a/pkgs/data/themes/marwaita/default.nix
+++ b/pkgs/data/themes/marwaita/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "marwaita";
-  version = "11.3";
+  version = "12.0";
 
   src = fetchFromGitHub {
     owner = "darkomarko42";
     repo = pname;
     rev = version;
-    sha256 = "sha256-7l3fvqhMMJyv27yv/jShju0hL5AAvHk8pmISj/oyUP4=";
+    sha256 = "10mf1cbm6a9k0b1vcafy3jb7kicpvnf6xqmn1dfxwsq3k81mmy7d";
   };
 
   buildInputs = [
diff --git a/pkgs/desktops/cinnamon/xreader/default.nix b/pkgs/desktops/cinnamon/xreader/default.nix
index 83fae17906e..147c36cbda4 100644
--- a/pkgs/desktops/cinnamon/xreader/default.nix
+++ b/pkgs/desktops/cinnamon/xreader/default.nix
@@ -26,13 +26,13 @@
 
 stdenv.mkDerivation rec {
   pname = "xreader";
-  version = "3.2.1";
+  version = "3.2.2";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    sha256 = "sha256-Ghltzoq5m27LvAojV5/aLiJL3ZvIXSnRjYtdvfRM0a8=";
+    sha256 = "sha256-rAPc4RF2uXp1hI8/8PXDYy3DnL5vNR8rF/EEixO0FXI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/core/epiphany/default.nix b/pkgs/desktops/gnome/core/epiphany/default.nix
index 6f996552064..0baab20acec 100644
--- a/pkgs/desktops/gnome/core/epiphany/default.nix
+++ b/pkgs/desktops/gnome/core/epiphany/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , meson
 , ninja
 , gettext
@@ -40,21 +41,14 @@
 
 stdenv.mkDerivation rec {
   pname = "epiphany";
-  version = "41.0";
+  version = "41.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "s50YJUkllbC3TF1qZoaoV/lBnfpMAvgBPCl7yHDibdA=";
+    sha256 = "ugEmjuVPMY39rC4B66OKP8lpQMHL9kDtJhOuKfi8ua0=";
   };
 
-  patches = [
-    # tab-view: Update close button position on startup
-    # https://gitlab.gnome.org/GNOME/epiphany/-/merge_requests/1025
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/epiphany/-/commit/6e9d6d3cf7fa7ddf21a70e9816a5cd4767a79523.patch";
-      sha256 = "sha256-lBVliGCIKwTvsYnWjAcmJxhTg1HS/2x4wlOh+4sx/xQ=";
-    })
-  ] ++ lib.optionals withPantheon [
+  patches = lib.optionals withPantheon [
     # Pantheon specific patches for epiphany
     # https://github.com/elementary/browser
     #
diff --git a/pkgs/desktops/gnome/core/gnome-desktop/default.nix b/pkgs/desktops/gnome/core/gnome-desktop/default.nix
index 766ed1b7cfb..b67a057fa3a 100644
--- a/pkgs/desktops/gnome/core/gnome-desktop/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-desktop/default.nix
@@ -75,6 +75,8 @@ stdenv.mkDerivation rec {
   mesonFlags = [
     "-Dgtk_doc=true"
     "-Ddesktop_docs=false"
+    "-Ddate_in_gnome_version=false"
+    "-Dgnome_distributor=NixOS"
   ];
 
   separateDebugInfo = stdenv.isLinux;
diff --git a/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix b/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix
index 2ab3091edec..0f35b15bee9 100644
--- a/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix
@@ -22,11 +22,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-remote-desktop";
-  version = "41.1";
+  version = "41.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    hash = "sha256-wOiJsO2BGxGAm777FzOElNj1L/USC+bj/9O65angX98=";
+    hash = "sha256-EBUeabZIwiR8XjPZou9Bn04DfuWyuuSebtasp36xulg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/extensions/extensions.json b/pkgs/desktops/gnome/extensions/extensions.json
index d2591093633..ef6ee18882e 100644
--- a/pkgs/desktops/gnome/extensions/extensions.json
+++ b/pkgs/desktops/gnome/extensions/extensions.json
@@ -59,7 +59,7 @@
 , {"uuid": "audio-output-switcher@anduchs", "name": "Audio Output Switcher", "pname": "audio-output-switcher", "description": "Adds a switch for choosing audio output to the system menu.", "link": "https://extensions.gnome.org/extension/751/audio-output-switcher/", "shell_version_map": {"38": {"version": "16", "sha256": "0wmvkczzs87zanp37hbi8adv56r0r38jl2xck3wvzss0dkdv9vni", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBzd2l0Y2ggZm9yIGNob29zaW5nIGF1ZGlvIG91dHB1dCB0byB0aGUgc3lzdGVtIG1lbnUuIiwKICAibmFtZSI6ICJBdWRpbyBPdXRwdXQgU3dpdGNoZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXVkaW8tb3V0cHV0LXN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cDovL2dpdGh1Yi5jb20vYWRheGkvYXVkaW8tb3V0cHV0LXN3aXRjaGVyIiwKICAidXVpZCI6ICJhdWRpby1vdXRwdXQtc3dpdGNoZXJAYW5kdWNocyIsCiAgInZlcnNpb24iOiAxNgp9"}, "40": {"version": "16", "sha256": "0wmvkczzs87zanp37hbi8adv56r0r38jl2xck3wvzss0dkdv9vni", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBzd2l0Y2ggZm9yIGNob29zaW5nIGF1ZGlvIG91dHB1dCB0byB0aGUgc3lzdGVtIG1lbnUuIiwKICAibmFtZSI6ICJBdWRpbyBPdXRwdXQgU3dpdGNoZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXVkaW8tb3V0cHV0LXN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cDovL2dpdGh1Yi5jb20vYWRheGkvYXVkaW8tb3V0cHV0LXN3aXRjaGVyIiwKICAidXVpZCI6ICJhdWRpby1vdXRwdXQtc3dpdGNoZXJAYW5kdWNocyIsCiAgInZlcnNpb24iOiAxNgp9"}}}
 , {"uuid": "hibernate-status@dromi", "name": "Hibernate Status Button", "pname": "hibernate-status-button", "description": "Adds a Hibernate button in Status menu. Using Alt modifier, you can also select Hybrid Sleep instead.", "link": "https://extensions.gnome.org/extension/755/hibernate-status-button/", "shell_version_map": {"38": {"version": "27", "sha256": "0yqzg2nz040vsv0ilwkjkza03qxns18gq4055gq0c3k051jy6d4v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBIaWJlcm5hdGUgYnV0dG9uIGluIFN0YXR1cyBtZW51LiBVc2luZyBBbHQgbW9kaWZpZXIsIHlvdSBjYW4gYWxzbyBzZWxlY3QgSHlicmlkIFNsZWVwIGluc3RlYWQuIiwKICAibmFtZSI6ICJIaWJlcm5hdGUgU3RhdHVzIEJ1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FyZWxhbmdlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1oaWJlcm5hdGUtc3RhdHVzIiwKICAidXVpZCI6ICJoaWJlcm5hdGUtc3RhdHVzQGRyb21pIiwKICAidmVyc2lvbiI6IDI3Cn0="}, "40": {"version": "32", "sha256": "1jx687q54n14vyn8mmlzq6yrhg5ksda3cph26wzzdhd7nz940rv7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBIaWJlcm5hdGUgYnV0dG9uIGluIFN0YXR1cyBtZW51LiBVc2luZyBBbHQgbW9kaWZpZXIsIHlvdSBjYW4gYWxzbyBzZWxlY3QgSHlicmlkIFNsZWVwIGluc3RlYWQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiaGliZXJuYXRlLXN0YXR1cy1idXR0b24iLAogICJuYW1lIjogIkhpYmVybmF0ZSBTdGF0dXMgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcmVsYW5nZS9nbm9tZS1zaGVsbC1leHRlbnNpb24taGliZXJuYXRlLXN0YXR1cyIsCiAgInV1aWQiOiAiaGliZXJuYXRlLXN0YXR1c0Bkcm9taSIsCiAgInZlcnNpb24iOiAzMgp9"}, "41": {"version": "32", "sha256": "1jx687q54n14vyn8mmlzq6yrhg5ksda3cph26wzzdhd7nz940rv7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBIaWJlcm5hdGUgYnV0dG9uIGluIFN0YXR1cyBtZW51LiBVc2luZyBBbHQgbW9kaWZpZXIsIHlvdSBjYW4gYWxzbyBzZWxlY3QgSHlicmlkIFNsZWVwIGluc3RlYWQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiaGliZXJuYXRlLXN0YXR1cy1idXR0b24iLAogICJuYW1lIjogIkhpYmVybmF0ZSBTdGF0dXMgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcmVsYW5nZS9nbm9tZS1zaGVsbC1leHRlbnNpb24taGliZXJuYXRlLXN0YXR1cyIsCiAgInV1aWQiOiAiaGliZXJuYXRlLXN0YXR1c0Bkcm9taSIsCiAgInZlcnNpb24iOiAzMgp9"}}}
 , {"uuid": "minimizeall@scharlessantos.org", "name": "Minimize All", "pname": "minimize-all", "description": "Minimize all windows in current workspace", "link": "https://extensions.gnome.org/extension/760/minimize-all/", "shell_version_map": {"38": {"version": "20", "sha256": "15v6h4wcznrylip57spjdkz0jk6y7hcp47607pj0yx5dmxjaws86", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplIGFsbCB3aW5kb3dzIGluIGN1cnJlbnQgd29ya3NwYWNlIiwKICAibmFtZSI6ICJNaW5pbWl6ZSBBbGwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc2NoYXJsZXNzYW50b3MvbWluaW1pemVhbGwiLAogICJ1dWlkIjogIm1pbmltaXplYWxsQHNjaGFybGVzc2FudG9zLm9yZyIsCiAgInZlcnNpb24iOiAyMAp9"}, "40": {"version": "20", "sha256": "15v6h4wcznrylip57spjdkz0jk6y7hcp47607pj0yx5dmxjaws86", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplIGFsbCB3aW5kb3dzIGluIGN1cnJlbnQgd29ya3NwYWNlIiwKICAibmFtZSI6ICJNaW5pbWl6ZSBBbGwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc2NoYXJsZXNzYW50b3MvbWluaW1pemVhbGwiLAogICJ1dWlkIjogIm1pbmltaXplYWxsQHNjaGFybGVzc2FudG9zLm9yZyIsCiAgInZlcnNpb24iOiAyMAp9"}}}
-, {"uuid": "fq@megh", "name": "Force Quit", "pname": "force-quit", "description": "Adds a force quit button which launches xkill.\nOn accidental click, right click to undo or click on the panel.\nCustomize position by tweaking line 47 of extension.js", "link": "https://extensions.gnome.org/extension/770/force-quit/", "shell_version_map": {"38": {"version": "18", "sha256": "1yww4xhww0lvfnxik8k5yfs9mhbsdd22g9sk26rf4qvqwyl7gjl4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBmb3JjZSBxdWl0IGJ1dHRvbiB3aGljaCBsYXVuY2hlcyB4a2lsbC5cbk9uIGFjY2lkZW50YWwgY2xpY2ssIHJpZ2h0IGNsaWNrIHRvIHVuZG8gb3IgY2xpY2sgb24gdGhlIHBhbmVsLlxuQ3VzdG9taXplIHBvc2l0aW9uIGJ5IHR3ZWFraW5nIGxpbmUgNDcgb2YgZXh0ZW5zaW9uLmpzIiwKICAibmFtZSI6ICJGb3JjZSBRdWl0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21lZ2hwcmtoL2ZvcmNlLXF1aXQvIiwKICAidXVpZCI6ICJmcUBtZWdoIiwKICAidmVyc2lvbiI6IDE4Cn0="}, "40": {"version": "20", "sha256": "1xw23rr070nvv3335fg4nbj280a5y10xsmv1xg2sfqn5gnxkj3jq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBmb3JjZSBxdWl0IGJ1dHRvbiB3aGljaCBsYXVuY2hlcyB4a2lsbC5cbk9uIGFjY2lkZW50YWwgY2xpY2ssIHJpZ2h0IGNsaWNrIHRvIHVuZG8gb3IgY2xpY2sgb24gdGhlIHBhbmVsLlxuQ3VzdG9taXplIHBvc2l0aW9uIGJ5IHR3ZWFraW5nIGxpbmUgNDcgb2YgZXh0ZW5zaW9uLmpzIiwKICAibmFtZSI6ICJGb3JjZSBRdWl0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tZWdocHJraC9mb3JjZS1xdWl0LyIsCiAgInV1aWQiOiAiZnFAbWVnaCIsCiAgInZlcnNpb24iOiAyMAp9"}, "41": {"version": "20", "sha256": "1xw23rr070nvv3335fg4nbj280a5y10xsmv1xg2sfqn5gnxkj3jq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBmb3JjZSBxdWl0IGJ1dHRvbiB3aGljaCBsYXVuY2hlcyB4a2lsbC5cbk9uIGFjY2lkZW50YWwgY2xpY2ssIHJpZ2h0IGNsaWNrIHRvIHVuZG8gb3IgY2xpY2sgb24gdGhlIHBhbmVsLlxuQ3VzdG9taXplIHBvc2l0aW9uIGJ5IHR3ZWFraW5nIGxpbmUgNDcgb2YgZXh0ZW5zaW9uLmpzIiwKICAibmFtZSI6ICJGb3JjZSBRdWl0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tZWdocHJraC9mb3JjZS1xdWl0LyIsCiAgInV1aWQiOiAiZnFAbWVnaCIsCiAgInZlcnNpb24iOiAyMAp9"}}}
+, {"uuid": "fq@megh", "name": "Force Quit", "pname": "force-quit", "description": "Adds a force quit button.\nOn accidental click, right click or press [ESC] to undo.\nCustomize position by tweaking line 50 of extension.js\n\nUPDATE: No longer depends on xkill and should work on Wayland", "link": "https://extensions.gnome.org/extension/770/force-quit/", "shell_version_map": {"38": {"version": "18", "sha256": "07ygqdzgq8q8bmsrpy4wbwgm8n5syhk0gw2pzn62ismaxkr7fqi3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBmb3JjZSBxdWl0IGJ1dHRvbi5cbk9uIGFjY2lkZW50YWwgY2xpY2ssIHJpZ2h0IGNsaWNrIG9yIHByZXNzIFtFU0NdIHRvIHVuZG8uXG5DdXN0b21pemUgcG9zaXRpb24gYnkgdHdlYWtpbmcgbGluZSA1MCBvZiBleHRlbnNpb24uanNcblxuVVBEQVRFOiBObyBsb25nZXIgZGVwZW5kcyBvbiB4a2lsbCBhbmQgc2hvdWxkIHdvcmsgb24gV2F5bGFuZCIsCiAgIm5hbWUiOiAiRm9yY2UgUXVpdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tZWdocHJraC9mb3JjZS1xdWl0LyIsCiAgInV1aWQiOiAiZnFAbWVnaCIsCiAgInZlcnNpb24iOiAxOAp9"}, "40": {"version": "21", "sha256": "0gx6vxzg8kqlqa2z5i9dazwy2bd1yfbg8ms7g84ri9hn1064l8g2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBmb3JjZSBxdWl0IGJ1dHRvbi5cbk9uIGFjY2lkZW50YWwgY2xpY2ssIHJpZ2h0IGNsaWNrIG9yIHByZXNzIFtFU0NdIHRvIHVuZG8uXG5DdXN0b21pemUgcG9zaXRpb24gYnkgdHdlYWtpbmcgbGluZSA1MCBvZiBleHRlbnNpb24uanNcblxuVVBEQVRFOiBObyBsb25nZXIgZGVwZW5kcyBvbiB4a2lsbCBhbmQgc2hvdWxkIHdvcmsgb24gV2F5bGFuZCIsCiAgIm5hbWUiOiAiRm9yY2UgUXVpdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWVnaHBya2gvZm9yY2UtcXVpdC8iLAogICJ1dWlkIjogImZxQG1lZ2giLAogICJ2ZXJzaW9uIjogMjEKfQ=="}, "41": {"version": "21", "sha256": "0gx6vxzg8kqlqa2z5i9dazwy2bd1yfbg8ms7g84ri9hn1064l8g2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBmb3JjZSBxdWl0IGJ1dHRvbi5cbk9uIGFjY2lkZW50YWwgY2xpY2ssIHJpZ2h0IGNsaWNrIG9yIHByZXNzIFtFU0NdIHRvIHVuZG8uXG5DdXN0b21pemUgcG9zaXRpb24gYnkgdHdlYWtpbmcgbGluZSA1MCBvZiBleHRlbnNpb24uanNcblxuVVBEQVRFOiBObyBsb25nZXIgZGVwZW5kcyBvbiB4a2lsbCBhbmQgc2hvdWxkIHdvcmsgb24gV2F5bGFuZCIsCiAgIm5hbWUiOiAiRm9yY2UgUXVpdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWVnaHBya2gvZm9yY2UtcXVpdC8iLAogICJ1dWlkIjogImZxQG1lZ2giLAogICJ2ZXJzaW9uIjogMjEKfQ=="}}}
 , {"uuid": "ProxySwitcher@flannaghan.com", "name": "Proxy Switcher", "pname": "proxy-switcher", "description": "Switches between the system proxy settings profiles defined in Network Settings.", "link": "https://extensions.gnome.org/extension/771/proxy-switcher/", "shell_version_map": {"40": {"version": "15", "sha256": "1vyplw3yv9904sgcjcgc8lz4py3ra59k3afsf2vc35n6vba7k91n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGJldHdlZW4gdGhlIHN5c3RlbSBwcm94eSBzZXR0aW5ncyBwcm9maWxlcyBkZWZpbmVkIGluIE5ldHdvcmsgU2V0dGluZ3MuIiwKICAibmFtZSI6ICJQcm94eSBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yMS45MSIsCiAgICAiMy4yMi4yIiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90b21mbGFubmFnaGFuL3Byb3h5LXN3aXRjaGVyIiwKICAidXVpZCI6ICJQcm94eVN3aXRjaGVyQGZsYW5uYWdoYW4uY29tIiwKICAidmVyc2lvbiI6IDE1Cn0="}, "41": {"version": "15", "sha256": "1vyplw3yv9904sgcjcgc8lz4py3ra59k3afsf2vc35n6vba7k91n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGJldHdlZW4gdGhlIHN5c3RlbSBwcm94eSBzZXR0aW5ncyBwcm9maWxlcyBkZWZpbmVkIGluIE5ldHdvcmsgU2V0dGluZ3MuIiwKICAibmFtZSI6ICJQcm94eSBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yMS45MSIsCiAgICAiMy4yMi4yIiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90b21mbGFubmFnaGFuL3Byb3h5LXN3aXRjaGVyIiwKICAidXVpZCI6ICJQcm94eVN3aXRjaGVyQGZsYW5uYWdoYW4uY29tIiwKICAidmVyc2lvbiI6IDE1Cn0="}}}
 , {"uuid": "clipboard-indicator@tudmotu.com", "name": "Clipboard Indicator", "pname": "clipboard-indicator", "description": "Clipboard Manager extension for Gnome-Shell - Adds a clipboard indicator to the top panel, and caches clipboard history.", "link": "https://extensions.gnome.org/extension/779/clipboard-indicator/", "shell_version_map": {"38": {"version": "37", "sha256": "1nd6ydp5wmd56zf3vwrsi2wflrw15krdbvqv2fkmla8rndallp1i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsaXBib2FyZCBNYW5hZ2VyIGV4dGVuc2lvbiBmb3IgR25vbWUtU2hlbGwgLSBBZGRzIGEgY2xpcGJvYXJkIGluZGljYXRvciB0byB0aGUgdG9wIHBhbmVsLCBhbmQgY2FjaGVzIGNsaXBib2FyZCBoaXN0b3J5LiIsCiAgIm5hbWUiOiAiQ2xpcGJvYXJkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1R1ZG1vdHUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNsaXBib2FyZC1pbmRpY2F0b3IiLAogICJ1dWlkIjogImNsaXBib2FyZC1pbmRpY2F0b3JAdHVkbW90dS5jb20iLAogICJ2ZXJzaW9uIjogMzcKfQ=="}, "40": {"version": "39", "sha256": "19zwg7jnf24cgqv75hzcz2a5w750kfc6yi6pn2azzknmwnsz0i7c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsaXBib2FyZCBNYW5hZ2VyIGV4dGVuc2lvbiBmb3IgR25vbWUtU2hlbGwgLSBBZGRzIGEgY2xpcGJvYXJkIGluZGljYXRvciB0byB0aGUgdG9wIHBhbmVsLCBhbmQgY2FjaGVzIGNsaXBib2FyZCBoaXN0b3J5LiIsCiAgIm5hbWUiOiAiQ2xpcGJvYXJkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVHVkbW90dS9nbm9tZS1zaGVsbC1leHRlbnNpb24tY2xpcGJvYXJkLWluZGljYXRvciIsCiAgInV1aWQiOiAiY2xpcGJvYXJkLWluZGljYXRvckB0dWRtb3R1LmNvbSIsCiAgInZlcnNpb24iOiAzOQp9"}, "41": {"version": "39", "sha256": "19zwg7jnf24cgqv75hzcz2a5w750kfc6yi6pn2azzknmwnsz0i7c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsaXBib2FyZCBNYW5hZ2VyIGV4dGVuc2lvbiBmb3IgR25vbWUtU2hlbGwgLSBBZGRzIGEgY2xpcGJvYXJkIGluZGljYXRvciB0byB0aGUgdG9wIHBhbmVsLCBhbmQgY2FjaGVzIGNsaXBib2FyZCBoaXN0b3J5LiIsCiAgIm5hbWUiOiAiQ2xpcGJvYXJkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVHVkbW90dS9nbm9tZS1zaGVsbC1leHRlbnNpb24tY2xpcGJvYXJkLWluZGljYXRvciIsCiAgInV1aWQiOiAiY2xpcGJvYXJkLWluZGljYXRvckB0dWRtb3R1LmNvbSIsCiAgInZlcnNpb24iOiAzOQp9"}}}
 , {"uuid": "pidgin@muffinmad", "name": "Pidgin IM integration", "pname": "pidgin-im-integration", "description": "Integrate Pidgin IMs in the Gnome Shell message tray", "link": "https://extensions.gnome.org/extension/782/pidgin-im-integration/", "shell_version_map": {"40": {"version": "41", "sha256": "1g2iflmb8rjzfc82yv8wcii99df5aaqx5czqkhxpf9pfsrkknhs9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZSBQaWRnaW4gSU1zIGluIHRoZSBHbm9tZSBTaGVsbCBtZXNzYWdlIHRyYXkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tcGlkZ2luIiwKICAibmFtZSI6ICJQaWRnaW4gSU0gaW50ZWdyYXRpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGlkZ2luIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tdWZmaW5tYWQvcGlkZ2luLWltLWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAicGlkZ2luQG11ZmZpbm1hZCIsCiAgInZlcnNpb24iOiA0MQp9"}, "41": {"version": "41", "sha256": "1g2iflmb8rjzfc82yv8wcii99df5aaqx5czqkhxpf9pfsrkknhs9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZSBQaWRnaW4gSU1zIGluIHRoZSBHbm9tZSBTaGVsbCBtZXNzYWdlIHRyYXkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tcGlkZ2luIiwKICAibmFtZSI6ICJQaWRnaW4gSU0gaW50ZWdyYXRpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGlkZ2luIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tdWZmaW5tYWQvcGlkZ2luLWltLWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAicGlkZ2luQG11ZmZpbm1hZCIsCiAgInZlcnNpb24iOiA0MQp9"}}}
@@ -85,7 +85,8 @@
 , {"uuid": "ping_indicator@trifonovkv.gmail.com", "name": "Ping Indicator", "pname": "ping-indicator", "description": "Display ping time", "link": "https://extensions.gnome.org/extension/923/ping-indicator/", "shell_version_map": {"38": {"version": "24", "sha256": "0arxcaxpybc1as2d9dqmmswjnjj7p11rvss4s84x6kz8i4xbhjy3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgcGluZyB0aW1lIiwKICAibmFtZSI6ICJQaW5nIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOC4xIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHJpZm9ub3Zrdi9waW5nX2luZGljYXRvciIsCiAgInV1aWQiOiAicGluZ19pbmRpY2F0b3JAdHJpZm9ub3Zrdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjQKfQ=="}}}
 , {"uuid": "transcode-appsearch@k.kubusha@gmail.com", "name": "Transcode App Search", "pname": "transcodeappsearch", "description": "Searching apps both direct and transcoded name (English, Russian, Ukrainian langs)", "link": "https://extensions.gnome.org/extension/928/transcodeappsearch/", "shell_version_map": {"38": {"version": "9", "sha256": "0ia3f8pmnyzjvg7di0cgy7n6ppbpkma6y0xlwjb8hhp5wz3a11s1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaGluZyBhcHBzIGJvdGggZGlyZWN0IGFuZCB0cmFuc2NvZGVkIG5hbWUgKEVuZ2xpc2gsIFJ1c3NpYW4sIFVrcmFpbmlhbiBsYW5ncykiLAogICJuYW1lIjogIlRyYW5zY29kZSBBcHAgU2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdGF0eWFuL2dub21lLWV4dGVuc2lvbi10cmFuc2NvZGUtc2VhcmNoYXBwIiwKICAidXVpZCI6ICJ0cmFuc2NvZGUtYXBwc2VhcmNoQGsua3VidXNoYUBnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogOQp9"}, "40": {"version": "9", "sha256": "0ia3f8pmnyzjvg7di0cgy7n6ppbpkma6y0xlwjb8hhp5wz3a11s1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaGluZyBhcHBzIGJvdGggZGlyZWN0IGFuZCB0cmFuc2NvZGVkIG5hbWUgKEVuZ2xpc2gsIFJ1c3NpYW4sIFVrcmFpbmlhbiBsYW5ncykiLAogICJuYW1lIjogIlRyYW5zY29kZSBBcHAgU2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdGF0eWFuL2dub21lLWV4dGVuc2lvbi10cmFuc2NvZGUtc2VhcmNoYXBwIiwKICAidXVpZCI6ICJ0cmFuc2NvZGUtYXBwc2VhcmNoQGsua3VidXNoYUBnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogOQp9"}, "41": {"version": "9", "sha256": "0ia3f8pmnyzjvg7di0cgy7n6ppbpkma6y0xlwjb8hhp5wz3a11s1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaGluZyBhcHBzIGJvdGggZGlyZWN0IGFuZCB0cmFuc2NvZGVkIG5hbWUgKEVuZ2xpc2gsIFJ1c3NpYW4sIFVrcmFpbmlhbiBsYW5ncykiLAogICJuYW1lIjogIlRyYW5zY29kZSBBcHAgU2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdGF0eWFuL2dub21lLWV4dGVuc2lvbi10cmFuc2NvZGUtc2VhcmNoYXBwIiwKICAidXVpZCI6ICJ0cmFuc2NvZGUtYXBwc2VhcmNoQGsua3VidXNoYUBnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogOQp9"}}}
 , {"uuid": "synaptic-button@fthx", "name": "Synaptic Button", "pname": "synaptic-button", "description": "Button that directly starts Synaptic package manager.\n\n For snap management without Snap Store, consider Snap Manager extension.", "link": "https://extensions.gnome.org/extension/938/synaptic-button/", "shell_version_map": {"38": {"version": "4", "sha256": "0wdi35qz5rxs4fvcxlrvlyslrspsgfkryvh0na9vakbvhpmv7skv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJ1dHRvbiB0aGF0IGRpcmVjdGx5IHN0YXJ0cyBTeW5hcHRpYyBwYWNrYWdlIG1hbmFnZXIuXG5cbiBGb3Igc25hcCBtYW5hZ2VtZW50IHdpdGhvdXQgU25hcCBTdG9yZSwgY29uc2lkZXIgU25hcCBNYW5hZ2VyIGV4dGVuc2lvbi4iLAogICJuYW1lIjogIlN5bmFwdGljIEJ1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvc3luYXB0aWMtYnV0dG9uIiwKICAidXVpZCI6ICJzeW5hcHRpYy1idXR0b25AZnRoeCIsCiAgInZlcnNpb24iOiA0Cn0="}}}
-, {"uuid": "cpupower@mko-sl.de", "name": "CPU Power Manager", "pname": "cpu-power-manager", "description": "Manage your CPU's frequency scaling driver", "link": "https://extensions.gnome.org/extension/945/cpu-power-manager/", "shell_version_map": {"38": {"version": "23", "sha256": "0qb4ldqpcsd7kangy6gf63pfzsq0g4p92d5gci2d6hhn7iywgskb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSB5b3VyIENQVSdzIGZyZXF1ZW5jeSBzY2FsaW5nIGRyaXZlciIsCiAgImxvY2FsZWRpciI6ICIvdXNyL2xvY2FsL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiQ1BVIFBvd2VyIE1hbmFnZXIiLAogICJzY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3B1cG93ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXJ0aW4zMTgyMS9jcHVwb3dlciIsCiAgInV1aWQiOiAiY3B1cG93ZXJAbWtvLXNsLmRlIiwKICAidmVyc2lvbiI6IDIzCn0="}}}
+, {"uuid": "workspace_scroll@squgeim.com.np", "name": "Workspace Scroll", "pname": "workspace-scroll", "description": "Just scroll anywhere in the top panel to change the workspace.", "link": "https://extensions.gnome.org/extension/943/workspace-scroll/", "shell_version_map": {"40": {"version": "6", "sha256": "0pglhzy81zh9wwcmh1ynygkghq64s948k9qaa9vr3k514bq8b8n0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkp1c3Qgc2Nyb2xsIGFueXdoZXJlIGluIHRoZSB0b3AgcGFuZWwgdG8gY2hhbmdlIHRoZSB3b3Jrc3BhY2UuIiwKICAibmFtZSI6ICJXb3Jrc3BhY2UgU2Nyb2xsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MC4wIiwKICAgICI0MC4xIiwKICAgICI0MC4yIiwKICAgICI0MC4zIiwKICAgICI0MS4wIiwKICAgICI0MC4xMCIsCiAgICAiNDAuNSIsCiAgICAiNDAuMTEiLAogICAgIjQwLjkiLAogICAgIjQwLjgiLAogICAgIjQwLjciLAogICAgIjQwLjYiLAogICAgIjQwLjQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zcXVnZWltL1dvcmtzcGFjZS1TY3JvbGwiLAogICJ1dWlkIjogIndvcmtzcGFjZV9zY3JvbGxAc3F1Z2VpbS5jb20ubnAiLAogICJ2ZXJzaW9uIjogNgp9"}, "41": {"version": "6", "sha256": "0pglhzy81zh9wwcmh1ynygkghq64s948k9qaa9vr3k514bq8b8n0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkp1c3Qgc2Nyb2xsIGFueXdoZXJlIGluIHRoZSB0b3AgcGFuZWwgdG8gY2hhbmdlIHRoZSB3b3Jrc3BhY2UuIiwKICAibmFtZSI6ICJXb3Jrc3BhY2UgU2Nyb2xsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MC4wIiwKICAgICI0MC4xIiwKICAgICI0MC4yIiwKICAgICI0MC4zIiwKICAgICI0MS4wIiwKICAgICI0MC4xMCIsCiAgICAiNDAuNSIsCiAgICAiNDAuMTEiLAogICAgIjQwLjkiLAogICAgIjQwLjgiLAogICAgIjQwLjciLAogICAgIjQwLjYiLAogICAgIjQwLjQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zcXVnZWltL1dvcmtzcGFjZS1TY3JvbGwiLAogICJ1dWlkIjogIndvcmtzcGFjZV9zY3JvbGxAc3F1Z2VpbS5jb20ubnAiLAogICJ2ZXJzaW9uIjogNgp9"}}}
+, {"uuid": "cpupower@mko-sl.de", "name": "CPU Power Manager", "pname": "cpu-power-manager", "description": "Manage your CPU's frequency scaling driver", "link": "https://extensions.gnome.org/extension/945/cpu-power-manager/", "shell_version_map": {"38": {"version": "26", "sha256": "0w4py02s4xw3acl6iy7bamkbzd728ha908pjg5h9hjivqfbipd90", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSB5b3VyIENQVSdzIGZyZXF1ZW5jeSBzY2FsaW5nIGRyaXZlciIsCiAgImxvY2FsZWRpciI6ICIvdXNyL2xvY2FsL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiQ1BVIFBvd2VyIE1hbmFnZXIiLAogICJzY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3B1cG93ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGVpbnN0YXBlbC9jcHVwb3dlciIsCiAgInV1aWQiOiAiY3B1cG93ZXJAbWtvLXNsLmRlIiwKICAidmVyc2lvbiI6IDI2Cn0="}, "40": {"version": "26", "sha256": "0w4py02s4xw3acl6iy7bamkbzd728ha908pjg5h9hjivqfbipd90", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSB5b3VyIENQVSdzIGZyZXF1ZW5jeSBzY2FsaW5nIGRyaXZlciIsCiAgImxvY2FsZWRpciI6ICIvdXNyL2xvY2FsL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiQ1BVIFBvd2VyIE1hbmFnZXIiLAogICJzY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3B1cG93ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGVpbnN0YXBlbC9jcHVwb3dlciIsCiAgInV1aWQiOiAiY3B1cG93ZXJAbWtvLXNsLmRlIiwKICAidmVyc2lvbiI6IDI2Cn0="}}}
 , {"uuid": "world_clock_lite@ailin.nemui", "name": "Panel World Clock (Lite)", "pname": "panel-world-clock-lite", "description": "A world clock for the panel\n\nInstall gnome-clocks (native, NO Flatpak, NO Snap) to get started!\nHint: Eiðar has the same time as UTC\n\nGnome ≤3.14? https://extensions.gnome.org/extension/697/panel-world-clock/", "link": "https://extensions.gnome.org/extension/946/panel-world-clock-lite/", "shell_version_map": {"38": {"version": "11", "sha256": "1l2z6ri0ga526p1zcy9wjidcfj4hs92nv9r0arsmq4xr8581pfpq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgd29ybGQgY2xvY2sgZm9yIHRoZSBwYW5lbFxuXG5JbnN0YWxsIGdub21lLWNsb2NrcyAobmF0aXZlLCBOTyBGbGF0cGFrLCBOTyBTbmFwKSB0byBnZXQgc3RhcnRlZCFcbkhpbnQ6IEVpXHUwMGYwYXIgaGFzIHRoZSBzYW1lIHRpbWUgYXMgVVRDXG5cbkdub21lIFx1MjI2NDMuMTQ/IGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzY5Ny9wYW5lbC13b3JsZC1jbG9jay8iLAogICJuYW1lIjogIlBhbmVsIFdvcmxkIENsb2NrIChMaXRlKSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3JsZC1jbG9jayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ3b3JsZF9jbG9ja19saXRlQGFpbGluLm5lbXVpIiwKICAidmVyc2lvbiI6IDExCn0="}, "40": {"version": "14", "sha256": "1vlfl934m8l54psnfa4rk5n9k0va3224ksn9l0fdvdcg7daiq5gp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgd29ybGQgY2xvY2sgZm9yIHRoZSBwYW5lbFxuXG5JbnN0YWxsIGdub21lLWNsb2NrcyAobmF0aXZlLCBOTyBGbGF0cGFrLCBOTyBTbmFwKSB0byBnZXQgc3RhcnRlZCFcbkhpbnQ6IEVpXHUwMGYwYXIgaGFzIHRoZSBzYW1lIHRpbWUgYXMgVVRDXG5cbkdub21lIFx1MjI2NDMuMTQ/IGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzY5Ny9wYW5lbC13b3JsZC1jbG9jay8iLAogICJuYW1lIjogIlBhbmVsIFdvcmxkIENsb2NrIChMaXRlKSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3JsZC1jbG9jayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIndvcmxkX2Nsb2NrX2xpdGVAYWlsaW4ubmVtdWkiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "41": {"version": "14", "sha256": "1vlfl934m8l54psnfa4rk5n9k0va3224ksn9l0fdvdcg7daiq5gp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgd29ybGQgY2xvY2sgZm9yIHRoZSBwYW5lbFxuXG5JbnN0YWxsIGdub21lLWNsb2NrcyAobmF0aXZlLCBOTyBGbGF0cGFrLCBOTyBTbmFwKSB0byBnZXQgc3RhcnRlZCFcbkhpbnQ6IEVpXHUwMGYwYXIgaGFzIHRoZSBzYW1lIHRpbWUgYXMgVVRDXG5cbkdub21lIFx1MjI2NDMuMTQ/IGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzY5Ny9wYW5lbC13b3JsZC1jbG9jay8iLAogICJuYW1lIjogIlBhbmVsIFdvcmxkIENsb2NrIChMaXRlKSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3JsZC1jbG9jayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIndvcmxkX2Nsb2NrX2xpdGVAYWlsaW4ubmVtdWkiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}}}
 , {"uuid": "dim-on-battery@nailfarmer.nailfarmer.com", "name": "Dim On Battery Power", "pname": "dim-on-battery-power", "description": "Automatically dims the screen when the machine is running on battery power.", "link": "https://extensions.gnome.org/extension/947/dim-on-battery-power/", "shell_version_map": {"38": {"version": "26", "sha256": "0nh8z4by722b9f11lk8akgwz1d8dm1v4r4129lbbvfm2qgg2f1mi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgZGltcyB0aGUgc2NyZWVuIHdoZW4gdGhlIG1hY2hpbmUgaXMgcnVubmluZyBvbiBiYXR0ZXJ5IHBvd2VyLiIsCiAgIm5hbWUiOiAiRGltIE9uIEJhdHRlcnkgUG93ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL25haWxmYXJtZXIvZ25vbWUtc2hlbGwtZGltLW9uLWJhdHRlcnktZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJkaW0tb24tYmF0dGVyeUBuYWlsZmFybWVyLm5haWxmYXJtZXIuY29tIiwKICAidmVyc2lvbiI6IDI2Cn0="}, "40": {"version": "26", "sha256": "0nh8z4by722b9f11lk8akgwz1d8dm1v4r4129lbbvfm2qgg2f1mi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgZGltcyB0aGUgc2NyZWVuIHdoZW4gdGhlIG1hY2hpbmUgaXMgcnVubmluZyBvbiBiYXR0ZXJ5IHBvd2VyLiIsCiAgIm5hbWUiOiAiRGltIE9uIEJhdHRlcnkgUG93ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL25haWxmYXJtZXIvZ25vbWUtc2hlbGwtZGltLW9uLWJhdHRlcnktZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJkaW0tb24tYmF0dGVyeUBuYWlsZmFybWVyLm5haWxmYXJtZXIuY29tIiwKICAidmVyc2lvbiI6IDI2Cn0="}, "41": {"version": "26", "sha256": "0nh8z4by722b9f11lk8akgwz1d8dm1v4r4129lbbvfm2qgg2f1mi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgZGltcyB0aGUgc2NyZWVuIHdoZW4gdGhlIG1hY2hpbmUgaXMgcnVubmluZyBvbiBiYXR0ZXJ5IHBvd2VyLiIsCiAgIm5hbWUiOiAiRGltIE9uIEJhdHRlcnkgUG93ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL25haWxmYXJtZXIvZ25vbWUtc2hlbGwtZGltLW9uLWJhdHRlcnktZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJkaW0tb24tYmF0dGVyeUBuYWlsZmFybWVyLm5haWxmYXJtZXIuY29tIiwKICAidmVyc2lvbiI6IDI2Cn0="}}}
 , {"uuid": "bottompanel@tmoer93", "name": "BottomPanel", "pname": "bottompanel", "description": "Moves the GNOME panel to the bottom of the screen\n\nSource here: https://github.com/Thoma5/gnome-shell-extension-bottompanel", "link": "https://extensions.gnome.org/extension/949/bottompanel/", "shell_version_map": {"38": {"version": "11", "sha256": "0r4z1pww6w8q0f7gzsmc363hd2178r40ifsppyigj67mwwik3mkq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRoZSBHTk9NRSBwYW5lbCB0byB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW5cblxuU291cmNlIGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9UaG9tYTUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWJvdHRvbXBhbmVsIiwKICAibmFtZSI6ICJCb3R0b21QYW5lbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJib3R0b21wYW5lbEB0bW9lcjkzIiwKICAidmVyc2lvbiI6IDExCn0="}}}
@@ -93,21 +94,21 @@
 , {"uuid": "switcher@landau.fi", "name": "Switcher", "pname": "switcher", "description": "Switch windows or launch applications quickly by typing\n\nUse the configured global hotkey (Super+w by default) to open a list of current windows. Type a part of the name or title of the application window you want to activate and hit enter or click on the item you wish to activate. You can use the arrow keys to navigate among the filtered selection and type several space separated search terms to filter further. If your search matches launchable apps, those are shown in the list too. Use Esc or click anywhere outside the switcher to cancel.\n\nYou can customize the look and feel and functionality in the preferences.", "link": "https://extensions.gnome.org/extension/973/switcher/", "shell_version_map": {"38": {"version": "32", "sha256": "188bfj4b0kslja757fc70xhjqj5blk2jcdjfd2pvm6g2cxslfjg6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB3aW5kb3dzIG9yIGxhdW5jaCBhcHBsaWNhdGlvbnMgcXVpY2tseSBieSB0eXBpbmdcblxuVXNlIHRoZSBjb25maWd1cmVkIGdsb2JhbCBob3RrZXkgKFN1cGVyK3cgYnkgZGVmYXVsdCkgdG8gb3BlbiBhIGxpc3Qgb2YgY3VycmVudCB3aW5kb3dzLiBUeXBlIGEgcGFydCBvZiB0aGUgbmFtZSBvciB0aXRsZSBvZiB0aGUgYXBwbGljYXRpb24gd2luZG93IHlvdSB3YW50IHRvIGFjdGl2YXRlIGFuZCBoaXQgZW50ZXIgb3IgY2xpY2sgb24gdGhlIGl0ZW0geW91IHdpc2ggdG8gYWN0aXZhdGUuIFlvdSBjYW4gdXNlIHRoZSBhcnJvdyBrZXlzIHRvIG5hdmlnYXRlIGFtb25nIHRoZSBmaWx0ZXJlZCBzZWxlY3Rpb24gYW5kIHR5cGUgc2V2ZXJhbCBzcGFjZSBzZXBhcmF0ZWQgc2VhcmNoIHRlcm1zIHRvIGZpbHRlciBmdXJ0aGVyLiBJZiB5b3VyIHNlYXJjaCBtYXRjaGVzIGxhdW5jaGFibGUgYXBwcywgdGhvc2UgYXJlIHNob3duIGluIHRoZSBsaXN0IHRvby4gVXNlIEVzYyBvciBjbGljayBhbnl3aGVyZSBvdXRzaWRlIHRoZSBzd2l0Y2hlciB0byBjYW5jZWwuXG5cbllvdSBjYW4gY3VzdG9taXplIHRoZSBsb29rIGFuZCBmZWVsIGFuZCBmdW5jdGlvbmFsaXR5IGluIHRoZSBwcmVmZXJlbmNlcy4iLAogICJuYW1lIjogIlN3aXRjaGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGFuaWVsbGFuZGF1L3N3aXRjaGVyIiwKICAidXVpZCI6ICJzd2l0Y2hlckBsYW5kYXUuZmkiLAogICJ2ZXJzaW9uIjogMzIKfQ=="}, "40": {"version": "33", "sha256": "1dk91bvmjqr4hrsldb6ikvrd6ihk5flbg8wfhfnmq4c18kynsv9i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB3aW5kb3dzIG9yIGxhdW5jaCBhcHBsaWNhdGlvbnMgcXVpY2tseSBieSB0eXBpbmdcblxuVXNlIHRoZSBjb25maWd1cmVkIGdsb2JhbCBob3RrZXkgKFN1cGVyK3cgYnkgZGVmYXVsdCkgdG8gb3BlbiBhIGxpc3Qgb2YgY3VycmVudCB3aW5kb3dzLiBUeXBlIGEgcGFydCBvZiB0aGUgbmFtZSBvciB0aXRsZSBvZiB0aGUgYXBwbGljYXRpb24gd2luZG93IHlvdSB3YW50IHRvIGFjdGl2YXRlIGFuZCBoaXQgZW50ZXIgb3IgY2xpY2sgb24gdGhlIGl0ZW0geW91IHdpc2ggdG8gYWN0aXZhdGUuIFlvdSBjYW4gdXNlIHRoZSBhcnJvdyBrZXlzIHRvIG5hdmlnYXRlIGFtb25nIHRoZSBmaWx0ZXJlZCBzZWxlY3Rpb24gYW5kIHR5cGUgc2V2ZXJhbCBzcGFjZSBzZXBhcmF0ZWQgc2VhcmNoIHRlcm1zIHRvIGZpbHRlciBmdXJ0aGVyLiBJZiB5b3VyIHNlYXJjaCBtYXRjaGVzIGxhdW5jaGFibGUgYXBwcywgdGhvc2UgYXJlIHNob3duIGluIHRoZSBsaXN0IHRvby4gVXNlIEVzYyBvciBjbGljayBhbnl3aGVyZSBvdXRzaWRlIHRoZSBzd2l0Y2hlciB0byBjYW5jZWwuXG5cbllvdSBjYW4gY3VzdG9taXplIHRoZSBsb29rIGFuZCBmZWVsIGFuZCBmdW5jdGlvbmFsaXR5IGluIHRoZSBwcmVmZXJlbmNlcy4iLAogICJuYW1lIjogIlN3aXRjaGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RhbmllbGxhbmRhdS9zd2l0Y2hlciIsCiAgInV1aWQiOiAic3dpdGNoZXJAbGFuZGF1LmZpIiwKICAidmVyc2lvbiI6IDMzCn0="}, "41": {"version": "34", "sha256": "1bgj8w7qlz4kv70k6rjmm5f5rygn2n5fp0rd29jj1wfm50hfvzg1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB3aW5kb3dzIG9yIGxhdW5jaCBhcHBsaWNhdGlvbnMgcXVpY2tseSBieSB0eXBpbmdcblxuVXNlIHRoZSBjb25maWd1cmVkIGdsb2JhbCBob3RrZXkgKFN1cGVyK3cgYnkgZGVmYXVsdCkgdG8gb3BlbiBhIGxpc3Qgb2YgY3VycmVudCB3aW5kb3dzLiBUeXBlIGEgcGFydCBvZiB0aGUgbmFtZSBvciB0aXRsZSBvZiB0aGUgYXBwbGljYXRpb24gd2luZG93IHlvdSB3YW50IHRvIGFjdGl2YXRlIGFuZCBoaXQgZW50ZXIgb3IgY2xpY2sgb24gdGhlIGl0ZW0geW91IHdpc2ggdG8gYWN0aXZhdGUuIFlvdSBjYW4gdXNlIHRoZSBhcnJvdyBrZXlzIHRvIG5hdmlnYXRlIGFtb25nIHRoZSBmaWx0ZXJlZCBzZWxlY3Rpb24gYW5kIHR5cGUgc2V2ZXJhbCBzcGFjZSBzZXBhcmF0ZWQgc2VhcmNoIHRlcm1zIHRvIGZpbHRlciBmdXJ0aGVyLiBJZiB5b3VyIHNlYXJjaCBtYXRjaGVzIGxhdW5jaGFibGUgYXBwcywgdGhvc2UgYXJlIHNob3duIGluIHRoZSBsaXN0IHRvby4gVXNlIEVzYyBvciBjbGljayBhbnl3aGVyZSBvdXRzaWRlIHRoZSBzd2l0Y2hlciB0byBjYW5jZWwuXG5cbllvdSBjYW4gY3VzdG9taXplIHRoZSBsb29rIGFuZCBmZWVsIGFuZCBmdW5jdGlvbmFsaXR5IGluIHRoZSBwcmVmZXJlbmNlcy4iLAogICJuYW1lIjogIlN3aXRjaGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RhbmllbGxhbmRhdS9zd2l0Y2hlciIsCiAgInV1aWQiOiAic3dpdGNoZXJAbGFuZGF1LmZpIiwKICAidmVyc2lvbiI6IDM0Cn0="}}}
 , {"uuid": "keyboard_modifiers_status@sneetsher", "name": "Keyboard Modifiers Status", "pname": "keyboard-modifiers-status", "description": "Shows keyboard modifiers status. It's useful when sticky keys are active.", "link": "https://extensions.gnome.org/extension/975/keyboard-modifiers-status/", "shell_version_map": {"38": {"version": "12", "sha256": "0j4pcn7qkxnwhxshb9m1mh5zhr9hhh3xcjzsgn2csmw064nzb1g9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGtleWJvYXJkIG1vZGlmaWVycyBzdGF0dXMuIEl0J3MgdXNlZnVsIHdoZW4gc3RpY2t5IGtleXMgYXJlIGFjdGl2ZS4iLAogICJuYW1lIjogIktleWJvYXJkIE1vZGlmaWVycyBTdGF0dXMiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic25lZXRzaGVyQGxvY2FsaG9zdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc25lZXRzaGVyL0tleWJvYXJkLU1vZGlmaWVycy1TdGF0dXMiLAogICJ1dWlkIjogImtleWJvYXJkX21vZGlmaWVyc19zdGF0dXNAc25lZXRzaGVyIiwKICAidmVyc2lvbiI6IDEyCn0="}, "40": {"version": "12", "sha256": "0j4pcn7qkxnwhxshb9m1mh5zhr9hhh3xcjzsgn2csmw064nzb1g9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGtleWJvYXJkIG1vZGlmaWVycyBzdGF0dXMuIEl0J3MgdXNlZnVsIHdoZW4gc3RpY2t5IGtleXMgYXJlIGFjdGl2ZS4iLAogICJuYW1lIjogIktleWJvYXJkIE1vZGlmaWVycyBTdGF0dXMiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic25lZXRzaGVyQGxvY2FsaG9zdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc25lZXRzaGVyL0tleWJvYXJkLU1vZGlmaWVycy1TdGF0dXMiLAogICJ1dWlkIjogImtleWJvYXJkX21vZGlmaWVyc19zdGF0dXNAc25lZXRzaGVyIiwKICAidmVyc2lvbiI6IDEyCn0="}, "41": {"version": "12", "sha256": "0j4pcn7qkxnwhxshb9m1mh5zhr9hhh3xcjzsgn2csmw064nzb1g9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGtleWJvYXJkIG1vZGlmaWVycyBzdGF0dXMuIEl0J3MgdXNlZnVsIHdoZW4gc3RpY2t5IGtleXMgYXJlIGFjdGl2ZS4iLAogICJuYW1lIjogIktleWJvYXJkIE1vZGlmaWVycyBTdGF0dXMiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic25lZXRzaGVyQGxvY2FsaG9zdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc25lZXRzaGVyL0tleWJvYXJkLU1vZGlmaWVycy1TdGF0dXMiLAogICJ1dWlkIjogImtleWJvYXJkX21vZGlmaWVyc19zdGF0dXNAc25lZXRzaGVyIiwKICAidmVyc2lvbiI6IDEyCn0="}}}
 , {"uuid": "harddiskled@bijidroid.gmail.com", "name": "Harddisk LED", "pname": "harddisk-led", "description": "Show harddisk activity (IO speed read/write and LED). Click to change led size", "link": "https://extensions.gnome.org/extension/988/harddisk-led/", "shell_version_map": {"38": {"version": "25", "sha256": "012y9z4hj9iqm5k89g7z6q99agz94p6jdwr4bhw2nkv5balx0x4j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgaGFyZGRpc2sgYWN0aXZpdHkgKElPIHNwZWVkIHJlYWQvd3JpdGUgYW5kIExFRCkuIENsaWNrIHRvIGNoYW5nZSBsZWQgc2l6ZSIsCiAgIm5hbWUiOiAiSGFyZGRpc2sgTEVEIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiLAogICAgIjQ1IiwKICAgICI0NiIsCiAgICAiNDciLAogICAgIjQ4IiwKICAgICI0OSIsCiAgICAiNTAiLAogICAgIjUxIiwKICAgICI1MiIsCiAgICAiNTMiLAogICAgIjU0IiwKICAgICI1NSIsCiAgICAiNTYiLAogICAgIjU3IiwKICAgICI1OCIsCiAgICAiNTkiLAogICAgIjYwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmlqaS9oYXJkZGlza2xlZCIsCiAgInV1aWQiOiAiaGFyZGRpc2tsZWRAYmlqaWRyb2lkLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyNQp9"}, "40": {"version": "25", "sha256": "012y9z4hj9iqm5k89g7z6q99agz94p6jdwr4bhw2nkv5balx0x4j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgaGFyZGRpc2sgYWN0aXZpdHkgKElPIHNwZWVkIHJlYWQvd3JpdGUgYW5kIExFRCkuIENsaWNrIHRvIGNoYW5nZSBsZWQgc2l6ZSIsCiAgIm5hbWUiOiAiSGFyZGRpc2sgTEVEIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiLAogICAgIjQ1IiwKICAgICI0NiIsCiAgICAiNDciLAogICAgIjQ4IiwKICAgICI0OSIsCiAgICAiNTAiLAogICAgIjUxIiwKICAgICI1MiIsCiAgICAiNTMiLAogICAgIjU0IiwKICAgICI1NSIsCiAgICAiNTYiLAogICAgIjU3IiwKICAgICI1OCIsCiAgICAiNTkiLAogICAgIjYwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmlqaS9oYXJkZGlza2xlZCIsCiAgInV1aWQiOiAiaGFyZGRpc2tsZWRAYmlqaWRyb2lkLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyNQp9"}, "41": {"version": "25", "sha256": "012y9z4hj9iqm5k89g7z6q99agz94p6jdwr4bhw2nkv5balx0x4j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgaGFyZGRpc2sgYWN0aXZpdHkgKElPIHNwZWVkIHJlYWQvd3JpdGUgYW5kIExFRCkuIENsaWNrIHRvIGNoYW5nZSBsZWQgc2l6ZSIsCiAgIm5hbWUiOiAiSGFyZGRpc2sgTEVEIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiLAogICAgIjQ1IiwKICAgICI0NiIsCiAgICAiNDciLAogICAgIjQ4IiwKICAgICI0OSIsCiAgICAiNTAiLAogICAgIjUxIiwKICAgICI1MiIsCiAgICAiNTMiLAogICAgIjU0IiwKICAgICI1NSIsCiAgICAiNTYiLAogICAgIjU3IiwKICAgICI1OCIsCiAgICAiNTkiLAogICAgIjYwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmlqaS9oYXJkZGlza2xlZCIsCiAgInV1aWQiOiAiaGFyZGRpc2tsZWRAYmlqaWRyb2lkLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyNQp9"}}}
-, {"uuid": "syncthingicon@jay.strict@posteo.de", "name": "Syncthing Icon", "pname": "syncthing-icon", "description": "Display Syncthing Icon in Top Bar", "link": "https://extensions.gnome.org/extension/989/syncthing-icon/", "shell_version_map": {"40": {"version": "32", "sha256": "1dwjzpmaxl39nzgcnmhpg5bnpx0p1cbqdykd3h1slrwfv91ir4mk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgU3luY3RoaW5nIEljb24gaW4gVG9wIEJhciIsCiAgIm5hbWUiOiAiU3luY3RoaW5nIEljb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3luY3RoaW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qYXlzdHJpY3Rvci9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3luY3RoaW5nIiwKICAidXVpZCI6ICJzeW5jdGhpbmdpY29uQGpheS5zdHJpY3RAcG9zdGVvLmRlIiwKICAidmVyc2lvbiI6IDMyCn0="}, "41": {"version": "32", "sha256": "1dwjzpmaxl39nzgcnmhpg5bnpx0p1cbqdykd3h1slrwfv91ir4mk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgU3luY3RoaW5nIEljb24gaW4gVG9wIEJhciIsCiAgIm5hbWUiOiAiU3luY3RoaW5nIEljb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3luY3RoaW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qYXlzdHJpY3Rvci9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3luY3RoaW5nIiwKICAidXVpZCI6ICJzeW5jdGhpbmdpY29uQGpheS5zdHJpY3RAcG9zdGVvLmRlIiwKICAidmVyc2lvbiI6IDMyCn0="}}}
+, {"uuid": "syncthingicon@jay.strict@posteo.de", "name": "Syncthing Icon", "pname": "syncthing-icon", "description": "Display Syncthing Icon in Top Bar", "link": "https://extensions.gnome.org/extension/989/syncthing-icon/", "shell_version_map": {"40": {"version": "33", "sha256": "0lg2k9p033w9dff5g16xai9rvjmw85qvhrx17dw8f228nfm93fik", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgU3luY3RoaW5nIEljb24gaW4gVG9wIEJhciIsCiAgIm5hbWUiOiAiU3luY3RoaW5nIEljb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3luY3RoaW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qYXlzdHJpY3Rvci9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3luY3RoaW5nIiwKICAidXVpZCI6ICJzeW5jdGhpbmdpY29uQGpheS5zdHJpY3RAcG9zdGVvLmRlIiwKICAidmVyc2lvbiI6IDMzCn0="}, "41": {"version": "33", "sha256": "0lg2k9p033w9dff5g16xai9rvjmw85qvhrx17dw8f228nfm93fik", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgU3luY3RoaW5nIEljb24gaW4gVG9wIEJhciIsCiAgIm5hbWUiOiAiU3luY3RoaW5nIEljb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3luY3RoaW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qYXlzdHJpY3Rvci9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3luY3RoaW5nIiwKICAidXVpZCI6ICJzeW5jdGhpbmdpY29uQGpheS5zdHJpY3RAcG9zdGVvLmRlIiwKICAidmVyc2lvbiI6IDMzCn0="}}}
 , {"uuid": "window-search-provider@quelltexter.org", "name": "Window Search Provider", "pname": "window-search-provider", "description": "Provide active windows as search results in overview", "link": "https://extensions.gnome.org/extension/1001/window-search-provider/", "shell_version_map": {"38": {"version": "2", "sha256": "030s38akm3fw7nq9v4wfgzhw716b51l2z3szns0gcwc0gx5zpfjv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgYWN0aXZlIHdpbmRvd3MgYXMgc2VhcmNoIHJlc3VsdHMgaW4gb3ZlcnZpZXciLAogICJuYW1lIjogIldpbmRvdyBTZWFyY2ggUHJvdmlkZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjMuNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rbG9yZW56L2dub21lLXNoZWxsLXdpbmRvdy1zZWFyY2gtcHJvdmlkZXIiLAogICJ1dWlkIjogIndpbmRvdy1zZWFyY2gtcHJvdmlkZXJAcXVlbGx0ZXh0ZXIub3JnIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
 , {"uuid": "windowIsReady_Remover@nunofarruca@gmail.com", "name": "Window Is Ready - Notification Remover", "pname": "window-is-ready-notification-remover", "description": "Removes window is ready Notification", "link": "https://extensions.gnome.org/extension/1007/window-is-ready-notification-remover/", "shell_version_map": {"38": {"version": "13", "sha256": "1wxhdbvra0sc22wja9pcrsj5q4ny4iy4d7axlqh7yvm00zp72f3g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgd2luZG93IGlzIHJlYWR5IE5vdGlmaWNhdGlvbiIsCiAgImxpY2Vuc2UiOiAiQXBhY2hlLTIuMCIsCiAgIm5hbWUiOiAiV2luZG93IElzIFJlYWR5IC0gTm90aWZpY2F0aW9uIFJlbW92ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL251bm9mYXJydWNhL1dpbmRvd0lzUmVhZHlfUmVtb3ZlciIsCiAgInV1aWQiOiAid2luZG93SXNSZWFkeV9SZW1vdmVyQG51bm9mYXJydWNhQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"}, "40": {"version": "13", "sha256": "1wxhdbvra0sc22wja9pcrsj5q4ny4iy4d7axlqh7yvm00zp72f3g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgd2luZG93IGlzIHJlYWR5IE5vdGlmaWNhdGlvbiIsCiAgImxpY2Vuc2UiOiAiQXBhY2hlLTIuMCIsCiAgIm5hbWUiOiAiV2luZG93IElzIFJlYWR5IC0gTm90aWZpY2F0aW9uIFJlbW92ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL251bm9mYXJydWNhL1dpbmRvd0lzUmVhZHlfUmVtb3ZlciIsCiAgInV1aWQiOiAid2luZG93SXNSZWFkeV9SZW1vdmVyQG51bm9mYXJydWNhQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"}, "41": {"version": "13", "sha256": "1wxhdbvra0sc22wja9pcrsj5q4ny4iy4d7axlqh7yvm00zp72f3g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgd2luZG93IGlzIHJlYWR5IE5vdGlmaWNhdGlvbiIsCiAgImxpY2Vuc2UiOiAiQXBhY2hlLTIuMCIsCiAgIm5hbWUiOiAiV2luZG93IElzIFJlYWR5IC0gTm90aWZpY2F0aW9uIFJlbW92ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL251bm9mYXJydWNhL1dpbmRvd0lzUmVhZHlfUmVtb3ZlciIsCiAgInV1aWQiOiAid2luZG93SXNSZWFkeV9SZW1vdmVyQG51bm9mYXJydWNhQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"}}}
 , {"uuid": "arch-update@RaphaelRochet", "name": "Arch Linux Updates Indicator", "pname": "archlinux-updates-indicator", "description": "Update indicator for Arch Linux and GNOME Shell.\n** Note : you now need to install the package pacman-contrib to use the checkupdates script. **\n  Can support AUR or other distros by changing command used to check for and apply updates.", "link": "https://extensions.gnome.org/extension/1010/archlinux-updates-indicator/", "shell_version_map": {"38": {"version": "39", "sha256": "15s0cs41h01kb8dx231ww06rxalmz7cr173z7pm9sfkvs2106dhl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZSBpbmRpY2F0b3IgZm9yIEFyY2ggTGludXggYW5kIEdOT01FIFNoZWxsLlxuKiogTm90ZSA6IHlvdSBub3cgbmVlZCB0byBpbnN0YWxsIHRoZSBwYWNrYWdlIHBhY21hbi1jb250cmliIHRvIHVzZSB0aGUgY2hlY2t1cGRhdGVzIHNjcmlwdC4gKipcbiAgQ2FuIHN1cHBvcnQgQVVSIG9yIG90aGVyIGRpc3Ryb3MgYnkgY2hhbmdpbmcgY29tbWFuZCB1c2VkIHRvIGNoZWNrIGZvciBhbmQgYXBwbHkgdXBkYXRlcy4iLAogICJuYW1lIjogIkFyY2ggTGludXggVXBkYXRlcyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYuMSIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JhcGhhZWxSb2NoZXQvYXJjaC11cGRhdGUiLAogICJ1dWlkIjogImFyY2gtdXBkYXRlQFJhcGhhZWxSb2NoZXQiLAogICJ2ZXJzaW9uIjogMzkKfQ=="}, "40": {"version": "45", "sha256": "09vj5cx0c7ykbglgzzh6dkgzf3rdpzxa9nkx35q41cizv1lv6k1q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZSBpbmRpY2F0b3IgZm9yIEFyY2ggTGludXggYW5kIEdOT01FIFNoZWxsLlxuKiogTm90ZSA6IHlvdSBub3cgbmVlZCB0byBpbnN0YWxsIHRoZSBwYWNrYWdlIHBhY21hbi1jb250cmliIHRvIHVzZSB0aGUgY2hlY2t1cGRhdGVzIHNjcmlwdC4gKipcbiAgQ2FuIHN1cHBvcnQgQVVSIG9yIG90aGVyIGRpc3Ryb3MgYnkgY2hhbmdpbmcgY29tbWFuZCB1c2VkIHRvIGNoZWNrIGZvciBhbmQgYXBwbHkgdXBkYXRlcy4iLAogICJuYW1lIjogIkFyY2ggTGludXggVXBkYXRlcyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JhcGhhZWxSb2NoZXQvYXJjaC11cGRhdGUiLAogICJ1dWlkIjogImFyY2gtdXBkYXRlQFJhcGhhZWxSb2NoZXQiLAogICJ2ZXJzaW9uIjogNDUKfQ=="}, "41": {"version": "45", "sha256": "09vj5cx0c7ykbglgzzh6dkgzf3rdpzxa9nkx35q41cizv1lv6k1q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZSBpbmRpY2F0b3IgZm9yIEFyY2ggTGludXggYW5kIEdOT01FIFNoZWxsLlxuKiogTm90ZSA6IHlvdSBub3cgbmVlZCB0byBpbnN0YWxsIHRoZSBwYWNrYWdlIHBhY21hbi1jb250cmliIHRvIHVzZSB0aGUgY2hlY2t1cGRhdGVzIHNjcmlwdC4gKipcbiAgQ2FuIHN1cHBvcnQgQVVSIG9yIG90aGVyIGRpc3Ryb3MgYnkgY2hhbmdpbmcgY29tbWFuZCB1c2VkIHRvIGNoZWNrIGZvciBhbmQgYXBwbHkgdXBkYXRlcy4iLAogICJuYW1lIjogIkFyY2ggTGludXggVXBkYXRlcyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JhcGhhZWxSb2NoZXQvYXJjaC11cGRhdGUiLAogICJ1dWlkIjogImFyY2gtdXBkYXRlQFJhcGhhZWxSb2NoZXQiLAogICJ2ZXJzaW9uIjogNDUKfQ=="}}}
 , {"uuid": "dynamic-panel-transparency@rockon999.github.io", "name": "Dynamic Panel Transparency", "pname": "dynamic-panel-transparency", "description": "Miss dynamic panel transparency in 3.32 and up? Try the original dynamic panel with much more customization! This extension will fade your top panel to nothingness when there are no maximized windows present! Never again will the panel be abruptly darkened.\n\nMay be incompatible with some extensions that make extensive changes to the panel.\n\nIf your theme isn't working correctly with this extension enable 'Remove Excessive Panel Styling' in the Background section of preferences. This particularly impacts the default *Ubuntu* theme!", "link": "https://extensions.gnome.org/extension/1011/dynamic-panel-transparency/", "shell_version_map": {"38": {"version": "34", "sha256": "10w5kvmspy4rp4jnwx0rj2crbdyi1lxv81vhi8zx490fhwgmlkvl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pc3MgZHluYW1pYyBwYW5lbCB0cmFuc3BhcmVuY3kgaW4gMy4zMiBhbmQgdXA/IFRyeSB0aGUgb3JpZ2luYWwgZHluYW1pYyBwYW5lbCB3aXRoIG11Y2ggbW9yZSBjdXN0b21pemF0aW9uISBUaGlzIGV4dGVuc2lvbiB3aWxsIGZhZGUgeW91ciB0b3AgcGFuZWwgdG8gbm90aGluZ25lc3Mgd2hlbiB0aGVyZSBhcmUgbm8gbWF4aW1pemVkIHdpbmRvd3MgcHJlc2VudCEgTmV2ZXIgYWdhaW4gd2lsbCB0aGUgcGFuZWwgYmUgYWJydXB0bHkgZGFya2VuZWQuXG5cbk1heSBiZSBpbmNvbXBhdGlibGUgd2l0aCBzb21lIGV4dGVuc2lvbnMgdGhhdCBtYWtlIGV4dGVuc2l2ZSBjaGFuZ2VzIHRvIHRoZSBwYW5lbC5cblxuSWYgeW91ciB0aGVtZSBpc24ndCB3b3JraW5nIGNvcnJlY3RseSB3aXRoIHRoaXMgZXh0ZW5zaW9uIGVuYWJsZSAnUmVtb3ZlIEV4Y2Vzc2l2ZSBQYW5lbCBTdHlsaW5nJyBpbiB0aGUgQmFja2dyb3VuZCBzZWN0aW9uIG9mIHByZWZlcmVuY2VzLiBUaGlzIHBhcnRpY3VsYXJseSBpbXBhY3RzIHRoZSBkZWZhdWx0ICpVYnVudHUqIHRoZW1lISIsCiAgImdldHRleHQtZG9tYWluIjogImR5bmFtaWMtcGFuZWwtdHJhbnNwYXJlbmN5IiwKICAibmFtZSI6ICJEeW5hbWljIFBhbmVsIFRyYW5zcGFyZW5jeSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5keW5hbWljLXBhbmVsLXRyYW5zcGFyZW5jeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2V3bHNoL2R5bmFtaWMtcGFuZWwtdHJhbnNwYXJlbmN5LyIsCiAgInV1aWQiOiAiZHluYW1pYy1wYW5lbC10cmFuc3BhcmVuY3lAcm9ja29uOTk5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAzNAp9"}, "40": {"version": "35", "sha256": "1znc564xd7n4k2klfc0kkip6hmadqdsa50p0sq0717h407m9p0vx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pc3MgZHluYW1pYyBwYW5lbCB0cmFuc3BhcmVuY3kgaW4gMy4zMiBhbmQgdXA/IFRyeSB0aGUgb3JpZ2luYWwgZHluYW1pYyBwYW5lbCB3aXRoIG11Y2ggbW9yZSBjdXN0b21pemF0aW9uISBUaGlzIGV4dGVuc2lvbiB3aWxsIGZhZGUgeW91ciB0b3AgcGFuZWwgdG8gbm90aGluZ25lc3Mgd2hlbiB0aGVyZSBhcmUgbm8gbWF4aW1pemVkIHdpbmRvd3MgcHJlc2VudCEgTmV2ZXIgYWdhaW4gd2lsbCB0aGUgcGFuZWwgYmUgYWJydXB0bHkgZGFya2VuZWQuXG5cbk1heSBiZSBpbmNvbXBhdGlibGUgd2l0aCBzb21lIGV4dGVuc2lvbnMgdGhhdCBtYWtlIGV4dGVuc2l2ZSBjaGFuZ2VzIHRvIHRoZSBwYW5lbC5cblxuSWYgeW91ciB0aGVtZSBpc24ndCB3b3JraW5nIGNvcnJlY3RseSB3aXRoIHRoaXMgZXh0ZW5zaW9uIGVuYWJsZSAnUmVtb3ZlIEV4Y2Vzc2l2ZSBQYW5lbCBTdHlsaW5nJyBpbiB0aGUgQmFja2dyb3VuZCBzZWN0aW9uIG9mIHByZWZlcmVuY2VzLiBUaGlzIHBhcnRpY3VsYXJseSBpbXBhY3RzIHRoZSBkZWZhdWx0ICpVYnVudHUqIHRoZW1lISIsCiAgImdldHRleHQtZG9tYWluIjogImR5bmFtaWMtcGFuZWwtdHJhbnNwYXJlbmN5IiwKICAibmFtZSI6ICJEeW5hbWljIFBhbmVsIFRyYW5zcGFyZW5jeSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5keW5hbWljLXBhbmVsLXRyYW5zcGFyZW5jeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ld2xzaC9keW5hbWljLXBhbmVsLXRyYW5zcGFyZW5jeS8iLAogICJ1dWlkIjogImR5bmFtaWMtcGFuZWwtdHJhbnNwYXJlbmN5QHJvY2tvbjk5OS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMzUKfQ=="}}}
 , {"uuid": "icinga-checker@sosulski.net", "name": "Icinga checker", "pname": "icinga-checker", "description": "Icinga/Nagios checker", "link": "https://extensions.gnome.org/extension/1029/icinga-checker/", "shell_version_map": {"38": {"version": "12", "sha256": "194vk0i02zvsxaxw9iq63xjhdld729vrq8wwbl6i0p89xp1mcqcr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkljaW5nYS9OYWdpb3MgY2hlY2tlciIsCiAgImV4dGVuc2lvbi1pZCI6ICJpY2luZ2EtY2hlY2tlciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkljaW5nYSBjaGVja2VyIiwKICAib3JpZ2luYWwtYXV0aG9yIjogInBhd2VsQHNvc3Vsc2tpLm5ldCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5pY2luZ2EtY2hlY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImljaW5nYS1jaGVja2VyQHNvc3Vsc2tpLm5ldCIsCiAgInZlcnNpb24iOiAxMgp9"}, "40": {"version": "12", "sha256": "194vk0i02zvsxaxw9iq63xjhdld729vrq8wwbl6i0p89xp1mcqcr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkljaW5nYS9OYWdpb3MgY2hlY2tlciIsCiAgImV4dGVuc2lvbi1pZCI6ICJpY2luZ2EtY2hlY2tlciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkljaW5nYSBjaGVja2VyIiwKICAib3JpZ2luYWwtYXV0aG9yIjogInBhd2VsQHNvc3Vsc2tpLm5ldCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5pY2luZ2EtY2hlY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImljaW5nYS1jaGVja2VyQHNvc3Vsc2tpLm5ldCIsCiAgInZlcnNpb24iOiAxMgp9"}, "41": {"version": "12", "sha256": "194vk0i02zvsxaxw9iq63xjhdld729vrq8wwbl6i0p89xp1mcqcr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkljaW5nYS9OYWdpb3MgY2hlY2tlciIsCiAgImV4dGVuc2lvbi1pZCI6ICJpY2luZ2EtY2hlY2tlciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkljaW5nYSBjaGVja2VyIiwKICAib3JpZ2luYWwtYXV0aG9yIjogInBhd2VsQHNvc3Vsc2tpLm5ldCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5pY2luZ2EtY2hlY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImljaW5nYS1jaGVja2VyQHNvc3Vsc2tpLm5ldCIsCiAgInZlcnNpb24iOiAxMgp9"}}}
 , {"uuid": "taskwhisperer-extension@infinicode.de", "name": "TaskWhisperer", "pname": "taskwhisperer", "description": "Taskwhisperer is a extension for TaskWarrior Application https://taskwarrior.org. It is to display upcoming tasks and task details as well as to create and modify them.\n", "link": "https://extensions.gnome.org/extension/1039/taskwhisperer/", "shell_version_map": {"38": {"version": "20", "sha256": "067z3j2px4rz5yspfjx2s6p5j4l1svxllclahnf3zmv1nlbhzq8a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2t3aGlzcGVyZXIgaXMgYSBleHRlbnNpb24gZm9yIFRhc2tXYXJyaW9yIEFwcGxpY2F0aW9uIGh0dHBzOi8vdGFza3dhcnJpb3Iub3JnLiBJdCBpcyB0byBkaXNwbGF5IHVwY29taW5nIHRhc2tzIGFuZCB0YXNrIGRldGFpbHMgYXMgd2VsbCBhcyB0byBjcmVhdGUgYW5kIG1vZGlmeSB0aGVtLlxuIiwKICAibG9jYWxlZGlyIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJUYXNrV2hpc3BlcmVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NpbmF0aWMvdGFza3doaXNwZXJlciIsCiAgInV1aWQiOiAidGFza3doaXNwZXJlci1leHRlbnNpb25AaW5maW5pY29kZS5kZSIsCiAgInZlcnNpb24iOiAyMAp9"}, "40": {"version": "20", "sha256": "067z3j2px4rz5yspfjx2s6p5j4l1svxllclahnf3zmv1nlbhzq8a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2t3aGlzcGVyZXIgaXMgYSBleHRlbnNpb24gZm9yIFRhc2tXYXJyaW9yIEFwcGxpY2F0aW9uIGh0dHBzOi8vdGFza3dhcnJpb3Iub3JnLiBJdCBpcyB0byBkaXNwbGF5IHVwY29taW5nIHRhc2tzIGFuZCB0YXNrIGRldGFpbHMgYXMgd2VsbCBhcyB0byBjcmVhdGUgYW5kIG1vZGlmeSB0aGVtLlxuIiwKICAibG9jYWxlZGlyIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJUYXNrV2hpc3BlcmVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NpbmF0aWMvdGFza3doaXNwZXJlciIsCiAgInV1aWQiOiAidGFza3doaXNwZXJlci1leHRlbnNpb25AaW5maW5pY29kZS5kZSIsCiAgInZlcnNpb24iOiAyMAp9"}}}
-, {"uuid": "randomwallpaper@iflow.space", "name": "Random Wallpaper", "pname": "random-wallpaper", "description": "Fetch a random wallpaper from an online source and set it as a desktop background. \nThe desktop background can be updated periodically or manually.\n\nFeatures:\nMany different online sources with filters:\n        - Unsplash (https://unsplash.com/)\n        - Wallhaven (https://alpha.wallhaven.cc/)\n        - Reddit (https://reddit.com)\n        - Basically any JSON API/File (see Examples on GitHub)\nHistory of previous images\nSet lock screen image\nAutomatic renewal (Auto-Fetching)", "link": "https://extensions.gnome.org/extension/1040/random-wallpaper/", "shell_version_map": {"38": {"version": "22", "sha256": "0gwcqd5wzjnp3r4mpcbacbqk9j9v4pxh2wlcl5ssinj8z4pxm5qj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoIGEgcmFuZG9tIHdhbGxwYXBlciBmcm9tIGFuIG9ubGluZSBzb3VyY2UgYW5kIHNldCBpdCBhcyBhIGRlc2t0b3AgYmFja2dyb3VuZC4gXG5UaGUgZGVza3RvcCBiYWNrZ3JvdW5kIGNhbiBiZSB1cGRhdGVkIHBlcmlvZGljYWxseSBvciBtYW51YWxseS5cblxuRmVhdHVyZXM6XG5NYW55IGRpZmZlcmVudCBvbmxpbmUgc291cmNlcyB3aXRoIGZpbHRlcnM6XG4gICAgICAgIC0gVW5zcGxhc2ggKGh0dHBzOi8vdW5zcGxhc2guY29tLylcbiAgICAgICAgLSBXYWxsaGF2ZW4gKGh0dHBzOi8vYWxwaGEud2FsbGhhdmVuLmNjLylcbiAgICAgICAgLSBSZWRkaXQgKGh0dHBzOi8vcmVkZGl0LmNvbSlcbiAgICAgICAgLSBCYXNpY2FsbHkgYW55IEpTT04gQVBJL0ZpbGUgKHNlZSBFeGFtcGxlcyBvbiBHaXRIdWIpXG5IaXN0b3J5IG9mIHByZXZpb3VzIGltYWdlc1xuU2V0IGxvY2sgc2NyZWVuIGltYWdlXG5BdXRvbWF0aWMgcmVuZXdhbCAoQXV0by1GZXRjaGluZykiLAogICJuYW1lIjogIlJhbmRvbSBXYWxscGFwZXIiLAogICJzZW1hbnRpYy12ZXJzaW9uIjogIjIuNC41IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLmlmbG93LnJhbmRvbXdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2lmbDB3L1JhbmRvbVdhbGxwYXBlckdub21lMyIsCiAgInV1aWQiOiAicmFuZG9td2FsbHBhcGVyQGlmbG93LnNwYWNlIiwKICAidmVyc2lvbiI6IDIyCn0="}, "40": {"version": "26", "sha256": "0izjsa7h1x3yn67dxw1a1mp6qmn7xpp39ay3iha5i2pisznfgrni", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoIGEgcmFuZG9tIHdhbGxwYXBlciBmcm9tIGFuIG9ubGluZSBzb3VyY2UgYW5kIHNldCBpdCBhcyBhIGRlc2t0b3AgYmFja2dyb3VuZC4gXG5UaGUgZGVza3RvcCBiYWNrZ3JvdW5kIGNhbiBiZSB1cGRhdGVkIHBlcmlvZGljYWxseSBvciBtYW51YWxseS5cblxuRmVhdHVyZXM6XG5NYW55IGRpZmZlcmVudCBvbmxpbmUgc291cmNlcyB3aXRoIGZpbHRlcnM6XG4gICAgICAgIC0gVW5zcGxhc2ggKGh0dHBzOi8vdW5zcGxhc2guY29tLylcbiAgICAgICAgLSBXYWxsaGF2ZW4gKGh0dHBzOi8vYWxwaGEud2FsbGhhdmVuLmNjLylcbiAgICAgICAgLSBSZWRkaXQgKGh0dHBzOi8vcmVkZGl0LmNvbSlcbiAgICAgICAgLSBCYXNpY2FsbHkgYW55IEpTT04gQVBJL0ZpbGUgKHNlZSBFeGFtcGxlcyBvbiBHaXRIdWIpXG5IaXN0b3J5IG9mIHByZXZpb3VzIGltYWdlc1xuU2V0IGxvY2sgc2NyZWVuIGltYWdlXG5BdXRvbWF0aWMgcmVuZXdhbCAoQXV0by1GZXRjaGluZykiLAogICJuYW1lIjogIlJhbmRvbSBXYWxscGFwZXIiLAogICJzZW1hbnRpYy12ZXJzaW9uIjogIjIuNi4wIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLmlmbG93LnJhbmRvbXdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIsCiAgICAiNDAuMSIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pZmwwdy9SYW5kb21XYWxscGFwZXJHbm9tZTMiLAogICJ1dWlkIjogInJhbmRvbXdhbGxwYXBlckBpZmxvdy5zcGFjZSIsCiAgInZlcnNpb24iOiAyNgp9"}}}
+, {"uuid": "randomwallpaper@iflow.space", "name": "Random Wallpaper", "pname": "random-wallpaper", "description": "Fetches a random wallpaper from an online source and sets it as desktop background. \nThe desktop background can be updated periodically or manually.\n\nFeatures\n- Various online sources \n- History of previous images\n- Set lock screen image\n- Automatic renewal (Auto-Fetching)", "link": "https://extensions.gnome.org/extension/1040/random-wallpaper/", "shell_version_map": {"38": {"version": "22", "sha256": "19g2ij3i3xqhv5klc9070h35n1cfd44vi5ybm3gc0vwcipiw4g4n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoZXMgYSByYW5kb20gd2FsbHBhcGVyIGZyb20gYW4gb25saW5lIHNvdXJjZSBhbmQgc2V0cyBpdCBhcyBkZXNrdG9wIGJhY2tncm91bmQuIFxuVGhlIGRlc2t0b3AgYmFja2dyb3VuZCBjYW4gYmUgdXBkYXRlZCBwZXJpb2RpY2FsbHkgb3IgbWFudWFsbHkuXG5cbkZlYXR1cmVzXG4tIFZhcmlvdXMgb25saW5lIHNvdXJjZXMgXG4tIEhpc3Rvcnkgb2YgcHJldmlvdXMgaW1hZ2VzXG4tIFNldCBsb2NrIHNjcmVlbiBpbWFnZVxuLSBBdXRvbWF0aWMgcmVuZXdhbCAoQXV0by1GZXRjaGluZykiLAogICJuYW1lIjogIlJhbmRvbSBXYWxscGFwZXIiLAogICJzZW1hbnRpYy12ZXJzaW9uIjogIjIuNC41IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLmlmbG93LnJhbmRvbXdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2lmbDB3L1JhbmRvbVdhbGxwYXBlckdub21lMyIsCiAgInV1aWQiOiAicmFuZG9td2FsbHBhcGVyQGlmbG93LnNwYWNlIiwKICAidmVyc2lvbiI6IDIyCn0="}, "40": {"version": "27", "sha256": "0xzm3pskzcdcqbpdncbkz1c39g525z8bbz4azamxlpzh29bb8wd5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoZXMgYSByYW5kb20gd2FsbHBhcGVyIGZyb20gYW4gb25saW5lIHNvdXJjZSBhbmQgc2V0cyBpdCBhcyBkZXNrdG9wIGJhY2tncm91bmQuIFxuVGhlIGRlc2t0b3AgYmFja2dyb3VuZCBjYW4gYmUgdXBkYXRlZCBwZXJpb2RpY2FsbHkgb3IgbWFudWFsbHkuXG5cbkZlYXR1cmVzXG4tIFZhcmlvdXMgb25saW5lIHNvdXJjZXMgXG4tIEhpc3Rvcnkgb2YgcHJldmlvdXMgaW1hZ2VzXG4tIFNldCBsb2NrIHNjcmVlbiBpbWFnZVxuLSBBdXRvbWF0aWMgcmVuZXdhbCAoQXV0by1GZXRjaGluZykiLAogICJuYW1lIjogIlJhbmRvbSBXYWxscGFwZXIiLAogICJzZW1hbnRpYy12ZXJzaW9uIjogIjIuNy4wIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLmlmbG93LnJhbmRvbXdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIsCiAgICAiNDAuMSIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWZsMHcvUmFuZG9tV2FsbHBhcGVyR25vbWUzIiwKICAidXVpZCI6ICJyYW5kb213YWxscGFwZXJAaWZsb3cuc3BhY2UiLAogICJ2ZXJzaW9uIjogMjcKfQ=="}, "41": {"version": "27", "sha256": "0xzm3pskzcdcqbpdncbkz1c39g525z8bbz4azamxlpzh29bb8wd5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoZXMgYSByYW5kb20gd2FsbHBhcGVyIGZyb20gYW4gb25saW5lIHNvdXJjZSBhbmQgc2V0cyBpdCBhcyBkZXNrdG9wIGJhY2tncm91bmQuIFxuVGhlIGRlc2t0b3AgYmFja2dyb3VuZCBjYW4gYmUgdXBkYXRlZCBwZXJpb2RpY2FsbHkgb3IgbWFudWFsbHkuXG5cbkZlYXR1cmVzXG4tIFZhcmlvdXMgb25saW5lIHNvdXJjZXMgXG4tIEhpc3Rvcnkgb2YgcHJldmlvdXMgaW1hZ2VzXG4tIFNldCBsb2NrIHNjcmVlbiBpbWFnZVxuLSBBdXRvbWF0aWMgcmVuZXdhbCAoQXV0by1GZXRjaGluZykiLAogICJuYW1lIjogIlJhbmRvbSBXYWxscGFwZXIiLAogICJzZW1hbnRpYy12ZXJzaW9uIjogIjIuNy4wIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLmlmbG93LnJhbmRvbXdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIsCiAgICAiNDAuMSIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWZsMHcvUmFuZG9tV2FsbHBhcGVyR25vbWUzIiwKICAidXVpZCI6ICJyYW5kb213YWxscGFwZXJAaWZsb3cuc3BhY2UiLAogICJ2ZXJzaW9uIjogMjcKfQ=="}}}
 , {"uuid": "gse-haguichi-indicator@ztefn.github.com", "name": "Haguichi Indicator", "pname": "haguichi-indicator", "description": "Lets you control Haguichi directly from the system status area in GNOME Shell.", "link": "https://extensions.gnome.org/extension/1045/haguichi-indicator/", "shell_version_map": {"38": {"version": "17", "sha256": "1g13w8gbryjgv59bzpl9kr4w8sjy1x7b4w0dw4bbk48rpyvzpb9i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldHMgeW91IGNvbnRyb2wgSGFndWljaGkgZGlyZWN0bHkgZnJvbSB0aGUgc3lzdGVtIHN0YXR1cyBhcmVhIGluIEdOT01FIFNoZWxsLiIsCiAgIm5hbWUiOiAiSGFndWljaGkgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96dGVmbi9nc2UtaGFndWljaGktaW5kaWNhdG9yIiwKICAidXVpZCI6ICJnc2UtaGFndWljaGktaW5kaWNhdG9yQHp0ZWZuLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}, "40": {"version": "17", "sha256": "1g13w8gbryjgv59bzpl9kr4w8sjy1x7b4w0dw4bbk48rpyvzpb9i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldHMgeW91IGNvbnRyb2wgSGFndWljaGkgZGlyZWN0bHkgZnJvbSB0aGUgc3lzdGVtIHN0YXR1cyBhcmVhIGluIEdOT01FIFNoZWxsLiIsCiAgIm5hbWUiOiAiSGFndWljaGkgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96dGVmbi9nc2UtaGFndWljaGktaW5kaWNhdG9yIiwKICAidXVpZCI6ICJnc2UtaGFndWljaGktaW5kaWNhdG9yQHp0ZWZuLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}, "41": {"version": "17", "sha256": "1g13w8gbryjgv59bzpl9kr4w8sjy1x7b4w0dw4bbk48rpyvzpb9i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldHMgeW91IGNvbnRyb2wgSGFndWljaGkgZGlyZWN0bHkgZnJvbSB0aGUgc3lzdGVtIHN0YXR1cyBhcmVhIGluIEdOT01FIFNoZWxsLiIsCiAgIm5hbWUiOiAiSGFndWljaGkgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96dGVmbi9nc2UtaGFndWljaGktaW5kaWNhdG9yIiwKICAidXVpZCI6ICJnc2UtaGFndWljaGktaW5kaWNhdG9yQHp0ZWZuLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}}}
 , {"uuid": "timezone@jwendell", "name": "Timezone", "pname": "timezone", "description": "See people with their timezones from the Shell", "link": "https://extensions.gnome.org/extension/1060/timezone/", "shell_version_map": {"40": {"version": "18", "sha256": "1ksb8pm2y4lxjcwn2l0yj6piz5cqgmzx6k4rygx1mbh5y76mwdji", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlZSBwZW9wbGUgd2l0aCB0aGVpciB0aW1lem9uZXMgZnJvbSB0aGUgU2hlbGwiLAogICJuYW1lIjogIlRpbWV6b25lIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRpbWV6b25lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMyIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2p3ZW5kZWxsL2dub21lLXNoZWxsLWV4dGVuc2lvbi10aW1lem9uZSIsCiAgInV1aWQiOiAidGltZXpvbmVAandlbmRlbGwiLAogICJ2ZXJzaW9uIjogMTgKfQ=="}, "41": {"version": "19", "sha256": "0mjqwf1i8arrvdhp8m17azh1xahrhxivncscb8shyq87817cfkp6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlZSBwZW9wbGUgd2l0aCB0aGVpciB0aW1lem9uZXMgZnJvbSB0aGUgU2hlbGwiLAogICJuYW1lIjogIlRpbWV6b25lIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRpbWV6b25lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMyIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2p3ZW5kZWxsL2dub21lLXNoZWxsLWV4dGVuc2lvbi10aW1lem9uZSIsCiAgInV1aWQiOiAidGltZXpvbmVAandlbmRlbGwiLAogICJ2ZXJzaW9uIjogMTkKfQ=="}}}
 , {"uuid": "On_Screen_Keyboard_Button@bradan.eu", "name": "On Screen Keyboard Button", "pname": "on-screen-keyboard-button", "description": "Shows or hides the OSK via top bar button. It works with X, not with wayland. Wayland has it's own technique: swipe the keyboard up from the bottom display edge.\n\nSource code: https://github.com/Bradan/Gnome-On-Screen-Keyboard-Button", "link": "https://extensions.gnome.org/extension/1061/on-screen-keyboard-button/", "shell_version_map": {"38": {"version": "5", "sha256": "0z3jcv5gzv1pwfla9ghp5kjljc5n80fcab0d2c2i2pw7y7kvpabr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG9yIGhpZGVzIHRoZSBPU0sgdmlhIHRvcCBiYXIgYnV0dG9uLiBJdCB3b3JrcyB3aXRoIFgsIG5vdCB3aXRoIHdheWxhbmQuIFdheWxhbmQgaGFzIGl0J3Mgb3duIHRlY2huaXF1ZTogc3dpcGUgdGhlIGtleWJvYXJkIHVwIGZyb20gdGhlIGJvdHRvbSBkaXNwbGF5IGVkZ2UuXG5cblNvdXJjZSBjb2RlOiBodHRwczovL2dpdGh1Yi5jb20vQnJhZGFuL0dub21lLU9uLVNjcmVlbi1LZXlib2FyZC1CdXR0b24iLAogICJuYW1lIjogIk9uIFNjcmVlbiBLZXlib2FyZCBCdXR0b24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjgiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiT25fU2NyZWVuX0tleWJvYXJkX0J1dHRvbkBicmFkYW4uZXUiLAogICJ2ZXJzaW9uIjogNQp9"}}}
 , {"uuid": "System_Monitor@bghome.gmail.com", "name": "System Monitor", "pname": "system-monitor", "description": "Display resource usage.\n\nLinux distribution specific installation instructions can be found in the wiki at https://github.com/elvetemedve/gnome-shell-extension-system-monitor/wiki/Installation.\n\nPlease report bugs here: https://github.com/elvetemedve/gnome-shell-extension-system-monitor/issues", "link": "https://extensions.gnome.org/extension/1064/system-monitor/", "shell_version_map": {"38": {"version": "23", "sha256": "09waxjwbdndqin023ns8vmazzxqqijyj95dp4yyha924vmkmpplx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgcmVzb3VyY2UgdXNhZ2UuXG5cbkxpbnV4IGRpc3RyaWJ1dGlvbiBzcGVjaWZpYyBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zIGNhbiBiZSBmb3VuZCBpbiB0aGUgd2lraSBhdCBodHRwczovL2dpdGh1Yi5jb20vZWx2ZXRlbWVkdmUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN5c3RlbS1tb25pdG9yL3dpa2kvSW5zdGFsbGF0aW9uLlxuXG5QbGVhc2UgcmVwb3J0IGJ1Z3MgaGVyZTogaHR0cHM6Ly9naXRodWIuY29tL2VsdmV0ZW1lZHZlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zeXN0ZW0tbW9uaXRvci9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTeXN0ZW1fTW9uaXRvckBiZ2hvbWUuZ21haWwuY29tIiwKICAibmFtZSI6ICJTeXN0ZW0gTW9uaXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lbHZldGVtZWR2ZS9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3lzdGVtLW1vbml0b3IiLAogICJ1dWlkIjogIlN5c3RlbV9Nb25pdG9yQGJnaG9tZS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjMKfQ=="}, "40": {"version": "23", "sha256": "09waxjwbdndqin023ns8vmazzxqqijyj95dp4yyha924vmkmpplx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgcmVzb3VyY2UgdXNhZ2UuXG5cbkxpbnV4IGRpc3RyaWJ1dGlvbiBzcGVjaWZpYyBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zIGNhbiBiZSBmb3VuZCBpbiB0aGUgd2lraSBhdCBodHRwczovL2dpdGh1Yi5jb20vZWx2ZXRlbWVkdmUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN5c3RlbS1tb25pdG9yL3dpa2kvSW5zdGFsbGF0aW9uLlxuXG5QbGVhc2UgcmVwb3J0IGJ1Z3MgaGVyZTogaHR0cHM6Ly9naXRodWIuY29tL2VsdmV0ZW1lZHZlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zeXN0ZW0tbW9uaXRvci9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTeXN0ZW1fTW9uaXRvckBiZ2hvbWUuZ21haWwuY29tIiwKICAibmFtZSI6ICJTeXN0ZW0gTW9uaXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lbHZldGVtZWR2ZS9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3lzdGVtLW1vbml0b3IiLAogICJ1dWlkIjogIlN5c3RlbV9Nb25pdG9yQGJnaG9tZS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjMKfQ=="}, "41": {"version": "23", "sha256": "09waxjwbdndqin023ns8vmazzxqqijyj95dp4yyha924vmkmpplx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgcmVzb3VyY2UgdXNhZ2UuXG5cbkxpbnV4IGRpc3RyaWJ1dGlvbiBzcGVjaWZpYyBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zIGNhbiBiZSBmb3VuZCBpbiB0aGUgd2lraSBhdCBodHRwczovL2dpdGh1Yi5jb20vZWx2ZXRlbWVkdmUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN5c3RlbS1tb25pdG9yL3dpa2kvSW5zdGFsbGF0aW9uLlxuXG5QbGVhc2UgcmVwb3J0IGJ1Z3MgaGVyZTogaHR0cHM6Ly9naXRodWIuY29tL2VsdmV0ZW1lZHZlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zeXN0ZW0tbW9uaXRvci9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTeXN0ZW1fTW9uaXRvckBiZ2hvbWUuZ21haWwuY29tIiwKICAibmFtZSI6ICJTeXN0ZW0gTW9uaXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lbHZldGVtZWR2ZS9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3lzdGVtLW1vbml0b3IiLAogICJ1dWlkIjogIlN5c3RlbV9Nb25pdG9yQGJnaG9tZS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjMKfQ=="}}}
 , {"uuid": "syncthing@gnome.2nv2u.com", "name": "Syncthing Indicator", "pname": "syncthing-indicator", "description": "Shell indicator for starting, monitoring and controlling the Syncthing daemon using SystemD", "link": "https://extensions.gnome.org/extension/1070/syncthing-indicator/", "shell_version_map": {"38": {"version": "23", "sha256": "1d03ysx73z56a6y0mvypryi92qcyjr9nbz799llydgzrhvbd8h1a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNoZWxsIGluZGljYXRvciBmb3Igc3RhcnRpbmcsIG1vbml0b3JpbmcgYW5kIGNvbnRyb2xsaW5nIHRoZSBTeW5jdGhpbmcgZGFlbW9uIHVzaW5nIFN5c3RlbUQiLAogICJuYW1lIjogIlN5bmN0aGluZyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tLzJudjJ1L2dub21lLXNoZWxsLWV4dGVuc2lvbi1zeW5jdGhpbmctaW5kaWNhdG9yIiwKICAidXVpZCI6ICJzeW5jdGhpbmdAZ25vbWUuMm52MnUuY29tIiwKICAidmVyc2lvbiI6IDIzCn0="}, "40": {"version": "23", "sha256": "1d03ysx73z56a6y0mvypryi92qcyjr9nbz799llydgzrhvbd8h1a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNoZWxsIGluZGljYXRvciBmb3Igc3RhcnRpbmcsIG1vbml0b3JpbmcgYW5kIGNvbnRyb2xsaW5nIHRoZSBTeW5jdGhpbmcgZGFlbW9uIHVzaW5nIFN5c3RlbUQiLAogICJuYW1lIjogIlN5bmN0aGluZyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tLzJudjJ1L2dub21lLXNoZWxsLWV4dGVuc2lvbi1zeW5jdGhpbmctaW5kaWNhdG9yIiwKICAidXVpZCI6ICJzeW5jdGhpbmdAZ25vbWUuMm52MnUuY29tIiwKICAidmVyc2lvbiI6IDIzCn0="}, "41": {"version": "23", "sha256": "1d03ysx73z56a6y0mvypryi92qcyjr9nbz799llydgzrhvbd8h1a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNoZWxsIGluZGljYXRvciBmb3Igc3RhcnRpbmcsIG1vbml0b3JpbmcgYW5kIGNvbnRyb2xsaW5nIHRoZSBTeW5jdGhpbmcgZGFlbW9uIHVzaW5nIFN5c3RlbUQiLAogICJuYW1lIjogIlN5bmN0aGluZyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tLzJudjJ1L2dub21lLXNoZWxsLWV4dGVuc2lvbi1zeW5jdGhpbmctaW5kaWNhdG9yIiwKICAidXVpZCI6ICJzeW5jdGhpbmdAZ25vbWUuMm52MnUuY29tIiwKICAidmVyc2lvbiI6IDIzCn0="}}}
 , {"uuid": "applications-overview-tooltip@RaphaelRochet", "name": "Applications Overview Tooltip", "pname": "applications-overview-tooltip", "description": "Shows a tooltip over applications icons on applications overview with application name and/or description.", "link": "https://extensions.gnome.org/extension/1071/applications-overview-tooltip/", "shell_version_map": {"38": {"version": "11", "sha256": "0alvg0l46hls3jz3a5ic21fgbjbg0kv0nn0pkknzsgjfw5mmwz69", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgdG9vbHRpcCBvdmVyIGFwcGxpY2F0aW9ucyBpY29ucyBvbiBhcHBsaWNhdGlvbnMgb3ZlcnZpZXcgd2l0aCBhcHBsaWNhdGlvbiBuYW1lIGFuZC9vciBkZXNjcmlwdGlvbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhcHBsaWNhdGlvbnMtb3ZlcnZpZXctdG9vbHRpcCIsCiAgIm5hbWUiOiAiQXBwbGljYXRpb25zIE92ZXJ2aWV3IFRvb2x0aXAiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwbGljYXRpb25zLW92ZXJ2aWV3LXRvb2x0aXAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SYXBoYWVsUm9jaGV0L2FwcGxpY2F0aW9ucy1vdmVydmlldy10b29sdGlwIiwKICAidXVpZCI6ICJhcHBsaWNhdGlvbnMtb3ZlcnZpZXctdG9vbHRpcEBSYXBoYWVsUm9jaGV0IiwKICAidmVyc2lvbiI6IDExCn0="}, "40": {"version": "14", "sha256": "1vv5hvmg987vp8rdyvfff089h99m8xqrhyfbrgbipgy7862yf6lq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgdG9vbHRpcCBvdmVyIGFwcGxpY2F0aW9ucyBpY29ucyBvbiBhcHBsaWNhdGlvbnMgb3ZlcnZpZXcgd2l0aCBhcHBsaWNhdGlvbiBuYW1lIGFuZC9vciBkZXNjcmlwdGlvbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhcHBsaWNhdGlvbnMtb3ZlcnZpZXctdG9vbHRpcCIsCiAgIm5hbWUiOiAiQXBwbGljYXRpb25zIE92ZXJ2aWV3IFRvb2x0aXAiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwbGljYXRpb25zLW92ZXJ2aWV3LXRvb2x0aXAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JhcGhhZWxSb2NoZXQvYXBwbGljYXRpb25zLW92ZXJ2aWV3LXRvb2x0aXAiLAogICJ1dWlkIjogImFwcGxpY2F0aW9ucy1vdmVydmlldy10b29sdGlwQFJhcGhhZWxSb2NoZXQiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "41": {"version": "14", "sha256": "1vv5hvmg987vp8rdyvfff089h99m8xqrhyfbrgbipgy7862yf6lq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgdG9vbHRpcCBvdmVyIGFwcGxpY2F0aW9ucyBpY29ucyBvbiBhcHBsaWNhdGlvbnMgb3ZlcnZpZXcgd2l0aCBhcHBsaWNhdGlvbiBuYW1lIGFuZC9vciBkZXNjcmlwdGlvbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhcHBsaWNhdGlvbnMtb3ZlcnZpZXctdG9vbHRpcCIsCiAgIm5hbWUiOiAiQXBwbGljYXRpb25zIE92ZXJ2aWV3IFRvb2x0aXAiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwbGljYXRpb25zLW92ZXJ2aWV3LXRvb2x0aXAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JhcGhhZWxSb2NoZXQvYXBwbGljYXRpb25zLW92ZXJ2aWV3LXRvb2x0aXAiLAogICJ1dWlkIjogImFwcGxpY2F0aW9ucy1vdmVydmlldy10b29sdGlwQFJhcGhhZWxSb2NoZXQiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}}}
-, {"uuid": "TwitchLive_Panel@extensions.maweki.de", "name": "TwitchLive Panel", "pname": "twitchlive-panel", "description": "A panel showing whether your favorite Twitch.tv streamers are streaming.\n\nCycles through the online streamers if multiples are configured. Click on the panel and then on streamer's name to launch the stream with a custom command (your browser or some other application).\n\nNeeds curl and mogrify to fully support streamer logos. For an extension version compatible with shell version 3.30 or earlier visit our github page.", "link": "https://extensions.gnome.org/extension/1078/twitchlive-panel/", "shell_version_map": {"40": {"version": "36", "sha256": "086g5aq3abq2vd0l0fa2a77gj7hi4ga4i316x7zq0bl80qz3zzd3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgcGFuZWwgc2hvd2luZyB3aGV0aGVyIHlvdXIgZmF2b3JpdGUgVHdpdGNoLnR2IHN0cmVhbWVycyBhcmUgc3RyZWFtaW5nLlxuXG5DeWNsZXMgdGhyb3VnaCB0aGUgb25saW5lIHN0cmVhbWVycyBpZiBtdWx0aXBsZXMgYXJlIGNvbmZpZ3VyZWQuIENsaWNrIG9uIHRoZSBwYW5lbCBhbmQgdGhlbiBvbiBzdHJlYW1lcidzIG5hbWUgdG8gbGF1bmNoIHRoZSBzdHJlYW0gd2l0aCBhIGN1c3RvbSBjb21tYW5kICh5b3VyIGJyb3dzZXIgb3Igc29tZSBvdGhlciBhcHBsaWNhdGlvbikuXG5cbk5lZWRzIGN1cmwgYW5kIG1vZ3JpZnkgdG8gZnVsbHkgc3VwcG9ydCBzdHJlYW1lciBsb2dvcy4gRm9yIGFuIGV4dGVuc2lvbiB2ZXJzaW9uIGNvbXBhdGlibGUgd2l0aCBzaGVsbCB2ZXJzaW9uIDMuMzAgb3IgZWFybGllciB2aXNpdCBvdXIgZ2l0aHViIHBhZ2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidHdpdGNobGl2ZSIsCiAgIm5hbWUiOiAiVHdpdGNoTGl2ZSBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50d2l0Y2hsaXZlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXdla2kvdHdpdGNobGl2ZS1leHRlbnNpb24iLAogICJ1dWlkIjogIlR3aXRjaExpdmVfUGFuZWxAZXh0ZW5zaW9ucy5tYXdla2kuZGUiLAogICJ2ZXJzaW9uIjogMzYKfQ=="}, "41": {"version": "36", "sha256": "086g5aq3abq2vd0l0fa2a77gj7hi4ga4i316x7zq0bl80qz3zzd3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgcGFuZWwgc2hvd2luZyB3aGV0aGVyIHlvdXIgZmF2b3JpdGUgVHdpdGNoLnR2IHN0cmVhbWVycyBhcmUgc3RyZWFtaW5nLlxuXG5DeWNsZXMgdGhyb3VnaCB0aGUgb25saW5lIHN0cmVhbWVycyBpZiBtdWx0aXBsZXMgYXJlIGNvbmZpZ3VyZWQuIENsaWNrIG9uIHRoZSBwYW5lbCBhbmQgdGhlbiBvbiBzdHJlYW1lcidzIG5hbWUgdG8gbGF1bmNoIHRoZSBzdHJlYW0gd2l0aCBhIGN1c3RvbSBjb21tYW5kICh5b3VyIGJyb3dzZXIgb3Igc29tZSBvdGhlciBhcHBsaWNhdGlvbikuXG5cbk5lZWRzIGN1cmwgYW5kIG1vZ3JpZnkgdG8gZnVsbHkgc3VwcG9ydCBzdHJlYW1lciBsb2dvcy4gRm9yIGFuIGV4dGVuc2lvbiB2ZXJzaW9uIGNvbXBhdGlibGUgd2l0aCBzaGVsbCB2ZXJzaW9uIDMuMzAgb3IgZWFybGllciB2aXNpdCBvdXIgZ2l0aHViIHBhZ2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidHdpdGNobGl2ZSIsCiAgIm5hbWUiOiAiVHdpdGNoTGl2ZSBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50d2l0Y2hsaXZlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXdla2kvdHdpdGNobGl2ZS1leHRlbnNpb24iLAogICJ1dWlkIjogIlR3aXRjaExpdmVfUGFuZWxAZXh0ZW5zaW9ucy5tYXdla2kuZGUiLAogICJ2ZXJzaW9uIjogMzYKfQ=="}}}
+, {"uuid": "TwitchLive_Panel@extensions.maweki.de", "name": "TwitchLive Panel", "pname": "twitchlive-panel", "description": "A panel showing whether your favorite Twitch.tv streamers are streaming.\n\nCycles through the online streamers if multiples are configured. Click on the panel and then on streamer's name to launch the stream with a custom command (your browser or some other application).\n\nNeeds curl and mogrify to fully support streamer logos. For an extension version compatible with shell version 3.30 or earlier visit our github page.", "link": "https://extensions.gnome.org/extension/1078/twitchlive-panel/", "shell_version_map": {"40": {"version": "37", "sha256": "0g1s5f3si8hlgf3m033c1c9fxydhs3wcykf4rr1pkzd54q6a8vq9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgcGFuZWwgc2hvd2luZyB3aGV0aGVyIHlvdXIgZmF2b3JpdGUgVHdpdGNoLnR2IHN0cmVhbWVycyBhcmUgc3RyZWFtaW5nLlxuXG5DeWNsZXMgdGhyb3VnaCB0aGUgb25saW5lIHN0cmVhbWVycyBpZiBtdWx0aXBsZXMgYXJlIGNvbmZpZ3VyZWQuIENsaWNrIG9uIHRoZSBwYW5lbCBhbmQgdGhlbiBvbiBzdHJlYW1lcidzIG5hbWUgdG8gbGF1bmNoIHRoZSBzdHJlYW0gd2l0aCBhIGN1c3RvbSBjb21tYW5kICh5b3VyIGJyb3dzZXIgb3Igc29tZSBvdGhlciBhcHBsaWNhdGlvbikuXG5cbk5lZWRzIGN1cmwgYW5kIG1vZ3JpZnkgdG8gZnVsbHkgc3VwcG9ydCBzdHJlYW1lciBsb2dvcy4gRm9yIGFuIGV4dGVuc2lvbiB2ZXJzaW9uIGNvbXBhdGlibGUgd2l0aCBzaGVsbCB2ZXJzaW9uIDMuMzAgb3IgZWFybGllciB2aXNpdCBvdXIgZ2l0aHViIHBhZ2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidHdpdGNobGl2ZSIsCiAgIm5hbWUiOiAiVHdpdGNoTGl2ZSBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50d2l0Y2hsaXZlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXdla2kvdHdpdGNobGl2ZS1leHRlbnNpb24iLAogICJ1dWlkIjogIlR3aXRjaExpdmVfUGFuZWxAZXh0ZW5zaW9ucy5tYXdla2kuZGUiLAogICJ2ZXJzaW9uIjogMzcKfQ=="}, "41": {"version": "37", "sha256": "0g1s5f3si8hlgf3m033c1c9fxydhs3wcykf4rr1pkzd54q6a8vq9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgcGFuZWwgc2hvd2luZyB3aGV0aGVyIHlvdXIgZmF2b3JpdGUgVHdpdGNoLnR2IHN0cmVhbWVycyBhcmUgc3RyZWFtaW5nLlxuXG5DeWNsZXMgdGhyb3VnaCB0aGUgb25saW5lIHN0cmVhbWVycyBpZiBtdWx0aXBsZXMgYXJlIGNvbmZpZ3VyZWQuIENsaWNrIG9uIHRoZSBwYW5lbCBhbmQgdGhlbiBvbiBzdHJlYW1lcidzIG5hbWUgdG8gbGF1bmNoIHRoZSBzdHJlYW0gd2l0aCBhIGN1c3RvbSBjb21tYW5kICh5b3VyIGJyb3dzZXIgb3Igc29tZSBvdGhlciBhcHBsaWNhdGlvbikuXG5cbk5lZWRzIGN1cmwgYW5kIG1vZ3JpZnkgdG8gZnVsbHkgc3VwcG9ydCBzdHJlYW1lciBsb2dvcy4gRm9yIGFuIGV4dGVuc2lvbiB2ZXJzaW9uIGNvbXBhdGlibGUgd2l0aCBzaGVsbCB2ZXJzaW9uIDMuMzAgb3IgZWFybGllciB2aXNpdCBvdXIgZ2l0aHViIHBhZ2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidHdpdGNobGl2ZSIsCiAgIm5hbWUiOiAiVHdpdGNoTGl2ZSBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50d2l0Y2hsaXZlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXdla2kvdHdpdGNobGl2ZS1leHRlbnNpb24iLAogICJ1dWlkIjogIlR3aXRjaExpdmVfUGFuZWxAZXh0ZW5zaW9ucy5tYXdla2kuZGUiLAogICJ2ZXJzaW9uIjogMzcKfQ=="}}}
 , {"uuid": "cpufreq@konkor", "name": "cpufreq", "pname": "cpufreq", "description": "System Monitor and Power Manager.\n\nThis is a lightweight system monitor and power management tool. It needs root permission to able changing governors.\n\nFeatures:\n⚫ Compatible with many hardware architectures;\n⚫ CPU Frequency monitoring;\n⚫ CPU Governor management;\n⚫ CPU Frequency speed limits;\n⚫ CPU Boost supporting;\n⚫ CPU Core Power on/off;\n⚫ Saving/Restoring settings...\n\nFor more information and how-to see README.md", "link": "https://extensions.gnome.org/extension/1082/cpufreq/", "shell_version_map": {"38": {"version": "50", "sha256": "0s4hgdh4yg5dachns0zf3m7xyc7ycc6jjapg3b3352i0rgw8cfdw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5c3RlbSBNb25pdG9yIGFuZCBQb3dlciBNYW5hZ2VyLlxuXG5UaGlzIGlzIGEgbGlnaHR3ZWlnaHQgc3lzdGVtIG1vbml0b3IgYW5kIHBvd2VyIG1hbmFnZW1lbnQgdG9vbC4gSXQgbmVlZHMgcm9vdCBwZXJtaXNzaW9uIHRvIGFibGUgY2hhbmdpbmcgZ292ZXJub3JzLlxuXG5GZWF0dXJlczpcblx1MjZhYiBDb21wYXRpYmxlIHdpdGggbWFueSBoYXJkd2FyZSBhcmNoaXRlY3R1cmVzO1xuXHUyNmFiIENQVSBGcmVxdWVuY3kgbW9uaXRvcmluZztcblx1MjZhYiBDUFUgR292ZXJub3IgbWFuYWdlbWVudDtcblx1MjZhYiBDUFUgRnJlcXVlbmN5IHNwZWVkIGxpbWl0cztcblx1MjZhYiBDUFUgQm9vc3Qgc3VwcG9ydGluZztcblx1MjZhYiBDUFUgQ29yZSBQb3dlciBvbi9vZmY7XG5cdTI2YWIgU2F2aW5nL1Jlc3RvcmluZyBzZXR0aW5ncy4uLlxuXG5Gb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgaG93LXRvIHNlZSBSRUFETUUubWQiLAogICJuYW1lIjogImNwdWZyZXEiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3B1ZnJlcSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rb25rb3IvY3B1ZnJlcSIsCiAgInV1aWQiOiAiY3B1ZnJlcUBrb25rb3IiLAogICJ2ZXJzaW9uIjogNTAKfQ=="}, "40": {"version": "50", "sha256": "0s4hgdh4yg5dachns0zf3m7xyc7ycc6jjapg3b3352i0rgw8cfdw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5c3RlbSBNb25pdG9yIGFuZCBQb3dlciBNYW5hZ2VyLlxuXG5UaGlzIGlzIGEgbGlnaHR3ZWlnaHQgc3lzdGVtIG1vbml0b3IgYW5kIHBvd2VyIG1hbmFnZW1lbnQgdG9vbC4gSXQgbmVlZHMgcm9vdCBwZXJtaXNzaW9uIHRvIGFibGUgY2hhbmdpbmcgZ292ZXJub3JzLlxuXG5GZWF0dXJlczpcblx1MjZhYiBDb21wYXRpYmxlIHdpdGggbWFueSBoYXJkd2FyZSBhcmNoaXRlY3R1cmVzO1xuXHUyNmFiIENQVSBGcmVxdWVuY3kgbW9uaXRvcmluZztcblx1MjZhYiBDUFUgR292ZXJub3IgbWFuYWdlbWVudDtcblx1MjZhYiBDUFUgRnJlcXVlbmN5IHNwZWVkIGxpbWl0cztcblx1MjZhYiBDUFUgQm9vc3Qgc3VwcG9ydGluZztcblx1MjZhYiBDUFUgQ29yZSBQb3dlciBvbi9vZmY7XG5cdTI2YWIgU2F2aW5nL1Jlc3RvcmluZyBzZXR0aW5ncy4uLlxuXG5Gb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgaG93LXRvIHNlZSBSRUFETUUubWQiLAogICJuYW1lIjogImNwdWZyZXEiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3B1ZnJlcSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rb25rb3IvY3B1ZnJlcSIsCiAgInV1aWQiOiAiY3B1ZnJlcUBrb25rb3IiLAogICJ2ZXJzaW9uIjogNTAKfQ=="}}}
 , {"uuid": "simplenetspeed@biji.extension", "name": "Simple net speed", "pname": "simple-net-speed", "description": "Simply showing network speed. Left click to change modes:\n\n1. Total net speed in bits per second\n2. Total net speed in Bytes per second\n3. Up & down speed in bits per second\n4. Up & down speed in Bytes per second\n5. Total of downloaded in Bytes (Right click to reset counter)\n\nMiddle click to change font size", "link": "https://extensions.gnome.org/extension/1085/simple-net-speed/", "shell_version_map": {"38": {"version": "23", "sha256": "16g6203q6d8il018rf8zhh6gziybpczc6r5v5289kz0i343bmkfj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBseSBzaG93aW5nIG5ldHdvcmsgc3BlZWQuIExlZnQgY2xpY2sgdG8gY2hhbmdlIG1vZGVzOlxuXG4xLiBUb3RhbCBuZXQgc3BlZWQgaW4gYml0cyBwZXIgc2Vjb25kXG4yLiBUb3RhbCBuZXQgc3BlZWQgaW4gQnl0ZXMgcGVyIHNlY29uZFxuMy4gVXAgJiBkb3duIHNwZWVkIGluIGJpdHMgcGVyIHNlY29uZFxuNC4gVXAgJiBkb3duIHNwZWVkIGluIEJ5dGVzIHBlciBzZWNvbmRcbjUuIFRvdGFsIG9mIGRvd25sb2FkZWQgaW4gQnl0ZXMgKFJpZ2h0IGNsaWNrIHRvIHJlc2V0IGNvdW50ZXIpXG5cbk1pZGRsZSBjbGljayB0byBjaGFuZ2UgZm9udCBzaXplIiwKICAibmFtZSI6ICJTaW1wbGUgbmV0IHNwZWVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iaWppL3NpbXBsZW5ldHNwZWVkIiwKICAidXVpZCI6ICJzaW1wbGVuZXRzcGVlZEBiaWppLmV4dGVuc2lvbiIsCiAgInZlcnNpb24iOiAyMwp9"}, "40": {"version": "23", "sha256": "16g6203q6d8il018rf8zhh6gziybpczc6r5v5289kz0i343bmkfj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBseSBzaG93aW5nIG5ldHdvcmsgc3BlZWQuIExlZnQgY2xpY2sgdG8gY2hhbmdlIG1vZGVzOlxuXG4xLiBUb3RhbCBuZXQgc3BlZWQgaW4gYml0cyBwZXIgc2Vjb25kXG4yLiBUb3RhbCBuZXQgc3BlZWQgaW4gQnl0ZXMgcGVyIHNlY29uZFxuMy4gVXAgJiBkb3duIHNwZWVkIGluIGJpdHMgcGVyIHNlY29uZFxuNC4gVXAgJiBkb3duIHNwZWVkIGluIEJ5dGVzIHBlciBzZWNvbmRcbjUuIFRvdGFsIG9mIGRvd25sb2FkZWQgaW4gQnl0ZXMgKFJpZ2h0IGNsaWNrIHRvIHJlc2V0IGNvdW50ZXIpXG5cbk1pZGRsZSBjbGljayB0byBjaGFuZ2UgZm9udCBzaXplIiwKICAibmFtZSI6ICJTaW1wbGUgbmV0IHNwZWVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iaWppL3NpbXBsZW5ldHNwZWVkIiwKICAidXVpZCI6ICJzaW1wbGVuZXRzcGVlZEBiaWppLmV4dGVuc2lvbiIsCiAgInZlcnNpb24iOiAyMwp9"}, "41": {"version": "23", "sha256": "16g6203q6d8il018rf8zhh6gziybpczc6r5v5289kz0i343bmkfj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBseSBzaG93aW5nIG5ldHdvcmsgc3BlZWQuIExlZnQgY2xpY2sgdG8gY2hhbmdlIG1vZGVzOlxuXG4xLiBUb3RhbCBuZXQgc3BlZWQgaW4gYml0cyBwZXIgc2Vjb25kXG4yLiBUb3RhbCBuZXQgc3BlZWQgaW4gQnl0ZXMgcGVyIHNlY29uZFxuMy4gVXAgJiBkb3duIHNwZWVkIGluIGJpdHMgcGVyIHNlY29uZFxuNC4gVXAgJiBkb3duIHNwZWVkIGluIEJ5dGVzIHBlciBzZWNvbmRcbjUuIFRvdGFsIG9mIGRvd25sb2FkZWQgaW4gQnl0ZXMgKFJpZ2h0IGNsaWNrIHRvIHJlc2V0IGNvdW50ZXIpXG5cbk1pZGRsZSBjbGljayB0byBjaGFuZ2UgZm9udCBzaXplIiwKICAibmFtZSI6ICJTaW1wbGUgbmV0IHNwZWVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iaWppL3NpbXBsZW5ldHNwZWVkIiwKICAidXVpZCI6ICJzaW1wbGVuZXRzcGVlZEBiaWppLmV4dGVuc2lvbiIsCiAgInZlcnNpb24iOiAyMwp9"}}}
 , {"uuid": "gnome-shell-go-to-last-workspace@github.com", "name": "Go To Last Workspace", "pname": "go-to-last-workspace", "description": "Quickly toggle between two workspaces with one key", "link": "https://extensions.gnome.org/extension/1089/go-to-last-workspace/", "shell_version_map": {"38": {"version": "7", "sha256": "19jyrfhniz65xfrwzpph4i33mwpbfshy5bc79vxd5fy4qa0p6scp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgdG9nZ2xlIGJldHdlZW4gdHdvIHdvcmtzcGFjZXMgd2l0aCBvbmUga2V5IiwKICAibmFtZSI6ICJHbyBUbyBMYXN0IFdvcmtzcGFjZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nby10by1sYXN0LXdvcmtzcGFjZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcmphbi9nbm9tZS1zaGVsbC1nby10by1sYXN0LXdvcmtzcGFjZSIsCiAgInV1aWQiOiAiZ25vbWUtc2hlbGwtZ28tdG8tbGFzdC13b3Jrc3BhY2VAZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}, "40": {"version": "7", "sha256": "19jyrfhniz65xfrwzpph4i33mwpbfshy5bc79vxd5fy4qa0p6scp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgdG9nZ2xlIGJldHdlZW4gdHdvIHdvcmtzcGFjZXMgd2l0aCBvbmUga2V5IiwKICAibmFtZSI6ICJHbyBUbyBMYXN0IFdvcmtzcGFjZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nby10by1sYXN0LXdvcmtzcGFjZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcmphbi9nbm9tZS1zaGVsbC1nby10by1sYXN0LXdvcmtzcGFjZSIsCiAgInV1aWQiOiAiZ25vbWUtc2hlbGwtZ28tdG8tbGFzdC13b3Jrc3BhY2VAZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}}}
@@ -143,9 +144,9 @@
 , {"uuid": "switchWorkSpace@sun.wxg@gmail.com", "name": "Switch Workspace", "pname": "switch-workspace", "description": "Switch workspace like using ALT+TAB key to switch windows \n\n Default shortcut key to switch workspace is Ctrl+Above_Tab .", "link": "https://extensions.gnome.org/extension/1231/switch-workspace/", "shell_version_map": {"38": {"version": "30", "sha256": "1z6dafy981y2kjbnk9dncnkkpgqk45njbh3k08s3jg385qvfryvg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB3b3Jrc3BhY2UgbGlrZSB1c2luZyBBTFQrVEFCIGtleSB0byBzd2l0Y2ggd2luZG93cyBcblxuIERlZmF1bHQgc2hvcnRjdXQga2V5IHRvIHN3aXRjaCB3b3Jrc3BhY2UgaXMgQ3RybCtBYm92ZV9UYWIgLiIsCiAgIm5hbWUiOiAiU3dpdGNoIFdvcmtzcGFjZSIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAic3VuLnd4Z0BnbWFpbC5jb20iCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3Vud3hnL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zd2l0Y2h3b3Jrc3BhY2UiLAogICJ1dWlkIjogInN3aXRjaFdvcmtTcGFjZUBzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzMAp9"}, "40": {"version": "32", "sha256": "1m9aca2vwq0krpvl0iq7x3fiq2yspjmlzw9i7phylija8lsw1cgp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB3b3Jrc3BhY2UgbGlrZSB1c2luZyBBTFQrVEFCIGtleSB0byBzd2l0Y2ggd2luZG93cyBcblxuIERlZmF1bHQgc2hvcnRjdXQga2V5IHRvIHN3aXRjaCB3b3Jrc3BhY2UgaXMgQ3RybCtBYm92ZV9UYWIgLiIsCiAgIm5hbWUiOiAiU3dpdGNoIFdvcmtzcGFjZSIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAic3VuLnd4Z0BnbWFpbC5jb20iCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN3aXRjaHdvcmtzcGFjZSIsCiAgInV1aWQiOiAic3dpdGNoV29ya1NwYWNlQHN1bi53eGdAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDMyCn0="}, "41": {"version": "32", "sha256": "1m9aca2vwq0krpvl0iq7x3fiq2yspjmlzw9i7phylija8lsw1cgp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB3b3Jrc3BhY2UgbGlrZSB1c2luZyBBTFQrVEFCIGtleSB0byBzd2l0Y2ggd2luZG93cyBcblxuIERlZmF1bHQgc2hvcnRjdXQga2V5IHRvIHN3aXRjaCB3b3Jrc3BhY2UgaXMgQ3RybCtBYm92ZV9UYWIgLiIsCiAgIm5hbWUiOiAiU3dpdGNoIFdvcmtzcGFjZSIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAic3VuLnd4Z0BnbWFpbC5jb20iCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN3aXRjaHdvcmtzcGFjZSIsCiAgInV1aWQiOiAic3dpdGNoV29ya1NwYWNlQHN1bi53eGdAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDMyCn0="}}}
 , {"uuid": "noannoyance@sindex.com", "name": "NoAnnoyance", "pname": "noannoyance", "description": "Disable the “Window is ready” notification.", "link": "https://extensions.gnome.org/extension/1236/noannoyance/", "shell_version_map": {"38": {"version": "5", "sha256": "0x7p3i9qws8pgj3y2raw2vfgjwqm6rprrn3s7lck5bjx9ydri5b6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgdGhlIFx1MjAxY1dpbmRvdyBpcyByZWFkeVx1MjAxZCBub3RpZmljYXRpb24uIiwKICAibmFtZSI6ICJOb0Fubm95YW5jZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zaW5kZXgvbm8tYW5ub3lhbmNlIiwKICAidXVpZCI6ICJub2Fubm95YW5jZUBzaW5kZXguY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "40": {"version": "5", "sha256": "0x7p3i9qws8pgj3y2raw2vfgjwqm6rprrn3s7lck5bjx9ydri5b6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgdGhlIFx1MjAxY1dpbmRvdyBpcyByZWFkeVx1MjAxZCBub3RpZmljYXRpb24uIiwKICAibmFtZSI6ICJOb0Fubm95YW5jZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zaW5kZXgvbm8tYW5ub3lhbmNlIiwKICAidXVpZCI6ICJub2Fubm95YW5jZUBzaW5kZXguY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
 , {"uuid": "SomaFm-Radio@alireza6677.gmail.com", "name": "SomaFM internet radio", "pname": "somafm-internet-radio", "description": "Listen to SomaFm free internet radio in your GNOME desktop\n\n* Featues:\n- 32+ Channels\n- Volume slider\n- Favorites menu\n- Good sound quality\n- Supports most gnome-shell versions\n- Channel logos\n\n* Requirements:\n- Gstreamer and plugins:\nYou need to install 'gstreamer' and multimedia codecs/plugins for your distro.", "link": "https://extensions.gnome.org/extension/1237/somafm-internet-radio/", "shell_version_map": {"38": {"version": "29", "sha256": "07l6sa58azf3sav6858q48cbqazavq9bflfxdn0p9ys29h6mf50c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpc3RlbiB0byBTb21hRm0gZnJlZSBpbnRlcm5ldCByYWRpbyBpbiB5b3VyIEdOT01FIGRlc2t0b3BcblxuKiBGZWF0dWVzOlxuLSAzMisgQ2hhbm5lbHNcbi0gVm9sdW1lIHNsaWRlclxuLSBGYXZvcml0ZXMgbWVudVxuLSBHb29kIHNvdW5kIHF1YWxpdHlcbi0gU3VwcG9ydHMgbW9zdCBnbm9tZS1zaGVsbCB2ZXJzaW9uc1xuLSBDaGFubmVsIGxvZ29zXG5cbiogUmVxdWlyZW1lbnRzOlxuLSBHc3RyZWFtZXIgYW5kIHBsdWdpbnM6XG5Zb3UgbmVlZCB0byBpbnN0YWxsICdnc3RyZWFtZXInIGFuZCBtdWx0aW1lZGlhIGNvZGVjcy9wbHVnaW5zIGZvciB5b3VyIGRpc3Ryby4iLAogICJuYW1lIjogIlNvbWFGTSBpbnRlcm5ldCByYWRpbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cDovL2dpdGh1Yi5jb20vVGhlV2VpcmREZXYvc29tYWZtLXJhZGlvLWdub21lLWV4dCIsCiAgInV1aWQiOiAiU29tYUZtLVJhZGlvQGFsaXJlemE2Njc3LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyOQp9"}, "40": {"version": "29", "sha256": "07l6sa58azf3sav6858q48cbqazavq9bflfxdn0p9ys29h6mf50c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpc3RlbiB0byBTb21hRm0gZnJlZSBpbnRlcm5ldCByYWRpbyBpbiB5b3VyIEdOT01FIGRlc2t0b3BcblxuKiBGZWF0dWVzOlxuLSAzMisgQ2hhbm5lbHNcbi0gVm9sdW1lIHNsaWRlclxuLSBGYXZvcml0ZXMgbWVudVxuLSBHb29kIHNvdW5kIHF1YWxpdHlcbi0gU3VwcG9ydHMgbW9zdCBnbm9tZS1zaGVsbCB2ZXJzaW9uc1xuLSBDaGFubmVsIGxvZ29zXG5cbiogUmVxdWlyZW1lbnRzOlxuLSBHc3RyZWFtZXIgYW5kIHBsdWdpbnM6XG5Zb3UgbmVlZCB0byBpbnN0YWxsICdnc3RyZWFtZXInIGFuZCBtdWx0aW1lZGlhIGNvZGVjcy9wbHVnaW5zIGZvciB5b3VyIGRpc3Ryby4iLAogICJuYW1lIjogIlNvbWFGTSBpbnRlcm5ldCByYWRpbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cDovL2dpdGh1Yi5jb20vVGhlV2VpcmREZXYvc29tYWZtLXJhZGlvLWdub21lLWV4dCIsCiAgInV1aWQiOiAiU29tYUZtLVJhZGlvQGFsaXJlemE2Njc3LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyOQp9"}}}
-, {"uuid": "timepp@zagortenay333", "name": "Time ++", "pname": "time", "description": "A todo.txt manager, time tracker, timer, stopwatch, pomodoro, and alarm clock", "link": "https://extensions.gnome.org/extension/1238/time/", "shell_version_map": {"38": {"version": "160", "sha256": "0gra4vm7qgg1hd1k0grj146f9q5w1h1k4wcn4v4m2vq77xbwjwq5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNhY2hlLWZpbGUtZm9ybWF0LXZlcnNpb24iOiB7CiAgICAiYWxhcm1zIjogMywKICAgICJwb21vZG9ybyI6IDMsCiAgICAic3RvcHdhdGNoIjogNCwKICAgICJ0aW1lciI6IDMsCiAgICAidG9kbyI6IDEwCiAgfSwKICAiZGVzY3JpcHRpb24iOiAiQSB0b2RvLnR4dCBtYW5hZ2VyLCB0aW1lIHRyYWNrZXIsIHRpbWVyLCBzdG9wd2F0Y2gsIHBvbW9kb3JvLCBhbmQgYWxhcm0gY2xvY2siLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ0aW1lcHAiLAogICJpc3N1ZXNfdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96YWdvcnRlbmF5MzMzL3RpbWVwcF9fZ25vbWUvaXNzdWVzIiwKICAibmFtZSI6ICJUaW1lICsrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImh0dHBzOi8vZ2l0aHViLmNvbS96YWdvcnRlbmF5MzMzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidHJhbnNsYXRpb25zX3VybCI6ICJodHRwczovL2dpdGh1Yi5jb20vemFnb3J0ZW5heTMzMy90aW1lcHBfX2dub21lL3RyZWUvbWFzdGVyL2RhdGEvcG9fZmlsZXMiLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3phZ29ydGVuYXkzMzMvdGltZXBwX19nbm9tZSIsCiAgInV1aWQiOiAidGltZXBwQHphZ29ydGVuYXkzMzMiLAogICJ2ZXJzaW9uIjogMTYwCn0="}, "40": {"version": "160", "sha256": "0gra4vm7qgg1hd1k0grj146f9q5w1h1k4wcn4v4m2vq77xbwjwq5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNhY2hlLWZpbGUtZm9ybWF0LXZlcnNpb24iOiB7CiAgICAiYWxhcm1zIjogMywKICAgICJwb21vZG9ybyI6IDMsCiAgICAic3RvcHdhdGNoIjogNCwKICAgICJ0aW1lciI6IDMsCiAgICAidG9kbyI6IDEwCiAgfSwKICAiZGVzY3JpcHRpb24iOiAiQSB0b2RvLnR4dCBtYW5hZ2VyLCB0aW1lIHRyYWNrZXIsIHRpbWVyLCBzdG9wd2F0Y2gsIHBvbW9kb3JvLCBhbmQgYWxhcm0gY2xvY2siLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ0aW1lcHAiLAogICJpc3N1ZXNfdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96YWdvcnRlbmF5MzMzL3RpbWVwcF9fZ25vbWUvaXNzdWVzIiwKICAibmFtZSI6ICJUaW1lICsrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImh0dHBzOi8vZ2l0aHViLmNvbS96YWdvcnRlbmF5MzMzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidHJhbnNsYXRpb25zX3VybCI6ICJodHRwczovL2dpdGh1Yi5jb20vemFnb3J0ZW5heTMzMy90aW1lcHBfX2dub21lL3RyZWUvbWFzdGVyL2RhdGEvcG9fZmlsZXMiLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3phZ29ydGVuYXkzMzMvdGltZXBwX19nbm9tZSIsCiAgInV1aWQiOiAidGltZXBwQHphZ29ydGVuYXkzMzMiLAogICJ2ZXJzaW9uIjogMTYwCn0="}, "41": {"version": "160", "sha256": "0gra4vm7qgg1hd1k0grj146f9q5w1h1k4wcn4v4m2vq77xbwjwq5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNhY2hlLWZpbGUtZm9ybWF0LXZlcnNpb24iOiB7CiAgICAiYWxhcm1zIjogMywKICAgICJwb21vZG9ybyI6IDMsCiAgICAic3RvcHdhdGNoIjogNCwKICAgICJ0aW1lciI6IDMsCiAgICAidG9kbyI6IDEwCiAgfSwKICAiZGVzY3JpcHRpb24iOiAiQSB0b2RvLnR4dCBtYW5hZ2VyLCB0aW1lIHRyYWNrZXIsIHRpbWVyLCBzdG9wd2F0Y2gsIHBvbW9kb3JvLCBhbmQgYWxhcm0gY2xvY2siLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ0aW1lcHAiLAogICJpc3N1ZXNfdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96YWdvcnRlbmF5MzMzL3RpbWVwcF9fZ25vbWUvaXNzdWVzIiwKICAibmFtZSI6ICJUaW1lICsrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImh0dHBzOi8vZ2l0aHViLmNvbS96YWdvcnRlbmF5MzMzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidHJhbnNsYXRpb25zX3VybCI6ICJodHRwczovL2dpdGh1Yi5jb20vemFnb3J0ZW5heTMzMy90aW1lcHBfX2dub21lL3RyZWUvbWFzdGVyL2RhdGEvcG9fZmlsZXMiLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3phZ29ydGVuYXkzMzMvdGltZXBwX19nbm9tZSIsCiAgInV1aWQiOiAidGltZXBwQHphZ29ydGVuYXkzMzMiLAogICJ2ZXJzaW9uIjogMTYwCn0="}}}
+, {"uuid": "timepp@zagortenay333", "name": "Time ++", "pname": "time", "description": "A todo.txt manager, time tracker, timer, stopwatch, pomodoro, and alarm clock", "link": "https://extensions.gnome.org/extension/1238/time/", "shell_version_map": {"38": {"version": "155", "sha256": "1v71hlwrw9kbxfvka5w8cfqmvcjw3k9xjdwhwlk4i4q5k6kgjih3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNhY2hlLWZpbGUtZm9ybWF0LXZlcnNpb24iOiB7CiAgICAiYWxhcm1zIjogMywKICAgICJwb21vZG9ybyI6IDMsCiAgICAic3RvcHdhdGNoIjogNCwKICAgICJ0aW1lciI6IDMsCiAgICAidG9kbyI6IDEwCiAgfSwKICAiZGVzY3JpcHRpb24iOiAiQSB0b2RvLnR4dCBtYW5hZ2VyLCB0aW1lIHRyYWNrZXIsIHRpbWVyLCBzdG9wd2F0Y2gsIHBvbW9kb3JvLCBhbmQgYWxhcm0gY2xvY2siLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ0aW1lcHAiLAogICJpc3N1ZXNfdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96YWdvcnRlbmF5MzMzL3RpbWVwcF9fZ25vbWUvaXNzdWVzIiwKICAibmFtZSI6ICJUaW1lICsrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImh0dHBzOi8vZ2l0aHViLmNvbS96YWdvcnRlbmF5MzMzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInRyYW5zbGF0aW9uc191cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3phZ29ydGVuYXkzMzMvdGltZXBwX19nbm9tZS90cmVlL21hc3Rlci9kYXRhL3BvX2ZpbGVzIiwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96YWdvcnRlbmF5MzMzL3RpbWVwcF9fZ25vbWUiLAogICJ1dWlkIjogInRpbWVwcEB6YWdvcnRlbmF5MzMzIiwKICAidmVyc2lvbiI6IDE1NQp9"}, "40": {"version": "161", "sha256": "0mlnw34wl469apwsa9cndrf74jknncqcvmqzkyahrrfh6k4syhmh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNhY2hlLWZpbGUtZm9ybWF0LXZlcnNpb24iOiB7CiAgICAiYWxhcm1zIjogMywKICAgICJwb21vZG9ybyI6IDMsCiAgICAic3RvcHdhdGNoIjogNCwKICAgICJ0aW1lciI6IDMsCiAgICAidG9kbyI6IDEwCiAgfSwKICAiZGVzY3JpcHRpb24iOiAiQSB0b2RvLnR4dCBtYW5hZ2VyLCB0aW1lIHRyYWNrZXIsIHRpbWVyLCBzdG9wd2F0Y2gsIHBvbW9kb3JvLCBhbmQgYWxhcm0gY2xvY2siLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ0aW1lcHAiLAogICJpc3N1ZXNfdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96YWdvcnRlbmF5MzMzL3RpbWVwcF9fZ25vbWUvaXNzdWVzIiwKICAibmFtZSI6ICJUaW1lICsrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImh0dHBzOi8vZ2l0aHViLmNvbS96YWdvcnRlbmF5MzMzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidHJhbnNsYXRpb25zX3VybCI6ICJodHRwczovL2dpdGh1Yi5jb20vemFnb3J0ZW5heTMzMy90aW1lcHBfX2dub21lL3RyZWUvbWFzdGVyL2RhdGEvcG9fZmlsZXMiLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3phZ29ydGVuYXkzMzMvdGltZXBwX19nbm9tZSIsCiAgInV1aWQiOiAidGltZXBwQHphZ29ydGVuYXkzMzMiLAogICJ2ZXJzaW9uIjogMTYxCn0="}, "41": {"version": "161", "sha256": "0mlnw34wl469apwsa9cndrf74jknncqcvmqzkyahrrfh6k4syhmh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNhY2hlLWZpbGUtZm9ybWF0LXZlcnNpb24iOiB7CiAgICAiYWxhcm1zIjogMywKICAgICJwb21vZG9ybyI6IDMsCiAgICAic3RvcHdhdGNoIjogNCwKICAgICJ0aW1lciI6IDMsCiAgICAidG9kbyI6IDEwCiAgfSwKICAiZGVzY3JpcHRpb24iOiAiQSB0b2RvLnR4dCBtYW5hZ2VyLCB0aW1lIHRyYWNrZXIsIHRpbWVyLCBzdG9wd2F0Y2gsIHBvbW9kb3JvLCBhbmQgYWxhcm0gY2xvY2siLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ0aW1lcHAiLAogICJpc3N1ZXNfdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96YWdvcnRlbmF5MzMzL3RpbWVwcF9fZ25vbWUvaXNzdWVzIiwKICAibmFtZSI6ICJUaW1lICsrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImh0dHBzOi8vZ2l0aHViLmNvbS96YWdvcnRlbmF5MzMzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidHJhbnNsYXRpb25zX3VybCI6ICJodHRwczovL2dpdGh1Yi5jb20vemFnb3J0ZW5heTMzMy90aW1lcHBfX2dub21lL3RyZWUvbWFzdGVyL2RhdGEvcG9fZmlsZXMiLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3phZ29ydGVuYXkzMzMvdGltZXBwX19nbm9tZSIsCiAgInV1aWQiOiAidGltZXBwQHphZ29ydGVuYXkzMzMiLAogICJ2ZXJzaW9uIjogMTYxCn0="}}}
 , {"uuid": "obmin@konkor", "name": "Obmin", "pname": "obmin", "description": "One-Click File Sharing for your network.\nObmin is lightweight HTTP(S) File Server for GNU/Linux systems.\n\nFeatures:\n⚫ Easy installation.\n⚫ Easy setup just choose file(s) locations and tune Obmin on.\n⚫ Doesn't require ROOT privileges.\n⚫ Doesn't require any special client side installation.\n⚫ HTTP transfer protocol available everywhere Linux, OSX, Windows, Android, iOS so.\n⚫ More ...\n\nFor more information and how-to see README.md", "link": "https://extensions.gnome.org/extension/1254/obmin/", "shell_version_map": {"38": {"version": "22", "sha256": "1r7q5p600lqlkagz9gdxj5wi77i5066sgiwxfsj4w1ixd1g44cz5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk9uZS1DbGljayBGaWxlIFNoYXJpbmcgZm9yIHlvdXIgbmV0d29yay5cbk9ibWluIGlzIGxpZ2h0d2VpZ2h0IEhUVFAoUykgRmlsZSBTZXJ2ZXIgZm9yIEdOVS9MaW51eCBzeXN0ZW1zLlxuXG5GZWF0dXJlczpcblx1MjZhYiBFYXN5IGluc3RhbGxhdGlvbi5cblx1MjZhYiBFYXN5IHNldHVwIGp1c3QgY2hvb3NlIGZpbGUocykgbG9jYXRpb25zIGFuZCB0dW5lIE9ibWluIG9uLlxuXHUyNmFiIERvZXNuJ3QgcmVxdWlyZSBST09UIHByaXZpbGVnZXMuXG5cdTI2YWIgRG9lc24ndCByZXF1aXJlIGFueSBzcGVjaWFsIGNsaWVudCBzaWRlIGluc3RhbGxhdGlvbi5cblx1MjZhYiBIVFRQIHRyYW5zZmVyIHByb3RvY29sIGF2YWlsYWJsZSBldmVyeXdoZXJlIExpbnV4LCBPU1gsIFdpbmRvd3MsIEFuZHJvaWQsIGlPUyBzby5cblx1MjZhYiBNb3JlIC4uLlxuXG5Gb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgaG93LXRvIHNlZSBSRUFETUUubWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLW9ibWluIiwKICAibmFtZSI6ICJPYm1pbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5vYm1pbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zMiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vb2JtaW4uZ2l0aHViLmlvIiwKICAidXVpZCI6ICJvYm1pbkBrb25rb3IiLAogICJ2ZXJzaW9uIjogMjIKfQ=="}, "40": {"version": "22", "sha256": "1r7q5p600lqlkagz9gdxj5wi77i5066sgiwxfsj4w1ixd1g44cz5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk9uZS1DbGljayBGaWxlIFNoYXJpbmcgZm9yIHlvdXIgbmV0d29yay5cbk9ibWluIGlzIGxpZ2h0d2VpZ2h0IEhUVFAoUykgRmlsZSBTZXJ2ZXIgZm9yIEdOVS9MaW51eCBzeXN0ZW1zLlxuXG5GZWF0dXJlczpcblx1MjZhYiBFYXN5IGluc3RhbGxhdGlvbi5cblx1MjZhYiBFYXN5IHNldHVwIGp1c3QgY2hvb3NlIGZpbGUocykgbG9jYXRpb25zIGFuZCB0dW5lIE9ibWluIG9uLlxuXHUyNmFiIERvZXNuJ3QgcmVxdWlyZSBST09UIHByaXZpbGVnZXMuXG5cdTI2YWIgRG9lc24ndCByZXF1aXJlIGFueSBzcGVjaWFsIGNsaWVudCBzaWRlIGluc3RhbGxhdGlvbi5cblx1MjZhYiBIVFRQIHRyYW5zZmVyIHByb3RvY29sIGF2YWlsYWJsZSBldmVyeXdoZXJlIExpbnV4LCBPU1gsIFdpbmRvd3MsIEFuZHJvaWQsIGlPUyBzby5cblx1MjZhYiBNb3JlIC4uLlxuXG5Gb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgaG93LXRvIHNlZSBSRUFETUUubWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLW9ibWluIiwKICAibmFtZSI6ICJPYm1pbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5vYm1pbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zMiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vb2JtaW4uZ2l0aHViLmlvIiwKICAidXVpZCI6ICJvYm1pbkBrb25rb3IiLAogICJ2ZXJzaW9uIjogMjIKfQ=="}}}
-, {"uuid": "BingWallpaper@ineffable-gmail.com", "name": "Bing Wallpaper", "pname": "bing-wallpaper-changer", "description": "Lightweight GNOME shell extension to set your wallpaper to today's Microsoft Bing image of the day (the image you see when you visit Bing.com).\n\n *Disclaimer*: this extension is unofficial and not affiliated with Bing or Microsoft in any way. Images are protected by copyright and are licensed only for use as wallpapers.\n\nThis extension is based extensively on the NASA APOD extension by Elinvention (https://github.com/Elinvention) and inspired by Bing Desktop Wallpaper Changer by Utkarsh Gupta (https://github.com/UtkarshGpta).\n\nFeatures:\n* Fetches Bing wallpaper of the day and sets as both lock screen and desktop wallpaper (user selectable on GNOME versions that support it)\n* Optionally force a specific region (i.e. locale)\n* UHD supported resolutions\n* Only attempts to download wallpapers when they have been updated\n* Doesn't poll continuously - only once per day and on startup (schedules a refresh when Bing is due to update)\n *NEW: random mode\n *NEW: select wallpaper from previously downloaded images\n* English (en), German (de), Dutch (nl), Italian (it), Polish (pl), Chinese (zh_CN), French (fr_FR), Portuguese (pt, pt_BR), Russian (ru_RU), Spanish (es), Korean (ko, ko_KR, ko_KP), Indonesian (id), Catalan (ca), Norwegian Bokmål (nb) &amp; Nynorsk (ni), Swedish (sv), Arabic (ar), Hungarian (hu) and Finnish (fi_FI) - a HUGE thanks to the translators\n\nAlways restart GNOME after manually updating extensions. Please report bugs to the GitHub page below:", "link": "https://extensions.gnome.org/extension/1262/bing-wallpaper-changer/", "shell_version_map": {"38": {"version": "36", "sha256": "0vxj93zbm7q6lvxfzzknkwl8r3gkn2kfq28rjcj4giphl0xn127k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IEdOT01FIHNoZWxsIGV4dGVuc2lvbiB0byBzZXQgeW91ciB3YWxscGFwZXIgdG8gdG9kYXkncyBNaWNyb3NvZnQgQmluZyBpbWFnZSBvZiB0aGUgZGF5ICh0aGUgaW1hZ2UgeW91IHNlZSB3aGVuIHlvdSB2aXNpdCBCaW5nLmNvbSkuXG5cbiAqRGlzY2xhaW1lcio6IHRoaXMgZXh0ZW5zaW9uIGlzIHVub2ZmaWNpYWwgYW5kIG5vdCBhZmZpbGlhdGVkIHdpdGggQmluZyBvciBNaWNyb3NvZnQgaW4gYW55IHdheS4gSW1hZ2VzIGFyZSBwcm90ZWN0ZWQgYnkgY29weXJpZ2h0IGFuZCBhcmUgbGljZW5zZWQgb25seSBmb3IgdXNlIGFzIHdhbGxwYXBlcnMuXG5cblRoaXMgZXh0ZW5zaW9uIGlzIGJhc2VkIGV4dGVuc2l2ZWx5IG9uIHRoZSBOQVNBIEFQT0QgZXh0ZW5zaW9uIGJ5IEVsaW52ZW50aW9uIChodHRwczovL2dpdGh1Yi5jb20vRWxpbnZlbnRpb24pIGFuZCBpbnNwaXJlZCBieSBCaW5nIERlc2t0b3AgV2FsbHBhcGVyIENoYW5nZXIgYnkgVXRrYXJzaCBHdXB0YSAoaHR0cHM6Ly9naXRodWIuY29tL1V0a2Fyc2hHcHRhKS5cblxuRmVhdHVyZXM6XG4qIEZldGNoZXMgQmluZyB3YWxscGFwZXIgb2YgdGhlIGRheSBhbmQgc2V0cyBhcyBib3RoIGxvY2sgc2NyZWVuIGFuZCBkZXNrdG9wIHdhbGxwYXBlciAodXNlciBzZWxlY3RhYmxlIG9uIEdOT01FIHZlcnNpb25zIHRoYXQgc3VwcG9ydCBpdClcbiogT3B0aW9uYWxseSBmb3JjZSBhIHNwZWNpZmljIHJlZ2lvbiAoaS5lLiBsb2NhbGUpXG4qIFVIRCBzdXBwb3J0ZWQgcmVzb2x1dGlvbnNcbiogT25seSBhdHRlbXB0cyB0byBkb3dubG9hZCB3YWxscGFwZXJzIHdoZW4gdGhleSBoYXZlIGJlZW4gdXBkYXRlZFxuKiBEb2Vzbid0IHBvbGwgY29udGludW91c2x5IC0gb25seSBvbmNlIHBlciBkYXkgYW5kIG9uIHN0YXJ0dXAgKHNjaGVkdWxlcyBhIHJlZnJlc2ggd2hlbiBCaW5nIGlzIGR1ZSB0byB1cGRhdGUpXG4gKk5FVzogcmFuZG9tIG1vZGVcbiAqTkVXOiBzZWxlY3Qgd2FsbHBhcGVyIGZyb20gcHJldmlvdXNseSBkb3dubG9hZGVkIGltYWdlc1xuKiBFbmdsaXNoIChlbiksIEdlcm1hbiAoZGUpLCBEdXRjaCAobmwpLCBJdGFsaWFuIChpdCksIFBvbGlzaCAocGwpLCBDaGluZXNlICh6aF9DTiksIEZyZW5jaCAoZnJfRlIpLCBQb3J0dWd1ZXNlIChwdCwgcHRfQlIpLCBSdXNzaWFuIChydV9SVSksIFNwYW5pc2ggKGVzKSwgS29yZWFuIChrbywga29fS1IsIGtvX0tQKSwgSW5kb25lc2lhbiAoaWQpLCBDYXRhbGFuIChjYSksIE5vcndlZ2lhbiBCb2ttXHUwMGU1bCAobmIpICZhbXA7IE55bm9yc2sgKG5pKSwgU3dlZGlzaCAoc3YpLCBBcmFiaWMgKGFyKSwgSHVuZ2FyaWFuIChodSkgYW5kIEZpbm5pc2ggKGZpX0ZJKSAtIGEgSFVHRSB0aGFua3MgdG8gdGhlIHRyYW5zbGF0b3JzXG5cbkFsd2F5cyByZXN0YXJ0IEdOT01FIGFmdGVyIG1hbnVhbGx5IHVwZGF0aW5nIGV4dGVuc2lvbnMuIFBsZWFzZSByZXBvcnQgYnVncyB0byB0aGUgR2l0SHViIHBhZ2UgYmVsb3c6IiwKICAibmFtZSI6ICJCaW5nIFdhbGxwYXBlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iaW5nd2FsbHBhcGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uZWZmby9iaW5nLXdhbGxwYXBlci1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogIkJpbmdXYWxscGFwZXJAaW5lZmZhYmxlLWdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzNgp9"}, "40": {"version": "36", "sha256": "0vxj93zbm7q6lvxfzzknkwl8r3gkn2kfq28rjcj4giphl0xn127k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IEdOT01FIHNoZWxsIGV4dGVuc2lvbiB0byBzZXQgeW91ciB3YWxscGFwZXIgdG8gdG9kYXkncyBNaWNyb3NvZnQgQmluZyBpbWFnZSBvZiB0aGUgZGF5ICh0aGUgaW1hZ2UgeW91IHNlZSB3aGVuIHlvdSB2aXNpdCBCaW5nLmNvbSkuXG5cbiAqRGlzY2xhaW1lcio6IHRoaXMgZXh0ZW5zaW9uIGlzIHVub2ZmaWNpYWwgYW5kIG5vdCBhZmZpbGlhdGVkIHdpdGggQmluZyBvciBNaWNyb3NvZnQgaW4gYW55IHdheS4gSW1hZ2VzIGFyZSBwcm90ZWN0ZWQgYnkgY29weXJpZ2h0IGFuZCBhcmUgbGljZW5zZWQgb25seSBmb3IgdXNlIGFzIHdhbGxwYXBlcnMuXG5cblRoaXMgZXh0ZW5zaW9uIGlzIGJhc2VkIGV4dGVuc2l2ZWx5IG9uIHRoZSBOQVNBIEFQT0QgZXh0ZW5zaW9uIGJ5IEVsaW52ZW50aW9uIChodHRwczovL2dpdGh1Yi5jb20vRWxpbnZlbnRpb24pIGFuZCBpbnNwaXJlZCBieSBCaW5nIERlc2t0b3AgV2FsbHBhcGVyIENoYW5nZXIgYnkgVXRrYXJzaCBHdXB0YSAoaHR0cHM6Ly9naXRodWIuY29tL1V0a2Fyc2hHcHRhKS5cblxuRmVhdHVyZXM6XG4qIEZldGNoZXMgQmluZyB3YWxscGFwZXIgb2YgdGhlIGRheSBhbmQgc2V0cyBhcyBib3RoIGxvY2sgc2NyZWVuIGFuZCBkZXNrdG9wIHdhbGxwYXBlciAodXNlciBzZWxlY3RhYmxlIG9uIEdOT01FIHZlcnNpb25zIHRoYXQgc3VwcG9ydCBpdClcbiogT3B0aW9uYWxseSBmb3JjZSBhIHNwZWNpZmljIHJlZ2lvbiAoaS5lLiBsb2NhbGUpXG4qIFVIRCBzdXBwb3J0ZWQgcmVzb2x1dGlvbnNcbiogT25seSBhdHRlbXB0cyB0byBkb3dubG9hZCB3YWxscGFwZXJzIHdoZW4gdGhleSBoYXZlIGJlZW4gdXBkYXRlZFxuKiBEb2Vzbid0IHBvbGwgY29udGludW91c2x5IC0gb25seSBvbmNlIHBlciBkYXkgYW5kIG9uIHN0YXJ0dXAgKHNjaGVkdWxlcyBhIHJlZnJlc2ggd2hlbiBCaW5nIGlzIGR1ZSB0byB1cGRhdGUpXG4gKk5FVzogcmFuZG9tIG1vZGVcbiAqTkVXOiBzZWxlY3Qgd2FsbHBhcGVyIGZyb20gcHJldmlvdXNseSBkb3dubG9hZGVkIGltYWdlc1xuKiBFbmdsaXNoIChlbiksIEdlcm1hbiAoZGUpLCBEdXRjaCAobmwpLCBJdGFsaWFuIChpdCksIFBvbGlzaCAocGwpLCBDaGluZXNlICh6aF9DTiksIEZyZW5jaCAoZnJfRlIpLCBQb3J0dWd1ZXNlIChwdCwgcHRfQlIpLCBSdXNzaWFuIChydV9SVSksIFNwYW5pc2ggKGVzKSwgS29yZWFuIChrbywga29fS1IsIGtvX0tQKSwgSW5kb25lc2lhbiAoaWQpLCBDYXRhbGFuIChjYSksIE5vcndlZ2lhbiBCb2ttXHUwMGU1bCAobmIpICZhbXA7IE55bm9yc2sgKG5pKSwgU3dlZGlzaCAoc3YpLCBBcmFiaWMgKGFyKSwgSHVuZ2FyaWFuIChodSkgYW5kIEZpbm5pc2ggKGZpX0ZJKSAtIGEgSFVHRSB0aGFua3MgdG8gdGhlIHRyYW5zbGF0b3JzXG5cbkFsd2F5cyByZXN0YXJ0IEdOT01FIGFmdGVyIG1hbnVhbGx5IHVwZGF0aW5nIGV4dGVuc2lvbnMuIFBsZWFzZSByZXBvcnQgYnVncyB0byB0aGUgR2l0SHViIHBhZ2UgYmVsb3c6IiwKICAibmFtZSI6ICJCaW5nIFdhbGxwYXBlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iaW5nd2FsbHBhcGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uZWZmby9iaW5nLXdhbGxwYXBlci1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogIkJpbmdXYWxscGFwZXJAaW5lZmZhYmxlLWdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzNgp9"}, "41": {"version": "36", "sha256": "0vxj93zbm7q6lvxfzzknkwl8r3gkn2kfq28rjcj4giphl0xn127k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IEdOT01FIHNoZWxsIGV4dGVuc2lvbiB0byBzZXQgeW91ciB3YWxscGFwZXIgdG8gdG9kYXkncyBNaWNyb3NvZnQgQmluZyBpbWFnZSBvZiB0aGUgZGF5ICh0aGUgaW1hZ2UgeW91IHNlZSB3aGVuIHlvdSB2aXNpdCBCaW5nLmNvbSkuXG5cbiAqRGlzY2xhaW1lcio6IHRoaXMgZXh0ZW5zaW9uIGlzIHVub2ZmaWNpYWwgYW5kIG5vdCBhZmZpbGlhdGVkIHdpdGggQmluZyBvciBNaWNyb3NvZnQgaW4gYW55IHdheS4gSW1hZ2VzIGFyZSBwcm90ZWN0ZWQgYnkgY29weXJpZ2h0IGFuZCBhcmUgbGljZW5zZWQgb25seSBmb3IgdXNlIGFzIHdhbGxwYXBlcnMuXG5cblRoaXMgZXh0ZW5zaW9uIGlzIGJhc2VkIGV4dGVuc2l2ZWx5IG9uIHRoZSBOQVNBIEFQT0QgZXh0ZW5zaW9uIGJ5IEVsaW52ZW50aW9uIChodHRwczovL2dpdGh1Yi5jb20vRWxpbnZlbnRpb24pIGFuZCBpbnNwaXJlZCBieSBCaW5nIERlc2t0b3AgV2FsbHBhcGVyIENoYW5nZXIgYnkgVXRrYXJzaCBHdXB0YSAoaHR0cHM6Ly9naXRodWIuY29tL1V0a2Fyc2hHcHRhKS5cblxuRmVhdHVyZXM6XG4qIEZldGNoZXMgQmluZyB3YWxscGFwZXIgb2YgdGhlIGRheSBhbmQgc2V0cyBhcyBib3RoIGxvY2sgc2NyZWVuIGFuZCBkZXNrdG9wIHdhbGxwYXBlciAodXNlciBzZWxlY3RhYmxlIG9uIEdOT01FIHZlcnNpb25zIHRoYXQgc3VwcG9ydCBpdClcbiogT3B0aW9uYWxseSBmb3JjZSBhIHNwZWNpZmljIHJlZ2lvbiAoaS5lLiBsb2NhbGUpXG4qIFVIRCBzdXBwb3J0ZWQgcmVzb2x1dGlvbnNcbiogT25seSBhdHRlbXB0cyB0byBkb3dubG9hZCB3YWxscGFwZXJzIHdoZW4gdGhleSBoYXZlIGJlZW4gdXBkYXRlZFxuKiBEb2Vzbid0IHBvbGwgY29udGludW91c2x5IC0gb25seSBvbmNlIHBlciBkYXkgYW5kIG9uIHN0YXJ0dXAgKHNjaGVkdWxlcyBhIHJlZnJlc2ggd2hlbiBCaW5nIGlzIGR1ZSB0byB1cGRhdGUpXG4gKk5FVzogcmFuZG9tIG1vZGVcbiAqTkVXOiBzZWxlY3Qgd2FsbHBhcGVyIGZyb20gcHJldmlvdXNseSBkb3dubG9hZGVkIGltYWdlc1xuKiBFbmdsaXNoIChlbiksIEdlcm1hbiAoZGUpLCBEdXRjaCAobmwpLCBJdGFsaWFuIChpdCksIFBvbGlzaCAocGwpLCBDaGluZXNlICh6aF9DTiksIEZyZW5jaCAoZnJfRlIpLCBQb3J0dWd1ZXNlIChwdCwgcHRfQlIpLCBSdXNzaWFuIChydV9SVSksIFNwYW5pc2ggKGVzKSwgS29yZWFuIChrbywga29fS1IsIGtvX0tQKSwgSW5kb25lc2lhbiAoaWQpLCBDYXRhbGFuIChjYSksIE5vcndlZ2lhbiBCb2ttXHUwMGU1bCAobmIpICZhbXA7IE55bm9yc2sgKG5pKSwgU3dlZGlzaCAoc3YpLCBBcmFiaWMgKGFyKSwgSHVuZ2FyaWFuIChodSkgYW5kIEZpbm5pc2ggKGZpX0ZJKSAtIGEgSFVHRSB0aGFua3MgdG8gdGhlIHRyYW5zbGF0b3JzXG5cbkFsd2F5cyByZXN0YXJ0IEdOT01FIGFmdGVyIG1hbnVhbGx5IHVwZGF0aW5nIGV4dGVuc2lvbnMuIFBsZWFzZSByZXBvcnQgYnVncyB0byB0aGUgR2l0SHViIHBhZ2UgYmVsb3c6IiwKICAibmFtZSI6ICJCaW5nIFdhbGxwYXBlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iaW5nd2FsbHBhcGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uZWZmby9iaW5nLXdhbGxwYXBlci1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogIkJpbmdXYWxscGFwZXJAaW5lZmZhYmxlLWdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzNgp9"}}}
+, {"uuid": "BingWallpaper@ineffable-gmail.com", "name": "Bing Wallpaper", "pname": "bing-wallpaper-changer", "description": "Lightweight GNOME shell extension to set your wallpaper to today's Microsoft Bing image of the day (the image you see when you visit Bing.com).\n\n *Disclaimer*: this extension is unofficial and not affiliated with Bing or Microsoft in any way. Images are protected by copyright and are licensed only for use as wallpapers.\n\nThis extension is based extensively on the NASA APOD extension by Elinvention (https://github.com/Elinvention) and inspired by Bing Desktop Wallpaper Changer by Utkarsh Gupta (https://github.com/UtkarshGpta).\n\nFeatures:\n* Fetches Bing wallpaper of the day and sets as both lock screen and desktop wallpaper (user selectable on GNOME versions that support it)\n* Optionally force a specific region (i.e. locale)\n* UHD supported resolutions\n* Only attempts to download wallpapers when they have been updated\n* Doesn't poll continuously - only once per day and on startup (schedules a refresh when Bing is due to update)\n *NEW: random mode\n *NEW: select wallpaper from previously downloaded images\n* English (en), German (de), Dutch (nl), Italian (it), Polish (pl), Chinese (zh_CN), French (fr_FR), Portuguese (pt, pt_BR), Russian (ru_RU), Spanish (es), Korean (ko, ko_KR, ko_KP), Indonesian (id), Catalan (ca), Norwegian Bokmål (nb) & Nynorsk (ni), Swedish (sv), Arabic (ar), Hungarian (hu) and Finnish (fi_FI) - a HUGE thanks to the translators\n\nAlways restart GNOME after manually updating extensions. Please report bugs to the GitHub page below:", "link": "https://extensions.gnome.org/extension/1262/bing-wallpaper-changer/", "shell_version_map": {"38": {"version": "37", "sha256": "1v01vkvphqjr7c2gh61p84jwvr8yj91rnhjgdgi8jv06fwcvnja0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IEdOT01FIHNoZWxsIGV4dGVuc2lvbiB0byBzZXQgeW91ciB3YWxscGFwZXIgdG8gdG9kYXkncyBNaWNyb3NvZnQgQmluZyBpbWFnZSBvZiB0aGUgZGF5ICh0aGUgaW1hZ2UgeW91IHNlZSB3aGVuIHlvdSB2aXNpdCBCaW5nLmNvbSkuXG5cbiAqRGlzY2xhaW1lcio6IHRoaXMgZXh0ZW5zaW9uIGlzIHVub2ZmaWNpYWwgYW5kIG5vdCBhZmZpbGlhdGVkIHdpdGggQmluZyBvciBNaWNyb3NvZnQgaW4gYW55IHdheS4gSW1hZ2VzIGFyZSBwcm90ZWN0ZWQgYnkgY29weXJpZ2h0IGFuZCBhcmUgbGljZW5zZWQgb25seSBmb3IgdXNlIGFzIHdhbGxwYXBlcnMuXG5cblRoaXMgZXh0ZW5zaW9uIGlzIGJhc2VkIGV4dGVuc2l2ZWx5IG9uIHRoZSBOQVNBIEFQT0QgZXh0ZW5zaW9uIGJ5IEVsaW52ZW50aW9uIChodHRwczovL2dpdGh1Yi5jb20vRWxpbnZlbnRpb24pIGFuZCBpbnNwaXJlZCBieSBCaW5nIERlc2t0b3AgV2FsbHBhcGVyIENoYW5nZXIgYnkgVXRrYXJzaCBHdXB0YSAoaHR0cHM6Ly9naXRodWIuY29tL1V0a2Fyc2hHcHRhKS5cblxuRmVhdHVyZXM6XG4qIEZldGNoZXMgQmluZyB3YWxscGFwZXIgb2YgdGhlIGRheSBhbmQgc2V0cyBhcyBib3RoIGxvY2sgc2NyZWVuIGFuZCBkZXNrdG9wIHdhbGxwYXBlciAodXNlciBzZWxlY3RhYmxlIG9uIEdOT01FIHZlcnNpb25zIHRoYXQgc3VwcG9ydCBpdClcbiogT3B0aW9uYWxseSBmb3JjZSBhIHNwZWNpZmljIHJlZ2lvbiAoaS5lLiBsb2NhbGUpXG4qIFVIRCBzdXBwb3J0ZWQgcmVzb2x1dGlvbnNcbiogT25seSBhdHRlbXB0cyB0byBkb3dubG9hZCB3YWxscGFwZXJzIHdoZW4gdGhleSBoYXZlIGJlZW4gdXBkYXRlZFxuKiBEb2Vzbid0IHBvbGwgY29udGludW91c2x5IC0gb25seSBvbmNlIHBlciBkYXkgYW5kIG9uIHN0YXJ0dXAgKHNjaGVkdWxlcyBhIHJlZnJlc2ggd2hlbiBCaW5nIGlzIGR1ZSB0byB1cGRhdGUpXG4gKk5FVzogcmFuZG9tIG1vZGVcbiAqTkVXOiBzZWxlY3Qgd2FsbHBhcGVyIGZyb20gcHJldmlvdXNseSBkb3dubG9hZGVkIGltYWdlc1xuKiBFbmdsaXNoIChlbiksIEdlcm1hbiAoZGUpLCBEdXRjaCAobmwpLCBJdGFsaWFuIChpdCksIFBvbGlzaCAocGwpLCBDaGluZXNlICh6aF9DTiksIEZyZW5jaCAoZnJfRlIpLCBQb3J0dWd1ZXNlIChwdCwgcHRfQlIpLCBSdXNzaWFuIChydV9SVSksIFNwYW5pc2ggKGVzKSwgS29yZWFuIChrbywga29fS1IsIGtvX0tQKSwgSW5kb25lc2lhbiAoaWQpLCBDYXRhbGFuIChjYSksIE5vcndlZ2lhbiBCb2ttXHUwMGU1bCAobmIpICYgTnlub3JzayAobmkpLCBTd2VkaXNoIChzdiksIEFyYWJpYyAoYXIpLCBIdW5nYXJpYW4gKGh1KSBhbmQgRmlubmlzaCAoZmlfRkkpIC0gYSBIVUdFIHRoYW5rcyB0byB0aGUgdHJhbnNsYXRvcnNcblxuQWx3YXlzIHJlc3RhcnQgR05PTUUgYWZ0ZXIgbWFudWFsbHkgdXBkYXRpbmcgZXh0ZW5zaW9ucy4gUGxlYXNlIHJlcG9ydCBidWdzIHRvIHRoZSBHaXRIdWIgcGFnZSBiZWxvdzoiLAogICJuYW1lIjogIkJpbmcgV2FsbHBhcGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJpbmd3YWxscGFwZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25lZmZvL2Jpbmctd2FsbHBhcGVyLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiQmluZ1dhbGxwYXBlckBpbmVmZmFibGUtZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDM3Cn0="}, "40": {"version": "37", "sha256": "1v01vkvphqjr7c2gh61p84jwvr8yj91rnhjgdgi8jv06fwcvnja0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IEdOT01FIHNoZWxsIGV4dGVuc2lvbiB0byBzZXQgeW91ciB3YWxscGFwZXIgdG8gdG9kYXkncyBNaWNyb3NvZnQgQmluZyBpbWFnZSBvZiB0aGUgZGF5ICh0aGUgaW1hZ2UgeW91IHNlZSB3aGVuIHlvdSB2aXNpdCBCaW5nLmNvbSkuXG5cbiAqRGlzY2xhaW1lcio6IHRoaXMgZXh0ZW5zaW9uIGlzIHVub2ZmaWNpYWwgYW5kIG5vdCBhZmZpbGlhdGVkIHdpdGggQmluZyBvciBNaWNyb3NvZnQgaW4gYW55IHdheS4gSW1hZ2VzIGFyZSBwcm90ZWN0ZWQgYnkgY29weXJpZ2h0IGFuZCBhcmUgbGljZW5zZWQgb25seSBmb3IgdXNlIGFzIHdhbGxwYXBlcnMuXG5cblRoaXMgZXh0ZW5zaW9uIGlzIGJhc2VkIGV4dGVuc2l2ZWx5IG9uIHRoZSBOQVNBIEFQT0QgZXh0ZW5zaW9uIGJ5IEVsaW52ZW50aW9uIChodHRwczovL2dpdGh1Yi5jb20vRWxpbnZlbnRpb24pIGFuZCBpbnNwaXJlZCBieSBCaW5nIERlc2t0b3AgV2FsbHBhcGVyIENoYW5nZXIgYnkgVXRrYXJzaCBHdXB0YSAoaHR0cHM6Ly9naXRodWIuY29tL1V0a2Fyc2hHcHRhKS5cblxuRmVhdHVyZXM6XG4qIEZldGNoZXMgQmluZyB3YWxscGFwZXIgb2YgdGhlIGRheSBhbmQgc2V0cyBhcyBib3RoIGxvY2sgc2NyZWVuIGFuZCBkZXNrdG9wIHdhbGxwYXBlciAodXNlciBzZWxlY3RhYmxlIG9uIEdOT01FIHZlcnNpb25zIHRoYXQgc3VwcG9ydCBpdClcbiogT3B0aW9uYWxseSBmb3JjZSBhIHNwZWNpZmljIHJlZ2lvbiAoaS5lLiBsb2NhbGUpXG4qIFVIRCBzdXBwb3J0ZWQgcmVzb2x1dGlvbnNcbiogT25seSBhdHRlbXB0cyB0byBkb3dubG9hZCB3YWxscGFwZXJzIHdoZW4gdGhleSBoYXZlIGJlZW4gdXBkYXRlZFxuKiBEb2Vzbid0IHBvbGwgY29udGludW91c2x5IC0gb25seSBvbmNlIHBlciBkYXkgYW5kIG9uIHN0YXJ0dXAgKHNjaGVkdWxlcyBhIHJlZnJlc2ggd2hlbiBCaW5nIGlzIGR1ZSB0byB1cGRhdGUpXG4gKk5FVzogcmFuZG9tIG1vZGVcbiAqTkVXOiBzZWxlY3Qgd2FsbHBhcGVyIGZyb20gcHJldmlvdXNseSBkb3dubG9hZGVkIGltYWdlc1xuKiBFbmdsaXNoIChlbiksIEdlcm1hbiAoZGUpLCBEdXRjaCAobmwpLCBJdGFsaWFuIChpdCksIFBvbGlzaCAocGwpLCBDaGluZXNlICh6aF9DTiksIEZyZW5jaCAoZnJfRlIpLCBQb3J0dWd1ZXNlIChwdCwgcHRfQlIpLCBSdXNzaWFuIChydV9SVSksIFNwYW5pc2ggKGVzKSwgS29yZWFuIChrbywga29fS1IsIGtvX0tQKSwgSW5kb25lc2lhbiAoaWQpLCBDYXRhbGFuIChjYSksIE5vcndlZ2lhbiBCb2ttXHUwMGU1bCAobmIpICYgTnlub3JzayAobmkpLCBTd2VkaXNoIChzdiksIEFyYWJpYyAoYXIpLCBIdW5nYXJpYW4gKGh1KSBhbmQgRmlubmlzaCAoZmlfRkkpIC0gYSBIVUdFIHRoYW5rcyB0byB0aGUgdHJhbnNsYXRvcnNcblxuQWx3YXlzIHJlc3RhcnQgR05PTUUgYWZ0ZXIgbWFudWFsbHkgdXBkYXRpbmcgZXh0ZW5zaW9ucy4gUGxlYXNlIHJlcG9ydCBidWdzIHRvIHRoZSBHaXRIdWIgcGFnZSBiZWxvdzoiLAogICJuYW1lIjogIkJpbmcgV2FsbHBhcGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJpbmd3YWxscGFwZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25lZmZvL2Jpbmctd2FsbHBhcGVyLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiQmluZ1dhbGxwYXBlckBpbmVmZmFibGUtZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDM3Cn0="}, "41": {"version": "37", "sha256": "1v01vkvphqjr7c2gh61p84jwvr8yj91rnhjgdgi8jv06fwcvnja0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IEdOT01FIHNoZWxsIGV4dGVuc2lvbiB0byBzZXQgeW91ciB3YWxscGFwZXIgdG8gdG9kYXkncyBNaWNyb3NvZnQgQmluZyBpbWFnZSBvZiB0aGUgZGF5ICh0aGUgaW1hZ2UgeW91IHNlZSB3aGVuIHlvdSB2aXNpdCBCaW5nLmNvbSkuXG5cbiAqRGlzY2xhaW1lcio6IHRoaXMgZXh0ZW5zaW9uIGlzIHVub2ZmaWNpYWwgYW5kIG5vdCBhZmZpbGlhdGVkIHdpdGggQmluZyBvciBNaWNyb3NvZnQgaW4gYW55IHdheS4gSW1hZ2VzIGFyZSBwcm90ZWN0ZWQgYnkgY29weXJpZ2h0IGFuZCBhcmUgbGljZW5zZWQgb25seSBmb3IgdXNlIGFzIHdhbGxwYXBlcnMuXG5cblRoaXMgZXh0ZW5zaW9uIGlzIGJhc2VkIGV4dGVuc2l2ZWx5IG9uIHRoZSBOQVNBIEFQT0QgZXh0ZW5zaW9uIGJ5IEVsaW52ZW50aW9uIChodHRwczovL2dpdGh1Yi5jb20vRWxpbnZlbnRpb24pIGFuZCBpbnNwaXJlZCBieSBCaW5nIERlc2t0b3AgV2FsbHBhcGVyIENoYW5nZXIgYnkgVXRrYXJzaCBHdXB0YSAoaHR0cHM6Ly9naXRodWIuY29tL1V0a2Fyc2hHcHRhKS5cblxuRmVhdHVyZXM6XG4qIEZldGNoZXMgQmluZyB3YWxscGFwZXIgb2YgdGhlIGRheSBhbmQgc2V0cyBhcyBib3RoIGxvY2sgc2NyZWVuIGFuZCBkZXNrdG9wIHdhbGxwYXBlciAodXNlciBzZWxlY3RhYmxlIG9uIEdOT01FIHZlcnNpb25zIHRoYXQgc3VwcG9ydCBpdClcbiogT3B0aW9uYWxseSBmb3JjZSBhIHNwZWNpZmljIHJlZ2lvbiAoaS5lLiBsb2NhbGUpXG4qIFVIRCBzdXBwb3J0ZWQgcmVzb2x1dGlvbnNcbiogT25seSBhdHRlbXB0cyB0byBkb3dubG9hZCB3YWxscGFwZXJzIHdoZW4gdGhleSBoYXZlIGJlZW4gdXBkYXRlZFxuKiBEb2Vzbid0IHBvbGwgY29udGludW91c2x5IC0gb25seSBvbmNlIHBlciBkYXkgYW5kIG9uIHN0YXJ0dXAgKHNjaGVkdWxlcyBhIHJlZnJlc2ggd2hlbiBCaW5nIGlzIGR1ZSB0byB1cGRhdGUpXG4gKk5FVzogcmFuZG9tIG1vZGVcbiAqTkVXOiBzZWxlY3Qgd2FsbHBhcGVyIGZyb20gcHJldmlvdXNseSBkb3dubG9hZGVkIGltYWdlc1xuKiBFbmdsaXNoIChlbiksIEdlcm1hbiAoZGUpLCBEdXRjaCAobmwpLCBJdGFsaWFuIChpdCksIFBvbGlzaCAocGwpLCBDaGluZXNlICh6aF9DTiksIEZyZW5jaCAoZnJfRlIpLCBQb3J0dWd1ZXNlIChwdCwgcHRfQlIpLCBSdXNzaWFuIChydV9SVSksIFNwYW5pc2ggKGVzKSwgS29yZWFuIChrbywga29fS1IsIGtvX0tQKSwgSW5kb25lc2lhbiAoaWQpLCBDYXRhbGFuIChjYSksIE5vcndlZ2lhbiBCb2ttXHUwMGU1bCAobmIpICYgTnlub3JzayAobmkpLCBTd2VkaXNoIChzdiksIEFyYWJpYyAoYXIpLCBIdW5nYXJpYW4gKGh1KSBhbmQgRmlubmlzaCAoZmlfRkkpIC0gYSBIVUdFIHRoYW5rcyB0byB0aGUgdHJhbnNsYXRvcnNcblxuQWx3YXlzIHJlc3RhcnQgR05PTUUgYWZ0ZXIgbWFudWFsbHkgdXBkYXRpbmcgZXh0ZW5zaW9ucy4gUGxlYXNlIHJlcG9ydCBidWdzIHRvIHRoZSBHaXRIdWIgcGFnZSBiZWxvdzoiLAogICJuYW1lIjogIkJpbmcgV2FsbHBhcGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJpbmd3YWxscGFwZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25lZmZvL2Jpbmctd2FsbHBhcGVyLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiQmluZ1dhbGxwYXBlckBpbmVmZmFibGUtZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDM3Cn0="}}}
 , {"uuid": "gnomesome@chwick.github.com", "name": "Gnomesome", "pname": "gnomesome", "description": "Tiling window manager with awesome keybindings", "link": "https://extensions.gnome.org/extension/1268/gnomesome/", "shell_version_map": {"38": {"version": "15", "sha256": "1dn67is3qk80xxfkc2pd43jrsyylmsprd7v3axvl677wdjgaq83z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGF3ZXNvbWUga2V5YmluZGluZ3MiLAogICJuYW1lIjogIkdub21lc29tZSIsCiAgInNldHRpbmdzLWtleWJpbmRpbmdzIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdub21lc29tZS5rZXliaW5kaW5ncyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Nod2ljay9nbm9tZXNvbWUiLAogICJ1dWlkIjogImdub21lc29tZUBjaHdpY2suZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"}}}
 , {"uuid": "gnome-vagrant-indicator@gnome-shell-exstensions.fffilo.github.com", "name": "GNOME Vagrant Indicator", "pname": "gnome-vagrant-indicator", "description": "Easily manage your vagrant machines from status area", "link": "https://extensions.gnome.org/extension/1269/gnome-vagrant-indicator/", "shell_version_map": {"40": {"version": "14", "sha256": "194kfjbv8wc4krxcdazm03c0rnzz11n5xa0m11zq3nczw9pasvwf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVhc2lseSBtYW5hZ2UgeW91ciB2YWdyYW50IG1hY2hpbmVzIGZyb20gc3RhdHVzIGFyZWEiLAogICJkZXNjcmlwdGlvbi1odG1sIjogIkluc3BpcmVkIGJ5IDxhIGhyZWY9XCJodHRwczovL2dpdGh1Yi5jb20vY2FuZGlkdGltL3ZhZ3JhbnQtYXBwaW5kaWNhdG9yXCI+dmdhcHBsZXQ8L2E+LFxuPGI+R05PTUUgVmFncmFudCBJbmRpY2F0b3I8L2I+IGxldHMgeW91IGVhc2lseSBtYW5hZ2UgeW91ciB2YWdyYW50IG1hY2hpbmVzIGZyb20gc3RhdHVzIGFyZWEuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtdmFncmFudC1pbmRpY2F0b3IiLAogICJsaWNlbnNlIjogIkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHYzLjAiLAogICJsaWNlbnNlLWh0bWwiOiAiVGhpcyBwcm9ncmFtIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS5cblNlZSB0aGUgPGEgaHJlZj1cImh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC5odG1sXCI+R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdjMuMDwvYT4gZm9yIGRldGFpbHMuIiwKICAibmFtZSI6ICJHTk9NRSBWYWdyYW50IEluZGljYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJGcmFuam8gRmlsbyA8ZmZmaWxvNjY2QGdtYWlsLmNvbT4iLAogICJvcmlnaW5hbC1hdXRob3ItaHRtbCI6ICJGcmFuam8gRmlsbyA8YSBocmVmPVwibWFpbHRvOmZmZmlsbzY2NkBnbWFpbC5jb21cIj4mbHQ7ZmZmaWxvNjY2QGdtYWlsLmNvbSZndDs8L2E+IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdub21lLXZhZ3JhbnQtaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ZmZmlsby9nbm9tZS12YWdyYW50LWluZGljYXRvciIsCiAgInV1aWQiOiAiZ25vbWUtdmFncmFudC1pbmRpY2F0b3JAZ25vbWUtc2hlbGwtZXhzdGVuc2lvbnMuZmZmaWxvLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}}}
 , {"uuid": "prime-indicator@gnome-shell-exstensions.fffilo.github.com", "name": "Prime Indicator", "pname": "prime-indicator", "description": "Intel/NVIDIA GPU Switch", "link": "https://extensions.gnome.org/extension/1275/prime-indicator/", "shell_version_map": {"40": {"version": "9", "sha256": "144qshljqc680w296w49fbfdf63zggl1in12y7dfmhra5ph4mk3n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVsL05WSURJQSBHUFUgU3dpdGNoIiwKICAiZGVzY3JpcHRpb24taHRtbCI6ICJHTk9NRSBzaGVsbCBleHRlbnNpb24gdGhhdCBhZGRzIEludGVsL05WSURJQSBHUFUgc3dpdGNoIHRvIGFnZ3JlZ2F0ZSBtZW51LiIsCiAgImdldHRleHQtZG9tYWluIjogInByaW1lLWluZGljYXRvciIsCiAgImxpY2Vuc2UiOiAiR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdjMuMCIsCiAgImxpY2Vuc2UtaHRtbCI6ICJUaGlzIHByb2dyYW0gY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLlxuU2VlIHRoZSA8YSBocmVmPVwiaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWxcIj5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wPC9hPiBmb3IgZGV0YWlscy4iLAogICJuYW1lIjogIlByaW1lIEluZGljYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJGcmFuam8gRmlsbyA8ZmZmaWxvNjY2QGdtYWlsLmNvbT4iLAogICJvcmlnaW5hbC1hdXRob3ItaHRtbCI6ICJGcmFuam8gRmlsbyAmbHQ7PGEgaHJlZj1cIm1haWx0bzpmZmZpbG82NjZAZ21haWwuY29tXCI+ZmZmaWxvNjY2QGdtYWlsLmNvbTwvYT4mZ3Q7IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnByaW1lLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mZmZpbG8vcHJpbWUtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJwcmltZS1pbmRpY2F0b3JAZ25vbWUtc2hlbGwtZXhzdGVuc2lvbnMuZmZmaWxvLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogOQp9"}}}
@@ -181,8 +182,8 @@
 , {"uuid": "vbox-applet@gs.eros2.info", "name": "VirtualBox applet", "pname": "virtualbox-applet", "description": "Provide menu to run VirtualBox machines and switch between running VMs", "link": "https://extensions.gnome.org/extension/1415/virtualbox-applet/", "shell_version_map": {"38": {"version": "9", "sha256": "1dpda9g9nknjbc7wfzhdahly3w3mvqw6r4qqdrhylsc3kqq858ay", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgbWVudSB0byBydW4gVmlydHVhbEJveCBtYWNoaW5lcyBhbmQgc3dpdGNoIGJldHdlZW4gcnVubmluZyBWTXMiLAogICJuYW1lIjogIlZpcnR1YWxCb3ggYXBwbGV0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnZib3gtYXBwbGV0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ldWdlbmUtcm9tL3Zib3gtYXBwbGV0IiwKICAidXVpZCI6ICJ2Ym94LWFwcGxldEBncy5lcm9zMi5pbmZvIiwKICAidmVyc2lvbiI6IDkKfQ=="}, "40": {"version": "9", "sha256": "1dpda9g9nknjbc7wfzhdahly3w3mvqw6r4qqdrhylsc3kqq858ay", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgbWVudSB0byBydW4gVmlydHVhbEJveCBtYWNoaW5lcyBhbmQgc3dpdGNoIGJldHdlZW4gcnVubmluZyBWTXMiLAogICJuYW1lIjogIlZpcnR1YWxCb3ggYXBwbGV0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnZib3gtYXBwbGV0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ldWdlbmUtcm9tL3Zib3gtYXBwbGV0IiwKICAidXVpZCI6ICJ2Ym94LWFwcGxldEBncy5lcm9zMi5pbmZvIiwKICAidmVyc2lvbiI6IDkKfQ=="}, "41": {"version": "9", "sha256": "1dpda9g9nknjbc7wfzhdahly3w3mvqw6r4qqdrhylsc3kqq858ay", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgbWVudSB0byBydW4gVmlydHVhbEJveCBtYWNoaW5lcyBhbmQgc3dpdGNoIGJldHdlZW4gcnVubmluZyBWTXMiLAogICJuYW1lIjogIlZpcnR1YWxCb3ggYXBwbGV0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnZib3gtYXBwbGV0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ldWdlbmUtcm9tL3Zib3gtYXBwbGV0IiwKICAidXVpZCI6ICJ2Ym94LWFwcGxldEBncy5lcm9zMi5pbmZvIiwKICAidmVyc2lvbiI6IDkKfQ=="}}}
 , {"uuid": "stocks@infinicode.de", "name": "Stocks Extension", "pname": "stocks-extension", "description": "Stocks Extension brings stock quotes to your GNOME Shell Panel", "link": "https://extensions.gnome.org/extension/1422/stocks-extension/", "shell_version_map": {"38": {"version": "19", "sha256": "1414cksayqpv0w0q632yi33ifqlwyfggwf684aci6qj81fs644y2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0b2NrcyBFeHRlbnNpb24gYnJpbmdzIHN0b2NrIHF1b3RlcyB0byB5b3VyIEdOT01FIFNoZWxsIFBhbmVsIiwKICAibG9jYWxlZGlyIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJTdG9ja3MgRXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NpbmF0aWMvc3RvY2tzLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAic3RvY2tzQGluZmluaWNvZGUuZGUiLAogICJ2ZXJzaW9uIjogMTkKfQ=="}, "40": {"version": "19", "sha256": "1414cksayqpv0w0q632yi33ifqlwyfggwf684aci6qj81fs644y2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0b2NrcyBFeHRlbnNpb24gYnJpbmdzIHN0b2NrIHF1b3RlcyB0byB5b3VyIEdOT01FIFNoZWxsIFBhbmVsIiwKICAibG9jYWxlZGlyIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJTdG9ja3MgRXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NpbmF0aWMvc3RvY2tzLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAic3RvY2tzQGluZmluaWNvZGUuZGUiLAogICJ2ZXJzaW9uIjogMTkKfQ=="}}}
 , {"uuid": "showtime@xenlism.github.io", "name": "Showtime  - Desktop Widget", "pname": "showtime", "description": "Date &amp;amp;amp;amp;amp;amp;amp; Clock Desktop Widget\n\nMove Widget by Press Super + Drag Widget\nhttps://github.com/xenlism/showtime", "link": "https://extensions.gnome.org/extension/1429/showtime/", "shell_version_map": {"38": {"version": "4", "sha256": "12k6spjhg2ykgh5x3mily0dps450pyj9vyv1bay5w919y9swplaf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRhdGUgJmFtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDsgQ2xvY2sgRGVza3RvcCBXaWRnZXRcblxuTW92ZSBXaWRnZXQgYnkgUHJlc3MgU3VwZXIgKyBEcmFnIFdpZGdldFxuaHR0cHM6Ly9naXRodWIuY29tL3hlbmxpc20vc2hvd3RpbWUiLAogICJuYW1lIjogIlNob3d0aW1lICAtIERlc2t0b3AgV2lkZ2V0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNob3d0aW1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veGVubGlzbS9zaG93dGltZSIsCiAgInV1aWQiOiAic2hvd3RpbWVAeGVubGlzbS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNAp9"}, "40": {"version": "5", "sha256": "0p10as2k6lkh3vj5860hvmj98by18ih8r2k7y36iqrxqpl3s8fd4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRhdGUgJmFtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDsgQ2xvY2sgRGVza3RvcCBXaWRnZXRcblxuTW92ZSBXaWRnZXQgYnkgUHJlc3MgU3VwZXIgKyBEcmFnIFdpZGdldFxuaHR0cHM6Ly9naXRodWIuY29tL3hlbmxpc20vc2hvd3RpbWUiLAogICJuYW1lIjogIlNob3d0aW1lICAtIERlc2t0b3AgV2lkZ2V0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNob3d0aW1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3hlbmxpc20vc2hvd3RpbWUiLAogICJ1dWlkIjogInNob3d0aW1lQHhlbmxpc20uZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
-, {"uuid": "Current_screen_only_for_Alternate_Tab@bourcereau.fr", "name": "Current screen only on window switcher", "pname": "current-screen-only-for-alternate-tab", "description": "Limits the windows shown on the switcher to those of the current monitor", "link": "https://extensions.gnome.org/extension/1437/current-screen-only-for-alternate-tab/", "shell_version_map": {"40": {"version": "7", "sha256": "085166k6cyc249h03nmkv3dx5i7hcrpvbapimym6z1mg3ygij6z7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpbWl0cyB0aGUgd2luZG93cyBzaG93biBvbiB0aGUgc3dpdGNoZXIgdG8gdGhvc2Ugb2YgdGhlIGN1cnJlbnQgbW9uaXRvciIsCiAgIm5hbWUiOiAiQ3VycmVudCBzY3JlZW4gb25seSBvbiB3aW5kb3cgc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzIiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbW1haS9DdXJyZW50X3NjcmVlbl9vbmx5X29uX3dpbmRvd19zd2l0Y2hlciIsCiAgInV1aWQiOiAiQ3VycmVudF9zY3JlZW5fb25seV9mb3JfQWx0ZXJuYXRlX1RhYkBib3VyY2VyZWF1LmZyIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
-, {"uuid": "kube_config@vvbogdanov87.gmail.com", "name": "Kube Config", "pname": "kube-config", "description": "Switches kube config context", "link": "https://extensions.gnome.org/extension/1442/kube-config/", "shell_version_map": {"40": {"version": "12", "sha256": "0cdvqihm4skvnyv3mbbyp9cyk14xgrvhzrv2gm90p32hsfa6l95d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGt1YmUgY29uZmlnIGNvbnRleHQiLAogICJuYW1lIjogIkt1YmUgQ29uZmlnIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmt1YmUtY29uZmlnIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS92dmJvZ2Rhbm92ODcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWt1YmVjb25maWciLAogICJ1dWlkIjogImt1YmVfY29uZmlnQHZ2Ym9nZGFub3Y4Ny5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}, "41": {"version": "12", "sha256": "0cdvqihm4skvnyv3mbbyp9cyk14xgrvhzrv2gm90p32hsfa6l95d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGt1YmUgY29uZmlnIGNvbnRleHQiLAogICJuYW1lIjogIkt1YmUgQ29uZmlnIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmt1YmUtY29uZmlnIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS92dmJvZ2Rhbm92ODcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWt1YmVjb25maWciLAogICJ1dWlkIjogImt1YmVfY29uZmlnQHZ2Ym9nZGFub3Y4Ny5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}}}
+, {"uuid": "Current_screen_only_for_Alternate_Tab@bourcereau.fr", "name": "Current screen only on window switcher", "pname": "current-screen-only-for-alternate-tab", "description": "Limits the windows shown on the switcher to those of the current monitor", "link": "https://extensions.gnome.org/extension/1437/current-screen-only-for-alternate-tab/", "shell_version_map": {"40": {"version": "8", "sha256": "0x4idd6ba55qxsnx8fplgamdjj0f2hmv2sv2vbn3m3wavd4n0w27", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpbWl0cyB0aGUgd2luZG93cyBzaG93biBvbiB0aGUgc3dpdGNoZXIgdG8gdGhvc2Ugb2YgdGhlIGN1cnJlbnQgbW9uaXRvciIsCiAgIm5hbWUiOiAiQ3VycmVudCBzY3JlZW4gb25seSBvbiB3aW5kb3cgc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzIiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21tYWkvQ3VycmVudF9zY3JlZW5fb25seV9vbl93aW5kb3dfc3dpdGNoZXIiLAogICJ1dWlkIjogIkN1cnJlbnRfc2NyZWVuX29ubHlfZm9yX0FsdGVybmF0ZV9UYWJAYm91cmNlcmVhdS5mciIsCiAgInZlcnNpb24iOiA4Cn0="}, "41": {"version": "8", "sha256": "0x4idd6ba55qxsnx8fplgamdjj0f2hmv2sv2vbn3m3wavd4n0w27", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpbWl0cyB0aGUgd2luZG93cyBzaG93biBvbiB0aGUgc3dpdGNoZXIgdG8gdGhvc2Ugb2YgdGhlIGN1cnJlbnQgbW9uaXRvciIsCiAgIm5hbWUiOiAiQ3VycmVudCBzY3JlZW4gb25seSBvbiB3aW5kb3cgc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzIiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21tYWkvQ3VycmVudF9zY3JlZW5fb25seV9vbl93aW5kb3dfc3dpdGNoZXIiLAogICJ1dWlkIjogIkN1cnJlbnRfc2NyZWVuX29ubHlfZm9yX0FsdGVybmF0ZV9UYWJAYm91cmNlcmVhdS5mciIsCiAgInZlcnNpb24iOiA4Cn0="}}}
+, {"uuid": "kube_config@vvbogdanov87.gmail.com", "name": "Kube Config", "pname": "kube-config", "description": "Switches kube config context", "link": "https://extensions.gnome.org/extension/1442/kube-config/", "shell_version_map": {"40": {"version": "14", "sha256": "125gbiim4d3kpycjncvqmxqgz3i1c15kkyx2rmgkc2wpzx0gyc6i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGt1YmUgY29uZmlnIGNvbnRleHQiLAogICJuYW1lIjogIkt1YmUgQ29uZmlnIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmt1YmUtY29uZmlnIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS92dmJvZ2Rhbm92ODcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWt1YmVjb25maWciLAogICJ1dWlkIjogImt1YmVfY29uZmlnQHZ2Ym9nZGFub3Y4Ny5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "41": {"version": "14", "sha256": "125gbiim4d3kpycjncvqmxqgz3i1c15kkyx2rmgkc2wpzx0gyc6i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGt1YmUgY29uZmlnIGNvbnRleHQiLAogICJuYW1lIjogIkt1YmUgQ29uZmlnIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmt1YmUtY29uZmlnIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS92dmJvZ2Rhbm92ODcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWt1YmVjb25maWciLAogICJ1dWlkIjogImt1YmVfY29uZmlnQHZ2Ym9nZGFub3Y4Ny5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}}}
 , {"uuid": "transparent-window-moving@noobsai.github.com", "name": "Transparent Window Moving", "pname": "transparent-window-moving", "description": "Makes the window semi-transparent when moving or resizing", "link": "https://extensions.gnome.org/extension/1446/transparent-window-moving/", "shell_version_map": {"38": {"version": "6", "sha256": "0vllnrscjaqx77wb44803q6n3wk590dxacjfsw7ympbgqhikzc0p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIHRoZSB3aW5kb3cgc2VtaS10cmFuc3BhcmVudCB3aGVuIG1vdmluZyBvciByZXNpemluZyIsCiAgImV4dGVuc2lvbi1pZCI6ICJ0cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiVHJhbnNwYXJlbnQgV2luZG93IE1vdmluZyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTm9vYnNhaS90cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAidXVpZCI6ICJ0cmFuc3BhcmVudC13aW5kb3ctbW92aW5nQG5vb2JzYWkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}, "40": {"version": "9", "sha256": "1da8vldknv6v5b4wdxd9a7q9i4mla92wxj5l48g3ja8xa1rz8bgf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIHRoZSB3aW5kb3cgc2VtaS10cmFuc3BhcmVudCB3aGVuIG1vdmluZyBvciByZXNpemluZyIsCiAgImV4dGVuc2lvbi1pZCI6ICJ0cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiVHJhbnNwYXJlbnQgV2luZG93IE1vdmluZyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Ob29ic2FpL3RyYW5zcGFyZW50LXdpbmRvdy1tb3ZpbmciLAogICJ1dWlkIjogInRyYW5zcGFyZW50LXdpbmRvdy1tb3ZpbmdAbm9vYnNhaS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDkKfQ=="}, "41": {"version": "9", "sha256": "1da8vldknv6v5b4wdxd9a7q9i4mla92wxj5l48g3ja8xa1rz8bgf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIHRoZSB3aW5kb3cgc2VtaS10cmFuc3BhcmVudCB3aGVuIG1vdmluZyBvciByZXNpemluZyIsCiAgImV4dGVuc2lvbi1pZCI6ICJ0cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiVHJhbnNwYXJlbnQgV2luZG93IE1vdmluZyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Ob29ic2FpL3RyYW5zcGFyZW50LXdpbmRvdy1tb3ZpbmciLAogICJ1dWlkIjogInRyYW5zcGFyZW50LXdpbmRvdy1tb3ZpbmdAbm9vYnNhaS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDkKfQ=="}}}
 , {"uuid": "transparent-window@pbxqdown.github.com", "name": "Transparent Window", "pname": "transparent-window", "description": "Change the opacity of windows by compiz-style shortcut Alt+scroll.\nYou can customize hotkey in Preference page if Alt key doesn't work.", "link": "https://extensions.gnome.org/extension/1454/transparent-window/", "shell_version_map": {"38": {"version": "7", "sha256": "09nhn8f7d8c1kp8hgw49y0d9165ckvgn6my339k0pzga02d277a6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB0aGUgb3BhY2l0eSBvZiB3aW5kb3dzIGJ5IGNvbXBpei1zdHlsZSBzaG9ydGN1dCBBbHQrc2Nyb2xsLlxuWW91IGNhbiBjdXN0b21pemUgaG90a2V5IGluIFByZWZlcmVuY2UgcGFnZSBpZiBBbHQga2V5IGRvZXNuJ3Qgd29yay4iLAogICJuYW1lIjogIlRyYW5zcGFyZW50IFdpbmRvdyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5UcmFuc3BhcmVudFdpbmRvdyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOC4xIiwKICAgICIzLjM2LjEiLAogICAgIjMuMzguMSIsCiAgICAiMy4zOC40IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGJ4cWRvd24vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRyYW5zcGFyZW50LXdpbmRvdyIsCiAgInV1aWQiOiAidHJhbnNwYXJlbnQtd2luZG93QHBieHFkb3duLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNwp9"}}}
 , {"uuid": "miniview@thesecretaryofwar.com", "name": "Miniview", "pname": "miniview", "description": "Show mini window previews (like picture-in-picture on a TV)\n- Left-mouse drag: move preview window\n- Right-mouse drag (or ctrl + left mouse drag): resize preview window\n- Scroll wheel: change target window\n- Double click: raise target window\n- Shift + F12: toggle preview window (this can be changed or disabled in preferences)\n- Ctrl + scroll wheel: adjust opacity", "link": "https://extensions.gnome.org/extension/1459/miniview/", "shell_version_map": {"38": {"version": "11", "sha256": "15n1vhnsijahbl41prfddpykyaq2mn43gi74n8qg66cz5n5rc58i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgbWluaSB3aW5kb3cgcHJldmlld3MgKGxpa2UgcGljdHVyZS1pbi1waWN0dXJlIG9uIGEgVFYpXG4tIExlZnQtbW91c2UgZHJhZzogbW92ZSBwcmV2aWV3IHdpbmRvd1xuLSBSaWdodC1tb3VzZSBkcmFnIChvciBjdHJsICsgbGVmdCBtb3VzZSBkcmFnKTogcmVzaXplIHByZXZpZXcgd2luZG93XG4tIFNjcm9sbCB3aGVlbDogY2hhbmdlIHRhcmdldCB3aW5kb3dcbi0gRG91YmxlIGNsaWNrOiByYWlzZSB0YXJnZXQgd2luZG93XG4tIFNoaWZ0ICsgRjEyOiB0b2dnbGUgcHJldmlldyB3aW5kb3cgKHRoaXMgY2FuIGJlIGNoYW5nZWQgb3IgZGlzYWJsZWQgaW4gcHJlZmVyZW5jZXMpXG4tIEN0cmwgKyBzY3JvbGwgd2hlZWw6IGFkanVzdCBvcGFjaXR5IiwKICAiZXh0ZW5zaW9uLWlkIjogIm1pbml2aWV3IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiTWluaXZpZXciLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgInRoZXNlY3JldGFyeW9md2FyQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubWluaXZpZXciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLmFscGhhIiwKICAgICI0MC5iZXRhIiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pYW1sZW1lYy9taW5pdmlldyIsCiAgInV1aWQiOiAibWluaXZpZXdAdGhlc2VjcmV0YXJ5b2Z3YXIuY29tIiwKICAidmVyc2lvbiI6IDExCn0="}, "40": {"version": "11", "sha256": "15n1vhnsijahbl41prfddpykyaq2mn43gi74n8qg66cz5n5rc58i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgbWluaSB3aW5kb3cgcHJldmlld3MgKGxpa2UgcGljdHVyZS1pbi1waWN0dXJlIG9uIGEgVFYpXG4tIExlZnQtbW91c2UgZHJhZzogbW92ZSBwcmV2aWV3IHdpbmRvd1xuLSBSaWdodC1tb3VzZSBkcmFnIChvciBjdHJsICsgbGVmdCBtb3VzZSBkcmFnKTogcmVzaXplIHByZXZpZXcgd2luZG93XG4tIFNjcm9sbCB3aGVlbDogY2hhbmdlIHRhcmdldCB3aW5kb3dcbi0gRG91YmxlIGNsaWNrOiByYWlzZSB0YXJnZXQgd2luZG93XG4tIFNoaWZ0ICsgRjEyOiB0b2dnbGUgcHJldmlldyB3aW5kb3cgKHRoaXMgY2FuIGJlIGNoYW5nZWQgb3IgZGlzYWJsZWQgaW4gcHJlZmVyZW5jZXMpXG4tIEN0cmwgKyBzY3JvbGwgd2hlZWw6IGFkanVzdCBvcGFjaXR5IiwKICAiZXh0ZW5zaW9uLWlkIjogIm1pbml2aWV3IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiTWluaXZpZXciLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgInRoZXNlY3JldGFyeW9md2FyQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubWluaXZpZXciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLmFscGhhIiwKICAgICI0MC5iZXRhIiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pYW1sZW1lYy9taW5pdmlldyIsCiAgInV1aWQiOiAibWluaXZpZXdAdGhlc2VjcmV0YXJ5b2Z3YXIuY29tIiwKICAidmVyc2lvbiI6IDExCn0="}, "41": {"version": "11", "sha256": "15n1vhnsijahbl41prfddpykyaq2mn43gi74n8qg66cz5n5rc58i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgbWluaSB3aW5kb3cgcHJldmlld3MgKGxpa2UgcGljdHVyZS1pbi1waWN0dXJlIG9uIGEgVFYpXG4tIExlZnQtbW91c2UgZHJhZzogbW92ZSBwcmV2aWV3IHdpbmRvd1xuLSBSaWdodC1tb3VzZSBkcmFnIChvciBjdHJsICsgbGVmdCBtb3VzZSBkcmFnKTogcmVzaXplIHByZXZpZXcgd2luZG93XG4tIFNjcm9sbCB3aGVlbDogY2hhbmdlIHRhcmdldCB3aW5kb3dcbi0gRG91YmxlIGNsaWNrOiByYWlzZSB0YXJnZXQgd2luZG93XG4tIFNoaWZ0ICsgRjEyOiB0b2dnbGUgcHJldmlldyB3aW5kb3cgKHRoaXMgY2FuIGJlIGNoYW5nZWQgb3IgZGlzYWJsZWQgaW4gcHJlZmVyZW5jZXMpXG4tIEN0cmwgKyBzY3JvbGwgd2hlZWw6IGFkanVzdCBvcGFjaXR5IiwKICAiZXh0ZW5zaW9uLWlkIjogIm1pbml2aWV3IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiTWluaXZpZXciLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgInRoZXNlY3JldGFyeW9md2FyQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubWluaXZpZXciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLmFscGhhIiwKICAgICI0MC5iZXRhIiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pYW1sZW1lYy9taW5pdmlldyIsCiAgInV1aWQiOiAibWluaXZpZXdAdGhlc2VjcmV0YXJ5b2Z3YXIuY29tIiwKICAidmVyc2lvbiI6IDExCn0="}}}
@@ -197,9 +198,9 @@
 , {"uuid": "wsmatrix@martin.zurowietz.de", "name": "Workspace Matrix", "pname": "workspace-matrix", "description": "Arrange workspaces in a two dimensional grid with workspace thumbnails.", "link": "https://extensions.gnome.org/extension/1485/workspace-matrix/", "shell_version_map": {"38": {"version": "27", "sha256": "0b76x0li5a8x42l67ykbw34k4cfmbxqvz36zighhfw4qmxsc36cr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFycmFuZ2Ugd29ya3NwYWNlcyBpbiBhIHR3byBkaW1lbnNpb25hbCBncmlkIHdpdGggd29ya3NwYWNlIHRodW1ibmFpbHMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid3NtYXRyaXgiLAogICJrZXliaW5kaW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud3NtYXRyaXgta2V5YmluZGluZ3MiLAogICJuYW1lIjogIldvcmtzcGFjZSBNYXRyaXgiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud3NtYXRyaXgtc2V0dGluZ3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tenVyL2dub21lLXNoZWxsLXdzbWF0cml4IiwKICAidXVpZCI6ICJ3c21hdHJpeEBtYXJ0aW4uenVyb3dpZXR6LmRlIiwKICAidmVyc2lvbiI6IDI3Cn0="}, "40": {"version": "30", "sha256": "0i2mkln8nvvjr870fi0vspry0y7zsyvxakb3i8x5c90r6gc6mr25", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFycmFuZ2Ugd29ya3NwYWNlcyBpbiBhIHR3byBkaW1lbnNpb25hbCBncmlkIHdpdGggd29ya3NwYWNlIHRodW1ibmFpbHMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid3NtYXRyaXgiLAogICJrZXliaW5kaW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud3NtYXRyaXgta2V5YmluZGluZ3MiLAogICJuYW1lIjogIldvcmtzcGFjZSBNYXRyaXgiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud3NtYXRyaXgtc2V0dGluZ3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL216dXIvZ25vbWUtc2hlbGwtd3NtYXRyaXgiLAogICJ1dWlkIjogIndzbWF0cml4QG1hcnRpbi56dXJvd2lldHouZGUiLAogICJ2ZXJzaW9uIjogMzAKfQ=="}, "41": {"version": "30", "sha256": "0i2mkln8nvvjr870fi0vspry0y7zsyvxakb3i8x5c90r6gc6mr25", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFycmFuZ2Ugd29ya3NwYWNlcyBpbiBhIHR3byBkaW1lbnNpb25hbCBncmlkIHdpdGggd29ya3NwYWNlIHRodW1ibmFpbHMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid3NtYXRyaXgiLAogICJrZXliaW5kaW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud3NtYXRyaXgta2V5YmluZGluZ3MiLAogICJuYW1lIjogIldvcmtzcGFjZSBNYXRyaXgiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud3NtYXRyaXgtc2V0dGluZ3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL216dXIvZ25vbWUtc2hlbGwtd3NtYXRyaXgiLAogICJ1dWlkIjogIndzbWF0cml4QG1hcnRpbi56dXJvd2lldHouZGUiLAogICJ2ZXJzaW9uIjogMzAKfQ=="}}}
 , {"uuid": "extensions-sync@elhan.io", "name": "Extensions Sync", "pname": "extensions-sync", "description": "Sync all extensions and their configurations across all gnome instances", "link": "https://extensions.gnome.org/extension/1486/extensions-sync/", "shell_version_map": {"38": {"version": "12", "sha256": "0yb0brjnqvvlqpdyh841qwh3q2d02vi1an0s93gb2b6kagy1g7zd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5bmMgYWxsIGV4dGVuc2lvbnMgYW5kIHRoZWlyIGNvbmZpZ3VyYXRpb25zIGFjcm9zcyBhbGwgZ25vbWUgaW5zdGFuY2VzIiwKICAibmFtZSI6ICJFeHRlbnNpb25zIFN5bmMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXh0ZW5zaW9ucy1zeW5jIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb2FlL2dub21lLXNoZWxsLWV4dGVuc2lvbnMtc3luYyIsCiAgInV1aWQiOiAiZXh0ZW5zaW9ucy1zeW5jQGVsaGFuLmlvIiwKICAidmVyc2lvbiI6IDEyCn0="}, "40": {"version": "16", "sha256": "1bl8la3yg94mmzqh28n47kznaaivfbnxm3dwb71ddsr6gaf3n5p2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5bmMgYWxsIGV4dGVuc2lvbnMgYW5kIHRoZWlyIGNvbmZpZ3VyYXRpb25zIGFjcm9zcyBhbGwgZ25vbWUgaW5zdGFuY2VzIiwKICAibmFtZSI6ICJFeHRlbnNpb25zIFN5bmMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXh0ZW5zaW9ucy1zeW5jIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9vYWUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy1zeW5jIiwKICAidXVpZCI6ICJleHRlbnNpb25zLXN5bmNAZWxoYW4uaW8iLAogICJ2ZXJzaW9uIjogMTYKfQ=="}, "41": {"version": "16", "sha256": "1bl8la3yg94mmzqh28n47kznaaivfbnxm3dwb71ddsr6gaf3n5p2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5bmMgYWxsIGV4dGVuc2lvbnMgYW5kIHRoZWlyIGNvbmZpZ3VyYXRpb25zIGFjcm9zcyBhbGwgZ25vbWUgaW5zdGFuY2VzIiwKICAibmFtZSI6ICJFeHRlbnNpb25zIFN5bmMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXh0ZW5zaW9ucy1zeW5jIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9vYWUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy1zeW5jIiwKICAidXVpZCI6ICJleHRlbnNpb25zLXN5bmNAZWxoYW4uaW8iLAogICJ2ZXJzaW9uIjogMTYKfQ=="}}}
 , {"uuid": "containers@royg", "name": "Containers", "pname": "containers", "description": "Manage podman containers through a gnome-shell menu", "link": "https://extensions.gnome.org/extension/1500/containers/", "shell_version_map": {"40": {"version": "19", "sha256": "16z5978jwpf6cbasnfdi5w8s9dx929r8yh7a4dsrd5isnrnyi22x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBwb2RtYW4gY29udGFpbmVycyB0aHJvdWdoIGEgZ25vbWUtc2hlbGwgbWVudSIsCiAgIm5hbWUiOiAiQ29udGFpbmVycyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmdvbGFuZ2gvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNvbnRhaW5lcnMiLAogICJ1dWlkIjogImNvbnRhaW5lcnNAcm95ZyIsCiAgInZlcnNpb24iOiAxOQp9"}, "41": {"version": "19", "sha256": "16z5978jwpf6cbasnfdi5w8s9dx929r8yh7a4dsrd5isnrnyi22x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBwb2RtYW4gY29udGFpbmVycyB0aHJvdWdoIGEgZ25vbWUtc2hlbGwgbWVudSIsCiAgIm5hbWUiOiAiQ29udGFpbmVycyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmdvbGFuZ2gvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNvbnRhaW5lcnMiLAogICJ1dWlkIjogImNvbnRhaW5lcnNAcm95ZyIsCiAgInZlcnNpb24iOiAxOQp9"}}}
-, {"uuid": "fullscreenworkspace@satran.in", "name": "Fullscreen On New Workspace", "pname": "fullscreen-on-new-workspace", "description": "When you launch an application in full-screen mode move it to a separate workspace. It only works on full-screen applications and not maximized. \n\nIf you find bugs please report it here: https://github.com/satran/fullscreenworkspace-satran.in/issues\nIf you'd like to propose some change or discuss about the functionality please use GitHub Discussions: https://github.com/satran/fullscreenworkspace-satran.in/discussions\n", "link": "https://extensions.gnome.org/extension/1502/fullscreen-on-new-workspace/", "shell_version_map": {"38": {"version": "3", "sha256": "11wvdl0fw3gfi3dxvjkzz852v7zxzhyvggpbz2wbdx5h6wbpdaj7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldoZW4geW91IGxhdW5jaCBhbiBhcHBsaWNhdGlvbiBpbiBmdWxsLXNjcmVlbiBtb2RlIG1vdmUgaXQgdG8gYSBzZXBhcmF0ZSB3b3Jrc3BhY2UuIEl0IG9ubHkgd29ya3Mgb24gZnVsbC1zY3JlZW4gYXBwbGljYXRpb25zIGFuZCBub3QgbWF4aW1pemVkLiBcblxuSWYgeW91IGZpbmQgYnVncyBwbGVhc2UgcmVwb3J0IGl0IGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9zYXRyYW4vZnVsbHNjcmVlbndvcmtzcGFjZS1zYXRyYW4uaW4vaXNzdWVzXG5JZiB5b3UnZCBsaWtlIHRvIHByb3Bvc2Ugc29tZSBjaGFuZ2Ugb3IgZGlzY3VzcyBhYm91dCB0aGUgZnVuY3Rpb25hbGl0eSBwbGVhc2UgdXNlIEdpdEh1YiBEaXNjdXNzaW9uczogaHR0cHM6Ly9naXRodWIuY29tL3NhdHJhbi9mdWxsc2NyZWVud29ya3NwYWNlLXNhdHJhbi5pbi9kaXNjdXNzaW9uc1xuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZnVsbHNjcmVlbndvcmtzcGFjZSIsCiAgIm5hbWUiOiAiRnVsbHNjcmVlbiBPbiBOZXcgV29ya3NwYWNlIiwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZ1bGxzY3JlZW53b3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NhdHJhbi9mdWxsc2NyZWVud29ya3NwYWNlLXNhdHJhbi5pbiIsCiAgInV1aWQiOiAiZnVsbHNjcmVlbndvcmtzcGFjZUBzYXRyYW4uaW4iLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "11wvdl0fw3gfi3dxvjkzz852v7zxzhyvggpbz2wbdx5h6wbpdaj7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldoZW4geW91IGxhdW5jaCBhbiBhcHBsaWNhdGlvbiBpbiBmdWxsLXNjcmVlbiBtb2RlIG1vdmUgaXQgdG8gYSBzZXBhcmF0ZSB3b3Jrc3BhY2UuIEl0IG9ubHkgd29ya3Mgb24gZnVsbC1zY3JlZW4gYXBwbGljYXRpb25zIGFuZCBub3QgbWF4aW1pemVkLiBcblxuSWYgeW91IGZpbmQgYnVncyBwbGVhc2UgcmVwb3J0IGl0IGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9zYXRyYW4vZnVsbHNjcmVlbndvcmtzcGFjZS1zYXRyYW4uaW4vaXNzdWVzXG5JZiB5b3UnZCBsaWtlIHRvIHByb3Bvc2Ugc29tZSBjaGFuZ2Ugb3IgZGlzY3VzcyBhYm91dCB0aGUgZnVuY3Rpb25hbGl0eSBwbGVhc2UgdXNlIEdpdEh1YiBEaXNjdXNzaW9uczogaHR0cHM6Ly9naXRodWIuY29tL3NhdHJhbi9mdWxsc2NyZWVud29ya3NwYWNlLXNhdHJhbi5pbi9kaXNjdXNzaW9uc1xuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZnVsbHNjcmVlbndvcmtzcGFjZSIsCiAgIm5hbWUiOiAiRnVsbHNjcmVlbiBPbiBOZXcgV29ya3NwYWNlIiwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZ1bGxzY3JlZW53b3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NhdHJhbi9mdWxsc2NyZWVud29ya3NwYWNlLXNhdHJhbi5pbiIsCiAgInV1aWQiOiAiZnVsbHNjcmVlbndvcmtzcGFjZUBzYXRyYW4uaW4iLAogICJ2ZXJzaW9uIjogMwp9"}, "41": {"version": "3", "sha256": "11wvdl0fw3gfi3dxvjkzz852v7zxzhyvggpbz2wbdx5h6wbpdaj7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldoZW4geW91IGxhdW5jaCBhbiBhcHBsaWNhdGlvbiBpbiBmdWxsLXNjcmVlbiBtb2RlIG1vdmUgaXQgdG8gYSBzZXBhcmF0ZSB3b3Jrc3BhY2UuIEl0IG9ubHkgd29ya3Mgb24gZnVsbC1zY3JlZW4gYXBwbGljYXRpb25zIGFuZCBub3QgbWF4aW1pemVkLiBcblxuSWYgeW91IGZpbmQgYnVncyBwbGVhc2UgcmVwb3J0IGl0IGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9zYXRyYW4vZnVsbHNjcmVlbndvcmtzcGFjZS1zYXRyYW4uaW4vaXNzdWVzXG5JZiB5b3UnZCBsaWtlIHRvIHByb3Bvc2Ugc29tZSBjaGFuZ2Ugb3IgZGlzY3VzcyBhYm91dCB0aGUgZnVuY3Rpb25hbGl0eSBwbGVhc2UgdXNlIEdpdEh1YiBEaXNjdXNzaW9uczogaHR0cHM6Ly9naXRodWIuY29tL3NhdHJhbi9mdWxsc2NyZWVud29ya3NwYWNlLXNhdHJhbi5pbi9kaXNjdXNzaW9uc1xuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZnVsbHNjcmVlbndvcmtzcGFjZSIsCiAgIm5hbWUiOiAiRnVsbHNjcmVlbiBPbiBOZXcgV29ya3NwYWNlIiwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZ1bGxzY3JlZW53b3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NhdHJhbi9mdWxsc2NyZWVud29ya3NwYWNlLXNhdHJhbi5pbiIsCiAgInV1aWQiOiAiZnVsbHNjcmVlbndvcmtzcGFjZUBzYXRyYW4uaW4iLAogICJ2ZXJzaW9uIjogMwp9"}}}
+, {"uuid": "fullscreenworkspace@satran.in", "name": "Fullscreen On New Workspace", "pname": "fullscreen-on-new-workspace", "description": "Move window to a new workspace when you maximize or make it fullscreen.", "link": "https://extensions.gnome.org/extension/1502/fullscreen-on-new-workspace/", "shell_version_map": {"38": {"version": "5", "sha256": "1qqi4rhlfdwys1h0hhrwry86kzh3mv63axrsqhjpmhp9q4qsiib7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgd2luZG93IHRvIGEgbmV3IHdvcmtzcGFjZSB3aGVuIHlvdSBtYXhpbWl6ZSBvciBtYWtlIGl0IGZ1bGxzY3JlZW4uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZnVsbHNjcmVlbndvcmtzcGFjZSIsCiAgIm5hbWUiOiAiRnVsbHNjcmVlbiBPbiBOZXcgV29ya3NwYWNlIiwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZ1bGxzY3JlZW53b3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NhdHJhbi9mdWxsc2NyZWVud29ya3NwYWNlLXNhdHJhbi5pbiIsCiAgInV1aWQiOiAiZnVsbHNjcmVlbndvcmtzcGFjZUBzYXRyYW4uaW4iLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "5", "sha256": "1qqi4rhlfdwys1h0hhrwry86kzh3mv63axrsqhjpmhp9q4qsiib7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgd2luZG93IHRvIGEgbmV3IHdvcmtzcGFjZSB3aGVuIHlvdSBtYXhpbWl6ZSBvciBtYWtlIGl0IGZ1bGxzY3JlZW4uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZnVsbHNjcmVlbndvcmtzcGFjZSIsCiAgIm5hbWUiOiAiRnVsbHNjcmVlbiBPbiBOZXcgV29ya3NwYWNlIiwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZ1bGxzY3JlZW53b3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NhdHJhbi9mdWxsc2NyZWVud29ya3NwYWNlLXNhdHJhbi5pbiIsCiAgInV1aWQiOiAiZnVsbHNjcmVlbndvcmtzcGFjZUBzYXRyYW4uaW4iLAogICJ2ZXJzaW9uIjogNQp9"}, "41": {"version": "5", "sha256": "1qqi4rhlfdwys1h0hhrwry86kzh3mv63axrsqhjpmhp9q4qsiib7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgd2luZG93IHRvIGEgbmV3IHdvcmtzcGFjZSB3aGVuIHlvdSBtYXhpbWl6ZSBvciBtYWtlIGl0IGZ1bGxzY3JlZW4uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZnVsbHNjcmVlbndvcmtzcGFjZSIsCiAgIm5hbWUiOiAiRnVsbHNjcmVlbiBPbiBOZXcgV29ya3NwYWNlIiwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZ1bGxzY3JlZW53b3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NhdHJhbi9mdWxsc2NyZWVud29ya3NwYWNlLXNhdHJhbi5pbiIsCiAgInV1aWQiOiAiZnVsbHNjcmVlbndvcmtzcGFjZUBzYXRyYW4uaW4iLAogICJ2ZXJzaW9uIjogNQp9"}}}
 , {"uuid": "tray-icons@zhangkaizhao.com", "name": "Tray Icons", "pname": "tray-icons", "description": "Tray icons", "link": "https://extensions.gnome.org/extension/1503/tray-icons/", "shell_version_map": {"38": {"version": "6", "sha256": "0q5kk8yp7cg61d4hcimrxrghsq7v8qaxjbmzvkj5apbg4cmz3s7v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYXkgaWNvbnMiLAogICJuYW1lIjogIlRyYXkgSWNvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIuMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3poYW5na2Fpemhhby9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJheS1pY29ucyIsCiAgInV1aWQiOiAidHJheS1pY29uc0B6aGFuZ2thaXpoYW8uY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "6", "sha256": "0q5kk8yp7cg61d4hcimrxrghsq7v8qaxjbmzvkj5apbg4cmz3s7v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYXkgaWNvbnMiLAogICJuYW1lIjogIlRyYXkgSWNvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIuMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3poYW5na2Fpemhhby9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJheS1pY29ucyIsCiAgInV1aWQiOiAidHJheS1pY29uc0B6aGFuZ2thaXpoYW8uY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
-, {"uuid": "new-mail-indicator@fthx", "name": "New Mail Indicator", "pname": "new-mail-indicator", "description": "An icon beside the date in the topbar to show if there are unread emails when running your default email client.\n\n It checks the notifications in the message tray related to a new mail, no extra configuration needed, very light extension. Click on the icon does toggle your email client window.*** Do not disable the notifications of your default email client! *** It is not a standalone mail checker, you need your email client to be running. *** Please check that the xdg-utils package is installed.\n\n Email clients verified at the moment are: Thunderbird, Evolution, Geary, Mailspring. Please ask to add the client, including special packaging (snap/flatpak), that you need. If you report an error, please provide at least the distribution and the email client you use through the GitHub link.\n\n For persistent notifications only, see: https://extensions.gnome.org/extension/3951/persistent-email-notifications .", "link": "https://extensions.gnome.org/extension/1505/new-mail-indicator/", "shell_version_map": {"38": {"version": "32", "sha256": "1h4dxgpanvxs5y0k0zlghxrqp74igs3dhhmj9fkrzykqgm5qk99w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGljb24gYmVzaWRlIHRoZSBkYXRlIGluIHRoZSB0b3BiYXIgdG8gc2hvdyBpZiB0aGVyZSBhcmUgdW5yZWFkIGVtYWlscyB3aGVuIHJ1bm5pbmcgeW91ciBkZWZhdWx0IGVtYWlsIGNsaWVudC5cblxuIEl0IGNoZWNrcyB0aGUgbm90aWZpY2F0aW9ucyBpbiB0aGUgbWVzc2FnZSB0cmF5IHJlbGF0ZWQgdG8gYSBuZXcgbWFpbCwgbm8gZXh0cmEgY29uZmlndXJhdGlvbiBuZWVkZWQsIHZlcnkgbGlnaHQgZXh0ZW5zaW9uLiBDbGljayBvbiB0aGUgaWNvbiBkb2VzIHRvZ2dsZSB5b3VyIGVtYWlsIGNsaWVudCB3aW5kb3cuKioqIERvIG5vdCBkaXNhYmxlIHRoZSBub3RpZmljYXRpb25zIG9mIHlvdXIgZGVmYXVsdCBlbWFpbCBjbGllbnQhICoqKiBJdCBpcyBub3QgYSBzdGFuZGFsb25lIG1haWwgY2hlY2tlciwgeW91IG5lZWQgeW91ciBlbWFpbCBjbGllbnQgdG8gYmUgcnVubmluZy4gKioqIFBsZWFzZSBjaGVjayB0aGF0IHRoZSB4ZGctdXRpbHMgcGFja2FnZSBpcyBpbnN0YWxsZWQuXG5cbiBFbWFpbCBjbGllbnRzIHZlcmlmaWVkIGF0IHRoZSBtb21lbnQgYXJlOiBUaHVuZGVyYmlyZCwgRXZvbHV0aW9uLCBHZWFyeSwgTWFpbHNwcmluZy4gUGxlYXNlIGFzayB0byBhZGQgdGhlIGNsaWVudCwgaW5jbHVkaW5nIHNwZWNpYWwgcGFja2FnaW5nIChzbmFwL2ZsYXRwYWspLCB0aGF0IHlvdSBuZWVkLiBJZiB5b3UgcmVwb3J0IGFuIGVycm9yLCBwbGVhc2UgcHJvdmlkZSBhdCBsZWFzdCB0aGUgZGlzdHJpYnV0aW9uIGFuZCB0aGUgZW1haWwgY2xpZW50IHlvdSB1c2UgdGhyb3VnaCB0aGUgR2l0SHViIGxpbmsuXG5cbiBGb3IgcGVyc2lzdGVudCBub3RpZmljYXRpb25zIG9ubHksIHNlZTogaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzk1MS9wZXJzaXN0ZW50LWVtYWlsLW5vdGlmaWNhdGlvbnMgLiIsCiAgIm5hbWUiOiAiTmV3IE1haWwgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvbmV3LW1haWwtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJuZXctbWFpbC1pbmRpY2F0b3JAZnRoeCIsCiAgInZlcnNpb24iOiAzMgp9"}, "40": {"version": "32", "sha256": "1h4dxgpanvxs5y0k0zlghxrqp74igs3dhhmj9fkrzykqgm5qk99w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGljb24gYmVzaWRlIHRoZSBkYXRlIGluIHRoZSB0b3BiYXIgdG8gc2hvdyBpZiB0aGVyZSBhcmUgdW5yZWFkIGVtYWlscyB3aGVuIHJ1bm5pbmcgeW91ciBkZWZhdWx0IGVtYWlsIGNsaWVudC5cblxuIEl0IGNoZWNrcyB0aGUgbm90aWZpY2F0aW9ucyBpbiB0aGUgbWVzc2FnZSB0cmF5IHJlbGF0ZWQgdG8gYSBuZXcgbWFpbCwgbm8gZXh0cmEgY29uZmlndXJhdGlvbiBuZWVkZWQsIHZlcnkgbGlnaHQgZXh0ZW5zaW9uLiBDbGljayBvbiB0aGUgaWNvbiBkb2VzIHRvZ2dsZSB5b3VyIGVtYWlsIGNsaWVudCB3aW5kb3cuKioqIERvIG5vdCBkaXNhYmxlIHRoZSBub3RpZmljYXRpb25zIG9mIHlvdXIgZGVmYXVsdCBlbWFpbCBjbGllbnQhICoqKiBJdCBpcyBub3QgYSBzdGFuZGFsb25lIG1haWwgY2hlY2tlciwgeW91IG5lZWQgeW91ciBlbWFpbCBjbGllbnQgdG8gYmUgcnVubmluZy4gKioqIFBsZWFzZSBjaGVjayB0aGF0IHRoZSB4ZGctdXRpbHMgcGFja2FnZSBpcyBpbnN0YWxsZWQuXG5cbiBFbWFpbCBjbGllbnRzIHZlcmlmaWVkIGF0IHRoZSBtb21lbnQgYXJlOiBUaHVuZGVyYmlyZCwgRXZvbHV0aW9uLCBHZWFyeSwgTWFpbHNwcmluZy4gUGxlYXNlIGFzayB0byBhZGQgdGhlIGNsaWVudCwgaW5jbHVkaW5nIHNwZWNpYWwgcGFja2FnaW5nIChzbmFwL2ZsYXRwYWspLCB0aGF0IHlvdSBuZWVkLiBJZiB5b3UgcmVwb3J0IGFuIGVycm9yLCBwbGVhc2UgcHJvdmlkZSBhdCBsZWFzdCB0aGUgZGlzdHJpYnV0aW9uIGFuZCB0aGUgZW1haWwgY2xpZW50IHlvdSB1c2UgdGhyb3VnaCB0aGUgR2l0SHViIGxpbmsuXG5cbiBGb3IgcGVyc2lzdGVudCBub3RpZmljYXRpb25zIG9ubHksIHNlZTogaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzk1MS9wZXJzaXN0ZW50LWVtYWlsLW5vdGlmaWNhdGlvbnMgLiIsCiAgIm5hbWUiOiAiTmV3IE1haWwgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvbmV3LW1haWwtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJuZXctbWFpbC1pbmRpY2F0b3JAZnRoeCIsCiAgInZlcnNpb24iOiAzMgp9"}}}
+, {"uuid": "new-mail-indicator@fthx", "name": "New Mail Indicator", "pname": "new-mail-indicator", "description": "An icon beside the date in the topbar to show if there are unread emails when running your default email client.\n\n It checks the notifications in the message tray related to a new mail, no extra configuration needed, very light extension. Click on the icon does toggle your email client window.*** Do not disable the notifications of your default email client! *** It is not a standalone mail checker, you need your email client to be running. *** Please check that the xdg-utils package is installed.\n\n Email clients verified at the moment are: Thunderbird, Evolution, Geary, Mailspring. Please ask to add the client, including special packaging (snap/flatpak), that you need. If you report an error, please provide at least the distribution and the email client you use through the GitHub link.\n\n For persistent notifications only, see: https://extensions.gnome.org/extension/3951/persistent-email-notifications .", "link": "https://extensions.gnome.org/extension/1505/new-mail-indicator/", "shell_version_map": {"38": {"version": "33", "sha256": "1azppcny8f70ish2p1gzmyf0dy4ycj5x8ccwb1c73m452ac561vm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGljb24gYmVzaWRlIHRoZSBkYXRlIGluIHRoZSB0b3BiYXIgdG8gc2hvdyBpZiB0aGVyZSBhcmUgdW5yZWFkIGVtYWlscyB3aGVuIHJ1bm5pbmcgeW91ciBkZWZhdWx0IGVtYWlsIGNsaWVudC5cblxuIEl0IGNoZWNrcyB0aGUgbm90aWZpY2F0aW9ucyBpbiB0aGUgbWVzc2FnZSB0cmF5IHJlbGF0ZWQgdG8gYSBuZXcgbWFpbCwgbm8gZXh0cmEgY29uZmlndXJhdGlvbiBuZWVkZWQsIHZlcnkgbGlnaHQgZXh0ZW5zaW9uLiBDbGljayBvbiB0aGUgaWNvbiBkb2VzIHRvZ2dsZSB5b3VyIGVtYWlsIGNsaWVudCB3aW5kb3cuKioqIERvIG5vdCBkaXNhYmxlIHRoZSBub3RpZmljYXRpb25zIG9mIHlvdXIgZGVmYXVsdCBlbWFpbCBjbGllbnQhICoqKiBJdCBpcyBub3QgYSBzdGFuZGFsb25lIG1haWwgY2hlY2tlciwgeW91IG5lZWQgeW91ciBlbWFpbCBjbGllbnQgdG8gYmUgcnVubmluZy4gKioqIFBsZWFzZSBjaGVjayB0aGF0IHRoZSB4ZGctdXRpbHMgcGFja2FnZSBpcyBpbnN0YWxsZWQuXG5cbiBFbWFpbCBjbGllbnRzIHZlcmlmaWVkIGF0IHRoZSBtb21lbnQgYXJlOiBUaHVuZGVyYmlyZCwgRXZvbHV0aW9uLCBHZWFyeSwgTWFpbHNwcmluZy4gUGxlYXNlIGFzayB0byBhZGQgdGhlIGNsaWVudCwgaW5jbHVkaW5nIHNwZWNpYWwgcGFja2FnaW5nIChzbmFwL2ZsYXRwYWspLCB0aGF0IHlvdSBuZWVkLiBJZiB5b3UgcmVwb3J0IGFuIGVycm9yLCBwbGVhc2UgcHJvdmlkZSBhdCBsZWFzdCB0aGUgZGlzdHJpYnV0aW9uIGFuZCB0aGUgZW1haWwgY2xpZW50IHlvdSB1c2UgdGhyb3VnaCB0aGUgR2l0SHViIGxpbmsuXG5cbiBGb3IgcGVyc2lzdGVudCBub3RpZmljYXRpb25zIG9ubHksIHNlZTogaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzk1MS9wZXJzaXN0ZW50LWVtYWlsLW5vdGlmaWNhdGlvbnMgLiIsCiAgIm5hbWUiOiAiTmV3IE1haWwgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L25ldy1tYWlsLWluZGljYXRvciIsCiAgInV1aWQiOiAibmV3LW1haWwtaW5kaWNhdG9yQGZ0aHgiLAogICJ2ZXJzaW9uIjogMzMKfQ=="}, "40": {"version": "33", "sha256": "1azppcny8f70ish2p1gzmyf0dy4ycj5x8ccwb1c73m452ac561vm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGljb24gYmVzaWRlIHRoZSBkYXRlIGluIHRoZSB0b3BiYXIgdG8gc2hvdyBpZiB0aGVyZSBhcmUgdW5yZWFkIGVtYWlscyB3aGVuIHJ1bm5pbmcgeW91ciBkZWZhdWx0IGVtYWlsIGNsaWVudC5cblxuIEl0IGNoZWNrcyB0aGUgbm90aWZpY2F0aW9ucyBpbiB0aGUgbWVzc2FnZSB0cmF5IHJlbGF0ZWQgdG8gYSBuZXcgbWFpbCwgbm8gZXh0cmEgY29uZmlndXJhdGlvbiBuZWVkZWQsIHZlcnkgbGlnaHQgZXh0ZW5zaW9uLiBDbGljayBvbiB0aGUgaWNvbiBkb2VzIHRvZ2dsZSB5b3VyIGVtYWlsIGNsaWVudCB3aW5kb3cuKioqIERvIG5vdCBkaXNhYmxlIHRoZSBub3RpZmljYXRpb25zIG9mIHlvdXIgZGVmYXVsdCBlbWFpbCBjbGllbnQhICoqKiBJdCBpcyBub3QgYSBzdGFuZGFsb25lIG1haWwgY2hlY2tlciwgeW91IG5lZWQgeW91ciBlbWFpbCBjbGllbnQgdG8gYmUgcnVubmluZy4gKioqIFBsZWFzZSBjaGVjayB0aGF0IHRoZSB4ZGctdXRpbHMgcGFja2FnZSBpcyBpbnN0YWxsZWQuXG5cbiBFbWFpbCBjbGllbnRzIHZlcmlmaWVkIGF0IHRoZSBtb21lbnQgYXJlOiBUaHVuZGVyYmlyZCwgRXZvbHV0aW9uLCBHZWFyeSwgTWFpbHNwcmluZy4gUGxlYXNlIGFzayB0byBhZGQgdGhlIGNsaWVudCwgaW5jbHVkaW5nIHNwZWNpYWwgcGFja2FnaW5nIChzbmFwL2ZsYXRwYWspLCB0aGF0IHlvdSBuZWVkLiBJZiB5b3UgcmVwb3J0IGFuIGVycm9yLCBwbGVhc2UgcHJvdmlkZSBhdCBsZWFzdCB0aGUgZGlzdHJpYnV0aW9uIGFuZCB0aGUgZW1haWwgY2xpZW50IHlvdSB1c2UgdGhyb3VnaCB0aGUgR2l0SHViIGxpbmsuXG5cbiBGb3IgcGVyc2lzdGVudCBub3RpZmljYXRpb25zIG9ubHksIHNlZTogaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzk1MS9wZXJzaXN0ZW50LWVtYWlsLW5vdGlmaWNhdGlvbnMgLiIsCiAgIm5hbWUiOiAiTmV3IE1haWwgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L25ldy1tYWlsLWluZGljYXRvciIsCiAgInV1aWQiOiAibmV3LW1haWwtaW5kaWNhdG9yQGZ0aHgiLAogICJ2ZXJzaW9uIjogMzMKfQ=="}, "41": {"version": "33", "sha256": "1azppcny8f70ish2p1gzmyf0dy4ycj5x8ccwb1c73m452ac561vm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGljb24gYmVzaWRlIHRoZSBkYXRlIGluIHRoZSB0b3BiYXIgdG8gc2hvdyBpZiB0aGVyZSBhcmUgdW5yZWFkIGVtYWlscyB3aGVuIHJ1bm5pbmcgeW91ciBkZWZhdWx0IGVtYWlsIGNsaWVudC5cblxuIEl0IGNoZWNrcyB0aGUgbm90aWZpY2F0aW9ucyBpbiB0aGUgbWVzc2FnZSB0cmF5IHJlbGF0ZWQgdG8gYSBuZXcgbWFpbCwgbm8gZXh0cmEgY29uZmlndXJhdGlvbiBuZWVkZWQsIHZlcnkgbGlnaHQgZXh0ZW5zaW9uLiBDbGljayBvbiB0aGUgaWNvbiBkb2VzIHRvZ2dsZSB5b3VyIGVtYWlsIGNsaWVudCB3aW5kb3cuKioqIERvIG5vdCBkaXNhYmxlIHRoZSBub3RpZmljYXRpb25zIG9mIHlvdXIgZGVmYXVsdCBlbWFpbCBjbGllbnQhICoqKiBJdCBpcyBub3QgYSBzdGFuZGFsb25lIG1haWwgY2hlY2tlciwgeW91IG5lZWQgeW91ciBlbWFpbCBjbGllbnQgdG8gYmUgcnVubmluZy4gKioqIFBsZWFzZSBjaGVjayB0aGF0IHRoZSB4ZGctdXRpbHMgcGFja2FnZSBpcyBpbnN0YWxsZWQuXG5cbiBFbWFpbCBjbGllbnRzIHZlcmlmaWVkIGF0IHRoZSBtb21lbnQgYXJlOiBUaHVuZGVyYmlyZCwgRXZvbHV0aW9uLCBHZWFyeSwgTWFpbHNwcmluZy4gUGxlYXNlIGFzayB0byBhZGQgdGhlIGNsaWVudCwgaW5jbHVkaW5nIHNwZWNpYWwgcGFja2FnaW5nIChzbmFwL2ZsYXRwYWspLCB0aGF0IHlvdSBuZWVkLiBJZiB5b3UgcmVwb3J0IGFuIGVycm9yLCBwbGVhc2UgcHJvdmlkZSBhdCBsZWFzdCB0aGUgZGlzdHJpYnV0aW9uIGFuZCB0aGUgZW1haWwgY2xpZW50IHlvdSB1c2UgdGhyb3VnaCB0aGUgR2l0SHViIGxpbmsuXG5cbiBGb3IgcGVyc2lzdGVudCBub3RpZmljYXRpb25zIG9ubHksIHNlZTogaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzk1MS9wZXJzaXN0ZW50LWVtYWlsLW5vdGlmaWNhdGlvbnMgLiIsCiAgIm5hbWUiOiAiTmV3IE1haWwgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L25ldy1tYWlsLWluZGljYXRvciIsCiAgInV1aWQiOiAibmV3LW1haWwtaW5kaWNhdG9yQGZ0aHgiLAogICJ2ZXJzaW9uIjogMzMKfQ=="}}}
 , {"uuid": "drop-down-terminal-x@bigbn.pro", "name": "Drop Down Terminal X", "pname": "drop-down-terminal-x", "description": "THIS EXTENSION IS NO LONGER SUPPORTED.\n\nIf you are looking for an alternative please look at that https://extensions.gnome.org/extension/3780/ddterm \nawesome extension.\n\nA GNOME Shell drop down terminal with extra feautures.\n \nSpecial thanks to:\n- Osman Alperen Elhan (https://github.com/oae)\n- Balder Claassen (https://github.com/balderclaassen)\n- Adrien Pyke (https://github.com/kufii)\n- Alan J Carvajal (https://github.com/ajcarvajal)\n- Massimo Mund (https://github.com/masmu)\n- Jakub Żywiec (https://github.com/jakubzet)\n- Mattias Eriksson (https://github.com/snaggen)\n- Henry78 (https://github.com/Henry78)\n- Maxim Toropov (https://github.com/MaxMaxoff)\nfor active contribution.\n\nBased on original extension \"gs-extensions-drop-down-terminal\" from Stéphane Démurget (https://github.com/zzrough)", "link": "https://extensions.gnome.org/extension/1509/drop-down-terminal-x/", "shell_version_map": {"38": {"version": "17", "sha256": "1k90g6bndw1xr56k7lwlxyw89aqbl47spkfmj1lq224z83w6hzdw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRISVMgRVhURU5TSU9OIElTIE5PIExPTkdFUiBTVVBQT1JURUQuXG5cbklmIHlvdSBhcmUgbG9va2luZyBmb3IgYW4gYWx0ZXJuYXRpdmUgcGxlYXNlIGxvb2sgYXQgdGhhdCBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8zNzgwL2RkdGVybSBcbmF3ZXNvbWUgZXh0ZW5zaW9uLlxuXG5BIEdOT01FIFNoZWxsIGRyb3AgZG93biB0ZXJtaW5hbCB3aXRoIGV4dHJhIGZlYXV0dXJlcy5cbiBcblNwZWNpYWwgdGhhbmtzIHRvOlxuLSBPc21hbiBBbHBlcmVuIEVsaGFuIChodHRwczovL2dpdGh1Yi5jb20vb2FlKVxuLSBCYWxkZXIgQ2xhYXNzZW4gKGh0dHBzOi8vZ2l0aHViLmNvbS9iYWxkZXJjbGFhc3Nlbilcbi0gQWRyaWVuIFB5a2UgKGh0dHBzOi8vZ2l0aHViLmNvbS9rdWZpaSlcbi0gQWxhbiBKIENhcnZhamFsIChodHRwczovL2dpdGh1Yi5jb20vYWpjYXJ2YWphbClcbi0gTWFzc2ltbyBNdW5kIChodHRwczovL2dpdGh1Yi5jb20vbWFzbXUpXG4tIEpha3ViIFx1MDE3Ynl3aWVjIChodHRwczovL2dpdGh1Yi5jb20vamFrdWJ6ZXQpXG4tIE1hdHRpYXMgRXJpa3Nzb24gKGh0dHBzOi8vZ2l0aHViLmNvbS9zbmFnZ2VuKVxuLSBIZW5yeTc4IChodHRwczovL2dpdGh1Yi5jb20vSGVucnk3OClcbi0gTWF4aW0gVG9yb3BvdiAoaHR0cHM6Ly9naXRodWIuY29tL01heE1heG9mZilcbmZvciBhY3RpdmUgY29udHJpYnV0aW9uLlxuXG5CYXNlZCBvbiBvcmlnaW5hbCBleHRlbnNpb24gXCJncy1leHRlbnNpb25zLWRyb3AtZG93bi10ZXJtaW5hbFwiIGZyb20gU3RcdTAwZTlwaGFuZSBEXHUwMGU5bXVyZ2V0IChodHRwczovL2dpdGh1Yi5jb20venpyb3VnaCkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJkcm9wLWRvd24tdGVybWluYWwteCIsCiAgImlkIjogImRyb3AtZG93bi10ZXJtaW5hbC14IiwKICAibmFtZSI6ICJEcm9wIERvd24gVGVybWluYWwgWCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOC4wIiwKICAgICIzLjI4LjEiLAogICAgIjMuMjguMiIsCiAgICAiMy4zMC4wIiwKICAgICIzLjMwLjEiLAogICAgIjMuMzAuMiIsCiAgICAiMy4zMi4wIiwKICAgICIzLjMyLjEiLAogICAgIjMuMzIuMiIsCiAgICAiMy4zNC4wIiwKICAgICIzLjM0LjQiLAogICAgIjMuMzYuMCIsCiAgICAiMy4zNi4xIiwKICAgICIzLjM2LjIiLAogICAgIjMuMzguMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JpZ2JuL2dzLWV4dGVuc2lvbnMtZHJvcC1kb3duLXRlcm1pbmFsIiwKICAidXVpZCI6ICJkcm9wLWRvd24tdGVybWluYWwteEBiaWdibi5wcm8iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}}}
 , {"uuid": "Rounded_Corners@lennart-k", "name": "Rounded Corners", "pname": "rounded-corners", "description": "Creates rounded corners for every monitor", "link": "https://extensions.gnome.org/extension/1514/rounded-corners/", "shell_version_map": {"38": {"version": "5", "sha256": "1lli47bjlrr5g3548jjvvvbbml6g0sg5mm6py9j7kjcgg84sscnc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZXMgcm91bmRlZCBjb3JuZXJzIGZvciBldmVyeSBtb25pdG9yIiwKICAibmFtZSI6ICJSb3VuZGVkIENvcm5lcnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbGVubmFydC1rL2dub21lLXJvdW5kZWQtY29ybmVycyIsCiAgInV1aWQiOiAiUm91bmRlZF9Db3JuZXJzQGxlbm5hcnQtayIsCiAgInZlcnNpb24iOiA1Cn0="}, "40": {"version": "5", "sha256": "1lli47bjlrr5g3548jjvvvbbml6g0sg5mm6py9j7kjcgg84sscnc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZXMgcm91bmRlZCBjb3JuZXJzIGZvciBldmVyeSBtb25pdG9yIiwKICAibmFtZSI6ICJSb3VuZGVkIENvcm5lcnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbGVubmFydC1rL2dub21lLXJvdW5kZWQtY29ybmVycyIsCiAgInV1aWQiOiAiUm91bmRlZF9Db3JuZXJzQGxlbm5hcnQtayIsCiAgInZlcnNpb24iOiA1Cn0="}}}
 , {"uuid": "scrovol@andyholmes.github.io", "name": "Scrovol", "pname": "scrovol", "description": "Change the volume by scrolling anywhere on the System Tray.\n\nWith this extension, you can scroll over Night Light, WiFi, Volume, Battery or any other icon in the system status tray to change the volume, instead of just the Volume icon.", "link": "https://extensions.gnome.org/extension/1519/scrovol/", "shell_version_map": {"40": {"version": "4", "sha256": "1md52ygz481nvhq00bkq2ymby7f647cfvw4wx1wqkwp7b796d59c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB0aGUgdm9sdW1lIGJ5IHNjcm9sbGluZyBhbnl3aGVyZSBvbiB0aGUgU3lzdGVtIFRyYXkuXG5cbldpdGggdGhpcyBleHRlbnNpb24sIHlvdSBjYW4gc2Nyb2xsIG92ZXIgTmlnaHQgTGlnaHQsIFdpRmksIFZvbHVtZSwgQmF0dGVyeSBvciBhbnkgb3RoZXIgaWNvbiBpbiB0aGUgc3lzdGVtIHN0YXR1cyB0cmF5IHRvIGNoYW5nZSB0aGUgdm9sdW1lLCBpbnN0ZWFkIG9mIGp1c3QgdGhlIFZvbHVtZSBpY29uLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJzY3Jvdm9sIiwKICAibmFtZSI6ICJTY3Jvdm9sIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYW5keWhvbG1lcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tc2Nyb3ZvbC8iLAogICJ1dWlkIjogInNjcm92b2xAYW5keWhvbG1lcy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNAp9"}}}
@@ -218,7 +219,7 @@
 , {"uuid": "topiconsfix@aleskva@devnullmail.com", "name": "TopIconsFix", "pname": "topiconsfix", "description": "Shows legacy tray icons on top – the fixed version of https://extensions.gnome.org/extension/495/topicons/", "link": "https://extensions.gnome.org/extension/1674/topiconsfix/", "shell_version_map": {"38": {"version": "12", "sha256": "1zxihxmbc2hx6f8whv8mqzbl55k3wdgw108q97kadf9v67gpcp0n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGxlZ2FjeSB0cmF5IGljb25zIG9uIHRvcCBcdTIwMTMgdGhlIGZpeGVkIHZlcnNpb24gb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNDk1L3RvcGljb25zLyIsCiAgIm5hbWUiOiAiVG9wSWNvbnNGaXgiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ0b3BpY29uc2ZpeEBhbGVza3ZhQGRldm51bGxtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMgp9"}, "40": {"version": "12", "sha256": "1zxihxmbc2hx6f8whv8mqzbl55k3wdgw108q97kadf9v67gpcp0n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGxlZ2FjeSB0cmF5IGljb25zIG9uIHRvcCBcdTIwMTMgdGhlIGZpeGVkIHZlcnNpb24gb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNDk1L3RvcGljb25zLyIsCiAgIm5hbWUiOiAiVG9wSWNvbnNGaXgiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ0b3BpY29uc2ZpeEBhbGVza3ZhQGRldm51bGxtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMgp9"}, "41": {"version": "12", "sha256": "1zxihxmbc2hx6f8whv8mqzbl55k3wdgw108q97kadf9v67gpcp0n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGxlZ2FjeSB0cmF5IGljb25zIG9uIHRvcCBcdTIwMTMgdGhlIGZpeGVkIHZlcnNpb24gb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNDk1L3RvcGljb25zLyIsCiAgIm5hbWUiOiAiVG9wSWNvbnNGaXgiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ0b3BpY29uc2ZpeEBhbGVza3ZhQGRldm51bGxtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMgp9"}}}
 , {"uuid": "animation-tweaks@Selenium-H", "name": "Animation Tweaks", "pname": "animation-tweaks", "description": "Add animations to different items and customize them.\n\nPlease reset the extension after updating.\nThe Extension will stop when upgraded to an incompatible version.\nIn that case an Update tab is created to easily reset the extension.\nA Reset menu entry is also always present in in the Top Right Application menu of the extension preferences window.\nA Default shortcut combination of Super Key + t is provided to disable the extension.\n\nSome effects might not work properly on wayland, for which an option to integrate with wayland is provided on Integrations tab.\nHowever, some animations might not work properly.\n\nTo manage effect Delay time enable Show delay time in preferences Window from Top Right Application menu -> Preferences\nand reopen preferences.", "link": "https://extensions.gnome.org/extension/1680/animation-tweaks/", "shell_version_map": {"38": {"version": "18", "sha256": "07niv7biy9yxmxdg498kqypyqva6y8slm3gmn70dpx9f9ng8ya55", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiQWRkIGFuaW1hdGlvbnMgdG8gZGlmZmVyZW50IGl0ZW1zIGFuZCBjdXN0b21pemUgdGhlbS4iLAogICJkZXNjcmlwdGlvbiI6ICJBZGQgYW5pbWF0aW9ucyB0byBkaWZmZXJlbnQgaXRlbXMgYW5kIGN1c3RvbWl6ZSB0aGVtLlxuXG5QbGVhc2UgcmVzZXQgdGhlIGV4dGVuc2lvbiBhZnRlciB1cGRhdGluZy5cblRoZSBFeHRlbnNpb24gd2lsbCBzdG9wIHdoZW4gdXBncmFkZWQgdG8gYW4gaW5jb21wYXRpYmxlIHZlcnNpb24uXG5JbiB0aGF0IGNhc2UgYW4gVXBkYXRlIHRhYiBpcyBjcmVhdGVkIHRvIGVhc2lseSByZXNldCB0aGUgZXh0ZW5zaW9uLlxuQSBSZXNldCBtZW51IGVudHJ5IGlzIGFsc28gYWx3YXlzIHByZXNlbnQgaW4gaW4gdGhlIFRvcCBSaWdodCBBcHBsaWNhdGlvbiBtZW51IG9mIHRoZSBleHRlbnNpb24gcHJlZmVyZW5jZXMgd2luZG93LlxuQSBEZWZhdWx0IHNob3J0Y3V0IGNvbWJpbmF0aW9uIG9mIFN1cGVyIEtleSArIHQgaXMgcHJvdmlkZWQgdG8gZGlzYWJsZSB0aGUgZXh0ZW5zaW9uLlxuXG5Tb21lIGVmZmVjdHMgbWlnaHQgbm90IHdvcmsgcHJvcGVybHkgb24gd2F5bGFuZCwgZm9yIHdoaWNoIGFuIG9wdGlvbiB0byBpbnRlZ3JhdGUgd2l0aCB3YXlsYW5kIGlzIHByb3ZpZGVkIG9uIEludGVncmF0aW9ucyB0YWIuXG5Ib3dldmVyLCBzb21lIGFuaW1hdGlvbnMgbWlnaHQgbm90IHdvcmsgcHJvcGVybHkuXG5cblRvIG1hbmFnZSBlZmZlY3QgRGVsYXkgdGltZSBlbmFibGUgU2hvdyBkZWxheSB0aW1lIGluIHByZWZlcmVuY2VzIFdpbmRvdyBmcm9tIFRvcCBSaWdodCBBcHBsaWNhdGlvbiBtZW51IC0+IFByZWZlcmVuY2VzXG5hbmQgcmVvcGVuIHByZWZlcmVuY2VzLiIsCiAgIm5hbWUiOiAiQW5pbWF0aW9uIFR3ZWFrcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInN0YXR1cyI6ICIiLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NlbGVuaXVtLUgvQW5pbWF0aW9uLVR3ZWFrcyIsCiAgInV1aWQiOiAiYW5pbWF0aW9uLXR3ZWFrc0BTZWxlbml1bS1IIiwKICAidmVyc2lvbiI6IDE4Cn0="}, "40": {"version": "18", "sha256": "07niv7biy9yxmxdg498kqypyqva6y8slm3gmn70dpx9f9ng8ya55", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiQWRkIGFuaW1hdGlvbnMgdG8gZGlmZmVyZW50IGl0ZW1zIGFuZCBjdXN0b21pemUgdGhlbS4iLAogICJkZXNjcmlwdGlvbiI6ICJBZGQgYW5pbWF0aW9ucyB0byBkaWZmZXJlbnQgaXRlbXMgYW5kIGN1c3RvbWl6ZSB0aGVtLlxuXG5QbGVhc2UgcmVzZXQgdGhlIGV4dGVuc2lvbiBhZnRlciB1cGRhdGluZy5cblRoZSBFeHRlbnNpb24gd2lsbCBzdG9wIHdoZW4gdXBncmFkZWQgdG8gYW4gaW5jb21wYXRpYmxlIHZlcnNpb24uXG5JbiB0aGF0IGNhc2UgYW4gVXBkYXRlIHRhYiBpcyBjcmVhdGVkIHRvIGVhc2lseSByZXNldCB0aGUgZXh0ZW5zaW9uLlxuQSBSZXNldCBtZW51IGVudHJ5IGlzIGFsc28gYWx3YXlzIHByZXNlbnQgaW4gaW4gdGhlIFRvcCBSaWdodCBBcHBsaWNhdGlvbiBtZW51IG9mIHRoZSBleHRlbnNpb24gcHJlZmVyZW5jZXMgd2luZG93LlxuQSBEZWZhdWx0IHNob3J0Y3V0IGNvbWJpbmF0aW9uIG9mIFN1cGVyIEtleSArIHQgaXMgcHJvdmlkZWQgdG8gZGlzYWJsZSB0aGUgZXh0ZW5zaW9uLlxuXG5Tb21lIGVmZmVjdHMgbWlnaHQgbm90IHdvcmsgcHJvcGVybHkgb24gd2F5bGFuZCwgZm9yIHdoaWNoIGFuIG9wdGlvbiB0byBpbnRlZ3JhdGUgd2l0aCB3YXlsYW5kIGlzIHByb3ZpZGVkIG9uIEludGVncmF0aW9ucyB0YWIuXG5Ib3dldmVyLCBzb21lIGFuaW1hdGlvbnMgbWlnaHQgbm90IHdvcmsgcHJvcGVybHkuXG5cblRvIG1hbmFnZSBlZmZlY3QgRGVsYXkgdGltZSBlbmFibGUgU2hvdyBkZWxheSB0aW1lIGluIHByZWZlcmVuY2VzIFdpbmRvdyBmcm9tIFRvcCBSaWdodCBBcHBsaWNhdGlvbiBtZW51IC0+IFByZWZlcmVuY2VzXG5hbmQgcmVvcGVuIHByZWZlcmVuY2VzLiIsCiAgIm5hbWUiOiAiQW5pbWF0aW9uIFR3ZWFrcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInN0YXR1cyI6ICIiLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NlbGVuaXVtLUgvQW5pbWF0aW9uLVR3ZWFrcyIsCiAgInV1aWQiOiAiYW5pbWF0aW9uLXR3ZWFrc0BTZWxlbml1bS1IIiwKICAidmVyc2lvbiI6IDE4Cn0="}, "41": {"version": "18", "sha256": "07niv7biy9yxmxdg498kqypyqva6y8slm3gmn70dpx9f9ng8ya55", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiQWRkIGFuaW1hdGlvbnMgdG8gZGlmZmVyZW50IGl0ZW1zIGFuZCBjdXN0b21pemUgdGhlbS4iLAogICJkZXNjcmlwdGlvbiI6ICJBZGQgYW5pbWF0aW9ucyB0byBkaWZmZXJlbnQgaXRlbXMgYW5kIGN1c3RvbWl6ZSB0aGVtLlxuXG5QbGVhc2UgcmVzZXQgdGhlIGV4dGVuc2lvbiBhZnRlciB1cGRhdGluZy5cblRoZSBFeHRlbnNpb24gd2lsbCBzdG9wIHdoZW4gdXBncmFkZWQgdG8gYW4gaW5jb21wYXRpYmxlIHZlcnNpb24uXG5JbiB0aGF0IGNhc2UgYW4gVXBkYXRlIHRhYiBpcyBjcmVhdGVkIHRvIGVhc2lseSByZXNldCB0aGUgZXh0ZW5zaW9uLlxuQSBSZXNldCBtZW51IGVudHJ5IGlzIGFsc28gYWx3YXlzIHByZXNlbnQgaW4gaW4gdGhlIFRvcCBSaWdodCBBcHBsaWNhdGlvbiBtZW51IG9mIHRoZSBleHRlbnNpb24gcHJlZmVyZW5jZXMgd2luZG93LlxuQSBEZWZhdWx0IHNob3J0Y3V0IGNvbWJpbmF0aW9uIG9mIFN1cGVyIEtleSArIHQgaXMgcHJvdmlkZWQgdG8gZGlzYWJsZSB0aGUgZXh0ZW5zaW9uLlxuXG5Tb21lIGVmZmVjdHMgbWlnaHQgbm90IHdvcmsgcHJvcGVybHkgb24gd2F5bGFuZCwgZm9yIHdoaWNoIGFuIG9wdGlvbiB0byBpbnRlZ3JhdGUgd2l0aCB3YXlsYW5kIGlzIHByb3ZpZGVkIG9uIEludGVncmF0aW9ucyB0YWIuXG5Ib3dldmVyLCBzb21lIGFuaW1hdGlvbnMgbWlnaHQgbm90IHdvcmsgcHJvcGVybHkuXG5cblRvIG1hbmFnZSBlZmZlY3QgRGVsYXkgdGltZSBlbmFibGUgU2hvdyBkZWxheSB0aW1lIGluIHByZWZlcmVuY2VzIFdpbmRvdyBmcm9tIFRvcCBSaWdodCBBcHBsaWNhdGlvbiBtZW51IC0+IFByZWZlcmVuY2VzXG5hbmQgcmVvcGVuIHByZWZlcmVuY2VzLiIsCiAgIm5hbWUiOiAiQW5pbWF0aW9uIFR3ZWFrcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInN0YXR1cyI6ICIiLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NlbGVuaXVtLUgvQW5pbWF0aW9uLVR3ZWFrcyIsCiAgInV1aWQiOiAiYW5pbWF0aW9uLXR3ZWFrc0BTZWxlbml1bS1IIiwKICAidmVyc2lvbiI6IDE4Cn0="}}}
 , {"uuid": "drawOnYourScreen@abakkk.framagit.org", "name": "Draw On You Screen", "pname": "draw-on-you-screen", "description": "", "link": "https://extensions.gnome.org/extension/1683/draw-on-you-screen/", "shell_version_map": {"38": {"version": "11", "sha256": "0kbgngcb2n234snnavbm8giwi6zhvr48bs0qy4f511d52l2wyawy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRhdGEtZGlyIjogImRyYXdPbllvdXJTY3JlZW4iLAogICJkZXNjcmlwdGlvbiI6ICIiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJkcmF3LW9uLXlvdXItc2NyZWVuIiwKICAibmFtZSI6ICJEcmF3IE9uIFlvdSBTY3JlZW4iLAogICJwZXJzaXN0ZW50LWZpbGUtbmFtZSI6ICJwZXJzaXN0ZW50IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRyYXctb24teW91ci1zY3JlZW4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAic3ZnLWZpbGUtbmFtZSI6ICJEcmF3T25Zb3VyU2NyZWVuIiwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiZHJhd09uWW91clNjcmVlbkBhYmFra2suZnJhbWFnaXQub3JnIiwKICAidmVyc2lvbiI6IDExCn0="}}}
-, {"uuid": "Always-Show-Titles-In-Overview@gmail.com", "name": "Always Show Titles In Overview", "pname": "always-show-titles-in-overview", "description": "Improve user experience in the Gnome 3 overview.\n\n- Always show titles of all window thumbnails\n- Show/hide app icons\n- App icon position: Bottom, Center\n- Show/hide the app icon when a window is in fullscreen mode\n- Tweak the window thumbnail active size increment (from 5 to 60, the default is 15).", "link": "https://extensions.gnome.org/extension/1689/always-show-titles-in-overview/", "shell_version_map": {"38": {"version": "10", "sha256": "10ig0qljfdhyli8934bqisb2wpjkh6i004mpxxym5mbf3vrf2h7l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmUgdXNlciBleHBlcmllbmNlIGluIHRoZSBHbm9tZSAzIG92ZXJ2aWV3LlxuXG4tIEFsd2F5cyBzaG93IHRpdGxlcyBvZiBhbGwgd2luZG93IHRodW1ibmFpbHNcbi0gU2hvdy9oaWRlIGFwcCBpY29uc1xuLSBBcHAgaWNvbiBwb3NpdGlvbjogQm90dG9tLCBDZW50ZXJcbi0gU2hvdy9oaWRlIHRoZSBhcHAgaWNvbiB3aGVuIGEgd2luZG93IGlzIGluIGZ1bGxzY3JlZW4gbW9kZVxuLSBUd2VhayB0aGUgd2luZG93IHRodW1ibmFpbCBhY3RpdmUgc2l6ZSBpbmNyZW1lbnQgKGZyb20gNSB0byA2MCwgdGhlIGRlZmF1bHQgaXMgMTUpLiIsCiAgIm5hbWUiOiAiQWx3YXlzIFNob3cgVGl0bGVzIEluIE92ZXJ2aWV3IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmxwc3VnZS9BbHdheXMtU2hvdy1UaXRsZXMtSW4tT3ZlcnZpZXciLAogICJ1dWlkIjogIkFsd2F5cy1TaG93LVRpdGxlcy1Jbi1PdmVydmlld0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "40": {"version": "16", "sha256": "1q8harhkr3pbkq0lprw0kiwx9vaw4ch8a7wiyspmr29kp80plv1w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmUgdXNlciBleHBlcmllbmNlIGluIHRoZSBHbm9tZSAzIG92ZXJ2aWV3LlxuXG4tIEFsd2F5cyBzaG93IHRpdGxlcyBvZiBhbGwgd2luZG93IHRodW1ibmFpbHNcbi0gU2hvdy9oaWRlIGFwcCBpY29uc1xuLSBBcHAgaWNvbiBwb3NpdGlvbjogQm90dG9tLCBDZW50ZXJcbi0gU2hvdy9oaWRlIHRoZSBhcHAgaWNvbiB3aGVuIGEgd2luZG93IGlzIGluIGZ1bGxzY3JlZW4gbW9kZVxuLSBUd2VhayB0aGUgd2luZG93IHRodW1ibmFpbCBhY3RpdmUgc2l6ZSBpbmNyZW1lbnQgKGZyb20gNSB0byA2MCwgdGhlIGRlZmF1bHQgaXMgMTUpLiIsCiAgIm5hbWUiOiAiQWx3YXlzIFNob3cgVGl0bGVzIEluIE92ZXJ2aWV3IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ubHBzdWdlL0Fsd2F5cy1TaG93LVRpdGxlcy1Jbi1PdmVydmlldyIsCiAgInV1aWQiOiAiQWx3YXlzLVNob3ctVGl0bGVzLUluLU92ZXJ2aWV3QGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxNgp9"}, "41": {"version": "16", "sha256": "1q8harhkr3pbkq0lprw0kiwx9vaw4ch8a7wiyspmr29kp80plv1w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmUgdXNlciBleHBlcmllbmNlIGluIHRoZSBHbm9tZSAzIG92ZXJ2aWV3LlxuXG4tIEFsd2F5cyBzaG93IHRpdGxlcyBvZiBhbGwgd2luZG93IHRodW1ibmFpbHNcbi0gU2hvdy9oaWRlIGFwcCBpY29uc1xuLSBBcHAgaWNvbiBwb3NpdGlvbjogQm90dG9tLCBDZW50ZXJcbi0gU2hvdy9oaWRlIHRoZSBhcHAgaWNvbiB3aGVuIGEgd2luZG93IGlzIGluIGZ1bGxzY3JlZW4gbW9kZVxuLSBUd2VhayB0aGUgd2luZG93IHRodW1ibmFpbCBhY3RpdmUgc2l6ZSBpbmNyZW1lbnQgKGZyb20gNSB0byA2MCwgdGhlIGRlZmF1bHQgaXMgMTUpLiIsCiAgIm5hbWUiOiAiQWx3YXlzIFNob3cgVGl0bGVzIEluIE92ZXJ2aWV3IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ubHBzdWdlL0Fsd2F5cy1TaG93LVRpdGxlcy1Jbi1PdmVydmlldyIsCiAgInV1aWQiOiAiQWx3YXlzLVNob3ctVGl0bGVzLUluLU92ZXJ2aWV3QGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxNgp9"}}}
+, {"uuid": "Always-Show-Titles-In-Overview@gmail.com", "name": "Always Show Titles In Overview", "pname": "always-show-titles-in-overview", "description": "Customize Gnome 3 overview.\n\n- Always show titles of all window thumbnails\n- Show/hide app icons\n- App icon position: Bottom, Center\n- Show/hide the app icon when a window is in fullscreen mode\n- Tweak the window thumbnail active size increment (from 5 to 60, the default is 15)\n- Show/hide the background \n\n", "link": "https://extensions.gnome.org/extension/1689/always-show-titles-in-overview/", "shell_version_map": {"38": {"version": "10", "sha256": "1s4937br3ad78l2634ll2wnhd8l9zcy69q6bp8s2c1j8hm76z64q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSBHbm9tZSAzIG92ZXJ2aWV3LlxuXG4tIEFsd2F5cyBzaG93IHRpdGxlcyBvZiBhbGwgd2luZG93IHRodW1ibmFpbHNcbi0gU2hvdy9oaWRlIGFwcCBpY29uc1xuLSBBcHAgaWNvbiBwb3NpdGlvbjogQm90dG9tLCBDZW50ZXJcbi0gU2hvdy9oaWRlIHRoZSBhcHAgaWNvbiB3aGVuIGEgd2luZG93IGlzIGluIGZ1bGxzY3JlZW4gbW9kZVxuLSBUd2VhayB0aGUgd2luZG93IHRodW1ibmFpbCBhY3RpdmUgc2l6ZSBpbmNyZW1lbnQgKGZyb20gNSB0byA2MCwgdGhlIGRlZmF1bHQgaXMgMTUpXG4tIFNob3cvaGlkZSB0aGUgYmFja2dyb3VuZCBcblxuIiwKICAibmFtZSI6ICJBbHdheXMgU2hvdyBUaXRsZXMgSW4gT3ZlcnZpZXciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ubHBzdWdlL0Fsd2F5cy1TaG93LVRpdGxlcy1Jbi1PdmVydmlldyIsCiAgInV1aWQiOiAiQWx3YXlzLVNob3ctVGl0bGVzLUluLU92ZXJ2aWV3QGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMAp9"}, "40": {"version": "18", "sha256": "17y6i5lk7q4l1i9522fs4wblfh83kmsaj2bd2wkqxc8p4fzrkf1w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSBHbm9tZSAzIG92ZXJ2aWV3LlxuXG4tIEFsd2F5cyBzaG93IHRpdGxlcyBvZiBhbGwgd2luZG93IHRodW1ibmFpbHNcbi0gU2hvdy9oaWRlIGFwcCBpY29uc1xuLSBBcHAgaWNvbiBwb3NpdGlvbjogQm90dG9tLCBDZW50ZXJcbi0gU2hvdy9oaWRlIHRoZSBhcHAgaWNvbiB3aGVuIGEgd2luZG93IGlzIGluIGZ1bGxzY3JlZW4gbW9kZVxuLSBUd2VhayB0aGUgd2luZG93IHRodW1ibmFpbCBhY3RpdmUgc2l6ZSBpbmNyZW1lbnQgKGZyb20gNSB0byA2MCwgdGhlIGRlZmF1bHQgaXMgMTUpXG4tIFNob3cvaGlkZSB0aGUgYmFja2dyb3VuZCBcblxuIiwKICAibmFtZSI6ICJBbHdheXMgU2hvdyBUaXRsZXMgSW4gT3ZlcnZpZXciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25scHN1Z2UvQWx3YXlzLVNob3ctVGl0bGVzLUluLU92ZXJ2aWV3IiwKICAidXVpZCI6ICJBbHdheXMtU2hvdy1UaXRsZXMtSW4tT3ZlcnZpZXdAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE4Cn0="}, "41": {"version": "18", "sha256": "17y6i5lk7q4l1i9522fs4wblfh83kmsaj2bd2wkqxc8p4fzrkf1w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSBHbm9tZSAzIG92ZXJ2aWV3LlxuXG4tIEFsd2F5cyBzaG93IHRpdGxlcyBvZiBhbGwgd2luZG93IHRodW1ibmFpbHNcbi0gU2hvdy9oaWRlIGFwcCBpY29uc1xuLSBBcHAgaWNvbiBwb3NpdGlvbjogQm90dG9tLCBDZW50ZXJcbi0gU2hvdy9oaWRlIHRoZSBhcHAgaWNvbiB3aGVuIGEgd2luZG93IGlzIGluIGZ1bGxzY3JlZW4gbW9kZVxuLSBUd2VhayB0aGUgd2luZG93IHRodW1ibmFpbCBhY3RpdmUgc2l6ZSBpbmNyZW1lbnQgKGZyb20gNSB0byA2MCwgdGhlIGRlZmF1bHQgaXMgMTUpXG4tIFNob3cvaGlkZSB0aGUgYmFja2dyb3VuZCBcblxuIiwKICAibmFtZSI6ICJBbHdheXMgU2hvdyBUaXRsZXMgSW4gT3ZlcnZpZXciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25scHN1Z2UvQWx3YXlzLVNob3ctVGl0bGVzLUluLU92ZXJ2aWV3IiwKICAidXVpZCI6ICJBbHdheXMtU2hvdy1UaXRsZXMtSW4tT3ZlcnZpZXdAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE4Cn0="}}}
 , {"uuid": "overview-navigation@nathanielsimard.github.com", "name": "Overview Navigation", "pname": "overview-navigation", "description": "This extension aims to make Gnome Shell easier to navigate using only the keyboard. It is inspired by the vim plugins of Firefox and Chrome.", "link": "https://extensions.gnome.org/extension/1702/overview-navigation/", "shell_version_map": {"38": {"version": "14", "sha256": "10i2j0klcyi22qakmw1f338ldc87w54a0jlg1bwq84ifflmnm8nq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFpbXMgdG8gbWFrZSBHbm9tZSBTaGVsbCBlYXNpZXIgdG8gbmF2aWdhdGUgdXNpbmcgb25seSB0aGUga2V5Ym9hcmQuIEl0IGlzIGluc3BpcmVkIGJ5IHRoZSB2aW0gcGx1Z2lucyBvZiBGaXJlZm94IGFuZCBDaHJvbWUuIiwKICAibmFtZSI6ICJPdmVydmlldyBOYXZpZ2F0aW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm92ZXJ2aWV3LW5hdmlnYXRpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uYXRoYW5pZWxzaW1hcmQvb3ZlcnZpZXctbmF2aWdhdGlvbiIsCiAgInV1aWQiOiAib3ZlcnZpZXctbmF2aWdhdGlvbkBuYXRoYW5pZWxzaW1hcmQuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNAp9"}, "40": {"version": "15", "sha256": "03ah1cx6kjw7698b9wwhz7ag8pag15g8zkxzfrsrcmving9syynd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFpbXMgdG8gbWFrZSBHbm9tZSBTaGVsbCBlYXNpZXIgdG8gbmF2aWdhdGUgdXNpbmcgb25seSB0aGUga2V5Ym9hcmQuIEl0IGlzIGluc3BpcmVkIGJ5IHRoZSB2aW0gcGx1Z2lucyBvZiBGaXJlZm94IGFuZCBDaHJvbWUuIiwKICAibmFtZSI6ICJPdmVydmlldyBOYXZpZ2F0aW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm92ZXJ2aWV3LW5hdmlnYXRpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmF0aGFuaWVsc2ltYXJkL292ZXJ2aWV3LW5hdmlnYXRpb24iLAogICJ1dWlkIjogIm92ZXJ2aWV3LW5hdmlnYXRpb25AbmF0aGFuaWVsc2ltYXJkLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "41": {"version": "16", "sha256": "1qdqbsrmxnvx01hlaq17nps124xah1rkqvr0rpxms7f3klkgkw0d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFpbXMgdG8gbWFrZSBHbm9tZSBTaGVsbCBlYXNpZXIgdG8gbmF2aWdhdGUgdXNpbmcgb25seSB0aGUga2V5Ym9hcmQuIEl0IGlzIGluc3BpcmVkIGJ5IHRoZSB2aW0gcGx1Z2lucyBvZiBGaXJlZm94IGFuZCBDaHJvbWUuIiwKICAibmFtZSI6ICJPdmVydmlldyBOYXZpZ2F0aW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm92ZXJ2aWV3LW5hdmlnYXRpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmF0aGFuaWVsc2ltYXJkL292ZXJ2aWV3LW5hdmlnYXRpb24iLAogICJ1dWlkIjogIm92ZXJ2aWV3LW5hdmlnYXRpb25AbmF0aGFuaWVsc2ltYXJkLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTYKfQ=="}}}
 , {"uuid": "transparent-top-bar@zhanghai.me", "name": "Transparent Top Bar", "pname": "transparent-top-bar", "description": "Bring back the transparent top bar when free-floating in GNOME Shell 3.32.\n\nThis basically comes from the feature implementation removed in GNOME Shell 3.32, and I modified the code a bit to make it an extension. Enjoy!", "link": "https://extensions.gnome.org/extension/1708/transparent-top-bar/", "shell_version_map": {"38": {"version": "9", "sha256": "0i34ns1rm2iis9mvbyjvckb0l1b0zzzczzan7591y8lqfjplsmzr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5nIGJhY2sgdGhlIHRyYW5zcGFyZW50IHRvcCBiYXIgd2hlbiBmcmVlLWZsb2F0aW5nIGluIEdOT01FIFNoZWxsIDMuMzIuXG5cblRoaXMgYmFzaWNhbGx5IGNvbWVzIGZyb20gdGhlIGZlYXR1cmUgaW1wbGVtZW50YXRpb24gcmVtb3ZlZCBpbiBHTk9NRSBTaGVsbCAzLjMyLCBhbmQgSSBtb2RpZmllZCB0aGUgY29kZSBhIGJpdCB0byBtYWtlIGl0IGFuIGV4dGVuc2lvbi4gRW5qb3khIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgQmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3poYW5naGFpL2dub21lLXNoZWxsLWV4dGVuc2lvbi10cmFuc3BhcmVudC10b3AtYmFyIiwKICAidXVpZCI6ICJ0cmFuc3BhcmVudC10b3AtYmFyQHpoYW5naGFpLm1lIiwKICAidmVyc2lvbiI6IDkKfQ=="}, "40": {"version": "13", "sha256": "1ppsii29lv4jaqdrjrav3j19ynv7kwl7mf7pn27lsgiga25n4wyh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5nIGJhY2sgdGhlIHRyYW5zcGFyZW50IHRvcCBiYXIgd2hlbiBmcmVlLWZsb2F0aW5nIGluIEdOT01FIFNoZWxsIDMuMzIuXG5cblRoaXMgYmFzaWNhbGx5IGNvbWVzIGZyb20gdGhlIGZlYXR1cmUgaW1wbGVtZW50YXRpb24gcmVtb3ZlZCBpbiBHTk9NRSBTaGVsbCAzLjMyLCBhbmQgSSBtb2RpZmllZCB0aGUgY29kZSBhIGJpdCB0byBtYWtlIGl0IGFuIGV4dGVuc2lvbi4gRW5qb3khIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgQmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96aGFuZ2hhaS9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNwYXJlbnQtdG9wLWJhciIsCiAgInV1aWQiOiAidHJhbnNwYXJlbnQtdG9wLWJhckB6aGFuZ2hhaS5tZSIsCiAgInZlcnNpb24iOiAxMwp9"}, "41": {"version": "13", "sha256": "1ppsii29lv4jaqdrjrav3j19ynv7kwl7mf7pn27lsgiga25n4wyh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5nIGJhY2sgdGhlIHRyYW5zcGFyZW50IHRvcCBiYXIgd2hlbiBmcmVlLWZsb2F0aW5nIGluIEdOT01FIFNoZWxsIDMuMzIuXG5cblRoaXMgYmFzaWNhbGx5IGNvbWVzIGZyb20gdGhlIGZlYXR1cmUgaW1wbGVtZW50YXRpb24gcmVtb3ZlZCBpbiBHTk9NRSBTaGVsbCAzLjMyLCBhbmQgSSBtb2RpZmllZCB0aGUgY29kZSBhIGJpdCB0byBtYWtlIGl0IGFuIGV4dGVuc2lvbi4gRW5qb3khIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgQmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96aGFuZ2hhaS9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNwYXJlbnQtdG9wLWJhciIsCiAgInV1aWQiOiAidHJhbnNwYXJlbnQtdG9wLWJhckB6aGFuZ2hhaS5tZSIsCiAgInZlcnNpb24iOiAxMwp9"}}}
 , {"uuid": "ssh-search-provider@extensions.gnome-shell.fifi.org", "name": "SSH Search Provider Reborn", "pname": "ssh-search-provider-reborn", "description": "Provide SSH search results in overview.\n\nThis is a fork of the original \"SSH Search Provider\", updated to work with newer Gnome-Shells.", "link": "https://extensions.gnome.org/extension/1714/ssh-search-provider-reborn/", "shell_version_map": {"38": {"version": "8", "sha256": "1i55s7mdrsgfb5lmxyvpfnbn4d822miqwb1n8s8hq7nsh4v9xrha", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgU1NIIHNlYXJjaCByZXN1bHRzIGluIG92ZXJ2aWV3LlxuXG5UaGlzIGlzIGEgZm9yayBvZiB0aGUgb3JpZ2luYWwgXCJTU0ggU2VhcmNoIFByb3ZpZGVyXCIsIHVwZGF0ZWQgdG8gd29yayB3aXRoIG5ld2VyIEdub21lLVNoZWxscy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzc2gtc2VhcmNoLXByb3ZpZGVyIiwKICAibmFtZSI6ICJTU0ggU2VhcmNoIFByb3ZpZGVyIFJlYm9ybiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zc2gtc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjMzLjkwIiwKICAgICIzLjM2IiwKICAgICIzLjM1LjkyIiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRi1pLWYvc3NoLXNlYXJjaC1wcm92aWRlciIsCiAgInV1aWQiOiAic3NoLXNlYXJjaC1wcm92aWRlckBleHRlbnNpb25zLmdub21lLXNoZWxsLmZpZmkub3JnIiwKICAidmNzX3JldmlzaW9uIjogInY4LTAtZzM0YjYyYTEiLAogICJ2ZXJzaW9uIjogOAp9"}, "40": {"version": "8", "sha256": "1i55s7mdrsgfb5lmxyvpfnbn4d822miqwb1n8s8hq7nsh4v9xrha", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgU1NIIHNlYXJjaCByZXN1bHRzIGluIG92ZXJ2aWV3LlxuXG5UaGlzIGlzIGEgZm9yayBvZiB0aGUgb3JpZ2luYWwgXCJTU0ggU2VhcmNoIFByb3ZpZGVyXCIsIHVwZGF0ZWQgdG8gd29yayB3aXRoIG5ld2VyIEdub21lLVNoZWxscy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzc2gtc2VhcmNoLXByb3ZpZGVyIiwKICAibmFtZSI6ICJTU0ggU2VhcmNoIFByb3ZpZGVyIFJlYm9ybiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zc2gtc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjMzLjkwIiwKICAgICIzLjM2IiwKICAgICIzLjM1LjkyIiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRi1pLWYvc3NoLXNlYXJjaC1wcm92aWRlciIsCiAgInV1aWQiOiAic3NoLXNlYXJjaC1wcm92aWRlckBleHRlbnNpb25zLmdub21lLXNoZWxsLmZpZmkub3JnIiwKICAidmNzX3JldmlzaW9uIjogInY4LTAtZzM0YjYyYTEiLAogICJ2ZXJzaW9uIjogOAp9"}}}
@@ -232,19 +233,19 @@
 , {"uuid": "colortint@matt.serverus.co.uk", "name": "ColorTint", "pname": "colortint", "description": "Tint your desktop with a color of your choice to help with dyslexia, visual stress, scopic sensitivity, and related conditions.", "link": "https://extensions.gnome.org/extension/1789/colortint/", "shell_version_map": {"40": {"version": "7", "sha256": "1ggf4xlnyfxhl3fsl8ljdj0izipx2v8kxpnhhqz7w397a0r9q121", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbnQgeW91ciBkZXNrdG9wIHdpdGggYSBjb2xvciBvZiB5b3VyIGNob2ljZSB0byBoZWxwIHdpdGggZHlzbGV4aWEsIHZpc3VhbCBzdHJlc3MsIHNjb3BpYyBzZW5zaXRpdml0eSwgYW5kIHJlbGF0ZWQgY29uZGl0aW9ucy4iLAogICJuYW1lIjogIkNvbG9yVGludCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9NYXR0QnlOYW1lL2NvbG9yLXRpbnQiLAogICJ1dWlkIjogImNvbG9ydGludEBtYXR0LnNlcnZlcnVzLmNvLnVrIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
 , {"uuid": "sermon@rovellipaolo-gmail.com", "name": "SerMon: Service Monitor", "pname": "sermon", "description": "SerMon: an extension for monitoring and managing systemd services, cron jobs, docker and podman containers", "link": "https://extensions.gnome.org/extension/1804/sermon/", "shell_version_map": {"38": {"version": "16", "sha256": "1dgyphy5wka0b6jaqkdgb2kyy70f9ccgdmrcna9p04i2kcy4hm9i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlck1vbjogYW4gZXh0ZW5zaW9uIGZvciBtb25pdG9yaW5nIGFuZCBtYW5hZ2luZyBzeXN0ZW1kIHNlcnZpY2VzLCBjcm9uIGpvYnMsIGRvY2tlciBhbmQgcG9kbWFuIGNvbnRhaW5lcnMiLAogICJuYW1lIjogIlNlck1vbjogU2VydmljZSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlcm1vbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcm92ZWxsaXBhb2xvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZXJtb24iLAogICJ1dWlkIjogInNlcm1vbkByb3ZlbGxpcGFvbG8tZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE2Cn0="}, "40": {"version": "16", "sha256": "1dgyphy5wka0b6jaqkdgb2kyy70f9ccgdmrcna9p04i2kcy4hm9i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlck1vbjogYW4gZXh0ZW5zaW9uIGZvciBtb25pdG9yaW5nIGFuZCBtYW5hZ2luZyBzeXN0ZW1kIHNlcnZpY2VzLCBjcm9uIGpvYnMsIGRvY2tlciBhbmQgcG9kbWFuIGNvbnRhaW5lcnMiLAogICJuYW1lIjogIlNlck1vbjogU2VydmljZSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlcm1vbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcm92ZWxsaXBhb2xvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZXJtb24iLAogICJ1dWlkIjogInNlcm1vbkByb3ZlbGxpcGFvbG8tZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE2Cn0="}, "41": {"version": "16", "sha256": "1dgyphy5wka0b6jaqkdgb2kyy70f9ccgdmrcna9p04i2kcy4hm9i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlck1vbjogYW4gZXh0ZW5zaW9uIGZvciBtb25pdG9yaW5nIGFuZCBtYW5hZ2luZyBzeXN0ZW1kIHNlcnZpY2VzLCBjcm9uIGpvYnMsIGRvY2tlciBhbmQgcG9kbWFuIGNvbnRhaW5lcnMiLAogICJuYW1lIjogIlNlck1vbjogU2VydmljZSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlcm1vbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcm92ZWxsaXBhb2xvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZXJtb24iLAogICJ1dWlkIjogInNlcm1vbkByb3ZlbGxpcGFvbG8tZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE2Cn0="}}}
 , {"uuid": "dict@sun.wxg@gmail.com", "name": "Screen word translate", "pname": "screen-word-translate", "description": "Translate word on the screen.\nDefault web address is translate.google.com, you can add the web address for your own language. Also you can contribute your web address to my github repo.\nUse hotkey Ctrl+Alt+j to toggle the function.\nUse hotkey Ctrl+Alt+o to show popup window", "link": "https://extensions.gnome.org/extension/1849/screen-word-translate/", "shell_version_map": {"38": {"version": "32", "sha256": "0wh9d0siggr49bfcx1308xx8rxc58nadnhp3mjj53i6fvja3cx62", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSB3b3JkIG9uIHRoZSBzY3JlZW4uXG5EZWZhdWx0IHdlYiBhZGRyZXNzIGlzIHRyYW5zbGF0ZS5nb29nbGUuY29tLCB5b3UgY2FuIGFkZCB0aGUgd2ViIGFkZHJlc3MgZm9yIHlvdXIgb3duIGxhbmd1YWdlLiBBbHNvIHlvdSBjYW4gY29udHJpYnV0ZSB5b3VyIHdlYiBhZGRyZXNzIHRvIG15IGdpdGh1YiByZXBvLlxuVXNlIGhvdGtleSBDdHJsK0FsdCtqIHRvIHRvZ2dsZSB0aGUgZnVuY3Rpb24uXG5Vc2UgaG90a2V5IEN0cmwrQWx0K28gdG8gc2hvdyBwb3B1cCB3aW5kb3ciLAogICJuYW1lIjogIlNjcmVlbiB3b3JkIHRyYW5zbGF0ZSIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAic3VuLnd4Z0BnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRpY3QiLAogICJ1dWlkIjogImRpY3RAc3VuLnd4Z0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzIKfQ=="}, "40": {"version": "38", "sha256": "19rpi2hqznwzngzw9zsar00mhmqav8v7wbij4r7cai4jgvmk8459", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSB3b3JkIG9uIHRoZSBzY3JlZW4uXG5EZWZhdWx0IHdlYiBhZGRyZXNzIGlzIHRyYW5zbGF0ZS5nb29nbGUuY29tLCB5b3UgY2FuIGFkZCB0aGUgd2ViIGFkZHJlc3MgZm9yIHlvdXIgb3duIGxhbmd1YWdlLiBBbHNvIHlvdSBjYW4gY29udHJpYnV0ZSB5b3VyIHdlYiBhZGRyZXNzIHRvIG15IGdpdGh1YiByZXBvLlxuVXNlIGhvdGtleSBDdHJsK0FsdCtqIHRvIHRvZ2dsZSB0aGUgZnVuY3Rpb24uXG5Vc2UgaG90a2V5IEN0cmwrQWx0K28gdG8gc2hvdyBwb3B1cCB3aW5kb3ciLAogICJuYW1lIjogIlNjcmVlbiB3b3JkIHRyYW5zbGF0ZSIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAic3VuLnd4Z0BnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1bnd4Zy9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGljdCIsCiAgInV1aWQiOiAiZGljdEBzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzOAp9"}, "41": {"version": "38", "sha256": "19rpi2hqznwzngzw9zsar00mhmqav8v7wbij4r7cai4jgvmk8459", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSB3b3JkIG9uIHRoZSBzY3JlZW4uXG5EZWZhdWx0IHdlYiBhZGRyZXNzIGlzIHRyYW5zbGF0ZS5nb29nbGUuY29tLCB5b3UgY2FuIGFkZCB0aGUgd2ViIGFkZHJlc3MgZm9yIHlvdXIgb3duIGxhbmd1YWdlLiBBbHNvIHlvdSBjYW4gY29udHJpYnV0ZSB5b3VyIHdlYiBhZGRyZXNzIHRvIG15IGdpdGh1YiByZXBvLlxuVXNlIGhvdGtleSBDdHJsK0FsdCtqIHRvIHRvZ2dsZSB0aGUgZnVuY3Rpb24uXG5Vc2UgaG90a2V5IEN0cmwrQWx0K28gdG8gc2hvdyBwb3B1cCB3aW5kb3ciLAogICJuYW1lIjogIlNjcmVlbiB3b3JkIHRyYW5zbGF0ZSIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAic3VuLnd4Z0BnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1bnd4Zy9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGljdCIsCiAgInV1aWQiOiAiZGljdEBzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzOAp9"}}}
-, {"uuid": "gamemode@christian.kellner.me", "name": "GameMode", "pname": "gamemode", "description": "Status indicator for GameMode", "link": "https://extensions.gnome.org/extension/1852/gamemode/", "shell_version_map": {"38": {"version": "5", "sha256": "1nj4k7h872zmx4q44z9qzg8rxx1sqqbj8rd4am5xkn1zc8y65kg6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0YXR1cyBpbmRpY2F0b3IgZm9yIEdhbWVNb2RlIiwKICAiZXh0ZW5zaW9uLWlkIjogImdhbWVtb2RlIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ2FtZW1vZGUtZXh0ZW5zaW9uIiwKICAibmFtZSI6ICJHYW1lTW9kZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJja2VsbG5lckByZWRoYXQuY29tIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdhbWVtb2RlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dpY21vL2dhbWVtb2RlLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZ2FtZW1vZGVAY2hyaXN0aWFuLmtlbGxuZXIubWUiLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "5", "sha256": "1nj4k7h872zmx4q44z9qzg8rxx1sqqbj8rd4am5xkn1zc8y65kg6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0YXR1cyBpbmRpY2F0b3IgZm9yIEdhbWVNb2RlIiwKICAiZXh0ZW5zaW9uLWlkIjogImdhbWVtb2RlIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ2FtZW1vZGUtZXh0ZW5zaW9uIiwKICAibmFtZSI6ICJHYW1lTW9kZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJja2VsbG5lckByZWRoYXQuY29tIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdhbWVtb2RlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dpY21vL2dhbWVtb2RlLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZ2FtZW1vZGVAY2hyaXN0aWFuLmtlbGxuZXIubWUiLAogICJ2ZXJzaW9uIjogNQp9"}}}
+, {"uuid": "gamemode@christian.kellner.me", "name": "GameMode", "pname": "gamemode", "description": "Status indicator for GameMode", "link": "https://extensions.gnome.org/extension/1852/gamemode/", "shell_version_map": {"38": {"version": "6", "sha256": "05256a7rcw1db983w557cpl5vilkb0wg82xpja91j2lqnp7als5l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0YXR1cyBpbmRpY2F0b3IgZm9yIEdhbWVNb2RlIiwKICAiZXh0ZW5zaW9uLWlkIjogImdhbWVtb2RlIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ2FtZW1vZGUtZXh0ZW5zaW9uIiwKICAibmFtZSI6ICJHYW1lTW9kZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJja2VsbG5lckByZWRoYXQuY29tIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdhbWVtb2RlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9naWNtby9nYW1lbW9kZS1leHRlbnNpb24iLAogICJ1dWlkIjogImdhbWVtb2RlQGNocmlzdGlhbi5rZWxsbmVyLm1lIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "6", "sha256": "05256a7rcw1db983w557cpl5vilkb0wg82xpja91j2lqnp7als5l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0YXR1cyBpbmRpY2F0b3IgZm9yIEdhbWVNb2RlIiwKICAiZXh0ZW5zaW9uLWlkIjogImdhbWVtb2RlIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ2FtZW1vZGUtZXh0ZW5zaW9uIiwKICAibmFtZSI6ICJHYW1lTW9kZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJja2VsbG5lckByZWRoYXQuY29tIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdhbWVtb2RlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9naWNtby9nYW1lbW9kZS1leHRlbnNpb24iLAogICJ1dWlkIjogImdhbWVtb2RlQGNocmlzdGlhbi5rZWxsbmVyLm1lIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "41": {"version": "6", "sha256": "05256a7rcw1db983w557cpl5vilkb0wg82xpja91j2lqnp7als5l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0YXR1cyBpbmRpY2F0b3IgZm9yIEdhbWVNb2RlIiwKICAiZXh0ZW5zaW9uLWlkIjogImdhbWVtb2RlIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ2FtZW1vZGUtZXh0ZW5zaW9uIiwKICAibmFtZSI6ICJHYW1lTW9kZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJja2VsbG5lckByZWRoYXQuY29tIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdhbWVtb2RlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9naWNtby9nYW1lbW9kZS1leHRlbnNpb24iLAogICJ1dWlkIjogImdhbWVtb2RlQGNocmlzdGlhbi5rZWxsbmVyLm1lIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
 , {"uuid": "unredirect@vaina.lt", "name": "Disable unredirect fullscreen windows", "pname": "disable-unredirect-fullscreen-windows", "description": "Disables unredirect fullscreen windows in gnome-shell", "link": "https://extensions.gnome.org/extension/1873/disable-unredirect-fullscreen-windows/", "shell_version_map": {"38": {"version": "4", "sha256": "114536ils1avmwzqxf41q78wg50ynpiyq9kiw7smbxnx6l4pds0q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIHVucmVkaXJlY3QgZnVsbHNjcmVlbiB3aW5kb3dzIGluIGdub21lLXNoZWxsIiwKICAibmFtZSI6ICJEaXNhYmxlIHVucmVkaXJlY3QgZnVsbHNjcmVlbiB3aW5kb3dzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJLYXppbWllcmFzIFZhaW5hIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIiLAogICAgIjMuNCIsCiAgICAiMy42IiwKICAgICIzLjgiLAogICAgIjMuMTAiLAogICAgIjMuMTIiLAogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMzAiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2thenlzbWFzdGVyL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaXNhYmxlLXVucmVkaXJlY3QiLAogICJ1dWlkIjogInVucmVkaXJlY3RAdmFpbmEubHQiLAogICJ2ZXJzaW9uIjogNAp9"}, "40": {"version": "4", "sha256": "114536ils1avmwzqxf41q78wg50ynpiyq9kiw7smbxnx6l4pds0q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIHVucmVkaXJlY3QgZnVsbHNjcmVlbiB3aW5kb3dzIGluIGdub21lLXNoZWxsIiwKICAibmFtZSI6ICJEaXNhYmxlIHVucmVkaXJlY3QgZnVsbHNjcmVlbiB3aW5kb3dzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJLYXppbWllcmFzIFZhaW5hIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIiLAogICAgIjMuNCIsCiAgICAiMy42IiwKICAgICIzLjgiLAogICAgIjMuMTAiLAogICAgIjMuMTIiLAogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMzAiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2thenlzbWFzdGVyL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaXNhYmxlLXVucmVkaXJlY3QiLAogICJ1dWlkIjogInVucmVkaXJlY3RAdmFpbmEubHQiLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "114536ils1avmwzqxf41q78wg50ynpiyq9kiw7smbxnx6l4pds0q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIHVucmVkaXJlY3QgZnVsbHNjcmVlbiB3aW5kb3dzIGluIGdub21lLXNoZWxsIiwKICAibmFtZSI6ICJEaXNhYmxlIHVucmVkaXJlY3QgZnVsbHNjcmVlbiB3aW5kb3dzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJLYXppbWllcmFzIFZhaW5hIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIiLAogICAgIjMuNCIsCiAgICAiMy42IiwKICAgICIzLjgiLAogICAgIjMuMTAiLAogICAgIjMuMTIiLAogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMzAiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2thenlzbWFzdGVyL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaXNhYmxlLXVucmVkaXJlY3QiLAogICJ1dWlkIjogInVucmVkaXJlY3RAdmFpbmEubHQiLAogICJ2ZXJzaW9uIjogNAp9"}}}
 , {"uuid": "krypto@sereneblue", "name": "krypto", "pname": "krypto", "description": "Cryptocurrency utility", "link": "https://extensions.gnome.org/extension/1913/krypto/", "shell_version_map": {"38": {"version": "5", "sha256": "0pmga4iqpm0i853lgqfhvnkxhji8m79pk9hgf24lvbpv8alkxzz3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyeXB0b2N1cnJlbmN5IHV0aWxpdHkiLAogICJuYW1lIjogImtyeXB0byIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NlcmVuZWJsdWUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWtyeXB0byIsCiAgInV1aWQiOiAia3J5cHRvQHNlcmVuZWJsdWUiLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "11", "sha256": "1vknx9s3w1y9jjq97nqxh3lxd6y52h5i71yv6zby7kfw2miaf0l2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyeXB0b2N1cnJlbmN5IHV0aWxpdHkiLAogICJuYW1lIjogImtyeXB0byIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2VyZW5lYmx1ZS9nbm9tZS1zaGVsbC1leHRlbnNpb24ta3J5cHRvIiwKICAidXVpZCI6ICJrcnlwdG9Ac2VyZW5lYmx1ZSIsCiAgInZlcnNpb24iOiAxMQp9"}, "41": {"version": "11", "sha256": "1vknx9s3w1y9jjq97nqxh3lxd6y52h5i71yv6zby7kfw2miaf0l2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyeXB0b2N1cnJlbmN5IHV0aWxpdHkiLAogICJuYW1lIjogImtyeXB0byIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2VyZW5lYmx1ZS9nbm9tZS1zaGVsbC1leHRlbnNpb24ta3J5cHRvIiwKICAidXVpZCI6ICJrcnlwdG9Ac2VyZW5lYmx1ZSIsCiAgInZlcnNpb24iOiAxMQp9"}}}
 , {"uuid": "cmus-status@yagreg7.gmail.com", "name": "cmus status", "pname": "cmus-status", "description": "Shows cmus status", "link": "https://extensions.gnome.org/extension/1934/cmus-status/", "shell_version_map": {"38": {"version": "8", "sha256": "1a6b10kirzbjlllcnffznjlljicah172kpvs0p8rmwhcpn88i8hx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGNtdXMgc3RhdHVzIiwKICAibmFtZSI6ICJjbXVzIHN0YXR1cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jbXVzLXN0YXR1cy5nc2NoZW1hLnhtbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0dyZWdUaGVNYWRNb25rL2dub21lLWNtdXMtc3RhdHVzIiwKICAidXVpZCI6ICJjbXVzLXN0YXR1c0B5YWdyZWc3LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="}}}
 , {"uuid": "no-title-bar@jonaspoehler.de", "name": "No Title Bar - Forked", "pname": "no-title-bar-forked", "description": "No Title Bar removes the title bar from non-GTK applications and moves the window title and buttons to the top panel.\n\nTitlebars are also hidden for Wayland-native clients that don't use CSD. Some of the options may be incompatible with this. For issues on Wayland please visit github!\n\nThis is a fork of https://extensions.gnome.org/extension/1267/no-title-bar/ with added compatibility for Gnome 3.32+.\n\nThis extension depends on some Xorg utilities. To install them:\n\n⚫ Debian/Ubuntu: apt install x11-utils\n⚫ Fedora/RHEL: dnf install xorg-x11-utils\n⚫ Arch: pacman -S xorg-xprop", "link": "https://extensions.gnome.org/extension/2015/no-title-bar-forked/", "shell_version_map": {"38": {"version": "5", "sha256": "0kch8yra13813gg3wa90lm57skqshmj3j1147lrqwhl9va9rk4q6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vIFRpdGxlIEJhciByZW1vdmVzIHRoZSB0aXRsZSBiYXIgZnJvbSBub24tR1RLIGFwcGxpY2F0aW9ucyBhbmQgbW92ZXMgdGhlIHdpbmRvdyB0aXRsZSBhbmQgYnV0dG9ucyB0byB0aGUgdG9wIHBhbmVsLlxuXG5UaXRsZWJhcnMgYXJlIGFsc28gaGlkZGVuIGZvciBXYXlsYW5kLW5hdGl2ZSBjbGllbnRzIHRoYXQgZG9uJ3QgdXNlIENTRC4gU29tZSBvZiB0aGUgb3B0aW9ucyBtYXkgYmUgaW5jb21wYXRpYmxlIHdpdGggdGhpcy4gRm9yIGlzc3VlcyBvbiBXYXlsYW5kIHBsZWFzZSB2aXNpdCBnaXRodWIhXG5cblRoaXMgaXMgYSBmb3JrIG9mIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzEyNjcvbm8tdGl0bGUtYmFyLyB3aXRoIGFkZGVkIGNvbXBhdGliaWxpdHkgZm9yIEdub21lIDMuMzIrLlxuXG5UaGlzIGV4dGVuc2lvbiBkZXBlbmRzIG9uIHNvbWUgWG9yZyB1dGlsaXRpZXMuIFRvIGluc3RhbGwgdGhlbTpcblxuXHUyNmFiIERlYmlhbi9VYnVudHU6IGFwdCBpbnN0YWxsIHgxMS11dGlsc1xuXHUyNmFiIEZlZG9yYS9SSEVMOiBkbmYgaW5zdGFsbCB4b3JnLXgxMS11dGlsc1xuXHUyNmFiIEFyY2g6IHBhY21hbiAtUyB4b3JnLXhwcm9wIiwKICAibmFtZSI6ICJObyBUaXRsZSBCYXIgLSBGb3JrZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wb2VobGVyai9uby10aXRsZS1iYXIiLAogICJ1dWlkIjogIm5vLXRpdGxlLWJhckBqb25hc3BvZWhsZXIuZGUiLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "6", "sha256": "1plnj999qynsfvab6s01rfrdvw6m0s19b4zirhmlqrpax9vjl3zm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vIFRpdGxlIEJhciByZW1vdmVzIHRoZSB0aXRsZSBiYXIgZnJvbSBub24tR1RLIGFwcGxpY2F0aW9ucyBhbmQgbW92ZXMgdGhlIHdpbmRvdyB0aXRsZSBhbmQgYnV0dG9ucyB0byB0aGUgdG9wIHBhbmVsLlxuXG5UaXRsZWJhcnMgYXJlIGFsc28gaGlkZGVuIGZvciBXYXlsYW5kLW5hdGl2ZSBjbGllbnRzIHRoYXQgZG9uJ3QgdXNlIENTRC4gU29tZSBvZiB0aGUgb3B0aW9ucyBtYXkgYmUgaW5jb21wYXRpYmxlIHdpdGggdGhpcy4gRm9yIGlzc3VlcyBvbiBXYXlsYW5kIHBsZWFzZSB2aXNpdCBnaXRodWIhXG5cblRoaXMgaXMgYSBmb3JrIG9mIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzEyNjcvbm8tdGl0bGUtYmFyLyB3aXRoIGFkZGVkIGNvbXBhdGliaWxpdHkgZm9yIEdub21lIDMuMzIrLlxuXG5UaGlzIGV4dGVuc2lvbiBkZXBlbmRzIG9uIHNvbWUgWG9yZyB1dGlsaXRpZXMuIFRvIGluc3RhbGwgdGhlbTpcblxuXHUyNmFiIERlYmlhbi9VYnVudHU6IGFwdCBpbnN0YWxsIHgxMS11dGlsc1xuXHUyNmFiIEZlZG9yYS9SSEVMOiBkbmYgaW5zdGFsbCB4b3JnLXgxMS11dGlsc1xuXHUyNmFiIEFyY2g6IHBhY21hbiAtUyB4b3JnLXhwcm9wIiwKICAibmFtZSI6ICJObyBUaXRsZSBCYXIgLSBGb3JrZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcG9laGxlcmovbm8tdGl0bGUtYmFyIiwKICAidXVpZCI6ICJuby10aXRsZS1iYXJAam9uYXNwb2VobGVyLmRlIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
 , {"uuid": "application_view_when_empty@fawtytoo", "name": "Show Application View When Workspace Empty", "pname": "show-application-view-when-workspace-empty", "description": "Shows the application view when the workspace is or becomes empty, such as switching to an empty workspace, when all windows on a workspace are closed, or after login. Starting applications or switching to a workspace with open windows will hide the overview if it's showing.", "link": "https://extensions.gnome.org/extension/2036/show-application-view-when-workspace-empty/", "shell_version_map": {"38": {"version": "19", "sha256": "0lsjf3sk0ngacsjqv3ggk2kxk04m8zfm120xd4via79bwii9sh8b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIHRoZSBhcHBsaWNhdGlvbiB2aWV3IHdoZW4gdGhlIHdvcmtzcGFjZSBpcyBvciBiZWNvbWVzIGVtcHR5LCBzdWNoIGFzIHN3aXRjaGluZyB0byBhbiBlbXB0eSB3b3Jrc3BhY2UsIHdoZW4gYWxsIHdpbmRvd3Mgb24gYSB3b3Jrc3BhY2UgYXJlIGNsb3NlZCwgb3IgYWZ0ZXIgbG9naW4uIFN0YXJ0aW5nIGFwcGxpY2F0aW9ucyBvciBzd2l0Y2hpbmcgdG8gYSB3b3Jrc3BhY2Ugd2l0aCBvcGVuIHdpbmRvd3Mgd2lsbCBoaWRlIHRoZSBvdmVydmlldyBpZiBpdCdzIHNob3dpbmcuIiwKICAibmFtZSI6ICJTaG93IEFwcGxpY2F0aW9uIFZpZXcgV2hlbiBXb3Jrc3BhY2UgRW1wdHkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImFwcGxpY2F0aW9uX3ZpZXdfd2hlbl9lbXB0eUBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiAxOQp9"}, "40": {"version": "19", "sha256": "0lsjf3sk0ngacsjqv3ggk2kxk04m8zfm120xd4via79bwii9sh8b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIHRoZSBhcHBsaWNhdGlvbiB2aWV3IHdoZW4gdGhlIHdvcmtzcGFjZSBpcyBvciBiZWNvbWVzIGVtcHR5LCBzdWNoIGFzIHN3aXRjaGluZyB0byBhbiBlbXB0eSB3b3Jrc3BhY2UsIHdoZW4gYWxsIHdpbmRvd3Mgb24gYSB3b3Jrc3BhY2UgYXJlIGNsb3NlZCwgb3IgYWZ0ZXIgbG9naW4uIFN0YXJ0aW5nIGFwcGxpY2F0aW9ucyBvciBzd2l0Y2hpbmcgdG8gYSB3b3Jrc3BhY2Ugd2l0aCBvcGVuIHdpbmRvd3Mgd2lsbCBoaWRlIHRoZSBvdmVydmlldyBpZiBpdCdzIHNob3dpbmcuIiwKICAibmFtZSI6ICJTaG93IEFwcGxpY2F0aW9uIFZpZXcgV2hlbiBXb3Jrc3BhY2UgRW1wdHkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImFwcGxpY2F0aW9uX3ZpZXdfd2hlbl9lbXB0eUBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiAxOQp9"}}}
 , {"uuid": "activities_icon_menu@fawtytoo", "name": "Activities Icon Menu", "pname": "activities-menu-for-apps-and-windows", "description": "This extension turns the Activities button into a popup menu with icons for selecting either Applications or Workspaces in the Overview. Selecting the same view again will hide the overview.\n\nThis is particularly useful for tablet users that find the Activities button difficult to click on, whereas a menu can be more easily invoked.", "link": "https://extensions.gnome.org/extension/2048/activities-menu-for-apps-and-windows/", "shell_version_map": {"38": {"version": "9", "sha256": "1m10b1azwvj2b8s12xiwly21if27pcl1x4my411rgy5a5z3qm4j5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHR1cm5zIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBpbnRvIGEgcG9wdXAgbWVudSB3aXRoIGljb25zIGZvciBzZWxlY3RpbmcgZWl0aGVyIEFwcGxpY2F0aW9ucyBvciBXb3Jrc3BhY2VzIGluIHRoZSBPdmVydmlldy4gU2VsZWN0aW5nIHRoZSBzYW1lIHZpZXcgYWdhaW4gd2lsbCBoaWRlIHRoZSBvdmVydmlldy5cblxuVGhpcyBpcyBwYXJ0aWN1bGFybHkgdXNlZnVsIGZvciB0YWJsZXQgdXNlcnMgdGhhdCBmaW5kIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBkaWZmaWN1bHQgdG8gY2xpY2sgb24sIHdoZXJlYXMgYSBtZW51IGNhbiBiZSBtb3JlIGVhc2lseSBpbnZva2VkLiIsCiAgIm5hbWUiOiAiQWN0aXZpdGllcyBJY29uIE1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImFjdGl2aXRpZXNfaWNvbl9tZW51QGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDkKfQ=="}, "40": {"version": "9", "sha256": "1m10b1azwvj2b8s12xiwly21if27pcl1x4my411rgy5a5z3qm4j5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHR1cm5zIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBpbnRvIGEgcG9wdXAgbWVudSB3aXRoIGljb25zIGZvciBzZWxlY3RpbmcgZWl0aGVyIEFwcGxpY2F0aW9ucyBvciBXb3Jrc3BhY2VzIGluIHRoZSBPdmVydmlldy4gU2VsZWN0aW5nIHRoZSBzYW1lIHZpZXcgYWdhaW4gd2lsbCBoaWRlIHRoZSBvdmVydmlldy5cblxuVGhpcyBpcyBwYXJ0aWN1bGFybHkgdXNlZnVsIGZvciB0YWJsZXQgdXNlcnMgdGhhdCBmaW5kIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBkaWZmaWN1bHQgdG8gY2xpY2sgb24sIHdoZXJlYXMgYSBtZW51IGNhbiBiZSBtb3JlIGVhc2lseSBpbnZva2VkLiIsCiAgIm5hbWUiOiAiQWN0aXZpdGllcyBJY29uIE1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImFjdGl2aXRpZXNfaWNvbl9tZW51QGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDkKfQ=="}}}
-, {"uuid": "Gold_Price_Monitor@wotmshuaisi_github", "name": "Gold Price Monitor", "pname": "gold-price-monitor", "description": "simple gnome extension helps you tracking gold price in realtime", "link": "https://extensions.gnome.org/extension/2075/gold-price-monitor/", "shell_version_map": {"40": {"version": "21", "sha256": "10554hlfv3nlf49av54wwckg2ld4p8pc7vk8s14085shdplwi95n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRhbmdlcm91cyI6IGZhbHNlLAogICJkZXNjcmlwdGlvbiI6ICJzaW1wbGUgZ25vbWUgZXh0ZW5zaW9uIGhlbHBzIHlvdSB0cmFja2luZyBnb2xkIHByaWNlIGluIHJlYWx0aW1lIiwKICAibmFtZSI6ICJHb2xkIFByaWNlIE1vbml0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZ29sZC1wcmljZS1tb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dvdG1zaHVhaXNpL2dvbGRwcmljZW1vbml0b3IiLAogICJ1dWlkIjogIkdvbGRfUHJpY2VfTW9uaXRvckB3b3Rtc2h1YWlzaV9naXRodWIiLAogICJ2ZXJzaW9uIjogMjEKfQ=="}}}
+, {"uuid": "Gold_Price_Monitor@wotmshuaisi_github", "name": "Gold Price Monitor", "pname": "gold-price-monitor", "description": "simple gnome extension helps you tracking gold price in realtime", "link": "https://extensions.gnome.org/extension/2075/gold-price-monitor/", "shell_version_map": {"40": {"version": "22", "sha256": "04gqhg2am27iifzgfibcs28cqqq6lkb5lmmhzvba6pyqa9i175lr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRhbmdlcm91cyI6IGZhbHNlLAogICJkZXNjcmlwdGlvbiI6ICJzaW1wbGUgZ25vbWUgZXh0ZW5zaW9uIGhlbHBzIHlvdSB0cmFja2luZyBnb2xkIHByaWNlIGluIHJlYWx0aW1lIiwKICAibmFtZSI6ICJHb2xkIFByaWNlIE1vbml0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZ29sZC1wcmljZS1tb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93b3Rtc2h1YWlzaS9nb2xkcHJpY2Vtb25pdG9yIiwKICAidXVpZCI6ICJHb2xkX1ByaWNlX01vbml0b3JAd290bXNodWFpc2lfZ2l0aHViIiwKICAidmVyc2lvbiI6IDIyCn0="}, "41": {"version": "22", "sha256": "04gqhg2am27iifzgfibcs28cqqq6lkb5lmmhzvba6pyqa9i175lr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRhbmdlcm91cyI6IGZhbHNlLAogICJkZXNjcmlwdGlvbiI6ICJzaW1wbGUgZ25vbWUgZXh0ZW5zaW9uIGhlbHBzIHlvdSB0cmFja2luZyBnb2xkIHByaWNlIGluIHJlYWx0aW1lIiwKICAibmFtZSI6ICJHb2xkIFByaWNlIE1vbml0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZ29sZC1wcmljZS1tb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93b3Rtc2h1YWlzaS9nb2xkcHJpY2Vtb25pdG9yIiwKICAidXVpZCI6ICJHb2xkX1ByaWNlX01vbml0b3JAd290bXNodWFpc2lfZ2l0aHViIiwKICAidmVyc2lvbiI6IDIyCn0="}}}
 , {"uuid": "ding@rastersoft.com", "name": "Desktop Icons NG (DING)", "pname": "desktop-icons-ng-ding", "description": "Adds icons to the desktop. Fork of the original Desktop Icons extension, with several enhancements .", "link": "https://extensions.gnome.org/extension/2087/desktop-icons-ng-ding/", "shell_version_map": {"38": {"version": "33", "sha256": "0w4g1hp6rnzsl26gibpzxmfn5bzqhy5pgf8hq728qw8irjck3vlk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgaWNvbnMgdG8gdGhlIGRlc2t0b3AuIEZvcmsgb2YgdGhlIG9yaWdpbmFsIERlc2t0b3AgSWNvbnMgZXh0ZW5zaW9uLCB3aXRoIHNldmVyYWwgZW5oYW5jZW1lbnRzIC4iLAogICJuYW1lIjogIkRlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2Rlc2t0b3AtaWNvbnMtbmciLAogICJ1dWlkIjogImRpbmdAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogMzMKfQ=="}, "40": {"version": "33", "sha256": "0w4g1hp6rnzsl26gibpzxmfn5bzqhy5pgf8hq728qw8irjck3vlk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgaWNvbnMgdG8gdGhlIGRlc2t0b3AuIEZvcmsgb2YgdGhlIG9yaWdpbmFsIERlc2t0b3AgSWNvbnMgZXh0ZW5zaW9uLCB3aXRoIHNldmVyYWwgZW5oYW5jZW1lbnRzIC4iLAogICJuYW1lIjogIkRlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2Rlc2t0b3AtaWNvbnMtbmciLAogICJ1dWlkIjogImRpbmdAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogMzMKfQ=="}, "41": {"version": "33", "sha256": "0w4g1hp6rnzsl26gibpzxmfn5bzqhy5pgf8hq728qw8irjck3vlk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgaWNvbnMgdG8gdGhlIGRlc2t0b3AuIEZvcmsgb2YgdGhlIG9yaWdpbmFsIERlc2t0b3AgSWNvbnMgZXh0ZW5zaW9uLCB3aXRoIHNldmVyYWwgZW5oYW5jZW1lbnRzIC4iLAogICJuYW1lIjogIkRlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2Rlc2t0b3AtaWNvbnMtbmciLAogICJ1dWlkIjogImRpbmdAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogMzMKfQ=="}}}
 , {"uuid": "order-extensions@wa4557.github.com", "name": "Order Gnome Shell extensions", "pname": "order-gnome-shell-extensions", "description": "Fixes order of gnome-shell extensions", "link": "https://extensions.gnome.org/extension/2114/order-gnome-shell-extensions/", "shell_version_map": {"38": {"version": "6", "sha256": "0hcbjrhrg11f5p23bhss75nhc9sqlh6p1bmfq7p7m7d276ckdmkk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBbmRyZWFzIEFuZ2VyZXIiLAogICJkZXNjcmlwdGlvbiI6ICJGaXhlcyBvcmRlciBvZiBnbm9tZS1zaGVsbCBleHRlbnNpb25zIiwKICAiZXh0ZW5zaW9uLWlkIjogIm9yZGVyLWV4dGVuc2lvbnMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJvcmRlciBleHRlbnNpb25zIiwKICAibmFtZSI6ICJPcmRlciBHbm9tZSBTaGVsbCBleHRlbnNpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICIzLjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIm9yZGVyLWV4dGVuc2lvbnNAd2E0NTU3LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}}}
 , {"uuid": "horizontal-workspaces@gnome-shell-extensions.gcampax.github.com", "name": "Horizontal workspaces", "pname": "horizontal-workspaces", "description": "Use a horizontal workspace layout", "link": "https://extensions.gnome.org/extension/2141/horizontal-workspaces/", "shell_version_map": {"38": {"version": "5", "sha256": "0kbqcrs96v72yk0rf8jghy1a31651fyvgpi97yp46n4wmvc41vk7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVzZSBhIGhvcml6b250YWwgd29ya3NwYWNlIGxheW91dCIsCiAgImV4dGVuc2lvbi1pZCI6ICJob3Jpem9udGFsLXdvcmtzcGFjZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAibmFtZSI6ICJIb3Jpem9udGFsIHdvcmtzcGFjZXMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaG9yaXpvbnRhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiaG9yaXpvbnRhbC13b3Jrc3BhY2VzQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
 , {"uuid": "threefingerwindowmove@do.sch.dev.gmail.com", "name": "Three Finger Window Move", "pname": "three-finger-window-move", "description": "Allows moving windows around with a three finger trackpad gesture (Wayland only)", "link": "https://extensions.gnome.org/extension/2164/three-finger-window-move/", "shell_version_map": {"38": {"version": "7", "sha256": "1m7vwr6s6w297b0x0bmnj8fs2hl73pbys6m93lnb9inh5pmgiv1p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyBtb3Zpbmcgd2luZG93cyBhcm91bmQgd2l0aCBhIHRocmVlIGZpbmdlciB0cmFja3BhZCBnZXN0dXJlIChXYXlsYW5kIG9ubHkpIiwKICAibmFtZSI6ICJUaHJlZSBGaW5nZXIgV2luZG93IE1vdmUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kby1zY2gvZ25vbWUtc2hlbGwtdG91Y2hwYWQtd2luZG93LW1vdmUiLAogICJ1dWlkIjogInRocmVlZmluZ2Vyd2luZG93bW92ZUBkby5zY2guZGV2LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}}}
-, {"uuid": "spotify-ad-block@danigm.net", "name": "Mute spotify ads", "pname": "mute-spotify-ads", "description": "Mute spotify ads", "link": "https://extensions.gnome.org/extension/2176/mute-spotify-ads/", "shell_version_map": {"38": {"version": "10", "sha256": "1gln6q7vm9d6qrv7ng6jxa1gprjqa4pi5bnw9phdsfasr9zz1dq1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJuYW1lIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RhbmlnbS9zcG90aWZ5LWFkLWJsb2NrZXIiLAogICJ1dWlkIjogInNwb3RpZnktYWQtYmxvY2tAZGFuaWdtLm5ldCIsCiAgInZlcnNpb24iOiAxMAp9"}, "40": {"version": "10", "sha256": "1gln6q7vm9d6qrv7ng6jxa1gprjqa4pi5bnw9phdsfasr9zz1dq1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJuYW1lIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RhbmlnbS9zcG90aWZ5LWFkLWJsb2NrZXIiLAogICJ1dWlkIjogInNwb3RpZnktYWQtYmxvY2tAZGFuaWdtLm5ldCIsCiAgInZlcnNpb24iOiAxMAp9"}, "41": {"version": "10", "sha256": "1gln6q7vm9d6qrv7ng6jxa1gprjqa4pi5bnw9phdsfasr9zz1dq1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJuYW1lIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RhbmlnbS9zcG90aWZ5LWFkLWJsb2NrZXIiLAogICJ1dWlkIjogInNwb3RpZnktYWQtYmxvY2tAZGFuaWdtLm5ldCIsCiAgInZlcnNpb24iOiAxMAp9"}}}
+, {"uuid": "spotify-ad-block@danigm.net", "name": "Mute spotify ads", "pname": "mute-spotify-ads", "description": "Mute spotify ads", "link": "https://extensions.gnome.org/extension/2176/mute-spotify-ads/", "shell_version_map": {"38": {"version": "11", "sha256": "1cqrbzhb02k4nacjhpych5fqw17gbly1f04ahhx6xhz9a6p3gq36", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJuYW1lIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RhbmlnbS9zcG90aWZ5LWFkLWJsb2NrZXIiLAogICJ1dWlkIjogInNwb3RpZnktYWQtYmxvY2tAZGFuaWdtLm5ldCIsCiAgInZlcnNpb24iOiAxMQp9"}, "40": {"version": "11", "sha256": "1cqrbzhb02k4nacjhpych5fqw17gbly1f04ahhx6xhz9a6p3gq36", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJuYW1lIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RhbmlnbS9zcG90aWZ5LWFkLWJsb2NrZXIiLAogICJ1dWlkIjogInNwb3RpZnktYWQtYmxvY2tAZGFuaWdtLm5ldCIsCiAgInZlcnNpb24iOiAxMQp9"}, "41": {"version": "11", "sha256": "1cqrbzhb02k4nacjhpych5fqw17gbly1f04ahhx6xhz9a6p3gq36", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJuYW1lIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RhbmlnbS9zcG90aWZ5LWFkLWJsb2NrZXIiLAogICJ1dWlkIjogInNwb3RpZnktYWQtYmxvY2tAZGFuaWdtLm5ldCIsCiAgInZlcnNpb24iOiAxMQp9"}}}
 , {"uuid": "noannoyance@daase.net", "name": "NoAnnoyance v2", "pname": "noannoyance", "description": "Another extension, that removes the 'Window is ready' notification and puts the window into focus. In contrast to all the other extensions, this uses ES6 syntax and is actively maintained.", "link": "https://extensions.gnome.org/extension/2182/noannoyance/", "shell_version_map": {"38": {"version": "11", "sha256": "11rrrfpvyp7rxyfqj0bkf62y8a55jkjs4ydqs2vsgkpmf2bbfwrg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZXh0ZW5zaW9uLCB0aGF0IHJlbW92ZXMgdGhlICdXaW5kb3cgaXMgcmVhZHknIG5vdGlmaWNhdGlvbiBhbmQgcHV0cyB0aGUgd2luZG93IGludG8gZm9jdXMuIEluIGNvbnRyYXN0IHRvIGFsbCB0aGUgb3RoZXIgZXh0ZW5zaW9ucywgdGhpcyB1c2VzIEVTNiBzeW50YXggYW5kIGlzIGFjdGl2ZWx5IG1haW50YWluZWQuIiwKICAibmFtZSI6ICJOb0Fubm95YW5jZSB2MiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQmpvZXJuRGFhc2Uvbm9hbm5veWFuY2UiLAogICJ1dWlkIjogIm5vYW5ub3lhbmNlQGRhYXNlLm5ldCIsCiAgInZlcnNpb24iOiAxMQp9"}, "40": {"version": "11", "sha256": "11rrrfpvyp7rxyfqj0bkf62y8a55jkjs4ydqs2vsgkpmf2bbfwrg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZXh0ZW5zaW9uLCB0aGF0IHJlbW92ZXMgdGhlICdXaW5kb3cgaXMgcmVhZHknIG5vdGlmaWNhdGlvbiBhbmQgcHV0cyB0aGUgd2luZG93IGludG8gZm9jdXMuIEluIGNvbnRyYXN0IHRvIGFsbCB0aGUgb3RoZXIgZXh0ZW5zaW9ucywgdGhpcyB1c2VzIEVTNiBzeW50YXggYW5kIGlzIGFjdGl2ZWx5IG1haW50YWluZWQuIiwKICAibmFtZSI6ICJOb0Fubm95YW5jZSB2MiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQmpvZXJuRGFhc2Uvbm9hbm5veWFuY2UiLAogICJ1dWlkIjogIm5vYW5ub3lhbmNlQGRhYXNlLm5ldCIsCiAgInZlcnNpb24iOiAxMQp9"}, "41": {"version": "11", "sha256": "11rrrfpvyp7rxyfqj0bkf62y8a55jkjs4ydqs2vsgkpmf2bbfwrg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZXh0ZW5zaW9uLCB0aGF0IHJlbW92ZXMgdGhlICdXaW5kb3cgaXMgcmVhZHknIG5vdGlmaWNhdGlvbiBhbmQgcHV0cyB0aGUgd2luZG93IGludG8gZm9jdXMuIEluIGNvbnRyYXN0IHRvIGFsbCB0aGUgb3RoZXIgZXh0ZW5zaW9ucywgdGhpcyB1c2VzIEVTNiBzeW50YXggYW5kIGlzIGFjdGl2ZWx5IG1haW50YWluZWQuIiwKICAibmFtZSI6ICJOb0Fubm95YW5jZSB2MiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQmpvZXJuRGFhc2Uvbm9hbm5veWFuY2UiLAogICJ1dWlkIjogIm5vYW5ub3lhbmNlQGRhYXNlLm5ldCIsCiAgInZlcnNpb24iOiAxMQp9"}}}
 , {"uuid": "easy_docker_containers@red.software.systems", "name": "Easy Docker Containers", "pname": "easy-docker-containers", "description": "A GNOME Shell extension (GNOME Panel applet) to be able to generally control your available Docker containers.", "link": "https://extensions.gnome.org/extension/2224/easy-docker-containers/", "shell_version_map": {"38": {"version": "13", "sha256": "1hq6ispaq7vyn8vigacbwv58hrishb1g09vhffwsldahx4iz4pnj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SZWRTb2Z0d2FyZVN5c3RlbXMvZWFzeV9kb2NrZXJfY29udGFpbmVycyIsCiAgInV1aWQiOiAiZWFzeV9kb2NrZXJfY29udGFpbmVyc0ByZWQuc29mdHdhcmUuc3lzdGVtcyIsCiAgInZlcnNpb24iOiAxMwp9"}, "40": {"version": "13", "sha256": "1hq6ispaq7vyn8vigacbwv58hrishb1g09vhffwsldahx4iz4pnj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SZWRTb2Z0d2FyZVN5c3RlbXMvZWFzeV9kb2NrZXJfY29udGFpbmVycyIsCiAgInV1aWQiOiAiZWFzeV9kb2NrZXJfY29udGFpbmVyc0ByZWQuc29mdHdhcmUuc3lzdGVtcyIsCiAgInZlcnNpb24iOiAxMwp9"}, "41": {"version": "13", "sha256": "1hq6ispaq7vyn8vigacbwv58hrishb1g09vhffwsldahx4iz4pnj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SZWRTb2Z0d2FyZVN5c3RlbXMvZWFzeV9kb2NrZXJfY29udGFpbmVycyIsCiAgInV1aWQiOiAiZWFzeV9kb2NrZXJfY29udGFpbmVyc0ByZWQuc29mdHdhcmUuc3lzdGVtcyIsCiAgInZlcnNpb24iOiAxMwp9"}}}
 , {"uuid": "nightthemeswitcher@romainvigier.fr", "name": "Night Theme Switcher", "pname": "night-theme-switcher", "description": "Make your desktop easy on the eye, day and night.\n\nAutomatically toggle your light and dark GTK, GNOME Shell, icon and cursor themes variants, switch backgrounds and run custom commands at sunset and sunrise.\n\nSupports Night Light, Location Services, manual schedule and on-demand switch modes.", "link": "https://extensions.gnome.org/extension/2236/night-theme-switcher/", "shell_version_map": {"38": {"version": "46", "sha256": "13vq56mhxkh61zza1j4pszbbbz96z2yjzgkzq8qi51jidpdby521", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgeW91ciBkZXNrdG9wIGVhc3kgb24gdGhlIGV5ZSwgZGF5IGFuZCBuaWdodC5cblxuQXV0b21hdGljYWxseSB0b2dnbGUgeW91ciBsaWdodCBhbmQgZGFyayBHVEssIEdOT01FIFNoZWxsLCBpY29uIGFuZCBjdXJzb3IgdGhlbWVzIHZhcmlhbnRzLCBzd2l0Y2ggYmFja2dyb3VuZHMgYW5kIHJ1biBjdXN0b20gY29tbWFuZHMgYXQgc3Vuc2V0IGFuZCBzdW5yaXNlLlxuXG5TdXBwb3J0cyBOaWdodCBMaWdodCwgTG9jYXRpb24gU2VydmljZXMsIG1hbnVhbCBzY2hlZHVsZSBhbmQgb24tZGVtYW5kIHN3aXRjaCBtb2Rlcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuaWdodHRoZW1lc3dpdGNoZXJAcm9tYWludmlnaWVyLmZyIiwKICAibmFtZSI6ICJOaWdodCBUaGVtZSBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uaWdodHRoZW1lc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vbmlnaHR0aGVtZXN3aXRjaGVyLnJvbWFpbnZpZ2llci5mciIsCiAgInV1aWQiOiAibmlnaHR0aGVtZXN3aXRjaGVyQHJvbWFpbnZpZ2llci5mciIsCiAgInZlcnNpb24iOiA0Ngp9"}, "40": {"version": "51", "sha256": "1lbfbb6acc70y70v5g3mvqhzn6240jdq0zzlnh43yg1kvry20d2a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgeW91ciBkZXNrdG9wIGVhc3kgb24gdGhlIGV5ZSwgZGF5IGFuZCBuaWdodC5cblxuQXV0b21hdGljYWxseSB0b2dnbGUgeW91ciBsaWdodCBhbmQgZGFyayBHVEssIEdOT01FIFNoZWxsLCBpY29uIGFuZCBjdXJzb3IgdGhlbWVzIHZhcmlhbnRzLCBzd2l0Y2ggYmFja2dyb3VuZHMgYW5kIHJ1biBjdXN0b20gY29tbWFuZHMgYXQgc3Vuc2V0IGFuZCBzdW5yaXNlLlxuXG5TdXBwb3J0cyBOaWdodCBMaWdodCwgTG9jYXRpb24gU2VydmljZXMsIG1hbnVhbCBzY2hlZHVsZSBhbmQgb24tZGVtYW5kIHN3aXRjaCBtb2Rlcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuaWdodHRoZW1lc3dpdGNoZXJAcm9tYWludmlnaWVyLmZyIiwKICAibmFtZSI6ICJOaWdodCBUaGVtZSBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uaWdodHRoZW1lc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL25pZ2h0dGhlbWVzd2l0Y2hlci5yb21haW52aWdpZXIuZnIiLAogICJ1dWlkIjogIm5pZ2h0dGhlbWVzd2l0Y2hlckByb21haW52aWdpZXIuZnIiLAogICJ2ZXJzaW9uIjogNTEKfQ=="}, "41": {"version": "55", "sha256": "1sv0wm9fq6f1j384qz91f8vkxk3ffb02ih1x6apa70k2ybmrc06g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgeW91ciBkZXNrdG9wIGVhc3kgb24gdGhlIGV5ZSwgZGF5IGFuZCBuaWdodC5cblxuQXV0b21hdGljYWxseSB0b2dnbGUgeW91ciBsaWdodCBhbmQgZGFyayBHVEssIEdOT01FIFNoZWxsLCBpY29uIGFuZCBjdXJzb3IgdGhlbWVzIHZhcmlhbnRzLCBzd2l0Y2ggYmFja2dyb3VuZHMgYW5kIHJ1biBjdXN0b20gY29tbWFuZHMgYXQgc3Vuc2V0IGFuZCBzdW5yaXNlLlxuXG5TdXBwb3J0cyBOaWdodCBMaWdodCwgTG9jYXRpb24gU2VydmljZXMsIG1hbnVhbCBzY2hlZHVsZSBhbmQgb24tZGVtYW5kIHN3aXRjaCBtb2Rlcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuaWdodHRoZW1lc3dpdGNoZXJAcm9tYWludmlnaWVyLmZyIiwKICAibmFtZSI6ICJOaWdodCBUaGVtZSBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uaWdodHRoZW1lc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL25pZ2h0dGhlbWVzd2l0Y2hlci5yb21haW52aWdpZXIuZnIiLAogICJ1dWlkIjogIm5pZ2h0dGhlbWVzd2l0Y2hlckByb21haW52aWdpZXIuZnIiLAogICJ2ZXJzaW9uIjogNTUKfQ=="}}}
@@ -261,12 +262,12 @@
 , {"uuid": "kernel-indicator@elboulangero.gitlab.com", "name": "Kernel Indicator", "pname": "kernel-indicator", "description": "Display the kernel version in the top bar", "link": "https://extensions.gnome.org/extension/2512/kernel-indicator/", "shell_version_map": {"40": {"version": "4", "sha256": "0v3vxk9adzwk18vpvhpwxp7893wh7my8bh8j5vp4fdiq3l06v4sp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGhlIGtlcm5lbCB2ZXJzaW9uIGluIHRoZSB0b3AgYmFyIiwKICAibmFtZSI6ICJLZXJuZWwgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9lbGJvdWxhbmdlcm8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWtlcm5lbC1pbmRpY2F0b3IiLAogICJ1dWlkIjogImtlcm5lbC1pbmRpY2F0b3JAZWxib3VsYW5nZXJvLmdpdGxhYi5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "0v3vxk9adzwk18vpvhpwxp7893wh7my8bh8j5vp4fdiq3l06v4sp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGhlIGtlcm5lbCB2ZXJzaW9uIGluIHRoZSB0b3AgYmFyIiwKICAibmFtZSI6ICJLZXJuZWwgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9lbGJvdWxhbmdlcm8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWtlcm5lbC1pbmRpY2F0b3IiLAogICJ1dWlkIjogImtlcm5lbC1pbmRpY2F0b3JAZWxib3VsYW5nZXJvLmdpdGxhYi5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}}}
 , {"uuid": "floatingDock@sun.wxg@gmail.com", "name": "Floating Dock", "pname": "floating-dock", "description": "Move dock anywhere on the desktop\n\nPress Ctrl+Alt+k to vi mode\nPress lowercase alphabet, open new window or active the window\nPress uppercase alphabet, force to open new window\n\nPoint on the main button, change workspace by mouse scroll\nRight click the main button, show some selections", "link": "https://extensions.gnome.org/extension/2542/floating-dock/", "shell_version_map": {"38": {"version": "12", "sha256": "1844hhr0z4wd0wvh29q0sxh6xmwq7chg3kr3sa3c46q8n97i78x2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgZG9jayBhbnl3aGVyZSBvbiB0aGUgZGVza3RvcFxuXG5QcmVzcyBDdHJsK0FsdCtrIHRvIHZpIG1vZGVcblByZXNzIGxvd2VyY2FzZSBhbHBoYWJldCwgb3BlbiBuZXcgd2luZG93IG9yIGFjdGl2ZSB0aGUgd2luZG93XG5QcmVzcyB1cHBlcmNhc2UgYWxwaGFiZXQsIGZvcmNlIHRvIG9wZW4gbmV3IHdpbmRvd1xuXG5Qb2ludCBvbiB0aGUgbWFpbiBidXR0b24sIGNoYW5nZSB3b3Jrc3BhY2UgYnkgbW91c2Ugc2Nyb2xsXG5SaWdodCBjbGljayB0aGUgbWFpbiBidXR0b24sIHNob3cgc29tZSBzZWxlY3Rpb25zIiwKICAibmFtZSI6ICJGbG9hdGluZyBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1bnd4Zy9nbm9tZS1zaGVsbC1leHRlbnNpb24tZmxvYXRpbmdEb2NrIiwKICAidXVpZCI6ICJmbG9hdGluZ0RvY2tAc3VuLnd4Z0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}, "40": {"version": "21", "sha256": "0qj1vqd44clpr72j5lccvva48kzaz76zd48k6nxzvnkgh2n5dh29", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgZG9jayBhbnl3aGVyZSBvbiB0aGUgZGVza3RvcFxuXG5QcmVzcyBDdHJsK0FsdCtrIHRvIHZpIG1vZGVcblByZXNzIGxvd2VyY2FzZSBhbHBoYWJldCwgb3BlbiBuZXcgd2luZG93IG9yIGFjdGl2ZSB0aGUgd2luZG93XG5QcmVzcyB1cHBlcmNhc2UgYWxwaGFiZXQsIGZvcmNlIHRvIG9wZW4gbmV3IHdpbmRvd1xuXG5Qb2ludCBvbiB0aGUgbWFpbiBidXR0b24sIGNoYW5nZSB3b3Jrc3BhY2UgYnkgbW91c2Ugc2Nyb2xsXG5SaWdodCBjbGljayB0aGUgbWFpbiBidXR0b24sIHNob3cgc29tZSBzZWxlY3Rpb25zIiwKICAibmFtZSI6ICJGbG9hdGluZyBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZsb2F0aW5nRG9jayIsCiAgInV1aWQiOiAiZmxvYXRpbmdEb2NrQHN1bi53eGdAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIxCn0="}, "41": {"version": "23", "sha256": "0ag8pq9sgk885912mqiyhsacfmgkn9n4jvyp0rk4nw0fghd1mgd9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgZG9jayBhbnl3aGVyZSBvbiB0aGUgZGVza3RvcFxuXG5QcmVzcyBDdHJsK0FsdCtrIHRvIHZpIG1vZGVcblByZXNzIGxvd2VyY2FzZSBhbHBoYWJldCwgb3BlbiBuZXcgd2luZG93IG9yIGFjdGl2ZSB0aGUgd2luZG93XG5QcmVzcyB1cHBlcmNhc2UgYWxwaGFiZXQsIGZvcmNlIHRvIG9wZW4gbmV3IHdpbmRvd1xuXG5Qb2ludCBvbiB0aGUgbWFpbiBidXR0b24sIGNoYW5nZSB3b3Jrc3BhY2UgYnkgbW91c2Ugc2Nyb2xsXG5SaWdodCBjbGljayB0aGUgbWFpbiBidXR0b24sIHNob3cgc29tZSBzZWxlY3Rpb25zIiwKICAibmFtZSI6ICJGbG9hdGluZyBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZsb2F0aW5nRG9jayIsCiAgInV1aWQiOiAiZmxvYXRpbmdEb2NrQHN1bi53eGdAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIzCn0="}}}
 , {"uuid": "maxi@darkretailer.github.com", "name": "Maxi", "pname": "maxi", "description": "Maximize your windows vertical and/or horizontal (based on https://github.com/aXe1/gnome-shell-extension-maximized-by-default)", "link": "https://extensions.gnome.org/extension/2554/maxi/", "shell_version_map": {"40": {"version": "5", "sha256": "121nd6ggr9id3yfsrkiza7rjq19638p156ym83i3j57ikz6r3ky5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1heGltaXplIHlvdXIgd2luZG93cyB2ZXJ0aWNhbCBhbmQvb3IgaG9yaXpvbnRhbCAoYmFzZWQgb24gaHR0cHM6Ly9naXRodWIuY29tL2FYZTEvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW1heGltaXplZC1ieS1kZWZhdWx0KSIsCiAgImV4dGVuc2lvbi1pZCI6ICJtYXhpIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiTWF4aSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tYXhpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RhcmtyZXRhaWxlci9nbm9tZS1zaGVsbC1leHRlbnNpb25fbWF4aSIsCiAgInV1aWQiOiAibWF4aUBkYXJrcmV0YWlsZXIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="}}}
-, {"uuid": "gnordvpn-local@isopolito", "name": "gNordVPN-Local", "pname": "gnordvpn-local", "description": "A Gnome extension that shows the NordVPN status in the top bar and provides the ability to confiure certain aspects of the connection.", "link": "https://extensions.gnome.org/extension/2569/gnordvpn-local/", "shell_version_map": {"38": {"version": "6", "sha256": "1w5nz2688iyjf7cnaxa45h9m6l97ssf51c3szfabnbpa4d8vbqb3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgZXh0ZW5zaW9uIHRoYXQgc2hvd3MgdGhlIE5vcmRWUE4gc3RhdHVzIGluIHRoZSB0b3AgYmFyIGFuZCBwcm92aWRlcyB0aGUgYWJpbGl0eSB0byBjb25maXVyZSBjZXJ0YWluIGFzcGVjdHMgb2YgdGhlIGNvbm5lY3Rpb24uIiwKICAibmFtZSI6ICJnTm9yZFZQTi1Mb2NhbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOC4xIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vSXNvcG9saXRvL2dOb3JkVlBOLUxvY2FsIiwKICAidXVpZCI6ICJnbm9yZHZwbi1sb2NhbEBpc29wb2xpdG8iLAogICJ2ZXJzaW9uIjogNgp9"}}}
+, {"uuid": "gnordvpn-local@isopolito", "name": "gNordVPN-Local", "pname": "gnordvpn-local", "description": "A Gnome extension that shows the NordVPN status in the top bar and provides the ability to configure certain aspects of the connection.", "link": "https://extensions.gnome.org/extension/2569/gnordvpn-local/", "shell_version_map": {"38": {"version": "8", "sha256": "1bn9n7q8wi909gyys27dmqhay6hx9y7dl1pxy6zrmh7baijz2gr6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgZXh0ZW5zaW9uIHRoYXQgc2hvd3MgdGhlIE5vcmRWUE4gc3RhdHVzIGluIHRoZSB0b3AgYmFyIGFuZCBwcm92aWRlcyB0aGUgYWJpbGl0eSB0byBjb25maWd1cmUgY2VydGFpbiBhc3BlY3RzIG9mIHRoZSBjb25uZWN0aW9uLiIsCiAgIm5hbWUiOiAiZ05vcmRWUE4tTG9jYWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzguMSIsCiAgICAiMy4zOC40IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vSXNvcG9saXRvL2dOb3JkVlBOLUxvY2FsIiwKICAidXVpZCI6ICJnbm9yZHZwbi1sb2NhbEBpc29wb2xpdG8iLAogICJ2ZXJzaW9uIjogOAp9"}}}
 , {"uuid": "fully-transparent-top-bar@aunetx", "name": "Smart transparent topbar", "pname": "fully-transparent-top-bar", "description": "Permits to change topbar's look and feel when free-floating.\n\nIf you have issues or recommandations, you can tell me on github so I can see them!", "link": "https://extensions.gnome.org/extension/2588/fully-transparent-top-bar/", "shell_version_map": {"38": {"version": "11", "sha256": "1mksqaxw7jzzdghzii1bhhkbsccxb23qa69f3x6hg32ig9qi762x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBlcm1pdHMgdG8gY2hhbmdlIHRvcGJhcidzIGxvb2sgYW5kIGZlZWwgd2hlbiBmcmVlLWZsb2F0aW5nLlxuXG5JZiB5b3UgaGF2ZSBpc3N1ZXMgb3IgcmVjb21tYW5kYXRpb25zLCB5b3UgY2FuIHRlbGwgbWUgb24gZ2l0aHViIHNvIEkgY2FuIHNlZSB0aGVtISIsCiAgIm5hbWUiOiAiU21hcnQgdHJhbnNwYXJlbnQgdG9wYmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXVuZXR4L2dub21lLXNoZWxsLWV4dGVuc2lvbi10cmFuc3BhcmVudC10b3AtYmFyIiwKICAidXVpZCI6ICJmdWxseS10cmFuc3BhcmVudC10b3AtYmFyQGF1bmV0eCIsCiAgInZlcnNpb24iOiAxMQp9"}}}
 , {"uuid": "always-indicator@martin.zurowietz.de", "name": "Always Indicator", "pname": "always-indicator", "description": "Always show the new messages indicator on new messages. Features: 1) New message indicator is always shown if there are notifications. 2) The color of the indicator can be customized. 3) If 'do not disturb' is active, the icon is displayed in the custom color if there are notifications.", "link": "https://extensions.gnome.org/extension/2594/always-indicator/", "shell_version_map": {"40": {"version": "7", "sha256": "1hryk0ispnxpfmfskj29nii72vwbaly4bcb4idyg2z3c1c71qhdy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBzaG93IHRoZSBuZXcgbWVzc2FnZXMgaW5kaWNhdG9yIG9uIG5ldyBtZXNzYWdlcy4gRmVhdHVyZXM6IDEpIE5ldyBtZXNzYWdlIGluZGljYXRvciBpcyBhbHdheXMgc2hvd24gaWYgdGhlcmUgYXJlIG5vdGlmaWNhdGlvbnMuIDIpIFRoZSBjb2xvciBvZiB0aGUgaW5kaWNhdG9yIGNhbiBiZSBjdXN0b21pemVkLiAzKSBJZiAnZG8gbm90IGRpc3R1cmInIGlzIGFjdGl2ZSwgdGhlIGljb24gaXMgZGlzcGxheWVkIGluIHRoZSBjdXN0b20gY29sb3IgaWYgdGhlcmUgYXJlIG5vdGlmaWNhdGlvbnMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYWx3YXlzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiQWx3YXlzIEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hbHdheXMtaW5kaWNhdG9yLXNldHRpbmdzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tenVyL2dub21lLXNoZWxsLWFsd2F5cy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImFsd2F5cy1pbmRpY2F0b3JAbWFydGluLnp1cm93aWV0ei5kZSIsCiAgInZlcnNpb24iOiA3Cn0="}, "41": {"version": "7", "sha256": "1hryk0ispnxpfmfskj29nii72vwbaly4bcb4idyg2z3c1c71qhdy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBzaG93IHRoZSBuZXcgbWVzc2FnZXMgaW5kaWNhdG9yIG9uIG5ldyBtZXNzYWdlcy4gRmVhdHVyZXM6IDEpIE5ldyBtZXNzYWdlIGluZGljYXRvciBpcyBhbHdheXMgc2hvd24gaWYgdGhlcmUgYXJlIG5vdGlmaWNhdGlvbnMuIDIpIFRoZSBjb2xvciBvZiB0aGUgaW5kaWNhdG9yIGNhbiBiZSBjdXN0b21pemVkLiAzKSBJZiAnZG8gbm90IGRpc3R1cmInIGlzIGFjdGl2ZSwgdGhlIGljb24gaXMgZGlzcGxheWVkIGluIHRoZSBjdXN0b20gY29sb3IgaWYgdGhlcmUgYXJlIG5vdGlmaWNhdGlvbnMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYWx3YXlzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiQWx3YXlzIEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hbHdheXMtaW5kaWNhdG9yLXNldHRpbmdzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tenVyL2dub21lLXNoZWxsLWFsd2F5cy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImFsd2F5cy1pbmRpY2F0b3JAbWFydGluLnp1cm93aWV0ei5kZSIsCiAgInZlcnNpb24iOiA3Cn0="}}}
 , {"uuid": "eruption-profile-switcher@x3n0m0rph59.org", "name": "Eruption Profile Switcher", "pname": "eruption-profile-switcher", "description": "Runtime profile switcher for the Eruption Linux input and LED driver for keyboards, mice and other devices", "link": "https://extensions.gnome.org/extension/2621/eruption-profile-switcher/", "shell_version_map": {"38": {"version": "15", "sha256": "1jy9m2inx8jjwsy666hg67i7d8py2ar4drn2i8si7d80cba45al4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJ1bnRpbWUgcHJvZmlsZSBzd2l0Y2hlciBmb3IgdGhlIEVydXB0aW9uIExpbnV4IGlucHV0IGFuZCBMRUQgZHJpdmVyIGZvciBrZXlib2FyZHMsIG1pY2UgYW5kIG90aGVyIGRldmljZXMiLAogICJuYW1lIjogIkVydXB0aW9uIFByb2ZpbGUgU3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLmJldGEiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vWDNuMG0wcnBoNTkvZXJ1cHRpb24tcHJvZmlsZS1zd2l0Y2hlciIsCiAgInV1aWQiOiAiZXJ1cHRpb24tcHJvZmlsZS1zd2l0Y2hlckB4M24wbTBycGg1OS5vcmciLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "40": {"version": "20", "sha256": "0mfy34n9gqa1k8sw6b1xcsxygvjnjqnd88bs49jd6l7hwisyns15", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJ1bnRpbWUgcHJvZmlsZSBzd2l0Y2hlciBmb3IgdGhlIEVydXB0aW9uIExpbnV4IGlucHV0IGFuZCBMRUQgZHJpdmVyIGZvciBrZXlib2FyZHMsIG1pY2UgYW5kIG90aGVyIGRldmljZXMiLAogICJuYW1lIjogIkVydXB0aW9uIFByb2ZpbGUgU3dpdGNoZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXJ1cHRpb24tcHJvZmlsZS1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuYmV0YSIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vWDNuMG0wcnBoNTkvZXJ1cHRpb24tcHJvZmlsZS1zd2l0Y2hlciIsCiAgInV1aWQiOiAiZXJ1cHRpb24tcHJvZmlsZS1zd2l0Y2hlckB4M24wbTBycGg1OS5vcmciLAogICJ2ZXJzaW9uIjogMjAKfQ=="}, "41": {"version": "20", "sha256": "0mfy34n9gqa1k8sw6b1xcsxygvjnjqnd88bs49jd6l7hwisyns15", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJ1bnRpbWUgcHJvZmlsZSBzd2l0Y2hlciBmb3IgdGhlIEVydXB0aW9uIExpbnV4IGlucHV0IGFuZCBMRUQgZHJpdmVyIGZvciBrZXlib2FyZHMsIG1pY2UgYW5kIG90aGVyIGRldmljZXMiLAogICJuYW1lIjogIkVydXB0aW9uIFByb2ZpbGUgU3dpdGNoZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXJ1cHRpb24tcHJvZmlsZS1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuYmV0YSIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vWDNuMG0wcnBoNTkvZXJ1cHRpb24tcHJvZmlsZS1zd2l0Y2hlciIsCiAgInV1aWQiOiAiZXJ1cHRpb24tcHJvZmlsZS1zd2l0Y2hlckB4M24wbTBycGg1OS5vcmciLAogICJ2ZXJzaW9uIjogMjAKfQ=="}}}
 , {"uuid": "nbfcindicator@mgokcaykdev.gmail.com", "name": "Nbfc Indicator", "pname": "nbfc-indicator", "description": "Notebook Fan Control Indicator for Gnome Shell", "link": "https://extensions.gnome.org/extension/2624/nbfc-indicator/", "shell_version_map": {"40": {"version": "7", "sha256": "0hp7giwdcsk8p442q0x9214dv59ziyjswli6mccyb8v814k3p8ic", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vdGVib29rIEZhbiBDb250cm9sIEluZGljYXRvciBmb3IgR25vbWUgU2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuYmZjaW5kaWNhdG9yIiwKICAibmFtZSI6ICJOYmZjIEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uYmZjaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL01Hb2tjYXlLL2dub21lLXNoZWxsLWV4dGVuc2lvbnMtbmJmY2luZGljYXRvciIsCiAgInV1aWQiOiAibmJmY2luZGljYXRvckBtZ29rY2F5a2Rldi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNwp9"}}}
-, {"uuid": "user-id-in-top-panel@fthx", "name": "User id in top panel", "pname": "user-id-in-top-panel", "description": "Add ( user name :: user id @ host ) in top panel.", "link": "https://extensions.gnome.org/extension/2633/user-id-in-top-panel/", "shell_version_map": {"38": {"version": "5", "sha256": "1qymbxd49jq1xqz3lril9dv5g5a94xs658shml7c75iqplq794f4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCAoIHVzZXIgbmFtZSA6OiB1c2VyIGlkIEAgaG9zdCApIGluIHRvcCBwYW5lbC4iLAogICJuYW1lIjogIlVzZXIgaWQgaW4gdG9wIHBhbmVsIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJmdGh4IgogIF0sCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAidXNlci1pZC1pbi10b3AtcGFuZWxAZnRoeCIsCiAgInZlcnNpb24iOiA1Cn0="}, "40": {"version": "5", "sha256": "1qymbxd49jq1xqz3lril9dv5g5a94xs658shml7c75iqplq794f4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCAoIHVzZXIgbmFtZSA6OiB1c2VyIGlkIEAgaG9zdCApIGluIHRvcCBwYW5lbC4iLAogICJuYW1lIjogIlVzZXIgaWQgaW4gdG9wIHBhbmVsIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJmdGh4IgogIF0sCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAidXNlci1pZC1pbi10b3AtcGFuZWxAZnRoeCIsCiAgInZlcnNpb24iOiA1Cn0="}}}
+, {"uuid": "user-id-in-top-panel@fthx", "name": "User id in top panel", "pname": "user-id-in-top-panel", "description": "Add ( user name :: user id @ host ) in top panel.", "link": "https://extensions.gnome.org/extension/2633/user-id-in-top-panel/", "shell_version_map": {"38": {"version": "6", "sha256": "16s1782mzb5ckshsy86ac9xj5xfk15hwzvzk4cfiimphfvkkw8x4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCAoIHVzZXIgbmFtZSA6OiB1c2VyIGlkIEAgaG9zdCApIGluIHRvcCBwYW5lbC4iLAogICJuYW1lIjogIlVzZXIgaWQgaW4gdG9wIHBhbmVsIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJmdGh4IgogIF0sCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ1c2VyLWlkLWluLXRvcC1wYW5lbEBmdGh4IiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "6", "sha256": "16s1782mzb5ckshsy86ac9xj5xfk15hwzvzk4cfiimphfvkkw8x4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCAoIHVzZXIgbmFtZSA6OiB1c2VyIGlkIEAgaG9zdCApIGluIHRvcCBwYW5lbC4iLAogICJuYW1lIjogIlVzZXIgaWQgaW4gdG9wIHBhbmVsIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJmdGh4IgogIF0sCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ1c2VyLWlkLWluLXRvcC1wYW5lbEBmdGh4IiwKICAidmVyc2lvbiI6IDYKfQ=="}, "41": {"version": "6", "sha256": "16s1782mzb5ckshsy86ac9xj5xfk15hwzvzk4cfiimphfvkkw8x4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCAoIHVzZXIgbmFtZSA6OiB1c2VyIGlkIEAgaG9zdCApIGluIHRvcCBwYW5lbC4iLAogICJuYW1lIjogIlVzZXIgaWQgaW4gdG9wIHBhbmVsIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJmdGh4IgogIF0sCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ1c2VyLWlkLWluLXRvcC1wYW5lbEBmdGh4IiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
 , {"uuid": "hide-minimized@danigm.net", "name": "Hide minimized", "pname": "hide-minimized", "description": "Hide minimized in overview", "link": "https://extensions.gnome.org/extension/2639/hide-minimized/", "shell_version_map": {"38": {"version": "4", "sha256": "0v2vrm3p5czzvs2kc8dh3h1ijh7i8x6z2b9gdvqbfny45g7blfaa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgbWluaW1pemVkIGluIG92ZXJ2aWV3IiwKICAibmFtZSI6ICJIaWRlIG1pbmltaXplZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGFuaWdtL2hpZGUtbWluaW1pemVkIiwKICAidXVpZCI6ICJoaWRlLW1pbmltaXplZEBkYW5pZ20ubmV0IiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "4", "sha256": "0v2vrm3p5czzvs2kc8dh3h1ijh7i8x6z2b9gdvqbfny45g7blfaa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgbWluaW1pemVkIGluIG92ZXJ2aWV3IiwKICAibmFtZSI6ICJIaWRlIG1pbmltaXplZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGFuaWdtL2hpZGUtbWluaW1pemVkIiwKICAidXVpZCI6ICJoaWRlLW1pbmltaXplZEBkYW5pZ20ubmV0IiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "0v2vrm3p5czzvs2kc8dh3h1ijh7i8x6z2b9gdvqbfny45g7blfaa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgbWluaW1pemVkIGluIG92ZXJ2aWV3IiwKICAibmFtZSI6ICJIaWRlIG1pbmltaXplZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGFuaWdtL2hpZGUtbWluaW1pemVkIiwKICAidXVpZCI6ICJoaWRlLW1pbmltaXplZEBkYW5pZ20ubmV0IiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
 , {"uuid": "display-brightness-ddcutil@themightydeity.github.com", "name": "Brightness control using ddcutil", "pname": "brightness-control-using-ddcutil", "description": "Brightness slider for all the monitors detected by ddcutil\nThis tool uses ddcutil as backend for communication with your display.\n\nMake sure that your user can use following shell commands without root.\n\t`ddcutil getvcp 10` to check the brightness of a display and\n\t`ddcutil setvcp 10 100` to set the brightness to 100\n\nMore info: https://github.com/daitj/gnome-display-brightness-ddcutil/blob/master/README.md", "link": "https://extensions.gnome.org/extension/2645/brightness-control-using-ddcutil/", "shell_version_map": {"38": {"version": "10", "sha256": "08rwqdcaqcx84a5bjalcvryxvhfr15a1bcyldnzw8z9aysdx1jls", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaWdodG5lc3Mgc2xpZGVyIGZvciBhbGwgdGhlIG1vbml0b3JzIGRldGVjdGVkIGJ5IGRkY3V0aWxcblRoaXMgdG9vbCB1c2VzIGRkY3V0aWwgYXMgYmFja2VuZCBmb3IgY29tbXVuaWNhdGlvbiB3aXRoIHlvdXIgZGlzcGxheS5cblxuTWFrZSBzdXJlIHRoYXQgeW91ciB1c2VyIGNhbiB1c2UgZm9sbG93aW5nIHNoZWxsIGNvbW1hbmRzIHdpdGhvdXQgcm9vdC5cblx0YGRkY3V0aWwgZ2V0dmNwIDEwYCB0byBjaGVjayB0aGUgYnJpZ2h0bmVzcyBvZiBhIGRpc3BsYXkgYW5kXG5cdGBkZGN1dGlsIHNldHZjcCAxMCAxMDBgIHRvIHNldCB0aGUgYnJpZ2h0bmVzcyB0byAxMDBcblxuTW9yZSBpbmZvOiBodHRwczovL2dpdGh1Yi5jb20vZGFpdGovZ25vbWUtZGlzcGxheS1icmlnaHRuZXNzLWRkY3V0aWwvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kIiwKICAibmFtZSI6ICJCcmlnaHRuZXNzIGNvbnRyb2wgdXNpbmcgZGRjdXRpbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kaXNwbGF5LWJyaWdodG5lc3MtZGRjdXRpbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RoZW1pZ2h0eWRlaXR5L2dub21lLWRpc3BsYXktYnJpZ2h0bmVzcy1kZGN1dGlsIiwKICAidXVpZCI6ICJkaXNwbGF5LWJyaWdodG5lc3MtZGRjdXRpbEB0aGVtaWdodHlkZWl0eS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}, "40": {"version": "16", "sha256": "03g1m0n0y3fbx898nn6vmjsq6bmw7fphjsb1y7gqawlqim6yhxx0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaWdodG5lc3Mgc2xpZGVyIGZvciBhbGwgdGhlIG1vbml0b3JzIGRldGVjdGVkIGJ5IGRkY3V0aWxcblRoaXMgdG9vbCB1c2VzIGRkY3V0aWwgYXMgYmFja2VuZCBmb3IgY29tbXVuaWNhdGlvbiB3aXRoIHlvdXIgZGlzcGxheS5cblxuTWFrZSBzdXJlIHRoYXQgeW91ciB1c2VyIGNhbiB1c2UgZm9sbG93aW5nIHNoZWxsIGNvbW1hbmRzIHdpdGhvdXQgcm9vdC5cblx0YGRkY3V0aWwgZ2V0dmNwIDEwYCB0byBjaGVjayB0aGUgYnJpZ2h0bmVzcyBvZiBhIGRpc3BsYXkgYW5kXG5cdGBkZGN1dGlsIHNldHZjcCAxMCAxMDBgIHRvIHNldCB0aGUgYnJpZ2h0bmVzcyB0byAxMDBcblxuTW9yZSBpbmZvOiBodHRwczovL2dpdGh1Yi5jb20vZGFpdGovZ25vbWUtZGlzcGxheS1icmlnaHRuZXNzLWRkY3V0aWwvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGlzcGxheS1icmlnaHRuZXNzLWRkY3V0aWwiLAogICJuYW1lIjogIkJyaWdodG5lc3MgY29udHJvbCB1c2luZyBkZGN1dGlsIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRpc3BsYXktYnJpZ2h0bmVzcy1kZGN1dGlsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90aGVtaWdodHlkZWl0eS9nbm9tZS1kaXNwbGF5LWJyaWdodG5lc3MtZGRjdXRpbCIsCiAgInV1aWQiOiAiZGlzcGxheS1icmlnaHRuZXNzLWRkY3V0aWxAdGhlbWlnaHR5ZGVpdHkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNgp9"}, "41": {"version": "16", "sha256": "03g1m0n0y3fbx898nn6vmjsq6bmw7fphjsb1y7gqawlqim6yhxx0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaWdodG5lc3Mgc2xpZGVyIGZvciBhbGwgdGhlIG1vbml0b3JzIGRldGVjdGVkIGJ5IGRkY3V0aWxcblRoaXMgdG9vbCB1c2VzIGRkY3V0aWwgYXMgYmFja2VuZCBmb3IgY29tbXVuaWNhdGlvbiB3aXRoIHlvdXIgZGlzcGxheS5cblxuTWFrZSBzdXJlIHRoYXQgeW91ciB1c2VyIGNhbiB1c2UgZm9sbG93aW5nIHNoZWxsIGNvbW1hbmRzIHdpdGhvdXQgcm9vdC5cblx0YGRkY3V0aWwgZ2V0dmNwIDEwYCB0byBjaGVjayB0aGUgYnJpZ2h0bmVzcyBvZiBhIGRpc3BsYXkgYW5kXG5cdGBkZGN1dGlsIHNldHZjcCAxMCAxMDBgIHRvIHNldCB0aGUgYnJpZ2h0bmVzcyB0byAxMDBcblxuTW9yZSBpbmZvOiBodHRwczovL2dpdGh1Yi5jb20vZGFpdGovZ25vbWUtZGlzcGxheS1icmlnaHRuZXNzLWRkY3V0aWwvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGlzcGxheS1icmlnaHRuZXNzLWRkY3V0aWwiLAogICJuYW1lIjogIkJyaWdodG5lc3MgY29udHJvbCB1c2luZyBkZGN1dGlsIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRpc3BsYXktYnJpZ2h0bmVzcy1kZGN1dGlsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90aGVtaWdodHlkZWl0eS9nbm9tZS1kaXNwbGF5LWJyaWdodG5lc3MtZGRjdXRpbCIsCiAgInV1aWQiOiAiZGlzcGxheS1icmlnaHRuZXNzLWRkY3V0aWxAdGhlbWlnaHR5ZGVpdHkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNgp9"}}}
 , {"uuid": "timezones@masquerade-circus.net", "name": "Timezones extension", "pname": "timezones-extension", "description": "Show multiple clocks in the panel. For those who need more than one additional clock.", "link": "https://extensions.gnome.org/extension/2657/timezones-extension/", "shell_version_map": {"38": {"version": "2", "sha256": "0vkqwrn0kvmng003h26zvzd5ym4h971hvcspb5iq7042lhxxc2hf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgbXVsdGlwbGUgY2xvY2tzIGluIHRoZSBwYW5lbC4gRm9yIHRob3NlIHdobyBuZWVkIG1vcmUgdGhhbiBvbmUgYWRkaXRpb25hbCBjbG9jay4iLAogICJuYW1lIjogIlRpbWV6b25lcyBleHRlbnNpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAidGltZXpvbmVzQG1hc3F1ZXJhZGUtY2lyY3VzLm5ldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWFzcXVlcmFkZS1DaXJjdXMvZ25vbWUtdGltZXpvbmVzLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAidGltZXpvbmVzQG1hc3F1ZXJhZGUtY2lyY3VzLm5ldCIsCiAgInZlcnNpb24iOiAyCn0="}, "40": {"version": "2", "sha256": "0vkqwrn0kvmng003h26zvzd5ym4h971hvcspb5iq7042lhxxc2hf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgbXVsdGlwbGUgY2xvY2tzIGluIHRoZSBwYW5lbC4gRm9yIHRob3NlIHdobyBuZWVkIG1vcmUgdGhhbiBvbmUgYWRkaXRpb25hbCBjbG9jay4iLAogICJuYW1lIjogIlRpbWV6b25lcyBleHRlbnNpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAidGltZXpvbmVzQG1hc3F1ZXJhZGUtY2lyY3VzLm5ldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWFzcXVlcmFkZS1DaXJjdXMvZ25vbWUtdGltZXpvbmVzLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAidGltZXpvbmVzQG1hc3F1ZXJhZGUtY2lyY3VzLm5ldCIsCiAgInZlcnNpb24iOiAyCn0="}, "41": {"version": "2", "sha256": "0vkqwrn0kvmng003h26zvzd5ym4h971hvcspb5iq7042lhxxc2hf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgbXVsdGlwbGUgY2xvY2tzIGluIHRoZSBwYW5lbC4gRm9yIHRob3NlIHdobyBuZWVkIG1vcmUgdGhhbiBvbmUgYWRkaXRpb25hbCBjbG9jay4iLAogICJuYW1lIjogIlRpbWV6b25lcyBleHRlbnNpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAidGltZXpvbmVzQG1hc3F1ZXJhZGUtY2lyY3VzLm5ldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWFzcXVlcmFkZS1DaXJjdXMvZ25vbWUtdGltZXpvbmVzLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAidGltZXpvbmVzQG1hc3F1ZXJhZGUtY2lyY3VzLm5ldCIsCiAgInZlcnNpb24iOiAyCn0="}}}
@@ -289,15 +290,15 @@
 , {"uuid": "activities_icons@fawtytoo", "name": "Activities Icons", "pname": "activities-icons", "description": "The Activities button becomes 2 icons for selecting either Applications or Workspaces in the overview. Selecting the same view again will hide the overview.\nScrolling on the icons allows switching windows on a workspace or cycling through the Workspaces.", "link": "https://extensions.gnome.org/extension/2872/activities-icons/", "shell_version_map": {"38": {"version": "7", "sha256": "0f3h4cwkfx0r0l0fd2yvg7g8hj2lf5nhl6kan9p2p9dsn2sdnlvv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBiZWNvbWVzIDIgaWNvbnMgZm9yIHNlbGVjdGluZyBlaXRoZXIgQXBwbGljYXRpb25zIG9yIFdvcmtzcGFjZXMgaW4gdGhlIG92ZXJ2aWV3LiBTZWxlY3RpbmcgdGhlIHNhbWUgdmlldyBhZ2FpbiB3aWxsIGhpZGUgdGhlIG92ZXJ2aWV3LlxuU2Nyb2xsaW5nIG9uIHRoZSBpY29ucyBhbGxvd3Mgc3dpdGNoaW5nIHdpbmRvd3Mgb24gYSB3b3Jrc3BhY2Ugb3IgY3ljbGluZyB0aHJvdWdoIHRoZSBXb3Jrc3BhY2VzLiIsCiAgIm5hbWUiOiAiQWN0aXZpdGllcyBJY29ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mYXd0eXRvby9hY3Rpdml0aWVzLWljb25zIiwKICAidXVpZCI6ICJhY3Rpdml0aWVzX2ljb25zQGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "40": {"version": "7", "sha256": "0f3h4cwkfx0r0l0fd2yvg7g8hj2lf5nhl6kan9p2p9dsn2sdnlvv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBiZWNvbWVzIDIgaWNvbnMgZm9yIHNlbGVjdGluZyBlaXRoZXIgQXBwbGljYXRpb25zIG9yIFdvcmtzcGFjZXMgaW4gdGhlIG92ZXJ2aWV3LiBTZWxlY3RpbmcgdGhlIHNhbWUgdmlldyBhZ2FpbiB3aWxsIGhpZGUgdGhlIG92ZXJ2aWV3LlxuU2Nyb2xsaW5nIG9uIHRoZSBpY29ucyBhbGxvd3Mgc3dpdGNoaW5nIHdpbmRvd3Mgb24gYSB3b3Jrc3BhY2Ugb3IgY3ljbGluZyB0aHJvdWdoIHRoZSBXb3Jrc3BhY2VzLiIsCiAgIm5hbWUiOiAiQWN0aXZpdGllcyBJY29ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mYXd0eXRvby9hY3Rpdml0aWVzLWljb25zIiwKICAidXVpZCI6ICJhY3Rpdml0aWVzX2ljb25zQGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
 , {"uuid": "transparent_panel@fawtytoo", "name": "Transparent Top Panel", "pname": "transparent-top-panel", "description": "Totally transparent top panel in the Overview.\nAlso adds drop shadows to text and icons for those using GS 3.38.", "link": "https://extensions.gnome.org/extension/2878/transparent-top-panel/", "shell_version_map": {"38": {"version": "9", "sha256": "0samdl8ig95hin9xjc41pzh648s97cqs6sb6qmjzkhnd35cx0k9s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvdGFsbHkgdHJhbnNwYXJlbnQgdG9wIHBhbmVsIGluIHRoZSBPdmVydmlldy5cbkFsc28gYWRkcyBkcm9wIHNoYWRvd3MgdG8gdGV4dCBhbmQgaWNvbnMgZm9yIHRob3NlIHVzaW5nIEdTIDMuMzguIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogInRyYW5zcGFyZW50X3BhbmVsQGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDkKfQ=="}, "40": {"version": "9", "sha256": "0samdl8ig95hin9xjc41pzh648s97cqs6sb6qmjzkhnd35cx0k9s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvdGFsbHkgdHJhbnNwYXJlbnQgdG9wIHBhbmVsIGluIHRoZSBPdmVydmlldy5cbkFsc28gYWRkcyBkcm9wIHNoYWRvd3MgdG8gdGV4dCBhbmQgaWNvbnMgZm9yIHRob3NlIHVzaW5nIEdTIDMuMzguIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogInRyYW5zcGFyZW50X3BhbmVsQGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDkKfQ=="}}}
 , {"uuid": "overview_full_bright@fawtytoo", "name": "Overview Full Bright", "pname": "overview-full-bright", "description": "Shows the Overview in full brightness and without the vignette.\n\nNOTE: This will not be developed beyond GS 3.38.", "link": "https://extensions.gnome.org/extension/2884/overview-full-bright/", "shell_version_map": {"38": {"version": "4", "sha256": "1dm5h1kl40lsly9a80ch4mfi67ppwd7dgg4idx8vrcx5iksnzxil", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIHRoZSBPdmVydmlldyBpbiBmdWxsIGJyaWdodG5lc3MgYW5kIHdpdGhvdXQgdGhlIHZpZ25ldHRlLlxuXG5OT1RFOiBUaGlzIHdpbGwgbm90IGJlIGRldmVsb3BlZCBiZXlvbmQgR1MgMy4zOC4iLAogICJuYW1lIjogIk92ZXJ2aWV3IEZ1bGwgQnJpZ2h0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIm92ZXJ2aWV3X2Z1bGxfYnJpZ2h0QGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
-, {"uuid": "trayIconsReloaded@selfmade.pl", "name": "Tray Icons: Reloaded", "pname": "tray-icons-reloaded", "description": "Tray Icons Reloaded is a GNOME Shell extension which bring back Tray Icons to top panel, with additional features.\n\n>>> Read compatibility note on GitHub there is also bug reporting <<<", "link": "https://extensions.gnome.org/extension/2890/tray-icons-reloaded/", "shell_version_map": {"38": {"version": "11", "sha256": "19icczlk4j8a1fdl19lqzinx9l82lwnvj5q8xaazvgm4yicxmh4b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYXkgSWNvbnMgUmVsb2FkZWQgaXMgYSBHTk9NRSBTaGVsbCBleHRlbnNpb24gd2hpY2ggYnJpbmcgYmFjayBUcmF5IEljb25zIHRvIHRvcCBwYW5lbCwgd2l0aCBhZGRpdGlvbmFsIGZlYXR1cmVzLlxuXG4+Pj4gUmVhZCBjb21wYXRpYmlsaXR5IG5vdGUgb24gR2l0SHViIHRoZXJlIGlzIGFsc28gYnVnIHJlcG9ydGluZyA8PDwiLAogICJuYW1lIjogIlRyYXkgSWNvbnM6IFJlbG9hZGVkIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRyYXlJY29uc1JlbG9hZGVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWFydGluUEwvVHJheS1JY29ucy1SZWxvYWRlZCIsCiAgInV1aWQiOiAidHJheUljb25zUmVsb2FkZWRAc2VsZm1hZGUucGwiLAogICJ2ZXJzaW9uIjogMTEKfQ=="}, "40": {"version": "16", "sha256": "0bwpxfc2wjvv254fnr05q3cvs1r0jw0fdj7n8b20vdwry48n30vb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYXkgSWNvbnMgUmVsb2FkZWQgaXMgYSBHTk9NRSBTaGVsbCBleHRlbnNpb24gd2hpY2ggYnJpbmcgYmFjayBUcmF5IEljb25zIHRvIHRvcCBwYW5lbCwgd2l0aCBhZGRpdGlvbmFsIGZlYXR1cmVzLlxuXG4+Pj4gUmVhZCBjb21wYXRpYmlsaXR5IG5vdGUgb24gR2l0SHViIHRoZXJlIGlzIGFsc28gYnVnIHJlcG9ydGluZyA8PDwiLAogICJuYW1lIjogIlRyYXkgSWNvbnM6IFJlbG9hZGVkIiwKICAib3Blbi1ibGFja2xpc3QiOiBbCiAgICAiRWxlY3Ryb24iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRyYXlJY29uc1JlbG9hZGVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL01hcnRpblBML1RyYXktSWNvbnMtUmVsb2FkZWQiLAogICJ1dWlkIjogInRyYXlJY29uc1JlbG9hZGVkQHNlbGZtYWRlLnBsIiwKICAidmVyc2lvbiI6IDE2Cn0="}, "41": {"version": "17", "sha256": "0m4krvi97m3g3ianm5y2vggjpszh96h66vgcji5dmy755f1rmrlr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYXkgSWNvbnMgUmVsb2FkZWQgaXMgYSBHTk9NRSBTaGVsbCBleHRlbnNpb24gd2hpY2ggYnJpbmcgYmFjayBUcmF5IEljb25zIHRvIHRvcCBwYW5lbCwgd2l0aCBhZGRpdGlvbmFsIGZlYXR1cmVzLlxuXG4+Pj4gUmVhZCBjb21wYXRpYmlsaXR5IG5vdGUgb24gR2l0SHViIHRoZXJlIGlzIGFsc28gYnVnIHJlcG9ydGluZyA8PDwiLAogICJuYW1lIjogIlRyYXkgSWNvbnM6IFJlbG9hZGVkIiwKICAib3Blbi1ibGFja2xpc3QiOiBbCiAgICAiRWxlY3Ryb24iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRyYXlJY29uc1JlbG9hZGVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL01hcnRpblBML1RyYXktSWNvbnMtUmVsb2FkZWQiLAogICJ1dWlkIjogInRyYXlJY29uc1JlbG9hZGVkQHNlbGZtYWRlLnBsIiwKICAidmVyc2lvbiI6IDE3Cn0="}}}
+, {"uuid": "trayIconsReloaded@selfmade.pl", "name": "Tray Icons: Reloaded", "pname": "tray-icons-reloaded", "description": "Tray Icons Reloaded is a GNOME Shell extension which bring back Tray Icons to top panel, with additional features.\n\n>>> Read compatibility note on GitHub there is also bug reporting <<<", "link": "https://extensions.gnome.org/extension/2890/tray-icons-reloaded/", "shell_version_map": {"38": {"version": "11", "sha256": "19icczlk4j8a1fdl19lqzinx9l82lwnvj5q8xaazvgm4yicxmh4b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYXkgSWNvbnMgUmVsb2FkZWQgaXMgYSBHTk9NRSBTaGVsbCBleHRlbnNpb24gd2hpY2ggYnJpbmcgYmFjayBUcmF5IEljb25zIHRvIHRvcCBwYW5lbCwgd2l0aCBhZGRpdGlvbmFsIGZlYXR1cmVzLlxuXG4+Pj4gUmVhZCBjb21wYXRpYmlsaXR5IG5vdGUgb24gR2l0SHViIHRoZXJlIGlzIGFsc28gYnVnIHJlcG9ydGluZyA8PDwiLAogICJuYW1lIjogIlRyYXkgSWNvbnM6IFJlbG9hZGVkIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRyYXlJY29uc1JlbG9hZGVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWFydGluUEwvVHJheS1JY29ucy1SZWxvYWRlZCIsCiAgInV1aWQiOiAidHJheUljb25zUmVsb2FkZWRAc2VsZm1hZGUucGwiLAogICJ2ZXJzaW9uIjogMTEKfQ=="}, "40": {"version": "16", "sha256": "0bwpxfc2wjvv254fnr05q3cvs1r0jw0fdj7n8b20vdwry48n30vb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYXkgSWNvbnMgUmVsb2FkZWQgaXMgYSBHTk9NRSBTaGVsbCBleHRlbnNpb24gd2hpY2ggYnJpbmcgYmFjayBUcmF5IEljb25zIHRvIHRvcCBwYW5lbCwgd2l0aCBhZGRpdGlvbmFsIGZlYXR1cmVzLlxuXG4+Pj4gUmVhZCBjb21wYXRpYmlsaXR5IG5vdGUgb24gR2l0SHViIHRoZXJlIGlzIGFsc28gYnVnIHJlcG9ydGluZyA8PDwiLAogICJuYW1lIjogIlRyYXkgSWNvbnM6IFJlbG9hZGVkIiwKICAib3Blbi1ibGFja2xpc3QiOiBbCiAgICAiRWxlY3Ryb24iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRyYXlJY29uc1JlbG9hZGVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL01hcnRpblBML1RyYXktSWNvbnMtUmVsb2FkZWQiLAogICJ1dWlkIjogInRyYXlJY29uc1JlbG9hZGVkQHNlbGZtYWRlLnBsIiwKICAidmVyc2lvbiI6IDE2Cn0="}, "41": {"version": "19", "sha256": "00sgwpkfwfaqjf58j3i3w4brinmrc6x0dr6pf06vbp8vpzf51vdc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYXkgSWNvbnMgUmVsb2FkZWQgaXMgYSBHTk9NRSBTaGVsbCBleHRlbnNpb24gd2hpY2ggYnJpbmcgYmFjayBUcmF5IEljb25zIHRvIHRvcCBwYW5lbCwgd2l0aCBhZGRpdGlvbmFsIGZlYXR1cmVzLlxuXG4+Pj4gUmVhZCBjb21wYXRpYmlsaXR5IG5vdGUgb24gR2l0SHViIHRoZXJlIGlzIGFsc28gYnVnIHJlcG9ydGluZyA8PDwiLAogICJuYW1lIjogIlRyYXkgSWNvbnM6IFJlbG9hZGVkIiwKICAib3Blbi1ibGFja2xpc3QiOiBbCiAgICAiRWxlY3Ryb24iLAogICAgIllhZCIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudHJheUljb25zUmVsb2FkZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWFydGluUEwvVHJheS1JY29ucy1SZWxvYWRlZCIsCiAgInV1aWQiOiAidHJheUljb25zUmVsb2FkZWRAc2VsZm1hZGUucGwiLAogICJ2ZXJzaW9uIjogMTkKfQ=="}}}
 , {"uuid": "messagingmenu@lauinger-clan.de", "name": "Messaging Menu", "pname": "messaging-menu", "description": "A Messaging Menu for the Gnome Shell. All Email and Chat Applications in one Place.", "link": "https://extensions.gnome.org/extension/2896/messaging-menu/", "shell_version_map": {"38": {"version": "4", "sha256": "1xa0hyvs2aw1z7kg5gcsgh2pjn7b13zhps98j4xpwfiv6zm0sa73", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiTWVzc2FnaW5nIE1lbnUiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic2luaXN0ZXJzdHVmIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1lc3NhZ2luZ21lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9DaHJpc0xhdWluZ2VyNzcvbWVzc2FnaW5nbWVudSIsCiAgInV1aWQiOiAibWVzc2FnaW5nbWVudUBsYXVpbmdlci1jbGFuLmRlIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "8", "sha256": "1pxf5rk8nqm6scm38np546g5z9xlnf2nghzbayrxk91b67qq6znv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiTWVzc2FnaW5nIE1lbnUiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic2luaXN0ZXJzdHVmIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1lc3NhZ2luZ21lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9tZXNzYWdpbmdtZW51IiwKICAidXVpZCI6ICJtZXNzYWdpbmdtZW51QGxhdWluZ2VyLWNsYW4uZGUiLAogICJ2ZXJzaW9uIjogOAp9"}, "41": {"version": "8", "sha256": "1pxf5rk8nqm6scm38np546g5z9xlnf2nghzbayrxk91b67qq6znv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiTWVzc2FnaW5nIE1lbnUiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic2luaXN0ZXJzdHVmIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1lc3NhZ2luZ21lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9tZXNzYWdpbmdtZW51IiwKICAidXVpZCI6ICJtZXNzYWdpbmdtZW51QGxhdWluZ2VyLWNsYW4uZGUiLAogICJ2ZXJzaW9uIjogOAp9"}}}
 , {"uuid": "SettingsCenter@lauinger-clan.de", "name": "SettingsCenter", "pname": "settingscenter", "description": "Settings Center is a customizable drop-down menu for quickly launching frequently used apps in Gnome:Shell via the user/aggregate menu. Originally created by XES.\n\nv10: fix for older versions, i havent tested this on anything below 3.10, v9: minor cleanup, now has an icon for the main menu entry. \n\nSettings shortcuts : gnome-tweak-tool, dconf-editor, gconf-editor, gnome-session-properties, gnome-shell-extension-prefs, seahorse and nvidia-settings. You can add your own\n\nOriginal source : http://svn.xesnet.fr/gnomeextensions (3.8 replace Settings code credit IsacDaavid)\n\nCredit to @peaceseeker for updating this with a working repo, i do wish it could have been pushed to me but my blank repo was deleted as it was stale, i failed to push to git before going back to work around 1.5 years ago and i hadn't been active enough to notice anything other than emails(these things help people!)", "link": "https://extensions.gnome.org/extension/2899/settingscenter/", "shell_version_map": {"38": {"version": "2", "sha256": "150x8xp9xm28scw5lcmxq7xcfa17wbzy2y381xsv0mv0b03kvyqy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHRpbmdzIENlbnRlciBpcyBhIGN1c3RvbWl6YWJsZSBkcm9wLWRvd24gbWVudSBmb3IgcXVpY2tseSBsYXVuY2hpbmcgZnJlcXVlbnRseSB1c2VkIGFwcHMgaW4gR25vbWU6U2hlbGwgdmlhIHRoZSB1c2VyL2FnZ3JlZ2F0ZSBtZW51LiBPcmlnaW5hbGx5IGNyZWF0ZWQgYnkgWEVTLlxuXG52MTA6IGZpeCBmb3Igb2xkZXIgdmVyc2lvbnMsIGkgaGF2ZW50IHRlc3RlZCB0aGlzIG9uIGFueXRoaW5nIGJlbG93IDMuMTAsIHY5OiBtaW5vciBjbGVhbnVwLCBub3cgaGFzIGFuIGljb24gZm9yIHRoZSBtYWluIG1lbnUgZW50cnkuIFxuXG5TZXR0aW5ncyBzaG9ydGN1dHMgOiBnbm9tZS10d2Vhay10b29sLCBkY29uZi1lZGl0b3IsIGdjb25mLWVkaXRvciwgZ25vbWUtc2Vzc2lvbi1wcm9wZXJ0aWVzLCBnbm9tZS1zaGVsbC1leHRlbnNpb24tcHJlZnMsIHNlYWhvcnNlIGFuZCBudmlkaWEtc2V0dGluZ3MuIFlvdSBjYW4gYWRkIHlvdXIgb3duXG5cbk9yaWdpbmFsIHNvdXJjZSA6IGh0dHA6Ly9zdm4ueGVzbmV0LmZyL2dub21lZXh0ZW5zaW9ucyAoMy44IHJlcGxhY2UgU2V0dGluZ3MgY29kZSBjcmVkaXQgSXNhY0RhYXZpZClcblxuQ3JlZGl0IHRvIEBwZWFjZXNlZWtlciBmb3IgdXBkYXRpbmcgdGhpcyB3aXRoIGEgd29ya2luZyByZXBvLCBpIGRvIHdpc2ggaXQgY291bGQgaGF2ZSBiZWVuIHB1c2hlZCB0byBtZSBidXQgbXkgYmxhbmsgcmVwbyB3YXMgZGVsZXRlZCBhcyBpdCB3YXMgc3RhbGUsIGkgZmFpbGVkIHRvIHB1c2ggdG8gZ2l0IGJlZm9yZSBnb2luZyBiYWNrIHRvIHdvcmsgYXJvdW5kIDEuNSB5ZWFycyBhZ28gYW5kIGkgaGFkbid0IGJlZW4gYWN0aXZlIGVub3VnaCB0byBub3RpY2UgYW55dGhpbmcgb3RoZXIgdGhhbiBlbWFpbHModGhlc2UgdGhpbmdzIGhlbHAgcGVvcGxlISkiLAogICJsb2NhbGUiOiAiL3Vzci9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIlNldHRpbmdzQ2VudGVyIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIlhlcywgbDMwMGx2bCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy40IiwKICAgICIzLjYiLAogICAgIjMuNS40IiwKICAgICIzLjgiLAogICAgIjMuMTAiLAogICAgIjMuMTIiLAogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9DaHJpc0xhdWluZ2VyNzcvWEVTLVNldHRpbmdzLUNlbnRlci1FeHRlbnNpb24iLAogICJ1dWlkIjogIlNldHRpbmdzQ2VudGVyQGxhdWluZ2VyLWNsYW4uZGUiLAogICJ2ZXJzaW9uIjogMgp9"}, "40": {"version": "6", "sha256": "0vbvkvrx9yd2jci452m1wdqhx1d1a858kgg45abqds8d7vdmlph1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHRpbmdzIENlbnRlciBpcyBhIGN1c3RvbWl6YWJsZSBkcm9wLWRvd24gbWVudSBmb3IgcXVpY2tseSBsYXVuY2hpbmcgZnJlcXVlbnRseSB1c2VkIGFwcHMgaW4gR25vbWU6U2hlbGwgdmlhIHRoZSB1c2VyL2FnZ3JlZ2F0ZSBtZW51LiBPcmlnaW5hbGx5IGNyZWF0ZWQgYnkgWEVTLlxuXG52MTA6IGZpeCBmb3Igb2xkZXIgdmVyc2lvbnMsIGkgaGF2ZW50IHRlc3RlZCB0aGlzIG9uIGFueXRoaW5nIGJlbG93IDMuMTAsIHY5OiBtaW5vciBjbGVhbnVwLCBub3cgaGFzIGFuIGljb24gZm9yIHRoZSBtYWluIG1lbnUgZW50cnkuIFxuXG5TZXR0aW5ncyBzaG9ydGN1dHMgOiBnbm9tZS10d2Vhay10b29sLCBkY29uZi1lZGl0b3IsIGdjb25mLWVkaXRvciwgZ25vbWUtc2Vzc2lvbi1wcm9wZXJ0aWVzLCBnbm9tZS1zaGVsbC1leHRlbnNpb24tcHJlZnMsIHNlYWhvcnNlIGFuZCBudmlkaWEtc2V0dGluZ3MuIFlvdSBjYW4gYWRkIHlvdXIgb3duXG5cbk9yaWdpbmFsIHNvdXJjZSA6IGh0dHA6Ly9zdm4ueGVzbmV0LmZyL2dub21lZXh0ZW5zaW9ucyAoMy44IHJlcGxhY2UgU2V0dGluZ3MgY29kZSBjcmVkaXQgSXNhY0RhYXZpZClcblxuQ3JlZGl0IHRvIEBwZWFjZXNlZWtlciBmb3IgdXBkYXRpbmcgdGhpcyB3aXRoIGEgd29ya2luZyByZXBvLCBpIGRvIHdpc2ggaXQgY291bGQgaGF2ZSBiZWVuIHB1c2hlZCB0byBtZSBidXQgbXkgYmxhbmsgcmVwbyB3YXMgZGVsZXRlZCBhcyBpdCB3YXMgc3RhbGUsIGkgZmFpbGVkIHRvIHB1c2ggdG8gZ2l0IGJlZm9yZSBnb2luZyBiYWNrIHRvIHdvcmsgYXJvdW5kIDEuNSB5ZWFycyBhZ28gYW5kIGkgaGFkbid0IGJlZW4gYWN0aXZlIGVub3VnaCB0byBub3RpY2UgYW55dGhpbmcgb3RoZXIgdGhhbiBlbWFpbHModGhlc2UgdGhpbmdzIGhlbHAgcGVvcGxlISkiLAogICJsb2NhbGUiOiAiL3Vzci9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIlNldHRpbmdzQ2VudGVyIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIlhlcywgbDMwMGx2bCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ2hyaXNMYXVpbmdlcjc3L1hFUy1TZXR0aW5ncy1DZW50ZXItRXh0ZW5zaW9uIiwKICAidXVpZCI6ICJTZXR0aW5nc0NlbnRlckBsYXVpbmdlci1jbGFuLmRlIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "41": {"version": "6", "sha256": "0vbvkvrx9yd2jci452m1wdqhx1d1a858kgg45abqds8d7vdmlph1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHRpbmdzIENlbnRlciBpcyBhIGN1c3RvbWl6YWJsZSBkcm9wLWRvd24gbWVudSBmb3IgcXVpY2tseSBsYXVuY2hpbmcgZnJlcXVlbnRseSB1c2VkIGFwcHMgaW4gR25vbWU6U2hlbGwgdmlhIHRoZSB1c2VyL2FnZ3JlZ2F0ZSBtZW51LiBPcmlnaW5hbGx5IGNyZWF0ZWQgYnkgWEVTLlxuXG52MTA6IGZpeCBmb3Igb2xkZXIgdmVyc2lvbnMsIGkgaGF2ZW50IHRlc3RlZCB0aGlzIG9uIGFueXRoaW5nIGJlbG93IDMuMTAsIHY5OiBtaW5vciBjbGVhbnVwLCBub3cgaGFzIGFuIGljb24gZm9yIHRoZSBtYWluIG1lbnUgZW50cnkuIFxuXG5TZXR0aW5ncyBzaG9ydGN1dHMgOiBnbm9tZS10d2Vhay10b29sLCBkY29uZi1lZGl0b3IsIGdjb25mLWVkaXRvciwgZ25vbWUtc2Vzc2lvbi1wcm9wZXJ0aWVzLCBnbm9tZS1zaGVsbC1leHRlbnNpb24tcHJlZnMsIHNlYWhvcnNlIGFuZCBudmlkaWEtc2V0dGluZ3MuIFlvdSBjYW4gYWRkIHlvdXIgb3duXG5cbk9yaWdpbmFsIHNvdXJjZSA6IGh0dHA6Ly9zdm4ueGVzbmV0LmZyL2dub21lZXh0ZW5zaW9ucyAoMy44IHJlcGxhY2UgU2V0dGluZ3MgY29kZSBjcmVkaXQgSXNhY0RhYXZpZClcblxuQ3JlZGl0IHRvIEBwZWFjZXNlZWtlciBmb3IgdXBkYXRpbmcgdGhpcyB3aXRoIGEgd29ya2luZyByZXBvLCBpIGRvIHdpc2ggaXQgY291bGQgaGF2ZSBiZWVuIHB1c2hlZCB0byBtZSBidXQgbXkgYmxhbmsgcmVwbyB3YXMgZGVsZXRlZCBhcyBpdCB3YXMgc3RhbGUsIGkgZmFpbGVkIHRvIHB1c2ggdG8gZ2l0IGJlZm9yZSBnb2luZyBiYWNrIHRvIHdvcmsgYXJvdW5kIDEuNSB5ZWFycyBhZ28gYW5kIGkgaGFkbid0IGJlZW4gYWN0aXZlIGVub3VnaCB0byBub3RpY2UgYW55dGhpbmcgb3RoZXIgdGhhbiBlbWFpbHModGhlc2UgdGhpbmdzIGhlbHAgcGVvcGxlISkiLAogICJsb2NhbGUiOiAiL3Vzci9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIlNldHRpbmdzQ2VudGVyIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIlhlcywgbDMwMGx2bCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ2hyaXNMYXVpbmdlcjc3L1hFUy1TZXR0aW5ncy1DZW50ZXItRXh0ZW5zaW9uIiwKICAidXVpZCI6ICJTZXR0aW5nc0NlbnRlckBsYXVpbmdlci1jbGFuLmRlIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
 , {"uuid": "auto-mute-toggle@garotosopa.github.io", "name": "Auto-mute toggle", "pname": "auto-mute-toggle", "description": "Toggle whether to auto-mute speakers when headphones are plugged in.", "link": "https://extensions.gnome.org/extension/2905/auto-mute-toggle/", "shell_version_map": {"40": {"version": "6", "sha256": "1lyh51gvsh9ydip77vjj8rigjiah97lh8gp91jcpqblwx69fs3dk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSB3aGV0aGVyIHRvIGF1dG8tbXV0ZSBzcGVha2VycyB3aGVuIGhlYWRwaG9uZXMgYXJlIHBsdWdnZWQgaW4uIiwKICAibmFtZSI6ICJBdXRvLW11dGUgdG9nZ2xlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dhcm90b3NvcGEvZ3NlLWF1dG8tbXV0ZS10b2dnbGUiLAogICJ1dWlkIjogImF1dG8tbXV0ZS10b2dnbGVAZ2Fyb3Rvc29wYS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNgp9"}}}
 , {"uuid": "optimus-manager-indicator@andr3slelouch.github.com", "name": "Optimus Manager Indicator", "pname": "optimus-manager-indicator", "description": "Intel/Hybrid/NVIDIA GPU Switch Note: The GPU mode activated doesn't show up in the options, by example: When you turn on the PC you are gonna be in Intel mode so Intel option is not gonna be shown. Note: Optimus Manager Indicator is made(for the moment) for Arch based distributions with optimus-manager.", "link": "https://extensions.gnome.org/extension/2908/optimus-manager-indicator/", "shell_version_map": {"38": {"version": "5", "sha256": "1mqgnwfdbd2460ngkkq6wiswvb9bvwgm5n32j7jgvn1xhb3mqn58", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVsL0h5YnJpZC9OVklESUEgR1BVIFN3aXRjaCBOb3RlOiBUaGUgR1BVIG1vZGUgYWN0aXZhdGVkIGRvZXNuJ3Qgc2hvdyB1cCBpbiB0aGUgb3B0aW9ucywgYnkgZXhhbXBsZTogV2hlbiB5b3UgdHVybiBvbiB0aGUgUEMgeW91IGFyZSBnb25uYSBiZSBpbiBJbnRlbCBtb2RlIHNvIEludGVsIG9wdGlvbiBpcyBub3QgZ29ubmEgYmUgc2hvd24uIE5vdGU6IE9wdGltdXMgTWFuYWdlciBJbmRpY2F0b3IgaXMgbWFkZShmb3IgdGhlIG1vbWVudCkgZm9yIEFyY2ggYmFzZWQgZGlzdHJpYnV0aW9ucyB3aXRoIG9wdGltdXMtbWFuYWdlci4iLAogICJuYW1lIjogIk9wdGltdXMgTWFuYWdlciBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbmRyM3NsZWxvdWNoL09wdGltdXMtTWFuYWdlci1JbmRpY2F0b3IiLAogICJ1dWlkIjogIm9wdGltdXMtbWFuYWdlci1pbmRpY2F0b3JAYW5kcjNzbGVsb3VjaC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "40": {"version": "5", "sha256": "1mqgnwfdbd2460ngkkq6wiswvb9bvwgm5n32j7jgvn1xhb3mqn58", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVsL0h5YnJpZC9OVklESUEgR1BVIFN3aXRjaCBOb3RlOiBUaGUgR1BVIG1vZGUgYWN0aXZhdGVkIGRvZXNuJ3Qgc2hvdyB1cCBpbiB0aGUgb3B0aW9ucywgYnkgZXhhbXBsZTogV2hlbiB5b3UgdHVybiBvbiB0aGUgUEMgeW91IGFyZSBnb25uYSBiZSBpbiBJbnRlbCBtb2RlIHNvIEludGVsIG9wdGlvbiBpcyBub3QgZ29ubmEgYmUgc2hvd24uIE5vdGU6IE9wdGltdXMgTWFuYWdlciBJbmRpY2F0b3IgaXMgbWFkZShmb3IgdGhlIG1vbWVudCkgZm9yIEFyY2ggYmFzZWQgZGlzdHJpYnV0aW9ucyB3aXRoIG9wdGltdXMtbWFuYWdlci4iLAogICJuYW1lIjogIk9wdGltdXMgTWFuYWdlciBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbmRyM3NsZWxvdWNoL09wdGltdXMtTWFuYWdlci1JbmRpY2F0b3IiLAogICJ1dWlkIjogIm9wdGltdXMtbWFuYWdlci1pbmRpY2F0b3JAYW5kcjNzbGVsb3VjaC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
 , {"uuid": "BringOutSubmenuOfPowerOffLogoutButton@pratap.fastmail.fm", "name": "Bring Out Submenu Of Power Off/Logout Button", "pname": "bring-out-submenu-of-power-offlogout-button", "description": "Bring Out Submenu Of Power Off/Logout Button and Rearrange the Order of System Menu.", "link": "https://extensions.gnome.org/extension/2917/bring-out-submenu-of-power-offlogout-button/", "shell_version_map": {"38": {"version": "22", "sha256": "0iigq5qb4jh8rjc7m8abz4fsqrihppax4czgwhphkc3fyk2r8iym", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5nIE91dCBTdWJtZW51IE9mIFBvd2VyIE9mZi9Mb2dvdXQgQnV0dG9uIGFuZCBSZWFycmFuZ2UgdGhlIE9yZGVyIG9mIFN5c3RlbSBNZW51LiIsCiAgIm5hbWUiOiAiQnJpbmcgT3V0IFN1Ym1lbnUgT2YgUG93ZXIgT2ZmL0xvZ291dCBCdXR0b24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9QUkFUQVAtS1VNQVIvQnJpbmctT3V0LVN1Ym1lbnUtb2YtUG93ZXItT2ZmLUxvZ291dCIsCiAgInV1aWQiOiAiQnJpbmdPdXRTdWJtZW51T2ZQb3dlck9mZkxvZ291dEJ1dHRvbkBwcmF0YXAuZmFzdG1haWwuZm0iLAogICJ2ZXJzaW9uIjogMjIKfQ=="}, "40": {"version": "24", "sha256": "0mj3w7bn597barirp60isxbhrvwmms4xbpvk7j592yk5dbyidq65", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5nIE91dCBTdWJtZW51IE9mIFBvd2VyIE9mZi9Mb2dvdXQgQnV0dG9uIGFuZCBSZWFycmFuZ2UgdGhlIE9yZGVyIG9mIFN5c3RlbSBNZW51LiIsCiAgIm5hbWUiOiAiQnJpbmcgT3V0IFN1Ym1lbnUgT2YgUG93ZXIgT2ZmL0xvZ291dCBCdXR0b24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BSQVRBUC1LVU1BUi9CcmluZy1PdXQtU3VibWVudS1vZi1Qb3dlci1PZmYtTG9nb3V0IiwKICAidXVpZCI6ICJCcmluZ091dFN1Ym1lbnVPZlBvd2VyT2ZmTG9nb3V0QnV0dG9uQHByYXRhcC5mYXN0bWFpbC5mbSIsCiAgInZlcnNpb24iOiAyNAp9"}, "41": {"version": "24", "sha256": "0mj3w7bn597barirp60isxbhrvwmms4xbpvk7j592yk5dbyidq65", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5nIE91dCBTdWJtZW51IE9mIFBvd2VyIE9mZi9Mb2dvdXQgQnV0dG9uIGFuZCBSZWFycmFuZ2UgdGhlIE9yZGVyIG9mIFN5c3RlbSBNZW51LiIsCiAgIm5hbWUiOiAiQnJpbmcgT3V0IFN1Ym1lbnUgT2YgUG93ZXIgT2ZmL0xvZ291dCBCdXR0b24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BSQVRBUC1LVU1BUi9CcmluZy1PdXQtU3VibWVudS1vZi1Qb3dlci1PZmYtTG9nb3V0IiwKICAidXVpZCI6ICJCcmluZ091dFN1Ym1lbnVPZlBvd2VyT2ZmTG9nb3V0QnV0dG9uQHByYXRhcC5mYXN0bWFpbC5mbSIsCiAgInZlcnNpb24iOiAyNAp9"}}}
-, {"uuid": "batterytimepercentagecompact@sagrland.de", "name": "Battery Time (Percentage) Compact", "pname": "battery-time-percentage-compact", "description": "Show the remaining time until fully charged/discharged as well as percentage of battery charge in the panel.", "link": "https://extensions.gnome.org/extension/2929/battery-time-percentage-compact/", "shell_version_map": {"38": {"version": "4", "sha256": "1jv5k6ir968rh8pfrk1bcnddrdmrmx3kfc30zfsdlcpvmc8p03lb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIHJlbWFpbmluZyB0aW1lIHVudGlsIGZ1bGx5IGNoYXJnZWQvZGlzY2hhcmdlZCBhcyB3ZWxsIGFzIHBlcmNlbnRhZ2Ugb2YgYmF0dGVyeSBjaGFyZ2UgaW4gdGhlIHBhbmVsLiIsCiAgImdldHRleHQtZG9tYWluIjogImJhdHRlcnl0aW1lcGVyY2VudGFnZWNvbXBhY3QiLAogICJuYW1lIjogIkJhdHRlcnkgVGltZSAoUGVyY2VudGFnZSkgQ29tcGFjdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iYXR0ZXJ5dGltZXBlcmNlbnRhZ2Vjb21wYWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NhR3JMYW5kL2dub21lLXNoZWxsLWJhdHRlcnktdGltZS1wZXJjZW50YWdlLWNvbXBhY3QiLAogICJ1dWlkIjogImJhdHRlcnl0aW1lcGVyY2VudGFnZWNvbXBhY3RAc2FncmxhbmQuZGUiLAogICJ2ZXJzaW9uIjogNAp9"}, "40": {"version": "4", "sha256": "1jv5k6ir968rh8pfrk1bcnddrdmrmx3kfc30zfsdlcpvmc8p03lb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIHJlbWFpbmluZyB0aW1lIHVudGlsIGZ1bGx5IGNoYXJnZWQvZGlzY2hhcmdlZCBhcyB3ZWxsIGFzIHBlcmNlbnRhZ2Ugb2YgYmF0dGVyeSBjaGFyZ2UgaW4gdGhlIHBhbmVsLiIsCiAgImdldHRleHQtZG9tYWluIjogImJhdHRlcnl0aW1lcGVyY2VudGFnZWNvbXBhY3QiLAogICJuYW1lIjogIkJhdHRlcnkgVGltZSAoUGVyY2VudGFnZSkgQ29tcGFjdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iYXR0ZXJ5dGltZXBlcmNlbnRhZ2Vjb21wYWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NhR3JMYW5kL2dub21lLXNoZWxsLWJhdHRlcnktdGltZS1wZXJjZW50YWdlLWNvbXBhY3QiLAogICJ1dWlkIjogImJhdHRlcnl0aW1lcGVyY2VudGFnZWNvbXBhY3RAc2FncmxhbmQuZGUiLAogICJ2ZXJzaW9uIjogNAp9"}}}
+, {"uuid": "batterytimepercentagecompact@sagrland.de", "name": "Battery Time (Percentage) Compact", "pname": "battery-time-percentage-compact", "description": "Shows the remaining time until fully charged/discharged as well as percentage of battery charge in the panel.", "link": "https://extensions.gnome.org/extension/2929/battery-time-percentage-compact/", "shell_version_map": {"38": {"version": "5", "sha256": "1ybq8k2nv1ym6dr9lkimrpbi9fhs2pnrm27382wpfly7qq1nflg9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIHRoZSByZW1haW5pbmcgdGltZSB1bnRpbCBmdWxseSBjaGFyZ2VkL2Rpc2NoYXJnZWQgYXMgd2VsbCBhcyBwZXJjZW50YWdlIG9mIGJhdHRlcnkgY2hhcmdlIGluIHRoZSBwYW5lbC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYXR0ZXJ5dGltZXBlcmNlbnRhZ2Vjb21wYWN0IiwKICAibmFtZSI6ICJCYXR0ZXJ5IFRpbWUgKFBlcmNlbnRhZ2UpIENvbXBhY3QiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYmF0dGVyeXRpbWVwZXJjZW50YWdlY29tcGFjdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2FHckxhbmQvZ25vbWUtc2hlbGwtYmF0dGVyeS10aW1lLXBlcmNlbnRhZ2UtY29tcGFjdCIsCiAgInV1aWQiOiAiYmF0dGVyeXRpbWVwZXJjZW50YWdlY29tcGFjdEBzYWdybGFuZC5kZSIsCiAgInZlcnNpb24iOiA1Cn0="}, "40": {"version": "5", "sha256": "1ybq8k2nv1ym6dr9lkimrpbi9fhs2pnrm27382wpfly7qq1nflg9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIHRoZSByZW1haW5pbmcgdGltZSB1bnRpbCBmdWxseSBjaGFyZ2VkL2Rpc2NoYXJnZWQgYXMgd2VsbCBhcyBwZXJjZW50YWdlIG9mIGJhdHRlcnkgY2hhcmdlIGluIHRoZSBwYW5lbC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYXR0ZXJ5dGltZXBlcmNlbnRhZ2Vjb21wYWN0IiwKICAibmFtZSI6ICJCYXR0ZXJ5IFRpbWUgKFBlcmNlbnRhZ2UpIENvbXBhY3QiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYmF0dGVyeXRpbWVwZXJjZW50YWdlY29tcGFjdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2FHckxhbmQvZ25vbWUtc2hlbGwtYmF0dGVyeS10aW1lLXBlcmNlbnRhZ2UtY29tcGFjdCIsCiAgInV1aWQiOiAiYmF0dGVyeXRpbWVwZXJjZW50YWdlY29tcGFjdEBzYWdybGFuZC5kZSIsCiAgInZlcnNpb24iOiA1Cn0="}, "41": {"version": "5", "sha256": "1ybq8k2nv1ym6dr9lkimrpbi9fhs2pnrm27382wpfly7qq1nflg9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIHRoZSByZW1haW5pbmcgdGltZSB1bnRpbCBmdWxseSBjaGFyZ2VkL2Rpc2NoYXJnZWQgYXMgd2VsbCBhcyBwZXJjZW50YWdlIG9mIGJhdHRlcnkgY2hhcmdlIGluIHRoZSBwYW5lbC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYXR0ZXJ5dGltZXBlcmNlbnRhZ2Vjb21wYWN0IiwKICAibmFtZSI6ICJCYXR0ZXJ5IFRpbWUgKFBlcmNlbnRhZ2UpIENvbXBhY3QiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYmF0dGVyeXRpbWVwZXJjZW50YWdlY29tcGFjdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2FHckxhbmQvZ25vbWUtc2hlbGwtYmF0dGVyeS10aW1lLXBlcmNlbnRhZ2UtY29tcGFjdCIsCiAgInV1aWQiOiAiYmF0dGVyeXRpbWVwZXJjZW50YWdlY29tcGFjdEBzYWdybGFuZC5kZSIsCiAgInZlcnNpb24iOiA1Cn0="}}}
 , {"uuid": "executor@raujonas.github.io", "name": "Executor", "pname": "executor", "description": "Execute multiple shell commands periodically with separate intervals and display the output in gnome top bar.", "link": "https://extensions.gnome.org/extension/2932/executor/", "shell_version_map": {"38": {"version": "17", "sha256": "1g24qy5cai3kvl929mhr0hgqmknddbklncmjpj7fabr02fjsbprv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4ZWN1dGUgbXVsdGlwbGUgc2hlbGwgY29tbWFuZHMgcGVyaW9kaWNhbGx5IHdpdGggc2VwYXJhdGUgaW50ZXJ2YWxzIGFuZCBkaXNwbGF5IHRoZSBvdXRwdXQgaW4gZ25vbWUgdG9wIGJhci4iLAogICJuYW1lIjogIkV4ZWN1dG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwLjIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3JhdWpvbmFzL2V4ZWN1dG9yIiwKICAidXVpZCI6ICJleGVjdXRvckByYXVqb25hcy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}, "40": {"version": "17", "sha256": "1g24qy5cai3kvl929mhr0hgqmknddbklncmjpj7fabr02fjsbprv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4ZWN1dGUgbXVsdGlwbGUgc2hlbGwgY29tbWFuZHMgcGVyaW9kaWNhbGx5IHdpdGggc2VwYXJhdGUgaW50ZXJ2YWxzIGFuZCBkaXNwbGF5IHRoZSBvdXRwdXQgaW4gZ25vbWUgdG9wIGJhci4iLAogICJuYW1lIjogIkV4ZWN1dG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwLjIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3JhdWpvbmFzL2V4ZWN1dG9yIiwKICAidXVpZCI6ICJleGVjdXRvckByYXVqb25hcy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}, "41": {"version": "17", "sha256": "1g24qy5cai3kvl929mhr0hgqmknddbklncmjpj7fabr02fjsbprv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4ZWN1dGUgbXVsdGlwbGUgc2hlbGwgY29tbWFuZHMgcGVyaW9kaWNhbGx5IHdpdGggc2VwYXJhdGUgaW50ZXJ2YWxzIGFuZCBkaXNwbGF5IHRoZSBvdXRwdXQgaW4gZ25vbWUgdG9wIGJhci4iLAogICJuYW1lIjogIkV4ZWN1dG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwLjIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3JhdWpvbmFzL2V4ZWN1dG9yIiwKICAidXVpZCI6ICJleGVjdXRvckByYXVqb25hcy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}}}
-, {"uuid": "ControlBlurEffectOnLockScreen@pratap.fastmail.fm", "name": "Control Blur Effect On Lock Screen", "pname": "control-blur-effect-on-lock-screen", "description": "Control the Blur Effect On Lock Screen.", "link": "https://extensions.gnome.org/extension/2935/control-blur-effect-on-lock-screen/", "shell_version_map": {"38": {"version": "14", "sha256": "176qxx2zykzzjq2xf8sf1c83r1skaxa2mzmp51v8bq3vbbxp0wij", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdGhlIEJsdXIgRWZmZWN0IE9uIExvY2sgU2NyZWVuLiIsCiAgIm5hbWUiOiAiQ29udHJvbCBCbHVyIEVmZmVjdCBPbiBMb2NrIFNjcmVlbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BSQVRBUC1LVU1BUi9Db250cm9sX0JsdXJfRWZmZWN0X09uX0xvY2tfU2NyZWVuIiwKICAidXVpZCI6ICJDb250cm9sQmx1ckVmZmVjdE9uTG9ja1NjcmVlbkBwcmF0YXAuZmFzdG1haWwuZm0iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "40": {"version": "16", "sha256": "11nz4ik3qwp1mb4v309wvmxx8ih4d72f5j3wcnz3xwjav9z2c1m0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdGhlIEJsdXIgRWZmZWN0IE9uIExvY2sgU2NyZWVuLiIsCiAgIm5hbWUiOiAiQ29udHJvbCBCbHVyIEVmZmVjdCBPbiBMb2NrIFNjcmVlbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUFJBVEFQLUtVTUFSL0NvbnRyb2xfQmx1cl9FZmZlY3RfT25fTG9ja19TY3JlZW4iLAogICJ1dWlkIjogIkNvbnRyb2xCbHVyRWZmZWN0T25Mb2NrU2NyZWVuQHByYXRhcC5mYXN0bWFpbC5mbSIsCiAgInZlcnNpb24iOiAxNgp9"}, "41": {"version": "16", "sha256": "11nz4ik3qwp1mb4v309wvmxx8ih4d72f5j3wcnz3xwjav9z2c1m0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdGhlIEJsdXIgRWZmZWN0IE9uIExvY2sgU2NyZWVuLiIsCiAgIm5hbWUiOiAiQ29udHJvbCBCbHVyIEVmZmVjdCBPbiBMb2NrIFNjcmVlbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUFJBVEFQLUtVTUFSL0NvbnRyb2xfQmx1cl9FZmZlY3RfT25fTG9ja19TY3JlZW4iLAogICJ1dWlkIjogIkNvbnRyb2xCbHVyRWZmZWN0T25Mb2NrU2NyZWVuQHByYXRhcC5mYXN0bWFpbC5mbSIsCiAgInZlcnNpb24iOiAxNgp9"}}}
+, {"uuid": "ControlBlurEffectOnLockScreen@pratap.fastmail.fm", "name": "Control Blur Effect On Lock Screen", "pname": "control-blur-effect-on-lock-screen", "description": "Control the Blur Effect On Lock Screen.", "link": "https://extensions.gnome.org/extension/2935/control-blur-effect-on-lock-screen/", "shell_version_map": {"38": {"version": "14", "sha256": "176qxx2zykzzjq2xf8sf1c83r1skaxa2mzmp51v8bq3vbbxp0wij", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdGhlIEJsdXIgRWZmZWN0IE9uIExvY2sgU2NyZWVuLiIsCiAgIm5hbWUiOiAiQ29udHJvbCBCbHVyIEVmZmVjdCBPbiBMb2NrIFNjcmVlbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BSQVRBUC1LVU1BUi9Db250cm9sX0JsdXJfRWZmZWN0X09uX0xvY2tfU2NyZWVuIiwKICAidXVpZCI6ICJDb250cm9sQmx1ckVmZmVjdE9uTG9ja1NjcmVlbkBwcmF0YXAuZmFzdG1haWwuZm0iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "40": {"version": "17", "sha256": "1n8442n54hwjx1z4qww5mvb3w5v322d9zc78wm0kx378p4s3shsq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdGhlIEJsdXIgRWZmZWN0IE9uIExvY2sgU2NyZWVuLiIsCiAgIm5hbWUiOiAiQ29udHJvbCBCbHVyIEVmZmVjdCBPbiBMb2NrIFNjcmVlbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUFJBVEFQLUtVTUFSL0NvbnRyb2xfQmx1cl9FZmZlY3RfT25fTG9ja19TY3JlZW4iLAogICJ1dWlkIjogIkNvbnRyb2xCbHVyRWZmZWN0T25Mb2NrU2NyZWVuQHByYXRhcC5mYXN0bWFpbC5mbSIsCiAgInZlcnNpb24iOiAxNwp9"}, "41": {"version": "17", "sha256": "1n8442n54hwjx1z4qww5mvb3w5v322d9zc78wm0kx378p4s3shsq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdGhlIEJsdXIgRWZmZWN0IE9uIExvY2sgU2NyZWVuLiIsCiAgIm5hbWUiOiAiQ29udHJvbCBCbHVyIEVmZmVjdCBPbiBMb2NrIFNjcmVlbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUFJBVEFQLUtVTUFSL0NvbnRyb2xfQmx1cl9FZmZlY3RfT25fTG9ja19TY3JlZW4iLAogICJ1dWlkIjogIkNvbnRyb2xCbHVyRWZmZWN0T25Mb2NrU2NyZWVuQHByYXRhcC5mYXN0bWFpbC5mbSIsCiAgInZlcnNpb24iOiAxNwp9"}}}
 , {"uuid": "compiz-alike-windows-effect@hermes83.github.com", "name": "Compiz alike windows effect", "pname": "compiz-alike-windows-effect", "description": "Wobbly windows effect inspired by the Compiz ones\n\nNB\nIn case of update error please restart Gnome Shell (on Xorg press ALT+F2 then write r and press enter, on Wayland end the session and log in again)\n\n-----------------------------------\n ALTERNATIVE\n-----------------------------------\nalternative extension to obtain an effect more similar to the original:\nhttps://extensions.gnome.org/extension/3210/compiz-windows-effect/", "link": "https://extensions.gnome.org/extension/2950/compiz-alike-windows-effect/", "shell_version_map": {"38": {"version": "22", "sha256": "0zkc9lcirqg224m46jjz2vapfg4lg9x7s0h0kvv57rfmkhrxcgbg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvYmJseSB3aW5kb3dzIGVmZmVjdCBpbnNwaXJlZCBieSB0aGUgQ29tcGl6IG9uZXNcblxuTkJcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKVxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIEFMVEVSTkFUSVZFXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuYWx0ZXJuYXRpdmUgZXh0ZW5zaW9uIHRvIG9idGFpbiBhbiBlZmZlY3QgbW9yZSBzaW1pbGFyIHRvIHRoZSBvcmlnaW5hbDpcbmh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzMyMTAvY29tcGl6LXdpbmRvd3MtZWZmZWN0LyIsCiAgIm5hbWUiOiAiQ29tcGl6IGFsaWtlIHdpbmRvd3MgZWZmZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9jb21waXotYWxpa2Utd2luZG93cy1lZmZlY3QiLAogICJ1dWlkIjogImNvbXBpei1hbGlrZS13aW5kb3dzLWVmZmVjdEBoZXJtZXM4My5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIyCn0="}, "40": {"version": "22", "sha256": "0zkc9lcirqg224m46jjz2vapfg4lg9x7s0h0kvv57rfmkhrxcgbg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvYmJseSB3aW5kb3dzIGVmZmVjdCBpbnNwaXJlZCBieSB0aGUgQ29tcGl6IG9uZXNcblxuTkJcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKVxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIEFMVEVSTkFUSVZFXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuYWx0ZXJuYXRpdmUgZXh0ZW5zaW9uIHRvIG9idGFpbiBhbiBlZmZlY3QgbW9yZSBzaW1pbGFyIHRvIHRoZSBvcmlnaW5hbDpcbmh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzMyMTAvY29tcGl6LXdpbmRvd3MtZWZmZWN0LyIsCiAgIm5hbWUiOiAiQ29tcGl6IGFsaWtlIHdpbmRvd3MgZWZmZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9jb21waXotYWxpa2Utd2luZG93cy1lZmZlY3QiLAogICJ1dWlkIjogImNvbXBpei1hbGlrZS13aW5kb3dzLWVmZmVjdEBoZXJtZXM4My5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIyCn0="}, "41": {"version": "22", "sha256": "0zkc9lcirqg224m46jjz2vapfg4lg9x7s0h0kvv57rfmkhrxcgbg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvYmJseSB3aW5kb3dzIGVmZmVjdCBpbnNwaXJlZCBieSB0aGUgQ29tcGl6IG9uZXNcblxuTkJcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKVxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIEFMVEVSTkFUSVZFXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuYWx0ZXJuYXRpdmUgZXh0ZW5zaW9uIHRvIG9idGFpbiBhbiBlZmZlY3QgbW9yZSBzaW1pbGFyIHRvIHRoZSBvcmlnaW5hbDpcbmh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzMyMTAvY29tcGl6LXdpbmRvd3MtZWZmZWN0LyIsCiAgIm5hbWUiOiAiQ29tcGl6IGFsaWtlIHdpbmRvd3MgZWZmZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9jb21waXotYWxpa2Utd2luZG93cy1lZmZlY3QiLAogICJ1dWlkIjogImNvbXBpei1hbGlrZS13aW5kb3dzLWVmZmVjdEBoZXJtZXM4My5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIyCn0="}}}
 , {"uuid": "light-dict@tuberry.github.io", "name": "Light Dict", "pname": "light-dict", "description": "Lightweight extension for on-the-fly manipulation to primary selections, especially optimized for Dictionary lookups.\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/2959/light-dict/", "shell_version_map": {"38": {"version": "47", "sha256": "1l36l9qmcz7c6i81w5fv083bg01qsgz681c2lan8f87hqdipl4r7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IGV4dGVuc2lvbiBmb3Igb24tdGhlLWZseSBtYW5pcHVsYXRpb24gdG8gcHJpbWFyeSBzZWxlY3Rpb25zLCBlc3BlY2lhbGx5IG9wdGltaXplZCBmb3IgRGljdGlvbmFyeSBsb29rdXBzLlxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsaWdodC1kaWN0IiwKICAibmFtZSI6ICJMaWdodCBEaWN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmxpZ2h0LWRpY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2xpZ2h0LWRpY3QiLAogICJ1dWlkIjogImxpZ2h0LWRpY3RAdHViZXJyeS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNDcKfQ=="}, "40": {"version": "58", "sha256": "0x3rk3p2vlyd2n23jlmwqfc1akbbjfhyn9w1v44byw1nfc3b0n8z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IGV4dGVuc2lvbiBmb3Igb24tdGhlLWZseSBtYW5pcHVsYXRpb24gdG8gcHJpbWFyeSBzZWxlY3Rpb25zLCBlc3BlY2lhbGx5IG9wdGltaXplZCBmb3IgRGljdGlvbmFyeSBsb29rdXBzLlxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tbGlnaHQtZGljdCIsCiAgIm5hbWUiOiAiTGlnaHQgRGljdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5saWdodC1kaWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvbGlnaHQtZGljdCIsCiAgInV1aWQiOiAibGlnaHQtZGljdEB0dWJlcnJ5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA1OAp9"}, "41": {"version": "65", "sha256": "1hjaw62pxrpgismg6dhxqp04qhk1d4xkwlgzymmra7d428qjnxf2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IGV4dGVuc2lvbiBmb3Igb24tdGhlLWZseSBtYW5pcHVsYXRpb24gdG8gcHJpbWFyeSBzZWxlY3Rpb25zLCBlc3BlY2lhbGx5IG9wdGltaXplZCBmb3IgRGljdGlvbmFyeSBsb29rdXBzLlxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tbGlnaHQtZGljdCIsCiAgIm5hbWUiOiAiTGlnaHQgRGljdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5saWdodC1kaWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvbGlnaHQtZGljdCIsCiAgInV1aWQiOiAibGlnaHQtZGljdEB0dWJlcnJ5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA2NQp9"}}}
 , {"uuid": "InternetSpeedMeter@alshakib.dev", "name": "Internet Speed Meter", "pname": "internet-speed-meter", "description": "Simple and minimal internet speed meter extension for gnome shell", "link": "https://extensions.gnome.org/extension/2980/internet-speed-meter/", "shell_version_map": {"38": {"version": "9", "sha256": "1m8nlhk6zixbi3i081fcafdp07swfsrqjs2z81ghi7kj93hmj8vk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBhbmQgbWluaW1hbCBpbnRlcm5ldCBzcGVlZCBtZXRlciBleHRlbnNpb24gZm9yIGdub21lIHNoZWxsIiwKICAibmFtZSI6ICJJbnRlcm5ldCBTcGVlZCBNZXRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWxTaGFraWIvSW50ZXJuZXRTcGVlZE1ldGVyIiwKICAidXVpZCI6ICJJbnRlcm5ldFNwZWVkTWV0ZXJAYWxzaGFraWIuZGV2IiwKICAidmVyc2lvbiI6IDkKfQ=="}, "40": {"version": "9", "sha256": "1m8nlhk6zixbi3i081fcafdp07swfsrqjs2z81ghi7kj93hmj8vk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBhbmQgbWluaW1hbCBpbnRlcm5ldCBzcGVlZCBtZXRlciBleHRlbnNpb24gZm9yIGdub21lIHNoZWxsIiwKICAibmFtZSI6ICJJbnRlcm5ldCBTcGVlZCBNZXRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWxTaGFraWIvSW50ZXJuZXRTcGVlZE1ldGVyIiwKICAidXVpZCI6ICJJbnRlcm5ldFNwZWVkTWV0ZXJAYWxzaGFraWIuZGV2IiwKICAidmVyc2lvbiI6IDkKfQ=="}, "41": {"version": "9", "sha256": "1m8nlhk6zixbi3i081fcafdp07swfsrqjs2z81ghi7kj93hmj8vk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBhbmQgbWluaW1hbCBpbnRlcm5ldCBzcGVlZCBtZXRlciBleHRlbnNpb24gZm9yIGdub21lIHNoZWxsIiwKICAibmFtZSI6ICJJbnRlcm5ldCBTcGVlZCBNZXRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWxTaGFraWIvSW50ZXJuZXRTcGVlZE1ldGVyIiwKICAidXVpZCI6ICJJbnRlcm5ldFNwZWVkTWV0ZXJAYWxzaGFraWIuZGV2IiwKICAidmVyc2lvbiI6IDkKfQ=="}}}
@@ -313,7 +314,7 @@
 , {"uuid": "ssss@tu.berry", "name": "Simple Subscriber", "pname": "ss-subscriber", "description": "Simple shadowsocks subscriber (SSD only), yet another proxy switcher for GNOME Shell\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/3073/ss-subscriber/", "shell_version_map": {"38": {"version": "18", "sha256": "03gryl577559h2l1s3adi5gxa8ivp454p4lq7jng1db6smlpj95a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBzaGFkb3dzb2NrcyBzdWJzY3JpYmVyIChTU0Qgb25seSksIHlldCBhbm90aGVyIHByb3h5IHN3aXRjaGVyIGZvciBHTk9NRSBTaGVsbFxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzcy1zdWJzY3JpYmVyIiwKICAibmFtZSI6ICJTaW1wbGUgU3Vic2NyaWJlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zcy1zdWJzY3JpYmVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9zcy1zdWJzY3JpYmVyIiwKICAidXVpZCI6ICJzc3NzQHR1LmJlcnJ5IiwKICAidmVyc2lvbiI6IDE4Cn0="}, "40": {"version": "20", "sha256": "075d00xsbmr4qs554p2anddhkmgcx7xd4nn8prgmf4wpyfk87552", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBzaGFkb3dzb2NrcyBzdWJzY3JpYmVyIChTU0Qgb25seSksIHlldCBhbm90aGVyIHByb3h5IHN3aXRjaGVyIGZvciBHTk9NRSBTaGVsbFxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzcy1zdWJzY3JpYmVyIiwKICAibmFtZSI6ICJTaW1wbGUgU3Vic2NyaWJlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zcy1zdWJzY3JpYmVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvc3Mtc3Vic2NyaWJlciIsCiAgInV1aWQiOiAic3Nzc0B0dS5iZXJyeSIsCiAgInZlcnNpb24iOiAyMAp9"}, "41": {"version": "21", "sha256": "06ybzk62fbi88iqssl4pw0amsbcp09pnw99wxanh2jlvaakqgday", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBzaGFkb3dzb2NrcyBzdWJzY3JpYmVyIChTU0Qgb25seSksIHlldCBhbm90aGVyIHByb3h5IHN3aXRjaGVyIGZvciBHTk9NRSBTaGVsbFxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tc3Mtc3Vic2NyaWJlciIsCiAgIm5hbWUiOiAiU2ltcGxlIFN1YnNjcmliZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3Mtc3Vic2NyaWJlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L3NzLXN1YnNjcmliZXIiLAogICJ1dWlkIjogInNzc3NAdHUuYmVycnkiLAogICJ2ZXJzaW9uIjogMjEKfQ=="}}}
 , {"uuid": "extension-list@tu.berry", "name": "Extension List", "pname": "extension-list", "description": "Simple GNOME Shell extension manager in the top panel\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/3088/extension-list/", "shell_version_map": {"38": {"version": "25", "sha256": "0cwabswbb5p0z156488ag095h558hf541650vfnjgw4nas7v2ccx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBleHRlbnNpb24gbWFuYWdlciBpbiB0aGUgdG9wIHBhbmVsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImV4dGVuc2lvbi1saXN0IiwKICAibmFtZSI6ICJFeHRlbnNpb24gTGlzdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5leHRlbnNpb24tbGlzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvZXh0ZW5zaW9uLWxpc3QiLAogICJ1dWlkIjogImV4dGVuc2lvbi1saXN0QHR1LmJlcnJ5IiwKICAidmVyc2lvbiI6IDI1Cn0="}, "40": {"version": "27", "sha256": "0m13qzzbbx5rnq8a9xn09nvr3dy9zqkp8y9529y12250wyjafl1p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBleHRlbnNpb24gbWFuYWdlciBpbiB0aGUgdG9wIHBhbmVsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImV4dGVuc2lvbi1saXN0IiwKICAibmFtZSI6ICJFeHRlbnNpb24gTGlzdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5leHRlbnNpb24tbGlzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2V4dGVuc2lvbi1saXN0IiwKICAidXVpZCI6ICJleHRlbnNpb24tbGlzdEB0dS5iZXJyeSIsCiAgInZlcnNpb24iOiAyNwp9"}, "41": {"version": "29", "sha256": "1yl2b9phvrgsdpkwqjfqpaqi2xcj5bcd4zabqkrfwngqsg17s85j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBleHRlbnNpb24gbWFuYWdlciBpbiB0aGUgdG9wIHBhbmVsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1leHRlbnNpb24tbGlzdCIsCiAgIm5hbWUiOiAiRXh0ZW5zaW9uIExpc3QiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXh0ZW5zaW9uLWxpc3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9leHRlbnNpb24tbGlzdCIsCiAgInV1aWQiOiAiZXh0ZW5zaW9uLWxpc3RAdHUuYmVycnkiLAogICJ2ZXJzaW9uIjogMjkKfQ=="}}}
 , {"uuid": "MaximizeToEmptyWorkspace-extension@kaisersite.de", "name": "Maximize To Empty Workspace", "pname": "maximize-to-empty-workspace", "description": "New and maximized windows will be moved to empty workspaces.\nSupports multiple monitors.", "link": "https://extensions.gnome.org/extension/3100/maximize-to-empty-workspace/", "shell_version_map": {"38": {"version": "10", "sha256": "05gi4r8wq8bnb1b5476w5h737swg0rdkm7fq1g2l2c9hg0h9r007", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldyBhbmQgbWF4aW1pemVkIHdpbmRvd3Mgd2lsbCBiZSBtb3ZlZCB0byBlbXB0eSB3b3Jrc3BhY2VzLlxuU3VwcG9ydHMgbXVsdGlwbGUgbW9uaXRvcnMuIiwKICAibmFtZSI6ICJNYXhpbWl6ZSBUbyBFbXB0eSBXb3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2thaXNlcmFjbS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbWF4aW1pemUtdG8tZW1wdHktd29ya3NwYWNlIiwKICAidXVpZCI6ICJNYXhpbWl6ZVRvRW1wdHlXb3Jrc3BhY2UtZXh0ZW5zaW9uQGthaXNlcnNpdGUuZGUiLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "40": {"version": "10", "sha256": "05gi4r8wq8bnb1b5476w5h737swg0rdkm7fq1g2l2c9hg0h9r007", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldyBhbmQgbWF4aW1pemVkIHdpbmRvd3Mgd2lsbCBiZSBtb3ZlZCB0byBlbXB0eSB3b3Jrc3BhY2VzLlxuU3VwcG9ydHMgbXVsdGlwbGUgbW9uaXRvcnMuIiwKICAibmFtZSI6ICJNYXhpbWl6ZSBUbyBFbXB0eSBXb3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2thaXNlcmFjbS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbWF4aW1pemUtdG8tZW1wdHktd29ya3NwYWNlIiwKICAidXVpZCI6ICJNYXhpbWl6ZVRvRW1wdHlXb3Jrc3BhY2UtZXh0ZW5zaW9uQGthaXNlcnNpdGUuZGUiLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "41": {"version": "10", "sha256": "05gi4r8wq8bnb1b5476w5h737swg0rdkm7fq1g2l2c9hg0h9r007", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldyBhbmQgbWF4aW1pemVkIHdpbmRvd3Mgd2lsbCBiZSBtb3ZlZCB0byBlbXB0eSB3b3Jrc3BhY2VzLlxuU3VwcG9ydHMgbXVsdGlwbGUgbW9uaXRvcnMuIiwKICAibmFtZSI6ICJNYXhpbWl6ZSBUbyBFbXB0eSBXb3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2thaXNlcmFjbS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbWF4aW1pemUtdG8tZW1wdHktd29ya3NwYWNlIiwKICAidXVpZCI6ICJNYXhpbWl6ZVRvRW1wdHlXb3Jrc3BhY2UtZXh0ZW5zaW9uQGthaXNlcnNpdGUuZGUiLAogICJ2ZXJzaW9uIjogMTAKfQ=="}}}
-, {"uuid": "eye-extended@als.kz", "name": "Eye and Mouse Extended", "pname": "eye-extended", "description": "Adds an eye to the indicator bar that follows your cursor \nYou can also display the mouse indicator, perhaps it will help you with the problem of displaying the mouse cursor in Skype", "link": "https://extensions.gnome.org/extension/3139/eye-extended/", "shell_version_map": {"38": {"version": "8", "sha256": "0am93vkz74l70vavf8mlv8diga32xawvd5g79k8k7vwy15jg4zcj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gZXllIHRvIHRoZSBpbmRpY2F0b3IgYmFyIHRoYXQgZm9sbG93cyB5b3VyIGN1cnNvciBcbllvdSBjYW4gYWxzbyBkaXNwbGF5IHRoZSBtb3VzZSBpbmRpY2F0b3IsIHBlcmhhcHMgaXQgd2lsbCBoZWxwIHlvdSB3aXRoIHRoZSBwcm9ibGVtIG9mIGRpc3BsYXlpbmcgdGhlIG1vdXNlIGN1cnNvciBpbiBTa3lwZSIsCiAgImdldHRleHQtZG9tYWluIjogIkV5ZUV4dGVuZGVkIiwKICAibmFtZSI6ICJFeWUgYW5kIE1vdXNlIEV4dGVuZGVkIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImt6LmFscy5leWUtZXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYuMCIsCiAgICAiMy4zOC4wIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FsZXhleWxvdmNoaWtvdi9leWUtZXh0ZW5kZWQtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJleWUtZXh0ZW5kZWRAYWxzLmt6IiwKICAidmVyc2lvbiI6IDgKfQ=="}, "40": {"version": "8", "sha256": "0am93vkz74l70vavf8mlv8diga32xawvd5g79k8k7vwy15jg4zcj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gZXllIHRvIHRoZSBpbmRpY2F0b3IgYmFyIHRoYXQgZm9sbG93cyB5b3VyIGN1cnNvciBcbllvdSBjYW4gYWxzbyBkaXNwbGF5IHRoZSBtb3VzZSBpbmRpY2F0b3IsIHBlcmhhcHMgaXQgd2lsbCBoZWxwIHlvdSB3aXRoIHRoZSBwcm9ibGVtIG9mIGRpc3BsYXlpbmcgdGhlIG1vdXNlIGN1cnNvciBpbiBTa3lwZSIsCiAgImdldHRleHQtZG9tYWluIjogIkV5ZUV4dGVuZGVkIiwKICAibmFtZSI6ICJFeWUgYW5kIE1vdXNlIEV4dGVuZGVkIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImt6LmFscy5leWUtZXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYuMCIsCiAgICAiMy4zOC4wIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FsZXhleWxvdmNoaWtvdi9leWUtZXh0ZW5kZWQtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJleWUtZXh0ZW5kZWRAYWxzLmt6IiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
+, {"uuid": "eye-extended@als.kz", "name": "Eye and Mouse Extended", "pname": "eye-extended", "description": "Adds an eye to the indicator bar that follows your cursor \nYou can also display the mouse indicator, perhaps it will help you with the problem of displaying the mouse cursor in Skype", "link": "https://extensions.gnome.org/extension/3139/eye-extended/", "shell_version_map": {"38": {"version": "9", "sha256": "1y2bgk2kww0g3f1d93s1w15g5xihjbipq40wr08f41jr8l53v9ay", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gZXllIHRvIHRoZSBpbmRpY2F0b3IgYmFyIHRoYXQgZm9sbG93cyB5b3VyIGN1cnNvciBcbllvdSBjYW4gYWxzbyBkaXNwbGF5IHRoZSBtb3VzZSBpbmRpY2F0b3IsIHBlcmhhcHMgaXQgd2lsbCBoZWxwIHlvdSB3aXRoIHRoZSBwcm9ibGVtIG9mIGRpc3BsYXlpbmcgdGhlIG1vdXNlIGN1cnNvciBpbiBTa3lwZSIsCiAgImdldHRleHQtZG9tYWluIjogIkV5ZUV4dGVuZGVkIiwKICAibmFtZSI6ICJFeWUgYW5kIE1vdXNlIEV4dGVuZGVkIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImt6LmFscy5leWUtZXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYuMCIsCiAgICAiMy4zOC4wIiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGV4ZXlsb3ZjaGlrb3YvZXllLWV4dGVuZGVkLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZXllLWV4dGVuZGVkQGFscy5reiIsCiAgInZlcnNpb24iOiA5Cn0="}, "40": {"version": "9", "sha256": "1y2bgk2kww0g3f1d93s1w15g5xihjbipq40wr08f41jr8l53v9ay", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gZXllIHRvIHRoZSBpbmRpY2F0b3IgYmFyIHRoYXQgZm9sbG93cyB5b3VyIGN1cnNvciBcbllvdSBjYW4gYWxzbyBkaXNwbGF5IHRoZSBtb3VzZSBpbmRpY2F0b3IsIHBlcmhhcHMgaXQgd2lsbCBoZWxwIHlvdSB3aXRoIHRoZSBwcm9ibGVtIG9mIGRpc3BsYXlpbmcgdGhlIG1vdXNlIGN1cnNvciBpbiBTa3lwZSIsCiAgImdldHRleHQtZG9tYWluIjogIkV5ZUV4dGVuZGVkIiwKICAibmFtZSI6ICJFeWUgYW5kIE1vdXNlIEV4dGVuZGVkIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImt6LmFscy5leWUtZXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYuMCIsCiAgICAiMy4zOC4wIiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGV4ZXlsb3ZjaGlrb3YvZXllLWV4dGVuZGVkLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZXllLWV4dGVuZGVkQGFscy5reiIsCiAgInZlcnNpb24iOiA5Cn0="}, "41": {"version": "9", "sha256": "1y2bgk2kww0g3f1d93s1w15g5xihjbipq40wr08f41jr8l53v9ay", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gZXllIHRvIHRoZSBpbmRpY2F0b3IgYmFyIHRoYXQgZm9sbG93cyB5b3VyIGN1cnNvciBcbllvdSBjYW4gYWxzbyBkaXNwbGF5IHRoZSBtb3VzZSBpbmRpY2F0b3IsIHBlcmhhcHMgaXQgd2lsbCBoZWxwIHlvdSB3aXRoIHRoZSBwcm9ibGVtIG9mIGRpc3BsYXlpbmcgdGhlIG1vdXNlIGN1cnNvciBpbiBTa3lwZSIsCiAgImdldHRleHQtZG9tYWluIjogIkV5ZUV4dGVuZGVkIiwKICAibmFtZSI6ICJFeWUgYW5kIE1vdXNlIEV4dGVuZGVkIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImt6LmFscy5leWUtZXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYuMCIsCiAgICAiMy4zOC4wIiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGV4ZXlsb3ZjaGlrb3YvZXllLWV4dGVuZGVkLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZXllLWV4dGVuZGVkQGFscy5reiIsCiAgInZlcnNpb24iOiA5Cn0="}}}
 , {"uuid": "wireguard-indicator@gregos.me", "name": "Wireguard Indicator", "pname": "wireguard-indicator", "description": "Enable, disable, and view details of Wireguard.\nDeveloped by Gregos-Winus.", "link": "https://extensions.gnome.org/extension/3160/wireguard-indicator/", "shell_version_map": {"38": {"version": "3", "sha256": "07c3g7ynv95qs97fq2xyzn0xgg6nsjqrzn2f2ldpshdl31c76npf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSwgZGlzYWJsZSwgYW5kIHZpZXcgZGV0YWlscyBvZiBXaXJlZ3VhcmQuXG5EZXZlbG9wZWQgYnkgR3JlZ29zLVdpbnVzLiIsCiAgIm5hbWUiOiAiV2lyZWd1YXJkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAid2lyZWd1YXJkLWluZGljYXRvckBncmVnb3MubWUiLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "07c3g7ynv95qs97fq2xyzn0xgg6nsjqrzn2f2ldpshdl31c76npf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSwgZGlzYWJsZSwgYW5kIHZpZXcgZGV0YWlscyBvZiBXaXJlZ3VhcmQuXG5EZXZlbG9wZWQgYnkgR3JlZ29zLVdpbnVzLiIsCiAgIm5hbWUiOiAiV2lyZWd1YXJkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAid2lyZWd1YXJkLWluZGljYXRvckBncmVnb3MubWUiLAogICJ2ZXJzaW9uIjogMwp9"}}}
 , {"uuid": "blur-my-shell@aunetx", "name": "Blur my Shell", "pname": "blur-my-shell", "description": "Adds a blur look to different parts of the GNOME Shell, including the top panel, dash and overview.\n\nIMPORTANT:\nAfter updating the extension, PLEASE make sure to logout and re-login so that gnome-shell can reload the extension correctly. This is not a bug from Blur my Shell, but an unfortunate issue from gnome shell.\n\nYou can support my work by sponsoring me on:\n- github: https://github.com/sponsors/aunetx\n- ko-fi: https://ko-fi.com/aunetx", "link": "https://extensions.gnome.org/extension/3193/blur-my-shell/", "shell_version_map": {"38": {"version": "22", "sha256": "0nkjqb5fyza2ah0dmcdfh4f998zyv8c955k3dzvybvb4rmmyvm8y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5JTVBPUlRBTlQ6XG5BZnRlciB1cGRhdGluZyB0aGUgZXh0ZW5zaW9uLCBQTEVBU0UgbWFrZSBzdXJlIHRvIGxvZ291dCBhbmQgcmUtbG9naW4gc28gdGhhdCBnbm9tZS1zaGVsbCBjYW4gcmVsb2FkIHRoZSBleHRlbnNpb24gY29ycmVjdGx5LiBUaGlzIGlzIG5vdCBhIGJ1ZyBmcm9tIEJsdXIgbXkgU2hlbGwsIGJ1dCBhbiB1bmZvcnR1bmF0ZSBpc3N1ZSBmcm9tIGdub21lIHNoZWxsLlxuXG5Zb3UgY2FuIHN1cHBvcnQgbXkgd29yayBieSBzcG9uc29yaW5nIG1lIG9uOlxuLSBnaXRodWI6IGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hdW5ldHhcbi0ga28tZmk6IGh0dHBzOi8va28tZmkuY29tL2F1bmV0eCIsCiAgIm5hbWUiOiAiQmx1ciBteSBTaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2F1bmV0eC9nbm9tZS1zaGVsbC1leHRlbnNpb24tYmx1ci1teS1zaGVsbCIsCiAgInV1aWQiOiAiYmx1ci1teS1zaGVsbEBhdW5ldHgiLAogICJ2ZXJzaW9uIjogMjIKfQ=="}, "40": {"version": "25", "sha256": "1i7qlmfrq5hbd9jc4mj05i592fr5kcn0h4qappr2123saqdwnbl5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5JTVBPUlRBTlQ6XG5BZnRlciB1cGRhdGluZyB0aGUgZXh0ZW5zaW9uLCBQTEVBU0UgbWFrZSBzdXJlIHRvIGxvZ291dCBhbmQgcmUtbG9naW4gc28gdGhhdCBnbm9tZS1zaGVsbCBjYW4gcmVsb2FkIHRoZSBleHRlbnNpb24gY29ycmVjdGx5LiBUaGlzIGlzIG5vdCBhIGJ1ZyBmcm9tIEJsdXIgbXkgU2hlbGwsIGJ1dCBhbiB1bmZvcnR1bmF0ZSBpc3N1ZSBmcm9tIGdub21lIHNoZWxsLlxuXG5Zb3UgY2FuIHN1cHBvcnQgbXkgd29yayBieSBzcG9uc29yaW5nIG1lIG9uOlxuLSBnaXRodWI6IGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hdW5ldHhcbi0ga28tZmk6IGh0dHBzOi8va28tZmkuY29tL2F1bmV0eCIsCiAgIm5hbWUiOiAiQmx1ciBteSBTaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXVuZXR4L2dub21lLXNoZWxsLWV4dGVuc2lvbi1ibHVyLW15LXNoZWxsIiwKICAidXVpZCI6ICJibHVyLW15LXNoZWxsQGF1bmV0eCIsCiAgInZlcnNpb24iOiAyNQp9"}, "41": {"version": "25", "sha256": "1i7qlmfrq5hbd9jc4mj05i592fr5kcn0h4qappr2123saqdwnbl5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5JTVBPUlRBTlQ6XG5BZnRlciB1cGRhdGluZyB0aGUgZXh0ZW5zaW9uLCBQTEVBU0UgbWFrZSBzdXJlIHRvIGxvZ291dCBhbmQgcmUtbG9naW4gc28gdGhhdCBnbm9tZS1zaGVsbCBjYW4gcmVsb2FkIHRoZSBleHRlbnNpb24gY29ycmVjdGx5LiBUaGlzIGlzIG5vdCBhIGJ1ZyBmcm9tIEJsdXIgbXkgU2hlbGwsIGJ1dCBhbiB1bmZvcnR1bmF0ZSBpc3N1ZSBmcm9tIGdub21lIHNoZWxsLlxuXG5Zb3UgY2FuIHN1cHBvcnQgbXkgd29yayBieSBzcG9uc29yaW5nIG1lIG9uOlxuLSBnaXRodWI6IGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hdW5ldHhcbi0ga28tZmk6IGh0dHBzOi8va28tZmkuY29tL2F1bmV0eCIsCiAgIm5hbWUiOiAiQmx1ciBteSBTaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXVuZXR4L2dub21lLXNoZWxsLWV4dGVuc2lvbi1ibHVyLW15LXNoZWxsIiwKICAidXVpZCI6ICJibHVyLW15LXNoZWxsQGF1bmV0eCIsCiAgInZlcnNpb24iOiAyNQp9"}}}
 , {"uuid": "escape-overview@raelgc", "name": "ESCape Overview", "pname": "escape-overview", "description": "Close the Overview with a single ESC press when searchbox is empty.\n\nThe default gnome-shell behaviour is, during first ESC press, clean the searchbox, then second ESC press get back to Activities overview and then third ESC press will finally close the overview.", "link": "https://extensions.gnome.org/extension/3204/escape-overview/", "shell_version_map": {"38": {"version": "4", "sha256": "1yzba3d57s57wvviyr1gm1k5l15lnm7krhdcq6gv8gd5c80l3f02", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHRoZSBPdmVydmlldyB3aXRoIGEgc2luZ2xlIEVTQyBwcmVzcyB3aGVuIHNlYXJjaGJveCBpcyBlbXB0eS5cblxuVGhlIGRlZmF1bHQgZ25vbWUtc2hlbGwgYmVoYXZpb3VyIGlzLCBkdXJpbmcgZmlyc3QgRVNDIHByZXNzLCBjbGVhbiB0aGUgc2VhcmNoYm94LCB0aGVuIHNlY29uZCBFU0MgcHJlc3MgZ2V0IGJhY2sgdG8gQWN0aXZpdGllcyBvdmVydmlldyBhbmQgdGhlbiB0aGlyZCBFU0MgcHJlc3Mgd2lsbCBmaW5hbGx5IGNsb3NlIHRoZSBvdmVydmlldy4iLAogICJuYW1lIjogIkVTQ2FwZSBPdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmFlbGdjL2VzY2FwZS1vdmVydmlldyIsCiAgInV1aWQiOiAiZXNjYXBlLW92ZXJ2aWV3QHJhZWxnYyIsCiAgInZlcnNpb24iOiA0Cn0="}, "40": {"version": "4", "sha256": "1yzba3d57s57wvviyr1gm1k5l15lnm7krhdcq6gv8gd5c80l3f02", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHRoZSBPdmVydmlldyB3aXRoIGEgc2luZ2xlIEVTQyBwcmVzcyB3aGVuIHNlYXJjaGJveCBpcyBlbXB0eS5cblxuVGhlIGRlZmF1bHQgZ25vbWUtc2hlbGwgYmVoYXZpb3VyIGlzLCBkdXJpbmcgZmlyc3QgRVNDIHByZXNzLCBjbGVhbiB0aGUgc2VhcmNoYm94LCB0aGVuIHNlY29uZCBFU0MgcHJlc3MgZ2V0IGJhY2sgdG8gQWN0aXZpdGllcyBvdmVydmlldyBhbmQgdGhlbiB0aGlyZCBFU0MgcHJlc3Mgd2lsbCBmaW5hbGx5IGNsb3NlIHRoZSBvdmVydmlldy4iLAogICJuYW1lIjogIkVTQ2FwZSBPdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmFlbGdjL2VzY2FwZS1vdmVydmlldyIsCiAgInV1aWQiOiAiZXNjYXBlLW92ZXJ2aWV3QHJhZWxnYyIsCiAgInZlcnNpb24iOiA0Cn0="}, "41": {"version": "4", "sha256": "1yzba3d57s57wvviyr1gm1k5l15lnm7krhdcq6gv8gd5c80l3f02", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHRoZSBPdmVydmlldyB3aXRoIGEgc2luZ2xlIEVTQyBwcmVzcyB3aGVuIHNlYXJjaGJveCBpcyBlbXB0eS5cblxuVGhlIGRlZmF1bHQgZ25vbWUtc2hlbGwgYmVoYXZpb3VyIGlzLCBkdXJpbmcgZmlyc3QgRVNDIHByZXNzLCBjbGVhbiB0aGUgc2VhcmNoYm94LCB0aGVuIHNlY29uZCBFU0MgcHJlc3MgZ2V0IGJhY2sgdG8gQWN0aXZpdGllcyBvdmVydmlldyBhbmQgdGhlbiB0aGlyZCBFU0MgcHJlc3Mgd2lsbCBmaW5hbGx5IGNsb3NlIHRoZSBvdmVydmlldy4iLAogICJuYW1lIjogIkVTQ2FwZSBPdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmFlbGdjL2VzY2FwZS1vdmVydmlldyIsCiAgInV1aWQiOiAiZXNjYXBlLW92ZXJ2aWV3QHJhZWxnYyIsCiAgInZlcnNpb24iOiA0Cn0="}}}
@@ -322,18 +323,19 @@
 , {"uuid": "unmaximize_double_click@gonza.gmail.com", "name": "Unmaximize Double Click Panel", "pname": "unmaximize-double-click-panel", "description": "Unmaximize the current window on double click on the top panel. You can also maximize horizontally and vertically with middle and right click.", "link": "https://extensions.gnome.org/extension/3228/unmaximize-double-click-panel/", "shell_version_map": {"38": {"version": "3", "sha256": "17xpxzxqx6zgr484xxa9sz78f90mmdq7ihgnhfmlmscsz10v5h3z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVubWF4aW1pemUgdGhlIGN1cnJlbnQgd2luZG93IG9uIGRvdWJsZSBjbGljayBvbiB0aGUgdG9wIHBhbmVsLiBZb3UgY2FuIGFsc28gbWF4aW1pemUgaG9yaXpvbnRhbGx5IGFuZCB2ZXJ0aWNhbGx5IHdpdGggbWlkZGxlIGFuZCByaWdodCBjbGljay4iLAogICJuYW1lIjogIlVubWF4aW1pemUgRG91YmxlIENsaWNrIFBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbnphYXJjci91bm1heGltaXplLWdub21lLWV4dCIsCiAgInV1aWQiOiAidW5tYXhpbWl6ZV9kb3VibGVfY2xpY2tAZ29uemEuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDMKfQ=="}, "40": {"version": "3", "sha256": "17xpxzxqx6zgr484xxa9sz78f90mmdq7ihgnhfmlmscsz10v5h3z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVubWF4aW1pemUgdGhlIGN1cnJlbnQgd2luZG93IG9uIGRvdWJsZSBjbGljayBvbiB0aGUgdG9wIHBhbmVsLiBZb3UgY2FuIGFsc28gbWF4aW1pemUgaG9yaXpvbnRhbGx5IGFuZCB2ZXJ0aWNhbGx5IHdpdGggbWlkZGxlIGFuZCByaWdodCBjbGljay4iLAogICJuYW1lIjogIlVubWF4aW1pemUgRG91YmxlIENsaWNrIFBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbnphYXJjci91bm1heGltaXplLWdub21lLWV4dCIsCiAgInV1aWQiOiAidW5tYXhpbWl6ZV9kb3VibGVfY2xpY2tAZ29uemEuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
 , {"uuid": "unity-like-appswitcher@gonza.com", "name": "Unity-like App Switcher", "pname": "unity-like-app-switcher", "description": "A bigger and more colourfull AppSwitcher", "link": "https://extensions.gnome.org/extension/3231/unity-like-app-switcher/", "shell_version_map": {"38": {"version": "6", "sha256": "0s5mza4x2hk6k95hm7xsyxhariffhb896676fhh5qriphxsrif2q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgYmlnZ2VyIGFuZCBtb3JlIGNvbG91cmZ1bGwgQXBwU3dpdGNoZXIiLAogICJuYW1lIjogIlVuaXR5LWxpa2UgQXBwIFN3aXRjaGVyIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJnb256YSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy51bml0eS13aW5kb3ctc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ29uemFhcmNyL3VuaXR5LWxpa2Utc3dpdGNoZXItZ25vbWUtZXh0IiwKICAidXVpZCI6ICJ1bml0eS1saWtlLWFwcHN3aXRjaGVyQGdvbnphLmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}, "40": {"version": "6", "sha256": "0s5mza4x2hk6k95hm7xsyxhariffhb896676fhh5qriphxsrif2q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgYmlnZ2VyIGFuZCBtb3JlIGNvbG91cmZ1bGwgQXBwU3dpdGNoZXIiLAogICJuYW1lIjogIlVuaXR5LWxpa2UgQXBwIFN3aXRjaGVyIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJnb256YSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy51bml0eS13aW5kb3ctc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ29uemFhcmNyL3VuaXR5LWxpa2Utc3dpdGNoZXItZ25vbWUtZXh0IiwKICAidXVpZCI6ICJ1bml0eS1saWtlLWFwcHN3aXRjaGVyQGdvbnphLmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}}}
 , {"uuid": "add-to-desktop@tommimon.github.com", "name": "Add to Desktop", "pname": "add-to-desktop", "description": "An easy way to create desktop app shortcut in gnome", "link": "https://extensions.gnome.org/extension/3240/add-to-desktop/", "shell_version_map": {"38": {"version": "5", "sha256": "0kchr5daz3s4q18s6aphfyb50wglmlgmjnh3i9ka6d219r0srh64", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGVhc3kgd2F5IHRvIGNyZWF0ZSBkZXNrdG9wIGFwcCBzaG9ydGN1dCBpbiBnbm9tZSIsCiAgIm5hbWUiOiAiQWRkIHRvIERlc2t0b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLmJldGEiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVG9tbWltb24vYWRkLXRvLWRlc2t0b3AiLAogICJ1dWlkIjogImFkZC10by1kZXNrdG9wQHRvbW1pbW9uLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "5", "sha256": "0kchr5daz3s4q18s6aphfyb50wglmlgmjnh3i9ka6d219r0srh64", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGVhc3kgd2F5IHRvIGNyZWF0ZSBkZXNrdG9wIGFwcCBzaG9ydGN1dCBpbiBnbm9tZSIsCiAgIm5hbWUiOiAiQWRkIHRvIERlc2t0b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLmJldGEiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVG9tbWltb24vYWRkLXRvLWRlc2t0b3AiLAogICJ1dWlkIjogImFkZC10by1kZXNrdG9wQHRvbW1pbW9uLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}, "41": {"version": "6", "sha256": "04vk49629c9fhvix04h8r3mbnqyncvyzdkbm7bh3wyjhghnczbps", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGVhc3kgd2F5IHRvIGNyZWF0ZSBkZXNrdG9wIGFwcCBzaG9ydGN1dCBpbiBnbm9tZSIsCiAgIm5hbWUiOiAiQWRkIHRvIERlc2t0b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVG9tbWltb24vYWRkLXRvLWRlc2t0b3AiLAogICJ1dWlkIjogImFkZC10by1kZXNrdG9wQHRvbW1pbW9uLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}}}
+, {"uuid": "wifi-power-management-toggle@rthery", "name": "Wi-Fi Power Management Toggle", "pname": "wi-fi-power-management-toggle", "description": "Add a toggle to limit Wi-Fi power consumption (when supported by the card) in Gnome System Menu.", "link": "https://extensions.gnome.org/extension/3258/wi-fi-power-management-toggle/", "shell_version_map": {"38": {"version": "2", "sha256": "009r1pswkmisfw0zghk2cawx4qw6av5yldbnw7fcla13qpyj90zh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHRvZ2dsZSB0byBsaW1pdCBXaS1GaSBwb3dlciBjb25zdW1wdGlvbiAod2hlbiBzdXBwb3J0ZWQgYnkgdGhlIGNhcmQpIGluIEdub21lIFN5c3RlbSBNZW51LiIsCiAgIm5hbWUiOiAiV2ktRmkgUG93ZXIgTWFuYWdlbWVudCBUb2dnbGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3J0aGVyeS9nbm9tZS1zaGVsbC1leHRlbnNpb24td2lmaS1wb3dlci1tYW5hZ2VtZW50LXRvZ2dsZSIsCiAgInV1aWQiOiAid2lmaS1wb3dlci1tYW5hZ2VtZW50LXRvZ2dsZUBydGhlcnkiLAogICJ2ZXJzaW9uIjogMgp9"}, "40": {"version": "2", "sha256": "009r1pswkmisfw0zghk2cawx4qw6av5yldbnw7fcla13qpyj90zh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHRvZ2dsZSB0byBsaW1pdCBXaS1GaSBwb3dlciBjb25zdW1wdGlvbiAod2hlbiBzdXBwb3J0ZWQgYnkgdGhlIGNhcmQpIGluIEdub21lIFN5c3RlbSBNZW51LiIsCiAgIm5hbWUiOiAiV2ktRmkgUG93ZXIgTWFuYWdlbWVudCBUb2dnbGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3J0aGVyeS9nbm9tZS1zaGVsbC1leHRlbnNpb24td2lmaS1wb3dlci1tYW5hZ2VtZW50LXRvZ2dsZSIsCiAgInV1aWQiOiAid2lmaS1wb3dlci1tYW5hZ2VtZW50LXRvZ2dsZUBydGhlcnkiLAogICJ2ZXJzaW9uIjogMgp9"}, "41": {"version": "2", "sha256": "009r1pswkmisfw0zghk2cawx4qw6av5yldbnw7fcla13qpyj90zh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHRvZ2dsZSB0byBsaW1pdCBXaS1GaSBwb3dlciBjb25zdW1wdGlvbiAod2hlbiBzdXBwb3J0ZWQgYnkgdGhlIGNhcmQpIGluIEdub21lIFN5c3RlbSBNZW51LiIsCiAgIm5hbWUiOiAiV2ktRmkgUG93ZXIgTWFuYWdlbWVudCBUb2dnbGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3J0aGVyeS9nbm9tZS1zaGVsbC1leHRlbnNpb24td2lmaS1wb3dlci1tYW5hZ2VtZW50LXRvZ2dsZSIsCiAgInV1aWQiOiAid2lmaS1wb3dlci1tYW5hZ2VtZW50LXRvZ2dsZUBydGhlcnkiLAogICJ2ZXJzaW9uIjogMgp9"}}}
 , {"uuid": "touchpad_window_switcher@gonza.com", "name": "Touchpad Window Switcher", "pname": "tocuhpad-window-switcher", "description": "3 fingers window switcher. To make it work on Xorg check the service on github.\n\nUp - down: toggle between overview and show desktop (Needs Super+D shorcut to be set on Xorg. Set it with `gsettings set org.gnome.desktop.wm.keybindings show-desktop '<Super>d'`).\n\nYou can also change windows by going to the overview (up) and moving to the left and right, and choosing the window with down. The overview is modified so it’s shown in chronological order.\n", "link": "https://extensions.gnome.org/extension/3294/tocuhpad-window-switcher/", "shell_version_map": {"38": {"version": "8", "sha256": "1x016p30z0pci3qlhpmfqrsgy0vwcfxqladny66ppbb32qisbkac", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIjMgZmluZ2VycyB3aW5kb3cgc3dpdGNoZXIuIFRvIG1ha2UgaXQgd29yayBvbiBYb3JnIGNoZWNrIHRoZSBzZXJ2aWNlIG9uIGdpdGh1Yi5cblxuVXAgLSBkb3duOiB0b2dnbGUgYmV0d2VlbiBvdmVydmlldyBhbmQgc2hvdyBkZXNrdG9wIChOZWVkcyBTdXBlcitEIHNob3JjdXQgdG8gYmUgc2V0IG9uIFhvcmcuIFNldCBpdCB3aXRoIGBnc2V0dGluZ3Mgc2V0IG9yZy5nbm9tZS5kZXNrdG9wLndtLmtleWJpbmRpbmdzIHNob3ctZGVza3RvcCAnPFN1cGVyPmQnYCkuXG5cbllvdSBjYW4gYWxzbyBjaGFuZ2Ugd2luZG93cyBieSBnb2luZyB0byB0aGUgb3ZlcnZpZXcgKHVwKSBhbmQgbW92aW5nIHRvIHRoZSBsZWZ0IGFuZCByaWdodCwgYW5kIGNob29zaW5nIHRoZSB3aW5kb3cgd2l0aCBkb3duLiBUaGUgb3ZlcnZpZXcgaXMgbW9kaWZpZWQgc28gaXRcdTIwMTlzIHNob3duIGluIGNocm9ub2xvZ2ljYWwgb3JkZXIuXG4iLAogICJuYW1lIjogIlRvdWNocGFkIFdpbmRvdyBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbnphYXJjci90b3VjaHBhZC13aW5kb3ctc3dpdGNoZXItZ25vbWUtZXh0IiwKICAidXVpZCI6ICJ0b3VjaHBhZF93aW5kb3dfc3dpdGNoZXJAZ29uemEuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
 , {"uuid": "gnome-shell-duckduckgo-search-provider@keithcirkel.co.uk", "name": "DuckDuckGo Search Provider", "pname": "duckduckgo-search-provider", "description": "Add DuckDuckGo search suggestions to Gnome Shell Search", "link": "https://extensions.gnome.org/extension/3306/duckduckgo-search-provider/", "shell_version_map": {"38": {"version": "3", "sha256": "1id10vxz5dfq53wbiz8spqkr6d9qvs9dsykxpff29an96lzybj1w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBEdWNrRHVja0dvIHNlYXJjaCBzdWdnZXN0aW9ucyB0byBHbm9tZSBTaGVsbCBTZWFyY2giLAogICJuYW1lIjogIkR1Y2tEdWNrR28gU2VhcmNoIFByb3ZpZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2VpdGhhbXVzL2dub21lLXNoZWxsLWR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC1kdWNrZHVja2dvLXNlYXJjaC1wcm92aWRlckBrZWl0aGNpcmtlbC5jby51ayIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "3", "sha256": "1id10vxz5dfq53wbiz8spqkr6d9qvs9dsykxpff29an96lzybj1w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBEdWNrRHVja0dvIHNlYXJjaCBzdWdnZXN0aW9ucyB0byBHbm9tZSBTaGVsbCBTZWFyY2giLAogICJuYW1lIjogIkR1Y2tEdWNrR28gU2VhcmNoIFByb3ZpZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2VpdGhhbXVzL2dub21lLXNoZWxsLWR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC1kdWNrZHVja2dvLXNlYXJjaC1wcm92aWRlckBrZWl0aGNpcmtlbC5jby51ayIsCiAgInZlcnNpb24iOiAzCn0="}}}
 , {"uuid": "translate-indicator@athenstaedt.net", "name": "Translate Indicator", "pname": "translate-indicator", "description": "Translate extension for Gnome-Shell - based on translate-shell, inspired by Tudmotu's clipboard-indicator and gufoe's text-translator", "link": "https://extensions.gnome.org/extension/3318/translate-indicator/", "shell_version_map": {"38": {"version": "3", "sha256": "04c3hjbcbn8y9d94swmc3qiv63sjynn71jnwp08sgqa79nrn4cyg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBleHRlbnNpb24gZm9yIEdub21lLVNoZWxsIC0gYmFzZWQgb24gdHJhbnNsYXRlLXNoZWxsLCBpbnNwaXJlZCBieSBUdWRtb3R1J3MgY2xpcGJvYXJkLWluZGljYXRvciBhbmQgZ3Vmb2UncyB0ZXh0LXRyYW5zbGF0b3IiLAogICJuYW1lIjogIlRyYW5zbGF0ZSBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXZlbnV6L2dub21lLXRyYW5zbGF0ZS1pbmRpY2F0b3IiLAogICJ1dWlkIjogInRyYW5zbGF0ZS1pbmRpY2F0b3JAYXRoZW5zdGFlZHQubmV0IiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
 , {"uuid": "material-shell@papyelgringo", "name": "Material Shell", "pname": "material-shell", "description": "A modern desktop interface for Linux - packaged as an extension for GNOME Shell. Improve your user experience and get rid of the anarchy of traditional desktop workflows. Designed to simplify navigation and reduce the need to manipulate windows in order to improve productivity. It's meant to be 100% predictable and bring the benefits of tools coveted by professionals to everyone.", "link": "https://extensions.gnome.org/extension/3357/material-shell/", "shell_version_map": {"38": {"version": "12", "sha256": "1rjybqlgbjmflg21cm7js2gjzvdhw14lpzncpzwf18rh4mp2adnr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImJpbmRpbmdzIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1hdGVyaWFsc2hlbGwuYmluZGluZ3MiLAogICJkZXNjcmlwdGlvbiI6ICJBIG1vZGVybiBkZXNrdG9wIGludGVyZmFjZSBmb3IgTGludXggLSBwYWNrYWdlZCBhcyBhbiBleHRlbnNpb24gZm9yIEdOT01FIFNoZWxsLiBJbXByb3ZlIHlvdXIgdXNlciBleHBlcmllbmNlIGFuZCBnZXQgcmlkIG9mIHRoZSBhbmFyY2h5IG9mIHRyYWRpdGlvbmFsIGRlc2t0b3Agd29ya2Zsb3dzLiBEZXNpZ25lZCB0byBzaW1wbGlmeSBuYXZpZ2F0aW9uIGFuZCByZWR1Y2UgdGhlIG5lZWQgdG8gbWFuaXB1bGF0ZSB3aW5kb3dzIGluIG9yZGVyIHRvIGltcHJvdmUgcHJvZHVjdGl2aXR5LiBJdCdzIG1lYW50IHRvIGJlIDEwMCUgcHJlZGljdGFibGUgYW5kIGJyaW5nIHRoZSBiZW5lZml0cyBvZiB0b29scyBjb3ZldGVkIGJ5IHByb2Zlc3Npb25hbHMgdG8gZXZlcnlvbmUuIiwKICAibGF5b3V0cyI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tYXRlcmlhbHNoZWxsLmxheW91dHMiLAogICJuYW1lIjogIk1hdGVyaWFsIFNoZWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInRoZW1lIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1hdGVyaWFsc2hlbGwudGhlbWUiLAogICJ0d2Vha3MiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubWF0ZXJpYWxzaGVsbC50d2Vha3MiLAogICJ1cmwiOiAiaHR0cHM6Ly9tYXRlcmlhbC1zaGVsbC5jb20iLAogICJ1dWlkIjogIm1hdGVyaWFsLXNoZWxsQHBhcHllbGdyaW5nbyIsCiAgInZlcnNpb24iOiAxMgp9"}, "40": {"version": "17", "sha256": "19zniqwksrfxcdw2byqhi8px0bzb28qljzzl0wl2cb8jnm517g6b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImJpbmRpbmdzIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1hdGVyaWFsc2hlbGwuYmluZGluZ3MiLAogICJkZXNjcmlwdGlvbiI6ICJBIG1vZGVybiBkZXNrdG9wIGludGVyZmFjZSBmb3IgTGludXggLSBwYWNrYWdlZCBhcyBhbiBleHRlbnNpb24gZm9yIEdOT01FIFNoZWxsLiBJbXByb3ZlIHlvdXIgdXNlciBleHBlcmllbmNlIGFuZCBnZXQgcmlkIG9mIHRoZSBhbmFyY2h5IG9mIHRyYWRpdGlvbmFsIGRlc2t0b3Agd29ya2Zsb3dzLiBEZXNpZ25lZCB0byBzaW1wbGlmeSBuYXZpZ2F0aW9uIGFuZCByZWR1Y2UgdGhlIG5lZWQgdG8gbWFuaXB1bGF0ZSB3aW5kb3dzIGluIG9yZGVyIHRvIGltcHJvdmUgcHJvZHVjdGl2aXR5LiBJdCdzIG1lYW50IHRvIGJlIDEwMCUgcHJlZGljdGFibGUgYW5kIGJyaW5nIHRoZSBiZW5lZml0cyBvZiB0b29scyBjb3ZldGVkIGJ5IHByb2Zlc3Npb25hbHMgdG8gZXZlcnlvbmUuIiwKICAibGF5b3V0cyI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tYXRlcmlhbHNoZWxsLmxheW91dHMiLAogICJuYW1lIjogIk1hdGVyaWFsIFNoZWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidGhlbWUiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubWF0ZXJpYWxzaGVsbC50aGVtZSIsCiAgInR3ZWFrcyI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tYXRlcmlhbHNoZWxsLnR3ZWFrcyIsCiAgInVybCI6ICJodHRwczovL21hdGVyaWFsLXNoZWxsLmNvbSIsCiAgInV1aWQiOiAibWF0ZXJpYWwtc2hlbGxAcGFweWVsZ3JpbmdvIiwKICAidmVyc2lvbiI6IDE3Cn0="}, "41": {"version": "17", "sha256": "19zniqwksrfxcdw2byqhi8px0bzb28qljzzl0wl2cb8jnm517g6b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImJpbmRpbmdzIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1hdGVyaWFsc2hlbGwuYmluZGluZ3MiLAogICJkZXNjcmlwdGlvbiI6ICJBIG1vZGVybiBkZXNrdG9wIGludGVyZmFjZSBmb3IgTGludXggLSBwYWNrYWdlZCBhcyBhbiBleHRlbnNpb24gZm9yIEdOT01FIFNoZWxsLiBJbXByb3ZlIHlvdXIgdXNlciBleHBlcmllbmNlIGFuZCBnZXQgcmlkIG9mIHRoZSBhbmFyY2h5IG9mIHRyYWRpdGlvbmFsIGRlc2t0b3Agd29ya2Zsb3dzLiBEZXNpZ25lZCB0byBzaW1wbGlmeSBuYXZpZ2F0aW9uIGFuZCByZWR1Y2UgdGhlIG5lZWQgdG8gbWFuaXB1bGF0ZSB3aW5kb3dzIGluIG9yZGVyIHRvIGltcHJvdmUgcHJvZHVjdGl2aXR5LiBJdCdzIG1lYW50IHRvIGJlIDEwMCUgcHJlZGljdGFibGUgYW5kIGJyaW5nIHRoZSBiZW5lZml0cyBvZiB0b29scyBjb3ZldGVkIGJ5IHByb2Zlc3Npb25hbHMgdG8gZXZlcnlvbmUuIiwKICAibGF5b3V0cyI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tYXRlcmlhbHNoZWxsLmxheW91dHMiLAogICJuYW1lIjogIk1hdGVyaWFsIFNoZWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidGhlbWUiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubWF0ZXJpYWxzaGVsbC50aGVtZSIsCiAgInR3ZWFrcyI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tYXRlcmlhbHNoZWxsLnR3ZWFrcyIsCiAgInVybCI6ICJodHRwczovL21hdGVyaWFsLXNoZWxsLmNvbSIsCiAgInV1aWQiOiAibWF0ZXJpYWwtc2hlbGxAcGFweWVsZ3JpbmdvIiwKICAidmVyc2lvbiI6IDE3Cn0="}}}
-, {"uuid": "proxyprofiles@massamany.github.com", "name": "Proxy Profiles", "pname": "proxy-profiles", "description": "Swich easily between several proxy profiles.", "link": "https://extensions.gnome.org/extension/3379/proxy-profiles/", "shell_version_map": {"38": {"version": "4", "sha256": "0zf77wc66k1hmq8praw2635kkfy90cmlp6phfxpy8rzw3002nvyi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aWNoIGVhc2lseSBiZXR3ZWVuIHNldmVyYWwgcHJveHkgcHJvZmlsZXMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicHJveHlwcm9maWxlcyIsCiAgIm5hbWUiOiAiUHJveHkgUHJvZmlsZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLjUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXNzYW1hbnkvcHJveHlwcm9maWxlcyIsCiAgInV1aWQiOiAicHJveHlwcm9maWxlc0BtYXNzYW1hbnkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}, "40": {"version": "4", "sha256": "0zf77wc66k1hmq8praw2635kkfy90cmlp6phfxpy8rzw3002nvyi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aWNoIGVhc2lseSBiZXR3ZWVuIHNldmVyYWwgcHJveHkgcHJvZmlsZXMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicHJveHlwcm9maWxlcyIsCiAgIm5hbWUiOiAiUHJveHkgUHJvZmlsZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLjUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXNzYW1hbnkvcHJveHlwcm9maWxlcyIsCiAgInV1aWQiOiAicHJveHlwcm9maWxlc0BtYXNzYW1hbnkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}}}
+, {"uuid": "proxyprofiles@massamany.github.com", "name": "Proxy Profiles", "pname": "proxy-profiles", "description": "Swich easily between several proxy profiles.", "link": "https://extensions.gnome.org/extension/3379/proxy-profiles/", "shell_version_map": {"38": {"version": "5", "sha256": "1b2mabrvpkadxc6v5fczamh2hqh7va2990k10awxy18c0vm3p5kw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aWNoIGVhc2lseSBiZXR3ZWVuIHNldmVyYWwgcHJveHkgcHJvZmlsZXMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicHJveHlwcm9maWxlcyIsCiAgIm5hbWUiOiAiUHJveHkgUHJvZmlsZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFzc2FtYW55L3Byb3h5cHJvZmlsZXMiLAogICJ1dWlkIjogInByb3h5cHJvZmlsZXNAbWFzc2FtYW55LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "5", "sha256": "1b2mabrvpkadxc6v5fczamh2hqh7va2990k10awxy18c0vm3p5kw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aWNoIGVhc2lseSBiZXR3ZWVuIHNldmVyYWwgcHJveHkgcHJvZmlsZXMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicHJveHlwcm9maWxlcyIsCiAgIm5hbWUiOiAiUHJveHkgUHJvZmlsZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFzc2FtYW55L3Byb3h5cHJvZmlsZXMiLAogICJ1dWlkIjogInByb3h5cHJvZmlsZXNAbWFzc2FtYW55LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}}}
 , {"uuid": "galaxy-buds-battery@pemmoura", "name": "Galaxy Buds Battery", "pname": "galaxy-buds-battery", "description": "Galaxy Buds battery indicator.", "link": "https://extensions.gnome.org/extension/3383/galaxy-buds-battery/", "shell_version_map": {"38": {"version": "6", "sha256": "1f25mc5idqaw3v9b2xffiij9y0pcrl8msz85p8cz2x5l2r3sc7wm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdhbGF4eSBCdWRzIGJhdHRlcnkgaW5kaWNhdG9yLiIsCiAgIm5hbWUiOiAiR2FsYXh5IEJ1ZHMgQmF0dGVyeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BlbW1vdXJhL2dhbGF4eWJ1ZHMtZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJnYWxheHktYnVkcy1iYXR0ZXJ5QHBlbW1vdXJhIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
 , {"uuid": "color-picker@tuberry", "name": "Color Picker", "pname": "color-picker", "description": "Simple color picker for gnome shell\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/3396/color-picker/", "shell_version_map": {"38": {"version": "20", "sha256": "1ss4r8dpa7smxbyz41rw3wl1gy20bvy89xdvwfz6zfhv3db5vl86", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBjb2xvciBwaWNrZXIgZm9yIGdub21lIHNoZWxsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImNvbG9yLXBpY2tlciIsCiAgIm5hbWUiOiAiQ29sb3IgUGlja2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNvbG9yLXBpY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvY29sb3ItcGlja2VyIiwKICAidXVpZCI6ICJjb2xvci1waWNrZXJAdHViZXJyeSIsCiAgInZlcnNpb24iOiAyMAp9"}, "40": {"version": "25", "sha256": "0lx4bs7yfqkphb5cwmakl6xjf14q89m0yn70a882drakfhzgnagw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBjb2xvciBwaWNrZXIgZm9yIGdub21lIHNoZWxsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImNvbG9yLXBpY2tlciIsCiAgIm5hbWUiOiAiQ29sb3IgUGlja2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNvbG9yLXBpY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2NvbG9yLXBpY2tlciIsCiAgInV1aWQiOiAiY29sb3ItcGlja2VyQHR1YmVycnkiLAogICJ2ZXJzaW9uIjogMjUKfQ=="}, "41": {"version": "27", "sha256": "1scc0cgdzrg9rmpr090myrsxhfgp03aqld9jh4grqbfza6lrz4jd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBjb2xvciBwaWNrZXIgZm9yIGdub21lIHNoZWxsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1jb2xvci1waWNrZXIiLAogICJuYW1lIjogIkNvbG9yIFBpY2tlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jb2xvci1waWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9jb2xvci1waWNrZXIiLAogICJ1dWlkIjogImNvbG9yLXBpY2tlckB0dWJlcnJ5IiwKICAidmVyc2lvbiI6IDI3Cn0="}}}
 , {"uuid": "yaru-remix-theme-toggle@muqtxdir.me", "name": "Yaru remix theme toggle", "pname": "yaru-remix-theme-toggle", "description": "Switches GTK3, Gnome-shell, cursor and icon themes to Yaru-remix variants", "link": "https://extensions.gnome.org/extension/3402/yaru-remix-theme-toggle/", "shell_version_map": {"38": {"version": "2", "sha256": "04dh163dshjnq3fa1y5kbkgl94q4cifvffq6i2pr4zd1v7d4zrf6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvcnMiOiBbCiAgICAibXVxdGFkaXI1NTU1QGdtYWlsLmNvbSIKICBdLAogICJkZXNjcmlwdGlvbiI6ICJTd2l0Y2hlcyBHVEszLCBHbm9tZS1zaGVsbCwgY3Vyc29yIGFuZCBpY29uIHRoZW1lcyB0byBZYXJ1LXJlbWl4IHZhcmlhbnRzIiwKICAibmFtZSI6ICJZYXJ1IHJlbWl4IHRoZW1lIHRvZ2dsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL011cXR4ZGlyL3lhcnUtcmVtaXgtdGhlbWUtdG9nZ2xlIiwKICAidXVpZCI6ICJ5YXJ1LXJlbWl4LXRoZW1lLXRvZ2dsZUBtdXF0eGRpci5tZSIsCiAgInZlcnNpb24iOiAyCn0="}}}
 , {"uuid": "ascii_emoji_buckets@HarshKhandeparkar", "name": "ASCII Emoji Buckets", "pname": "ascii-emoji-buckets", "description": "Buckets of ASCII emojis for your messaging pleasure. A fork of Emoji Buckets.", "link": "https://extensions.gnome.org/extension/3408/ascii-emoji-buckets/", "shell_version_map": {"38": {"version": "9", "sha256": "1srqsjzcywywlhapaca41v4pc99w503m5532g6cc6qwz9f2r4w5h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJ1Y2tldHMgb2YgQVNDSUkgZW1vamlzIGZvciB5b3VyIG1lc3NhZ2luZyBwbGVhc3VyZS4gQSBmb3JrIG9mIEVtb2ppIEJ1Y2tldHMuIiwKICAibmFtZSI6ICJBU0NJSSBFbW9qaSBCdWNrZXRzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFzY2lpLWVtb2ppLWJ1Y2tldHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjMuMzguMSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0hhcnNoS2hhbmRlcGFya2FyL2dub21lLWFzY2lpLWVtb2ppLWJ1Y2tldHMiLAogICJ1dWlkIjogImFzY2lpX2Vtb2ppX2J1Y2tldHNASGFyc2hLaGFuZGVwYXJrYXIiLAogICJ2ZXJzaW9uIjogOQp9"}}}
 , {"uuid": "user-stylesheet@tomaszgasior.pl", "name": "User style sheet & font", "pname": "user-stylesheet-font", "description": "Load custom style sheet from ~/.config/gnome-shell/gnome-shell.css. Use GTK font family and font size from GNOME Tweaks in GNOME Shell.", "link": "https://extensions.gnome.org/extension/3414/user-stylesheet-font/", "shell_version_map": {"38": {"version": "4", "sha256": "1ibmhj1ixw063r7p8fwnanf4k21k8vxmll78ydqia5gdwkv79i8a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgY3VzdG9tIHN0eWxlIHNoZWV0IGZyb20gfi8uY29uZmlnL2dub21lLXNoZWxsL2dub21lLXNoZWxsLmNzcy4gVXNlIEdUSyBmb250IGZhbWlseSBhbmQgZm9udCBzaXplIGZyb20gR05PTUUgVHdlYWtzIGluIEdOT01FIFNoZWxsLiIsCiAgIm5hbWUiOiAiVXNlciBzdHlsZSBzaGVldCAmIGZvbnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1RvbWFzekdhc2lvci9nbm9tZS1zaGVsbC11c2VyLXN0eWxlc2hlZXQtYW5kLWZvbnQiLAogICJ1dWlkIjogInVzZXItc3R5bGVzaGVldEB0b21hc3pnYXNpb3IucGwiLAogICJ2ZXJzaW9uIjogNAp9"}, "40": {"version": "4", "sha256": "1ibmhj1ixw063r7p8fwnanf4k21k8vxmll78ydqia5gdwkv79i8a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgY3VzdG9tIHN0eWxlIHNoZWV0IGZyb20gfi8uY29uZmlnL2dub21lLXNoZWxsL2dub21lLXNoZWxsLmNzcy4gVXNlIEdUSyBmb250IGZhbWlseSBhbmQgZm9udCBzaXplIGZyb20gR05PTUUgVHdlYWtzIGluIEdOT01FIFNoZWxsLiIsCiAgIm5hbWUiOiAiVXNlciBzdHlsZSBzaGVldCAmIGZvbnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1RvbWFzekdhc2lvci9nbm9tZS1zaGVsbC11c2VyLXN0eWxlc2hlZXQtYW5kLWZvbnQiLAogICJ1dWlkIjogInVzZXItc3R5bGVzaGVldEB0b21hc3pnYXNpb3IucGwiLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "1ibmhj1ixw063r7p8fwnanf4k21k8vxmll78ydqia5gdwkv79i8a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgY3VzdG9tIHN0eWxlIHNoZWV0IGZyb20gfi8uY29uZmlnL2dub21lLXNoZWxsL2dub21lLXNoZWxsLmNzcy4gVXNlIEdUSyBmb250IGZhbWlseSBhbmQgZm9udCBzaXplIGZyb20gR05PTUUgVHdlYWtzIGluIEdOT01FIFNoZWxsLiIsCiAgIm5hbWUiOiAiVXNlciBzdHlsZSBzaGVldCAmIGZvbnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1RvbWFzekdhc2lvci9nbm9tZS1zaGVsbC11c2VyLXN0eWxlc2hlZXQtYW5kLWZvbnQiLAogICJ1dWlkIjogInVzZXItc3R5bGVzaGVldEB0b21hc3pnYXNpb3IucGwiLAogICJ2ZXJzaW9uIjogNAp9"}}}
 , {"uuid": "wg-indicator@dpf12110.gmail.com", "name": "WG Indicator", "pname": "wg-indicator", "description": "A status indicator for Wireguard connections.", "link": "https://extensions.gnome.org/extension/3418/wg-indicator/", "shell_version_map": {"40": {"version": "13", "sha256": "126n9gbvh1yshbvx74af01f7jyrjr4p0299x9ki171d1f40djrvs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc3RhdHVzIGluZGljYXRvciBmb3IgV2lyZWd1YXJkIGNvbm5lY3Rpb25zLiIsCiAgIm5hbWUiOiAiV0cgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIyLjEiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N5bmMxMjExL3dnLWluZGljYXRvciIsCiAgInV1aWQiOiAid2ctaW5kaWNhdG9yQGRwZjEyMTEwLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"}, "41": {"version": "13", "sha256": "126n9gbvh1yshbvx74af01f7jyrjr4p0299x9ki171d1f40djrvs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc3RhdHVzIGluZGljYXRvciBmb3IgV2lyZWd1YXJkIGNvbm5lY3Rpb25zLiIsCiAgIm5hbWUiOiAiV0cgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIyLjEiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N5bmMxMjExL3dnLWluZGljYXRvciIsCiAgInV1aWQiOiAid2ctaW5kaWNhdG9yQGRwZjEyMTEwLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"}}}
-, {"uuid": "flypie@schneegans.github.com", "name": "Fly-Pie", "pname": "fly-pie", "description": "A marking menu which can be used to launch applications, simulate hotkeys, open URLs and much more.", "link": "https://extensions.gnome.org/extension/3433/fly-pie/", "shell_version_map": {"38": {"version": "11", "sha256": "18549qj68fvsqpny6cll0x698n3ydffxw14m1jw613pdzwsspfhw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgbWFya2luZyBtZW51IHdoaWNoIGNhbiBiZSB1c2VkIHRvIGxhdW5jaCBhcHBsaWNhdGlvbnMsIHNpbXVsYXRlIGhvdGtleXMsIG9wZW4gVVJMcyBhbmQgbXVjaCBtb3JlLiIsCiAgImdldHRleHQtZG9tYWluIjogImZseXBpZSIsCiAgIm5hbWUiOiAiRmx5LVBpZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mbHlwaWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NjaG5lZWdhbnMvRmx5LVBpZSIsCiAgInV1aWQiOiAiZmx5cGllQHNjaG5lZWdhbnMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMQp9"}, "40": {"version": "11", "sha256": "18549qj68fvsqpny6cll0x698n3ydffxw14m1jw613pdzwsspfhw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgbWFya2luZyBtZW51IHdoaWNoIGNhbiBiZSB1c2VkIHRvIGxhdW5jaCBhcHBsaWNhdGlvbnMsIHNpbXVsYXRlIGhvdGtleXMsIG9wZW4gVVJMcyBhbmQgbXVjaCBtb3JlLiIsCiAgImdldHRleHQtZG9tYWluIjogImZseXBpZSIsCiAgIm5hbWUiOiAiRmx5LVBpZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mbHlwaWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NjaG5lZWdhbnMvRmx5LVBpZSIsCiAgInV1aWQiOiAiZmx5cGllQHNjaG5lZWdhbnMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMQp9"}, "41": {"version": "11", "sha256": "18549qj68fvsqpny6cll0x698n3ydffxw14m1jw613pdzwsspfhw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgbWFya2luZyBtZW51IHdoaWNoIGNhbiBiZSB1c2VkIHRvIGxhdW5jaCBhcHBsaWNhdGlvbnMsIHNpbXVsYXRlIGhvdGtleXMsIG9wZW4gVVJMcyBhbmQgbXVjaCBtb3JlLiIsCiAgImdldHRleHQtZG9tYWluIjogImZseXBpZSIsCiAgIm5hbWUiOiAiRmx5LVBpZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mbHlwaWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NjaG5lZWdhbnMvRmx5LVBpZSIsCiAgInV1aWQiOiAiZmx5cGllQHNjaG5lZWdhbnMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMQp9"}}}
+, {"uuid": "flypie@schneegans.github.com", "name": "Fly-Pie", "pname": "fly-pie", "description": "A marking menu which can be used to launch applications, simulate hotkeys, open URLs and much more.", "link": "https://extensions.gnome.org/extension/3433/fly-pie/", "shell_version_map": {"38": {"version": "12", "sha256": "0cafi61r07818jl9p65z36170nv2720g6vnwajr3xshw2qz7gwz0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgbWFya2luZyBtZW51IHdoaWNoIGNhbiBiZSB1c2VkIHRvIGxhdW5jaCBhcHBsaWNhdGlvbnMsIHNpbXVsYXRlIGhvdGtleXMsIG9wZW4gVVJMcyBhbmQgbXVjaCBtb3JlLiIsCiAgImdldHRleHQtZG9tYWluIjogImZseXBpZSIsCiAgIm5hbWUiOiAiRmx5LVBpZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mbHlwaWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NjaG5lZWdhbnMvRmx5LVBpZSIsCiAgInV1aWQiOiAiZmx5cGllQHNjaG5lZWdhbnMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMgp9"}, "40": {"version": "12", "sha256": "0cafi61r07818jl9p65z36170nv2720g6vnwajr3xshw2qz7gwz0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgbWFya2luZyBtZW51IHdoaWNoIGNhbiBiZSB1c2VkIHRvIGxhdW5jaCBhcHBsaWNhdGlvbnMsIHNpbXVsYXRlIGhvdGtleXMsIG9wZW4gVVJMcyBhbmQgbXVjaCBtb3JlLiIsCiAgImdldHRleHQtZG9tYWluIjogImZseXBpZSIsCiAgIm5hbWUiOiAiRmx5LVBpZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mbHlwaWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NjaG5lZWdhbnMvRmx5LVBpZSIsCiAgInV1aWQiOiAiZmx5cGllQHNjaG5lZWdhbnMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMgp9"}, "41": {"version": "12", "sha256": "0cafi61r07818jl9p65z36170nv2720g6vnwajr3xshw2qz7gwz0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgbWFya2luZyBtZW51IHdoaWNoIGNhbiBiZSB1c2VkIHRvIGxhdW5jaCBhcHBsaWNhdGlvbnMsIHNpbXVsYXRlIGhvdGtleXMsIG9wZW4gVVJMcyBhbmQgbXVjaCBtb3JlLiIsCiAgImdldHRleHQtZG9tYWluIjogImZseXBpZSIsCiAgIm5hbWUiOiAiRmx5LVBpZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mbHlwaWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NjaG5lZWdhbnMvRmx5LVBpZSIsCiAgInV1aWQiOiAiZmx5cGllQHNjaG5lZWdhbnMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMgp9"}}}
 , {"uuid": "jiggle@jeffchannell.com", "name": "Jiggle", "pname": "jiggle", "description": "Jiggle is a Gnome Shell extension that highlights the cursor position when the mouse is moved rapidly.", "link": "https://extensions.gnome.org/extension/3438/jiggle/", "shell_version_map": {"38": {"version": "8", "sha256": "0f5zwvcqz648sn11nl49r0ki6zy5c2hp4imgba0dlc02fags7pxz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkppZ2dsZSBpcyBhIEdub21lIFNoZWxsIGV4dGVuc2lvbiB0aGF0IGhpZ2hsaWdodHMgdGhlIGN1cnNvciBwb3NpdGlvbiB3aGVuIHRoZSBtb3VzZSBpcyBtb3ZlZCByYXBpZGx5LiIsCiAgIm5hbWUiOiAiSmlnZ2xlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2LjMiLAogICAgIjMuMzguMSIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2plZmZjaGFubmVsbC9qaWdnbGUiLAogICJ1dWlkIjogImppZ2dsZUBqZWZmY2hhbm5lbGwuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="}, "40": {"version": "8", "sha256": "0f5zwvcqz648sn11nl49r0ki6zy5c2hp4imgba0dlc02fags7pxz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkppZ2dsZSBpcyBhIEdub21lIFNoZWxsIGV4dGVuc2lvbiB0aGF0IGhpZ2hsaWdodHMgdGhlIGN1cnNvciBwb3NpdGlvbiB3aGVuIHRoZSBtb3VzZSBpcyBtb3ZlZCByYXBpZGx5LiIsCiAgIm5hbWUiOiAiSmlnZ2xlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2LjMiLAogICAgIjMuMzguMSIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2plZmZjaGFubmVsbC9qaWdnbGUiLAogICJ1dWlkIjogImppZ2dsZUBqZWZmY2hhbm5lbGwuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
 , {"uuid": "showtime-horizontal@xenlism.github.io", "name": "Showtime Horizontal - Desktop Widget", "pname": "showtime-horizontal", "description": "Horizontal Style Date &amp; Clock Widget base on Budgie Desktop Widget", "link": "https://extensions.gnome.org/extension/3442/showtime-horizontal/", "shell_version_map": {"38": {"version": "5", "sha256": "1rdf1alxfyi29wnz2bzm20j9k5q8sn3a6d4si841cjbhmvqdcqhj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhvcml6b250YWwgU3R5bGUgRGF0ZSAmYW1wOyBDbG9jayBXaWRnZXQgYmFzZSBvbiBCdWRnaWUgRGVza3RvcCBXaWRnZXQiLAogICJleHRlbnNpb24taWQiOiAic2hvd3RpbWUtaG9yaXpvbnRhbCIsCiAgIm5hbWUiOiAiU2hvd3RpbWUgSG9yaXpvbnRhbCAtIERlc2t0b3AgV2lkZ2V0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNob3d0aW1lLWhvcml6b250YWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS94ZW5saXNtL3Nob3d0aW1lIiwKICAidXVpZCI6ICJzaG93dGltZS1ob3Jpem9udGFsQHhlbmxpc20uZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "40": {"version": "6", "sha256": "1zy7lkkmcjxkc30hys98s0xlmi93cyc6jz6qx7zfv1v7w03iw3ld", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhvcml6b250YWwgU3R5bGUgRGF0ZSAmYW1wOyBDbG9jayBXaWRnZXQgYmFzZSBvbiBCdWRnaWUgRGVza3RvcCBXaWRnZXQiLAogICJleHRlbnNpb24taWQiOiAic2hvd3RpbWUtaG9yaXpvbnRhbCIsCiAgIm5hbWUiOiAiU2hvd3RpbWUgSG9yaXpvbnRhbCAtIERlc2t0b3AgV2lkZ2V0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNob3d0aW1lLWhvcml6b250YWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veGVubGlzbS9zaG93dGltZSIsCiAgInV1aWQiOiAic2hvd3RpbWUtaG9yaXpvbnRhbEB4ZW5saXNtLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA2Cn0="}}}
 , {"uuid": "display-switcher@iyadk.com", "name": "Display Switcher 2", "pname": "display-switcher", "description": "This extension allows you to toggle between display modes quickly using Super + I.  You can switch between Extended, Primary, Clone, and Secondary Only modes quickly.  Selecting Extended mode multiple times will flip your secondary monitor's relative position to the primary (to the left or right of it).  This extension was originally developed by Lucas Diedrich - https://extensions.gnome.org/extension/1030/display-switcher/ and has been adapted to support Gnome Shell's v3.36.", "link": "https://extensions.gnome.org/extension/3459/display-switcher/", "shell_version_map": {"38": {"version": "2", "sha256": "13vb68xfmcx525yk2vgfny6xvi06nzv103an5zab90hvmj6ggzlj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFsbG93cyB5b3UgdG8gdG9nZ2xlIGJldHdlZW4gZGlzcGxheSBtb2RlcyBxdWlja2x5IHVzaW5nIFN1cGVyICsgSS4gIFlvdSBjYW4gc3dpdGNoIGJldHdlZW4gRXh0ZW5kZWQsIFByaW1hcnksIENsb25lLCBhbmQgU2Vjb25kYXJ5IE9ubHkgbW9kZXMgcXVpY2tseS4gIFNlbGVjdGluZyBFeHRlbmRlZCBtb2RlIG11bHRpcGxlIHRpbWVzIHdpbGwgZmxpcCB5b3VyIHNlY29uZGFyeSBtb25pdG9yJ3MgcmVsYXRpdmUgcG9zaXRpb24gdG8gdGhlIHByaW1hcnkgKHRvIHRoZSBsZWZ0IG9yIHJpZ2h0IG9mIGl0KS4gIFRoaXMgZXh0ZW5zaW9uIHdhcyBvcmlnaW5hbGx5IGRldmVsb3BlZCBieSBMdWNhcyBEaWVkcmljaCAtIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzEwMzAvZGlzcGxheS1zd2l0Y2hlci8gYW5kIGhhcyBiZWVuIGFkYXB0ZWQgdG8gc3VwcG9ydCBHbm9tZSBTaGVsbCdzIHYzLjM2LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1kaXNwbGF5LXN3aXRjaGVyIiwKICAibmFtZSI6ICJEaXNwbGF5IFN3aXRjaGVyIDIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiTHVjYXMgRGllZHJpY2giLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGlzcGxheS1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2l5YWRrYW5kYWxhZnQvZ25vbWUtZGlzcGxheS1zd2l0Y2hlciIsCiAgInV1aWQiOiAiZGlzcGxheS1zd2l0Y2hlckBpeWFkay5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}}}
@@ -369,7 +371,7 @@
 , {"uuid": "netspeedsimplified@prateekmedia.extension", "name": "Net speed Simplified", "pname": "net-speed-simplified", "description": "A Net Speed extension With Loads of Customization. Fork of simplenetspeed \n \nWhat's new\n☞ Add Use System Color Scheme option \n☞ Update Preferences logic \n☞ Filter more devices for net speed indicator \n\nFull CHANGELOG can be found on github releases page \n\nFeatures \n1. Clean UI \n2. Adjustable Refresh rate \n3. Preferences to manage extension \n4. Vertical Alignment Support \n5. Two Icon sets for Indicators \n\nFeature Highlights for Preferences \n1. Lock Mouse Actions option \n2. Advance Position options to pinpoint where to place the indicator on the Panel. \n3. Refresh time option by which you can change refresh rate value between 1.0 sec to 10.0 sec. \n4. Show Upload First option to show upload speed first \n5. Color Customizations for speed indicators \n6. Hide when Disconnected option \n7. Use Shorten Units option \n8. Limit Unit option and more... \n\nModes \n- Total net speed in b/s, kb/s, ... \n- Total net speed in B/s, KB/s, ... \n- Up & down speed in b/s, kb/s, ... \n- Up & down speed in B/s, KB/s, ... \n- Total downloads in B, KB, ... (Right click to reset counter) \n\nMouse Events \n- Left click to change modes \n- Right click(in 1-4 modes): Toggle the visibility of total loaded. \n- Right click(in 5th mode): Reset total downloaded. \n- Right Click(Four consecutive times): Toggle through horizontal/vertical alignment. \n- Middle click: Cycle through the font sizes.", "link": "https://extensions.gnome.org/extension/3724/net-speed-simplified/", "shell_version_map": {"38": {"version": "33", "sha256": "146p9vbwdp1d9h36jsvi6gkyklig06ic6gswln5cn5rck3w6m7bd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTmV0IFNwZWVkIGV4dGVuc2lvbiBXaXRoIExvYWRzIG9mIEN1c3RvbWl6YXRpb24uIEZvcmsgb2Ygc2ltcGxlbmV0c3BlZWQgXG4gXG5XaGF0J3MgbmV3XG5cdTI2MWUgQWRkIFVzZSBTeXN0ZW0gQ29sb3IgU2NoZW1lIG9wdGlvbiBcblx1MjYxZSBVcGRhdGUgUHJlZmVyZW5jZXMgbG9naWMgXG5cdTI2MWUgRmlsdGVyIG1vcmUgZGV2aWNlcyBmb3IgbmV0IHNwZWVkIGluZGljYXRvciBcblxuRnVsbCBDSEFOR0VMT0cgY2FuIGJlIGZvdW5kIG9uIGdpdGh1YiByZWxlYXNlcyBwYWdlIFxuXG5GZWF0dXJlcyBcbjEuIENsZWFuIFVJIFxuMi4gQWRqdXN0YWJsZSBSZWZyZXNoIHJhdGUgXG4zLiBQcmVmZXJlbmNlcyB0byBtYW5hZ2UgZXh0ZW5zaW9uIFxuNC4gVmVydGljYWwgQWxpZ25tZW50IFN1cHBvcnQgXG41LiBUd28gSWNvbiBzZXRzIGZvciBJbmRpY2F0b3JzIFxuXG5GZWF0dXJlIEhpZ2hsaWdodHMgZm9yIFByZWZlcmVuY2VzIFxuMS4gTG9jayBNb3VzZSBBY3Rpb25zIG9wdGlvbiBcbjIuIEFkdmFuY2UgUG9zaXRpb24gb3B0aW9ucyB0byBwaW5wb2ludCB3aGVyZSB0byBwbGFjZSB0aGUgaW5kaWNhdG9yIG9uIHRoZSBQYW5lbC4gXG4zLiBSZWZyZXNoIHRpbWUgb3B0aW9uIGJ5IHdoaWNoIHlvdSBjYW4gY2hhbmdlIHJlZnJlc2ggcmF0ZSB2YWx1ZSBiZXR3ZWVuIDEuMCBzZWMgdG8gMTAuMCBzZWMuIFxuNC4gU2hvdyBVcGxvYWQgRmlyc3Qgb3B0aW9uIHRvIHNob3cgdXBsb2FkIHNwZWVkIGZpcnN0IFxuNS4gQ29sb3IgQ3VzdG9taXphdGlvbnMgZm9yIHNwZWVkIGluZGljYXRvcnMgXG42LiBIaWRlIHdoZW4gRGlzY29ubmVjdGVkIG9wdGlvbiBcbjcuIFVzZSBTaG9ydGVuIFVuaXRzIG9wdGlvbiBcbjguIExpbWl0IFVuaXQgb3B0aW9uIGFuZCBtb3JlLi4uIFxuXG5Nb2RlcyBcbi0gVG90YWwgbmV0IHNwZWVkIGluIGIvcywga2IvcywgLi4uIFxuLSBUb3RhbCBuZXQgc3BlZWQgaW4gQi9zLCBLQi9zLCAuLi4gXG4tIFVwICYgZG93biBzcGVlZCBpbiBiL3MsIGtiL3MsIC4uLiBcbi0gVXAgJiBkb3duIHNwZWVkIGluIEIvcywgS0IvcywgLi4uIFxuLSBUb3RhbCBkb3dubG9hZHMgaW4gQiwgS0IsIC4uLiAoUmlnaHQgY2xpY2sgdG8gcmVzZXQgY291bnRlcikgXG5cbk1vdXNlIEV2ZW50cyBcbi0gTGVmdCBjbGljayB0byBjaGFuZ2UgbW9kZXMgXG4tIFJpZ2h0IGNsaWNrKGluIDEtNCBtb2Rlcyk6IFRvZ2dsZSB0aGUgdmlzaWJpbGl0eSBvZiB0b3RhbCBsb2FkZWQuIFxuLSBSaWdodCBjbGljayhpbiA1dGggbW9kZSk6IFJlc2V0IHRvdGFsIGRvd25sb2FkZWQuIFxuLSBSaWdodCBDbGljayhGb3VyIGNvbnNlY3V0aXZlIHRpbWVzKTogVG9nZ2xlIHRocm91Z2ggaG9yaXpvbnRhbC92ZXJ0aWNhbCBhbGlnbm1lbnQuIFxuLSBNaWRkbGUgY2xpY2s6IEN5Y2xlIHRocm91Z2ggdGhlIGZvbnQgc2l6ZXMuIiwKICAibmFtZSI6ICJOZXQgc3BlZWQgU2ltcGxpZmllZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcHJhdGVla21lZGlhL25ldHNwZWVkc2ltcGxpZmllZCIsCiAgInV1aWQiOiAibmV0c3BlZWRzaW1wbGlmaWVkQHByYXRlZWttZWRpYS5leHRlbnNpb24iLAogICJ2ZXJzaW9uIjogMzMKfQ=="}, "40": {"version": "33", "sha256": "146p9vbwdp1d9h36jsvi6gkyklig06ic6gswln5cn5rck3w6m7bd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTmV0IFNwZWVkIGV4dGVuc2lvbiBXaXRoIExvYWRzIG9mIEN1c3RvbWl6YXRpb24uIEZvcmsgb2Ygc2ltcGxlbmV0c3BlZWQgXG4gXG5XaGF0J3MgbmV3XG5cdTI2MWUgQWRkIFVzZSBTeXN0ZW0gQ29sb3IgU2NoZW1lIG9wdGlvbiBcblx1MjYxZSBVcGRhdGUgUHJlZmVyZW5jZXMgbG9naWMgXG5cdTI2MWUgRmlsdGVyIG1vcmUgZGV2aWNlcyBmb3IgbmV0IHNwZWVkIGluZGljYXRvciBcblxuRnVsbCBDSEFOR0VMT0cgY2FuIGJlIGZvdW5kIG9uIGdpdGh1YiByZWxlYXNlcyBwYWdlIFxuXG5GZWF0dXJlcyBcbjEuIENsZWFuIFVJIFxuMi4gQWRqdXN0YWJsZSBSZWZyZXNoIHJhdGUgXG4zLiBQcmVmZXJlbmNlcyB0byBtYW5hZ2UgZXh0ZW5zaW9uIFxuNC4gVmVydGljYWwgQWxpZ25tZW50IFN1cHBvcnQgXG41LiBUd28gSWNvbiBzZXRzIGZvciBJbmRpY2F0b3JzIFxuXG5GZWF0dXJlIEhpZ2hsaWdodHMgZm9yIFByZWZlcmVuY2VzIFxuMS4gTG9jayBNb3VzZSBBY3Rpb25zIG9wdGlvbiBcbjIuIEFkdmFuY2UgUG9zaXRpb24gb3B0aW9ucyB0byBwaW5wb2ludCB3aGVyZSB0byBwbGFjZSB0aGUgaW5kaWNhdG9yIG9uIHRoZSBQYW5lbC4gXG4zLiBSZWZyZXNoIHRpbWUgb3B0aW9uIGJ5IHdoaWNoIHlvdSBjYW4gY2hhbmdlIHJlZnJlc2ggcmF0ZSB2YWx1ZSBiZXR3ZWVuIDEuMCBzZWMgdG8gMTAuMCBzZWMuIFxuNC4gU2hvdyBVcGxvYWQgRmlyc3Qgb3B0aW9uIHRvIHNob3cgdXBsb2FkIHNwZWVkIGZpcnN0IFxuNS4gQ29sb3IgQ3VzdG9taXphdGlvbnMgZm9yIHNwZWVkIGluZGljYXRvcnMgXG42LiBIaWRlIHdoZW4gRGlzY29ubmVjdGVkIG9wdGlvbiBcbjcuIFVzZSBTaG9ydGVuIFVuaXRzIG9wdGlvbiBcbjguIExpbWl0IFVuaXQgb3B0aW9uIGFuZCBtb3JlLi4uIFxuXG5Nb2RlcyBcbi0gVG90YWwgbmV0IHNwZWVkIGluIGIvcywga2IvcywgLi4uIFxuLSBUb3RhbCBuZXQgc3BlZWQgaW4gQi9zLCBLQi9zLCAuLi4gXG4tIFVwICYgZG93biBzcGVlZCBpbiBiL3MsIGtiL3MsIC4uLiBcbi0gVXAgJiBkb3duIHNwZWVkIGluIEIvcywgS0IvcywgLi4uIFxuLSBUb3RhbCBkb3dubG9hZHMgaW4gQiwgS0IsIC4uLiAoUmlnaHQgY2xpY2sgdG8gcmVzZXQgY291bnRlcikgXG5cbk1vdXNlIEV2ZW50cyBcbi0gTGVmdCBjbGljayB0byBjaGFuZ2UgbW9kZXMgXG4tIFJpZ2h0IGNsaWNrKGluIDEtNCBtb2Rlcyk6IFRvZ2dsZSB0aGUgdmlzaWJpbGl0eSBvZiB0b3RhbCBsb2FkZWQuIFxuLSBSaWdodCBjbGljayhpbiA1dGggbW9kZSk6IFJlc2V0IHRvdGFsIGRvd25sb2FkZWQuIFxuLSBSaWdodCBDbGljayhGb3VyIGNvbnNlY3V0aXZlIHRpbWVzKTogVG9nZ2xlIHRocm91Z2ggaG9yaXpvbnRhbC92ZXJ0aWNhbCBhbGlnbm1lbnQuIFxuLSBNaWRkbGUgY2xpY2s6IEN5Y2xlIHRocm91Z2ggdGhlIGZvbnQgc2l6ZXMuIiwKICAibmFtZSI6ICJOZXQgc3BlZWQgU2ltcGxpZmllZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcHJhdGVla21lZGlhL25ldHNwZWVkc2ltcGxpZmllZCIsCiAgInV1aWQiOiAibmV0c3BlZWRzaW1wbGlmaWVkQHByYXRlZWttZWRpYS5leHRlbnNpb24iLAogICJ2ZXJzaW9uIjogMzMKfQ=="}, "41": {"version": "33", "sha256": "146p9vbwdp1d9h36jsvi6gkyklig06ic6gswln5cn5rck3w6m7bd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTmV0IFNwZWVkIGV4dGVuc2lvbiBXaXRoIExvYWRzIG9mIEN1c3RvbWl6YXRpb24uIEZvcmsgb2Ygc2ltcGxlbmV0c3BlZWQgXG4gXG5XaGF0J3MgbmV3XG5cdTI2MWUgQWRkIFVzZSBTeXN0ZW0gQ29sb3IgU2NoZW1lIG9wdGlvbiBcblx1MjYxZSBVcGRhdGUgUHJlZmVyZW5jZXMgbG9naWMgXG5cdTI2MWUgRmlsdGVyIG1vcmUgZGV2aWNlcyBmb3IgbmV0IHNwZWVkIGluZGljYXRvciBcblxuRnVsbCBDSEFOR0VMT0cgY2FuIGJlIGZvdW5kIG9uIGdpdGh1YiByZWxlYXNlcyBwYWdlIFxuXG5GZWF0dXJlcyBcbjEuIENsZWFuIFVJIFxuMi4gQWRqdXN0YWJsZSBSZWZyZXNoIHJhdGUgXG4zLiBQcmVmZXJlbmNlcyB0byBtYW5hZ2UgZXh0ZW5zaW9uIFxuNC4gVmVydGljYWwgQWxpZ25tZW50IFN1cHBvcnQgXG41LiBUd28gSWNvbiBzZXRzIGZvciBJbmRpY2F0b3JzIFxuXG5GZWF0dXJlIEhpZ2hsaWdodHMgZm9yIFByZWZlcmVuY2VzIFxuMS4gTG9jayBNb3VzZSBBY3Rpb25zIG9wdGlvbiBcbjIuIEFkdmFuY2UgUG9zaXRpb24gb3B0aW9ucyB0byBwaW5wb2ludCB3aGVyZSB0byBwbGFjZSB0aGUgaW5kaWNhdG9yIG9uIHRoZSBQYW5lbC4gXG4zLiBSZWZyZXNoIHRpbWUgb3B0aW9uIGJ5IHdoaWNoIHlvdSBjYW4gY2hhbmdlIHJlZnJlc2ggcmF0ZSB2YWx1ZSBiZXR3ZWVuIDEuMCBzZWMgdG8gMTAuMCBzZWMuIFxuNC4gU2hvdyBVcGxvYWQgRmlyc3Qgb3B0aW9uIHRvIHNob3cgdXBsb2FkIHNwZWVkIGZpcnN0IFxuNS4gQ29sb3IgQ3VzdG9taXphdGlvbnMgZm9yIHNwZWVkIGluZGljYXRvcnMgXG42LiBIaWRlIHdoZW4gRGlzY29ubmVjdGVkIG9wdGlvbiBcbjcuIFVzZSBTaG9ydGVuIFVuaXRzIG9wdGlvbiBcbjguIExpbWl0IFVuaXQgb3B0aW9uIGFuZCBtb3JlLi4uIFxuXG5Nb2RlcyBcbi0gVG90YWwgbmV0IHNwZWVkIGluIGIvcywga2IvcywgLi4uIFxuLSBUb3RhbCBuZXQgc3BlZWQgaW4gQi9zLCBLQi9zLCAuLi4gXG4tIFVwICYgZG93biBzcGVlZCBpbiBiL3MsIGtiL3MsIC4uLiBcbi0gVXAgJiBkb3duIHNwZWVkIGluIEIvcywgS0IvcywgLi4uIFxuLSBUb3RhbCBkb3dubG9hZHMgaW4gQiwgS0IsIC4uLiAoUmlnaHQgY2xpY2sgdG8gcmVzZXQgY291bnRlcikgXG5cbk1vdXNlIEV2ZW50cyBcbi0gTGVmdCBjbGljayB0byBjaGFuZ2UgbW9kZXMgXG4tIFJpZ2h0IGNsaWNrKGluIDEtNCBtb2Rlcyk6IFRvZ2dsZSB0aGUgdmlzaWJpbGl0eSBvZiB0b3RhbCBsb2FkZWQuIFxuLSBSaWdodCBjbGljayhpbiA1dGggbW9kZSk6IFJlc2V0IHRvdGFsIGRvd25sb2FkZWQuIFxuLSBSaWdodCBDbGljayhGb3VyIGNvbnNlY3V0aXZlIHRpbWVzKTogVG9nZ2xlIHRocm91Z2ggaG9yaXpvbnRhbC92ZXJ0aWNhbCBhbGlnbm1lbnQuIFxuLSBNaWRkbGUgY2xpY2s6IEN5Y2xlIHRocm91Z2ggdGhlIGZvbnQgc2l6ZXMuIiwKICAibmFtZSI6ICJOZXQgc3BlZWQgU2ltcGxpZmllZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcHJhdGVla21lZGlhL25ldHNwZWVkc2ltcGxpZmllZCIsCiAgInV1aWQiOiAibmV0c3BlZWRzaW1wbGlmaWVkQHByYXRlZWttZWRpYS5leHRlbnNpb24iLAogICJ2ZXJzaW9uIjogMzMKfQ=="}}}
 , {"uuid": "cpupower-governors@icar.github.com", "name": "CPU Power Governor", "pname": "cpu-power-governor", "description": "Enables the ability to swap between kernel governors for the CPU useful for laptops.\n\nRequires: polkit, cpupower\nGithub: https://github.com/juxuanu/cpupower-governors", "link": "https://extensions.gnome.org/extension/3727/cpu-power-governor/", "shell_version_map": {"38": {"version": "2", "sha256": "1hb239w4cpz6yzs3pzd3hhrwswh6w5c5xw6dqn57m26cazh843qk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZXMgdGhlIGFiaWxpdHkgdG8gc3dhcCBiZXR3ZWVuIGtlcm5lbCBnb3Zlcm5vcnMgZm9yIHRoZSBDUFUgdXNlZnVsIGZvciBsYXB0b3BzLlxuXG5SZXF1aXJlczogcG9sa2l0LCBjcHVwb3dlclxuR2l0aHViOiBodHRwczovL2dpdGh1Yi5jb20vanV4dWFudS9jcHVwb3dlci1nb3Zlcm5vcnMiLAogICJuYW1lIjogIkNQVSBQb3dlciBHb3Zlcm5vciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJjcHVwb3dlci1nb3Zlcm5vcnNAaWNhci5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
 , {"uuid": "floating-dock@nandoferreira_prof@hotmail.com", "name": "Floating Dock", "pname": "floating-dock", "description": "A Custom Floating Dock fork, now you can change the margin and border radius of the dock.", "link": "https://extensions.gnome.org/extension/3730/floating-dock/", "shell_version_map": {"38": {"version": "1", "sha256": "0giksm5fvrj412v8xnf2hi4s0yi2mqd9prd84npv8jxkfv78y414", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgQ3VzdG9tIEZsb2F0aW5nIERvY2sgZm9yaywgbm93IHlvdSBjYW4gY2hhbmdlIHRoZSBtYXJnaW4gYW5kIGJvcmRlciByYWRpdXMgb2YgdGhlIGRvY2suIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZmxvYXRpbmdkb2NrIiwKICAibmFtZSI6ICJGbG9hdGluZyBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIm5hbmRvZmVycmVpcmFfcHJvZkBob3RtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Zlci1tb3JlaXJhL2Zsb2F0aW5nLWRvY2siLAogICJ1dWlkIjogImZsb2F0aW5nLWRvY2tAbmFuZG9mZXJyZWlyYV9wcm9mQGhvdG1haWwuY29tIiwKICAidmVyc2lvbiI6IDEKfQ=="}, "40": {"version": "4", "sha256": "0ca22s5vbs6d32ppikmg0xcf5335qmighq6cpvly51q44hlqjamg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgQ3VzdG9tIEZsb2F0aW5nIERvY2sgZm9yaywgbm93IHlvdSBjYW4gY2hhbmdlIHRoZSBtYXJnaW4gYW5kIGJvcmRlciByYWRpdXMgb2YgdGhlIGRvY2suIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZmxvYXRpbmdkb2NrIiwKICAibmFtZSI6ICJGbG9hdGluZyBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIm1pY3hneEBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Zlci1tb3JlaXJhL2Zsb2F0aW5nLWRvY2siLAogICJ1dWlkIjogImZsb2F0aW5nLWRvY2tAbmFuZG9mZXJyZWlyYV9wcm9mQGhvdG1haWwuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "0ca22s5vbs6d32ppikmg0xcf5335qmighq6cpvly51q44hlqjamg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgQ3VzdG9tIEZsb2F0aW5nIERvY2sgZm9yaywgbm93IHlvdSBjYW4gY2hhbmdlIHRoZSBtYXJnaW4gYW5kIGJvcmRlciByYWRpdXMgb2YgdGhlIGRvY2suIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZmxvYXRpbmdkb2NrIiwKICAibmFtZSI6ICJGbG9hdGluZyBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIm1pY3hneEBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Zlci1tb3JlaXJhL2Zsb2F0aW5nLWRvY2siLAogICJ1dWlkIjogImZsb2F0aW5nLWRvY2tAbmFuZG9mZXJyZWlyYV9wcm9mQGhvdG1haWwuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
-, {"uuid": "tiling-assistant@leleat-on-github", "name": "Tiling Assistant", "pname": "tiling-assistant", "description": "Expand GNOME's 2 column tiling and add a Windows-snap-assist-inspired popup...", "link": "https://extensions.gnome.org/extension/3733/tiling-assistant/", "shell_version_map": {"38": {"version": "23", "sha256": "1b9hpll26ggwhw4f52wgflzjfqksmyfy5wyg1rpz41lr1dmva8vk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4cGFuZCBHTk9NRSdzIDIgY29sdW1uIHRpbGluZyBhbmQgYWRkIGEgV2luZG93cy1zbmFwLWFzc2lzdC1pbnNwaXJlZCBwb3B1cC4uLiIsCiAgIm5hbWUiOiAiVGlsaW5nIEFzc2lzdGFudCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTGVsZWF0L1RpbGluZy1Bc3Npc3RhbnQiLAogICJ1dWlkIjogInRpbGluZy1hc3Npc3RhbnRAbGVsZWF0LW9uLWdpdGh1YiIsCiAgInZlcnNpb24iOiAyMwp9"}, "40": {"version": "27", "sha256": "17j3g32ha29i3jqy3183fn8ybkj5a3jjfl44nc6s4pxf8lqnh88j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4cGFuZCBHTk9NRSdzIDIgY29sdW1uIHRpbGluZyBhbmQgYWRkIGEgV2luZG93cy1zbmFwLWFzc2lzdC1pbnNwaXJlZCBwb3B1cC4uLiIsCiAgIm5hbWUiOiAiVGlsaW5nIEFzc2lzdGFudCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50aWxpbmctYXNzaXN0YW50IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9MZWxlYXQvVGlsaW5nLUFzc2lzdGFudCIsCiAgInV1aWQiOiAidGlsaW5nLWFzc2lzdGFudEBsZWxlYXQtb24tZ2l0aHViIiwKICAidmVyc2lvbiI6IDI3Cn0="}, "41": {"version": "27", "sha256": "17j3g32ha29i3jqy3183fn8ybkj5a3jjfl44nc6s4pxf8lqnh88j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4cGFuZCBHTk9NRSdzIDIgY29sdW1uIHRpbGluZyBhbmQgYWRkIGEgV2luZG93cy1zbmFwLWFzc2lzdC1pbnNwaXJlZCBwb3B1cC4uLiIsCiAgIm5hbWUiOiAiVGlsaW5nIEFzc2lzdGFudCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50aWxpbmctYXNzaXN0YW50IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9MZWxlYXQvVGlsaW5nLUFzc2lzdGFudCIsCiAgInV1aWQiOiAidGlsaW5nLWFzc2lzdGFudEBsZWxlYXQtb24tZ2l0aHViIiwKICAidmVyc2lvbiI6IDI3Cn0="}}}
+, {"uuid": "tiling-assistant@leleat-on-github", "name": "Tiling Assistant", "pname": "tiling-assistant", "description": "Expand GNOME's 2 column tiling and add a Windows-snap-assist-inspired popup...", "link": "https://extensions.gnome.org/extension/3733/tiling-assistant/", "shell_version_map": {"38": {"version": "23", "sha256": "1b9hpll26ggwhw4f52wgflzjfqksmyfy5wyg1rpz41lr1dmva8vk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4cGFuZCBHTk9NRSdzIDIgY29sdW1uIHRpbGluZyBhbmQgYWRkIGEgV2luZG93cy1zbmFwLWFzc2lzdC1pbnNwaXJlZCBwb3B1cC4uLiIsCiAgIm5hbWUiOiAiVGlsaW5nIEFzc2lzdGFudCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTGVsZWF0L1RpbGluZy1Bc3Npc3RhbnQiLAogICJ1dWlkIjogInRpbGluZy1hc3Npc3RhbnRAbGVsZWF0LW9uLWdpdGh1YiIsCiAgInZlcnNpb24iOiAyMwp9"}, "40": {"version": "31", "sha256": "1ib1259wrm0ppdzb28xngh8hqmm12yp1ak7w2c46wk046arpqnkw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4cGFuZCBHTk9NRSdzIDIgY29sdW1uIHRpbGluZyBhbmQgYWRkIGEgV2luZG93cy1zbmFwLWFzc2lzdC1pbnNwaXJlZCBwb3B1cC4uLiIsCiAgIm5hbWUiOiAiVGlsaW5nIEFzc2lzdGFudCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50aWxpbmctYXNzaXN0YW50IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9MZWxlYXQvVGlsaW5nLUFzc2lzdGFudCIsCiAgInV1aWQiOiAidGlsaW5nLWFzc2lzdGFudEBsZWxlYXQtb24tZ2l0aHViIiwKICAidmVyc2lvbiI6IDMxCn0="}, "41": {"version": "31", "sha256": "1ib1259wrm0ppdzb28xngh8hqmm12yp1ak7w2c46wk046arpqnkw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4cGFuZCBHTk9NRSdzIDIgY29sdW1uIHRpbGluZyBhbmQgYWRkIGEgV2luZG93cy1zbmFwLWFzc2lzdC1pbnNwaXJlZCBwb3B1cC4uLiIsCiAgIm5hbWUiOiAiVGlsaW5nIEFzc2lzdGFudCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50aWxpbmctYXNzaXN0YW50IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9MZWxlYXQvVGlsaW5nLUFzc2lzdGFudCIsCiAgInV1aWQiOiAidGlsaW5nLWFzc2lzdGFudEBsZWxlYXQtb24tZ2l0aHViIiwKICAidmVyc2lvbiI6IDMxCn0="}}}
 , {"uuid": "airpods-battery-status@ju.wtf", "name": "Airpods Battery status", "pname": "airpods-battery-status", "description": "Show Airpods battery level in top bar", "link": "https://extensions.gnome.org/extension/3736/airpods-battery-status/", "shell_version_map": {"38": {"version": "6", "sha256": "0smryqirmjcswbs0gaz6v0kf1hisga1r949c3k7wnyjw9rqxhpc8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgQWlycG9kcyBiYXR0ZXJ5IGxldmVsIGluIHRvcCBiYXIiLAogICJuYW1lIjogIkFpcnBvZHMgQmF0dGVyeSBzdGF0dXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RlbHBoaWtpL2dub21lLWFpcnBvZHMtYmF0dGVyeS1zdGF0dXMiLAogICJ1dWlkIjogImFpcnBvZHMtYmF0dGVyeS1zdGF0dXNAanUud3RmIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "6", "sha256": "0smryqirmjcswbs0gaz6v0kf1hisga1r949c3k7wnyjw9rqxhpc8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgQWlycG9kcyBiYXR0ZXJ5IGxldmVsIGluIHRvcCBiYXIiLAogICJuYW1lIjogIkFpcnBvZHMgQmF0dGVyeSBzdGF0dXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RlbHBoaWtpL2dub21lLWFpcnBvZHMtYmF0dGVyeS1zdGF0dXMiLAogICJ1dWlkIjogImFpcnBvZHMtYmF0dGVyeS1zdGF0dXNAanUud3RmIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "41": {"version": "6", "sha256": "0smryqirmjcswbs0gaz6v0kf1hisga1r949c3k7wnyjw9rqxhpc8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgQWlycG9kcyBiYXR0ZXJ5IGxldmVsIGluIHRvcCBiYXIiLAogICJuYW1lIjogIkFpcnBvZHMgQmF0dGVyeSBzdGF0dXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RlbHBoaWtpL2dub21lLWFpcnBvZHMtYmF0dGVyeS1zdGF0dXMiLAogICJ1dWlkIjogImFpcnBvZHMtYmF0dGVyeS1zdGF0dXNAanUud3RmIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
 , {"uuid": "hue-lights@chlumskyvaclav.gmail.com", "name": "Hue Lights", "pname": "hue-lights", "description": "This extension controls Philips Hue compatible lights using Philips Hue Bridge on your local network, it also allows controlling Philips Hue Sync Box. If you are experiencing an error on the upgrade, please log out and log in again.", "link": "https://extensions.gnome.org/extension/3737/hue-lights/", "shell_version_map": {"38": {"version": "19", "sha256": "049vi65qprgiknpxbz1sv4vyhp749xb7g9369hjsg8fqs0jfwvgd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNvbnRyb2xzIFBoaWxpcHMgSHVlIGNvbXBhdGlibGUgbGlnaHRzIHVzaW5nIFBoaWxpcHMgSHVlIEJyaWRnZSBvbiB5b3VyIGxvY2FsIG5ldHdvcmssIGl0IGFsc28gYWxsb3dzIGNvbnRyb2xsaW5nIFBoaWxpcHMgSHVlIFN5bmMgQm94LiBJZiB5b3UgYXJlIGV4cGVyaWVuY2luZyBhbiBlcnJvciBvbiB0aGUgdXBncmFkZSwgcGxlYXNlIGxvZyBvdXQgYW5kIGxvZyBpbiBhZ2Fpbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJodWUtbGlnaHRzIiwKICAibmFtZSI6ICJIdWUgTGlnaHRzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmNobHVtL2h1ZS1saWdodHMiLAogICJ1dWlkIjogImh1ZS1saWdodHNAY2hsdW1za3l2YWNsYXYuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE5Cn0="}, "40": {"version": "19", "sha256": "049vi65qprgiknpxbz1sv4vyhp749xb7g9369hjsg8fqs0jfwvgd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNvbnRyb2xzIFBoaWxpcHMgSHVlIGNvbXBhdGlibGUgbGlnaHRzIHVzaW5nIFBoaWxpcHMgSHVlIEJyaWRnZSBvbiB5b3VyIGxvY2FsIG5ldHdvcmssIGl0IGFsc28gYWxsb3dzIGNvbnRyb2xsaW5nIFBoaWxpcHMgSHVlIFN5bmMgQm94LiBJZiB5b3UgYXJlIGV4cGVyaWVuY2luZyBhbiBlcnJvciBvbiB0aGUgdXBncmFkZSwgcGxlYXNlIGxvZyBvdXQgYW5kIGxvZyBpbiBhZ2Fpbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJodWUtbGlnaHRzIiwKICAibmFtZSI6ICJIdWUgTGlnaHRzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmNobHVtL2h1ZS1saWdodHMiLAogICJ1dWlkIjogImh1ZS1saWdodHNAY2hsdW1za3l2YWNsYXYuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE5Cn0="}, "41": {"version": "19", "sha256": "049vi65qprgiknpxbz1sv4vyhp749xb7g9369hjsg8fqs0jfwvgd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNvbnRyb2xzIFBoaWxpcHMgSHVlIGNvbXBhdGlibGUgbGlnaHRzIHVzaW5nIFBoaWxpcHMgSHVlIEJyaWRnZSBvbiB5b3VyIGxvY2FsIG5ldHdvcmssIGl0IGFsc28gYWxsb3dzIGNvbnRyb2xsaW5nIFBoaWxpcHMgSHVlIFN5bmMgQm94LiBJZiB5b3UgYXJlIGV4cGVyaWVuY2luZyBhbiBlcnJvciBvbiB0aGUgdXBncmFkZSwgcGxlYXNlIGxvZyBvdXQgYW5kIGxvZyBpbiBhZ2Fpbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJodWUtbGlnaHRzIiwKICAibmFtZSI6ICJIdWUgTGlnaHRzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmNobHVtL2h1ZS1saWdodHMiLAogICJ1dWlkIjogImh1ZS1saWdodHNAY2hsdW1za3l2YWNsYXYuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE5Cn0="}}}
 , {"uuid": "compiz-alike-magic-lamp-effect@hermes83.github.com", "name": "Compiz alike magic lamp effect", "pname": "compiz-alike-magic-lamp-effect", "description": "Magic lamp effect inspired by the Compiz ones\n\nNB:\nIn case of update error please restart Gnome Shell (on Xorg press ALT+F2 then write r and press enter, on Wayland end the session and log in again)", "link": "https://extensions.gnome.org/extension/3740/compiz-alike-magic-lamp-effect/", "shell_version_map": {"38": {"version": "10", "sha256": "1mkykm2ql888bksgw94wgvwfqlqnzr19rn629a4k6hph4b5rw5sf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hZ2ljIGxhbXAgZWZmZWN0IGluc3BpcmVkIGJ5IHRoZSBDb21waXogb25lc1xuXG5OQjpcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKSIsCiAgIm5hbWUiOiAiQ29tcGl6IGFsaWtlIG1hZ2ljIGxhbXAgZWZmZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9jb21waXotYWxpa2UtbWFnaWMtbGFtcC1lZmZlY3QiLAogICJ1dWlkIjogImNvbXBpei1hbGlrZS1tYWdpYy1sYW1wLWVmZmVjdEBoZXJtZXM4My5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}, "40": {"version": "10", "sha256": "1mkykm2ql888bksgw94wgvwfqlqnzr19rn629a4k6hph4b5rw5sf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hZ2ljIGxhbXAgZWZmZWN0IGluc3BpcmVkIGJ5IHRoZSBDb21waXogb25lc1xuXG5OQjpcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKSIsCiAgIm5hbWUiOiAiQ29tcGl6IGFsaWtlIG1hZ2ljIGxhbXAgZWZmZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9jb21waXotYWxpa2UtbWFnaWMtbGFtcC1lZmZlY3QiLAogICJ1dWlkIjogImNvbXBpei1hbGlrZS1tYWdpYy1sYW1wLWVmZmVjdEBoZXJtZXM4My5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}, "41": {"version": "10", "sha256": "1mkykm2ql888bksgw94wgvwfqlqnzr19rn629a4k6hph4b5rw5sf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hZ2ljIGxhbXAgZWZmZWN0IGluc3BpcmVkIGJ5IHRoZSBDb21waXogb25lc1xuXG5OQjpcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKSIsCiAgIm5hbWUiOiAiQ29tcGl6IGFsaWtlIG1hZ2ljIGxhbXAgZWZmZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9jb21waXotYWxpa2UtbWFnaWMtbGFtcC1lZmZlY3QiLAogICJ1dWlkIjogImNvbXBpei1hbGlrZS1tYWdpYy1sYW1wLWVmZmVjdEBoZXJtZXM4My5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}}}
@@ -381,13 +383,13 @@
 , {"uuid": "miniCal2@breiq", "name": "Minimalist Calendar 2", "pname": "minimalist-calendar-2", "description": "Remove event list and clock/calendar app buttons from the calendar window.", "link": "https://extensions.gnome.org/extension/3775/minimalist-calendar-2/", "shell_version_map": {"38": {"version": "1", "sha256": "1nh10ik3zk3r4jr31mr8nw8nnamgj3mk1f3im06657wv18x9wvam", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBldmVudCBsaXN0IGFuZCBjbG9jay9jYWxlbmRhciBhcHAgYnV0dG9ucyBmcm9tIHRoZSBjYWxlbmRhciB3aW5kb3cuIiwKICAibmFtZSI6ICJNaW5pbWFsaXN0IENhbGVuZGFyIDIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAibWluaUNhbDJAYnJlaXEiLAogICJ2ZXJzaW9uIjogMQp9"}}}
 , {"uuid": "ddterm@amezin.github.com", "name": "ddterm", "pname": "ddterm", "description": "Another drop down terminal extension for GNOME Shell. With tabs. Works on Wayland natively\n\nUpdates sometimes require restarting your GNOME session (i. e. logging out).", "link": "https://extensions.gnome.org/extension/3780/ddterm/", "shell_version_map": {"38": {"version": "24", "sha256": "08vb6kvxb1722hd757jzakpn1p66wvcjq0xdinlgrxk3v2jmlsca", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZHJvcCBkb3duIHRlcm1pbmFsIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwuIFdpdGggdGFicy4gV29ya3Mgb24gV2F5bGFuZCBuYXRpdmVseVxuXG5VcGRhdGVzIHNvbWV0aW1lcyByZXF1aXJlIHJlc3RhcnRpbmcgeW91ciBHTk9NRSBzZXNzaW9uIChpLiBlLiBsb2dnaW5nIG91dCkuIiwKICAibmFtZSI6ICJkZHRlcm0iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAiY29tLmdpdGh1Yi5hbWV6aW4uZGR0ZXJtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWV6aW4vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRkdGVybSIsCiAgInV1aWQiOiAiZGR0ZXJtQGFtZXppbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDI0Cn0="}, "40": {"version": "24", "sha256": "08vb6kvxb1722hd757jzakpn1p66wvcjq0xdinlgrxk3v2jmlsca", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZHJvcCBkb3duIHRlcm1pbmFsIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwuIFdpdGggdGFicy4gV29ya3Mgb24gV2F5bGFuZCBuYXRpdmVseVxuXG5VcGRhdGVzIHNvbWV0aW1lcyByZXF1aXJlIHJlc3RhcnRpbmcgeW91ciBHTk9NRSBzZXNzaW9uIChpLiBlLiBsb2dnaW5nIG91dCkuIiwKICAibmFtZSI6ICJkZHRlcm0iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAiY29tLmdpdGh1Yi5hbWV6aW4uZGR0ZXJtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWV6aW4vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRkdGVybSIsCiAgInV1aWQiOiAiZGR0ZXJtQGFtZXppbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDI0Cn0="}, "41": {"version": "24", "sha256": "08vb6kvxb1722hd757jzakpn1p66wvcjq0xdinlgrxk3v2jmlsca", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZHJvcCBkb3duIHRlcm1pbmFsIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwuIFdpdGggdGFicy4gV29ya3Mgb24gV2F5bGFuZCBuYXRpdmVseVxuXG5VcGRhdGVzIHNvbWV0aW1lcyByZXF1aXJlIHJlc3RhcnRpbmcgeW91ciBHTk9NRSBzZXNzaW9uIChpLiBlLiBsb2dnaW5nIG91dCkuIiwKICAibmFtZSI6ICJkZHRlcm0iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAiY29tLmdpdGh1Yi5hbWV6aW4uZGR0ZXJtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWV6aW4vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRkdGVybSIsCiAgInV1aWQiOiAiZGR0ZXJtQGFtZXppbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDI0Cn0="}}}
 , {"uuid": "favorites-only-dash@nahuelwexd.github.io", "name": "Favorites-only Dash", "pname": "favorites-only-dash", "description": "Show only favorite apps on Dash", "link": "https://extensions.gnome.org/extension/3789/favorites-only-dash/", "shell_version_map": {"38": {"version": "1", "sha256": "110h019563j33gksaq5fs0z71sz1mslq1sbsmhk9mj3qggd9vs65", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgb25seSBmYXZvcml0ZSBhcHBzIG9uIERhc2giLAogICJuYW1lIjogIkZhdm9yaXRlcy1vbmx5IERhc2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiZmF2b3JpdGVzLW9ubHktZGFzaEBuYWh1ZWx3ZXhkLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxCn0="}}}
-, {"uuid": "notification-timeout@chlumskyvaclav.gmail.com", "name": "Notification Timeout", "pname": "notification-timeout", "description": "This extension allows configuring the same timeout for all notifications. It also allows ignoring the idle state.", "link": "https://extensions.gnome.org/extension/3795/notification-timeout/", "shell_version_map": {"38": {"version": "3", "sha256": "16cpl12jk90pw8nyvzara6fhb3jfiivf2qnvnsnrd237sjz344yw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFsbG93cyBjb25maWd1cmluZyB0aGUgc2FtZSB0aW1lb3V0IGZvciBhbGwgbm90aWZpY2F0aW9ucy4gSXQgYWxzbyBhbGxvd3MgaWdub3JpbmcgdGhlIGlkbGUgc3RhdGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibm90aWZpY2F0aW9uLXRpbWVvdXQiLAogICJuYW1lIjogIk5vdGlmaWNhdGlvbiBUaW1lb3V0IiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS92Y2hsdW0vbm90aWZpY2F0aW9uLXRpbWVvdXQiLAogICJ1dWlkIjogIm5vdGlmaWNhdGlvbi10aW1lb3V0QGNobHVtc2t5dmFjbGF2LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "3", "sha256": "16cpl12jk90pw8nyvzara6fhb3jfiivf2qnvnsnrd237sjz344yw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFsbG93cyBjb25maWd1cmluZyB0aGUgc2FtZSB0aW1lb3V0IGZvciBhbGwgbm90aWZpY2F0aW9ucy4gSXQgYWxzbyBhbGxvd3MgaWdub3JpbmcgdGhlIGlkbGUgc3RhdGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibm90aWZpY2F0aW9uLXRpbWVvdXQiLAogICJuYW1lIjogIk5vdGlmaWNhdGlvbiBUaW1lb3V0IiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS92Y2hsdW0vbm90aWZpY2F0aW9uLXRpbWVvdXQiLAogICJ1dWlkIjogIm5vdGlmaWNhdGlvbi10aW1lb3V0QGNobHVtc2t5dmFjbGF2LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}}}
+, {"uuid": "notification-timeout@chlumskyvaclav.gmail.com", "name": "Notification Timeout", "pname": "notification-timeout", "description": "This extension allows configuring the same timeout for all notifications. It also allows ignoring the idle state.", "link": "https://extensions.gnome.org/extension/3795/notification-timeout/", "shell_version_map": {"38": {"version": "4", "sha256": "14hns3mw3rk6az31pck3rnsj74n98swaiv1ky57d0gs9409zha6n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFsbG93cyBjb25maWd1cmluZyB0aGUgc2FtZSB0aW1lb3V0IGZvciBhbGwgbm90aWZpY2F0aW9ucy4gSXQgYWxzbyBhbGxvd3MgaWdub3JpbmcgdGhlIGlkbGUgc3RhdGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibm90aWZpY2F0aW9uLXRpbWVvdXQiLAogICJuYW1lIjogIk5vdGlmaWNhdGlvbiBUaW1lb3V0IiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmNobHVtL25vdGlmaWNhdGlvbi10aW1lb3V0IiwKICAidXVpZCI6ICJub3RpZmljYXRpb24tdGltZW91dEBjaGx1bXNreXZhY2xhdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}, "40": {"version": "4", "sha256": "14hns3mw3rk6az31pck3rnsj74n98swaiv1ky57d0gs9409zha6n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFsbG93cyBjb25maWd1cmluZyB0aGUgc2FtZSB0aW1lb3V0IGZvciBhbGwgbm90aWZpY2F0aW9ucy4gSXQgYWxzbyBhbGxvd3MgaWdub3JpbmcgdGhlIGlkbGUgc3RhdGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibm90aWZpY2F0aW9uLXRpbWVvdXQiLAogICJuYW1lIjogIk5vdGlmaWNhdGlvbiBUaW1lb3V0IiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmNobHVtL25vdGlmaWNhdGlvbi10aW1lb3V0IiwKICAidXVpZCI6ICJub3RpZmljYXRpb24tdGltZW91dEBjaGx1bXNreXZhY2xhdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "14hns3mw3rk6az31pck3rnsj74n98swaiv1ky57d0gs9409zha6n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFsbG93cyBjb25maWd1cmluZyB0aGUgc2FtZSB0aW1lb3V0IGZvciBhbGwgbm90aWZpY2F0aW9ucy4gSXQgYWxzbyBhbGxvd3MgaWdub3JpbmcgdGhlIGlkbGUgc3RhdGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibm90aWZpY2F0aW9uLXRpbWVvdXQiLAogICJuYW1lIjogIk5vdGlmaWNhdGlvbiBUaW1lb3V0IiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmNobHVtL25vdGlmaWNhdGlvbi10aW1lb3V0IiwKICAidXVpZCI6ICJub3RpZmljYXRpb24tdGltZW91dEBjaGx1bXNreXZhY2xhdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}}}
 , {"uuid": "podman-as-docker@alberto.yomerengues.xyz", "name": "Podman and Docker", "pname": "podman-as-docker", "description": "podman extension as docker\nIn order to get it work on podman, you just need to create an alias\nSimply put: alias docker=podman\nand install podman-docker", "link": "https://extensions.gnome.org/extension/3799/podman-as-docker/", "shell_version_map": {"38": {"version": "1", "sha256": "18bkd6z5hm6zidh7xv8v3jvj36lmxzx4dar7nwa7nq3p51km6crz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInBvZG1hbiBleHRlbnNpb24gYXMgZG9ja2VyXG5JbiBvcmRlciB0byBnZXQgaXQgd29yayBvbiBwb2RtYW4sIHlvdSBqdXN0IG5lZWQgdG8gY3JlYXRlIGFuIGFsaWFzXG5TaW1wbHkgcHV0OiBhbGlhcyBkb2NrZXI9cG9kbWFuXG5hbmQgaW5zdGFsbCBwb2RtYW4tZG9ja2VyIiwKICAibmFtZSI6ICJQb2RtYW4gYW5kIERvY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJwb2RtYW4tYXMtZG9ja2VyQGFsYmVydG8ueW9tZXJlbmd1ZXMueHl6IiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
 , {"uuid": "wacom-indicator@fthx", "name": "Wacom Indicator", "pname": "wacom-indicator", "description": "Wacom tablet indicator in the top bar: connection state and power level.\n\n On click: open GNOME Settings Wacom section. On hover or every minute: update connection state and power level.\n\n Settings (in extension.js file headers): show/hide model label, refresh delay, update/do nothing on indicator hover, show/hide if disconnected.", "link": "https://extensions.gnome.org/extension/3809/wacom-indicator/", "shell_version_map": {"38": {"version": "7", "sha256": "1sda66n1s3d28jd98xcznw5ljv10iwndpcbq7bfm5hqzrk8zimid", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldhY29tIHRhYmxldCBpbmRpY2F0b3IgaW4gdGhlIHRvcCBiYXI6IGNvbm5lY3Rpb24gc3RhdGUgYW5kIHBvd2VyIGxldmVsLlxuXG4gT24gY2xpY2s6IG9wZW4gR05PTUUgU2V0dGluZ3MgV2Fjb20gc2VjdGlvbi4gT24gaG92ZXIgb3IgZXZlcnkgbWludXRlOiB1cGRhdGUgY29ubmVjdGlvbiBzdGF0ZSBhbmQgcG93ZXIgbGV2ZWwuXG5cbiBTZXR0aW5ncyAoaW4gZXh0ZW5zaW9uLmpzIGZpbGUgaGVhZGVycyk6IHNob3cvaGlkZSBtb2RlbCBsYWJlbCwgcmVmcmVzaCBkZWxheSwgdXBkYXRlL2RvIG5vdGhpbmcgb24gaW5kaWNhdG9yIGhvdmVyLCBzaG93L2hpZGUgaWYgZGlzY29ubmVjdGVkLiIsCiAgIm5hbWUiOiAiV2Fjb20gSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvd2Fjb20taW5kaWNhdG9yIiwKICAidXVpZCI6ICJ3YWNvbS1pbmRpY2F0b3JAZnRoeCIsCiAgInZlcnNpb24iOiA3Cn0="}, "40": {"version": "7", "sha256": "1sda66n1s3d28jd98xcznw5ljv10iwndpcbq7bfm5hqzrk8zimid", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldhY29tIHRhYmxldCBpbmRpY2F0b3IgaW4gdGhlIHRvcCBiYXI6IGNvbm5lY3Rpb24gc3RhdGUgYW5kIHBvd2VyIGxldmVsLlxuXG4gT24gY2xpY2s6IG9wZW4gR05PTUUgU2V0dGluZ3MgV2Fjb20gc2VjdGlvbi4gT24gaG92ZXIgb3IgZXZlcnkgbWludXRlOiB1cGRhdGUgY29ubmVjdGlvbiBzdGF0ZSBhbmQgcG93ZXIgbGV2ZWwuXG5cbiBTZXR0aW5ncyAoaW4gZXh0ZW5zaW9uLmpzIGZpbGUgaGVhZGVycyk6IHNob3cvaGlkZSBtb2RlbCBsYWJlbCwgcmVmcmVzaCBkZWxheSwgdXBkYXRlL2RvIG5vdGhpbmcgb24gaW5kaWNhdG9yIGhvdmVyLCBzaG93L2hpZGUgaWYgZGlzY29ubmVjdGVkLiIsCiAgIm5hbWUiOiAiV2Fjb20gSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvd2Fjb20taW5kaWNhdG9yIiwKICAidXVpZCI6ICJ3YWNvbS1pbmRpY2F0b3JAZnRoeCIsCiAgInZlcnNpb24iOiA3Cn0="}}}
 , {"uuid": "hibernate@dafne.rocks", "name": "System Action - Hibernate", "pname": "system-action-hibernate", "description": "A GNOME extension that adds the option to hibernate amongst other system actions", "link": "https://extensions.gnome.org/extension/3814/system-action-hibernate/", "shell_version_map": {"38": {"version": "8", "sha256": "1rriknzx54f4wlfjm6wrcy9s86vchi5n3p3qp8lx52dsv36a22an", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgZXh0ZW5zaW9uIHRoYXQgYWRkcyB0aGUgb3B0aW9uIHRvIGhpYmVybmF0ZSBhbW9uZ3N0IG90aGVyIHN5c3RlbSBhY3Rpb25zIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiaGliZXJuYXRlQGRhZm5lLnJvY2tzIiwKICAibmFtZSI6ICJTeXN0ZW0gQWN0aW9uIC0gSGliZXJuYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2NvZGViZXJnLm9yZy9raXl1aS9nbm9tZS1zaGVsbC1oaWJlcm5hdGUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJoaWJlcm5hdGVAZGFmbmUucm9ja3MiLAogICJ2ZXJzaW9uIjogOAp9"}, "40": {"version": "8", "sha256": "1rriknzx54f4wlfjm6wrcy9s86vchi5n3p3qp8lx52dsv36a22an", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgZXh0ZW5zaW9uIHRoYXQgYWRkcyB0aGUgb3B0aW9uIHRvIGhpYmVybmF0ZSBhbW9uZ3N0IG90aGVyIHN5c3RlbSBhY3Rpb25zIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiaGliZXJuYXRlQGRhZm5lLnJvY2tzIiwKICAibmFtZSI6ICJTeXN0ZW0gQWN0aW9uIC0gSGliZXJuYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2NvZGViZXJnLm9yZy9raXl1aS9nbm9tZS1zaGVsbC1oaWJlcm5hdGUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJoaWJlcm5hdGVAZGFmbmUucm9ja3MiLAogICJ2ZXJzaW9uIjogOAp9"}}}
 , {"uuid": "click-to-close-overview@l3nn4rt.github.io", "name": "Click to close overview", "pname": "click-to-close-overview", "description": "Close the overview by clicking empty space.", "link": "https://extensions.gnome.org/extension/3826/click-to-close-overview/", "shell_version_map": {"38": {"version": "3", "sha256": "17xd3k1xpsn8ma6f11f4sr26y5xbcs3hiw7lv1qqrn80lyjj2vz1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHRoZSBvdmVydmlldyBieSBjbGlja2luZyBlbXB0eSBzcGFjZS4iLAogICJuYW1lIjogIkNsaWNrIHRvIGNsb3NlIG92ZXJ2aWV3IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbDNubjRydC9jbGljay10by1jbG9zZS1vdmVydmlldyIsCiAgInV1aWQiOiAiY2xpY2stdG8tY2xvc2Utb3ZlcnZpZXdAbDNubjRydC5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "5", "sha256": "1h12bhqac4zyvsj6xbjr7hnyah3bnbbx0r8ihblkw5l7a67ix1ih", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHRoZSBvdmVydmlldyBieSBjbGlja2luZyBlbXB0eSBzcGFjZS4iLAogICJuYW1lIjogIkNsaWNrIHRvIGNsb3NlIG92ZXJ2aWV3IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9sM25uNHJ0L2NsaWNrLXRvLWNsb3NlLW92ZXJ2aWV3IiwKICAidXVpZCI6ICJjbGljay10by1jbG9zZS1vdmVydmlld0BsM25uNHJ0LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA1Cn0="}, "41": {"version": "5", "sha256": "1h12bhqac4zyvsj6xbjr7hnyah3bnbbx0r8ihblkw5l7a67ix1ih", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHRoZSBvdmVydmlldyBieSBjbGlja2luZyBlbXB0eSBzcGFjZS4iLAogICJuYW1lIjogIkNsaWNrIHRvIGNsb3NlIG92ZXJ2aWV3IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9sM25uNHJ0L2NsaWNrLXRvLWNsb3NlLW92ZXJ2aWV3IiwKICAidXVpZCI6ICJjbGljay10by1jbG9zZS1vdmVydmlld0BsM25uNHJ0LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA1Cn0="}}}
 , {"uuid": "just-perfection-desktop@just-perfection", "name": "Just Perfection", "pname": "just-perfection", "description": "Tweak Tool to Customize GNOME Shell and Disable UI Elements\n\n- Accessibility Menu Visibility\n- Activities Button Icon Visibility\n- Activities button Visibility\n- Always Show Workspace Switcher on Dynamic Workspaces (40, 41)\n- Animation Speed or Disable it\n- App Gesture (3.36, 3.38)\n- Applications Button Visibility\n- App Menu Icon Visibility\n- App Menu Visibility\n- Background Menu Visibility\n- Clock Menu Position\n- Clock Menu Visibility\n- Dash Icon Size\n- Dash Visibility\n- Disable Type to Search\n- Double Super Key to App Grid\n- GNOME Shell Theme Override\n- Hot Corner\n- Keyboard Layout Visibility\n- Notification Banner Position\n- OSD Visibility\n- Panel Arrow Visibility(3.36, 3.38)\n- Panel Button Padding Size\n- Panel Height\n- Panel Indicator Padding Size\n- Panel Notification icon Visibility\n- Panel Position\n- Panel Round Corner Size\n- Panel Visibility\n- Panel Visibility in Overview\n- Power Icon Visibility\n- Ripple Box\n- Search Visibility\n- Startup Status(40, 41)\n- System Menu (Aggregate Menu) Visibility\n- Window Demands Attention Focus\n- Window Picker Caption Visibility\n- Window Picker Close Button Visibility\n- Window Picker Icon(40, 41)\n- Workspace Background Corner Size in Overview(40, 41)\n- Workspace Popup Visibility\n- Workspaces in app grid Visibility (40, 41)\n- Workspace Switcher Size (40, 41)\n- Workspace Switcher Visibility\n- Workspace Wraparound", "link": "https://extensions.gnome.org/extension/3843/just-perfection/", "shell_version_map": {"38": {"version": "16", "sha256": "1y03n2p1jpdz7chzw3jrfbgy6zaav30rj6cc4cf6j1p0xl8wrn31", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrIFRvb2wgdG8gQ3VzdG9taXplIEdOT01FIFNoZWxsIGFuZCBEaXNhYmxlIFVJIEVsZW1lbnRzXG5cbi0gQWNjZXNzaWJpbGl0eSBNZW51IFZpc2liaWxpdHlcbi0gQWN0aXZpdGllcyBCdXR0b24gSWNvbiBWaXNpYmlsaXR5XG4tIEFjdGl2aXRpZXMgYnV0dG9uIFZpc2liaWxpdHlcbi0gQWx3YXlzIFNob3cgV29ya3NwYWNlIFN3aXRjaGVyIG9uIER5bmFtaWMgV29ya3NwYWNlcyAoNDAsIDQxKVxuLSBBbmltYXRpb24gU3BlZWQgb3IgRGlzYWJsZSBpdFxuLSBBcHAgR2VzdHVyZSAoMy4zNiwgMy4zOClcbi0gQXBwbGljYXRpb25zIEJ1dHRvbiBWaXNpYmlsaXR5XG4tIEFwcCBNZW51IEljb24gVmlzaWJpbGl0eVxuLSBBcHAgTWVudSBWaXNpYmlsaXR5XG4tIEJhY2tncm91bmQgTWVudSBWaXNpYmlsaXR5XG4tIENsb2NrIE1lbnUgUG9zaXRpb25cbi0gQ2xvY2sgTWVudSBWaXNpYmlsaXR5XG4tIERhc2ggSWNvbiBTaXplXG4tIERhc2ggVmlzaWJpbGl0eVxuLSBEaXNhYmxlIFR5cGUgdG8gU2VhcmNoXG4tIERvdWJsZSBTdXBlciBLZXkgdG8gQXBwIEdyaWRcbi0gR05PTUUgU2hlbGwgVGhlbWUgT3ZlcnJpZGVcbi0gSG90IENvcm5lclxuLSBLZXlib2FyZCBMYXlvdXQgVmlzaWJpbGl0eVxuLSBOb3RpZmljYXRpb24gQmFubmVyIFBvc2l0aW9uXG4tIE9TRCBWaXNpYmlsaXR5XG4tIFBhbmVsIEFycm93IFZpc2liaWxpdHkoMy4zNiwgMy4zOClcbi0gUGFuZWwgQnV0dG9uIFBhZGRpbmcgU2l6ZVxuLSBQYW5lbCBIZWlnaHRcbi0gUGFuZWwgSW5kaWNhdG9yIFBhZGRpbmcgU2l6ZVxuLSBQYW5lbCBOb3RpZmljYXRpb24gaWNvbiBWaXNpYmlsaXR5XG4tIFBhbmVsIFBvc2l0aW9uXG4tIFBhbmVsIFJvdW5kIENvcm5lciBTaXplXG4tIFBhbmVsIFZpc2liaWxpdHlcbi0gUGFuZWwgVmlzaWJpbGl0eSBpbiBPdmVydmlld1xuLSBQb3dlciBJY29uIFZpc2liaWxpdHlcbi0gUmlwcGxlIEJveFxuLSBTZWFyY2ggVmlzaWJpbGl0eVxuLSBTdGFydHVwIFN0YXR1cyg0MCwgNDEpXG4tIFN5c3RlbSBNZW51IChBZ2dyZWdhdGUgTWVudSkgVmlzaWJpbGl0eVxuLSBXaW5kb3cgRGVtYW5kcyBBdHRlbnRpb24gRm9jdXNcbi0gV2luZG93IFBpY2tlciBDYXB0aW9uIFZpc2liaWxpdHlcbi0gV2luZG93IFBpY2tlciBDbG9zZSBCdXR0b24gVmlzaWJpbGl0eVxuLSBXaW5kb3cgUGlja2VyIEljb24oNDAsIDQxKVxuLSBXb3Jrc3BhY2UgQmFja2dyb3VuZCBDb3JuZXIgU2l6ZSBpbiBPdmVydmlldyg0MCwgNDEpXG4tIFdvcmtzcGFjZSBQb3B1cCBWaXNpYmlsaXR5XG4tIFdvcmtzcGFjZXMgaW4gYXBwIGdyaWQgVmlzaWJpbGl0eSAoNDAsIDQxKVxuLSBXb3Jrc3BhY2UgU3dpdGNoZXIgU2l6ZSAoNDAsIDQxKVxuLSBXb3Jrc3BhY2UgU3dpdGNoZXIgVmlzaWJpbGl0eVxuLSBXb3Jrc3BhY2UgV3JhcGFyb3VuZCIsCiAgImdldHRleHQtZG9tYWluIjogImp1c3QtcGVyZmVjdGlvbiIsCiAgIm5hbWUiOiAiSnVzdCBQZXJmZWN0aW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmp1c3QtcGVyZmVjdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvanJhaG1hdHphZGVoL2p1c3QtcGVyZmVjdGlvbiIsCiAgInV1aWQiOiAianVzdC1wZXJmZWN0aW9uLWRlc2t0b3BAanVzdC1wZXJmZWN0aW9uIiwKICAidmVyc2lvbiI6IDE2Cn0="}, "40": {"version": "16", "sha256": "1y03n2p1jpdz7chzw3jrfbgy6zaav30rj6cc4cf6j1p0xl8wrn31", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrIFRvb2wgdG8gQ3VzdG9taXplIEdOT01FIFNoZWxsIGFuZCBEaXNhYmxlIFVJIEVsZW1lbnRzXG5cbi0gQWNjZXNzaWJpbGl0eSBNZW51IFZpc2liaWxpdHlcbi0gQWN0aXZpdGllcyBCdXR0b24gSWNvbiBWaXNpYmlsaXR5XG4tIEFjdGl2aXRpZXMgYnV0dG9uIFZpc2liaWxpdHlcbi0gQWx3YXlzIFNob3cgV29ya3NwYWNlIFN3aXRjaGVyIG9uIER5bmFtaWMgV29ya3NwYWNlcyAoNDAsIDQxKVxuLSBBbmltYXRpb24gU3BlZWQgb3IgRGlzYWJsZSBpdFxuLSBBcHAgR2VzdHVyZSAoMy4zNiwgMy4zOClcbi0gQXBwbGljYXRpb25zIEJ1dHRvbiBWaXNpYmlsaXR5XG4tIEFwcCBNZW51IEljb24gVmlzaWJpbGl0eVxuLSBBcHAgTWVudSBWaXNpYmlsaXR5XG4tIEJhY2tncm91bmQgTWVudSBWaXNpYmlsaXR5XG4tIENsb2NrIE1lbnUgUG9zaXRpb25cbi0gQ2xvY2sgTWVudSBWaXNpYmlsaXR5XG4tIERhc2ggSWNvbiBTaXplXG4tIERhc2ggVmlzaWJpbGl0eVxuLSBEaXNhYmxlIFR5cGUgdG8gU2VhcmNoXG4tIERvdWJsZSBTdXBlciBLZXkgdG8gQXBwIEdyaWRcbi0gR05PTUUgU2hlbGwgVGhlbWUgT3ZlcnJpZGVcbi0gSG90IENvcm5lclxuLSBLZXlib2FyZCBMYXlvdXQgVmlzaWJpbGl0eVxuLSBOb3RpZmljYXRpb24gQmFubmVyIFBvc2l0aW9uXG4tIE9TRCBWaXNpYmlsaXR5XG4tIFBhbmVsIEFycm93IFZpc2liaWxpdHkoMy4zNiwgMy4zOClcbi0gUGFuZWwgQnV0dG9uIFBhZGRpbmcgU2l6ZVxuLSBQYW5lbCBIZWlnaHRcbi0gUGFuZWwgSW5kaWNhdG9yIFBhZGRpbmcgU2l6ZVxuLSBQYW5lbCBOb3RpZmljYXRpb24gaWNvbiBWaXNpYmlsaXR5XG4tIFBhbmVsIFBvc2l0aW9uXG4tIFBhbmVsIFJvdW5kIENvcm5lciBTaXplXG4tIFBhbmVsIFZpc2liaWxpdHlcbi0gUGFuZWwgVmlzaWJpbGl0eSBpbiBPdmVydmlld1xuLSBQb3dlciBJY29uIFZpc2liaWxpdHlcbi0gUmlwcGxlIEJveFxuLSBTZWFyY2ggVmlzaWJpbGl0eVxuLSBTdGFydHVwIFN0YXR1cyg0MCwgNDEpXG4tIFN5c3RlbSBNZW51IChBZ2dyZWdhdGUgTWVudSkgVmlzaWJpbGl0eVxuLSBXaW5kb3cgRGVtYW5kcyBBdHRlbnRpb24gRm9jdXNcbi0gV2luZG93IFBpY2tlciBDYXB0aW9uIFZpc2liaWxpdHlcbi0gV2luZG93IFBpY2tlciBDbG9zZSBCdXR0b24gVmlzaWJpbGl0eVxuLSBXaW5kb3cgUGlja2VyIEljb24oNDAsIDQxKVxuLSBXb3Jrc3BhY2UgQmFja2dyb3VuZCBDb3JuZXIgU2l6ZSBpbiBPdmVydmlldyg0MCwgNDEpXG4tIFdvcmtzcGFjZSBQb3B1cCBWaXNpYmlsaXR5XG4tIFdvcmtzcGFjZXMgaW4gYXBwIGdyaWQgVmlzaWJpbGl0eSAoNDAsIDQxKVxuLSBXb3Jrc3BhY2UgU3dpdGNoZXIgU2l6ZSAoNDAsIDQxKVxuLSBXb3Jrc3BhY2UgU3dpdGNoZXIgVmlzaWJpbGl0eVxuLSBXb3Jrc3BhY2UgV3JhcGFyb3VuZCIsCiAgImdldHRleHQtZG9tYWluIjogImp1c3QtcGVyZmVjdGlvbiIsCiAgIm5hbWUiOiAiSnVzdCBQZXJmZWN0aW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmp1c3QtcGVyZmVjdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvanJhaG1hdHphZGVoL2p1c3QtcGVyZmVjdGlvbiIsCiAgInV1aWQiOiAianVzdC1wZXJmZWN0aW9uLWRlc2t0b3BAanVzdC1wZXJmZWN0aW9uIiwKICAidmVyc2lvbiI6IDE2Cn0="}, "41": {"version": "16", "sha256": "1y03n2p1jpdz7chzw3jrfbgy6zaav30rj6cc4cf6j1p0xl8wrn31", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrIFRvb2wgdG8gQ3VzdG9taXplIEdOT01FIFNoZWxsIGFuZCBEaXNhYmxlIFVJIEVsZW1lbnRzXG5cbi0gQWNjZXNzaWJpbGl0eSBNZW51IFZpc2liaWxpdHlcbi0gQWN0aXZpdGllcyBCdXR0b24gSWNvbiBWaXNpYmlsaXR5XG4tIEFjdGl2aXRpZXMgYnV0dG9uIFZpc2liaWxpdHlcbi0gQWx3YXlzIFNob3cgV29ya3NwYWNlIFN3aXRjaGVyIG9uIER5bmFtaWMgV29ya3NwYWNlcyAoNDAsIDQxKVxuLSBBbmltYXRpb24gU3BlZWQgb3IgRGlzYWJsZSBpdFxuLSBBcHAgR2VzdHVyZSAoMy4zNiwgMy4zOClcbi0gQXBwbGljYXRpb25zIEJ1dHRvbiBWaXNpYmlsaXR5XG4tIEFwcCBNZW51IEljb24gVmlzaWJpbGl0eVxuLSBBcHAgTWVudSBWaXNpYmlsaXR5XG4tIEJhY2tncm91bmQgTWVudSBWaXNpYmlsaXR5XG4tIENsb2NrIE1lbnUgUG9zaXRpb25cbi0gQ2xvY2sgTWVudSBWaXNpYmlsaXR5XG4tIERhc2ggSWNvbiBTaXplXG4tIERhc2ggVmlzaWJpbGl0eVxuLSBEaXNhYmxlIFR5cGUgdG8gU2VhcmNoXG4tIERvdWJsZSBTdXBlciBLZXkgdG8gQXBwIEdyaWRcbi0gR05PTUUgU2hlbGwgVGhlbWUgT3ZlcnJpZGVcbi0gSG90IENvcm5lclxuLSBLZXlib2FyZCBMYXlvdXQgVmlzaWJpbGl0eVxuLSBOb3RpZmljYXRpb24gQmFubmVyIFBvc2l0aW9uXG4tIE9TRCBWaXNpYmlsaXR5XG4tIFBhbmVsIEFycm93IFZpc2liaWxpdHkoMy4zNiwgMy4zOClcbi0gUGFuZWwgQnV0dG9uIFBhZGRpbmcgU2l6ZVxuLSBQYW5lbCBIZWlnaHRcbi0gUGFuZWwgSW5kaWNhdG9yIFBhZGRpbmcgU2l6ZVxuLSBQYW5lbCBOb3RpZmljYXRpb24gaWNvbiBWaXNpYmlsaXR5XG4tIFBhbmVsIFBvc2l0aW9uXG4tIFBhbmVsIFJvdW5kIENvcm5lciBTaXplXG4tIFBhbmVsIFZpc2liaWxpdHlcbi0gUGFuZWwgVmlzaWJpbGl0eSBpbiBPdmVydmlld1xuLSBQb3dlciBJY29uIFZpc2liaWxpdHlcbi0gUmlwcGxlIEJveFxuLSBTZWFyY2ggVmlzaWJpbGl0eVxuLSBTdGFydHVwIFN0YXR1cyg0MCwgNDEpXG4tIFN5c3RlbSBNZW51IChBZ2dyZWdhdGUgTWVudSkgVmlzaWJpbGl0eVxuLSBXaW5kb3cgRGVtYW5kcyBBdHRlbnRpb24gRm9jdXNcbi0gV2luZG93IFBpY2tlciBDYXB0aW9uIFZpc2liaWxpdHlcbi0gV2luZG93IFBpY2tlciBDbG9zZSBCdXR0b24gVmlzaWJpbGl0eVxuLSBXaW5kb3cgUGlja2VyIEljb24oNDAsIDQxKVxuLSBXb3Jrc3BhY2UgQmFja2dyb3VuZCBDb3JuZXIgU2l6ZSBpbiBPdmVydmlldyg0MCwgNDEpXG4tIFdvcmtzcGFjZSBQb3B1cCBWaXNpYmlsaXR5XG4tIFdvcmtzcGFjZXMgaW4gYXBwIGdyaWQgVmlzaWJpbGl0eSAoNDAsIDQxKVxuLSBXb3Jrc3BhY2UgU3dpdGNoZXIgU2l6ZSAoNDAsIDQxKVxuLSBXb3Jrc3BhY2UgU3dpdGNoZXIgVmlzaWJpbGl0eVxuLSBXb3Jrc3BhY2UgV3JhcGFyb3VuZCIsCiAgImdldHRleHQtZG9tYWluIjogImp1c3QtcGVyZmVjdGlvbiIsCiAgIm5hbWUiOiAiSnVzdCBQZXJmZWN0aW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmp1c3QtcGVyZmVjdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvanJhaG1hdHphZGVoL2p1c3QtcGVyZmVjdGlvbiIsCiAgInV1aWQiOiAianVzdC1wZXJmZWN0aW9uLWRlc2t0b3BAanVzdC1wZXJmZWN0aW9uIiwKICAidmVyc2lvbiI6IDE2Cn0="}}}
-, {"uuid": "workspaces-bar@fthx", "name": "Workspaces Bar", "pname": "workspaces-bar", "description": "Replace 'Activities' button by all current workspaces buttons. Switch workspace or toggle overview by clicking on these buttons.\n\n You can use names for workspaces: there are two ways for that. 1) Edit the string array 'org.gnome.desktop.wm.preferences.workspace-names' gsettings key (through dconf editor, e.g.). 2) Use official GNOME extension Workspaces Indicator's settings. You don't have to write a long enough list: numbers are displayed if no workspace name is defined.", "link": "https://extensions.gnome.org/extension/3851/workspaces-bar/", "shell_version_map": {"38": {"version": "11", "sha256": "04lp3d2xfl024nrvnqwb4vv2qd7fbwhfq3gbaz1j0ds7dhq7bhir", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgJ0FjdGl2aXRpZXMnIGJ1dHRvbiBieSBhbGwgY3VycmVudCB3b3Jrc3BhY2VzIGJ1dHRvbnMuIFN3aXRjaCB3b3Jrc3BhY2Ugb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuIiwKICAibmFtZSI6ICJXb3Jrc3BhY2VzIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L3dvcmtzcGFjZXMtYmFyIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2VzLWJhckBmdGh4IiwKICAidmVyc2lvbiI6IDExCn0="}, "40": {"version": "11", "sha256": "04lp3d2xfl024nrvnqwb4vv2qd7fbwhfq3gbaz1j0ds7dhq7bhir", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgJ0FjdGl2aXRpZXMnIGJ1dHRvbiBieSBhbGwgY3VycmVudCB3b3Jrc3BhY2VzIGJ1dHRvbnMuIFN3aXRjaCB3b3Jrc3BhY2Ugb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuIiwKICAibmFtZSI6ICJXb3Jrc3BhY2VzIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L3dvcmtzcGFjZXMtYmFyIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2VzLWJhckBmdGh4IiwKICAidmVyc2lvbiI6IDExCn0="}}}
+, {"uuid": "workspaces-bar@fthx", "name": "Workspaces Bar", "pname": "workspaces-bar", "description": "Replace 'Activities' button by all current workspaces buttons. Switch workspace or toggle overview by clicking on these buttons.\n\n You can use names for workspaces: there are two ways for that. 1) Edit the string array 'org.gnome.desktop.wm.preferences.workspace-names' gsettings key (through dconf editor, e.g.). 2) Use official GNOME extension Workspaces Indicator's settings. You don't have to write a long enough list: numbers are displayed if no workspace name is defined.", "link": "https://extensions.gnome.org/extension/3851/workspaces-bar/", "shell_version_map": {"38": {"version": "12", "sha256": "1rskz8llic5g8cix4mb6iha9v789fg6yn2i25zj0ywb9qn063ld5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgJ0FjdGl2aXRpZXMnIGJ1dHRvbiBieSBhbGwgY3VycmVudCB3b3Jrc3BhY2VzIGJ1dHRvbnMuIFN3aXRjaCB3b3Jrc3BhY2Ugb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuIiwKICAibmFtZSI6ICJXb3Jrc3BhY2VzIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC93b3Jrc3BhY2VzLWJhciIsCiAgInV1aWQiOiAid29ya3NwYWNlcy1iYXJAZnRoeCIsCiAgInZlcnNpb24iOiAxMgp9"}, "40": {"version": "12", "sha256": "1rskz8llic5g8cix4mb6iha9v789fg6yn2i25zj0ywb9qn063ld5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgJ0FjdGl2aXRpZXMnIGJ1dHRvbiBieSBhbGwgY3VycmVudCB3b3Jrc3BhY2VzIGJ1dHRvbnMuIFN3aXRjaCB3b3Jrc3BhY2Ugb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuIiwKICAibmFtZSI6ICJXb3Jrc3BhY2VzIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC93b3Jrc3BhY2VzLWJhciIsCiAgInV1aWQiOiAid29ya3NwYWNlcy1iYXJAZnRoeCIsCiAgInZlcnNpb24iOiAxMgp9"}, "41": {"version": "12", "sha256": "1rskz8llic5g8cix4mb6iha9v789fg6yn2i25zj0ywb9qn063ld5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgJ0FjdGl2aXRpZXMnIGJ1dHRvbiBieSBhbGwgY3VycmVudCB3b3Jrc3BhY2VzIGJ1dHRvbnMuIFN3aXRjaCB3b3Jrc3BhY2Ugb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuIiwKICAibmFtZSI6ICJXb3Jrc3BhY2VzIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC93b3Jrc3BhY2VzLWJhciIsCiAgInV1aWQiOiAid29ya3NwYWNlcy1iYXJAZnRoeCIsCiAgInZlcnNpb24iOiAxMgp9"}}}
 , {"uuid": "scanlines-effect@muratcileli.com", "name": "Scanlines Effect", "pname": "scanlines-effect", "description": "Retro monitor / CRT TV effect.", "link": "https://extensions.gnome.org/extension/3860/scanlines-effect/", "shell_version_map": {"38": {"version": "1", "sha256": "1xcsd700s9hkqmrqlv56ldiya2jk0d46j8k4a4i3m9c6k40c5z7v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJldHJvIG1vbml0b3IgLyBDUlQgVFYgZWZmZWN0LiIsCiAgIm5hbWUiOiAiU2NhbmxpbmVzIEVmZmVjdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJjb20ubXVyYXRjaWxlbGkuc2NhbmxpbmVzLWVmZmVjdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL211cmF0LWNpbGVsaS9nbm9tZS1zaGVsbC1leHRlbnNpb24tc2NhbmxpbmVzLWVmZmVjdCIsCiAgInV1aWQiOiAic2NhbmxpbmVzLWVmZmVjdEBtdXJhdGNpbGVsaS5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}}}
 , {"uuid": "workspaces-thumbnails-applet@blogdron", "name": "Workspaces Thumbnails Applet", "pname": "workspaces-thumbnails-applet", "description": "Notice!\n\nThis is a fork of the extension https://extensions.gnome.org/extension/2557/workspaces-thumbnails/ It hasn't been updated in a long time, but it only needs a small fix to work. Until the author fixes the problem, I will keep this fork. Please, if you have the opportunity to contact the author of the original extension, let him fix the problem for himself.\n\n\nPut an indicator on the panel showing all the workspaces thumbnails, allowing to switch between them or moving windows to another workspace.\n\n This is a very tiny fork of the original (GNOME official extension) Workspace Indicator, allowing to use it like when the Horizontal Workspaces extension is activated. The vertical workspaces layout is not modified; the workspaces layout is horizontal only in the top panel and the workspaces switcher in the overview is still showed. Please note that any global bug should be reported against the Workspace Indicator extension. https://extensions.gnome.org/extension/21/workspace-indicator", "link": "https://extensions.gnome.org/extension/3872/workspaces-thumbnails-applet/", "shell_version_map": {"38": {"version": "1", "sha256": "02823b6rfnibb0mhnx848pdxc3birw2aqp8607wjf93mvy5388hm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vdGljZSFcblxuVGhpcyBpcyBhIGZvcmsgb2YgdGhlIGV4dGVuc2lvbiBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8yNTU3L3dvcmtzcGFjZXMtdGh1bWJuYWlscy8gSXQgaGFzbid0IGJlZW4gdXBkYXRlZCBpbiBhIGxvbmcgdGltZSwgYnV0IGl0IG9ubHkgbmVlZHMgYSBzbWFsbCBmaXggdG8gd29yay4gVW50aWwgdGhlIGF1dGhvciBmaXhlcyB0aGUgcHJvYmxlbSwgSSB3aWxsIGtlZXAgdGhpcyBmb3JrLiBQbGVhc2UsIGlmIHlvdSBoYXZlIHRoZSBvcHBvcnR1bml0eSB0byBjb250YWN0IHRoZSBhdXRob3Igb2YgdGhlIG9yaWdpbmFsIGV4dGVuc2lvbiwgbGV0IGhpbSBmaXggdGhlIHByb2JsZW0gZm9yIGhpbXNlbGYuXG5cblxuUHV0IGFuIGluZGljYXRvciBvbiB0aGUgcGFuZWwgc2hvd2luZyBhbGwgdGhlIHdvcmtzcGFjZXMgdGh1bWJuYWlscywgYWxsb3dpbmcgdG8gc3dpdGNoIGJldHdlZW4gdGhlbSBvciBtb3Zpbmcgd2luZG93cyB0byBhbm90aGVyIHdvcmtzcGFjZS5cblxuIFRoaXMgaXMgYSB2ZXJ5IHRpbnkgZm9yayBvZiB0aGUgb3JpZ2luYWwgKEdOT01FIG9mZmljaWFsIGV4dGVuc2lvbikgV29ya3NwYWNlIEluZGljYXRvciwgYWxsb3dpbmcgdG8gdXNlIGl0IGxpa2Ugd2hlbiB0aGUgSG9yaXpvbnRhbCBXb3Jrc3BhY2VzIGV4dGVuc2lvbiBpcyBhY3RpdmF0ZWQuIFRoZSB2ZXJ0aWNhbCB3b3Jrc3BhY2VzIGxheW91dCBpcyBub3QgbW9kaWZpZWQ7IHRoZSB3b3Jrc3BhY2VzIGxheW91dCBpcyBob3Jpem9udGFsIG9ubHkgaW4gdGhlIHRvcCBwYW5lbCBhbmQgdGhlIHdvcmtzcGFjZXMgc3dpdGNoZXIgaW4gdGhlIG92ZXJ2aWV3IGlzIHN0aWxsIHNob3dlZC4gUGxlYXNlIG5vdGUgdGhhdCBhbnkgZ2xvYmFsIGJ1ZyBzaG91bGQgYmUgcmVwb3J0ZWQgYWdhaW5zdCB0aGUgV29ya3NwYWNlIEluZGljYXRvciBleHRlbnNpb24uIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzIxL3dvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJleHRlbnNpb24taWQiOiAid29ya3NwYWNlcy10aHVtYm5haWxzLWFwcGxldCIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIldvcmtzcGFjZXMgVGh1bWJuYWlscyBBcHBsZXQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImZ0aHgiLAogICAgImJsb2dkcm9uIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3Jrc3BhY2UtaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIndvcmtzcGFjZXMtdGh1bWJuYWlscy1hcHBsZXRAYmxvZ2Ryb24iLAogICJ2ZXJzaW9uIjogMQp9"}}}
 , {"uuid": "simple-monitor@fcaballerop.github.io", "name": "Simple monitor", "pname": "simple-monitor", "description": "It cases stuttering in videos for some users, this extension is not being updated.\nA simple panel button that shows CPU and RAM memory usage. Clicking shows the top 10 processes using CPU and memory.", "link": "https://extensions.gnome.org/extension/3891/simple-monitor/", "shell_version_map": {"38": {"version": "5", "sha256": "1gff73ddb7yinxzdqq1cliqf1xlav16j31wlc7nsnl899zj0cd5j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkl0IGNhc2VzIHN0dXR0ZXJpbmcgaW4gdmlkZW9zIGZvciBzb21lIHVzZXJzLCB0aGlzIGV4dGVuc2lvbiBpcyBub3QgYmVpbmcgdXBkYXRlZC5cbkEgc2ltcGxlIHBhbmVsIGJ1dHRvbiB0aGF0IHNob3dzIENQVSBhbmQgUkFNIG1lbW9yeSB1c2FnZS4gQ2xpY2tpbmcgc2hvd3MgdGhlIHRvcCAxMCBwcm9jZXNzZXMgdXNpbmcgQ1BVIGFuZCBtZW1vcnkuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZXhhbXBsZSIsCiAgIm5hbWUiOiAiU2ltcGxlIG1vbml0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc21vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAic2ltcGxlLW1vbml0b3JAZmNhYmFsbGVyb3AuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
@@ -402,8 +404,8 @@
 , {"uuid": "focus@scaryrawr.github.io", "name": "Focus", "pname": "focus", "description": "Transparent inactive windows", "link": "https://extensions.gnome.org/extension/3924/focus/", "shell_version_map": {"38": {"version": "6", "sha256": "1ks47h0m50hssq5m25586lv5fa3yhwhdnb1jxgkfnb547k6qxb6n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zcGFyZW50IGluYWN0aXZlIHdpbmRvd3MiLAogICJuYW1lIjogIkZvY3VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MC5iZXRhIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2NhcnlyYXdyL2dub21lLWZvY3VzIiwKICAidXVpZCI6ICJmb2N1c0BzY2FyeXJhd3IuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "6", "sha256": "1ks47h0m50hssq5m25586lv5fa3yhwhdnb1jxgkfnb547k6qxb6n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zcGFyZW50IGluYWN0aXZlIHdpbmRvd3MiLAogICJuYW1lIjogIkZvY3VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MC5iZXRhIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2NhcnlyYXdyL2dub21lLWZvY3VzIiwKICAidXVpZCI6ICJmb2N1c0BzY2FyeXJhd3IuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
 , {"uuid": "autoselectheadset@josephlbarnett.github.com", "name": "Auto select headset", "pname": "auto-select-headset", "description": "Auto selects headsets when possible instead of showing a dialog", "link": "https://extensions.gnome.org/extension/3928/auto-select-headset/", "shell_version_map": {"38": {"version": "3", "sha256": "097q3xgkm5g75vjy76v9y8q7n5jb1wvxv2ffvj1f0nk0ag7y909d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG8gc2VsZWN0cyBoZWFkc2V0cyB3aGVuIHBvc3NpYmxlIGluc3RlYWQgb2Ygc2hvd2luZyBhIGRpYWxvZyIsCiAgIm5hbWUiOiAiQXV0byBzZWxlY3QgaGVhZHNldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qb3NlcGhsYmFybmV0dC9hdXRvc2VsZWN0aGVhZHNldC1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogImF1dG9zZWxlY3RoZWFkc2V0QGpvc2VwaGxiYXJuZXR0LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "097q3xgkm5g75vjy76v9y8q7n5jb1wvxv2ffvj1f0nk0ag7y909d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG8gc2VsZWN0cyBoZWFkc2V0cyB3aGVuIHBvc3NpYmxlIGluc3RlYWQgb2Ygc2hvd2luZyBhIGRpYWxvZyIsCiAgIm5hbWUiOiAiQXV0byBzZWxlY3QgaGVhZHNldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qb3NlcGhsYmFybmV0dC9hdXRvc2VsZWN0aGVhZHNldC1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogImF1dG9zZWxlY3RoZWFkc2V0QGpvc2VwaGxiYXJuZXR0LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}}}
 , {"uuid": "toggle-night-light@cansozbir.github.io", "name": "Toggle Night Light", "pname": "toggle-night-light", "description": "This extension lets you toggle night-light from the top-bar by clicking it.", "link": "https://extensions.gnome.org/extension/3933/toggle-night-light/", "shell_version_map": {"38": {"version": "5", "sha256": "1r7mjixc2r8p5cmgk94sbj7gsx9xfx5sfnaxa01prqrpd3pqlhzv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGxldHMgeW91IHRvZ2dsZSBuaWdodC1saWdodCBmcm9tIHRoZSB0b3AtYmFyIGJ5IGNsaWNraW5nIGl0LiIsCiAgIm5hbWUiOiAiVG9nZ2xlIE5pZ2h0IExpZ2h0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jYW5zb3piaXIvZ25vbWUtc2hlbGwtdG9nZ2xlLW5pZ2h0LWxpZ2h0LWV4dGVuc2lvbiIsCiAgInV1aWQiOiAidG9nZ2xlLW5pZ2h0LWxpZ2h0QGNhbnNvemJpci5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "5", "sha256": "1r7mjixc2r8p5cmgk94sbj7gsx9xfx5sfnaxa01prqrpd3pqlhzv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGxldHMgeW91IHRvZ2dsZSBuaWdodC1saWdodCBmcm9tIHRoZSB0b3AtYmFyIGJ5IGNsaWNraW5nIGl0LiIsCiAgIm5hbWUiOiAiVG9nZ2xlIE5pZ2h0IExpZ2h0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jYW5zb3piaXIvZ25vbWUtc2hlbGwtdG9nZ2xlLW5pZ2h0LWxpZ2h0LWV4dGVuc2lvbiIsCiAgInV1aWQiOiAidG9nZ2xlLW5pZ2h0LWxpZ2h0QGNhbnNvemJpci5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNQp9"}, "41": {"version": "5", "sha256": "1r7mjixc2r8p5cmgk94sbj7gsx9xfx5sfnaxa01prqrpd3pqlhzv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGxldHMgeW91IHRvZ2dsZSBuaWdodC1saWdodCBmcm9tIHRoZSB0b3AtYmFyIGJ5IGNsaWNraW5nIGl0LiIsCiAgIm5hbWUiOiAiVG9nZ2xlIE5pZ2h0IExpZ2h0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jYW5zb3piaXIvZ25vbWUtc2hlbGwtdG9nZ2xlLW5pZ2h0LWxpZ2h0LWV4dGVuc2lvbiIsCiAgInV1aWQiOiAidG9nZ2xlLW5pZ2h0LWxpZ2h0QGNhbnNvemJpci5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNQp9"}}}
-, {"uuid": "adwaita-theme-switcher@fthx", "name": "Adwaita Theme Switcher", "pname": "adwaita-theme-switcher", "description": "Button in panel: switch between Adwaita dark and light themes.", "link": "https://extensions.gnome.org/extension/3936/adwaita-theme-switcher/", "shell_version_map": {"38": {"version": "2", "sha256": "1rdmyf8wr3f1kizsirpjs61bdll507knls50c5ximjq14mk92b3q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJ1dHRvbiBpbiBwYW5lbDogc3dpdGNoIGJldHdlZW4gQWR3YWl0YSBkYXJrIGFuZCBsaWdodCB0aGVtZXMuIiwKICAibmFtZSI6ICJBZHdhaXRhIFRoZW1lIFN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvYWR3YWl0YS10aGVtZS1zd2l0Y2hlciIsCiAgInV1aWQiOiAiYWR3YWl0YS10aGVtZS1zd2l0Y2hlckBmdGh4IiwKICAidmVyc2lvbiI6IDIKfQ=="}, "40": {"version": "2", "sha256": "1rdmyf8wr3f1kizsirpjs61bdll507knls50c5ximjq14mk92b3q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJ1dHRvbiBpbiBwYW5lbDogc3dpdGNoIGJldHdlZW4gQWR3YWl0YSBkYXJrIGFuZCBsaWdodCB0aGVtZXMuIiwKICAibmFtZSI6ICJBZHdhaXRhIFRoZW1lIFN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvYWR3YWl0YS10aGVtZS1zd2l0Y2hlciIsCiAgInV1aWQiOiAiYWR3YWl0YS10aGVtZS1zd2l0Y2hlckBmdGh4IiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
-, {"uuid": "fnlock-switch-tp-comp-usb-kb@goloshubov.github.io", "name": "FnLock switch (ThinkPad Compact USB Keyboard) ", "pname": "fnlock-switch-thinkpad-compact-usb-keyboard", "description": "FnLock switch for Lenovo ThinkPad Compact USB Keyboard ", "link": "https://extensions.gnome.org/extension/3939/fnlock-switch-thinkpad-compact-usb-keyboard/", "shell_version_map": {"38": {"version": "3", "sha256": "09a0i4zdf98j5cr7c8x79sk8yf2n35skkkz3chi6cc7q3va9ylg8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZuTG9jayBzd2l0Y2ggZm9yIExlbm92byBUaGlua1BhZCBDb21wYWN0IFVTQiBLZXlib2FyZCAiLAogICJuYW1lIjogIkZuTG9jayBzd2l0Y2ggKFRoaW5rUGFkIENvbXBhY3QgVVNCIEtleWJvYXJkKSAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ29sb3NodWJvdi9mbmxvY2stc3dpdGNoLXRwLWNvbXAtdXNiLWtiIiwKICAidXVpZCI6ICJmbmxvY2stc3dpdGNoLXRwLWNvbXAtdXNiLWtiQGdvbG9zaHVib3YuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDMKfQ=="}, "40": {"version": "3", "sha256": "09a0i4zdf98j5cr7c8x79sk8yf2n35skkkz3chi6cc7q3va9ylg8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZuTG9jayBzd2l0Y2ggZm9yIExlbm92byBUaGlua1BhZCBDb21wYWN0IFVTQiBLZXlib2FyZCAiLAogICJuYW1lIjogIkZuTG9jayBzd2l0Y2ggKFRoaW5rUGFkIENvbXBhY3QgVVNCIEtleWJvYXJkKSAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ29sb3NodWJvdi9mbmxvY2stc3dpdGNoLXRwLWNvbXAtdXNiLWtiIiwKICAidXVpZCI6ICJmbmxvY2stc3dpdGNoLXRwLWNvbXAtdXNiLWtiQGdvbG9zaHVib3YuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
+, {"uuid": "adwaita-theme-switcher@fthx", "name": "Adwaita Theme Switcher", "pname": "adwaita-theme-switcher", "description": "Button in panel: switch between Adwaita dark and light themes.", "link": "https://extensions.gnome.org/extension/3936/adwaita-theme-switcher/", "shell_version_map": {"38": {"version": "4", "sha256": "0015j3vqwvb0fs2n90lz0i66f23nr7mmvqzgwnsah46x8lkm2kpr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJ1dHRvbiBpbiBwYW5lbDogc3dpdGNoIGJldHdlZW4gQWR3YWl0YSBkYXJrIGFuZCBsaWdodCB0aGVtZXMuIiwKICAibmFtZSI6ICJBZHdhaXRhIFRoZW1lIFN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2Fkd2FpdGEtdGhlbWUtc3dpdGNoZXIiLAogICJ1dWlkIjogImFkd2FpdGEtdGhlbWUtc3dpdGNoZXJAZnRoeCIsCiAgInZlcnNpb24iOiA0Cn0="}, "40": {"version": "4", "sha256": "0015j3vqwvb0fs2n90lz0i66f23nr7mmvqzgwnsah46x8lkm2kpr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJ1dHRvbiBpbiBwYW5lbDogc3dpdGNoIGJldHdlZW4gQWR3YWl0YSBkYXJrIGFuZCBsaWdodCB0aGVtZXMuIiwKICAibmFtZSI6ICJBZHdhaXRhIFRoZW1lIFN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2Fkd2FpdGEtdGhlbWUtc3dpdGNoZXIiLAogICJ1dWlkIjogImFkd2FpdGEtdGhlbWUtc3dpdGNoZXJAZnRoeCIsCiAgInZlcnNpb24iOiA0Cn0="}, "41": {"version": "4", "sha256": "0015j3vqwvb0fs2n90lz0i66f23nr7mmvqzgwnsah46x8lkm2kpr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJ1dHRvbiBpbiBwYW5lbDogc3dpdGNoIGJldHdlZW4gQWR3YWl0YSBkYXJrIGFuZCBsaWdodCB0aGVtZXMuIiwKICAibmFtZSI6ICJBZHdhaXRhIFRoZW1lIFN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2Fkd2FpdGEtdGhlbWUtc3dpdGNoZXIiLAogICJ1dWlkIjogImFkd2FpdGEtdGhlbWUtc3dpdGNoZXJAZnRoeCIsCiAgInZlcnNpb24iOiA0Cn0="}}}
+, {"uuid": "fnlock-switch-tp-comp-usb-kb@goloshubov.github.io", "name": "FnLock switch (ThinkPad Compact USB Keyboard) ", "pname": "fnlock-switch-thinkpad-compact-usb-keyboard", "description": "FnLock switch for Lenovo ThinkPad Compact USB Keyboard ", "link": "https://extensions.gnome.org/extension/3939/fnlock-switch-thinkpad-compact-usb-keyboard/", "shell_version_map": {"38": {"version": "4", "sha256": "1nybwgfp354zn1z1lkl3wvvz2zddk6nbm9n2h5f5gbp58vhl8mw4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZuTG9jayBzd2l0Y2ggZm9yIExlbm92byBUaGlua1BhZCBDb21wYWN0IFVTQiBLZXlib2FyZCAiLAogICJuYW1lIjogIkZuTG9jayBzd2l0Y2ggKFRoaW5rUGFkIENvbXBhY3QgVVNCIEtleWJvYXJkKSAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbG9zaHVib3YvZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYiIsCiAgInV1aWQiOiAiZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYkBnb2xvc2h1Ym92LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA0Cn0="}, "40": {"version": "4", "sha256": "1nybwgfp354zn1z1lkl3wvvz2zddk6nbm9n2h5f5gbp58vhl8mw4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZuTG9jayBzd2l0Y2ggZm9yIExlbm92byBUaGlua1BhZCBDb21wYWN0IFVTQiBLZXlib2FyZCAiLAogICJuYW1lIjogIkZuTG9jayBzd2l0Y2ggKFRoaW5rUGFkIENvbXBhY3QgVVNCIEtleWJvYXJkKSAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbG9zaHVib3YvZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYiIsCiAgInV1aWQiOiAiZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYkBnb2xvc2h1Ym92LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA0Cn0="}, "41": {"version": "4", "sha256": "1nybwgfp354zn1z1lkl3wvvz2zddk6nbm9n2h5f5gbp58vhl8mw4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZuTG9jayBzd2l0Y2ggZm9yIExlbm92byBUaGlua1BhZCBDb21wYWN0IFVTQiBLZXlib2FyZCAiLAogICJuYW1lIjogIkZuTG9jayBzd2l0Y2ggKFRoaW5rUGFkIENvbXBhY3QgVVNCIEtleWJvYXJkKSAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbG9zaHVib3YvZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYiIsCiAgInV1aWQiOiAiZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYkBnb2xvc2h1Ym92LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA0Cn0="}}}
 , {"uuid": "toggle-alacritty@itstime.tech", "name": "Toggle Alacritty", "pname": "toggle-alacritty", "description": "Toggles Alacritty window via hotkey: Alt+z\n\nIf Alacritty is not launched, attempts to start it (/usr/bin/alacritty)\n\nWorks under both Wayland and X11\n\nTo change hotkey please follow instruction in the README.md:", "link": "https://extensions.gnome.org/extension/3942/toggle-alacritty/", "shell_version_map": {"38": {"version": "4", "sha256": "1kz5a8x9fpvilcd4p9pn6cmsj6gvq44cg85yhkgdi9x2qpd52fn1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZXMgQWxhY3JpdHR5IHdpbmRvdyB2aWEgaG90a2V5OiBBbHQrelxuXG5JZiBBbGFjcml0dHkgaXMgbm90IGxhdW5jaGVkLCBhdHRlbXB0cyB0byBzdGFydCBpdCAoL3Vzci9iaW4vYWxhY3JpdHR5KVxuXG5Xb3JrcyB1bmRlciBib3RoIFdheWxhbmQgYW5kIFgxMVxuXG5UbyBjaGFuZ2UgaG90a2V5IHBsZWFzZSBmb2xsb3cgaW5zdHJ1Y3Rpb24gaW4gdGhlIFJFQURNRS5tZDoiLAogICJuYW1lIjogIlRvZ2dsZSBBbGFjcml0dHkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudG9nZ2xlLWFsYWNyaXR0eSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXh4YXB5L2dub21lLWFsYWNyaXR0eS10b2dnbGUiLAogICJ1dWlkIjogInRvZ2dsZS1hbGFjcml0dHlAaXRzdGltZS50ZWNoIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "4", "sha256": "1kz5a8x9fpvilcd4p9pn6cmsj6gvq44cg85yhkgdi9x2qpd52fn1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZXMgQWxhY3JpdHR5IHdpbmRvdyB2aWEgaG90a2V5OiBBbHQrelxuXG5JZiBBbGFjcml0dHkgaXMgbm90IGxhdW5jaGVkLCBhdHRlbXB0cyB0byBzdGFydCBpdCAoL3Vzci9iaW4vYWxhY3JpdHR5KVxuXG5Xb3JrcyB1bmRlciBib3RoIFdheWxhbmQgYW5kIFgxMVxuXG5UbyBjaGFuZ2UgaG90a2V5IHBsZWFzZSBmb2xsb3cgaW5zdHJ1Y3Rpb24gaW4gdGhlIFJFQURNRS5tZDoiLAogICJuYW1lIjogIlRvZ2dsZSBBbGFjcml0dHkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudG9nZ2xlLWFsYWNyaXR0eSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXh4YXB5L2dub21lLWFsYWNyaXR0eS10b2dnbGUiLAogICJ1dWlkIjogInRvZ2dsZS1hbGFjcml0dHlAaXRzdGltZS50ZWNoIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "1kz5a8x9fpvilcd4p9pn6cmsj6gvq44cg85yhkgdi9x2qpd52fn1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZXMgQWxhY3JpdHR5IHdpbmRvdyB2aWEgaG90a2V5OiBBbHQrelxuXG5JZiBBbGFjcml0dHkgaXMgbm90IGxhdW5jaGVkLCBhdHRlbXB0cyB0byBzdGFydCBpdCAoL3Vzci9iaW4vYWxhY3JpdHR5KVxuXG5Xb3JrcyB1bmRlciBib3RoIFdheWxhbmQgYW5kIFgxMVxuXG5UbyBjaGFuZ2UgaG90a2V5IHBsZWFzZSBmb2xsb3cgaW5zdHJ1Y3Rpb24gaW4gdGhlIFJFQURNRS5tZDoiLAogICJuYW1lIjogIlRvZ2dsZSBBbGFjcml0dHkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudG9nZ2xlLWFsYWNyaXR0eSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXh4YXB5L2dub21lLWFsYWNyaXR0eS10b2dnbGUiLAogICJ1dWlkIjogInRvZ2dsZS1hbGFjcml0dHlAaXRzdGltZS50ZWNoIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
 , {"uuid": "hide-panel@fthx", "name": "Hide Panel", "pname": "hide-panel", "description": "Hide top panel except in overview. Switch button in panel.\n\nVery very light extension. There is a 1 pixel wide line at the top of the screen that allows to blindly use the panel menus. This is needed to keep the native hot corner active without having to recreate it.", "link": "https://extensions.gnome.org/extension/3948/hide-panel/", "shell_version_map": {"38": {"version": "8", "sha256": "0nrj0kxfdxx7nmw0zai070ca5lv5r43bpgm2binv31xjyh385849", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdG9wIHBhbmVsIGV4Y2VwdCBpbiBvdmVydmlldy4gU3dpdGNoIGJ1dHRvbiBpbiBwYW5lbC5cblxuVmVyeSB2ZXJ5IGxpZ2h0IGV4dGVuc2lvbi4gVGhlcmUgaXMgYSAxIHBpeGVsIHdpZGUgbGluZSBhdCB0aGUgdG9wIG9mIHRoZSBzY3JlZW4gdGhhdCBhbGxvd3MgdG8gYmxpbmRseSB1c2UgdGhlIHBhbmVsIG1lbnVzLiBUaGlzIGlzIG5lZWRlZCB0byBrZWVwIHRoZSBuYXRpdmUgaG90IGNvcm5lciBhY3RpdmUgd2l0aG91dCBoYXZpbmcgdG8gcmVjcmVhdGUgaXQuIiwKICAibmFtZSI6ICJIaWRlIFBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvaGlkZS1wYW5lbCIsCiAgInV1aWQiOiAiaGlkZS1wYW5lbEBmdGh4IiwKICAidmVyc2lvbiI6IDgKfQ=="}, "40": {"version": "8", "sha256": "0nrj0kxfdxx7nmw0zai070ca5lv5r43bpgm2binv31xjyh385849", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdG9wIHBhbmVsIGV4Y2VwdCBpbiBvdmVydmlldy4gU3dpdGNoIGJ1dHRvbiBpbiBwYW5lbC5cblxuVmVyeSB2ZXJ5IGxpZ2h0IGV4dGVuc2lvbi4gVGhlcmUgaXMgYSAxIHBpeGVsIHdpZGUgbGluZSBhdCB0aGUgdG9wIG9mIHRoZSBzY3JlZW4gdGhhdCBhbGxvd3MgdG8gYmxpbmRseSB1c2UgdGhlIHBhbmVsIG1lbnVzLiBUaGlzIGlzIG5lZWRlZCB0byBrZWVwIHRoZSBuYXRpdmUgaG90IGNvcm5lciBhY3RpdmUgd2l0aG91dCBoYXZpbmcgdG8gcmVjcmVhdGUgaXQuIiwKICAibmFtZSI6ICJIaWRlIFBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvaGlkZS1wYW5lbCIsCiAgInV1aWQiOiAiaGlkZS1wYW5lbEBmdGh4IiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
 , {"uuid": "persistent-email-notifications@fthx", "name": "Persistent Email Notifications", "pname": "persistent-email-notifications", "description": "Never hide a new mail notification, except if you close it.\n\nVery very light extension. Email clients supported: Thunderbird, Evolution, Geary, Mailspring, TypeApp, BlueMail. Please ask for another email client if needed.", "link": "https://extensions.gnome.org/extension/3951/persistent-email-notifications/", "shell_version_map": {"38": {"version": "3", "sha256": "06m6fhs50vlrwkgdk6cvkcl5f155a1w8szs1g9pzryf8mmldgmdd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldmVyIGhpZGUgYSBuZXcgbWFpbCBub3RpZmljYXRpb24sIGV4Y2VwdCBpZiB5b3UgY2xvc2UgaXQuXG5cblZlcnkgdmVyeSBsaWdodCBleHRlbnNpb24uIEVtYWlsIGNsaWVudHMgc3VwcG9ydGVkOiBUaHVuZGVyYmlyZCwgRXZvbHV0aW9uLCBHZWFyeSwgTWFpbHNwcmluZywgVHlwZUFwcCwgQmx1ZU1haWwuIFBsZWFzZSBhc2sgZm9yIGFub3RoZXIgZW1haWwgY2xpZW50IGlmIG5lZWRlZC4iLAogICJuYW1lIjogIlBlcnNpc3RlbnQgRW1haWwgTm90aWZpY2F0aW9ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L3BlcnNpc3RlbnQtZW1haWwtbm90aWZpY2F0aW9ucyIsCiAgInV1aWQiOiAicGVyc2lzdGVudC1lbWFpbC1ub3RpZmljYXRpb25zQGZ0aHgiLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "06m6fhs50vlrwkgdk6cvkcl5f155a1w8szs1g9pzryf8mmldgmdd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldmVyIGhpZGUgYSBuZXcgbWFpbCBub3RpZmljYXRpb24sIGV4Y2VwdCBpZiB5b3UgY2xvc2UgaXQuXG5cblZlcnkgdmVyeSBsaWdodCBleHRlbnNpb24uIEVtYWlsIGNsaWVudHMgc3VwcG9ydGVkOiBUaHVuZGVyYmlyZCwgRXZvbHV0aW9uLCBHZWFyeSwgTWFpbHNwcmluZywgVHlwZUFwcCwgQmx1ZU1haWwuIFBsZWFzZSBhc2sgZm9yIGFub3RoZXIgZW1haWwgY2xpZW50IGlmIG5lZWRlZC4iLAogICJuYW1lIjogIlBlcnNpc3RlbnQgRW1haWwgTm90aWZpY2F0aW9ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L3BlcnNpc3RlbnQtZW1haWwtbm90aWZpY2F0aW9ucyIsCiAgInV1aWQiOiAicGVyc2lzdGVudC1lbWFpbC1ub3RpZmljYXRpb25zQGZ0aHgiLAogICJ2ZXJzaW9uIjogMwp9"}}}
@@ -419,7 +421,7 @@
 , {"uuid": "bluetooth-battery@michalw.github.com", "name": "Bluetooth battery indicator", "pname": "bluetooth-battery", "description": "Bluetooth battery indicator", "link": "https://extensions.gnome.org/extension/3991/bluetooth-battery/", "shell_version_map": {"38": {"version": "19", "sha256": "17wnkw6js16ivbpkizj9ph55nj2z2wcdj73c2yh4lvyifpks54ih", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsdWV0b290aCBiYXR0ZXJ5IGluZGljYXRvciIsCiAgImdldHRleHQtZG9tYWluIjogImJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgIm5hbWUiOiAiQmx1ZXRvb3RoIGJhdHRlcnkgaW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWljaGFsVy9nbm9tZS1ibHVldG9vdGgtYmF0dGVyeS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImJsdWV0b290aC1iYXR0ZXJ5QG1pY2hhbHcuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxOQp9"}, "40": {"version": "19", "sha256": "17wnkw6js16ivbpkizj9ph55nj2z2wcdj73c2yh4lvyifpks54ih", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsdWV0b290aCBiYXR0ZXJ5IGluZGljYXRvciIsCiAgImdldHRleHQtZG9tYWluIjogImJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgIm5hbWUiOiAiQmx1ZXRvb3RoIGJhdHRlcnkgaW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWljaGFsVy9nbm9tZS1ibHVldG9vdGgtYmF0dGVyeS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImJsdWV0b290aC1iYXR0ZXJ5QG1pY2hhbHcuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxOQp9"}, "41": {"version": "19", "sha256": "17wnkw6js16ivbpkizj9ph55nj2z2wcdj73c2yh4lvyifpks54ih", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsdWV0b290aCBiYXR0ZXJ5IGluZGljYXRvciIsCiAgImdldHRleHQtZG9tYWluIjogImJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgIm5hbWUiOiAiQmx1ZXRvb3RoIGJhdHRlcnkgaW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWljaGFsVy9nbm9tZS1ibHVldG9vdGgtYmF0dGVyeS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImJsdWV0b290aC1iYXR0ZXJ5QG1pY2hhbHcuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxOQp9"}}}
 , {"uuid": "gnome-extension-all-ip-addresses@havekes.eu", "name": "All IP Addresses", "pname": "all-ip-addresses", "description": "Show IP addresses for LAN, WAN IPv6 and VPN in the GNOME panel. Click on the address to cycle trough different interfaces.", "link": "https://extensions.gnome.org/extension/3994/all-ip-addresses/", "shell_version_map": {"38": {"version": "3", "sha256": "1s08inwbr9g50g275sxsjggqgwh59gz664ay944ngn755vnr9y1p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgSVAgYWRkcmVzc2VzIGZvciBMQU4sIFdBTiBJUHY2IGFuZCBWUE4gaW4gdGhlIEdOT01FIHBhbmVsLiBDbGljayBvbiB0aGUgYWRkcmVzcyB0byBjeWNsZSB0cm91Z2ggZGlmZmVyZW50IGludGVyZmFjZXMuIiwKICAibmFtZSI6ICJBbGwgSVAgQWRkcmVzc2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9waGF2ZWtlcy9nbm9tZS1leHRlbnNpb24tYWxsLWlwLWFkZHJlc3NlcyIsCiAgInV1aWQiOiAiZ25vbWUtZXh0ZW5zaW9uLWFsbC1pcC1hZGRyZXNzZXNAaGF2ZWtlcy5ldSIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "3", "sha256": "1s08inwbr9g50g275sxsjggqgwh59gz664ay944ngn755vnr9y1p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgSVAgYWRkcmVzc2VzIGZvciBMQU4sIFdBTiBJUHY2IGFuZCBWUE4gaW4gdGhlIEdOT01FIHBhbmVsLiBDbGljayBvbiB0aGUgYWRkcmVzcyB0byBjeWNsZSB0cm91Z2ggZGlmZmVyZW50IGludGVyZmFjZXMuIiwKICAibmFtZSI6ICJBbGwgSVAgQWRkcmVzc2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9waGF2ZWtlcy9nbm9tZS1leHRlbnNpb24tYWxsLWlwLWFkZHJlc3NlcyIsCiAgInV1aWQiOiAiZ25vbWUtZXh0ZW5zaW9uLWFsbC1pcC1hZGRyZXNzZXNAaGF2ZWtlcy5ldSIsCiAgInZlcnNpb24iOiAzCn0="}, "41": {"version": "3", "sha256": "1s08inwbr9g50g275sxsjggqgwh59gz664ay944ngn755vnr9y1p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgSVAgYWRkcmVzc2VzIGZvciBMQU4sIFdBTiBJUHY2IGFuZCBWUE4gaW4gdGhlIEdOT01FIHBhbmVsLiBDbGljayBvbiB0aGUgYWRkcmVzcyB0byBjeWNsZSB0cm91Z2ggZGlmZmVyZW50IGludGVyZmFjZXMuIiwKICAibmFtZSI6ICJBbGwgSVAgQWRkcmVzc2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9waGF2ZWtlcy9nbm9tZS1leHRlbnNpb24tYWxsLWlwLWFkZHJlc3NlcyIsCiAgInV1aWQiOiAiZ25vbWUtZXh0ZW5zaW9uLWFsbC1pcC1hZGRyZXNzZXNAaGF2ZWtlcy5ldSIsCiAgInZlcnNpb24iOiAzCn0="}}}
 , {"uuid": "app-grid-tweaks@Selenium-H", "name": "App Grid Tweaks", "pname": "app-grid-tweaks", "description": "Customize the application grid view.\n\nSet the rows, columns and the app icon size for a particular configuration to work.\nIf the screen space is out numbered, reduce the icon size to fit all the rows and columns.\nOr reduce the number of rows and columns.\n\nPress the Refresh button on the left of header bar to apply changes", "link": "https://extensions.gnome.org/extension/3997/app-grid-tweaks/", "shell_version_map": {"38": {"version": "4", "sha256": "17hriwcwhkjp3n20q7bm7iylr8862ghvnagf2xk0ci2hxwwbyc92", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiQ3VzdG9taXplIHRoZSBhcHBsaWNhdGlvbiBncmlkIHZpZXcuIiwKICAiZGVzY3JpcHRpb24iOiAiQ3VzdG9taXplIHRoZSBhcHBsaWNhdGlvbiBncmlkIHZpZXcuXG5cblNldCB0aGUgcm93cywgY29sdW1ucyBhbmQgdGhlIGFwcCBpY29uIHNpemUgZm9yIGEgcGFydGljdWxhciBjb25maWd1cmF0aW9uIHRvIHdvcmsuXG5JZiB0aGUgc2NyZWVuIHNwYWNlIGlzIG91dCBudW1iZXJlZCwgcmVkdWNlIHRoZSBpY29uIHNpemUgdG8gZml0IGFsbCB0aGUgcm93cyBhbmQgY29sdW1ucy5cbk9yIHJlZHVjZSB0aGUgbnVtYmVyIG9mIHJvd3MgYW5kIGNvbHVtbnMuXG5cblByZXNzIHRoZSBSZWZyZXNoIGJ1dHRvbiBvbiB0aGUgbGVmdCBvZiBoZWFkZXIgYmFyIHRvIGFwcGx5IGNoYW5nZXMiLAogICJuYW1lIjogIkFwcCBHcmlkIFR3ZWFrcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hcHAtZ3JpZC10d2Vha3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJzdGF0dXMiOiAiIiwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TZWxlbml1bS1IL0FwcC1HcmlkLVR3ZWFrcyIsCiAgInV1aWQiOiAiYXBwLWdyaWQtdHdlYWtzQFNlbGVuaXVtLUgiLAogICJ2ZXJzaW9uIjogNAp9"}, "40": {"version": "4", "sha256": "17hriwcwhkjp3n20q7bm7iylr8862ghvnagf2xk0ci2hxwwbyc92", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiQ3VzdG9taXplIHRoZSBhcHBsaWNhdGlvbiBncmlkIHZpZXcuIiwKICAiZGVzY3JpcHRpb24iOiAiQ3VzdG9taXplIHRoZSBhcHBsaWNhdGlvbiBncmlkIHZpZXcuXG5cblNldCB0aGUgcm93cywgY29sdW1ucyBhbmQgdGhlIGFwcCBpY29uIHNpemUgZm9yIGEgcGFydGljdWxhciBjb25maWd1cmF0aW9uIHRvIHdvcmsuXG5JZiB0aGUgc2NyZWVuIHNwYWNlIGlzIG91dCBudW1iZXJlZCwgcmVkdWNlIHRoZSBpY29uIHNpemUgdG8gZml0IGFsbCB0aGUgcm93cyBhbmQgY29sdW1ucy5cbk9yIHJlZHVjZSB0aGUgbnVtYmVyIG9mIHJvd3MgYW5kIGNvbHVtbnMuXG5cblByZXNzIHRoZSBSZWZyZXNoIGJ1dHRvbiBvbiB0aGUgbGVmdCBvZiBoZWFkZXIgYmFyIHRvIGFwcGx5IGNoYW5nZXMiLAogICJuYW1lIjogIkFwcCBHcmlkIFR3ZWFrcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hcHAtZ3JpZC10d2Vha3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJzdGF0dXMiOiAiIiwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TZWxlbml1bS1IL0FwcC1HcmlkLVR3ZWFrcyIsCiAgInV1aWQiOiAiYXBwLWdyaWQtdHdlYWtzQFNlbGVuaXVtLUgiLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "17hriwcwhkjp3n20q7bm7iylr8862ghvnagf2xk0ci2hxwwbyc92", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiQ3VzdG9taXplIHRoZSBhcHBsaWNhdGlvbiBncmlkIHZpZXcuIiwKICAiZGVzY3JpcHRpb24iOiAiQ3VzdG9taXplIHRoZSBhcHBsaWNhdGlvbiBncmlkIHZpZXcuXG5cblNldCB0aGUgcm93cywgY29sdW1ucyBhbmQgdGhlIGFwcCBpY29uIHNpemUgZm9yIGEgcGFydGljdWxhciBjb25maWd1cmF0aW9uIHRvIHdvcmsuXG5JZiB0aGUgc2NyZWVuIHNwYWNlIGlzIG91dCBudW1iZXJlZCwgcmVkdWNlIHRoZSBpY29uIHNpemUgdG8gZml0IGFsbCB0aGUgcm93cyBhbmQgY29sdW1ucy5cbk9yIHJlZHVjZSB0aGUgbnVtYmVyIG9mIHJvd3MgYW5kIGNvbHVtbnMuXG5cblByZXNzIHRoZSBSZWZyZXNoIGJ1dHRvbiBvbiB0aGUgbGVmdCBvZiBoZWFkZXIgYmFyIHRvIGFwcGx5IGNoYW5nZXMiLAogICJuYW1lIjogIkFwcCBHcmlkIFR3ZWFrcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hcHAtZ3JpZC10d2Vha3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJzdGF0dXMiOiAiIiwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TZWxlbml1bS1IL0FwcC1HcmlkLVR3ZWFrcyIsCiAgInV1aWQiOiAiYXBwLWdyaWQtdHdlYWtzQFNlbGVuaXVtLUgiLAogICJ2ZXJzaW9uIjogNAp9"}}}
-, {"uuid": "babar@fthx", "name": "BaBar Task Bar", "pname": "babar", "description": "Task bar. App grid, favorites, workspaces and tasks in panel. Light extension.\n\n Replace 'Activities' button by all current workspaces and apps buttons. Switch workspace/app or toggle overview by clicking on these buttons. Drag and drop favorite, task, dash item or app grid item to any workspace (you cannot reorder tasks inside a workspace). Persistent window preview with right-click (right-click again or click on preview to close it). You can move this preview anywhere. Change 'Places' label to an icon. Settings in preferences UI.\n\n You can use names for workspaces: there are two ways for that. 1) Edit the string array 'org.gnome.desktop.wm.preferences.workspace-names' gsettings key (through dconf editor, e.g.). 2) Use official GNOME extension Workspaces Indicator's settings. You don't have to write a long enough list: numbers are displayed if no workspace name is defined.\n\n Changelog: https://github.com/fthx/babar/issues/2", "link": "https://extensions.gnome.org/extension/4000/babar/", "shell_version_map": {"38": {"version": "56", "sha256": "1iwk1fi2kslpnjfy2xmq9baryrvijm9rh8m9zk15mbka4jmmkqnk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2sgYmFyLiBBcHAgZ3JpZCwgZmF2b3JpdGVzLCB3b3Jrc3BhY2VzIGFuZCB0YXNrcyBpbiBwYW5lbC4gTGlnaHQgZXh0ZW5zaW9uLlxuXG4gUmVwbGFjZSAnQWN0aXZpdGllcycgYnV0dG9uIGJ5IGFsbCBjdXJyZW50IHdvcmtzcGFjZXMgYW5kIGFwcHMgYnV0dG9ucy4gU3dpdGNoIHdvcmtzcGFjZS9hcHAgb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuIERyYWcgYW5kIGRyb3AgZmF2b3JpdGUsIHRhc2ssIGRhc2ggaXRlbSBvciBhcHAgZ3JpZCBpdGVtIHRvIGFueSB3b3Jrc3BhY2UgKHlvdSBjYW5ub3QgcmVvcmRlciB0YXNrcyBpbnNpZGUgYSB3b3Jrc3BhY2UpLiBQZXJzaXN0ZW50IHdpbmRvdyBwcmV2aWV3IHdpdGggcmlnaHQtY2xpY2sgKHJpZ2h0LWNsaWNrIGFnYWluIG9yIGNsaWNrIG9uIHByZXZpZXcgdG8gY2xvc2UgaXQpLiBZb3UgY2FuIG1vdmUgdGhpcyBwcmV2aWV3IGFueXdoZXJlLiBDaGFuZ2UgJ1BsYWNlcycgbGFiZWwgdG8gYW4gaWNvbi4gU2V0dGluZ3MgaW4gcHJlZmVyZW5jZXMgVUkuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuXG5cbiBDaGFuZ2Vsb2c6IGh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2JhYmFyL2lzc3Vlcy8yIiwKICAibmFtZSI6ICJCYUJhciBUYXNrIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvYmFiYXIiLAogICJ1dWlkIjogImJhYmFyQGZ0aHgiLAogICJ2ZXJzaW9uIjogNTYKfQ=="}, "40": {"version": "56", "sha256": "1iwk1fi2kslpnjfy2xmq9baryrvijm9rh8m9zk15mbka4jmmkqnk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2sgYmFyLiBBcHAgZ3JpZCwgZmF2b3JpdGVzLCB3b3Jrc3BhY2VzIGFuZCB0YXNrcyBpbiBwYW5lbC4gTGlnaHQgZXh0ZW5zaW9uLlxuXG4gUmVwbGFjZSAnQWN0aXZpdGllcycgYnV0dG9uIGJ5IGFsbCBjdXJyZW50IHdvcmtzcGFjZXMgYW5kIGFwcHMgYnV0dG9ucy4gU3dpdGNoIHdvcmtzcGFjZS9hcHAgb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuIERyYWcgYW5kIGRyb3AgZmF2b3JpdGUsIHRhc2ssIGRhc2ggaXRlbSBvciBhcHAgZ3JpZCBpdGVtIHRvIGFueSB3b3Jrc3BhY2UgKHlvdSBjYW5ub3QgcmVvcmRlciB0YXNrcyBpbnNpZGUgYSB3b3Jrc3BhY2UpLiBQZXJzaXN0ZW50IHdpbmRvdyBwcmV2aWV3IHdpdGggcmlnaHQtY2xpY2sgKHJpZ2h0LWNsaWNrIGFnYWluIG9yIGNsaWNrIG9uIHByZXZpZXcgdG8gY2xvc2UgaXQpLiBZb3UgY2FuIG1vdmUgdGhpcyBwcmV2aWV3IGFueXdoZXJlLiBDaGFuZ2UgJ1BsYWNlcycgbGFiZWwgdG8gYW4gaWNvbi4gU2V0dGluZ3MgaW4gcHJlZmVyZW5jZXMgVUkuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuXG5cbiBDaGFuZ2Vsb2c6IGh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2JhYmFyL2lzc3Vlcy8yIiwKICAibmFtZSI6ICJCYUJhciBUYXNrIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvYmFiYXIiLAogICJ1dWlkIjogImJhYmFyQGZ0aHgiLAogICJ2ZXJzaW9uIjogNTYKfQ=="}, "41": {"version": "56", "sha256": "1iwk1fi2kslpnjfy2xmq9baryrvijm9rh8m9zk15mbka4jmmkqnk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2sgYmFyLiBBcHAgZ3JpZCwgZmF2b3JpdGVzLCB3b3Jrc3BhY2VzIGFuZCB0YXNrcyBpbiBwYW5lbC4gTGlnaHQgZXh0ZW5zaW9uLlxuXG4gUmVwbGFjZSAnQWN0aXZpdGllcycgYnV0dG9uIGJ5IGFsbCBjdXJyZW50IHdvcmtzcGFjZXMgYW5kIGFwcHMgYnV0dG9ucy4gU3dpdGNoIHdvcmtzcGFjZS9hcHAgb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuIERyYWcgYW5kIGRyb3AgZmF2b3JpdGUsIHRhc2ssIGRhc2ggaXRlbSBvciBhcHAgZ3JpZCBpdGVtIHRvIGFueSB3b3Jrc3BhY2UgKHlvdSBjYW5ub3QgcmVvcmRlciB0YXNrcyBpbnNpZGUgYSB3b3Jrc3BhY2UpLiBQZXJzaXN0ZW50IHdpbmRvdyBwcmV2aWV3IHdpdGggcmlnaHQtY2xpY2sgKHJpZ2h0LWNsaWNrIGFnYWluIG9yIGNsaWNrIG9uIHByZXZpZXcgdG8gY2xvc2UgaXQpLiBZb3UgY2FuIG1vdmUgdGhpcyBwcmV2aWV3IGFueXdoZXJlLiBDaGFuZ2UgJ1BsYWNlcycgbGFiZWwgdG8gYW4gaWNvbi4gU2V0dGluZ3MgaW4gcHJlZmVyZW5jZXMgVUkuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuXG5cbiBDaGFuZ2Vsb2c6IGh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2JhYmFyL2lzc3Vlcy8yIiwKICAibmFtZSI6ICJCYUJhciBUYXNrIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvYmFiYXIiLAogICJ1dWlkIjogImJhYmFyQGZ0aHgiLAogICJ2ZXJzaW9uIjogNTYKfQ=="}}}
+, {"uuid": "babar@fthx", "name": "BaBar Task Bar", "pname": "babar", "description": "Task bar. App grid, favorites, workspaces and tasks in panel. Light extension.\n\n Replace 'Activities' button by all current workspaces and apps buttons. Switch workspace/app or toggle overview by clicking on these buttons. Drag and drop favorite, task, dash item or app grid item to any workspace (you cannot reorder tasks inside a workspace). Persistent window preview with right-click (right-click again or click on preview to close it). You can move this preview anywhere. Change 'Places' label to an icon. Settings in preferences UI.\n\n You can use names for workspaces: there are two ways for that. 1) Edit the string array 'org.gnome.desktop.wm.preferences.workspace-names' gsettings key (through dconf editor, e.g.). 2) Use official GNOME extension Workspaces Indicator's settings. You don't have to write a long enough list: numbers are displayed if no workspace name is defined.\n\n Changelog: https://github.com/fthx/babar/issues/2", "link": "https://extensions.gnome.org/extension/4000/babar/", "shell_version_map": {"38": {"version": "58", "sha256": "0sgsz9skc0d3rx9lap6g8fnmb5ki4ylr8s5f8yk5wkpvzvh3gkgy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2sgYmFyLiBBcHAgZ3JpZCwgZmF2b3JpdGVzLCB3b3Jrc3BhY2VzIGFuZCB0YXNrcyBpbiBwYW5lbC4gTGlnaHQgZXh0ZW5zaW9uLlxuXG4gUmVwbGFjZSAnQWN0aXZpdGllcycgYnV0dG9uIGJ5IGFsbCBjdXJyZW50IHdvcmtzcGFjZXMgYW5kIGFwcHMgYnV0dG9ucy4gU3dpdGNoIHdvcmtzcGFjZS9hcHAgb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuIERyYWcgYW5kIGRyb3AgZmF2b3JpdGUsIHRhc2ssIGRhc2ggaXRlbSBvciBhcHAgZ3JpZCBpdGVtIHRvIGFueSB3b3Jrc3BhY2UgKHlvdSBjYW5ub3QgcmVvcmRlciB0YXNrcyBpbnNpZGUgYSB3b3Jrc3BhY2UpLiBQZXJzaXN0ZW50IHdpbmRvdyBwcmV2aWV3IHdpdGggcmlnaHQtY2xpY2sgKHJpZ2h0LWNsaWNrIGFnYWluIG9yIGNsaWNrIG9uIHByZXZpZXcgdG8gY2xvc2UgaXQpLiBZb3UgY2FuIG1vdmUgdGhpcyBwcmV2aWV3IGFueXdoZXJlLiBDaGFuZ2UgJ1BsYWNlcycgbGFiZWwgdG8gYW4gaWNvbi4gU2V0dGluZ3MgaW4gcHJlZmVyZW5jZXMgVUkuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuXG5cbiBDaGFuZ2Vsb2c6IGh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2JhYmFyL2lzc3Vlcy8yIiwKICAibmFtZSI6ICJCYUJhciBUYXNrIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvYmFiYXIiLAogICJ1dWlkIjogImJhYmFyQGZ0aHgiLAogICJ2ZXJzaW9uIjogNTgKfQ=="}, "40": {"version": "58", "sha256": "0sgsz9skc0d3rx9lap6g8fnmb5ki4ylr8s5f8yk5wkpvzvh3gkgy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2sgYmFyLiBBcHAgZ3JpZCwgZmF2b3JpdGVzLCB3b3Jrc3BhY2VzIGFuZCB0YXNrcyBpbiBwYW5lbC4gTGlnaHQgZXh0ZW5zaW9uLlxuXG4gUmVwbGFjZSAnQWN0aXZpdGllcycgYnV0dG9uIGJ5IGFsbCBjdXJyZW50IHdvcmtzcGFjZXMgYW5kIGFwcHMgYnV0dG9ucy4gU3dpdGNoIHdvcmtzcGFjZS9hcHAgb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuIERyYWcgYW5kIGRyb3AgZmF2b3JpdGUsIHRhc2ssIGRhc2ggaXRlbSBvciBhcHAgZ3JpZCBpdGVtIHRvIGFueSB3b3Jrc3BhY2UgKHlvdSBjYW5ub3QgcmVvcmRlciB0YXNrcyBpbnNpZGUgYSB3b3Jrc3BhY2UpLiBQZXJzaXN0ZW50IHdpbmRvdyBwcmV2aWV3IHdpdGggcmlnaHQtY2xpY2sgKHJpZ2h0LWNsaWNrIGFnYWluIG9yIGNsaWNrIG9uIHByZXZpZXcgdG8gY2xvc2UgaXQpLiBZb3UgY2FuIG1vdmUgdGhpcyBwcmV2aWV3IGFueXdoZXJlLiBDaGFuZ2UgJ1BsYWNlcycgbGFiZWwgdG8gYW4gaWNvbi4gU2V0dGluZ3MgaW4gcHJlZmVyZW5jZXMgVUkuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuXG5cbiBDaGFuZ2Vsb2c6IGh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2JhYmFyL2lzc3Vlcy8yIiwKICAibmFtZSI6ICJCYUJhciBUYXNrIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvYmFiYXIiLAogICJ1dWlkIjogImJhYmFyQGZ0aHgiLAogICJ2ZXJzaW9uIjogNTgKfQ=="}, "41": {"version": "58", "sha256": "0sgsz9skc0d3rx9lap6g8fnmb5ki4ylr8s5f8yk5wkpvzvh3gkgy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2sgYmFyLiBBcHAgZ3JpZCwgZmF2b3JpdGVzLCB3b3Jrc3BhY2VzIGFuZCB0YXNrcyBpbiBwYW5lbC4gTGlnaHQgZXh0ZW5zaW9uLlxuXG4gUmVwbGFjZSAnQWN0aXZpdGllcycgYnV0dG9uIGJ5IGFsbCBjdXJyZW50IHdvcmtzcGFjZXMgYW5kIGFwcHMgYnV0dG9ucy4gU3dpdGNoIHdvcmtzcGFjZS9hcHAgb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuIERyYWcgYW5kIGRyb3AgZmF2b3JpdGUsIHRhc2ssIGRhc2ggaXRlbSBvciBhcHAgZ3JpZCBpdGVtIHRvIGFueSB3b3Jrc3BhY2UgKHlvdSBjYW5ub3QgcmVvcmRlciB0YXNrcyBpbnNpZGUgYSB3b3Jrc3BhY2UpLiBQZXJzaXN0ZW50IHdpbmRvdyBwcmV2aWV3IHdpdGggcmlnaHQtY2xpY2sgKHJpZ2h0LWNsaWNrIGFnYWluIG9yIGNsaWNrIG9uIHByZXZpZXcgdG8gY2xvc2UgaXQpLiBZb3UgY2FuIG1vdmUgdGhpcyBwcmV2aWV3IGFueXdoZXJlLiBDaGFuZ2UgJ1BsYWNlcycgbGFiZWwgdG8gYW4gaWNvbi4gU2V0dGluZ3MgaW4gcHJlZmVyZW5jZXMgVUkuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuXG5cbiBDaGFuZ2Vsb2c6IGh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2JhYmFyL2lzc3Vlcy8yIiwKICAibmFtZSI6ICJCYUJhciBUYXNrIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvYmFiYXIiLAogICJ1dWlkIjogImJhYmFyQGZ0aHgiLAogICJ2ZXJzaW9uIjogNTgKfQ=="}}}
 , {"uuid": "kitsch@fopdoodle.net", "name": "Kitsch", "pname": "kitsch", "description": "Kitsch is a collection of cheap, popular, and marketable improvements to Gnome. One could consider it applying a cosmetic surgery to Gnome.\n\nKitsch can easily be configured and offers the following features:\n- remove application menu from the top bar\n- remove the activity button from the top bar\n- periodically change the background picture\n\nThis extension does not come with any button on the panel. Visit the website for a documentation.", "link": "https://extensions.gnome.org/extension/4001/kitsch/", "shell_version_map": {"38": {"version": "2", "sha256": "16zwz0p4f8zizr14k4jmdixgnjd0a67d0i3w6clrqgfl49cpdcdv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktpdHNjaCBpcyBhIGNvbGxlY3Rpb24gb2YgY2hlYXAsIHBvcHVsYXIsIGFuZCBtYXJrZXRhYmxlIGltcHJvdmVtZW50cyB0byBHbm9tZS4gT25lIGNvdWxkIGNvbnNpZGVyIGl0IGFwcGx5aW5nIGEgY29zbWV0aWMgc3VyZ2VyeSB0byBHbm9tZS5cblxuS2l0c2NoIGNhbiBlYXNpbHkgYmUgY29uZmlndXJlZCBhbmQgb2ZmZXJzIHRoZSBmb2xsb3dpbmcgZmVhdHVyZXM6XG4tIHJlbW92ZSBhcHBsaWNhdGlvbiBtZW51IGZyb20gdGhlIHRvcCBiYXJcbi0gcmVtb3ZlIHRoZSBhY3Rpdml0eSBidXR0b24gZnJvbSB0aGUgdG9wIGJhclxuLSBwZXJpb2RpY2FsbHkgY2hhbmdlIHRoZSBiYWNrZ3JvdW5kIHBpY3R1cmVcblxuVGhpcyBleHRlbnNpb24gZG9lcyBub3QgY29tZSB3aXRoIGFueSBidXR0b24gb24gdGhlIHBhbmVsLiBWaXNpdCB0aGUgd2Vic2l0ZSBmb3IgYSBkb2N1bWVudGF0aW9uLiIsCiAgIm5hbWUiOiAiS2l0c2NoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmtpdHNjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VudGU3Ni9raXRzY2gvIiwKICAidXVpZCI6ICJraXRzY2hAZm9wZG9vZGxlLm5ldCIsCiAgInZlcnNpb24iOiAyCn0="}, "40": {"version": "5", "sha256": "1bbbdhf73sv240bid4s604g6r8axd40ph2yyf23z5fpj3679g2xr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktpdHNjaCBpcyBhIGNvbGxlY3Rpb24gb2YgY2hlYXAsIHBvcHVsYXIsIGFuZCBtYXJrZXRhYmxlIGltcHJvdmVtZW50cyB0byBHbm9tZS4gT25lIGNvdWxkIGNvbnNpZGVyIGl0IGFwcGx5aW5nIGEgY29zbWV0aWMgc3VyZ2VyeSB0byBHbm9tZS5cblxuS2l0c2NoIGNhbiBlYXNpbHkgYmUgY29uZmlndXJlZCBhbmQgb2ZmZXJzIHRoZSBmb2xsb3dpbmcgZmVhdHVyZXM6XG4tIHJlbW92ZSBhcHBsaWNhdGlvbiBtZW51IGZyb20gdGhlIHRvcCBiYXJcbi0gcmVtb3ZlIHRoZSBhY3Rpdml0eSBidXR0b24gZnJvbSB0aGUgdG9wIGJhclxuLSBwZXJpb2RpY2FsbHkgY2hhbmdlIHRoZSBiYWNrZ3JvdW5kIHBpY3R1cmVcblxuVGhpcyBleHRlbnNpb24gZG9lcyBub3QgY29tZSB3aXRoIGFueSBidXR0b24gb24gdGhlIHBhbmVsLiBWaXNpdCB0aGUgd2Vic2l0ZSBmb3IgYSBkb2N1bWVudGF0aW9uLiIsCiAgIm5hbWUiOiAiS2l0c2NoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmtpdHNjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lbnRlNzYva2l0c2NoLyIsCiAgInV1aWQiOiAia2l0c2NoQGZvcGRvb2RsZS5uZXQiLAogICJ2ZXJzaW9uIjogNQp9"}}}
 , {"uuid": "gnome-visuals-top-bar@evendanan.net", "name": "Top Bar Visuals - transparent and blur", "pname": "top-bar-visuals-transparent-and-blur", "description": "Fork of: https://github.com/lamarios/gnome-shell-extension-transparent-top-bar\n\nBring back the adjustable transparency top bar (panel) in GNOME Shell and add blur while at it.\n\nDoes not work well with custom shell themes.", "link": "https://extensions.gnome.org/extension/4003/top-bar-visuals-transparent-and-blur/", "shell_version_map": {"38": {"version": "2", "sha256": "0h1qx7bh4gb3xkc8g8byynfa3imxkx332kh88pm4g9zaa20fxzwr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvcmsgb2Y6IGh0dHBzOi8vZ2l0aHViLmNvbS9sYW1hcmlvcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNwYXJlbnQtdG9wLWJhclxuXG5CcmluZyBiYWNrIHRoZSBhZGp1c3RhYmxlIHRyYW5zcGFyZW5jeSB0b3AgYmFyIChwYW5lbCkgaW4gR05PTUUgU2hlbGwgYW5kIGFkZCBibHVyIHdoaWxlIGF0IGl0LlxuXG5Eb2VzIG5vdCB3b3JrIHdlbGwgd2l0aCBjdXN0b20gc2hlbGwgdGhlbWVzLiIsCiAgIm5hbWUiOiAiVG9wIEJhciBWaXN1YWxzIC0gdHJhbnNwYXJlbnQgYW5kIGJsdXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tZW5ueS9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNwYXJlbnQtdG9wLWJhciIsCiAgInV1aWQiOiAiZ25vbWUtdmlzdWFscy10b3AtYmFyQGV2ZW5kYW5hbi5uZXQiLAogICJ2ZXJzaW9uIjogMgp9"}}}
 , {"uuid": "desktop-lyric@tuberry", "name": "Desktop Lyric", "pname": "desktop-lyric", "description": "Show the lyric of playing songs on the desktop\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/4006/desktop-lyric/", "shell_version_map": {"38": {"version": "3", "sha256": "1fxlszj21ppdl5k2x2samggxlnay5bqly604szv1sjsnfriqzz3k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIGx5cmljIG9mIHBsYXlpbmcgc29uZ3Mgb24gdGhlIGRlc2t0b3BcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGVza3RvcC1seXJpYyIsCiAgIm5hbWUiOiAiRGVza3RvcCBMeXJpYyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kZXNrdG9wLWx5cmljIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9kZXNrdG9wLWx5cmljIiwKICAidXVpZCI6ICJkZXNrdG9wLWx5cmljQHR1YmVycnkiLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "7", "sha256": "1dd8i7845fshc2d04fgzjr1chrnwsfr7qyjjki1svw36mx1qsjm2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIGx5cmljIG9mIHBsYXlpbmcgc29uZ3Mgb24gdGhlIGRlc2t0b3BcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGVza3RvcC1seXJpYyIsCiAgIm5hbWUiOiAiRGVza3RvcCBMeXJpYyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kZXNrdG9wLWx5cmljIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvZGVza3RvcC1seXJpYyIsCiAgInV1aWQiOiAiZGVza3RvcC1seXJpY0B0dWJlcnJ5IiwKICAidmVyc2lvbiI6IDcKfQ=="}, "41": {"version": "12", "sha256": "056cdiw7rlqpxkmca3f1aic7wr9dppvhp1z7wfxl905xn21p9pqf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIGx5cmljIG9mIHBsYXlpbmcgc29uZ3Mgb24gdGhlIGRlc2t0b3BcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlc2t0b3AtbHlyaWMiLAogICJuYW1lIjogIkRlc2t0b3AgTHlyaWMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGVza3RvcC1seXJpYyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2Rlc2t0b3AtbHlyaWMiLAogICJ1dWlkIjogImRlc2t0b3AtbHlyaWNAdHViZXJyeSIsCiAgInZlcnNpb24iOiAxMgp9"}}}
@@ -436,21 +438,22 @@
 , {"uuid": "notification-dismiss@kronosoul.xyz", "name": "Dismiss Notifications on Right Click", "pname": "dismiss-notifications-on-right-click", "description": "Simple extension that removes notification popups when they are right clicked.", "link": "https://extensions.gnome.org/extension/4048/dismiss-notifications-on-right-click/", "shell_version_map": {"38": {"version": "1", "sha256": "19pdz3lg1ybmgvpahfwzzhwk8fyhm1sr3wawddz5z66i22spcgjj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwubm90aWZpY2F0aW9uLWRpc21pc3MiLAogICJkZXNjcmlwdGlvbiI6ICJTaW1wbGUgZXh0ZW5zaW9uIHRoYXQgcmVtb3ZlcyBub3RpZmljYXRpb24gcG9wdXBzIHdoZW4gdGhleSBhcmUgcmlnaHQgY2xpY2tlZC4iLAogICJleHRlbnNpb24taWQiOiAiZ2R0b29scyIsCiAgImdldHRleHQtZG9tYWluIjogIndvcmtzZXRzIiwKICAibmFtZSI6ICJEaXNtaXNzIE5vdGlmaWNhdGlvbnMgb24gUmlnaHQgQ2xpY2siLAogICJvcmlnaW5hbC1hdXRob3IiOiAiYWRtaW5Aa3Jvbm9zb3VsLnh5eiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4wIiwKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmxpcGsvIiwKICAidXVpZCI6ICJub3RpZmljYXRpb24tZGlzbWlzc0Brcm9ub3NvdWwueHl6IiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
 , {"uuid": "disable-gestures-2021@verycrazydog.gmail.com", "name": "Disable Gestures 2021", "pname": "disable-gestures-2021", "description": "Disable all GNOME built-in gestures. Useful for kiosks and touch screen apps.", "link": "https://extensions.gnome.org/extension/4049/disable-gestures-2021/", "shell_version_map": {"40": {"version": "2", "sha256": "006xbxws1cvflsis129hl9sca22nig5prwaxfysxi7m13786rp0h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgYWxsIEdOT01FIGJ1aWx0LWluIGdlc3R1cmVzLiBVc2VmdWwgZm9yIGtpb3NrcyBhbmQgdG91Y2ggc2NyZWVuIGFwcHMuIiwKICAibmFtZSI6ICJEaXNhYmxlIEdlc3R1cmVzIDIwMjEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9WZXJ5Q3JhenlEb2cvZ25vbWUtZGlzYWJsZS1nZXN0dXJlcyIsCiAgInV1aWQiOiAiZGlzYWJsZS1nZXN0dXJlcy0yMDIxQHZlcnljcmF6eWRvZy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}}}
 , {"uuid": "pi-hole@fnxweb.com", "name": "pi-hole", "pname": "pi-hole", "description": "Status and basic controls of local Pi-Hole", "link": "https://extensions.gnome.org/extension/4051/pi-hole/", "shell_version_map": {"38": {"version": "1", "sha256": "0m19lv8zfhh8vqn0ln4a8g4g4hw9p6h98gb656vb0hblp5gsycfm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0YXR1cyBhbmQgYmFzaWMgY29udHJvbHMgb2YgbG9jYWwgUGktSG9sZSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1mbnh3ZWItcGktaG9sZSIsCiAgIm5hbWUiOiAicGktaG9sZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mbnh3ZWItcGktaG9sZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ZueHdlYi9nbm9tZS1zaGVsbC1waS1ob2xlIiwKICAidXVpZCI6ICJwaS1ob2xlQGZueHdlYi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}}}
-, {"uuid": "miniCal3@mtharpe", "name": "Minimalist Calendar 3", "pname": "minimalist-calendar-3", "description": "Remove event list and clock/calendar app buttons from the calendar window. This is just an updated version of v2 by breiq", "link": "https://extensions.gnome.org/extension/4052/minimalist-calendar-3/", "shell_version_map": {"38": {"version": "2", "sha256": "19y4c1r52j0iabkib6pm65gslrl65l0ckhglqy8gxiw9hr7a0lwk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBldmVudCBsaXN0IGFuZCBjbG9jay9jYWxlbmRhciBhcHAgYnV0dG9ucyBmcm9tIHRoZSBjYWxlbmRhciB3aW5kb3cuIFRoaXMgaXMganVzdCBhbiB1cGRhdGVkIHZlcnNpb24gb2YgdjIgYnkgYnJlaXEiLAogICJuYW1lIjogIk1pbmltYWxpc3QgQ2FsZW5kYXIgMyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tdGhhcnBlL2dub21lLW1pbkNhbDMtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJtaW5pQ2FsM0BtdGhhcnBlIiwKICAidmVyc2lvbiI6IDIKfQ=="}, "40": {"version": "2", "sha256": "19y4c1r52j0iabkib6pm65gslrl65l0ckhglqy8gxiw9hr7a0lwk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBldmVudCBsaXN0IGFuZCBjbG9jay9jYWxlbmRhciBhcHAgYnV0dG9ucyBmcm9tIHRoZSBjYWxlbmRhciB3aW5kb3cuIFRoaXMgaXMganVzdCBhbiB1cGRhdGVkIHZlcnNpb24gb2YgdjIgYnkgYnJlaXEiLAogICJuYW1lIjogIk1pbmltYWxpc3QgQ2FsZW5kYXIgMyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tdGhhcnBlL2dub21lLW1pbkNhbDMtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJtaW5pQ2FsM0BtdGhhcnBlIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
+, {"uuid": "miniCal3@mtharpe", "name": "Minimalist Calendar 3", "pname": "minimalist-calendar-3", "description": "Remove event list and clock/calendar app buttons from the calendar window. This is just an updated version of v2 by breiq", "link": "https://extensions.gnome.org/extension/4052/minimalist-calendar-3/", "shell_version_map": {"38": {"version": "3", "sha256": "1vmqx1w9aymwb2a09b07fj18kxpki6blvzbvfamvk84b6x2qcxkn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBldmVudCBsaXN0IGFuZCBjbG9jay9jYWxlbmRhciBhcHAgYnV0dG9ucyBmcm9tIHRoZSBjYWxlbmRhciB3aW5kb3cuIFRoaXMgaXMganVzdCBhbiB1cGRhdGVkIHZlcnNpb24gb2YgdjIgYnkgYnJlaXEiLAogICJuYW1lIjogIk1pbmltYWxpc3QgQ2FsZW5kYXIgMyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbXRoYXJwZS9nbm9tZS1taW5DYWwzLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAibWluaUNhbDNAbXRoYXJwZSIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "3", "sha256": "1vmqx1w9aymwb2a09b07fj18kxpki6blvzbvfamvk84b6x2qcxkn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBldmVudCBsaXN0IGFuZCBjbG9jay9jYWxlbmRhciBhcHAgYnV0dG9ucyBmcm9tIHRoZSBjYWxlbmRhciB3aW5kb3cuIFRoaXMgaXMganVzdCBhbiB1cGRhdGVkIHZlcnNpb24gb2YgdjIgYnkgYnJlaXEiLAogICJuYW1lIjogIk1pbmltYWxpc3QgQ2FsZW5kYXIgMyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbXRoYXJwZS9nbm9tZS1taW5DYWwzLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAibWluaUNhbDNAbXRoYXJwZSIsCiAgInZlcnNpb24iOiAzCn0="}, "41": {"version": "3", "sha256": "1vmqx1w9aymwb2a09b07fj18kxpki6blvzbvfamvk84b6x2qcxkn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBldmVudCBsaXN0IGFuZCBjbG9jay9jYWxlbmRhciBhcHAgYnV0dG9ucyBmcm9tIHRoZSBjYWxlbmRhciB3aW5kb3cuIFRoaXMgaXMganVzdCBhbiB1cGRhdGVkIHZlcnNpb24gb2YgdjIgYnkgYnJlaXEiLAogICJuYW1lIjogIk1pbmltYWxpc3QgQ2FsZW5kYXIgMyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbXRoYXJwZS9nbm9tZS1taW5DYWwzLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAibWluaUNhbDNAbXRoYXJwZSIsCiAgInZlcnNpb24iOiAzCn0="}}}
 , {"uuid": "spotify-artwork-fixer@wjt.me.uk", "name": "Spotify Artwork Fixer", "pname": "spotify-artwork-fixer", "description": "Fix Spotify artwork missing in media notification", "link": "https://extensions.gnome.org/extension/4055/spotify-artwork-fixer/", "shell_version_map": {"38": {"version": "6", "sha256": "0jvvz9p576x95l6592icnswcbs2nhm0i01wpb8a45xy6iwb07nfn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZpeCBTcG90aWZ5IGFydHdvcmsgbWlzc2luZyBpbiBtZWRpYSBub3RpZmljYXRpb24iLAogICJuYW1lIjogIlNwb3RpZnkgQXJ0d29yayBGaXhlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3R1YXJ0aGF5aHVyc3QvZ25vbWUtc2hlbGwtc3BvdGlmeS1hcnR3b3JrLWZpeGVyIiwKICAidXVpZCI6ICJzcG90aWZ5LWFydHdvcmstZml4ZXJAd2p0Lm1lLnVrIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "6", "sha256": "0jvvz9p576x95l6592icnswcbs2nhm0i01wpb8a45xy6iwb07nfn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZpeCBTcG90aWZ5IGFydHdvcmsgbWlzc2luZyBpbiBtZWRpYSBub3RpZmljYXRpb24iLAogICJuYW1lIjogIlNwb3RpZnkgQXJ0d29yayBGaXhlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3R1YXJ0aGF5aHVyc3QvZ25vbWUtc2hlbGwtc3BvdGlmeS1hcnR3b3JrLWZpeGVyIiwKICAidXVpZCI6ICJzcG90aWZ5LWFydHdvcmstZml4ZXJAd2p0Lm1lLnVrIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "41": {"version": "6", "sha256": "0jvvz9p576x95l6592icnswcbs2nhm0i01wpb8a45xy6iwb07nfn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZpeCBTcG90aWZ5IGFydHdvcmsgbWlzc2luZyBpbiBtZWRpYSBub3RpZmljYXRpb24iLAogICJuYW1lIjogIlNwb3RpZnkgQXJ0d29yayBGaXhlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3R1YXJ0aGF5aHVyc3QvZ25vbWUtc2hlbGwtc3BvdGlmeS1hcnR3b3JrLWZpeGVyIiwKICAidXVpZCI6ICJzcG90aWZ5LWFydHdvcmstZml4ZXJAd2p0Lm1lLnVrIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
 , {"uuid": "custom-vpn-toggler@giteduberger.fr", "name": "Custom VPN Toggler (and indicator)", "pname": "custom-vpn-toggler", "description": "Custom VPN Toggler (and indicator) allows to see the status of a VPN (with its icon), see IP address associated and permit to start and stop VPN (from a menu).\n\nThis plugin required an additional script to interact with VPN. \nAn example for netExtender and GlobalProtect are available on extension repository. \nFollow the link to Extension Web Site and see README.", "link": "https://extensions.gnome.org/extension/4061/custom-vpn-toggler/", "shell_version_map": {"38": {"version": "5", "sha256": "09axc2jx7s2bak956yyv6c5826yl54ghriiwdgsajly5lncmypxw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbSBWUE4gVG9nZ2xlciAoYW5kIGluZGljYXRvcikgYWxsb3dzIHRvIHNlZSB0aGUgc3RhdHVzIG9mIGEgVlBOICh3aXRoIGl0cyBpY29uKSwgc2VlIElQIGFkZHJlc3MgYXNzb2NpYXRlZCBhbmQgcGVybWl0IHRvIHN0YXJ0IGFuZCBzdG9wIFZQTiAoZnJvbSBhIG1lbnUpLlxuXG5UaGlzIHBsdWdpbiByZXF1aXJlZCBhbiBhZGRpdGlvbmFsIHNjcmlwdCB0byBpbnRlcmFjdCB3aXRoIFZQTi4gXG5BbiBleGFtcGxlIGZvciBuZXRFeHRlbmRlciBhbmQgR2xvYmFsUHJvdGVjdCBhcmUgYXZhaWxhYmxlIG9uIGV4dGVuc2lvbiByZXBvc2l0b3J5LiBcbkZvbGxvdyB0aGUgbGluayB0byBFeHRlbnNpb24gV2ViIFNpdGUgYW5kIHNlZSBSRUFETUUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9tLXZwbi10b2dnbGVyQGdpdGVkdWJlcmdlci5mciIsCiAgIm5hbWUiOiAiQ3VzdG9tIFZQTiBUb2dnbGVyIChhbmQgaW5kaWNhdG9yKSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJmci5naXRlZHViZXJnZXIuY3VzdG9tLXZwbi10b2dnbGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vWGF2aWVyQmVyZ2VyL2N1c3RvbS12cG4tdG9nZ2xlciIsCiAgInV1aWQiOiAiY3VzdG9tLXZwbi10b2dnbGVyQGdpdGVkdWJlcmdlci5mciIsCiAgInZlcnNpb24iOiA1Cn0="}}}
 , {"uuid": "geary-tray-icon@taylantatli.github.com", "name": "Geary Tray Icon", "pname": "geary-tray-icon", "description": "Show a tray icon for Geary\n\nhttps://github.com/TaylanTatli/geary-tray-icon", "link": "https://extensions.gnome.org/extension/4073/geary-tray-icon/", "shell_version_map": {"38": {"version": "1", "sha256": "11kv47pz5p69j10r23zf8ls3fmanldx7diwsy34fhyxqfxjcd614", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYSB0cmF5IGljb24gZm9yIEdlYXJ5XG5cbmh0dHBzOi8vZ2l0aHViLmNvbS9UYXlsYW5UYXRsaS9nZWFyeS10cmF5LWljb24iLAogICJuYW1lIjogIkdlYXJ5IFRyYXkgSWNvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJnZWFyeS10cmF5LWljb25AdGF5bGFudGF0bGkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}}}
-, {"uuid": "iqair@wotmshuaisi_github", "name": "Iqair Gnome Extension", "pname": "iqair-gnome-extension", "description": "Gnome extension for tracking air quality in real-time. data provider: https://iqair.com/. to get an API token: https://www.iqair.com/us/dashboard/api", "link": "https://extensions.gnome.org/extension/4082/iqair-gnome-extension/", "shell_version_map": {"38": {"version": "6", "sha256": "150rn9gk6nzba30g38bjpgjyqr2a25cysg6fd6p1is92w8lknls4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIGV4dGVuc2lvbiBmb3IgdHJhY2tpbmcgYWlyIHF1YWxpdHkgaW4gcmVhbC10aW1lLiBkYXRhIHByb3ZpZGVyOiBodHRwczovL2lxYWlyLmNvbS8uIHRvIGdldCBhbiBBUEkgdG9rZW46IGh0dHBzOi8vd3d3LmlxYWlyLmNvbS91cy9kYXNoYm9hcmQvYXBpIiwKICAibmFtZSI6ICJJcWFpciBHbm9tZSBFeHRlbnNpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93b3Rtc2h1YWlzaS9pcWFpckdub21lRXh0ZW5zaW9uIiwKICAidXVpZCI6ICJpcWFpckB3b3Rtc2h1YWlzaV9naXRodWIiLAogICJ2ZXJzaW9uIjogNgp9"}, "40": {"version": "11", "sha256": "1j7q32g8zgcvrf3xvvzql9714965kidik5d7rkg41h3jmfqmaxzw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIGV4dGVuc2lvbiBmb3IgdHJhY2tpbmcgYWlyIHF1YWxpdHkgaW4gcmVhbC10aW1lLiBkYXRhIHByb3ZpZGVyOiBodHRwczovL2lxYWlyLmNvbS8uIHRvIGdldCBhbiBBUEkgdG9rZW46IGh0dHBzOi8vd3d3LmlxYWlyLmNvbS91cy9kYXNoYm9hcmQvYXBpIiwKICAibmFtZSI6ICJJcWFpciBHbm9tZSBFeHRlbnNpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd290bXNodWFpc2kvaXFhaXJHbm9tZUV4dGVuc2lvbiIsCiAgInV1aWQiOiAiaXFhaXJAd290bXNodWFpc2lfZ2l0aHViIiwKICAidmVyc2lvbiI6IDExCn0="}}}
+, {"uuid": "iqair@wotmshuaisi_github", "name": "Iqair Gnome Extension", "pname": "iqair-gnome-extension", "description": "Gnome extension for tracking air quality in real-time. data provider: https://iqair.com/. to get an API token: https://www.iqair.com/us/dashboard/api", "link": "https://extensions.gnome.org/extension/4082/iqair-gnome-extension/", "shell_version_map": {"38": {"version": "6", "sha256": "150rn9gk6nzba30g38bjpgjyqr2a25cysg6fd6p1is92w8lknls4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIGV4dGVuc2lvbiBmb3IgdHJhY2tpbmcgYWlyIHF1YWxpdHkgaW4gcmVhbC10aW1lLiBkYXRhIHByb3ZpZGVyOiBodHRwczovL2lxYWlyLmNvbS8uIHRvIGdldCBhbiBBUEkgdG9rZW46IGh0dHBzOi8vd3d3LmlxYWlyLmNvbS91cy9kYXNoYm9hcmQvYXBpIiwKICAibmFtZSI6ICJJcWFpciBHbm9tZSBFeHRlbnNpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93b3Rtc2h1YWlzaS9pcWFpckdub21lRXh0ZW5zaW9uIiwKICAidXVpZCI6ICJpcWFpckB3b3Rtc2h1YWlzaV9naXRodWIiLAogICJ2ZXJzaW9uIjogNgp9"}, "40": {"version": "12", "sha256": "0iz36hq4m8xxn26sar69dwd32n8y78097yj2fwrclcgs5n131d4c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIGV4dGVuc2lvbiBmb3IgdHJhY2tpbmcgYWlyIHF1YWxpdHkgaW4gcmVhbC10aW1lLiBkYXRhIHByb3ZpZGVyOiBodHRwczovL2lxYWlyLmNvbS8uIHRvIGdldCBhbiBBUEkgdG9rZW46IGh0dHBzOi8vd3d3LmlxYWlyLmNvbS91cy9kYXNoYm9hcmQvYXBpIiwKICAibmFtZSI6ICJJcWFpciBHbm9tZSBFeHRlbnNpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dvdG1zaHVhaXNpL2lxYWlyR25vbWVFeHRlbnNpb24iLAogICJ1dWlkIjogImlxYWlyQHdvdG1zaHVhaXNpX2dpdGh1YiIsCiAgInZlcnNpb24iOiAxMgp9"}, "41": {"version": "12", "sha256": "0iz36hq4m8xxn26sar69dwd32n8y78097yj2fwrclcgs5n131d4c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIGV4dGVuc2lvbiBmb3IgdHJhY2tpbmcgYWlyIHF1YWxpdHkgaW4gcmVhbC10aW1lLiBkYXRhIHByb3ZpZGVyOiBodHRwczovL2lxYWlyLmNvbS8uIHRvIGdldCBhbiBBUEkgdG9rZW46IGh0dHBzOi8vd3d3LmlxYWlyLmNvbS91cy9kYXNoYm9hcmQvYXBpIiwKICAibmFtZSI6ICJJcWFpciBHbm9tZSBFeHRlbnNpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dvdG1zaHVhaXNpL2lxYWlyR25vbWVFeHRlbnNpb24iLAogICJ1dWlkIjogImlxYWlyQHdvdG1zaHVhaXNpX2dpdGh1YiIsCiAgInZlcnNpb24iOiAxMgp9"}}}
 , {"uuid": "bigSur-StatusArea@ordissimo.com", "name": "Big Sur Status Area", "pname": "big-sur-status-area", "description": "Move the Power/Network/Volume/User/Date/Notifications menus to the status area. It is a fork of :https://github.com/Fausto-Korpsvart/Big-Sur-StatusArea", "link": "https://extensions.gnome.org/extension/4085/big-sur-status-area/", "shell_version_map": {"38": {"version": "25", "sha256": "0syp7ka1rakzw4rlhhl1klszg56pbhyz787hvkg738j9ycl1spyq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgdGhlIFBvd2VyL05ldHdvcmsvVm9sdW1lL1VzZXIvRGF0ZS9Ob3RpZmljYXRpb25zIG1lbnVzIHRvIHRoZSBzdGF0dXMgYXJlYS4gSXQgaXMgYSBmb3JrIG9mIDpodHRwczovL2dpdGh1Yi5jb20vRmF1c3RvLUtvcnBzdmFydC9CaWctU3VyLVN0YXR1c0FyZWEiLAogICJuYW1lIjogIkJpZyBTdXIgU3RhdHVzIEFyZWEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9PcmRpc3NpbW8vQmlnLVN1ci1TdGF0dXNBcmVhL3RyZWUvNDEiLAogICJ1dWlkIjogImJpZ1N1ci1TdGF0dXNBcmVhQG9yZGlzc2ltby5jb20iLAogICJ2ZXJzaW9uIjogMjUKfQ=="}, "40": {"version": "26", "sha256": "0yb0r44h7qv9agncwr2aw6dj1qm82xxvr3811b77nyapcha9cagh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgdGhlIFBvd2VyL05ldHdvcmsvVm9sdW1lL1VzZXIvRGF0ZS9Ob3RpZmljYXRpb25zIG1lbnVzIHRvIHRoZSBzdGF0dXMgYXJlYS4gSXQgaXMgYSBmb3JrIG9mIDpodHRwczovL2dpdGh1Yi5jb20vRmF1c3RvLUtvcnBzdmFydC9CaWctU3VyLVN0YXR1c0FyZWEiLAogICJuYW1lIjogIkJpZyBTdXIgU3RhdHVzIEFyZWEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwLjAiLAogICAgIjQwLnJjIiwKICAgICI0MC4xIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vT3JkaXNzaW1vL0JpZy1TdXItU3RhdHVzQXJlYS90cmVlLzQxIiwKICAidXVpZCI6ICJiaWdTdXItU3RhdHVzQXJlYUBvcmRpc3NpbW8uY29tIiwKICAidmVyc2lvbiI6IDI2Cn0="}, "41": {"version": "27", "sha256": "17dxs5hgk1iq2d21rvjjswnlgjvlcb8jn30xi752gz94l0y66kcy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgdGhlIFBvd2VyL05ldHdvcmsvVm9sdW1lL1VzZXIvRGF0ZS9Ob3RpZmljYXRpb25zIG1lbnVzIHRvIHRoZSBzdGF0dXMgYXJlYS4gSXQgaXMgYSBmb3JrIG9mIDpodHRwczovL2dpdGh1Yi5jb20vRmF1c3RvLUtvcnBzdmFydC9CaWctU3VyLVN0YXR1c0FyZWEiLAogICJuYW1lIjogIkJpZyBTdXIgU3RhdHVzIEFyZWEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vT3JkaXNzaW1vL0JpZy1TdXItU3RhdHVzQXJlYS90cmVlLzQxIiwKICAidXVpZCI6ICJiaWdTdXItU3RhdHVzQXJlYUBvcmRpc3NpbW8uY29tIiwKICAidmVyc2lvbiI6IDI3Cn0="}}}
 , {"uuid": "disable-touch-osk@pardus.org.tr", "name": "disable-touch-osk", "pname": "disable-touch-osk", "description": "Disable on screen keyboard for touchscreens", "link": "https://extensions.gnome.org/extension/4087/disable-touch-osk/", "shell_version_map": {"38": {"version": "3", "sha256": "10ljbjbswzn9y30n2h39iiz673hhmazr2h14lhhws05m71xvbbfy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgb24gc2NyZWVuIGtleWJvYXJkIGZvciB0b3VjaHNjcmVlbnMiLAogICJuYW1lIjogImRpc2FibGUtdG91Y2gtb3NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL3d3dy5wYXJkdXMub3JnLnRyLyIsCiAgInV1aWQiOiAiZGlzYWJsZS10b3VjaC1vc2tAcGFyZHVzLm9yZy50ciIsCiAgInZlcnNpb24iOiAzCn0="}}}
 , {"uuid": "right_click_for_apps@briansayre", "name": "Right Click for Apps", "pname": "right-click-for-apps", "description": "Allows you to right-click the Activities button to reveal the application menu.", "link": "https://extensions.gnome.org/extension/4090/right-click-for-apps/", "shell_version_map": {"38": {"version": "1", "sha256": "1rzx8ksl48badrwyqxwbgvfgf48z642mdwl57aq280ng61nrndaf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyB5b3UgdG8gcmlnaHQtY2xpY2sgdGhlIEFjdGl2aXRpZXMgYnV0dG9uIHRvIHJldmVhbCB0aGUgYXBwbGljYXRpb24gbWVudS4iLAogICJuYW1lIjogIlJpZ2h0IENsaWNrIGZvciBBcHBzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYnJpYW5zYXlyZS9SaWdodC1DbGljay1Gb3ItQXBwcyIsCiAgInV1aWQiOiAicmlnaHRfY2xpY2tfZm9yX2FwcHNAYnJpYW5zYXlyZSIsCiAgInZlcnNpb24iOiAxCn0="}}}
 , {"uuid": "devbar@ludvigbostrom", "name": "DevBar", "pname": "devbar", "description": "This extension helps you keep track of your development workflow.", "link": "https://extensions.gnome.org/extension/4091/devbar/", "shell_version_map": {"38": {"version": "7", "sha256": "0gpmrsd5dva2d6aisr9fazipfxr2qw8p8bsn9avq8rijkya67c0v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGhlbHBzIHlvdSBrZWVwIHRyYWNrIG9mIHlvdXIgZGV2ZWxvcG1lbnQgd29ya2Zsb3cuIiwKICAibmFtZSI6ICJEZXZCYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x1ZHZpZ2Jvc3Ryb20vRGV2QmFyR25vbWUiLAogICJ1dWlkIjogImRldmJhckBsdWR2aWdib3N0cm9tIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "40": {"version": "7", "sha256": "0gpmrsd5dva2d6aisr9fazipfxr2qw8p8bsn9avq8rijkya67c0v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGhlbHBzIHlvdSBrZWVwIHRyYWNrIG9mIHlvdXIgZGV2ZWxvcG1lbnQgd29ya2Zsb3cuIiwKICAibmFtZSI6ICJEZXZCYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x1ZHZpZ2Jvc3Ryb20vRGV2QmFyR25vbWUiLAogICJ1dWlkIjogImRldmJhckBsdWR2aWdib3N0cm9tIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "41": {"version": "7", "sha256": "0gpmrsd5dva2d6aisr9fazipfxr2qw8p8bsn9avq8rijkya67c0v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGhlbHBzIHlvdSBrZWVwIHRyYWNrIG9mIHlvdXIgZGV2ZWxvcG1lbnQgd29ya2Zsb3cuIiwKICAibmFtZSI6ICJEZXZCYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x1ZHZpZ2Jvc3Ryb20vRGV2QmFyR25vbWUiLAogICJ1dWlkIjogImRldmJhckBsdWR2aWdib3N0cm9tIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
 , {"uuid": "notifications_to_file@fawtytoo", "name": "Notifications To File", "pname": "notifications-to-file", "description": "Notifications are appended to a file in $HOME/.notifications/ with one file created per day.\nEntries show the following information:\nTimestamp\nWhether the banner was shown\nThe urgency\nThe title\nBanner text", "link": "https://extensions.gnome.org/extension/4093/notifications-to-file/", "shell_version_map": {"38": {"version": "2", "sha256": "0rn0c6ma6k129pkjk39dk05j6civxkm32zacv919zd3vvifckr1k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vdGlmaWNhdGlvbnMgYXJlIGFwcGVuZGVkIHRvIGEgZmlsZSBpbiAkSE9NRS8ubm90aWZpY2F0aW9ucy8gd2l0aCBvbmUgZmlsZSBjcmVhdGVkIHBlciBkYXkuXG5FbnRyaWVzIHNob3cgdGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbjpcblRpbWVzdGFtcFxuV2hldGhlciB0aGUgYmFubmVyIHdhcyBzaG93blxuVGhlIHVyZ2VuY3lcblRoZSB0aXRsZVxuQmFubmVyIHRleHQiLAogICJuYW1lIjogIk5vdGlmaWNhdGlvbnMgVG8gRmlsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAibm90aWZpY2F0aW9uc190b19maWxlQGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDIKfQ=="}, "40": {"version": "2", "sha256": "0rn0c6ma6k129pkjk39dk05j6civxkm32zacv919zd3vvifckr1k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vdGlmaWNhdGlvbnMgYXJlIGFwcGVuZGVkIHRvIGEgZmlsZSBpbiAkSE9NRS8ubm90aWZpY2F0aW9ucy8gd2l0aCBvbmUgZmlsZSBjcmVhdGVkIHBlciBkYXkuXG5FbnRyaWVzIHNob3cgdGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbjpcblRpbWVzdGFtcFxuV2hldGhlciB0aGUgYmFubmVyIHdhcyBzaG93blxuVGhlIHVyZ2VuY3lcblRoZSB0aXRsZVxuQmFubmVyIHRleHQiLAogICJuYW1lIjogIk5vdGlmaWNhdGlvbnMgVG8gRmlsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAibm90aWZpY2F0aW9uc190b19maWxlQGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
 , {"uuid": "change_desktop_background_when_empty@fawtytoo", "name": "Change Desktop Wallpaper When Workspace Empty", "pname": "change-desktop-background-when-workspace-empty", "description": "Changes the desktop background when the workspace is or becomes empty, such as switching to an empty workspace, when all windows on a workspace are closed, or after login.\nNo folder needs to be set explicitly, as it will use the folder that the current background is in.", "link": "https://extensions.gnome.org/extension/4096/change-desktop-background-when-workspace-empty/", "shell_version_map": {"38": {"version": "8", "sha256": "0s4s377rjvaqsagkksx7qkx28jml6sri6bw0n01a4p47xwkc4cwq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgdGhlIGRlc2t0b3AgYmFja2dyb3VuZCB3aGVuIHRoZSB3b3Jrc3BhY2UgaXMgb3IgYmVjb21lcyBlbXB0eSwgc3VjaCBhcyBzd2l0Y2hpbmcgdG8gYW4gZW1wdHkgd29ya3NwYWNlLCB3aGVuIGFsbCB3aW5kb3dzIG9uIGEgd29ya3NwYWNlIGFyZSBjbG9zZWQsIG9yIGFmdGVyIGxvZ2luLlxuTm8gZm9sZGVyIG5lZWRzIHRvIGJlIHNldCBleHBsaWNpdGx5LCBhcyBpdCB3aWxsIHVzZSB0aGUgZm9sZGVyIHRoYXQgdGhlIGN1cnJlbnQgYmFja2dyb3VuZCBpcyBpbi4iLAogICJuYW1lIjogIkNoYW5nZSBEZXNrdG9wIFdhbGxwYXBlciBXaGVuIFdvcmtzcGFjZSBFbXB0eSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiY2hhbmdlX2Rlc2t0b3BfYmFja2dyb3VuZF93aGVuX2VtcHR5QGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDgKfQ=="}, "40": {"version": "8", "sha256": "0s4s377rjvaqsagkksx7qkx28jml6sri6bw0n01a4p47xwkc4cwq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgdGhlIGRlc2t0b3AgYmFja2dyb3VuZCB3aGVuIHRoZSB3b3Jrc3BhY2UgaXMgb3IgYmVjb21lcyBlbXB0eSwgc3VjaCBhcyBzd2l0Y2hpbmcgdG8gYW4gZW1wdHkgd29ya3NwYWNlLCB3aGVuIGFsbCB3aW5kb3dzIG9uIGEgd29ya3NwYWNlIGFyZSBjbG9zZWQsIG9yIGFmdGVyIGxvZ2luLlxuTm8gZm9sZGVyIG5lZWRzIHRvIGJlIHNldCBleHBsaWNpdGx5LCBhcyBpdCB3aWxsIHVzZSB0aGUgZm9sZGVyIHRoYXQgdGhlIGN1cnJlbnQgYmFja2dyb3VuZCBpcyBpbi4iLAogICJuYW1lIjogIkNoYW5nZSBEZXNrdG9wIFdhbGxwYXBlciBXaGVuIFdvcmtzcGFjZSBFbXB0eSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiY2hhbmdlX2Rlc2t0b3BfYmFja2dyb3VuZF93aGVuX2VtcHR5QGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
-, {"uuid": "translate-clipboard@lsnow.github.io", "name": "translate-clipboard", "pname": "translate-clipboard", "description": "translate clipboard text", "link": "https://extensions.gnome.org/extension/4097/translate-clipboard/", "shell_version_map": {"38": {"version": "1", "sha256": "091aywnrmaz5j2nzjv1n968a25k8hm6a7ykifrl1b1nswybx5ark", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAidHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xzbm93L3RyYW5zbGF0ZS1jbGlwYm9hcmQiLAogICJ1dWlkIjogInRyYW5zbGF0ZS1jbGlwYm9hcmRAbHNub3cuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDEKfQ=="}, "40": {"version": "10", "sha256": "02y1hhi1l1bn3wv8b1czxk1il4kpaqssdfsnc5y023hlj42rm1v4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAidHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MS4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHNub3cvdHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInV1aWQiOiAidHJhbnNsYXRlLWNsaXBib2FyZEBsc25vdy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "41": {"version": "10", "sha256": "02y1hhi1l1bn3wv8b1czxk1il4kpaqssdfsnc5y023hlj42rm1v4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAidHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MS4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHNub3cvdHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInV1aWQiOiAidHJhbnNsYXRlLWNsaXBib2FyZEBsc25vdy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}}}
+, {"uuid": "translate-clipboard@lsnow.github.io", "name": "translate-clipboard", "pname": "translate-clipboard", "description": "translate clipboard text", "link": "https://extensions.gnome.org/extension/4097/translate-clipboard/", "shell_version_map": {"38": {"version": "1", "sha256": "091aywnrmaz5j2nzjv1n968a25k8hm6a7ykifrl1b1nswybx5ark", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAidHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xzbm93L3RyYW5zbGF0ZS1jbGlwYm9hcmQiLAogICJ1dWlkIjogInRyYW5zbGF0ZS1jbGlwYm9hcmRAbHNub3cuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDEKfQ=="}, "40": {"version": "11", "sha256": "0cvic6zpcvzvzascbcjanwgsbqd5npwz5r99d13pg8yy1y58x9q6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAidHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MS4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHNub3cvdHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInV1aWQiOiAidHJhbnNsYXRlLWNsaXBib2FyZEBsc25vdy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTEKfQ=="}, "41": {"version": "11", "sha256": "0cvic6zpcvzvzascbcjanwgsbqd5npwz5r99d13pg8yy1y58x9q6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAidHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MS4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHNub3cvdHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInV1aWQiOiAidHJhbnNsYXRlLWNsaXBib2FyZEBsc25vdy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTEKfQ=="}}}
 , {"uuid": "no-overview@fthx", "name": "No overview at start-up", "pname": "no-overview", "description": "No overview at start-up. For GNOME Shell 40+.", "link": "https://extensions.gnome.org/extension/4099/no-overview/", "shell_version_map": {"40": {"version": "11", "sha256": "15abz4w5n4md1b0f7c403hiyifslgw7dw2jlhzpn47r7k7giwpdk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vIG92ZXJ2aWV3IGF0IHN0YXJ0LXVwLiBGb3IgR05PTUUgU2hlbGwgNDArLiIsCiAgIm5hbWUiOiAiTm8gb3ZlcnZpZXcgYXQgc3RhcnQtdXAiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImZ0aHgiCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC9uby1vdmVydmlldyIsCiAgInV1aWQiOiAibm8tb3ZlcnZpZXdAZnRoeCIsCiAgInZlcnNpb24iOiAxMQp9"}, "41": {"version": "11", "sha256": "15abz4w5n4md1b0f7c403hiyifslgw7dw2jlhzpn47r7k7giwpdk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vIG92ZXJ2aWV3IGF0IHN0YXJ0LXVwLiBGb3IgR05PTUUgU2hlbGwgNDArLiIsCiAgIm5hbWUiOiAiTm8gb3ZlcnZpZXcgYXQgc3RhcnQtdXAiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImZ0aHgiCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC9uby1vdmVydmlldyIsCiAgInV1aWQiOiAibm8tb3ZlcnZpZXdAZnRoeCIsCiAgInZlcnNpb24iOiAxMQp9"}}}
 , {"uuid": "notification-position@drugo.dev", "name": "Notification Banner Position", "pname": "notification-banner-position", "description": "Changes position of the notification banner from the default to the right side of the screen.", "link": "https://extensions.gnome.org/extension/4105/notification-banner-position/", "shell_version_map": {"38": {"version": "5", "sha256": "0svmx8767hpbmmvm2m90ksqbxqij5f3k5bamz05p73czqk58dizy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgcG9zaXRpb24gb2YgdGhlIG5vdGlmaWNhdGlvbiBiYW5uZXIgZnJvbSB0aGUgZGVmYXVsdCB0byB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgc2NyZWVuLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIEJhbm5lciBQb3NpdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYnJ1bm9kcnVnb3dpY2svbm90aWZpY2F0aW9uLXBvc2l0aW9uLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAibm90aWZpY2F0aW9uLXBvc2l0aW9uQGRydWdvLmRldiIsCiAgInZlcnNpb24iOiA1Cn0="}, "40": {"version": "5", "sha256": "0svmx8767hpbmmvm2m90ksqbxqij5f3k5bamz05p73czqk58dizy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgcG9zaXRpb24gb2YgdGhlIG5vdGlmaWNhdGlvbiBiYW5uZXIgZnJvbSB0aGUgZGVmYXVsdCB0byB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgc2NyZWVuLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIEJhbm5lciBQb3NpdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYnJ1bm9kcnVnb3dpY2svbm90aWZpY2F0aW9uLXBvc2l0aW9uLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAibm90aWZpY2F0aW9uLXBvc2l0aW9uQGRydWdvLmRldiIsCiAgInZlcnNpb24iOiA1Cn0="}, "41": {"version": "5", "sha256": "0svmx8767hpbmmvm2m90ksqbxqij5f3k5bamz05p73czqk58dizy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgcG9zaXRpb24gb2YgdGhlIG5vdGlmaWNhdGlvbiBiYW5uZXIgZnJvbSB0aGUgZGVmYXVsdCB0byB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgc2NyZWVuLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIEJhbm5lciBQb3NpdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYnJ1bm9kcnVnb3dpY2svbm90aWZpY2F0aW9uLXBvc2l0aW9uLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAibm90aWZpY2F0aW9uLXBvc2l0aW9uQGRydWdvLmRldiIsCiAgInZlcnNpb24iOiA1Cn0="}}}
 , {"uuid": "volume_scroller@trflynn89.pm.me", "name": "Volume Scroller", "pname": "volume-scroller", "description": "Scroll up or down in the Top Bar to adjust volume.", "link": "https://extensions.gnome.org/extension/4109/volume-scroller/", "shell_version_map": {"38": {"version": "5", "sha256": "035gkl1g3k3jqmksgmh2aip3v4k8kkbc6gdnndg6lnhz6czn9c12", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNjcm9sbCB1cCBvciBkb3duIGluIHRoZSBUb3AgQmFyIHRvIGFkanVzdCB2b2x1bWUuIiwKICAibmFtZSI6ICJWb2x1bWUgU2Nyb2xsZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAidHJmbHlubjg5QHBtLm1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RyZmx5bm44OS9nbm9tZS1zaGVsbC12b2x1bWUtc2Nyb2xsZXIiLAogICJ1dWlkIjogInZvbHVtZV9zY3JvbGxlckB0cmZseW5uODkucG0ubWUiLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "5", "sha256": "035gkl1g3k3jqmksgmh2aip3v4k8kkbc6gdnndg6lnhz6czn9c12", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNjcm9sbCB1cCBvciBkb3duIGluIHRoZSBUb3AgQmFyIHRvIGFkanVzdCB2b2x1bWUuIiwKICAibmFtZSI6ICJWb2x1bWUgU2Nyb2xsZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAidHJmbHlubjg5QHBtLm1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RyZmx5bm44OS9nbm9tZS1zaGVsbC12b2x1bWUtc2Nyb2xsZXIiLAogICJ1dWlkIjogInZvbHVtZV9zY3JvbGxlckB0cmZseW5uODkucG0ubWUiLAogICJ2ZXJzaW9uIjogNQp9"}}}
+, {"uuid": "Mock-Universal-Menu@zacharygough", "name": "Mock Universal Menu", "pname": "mock-universal-menu", "description": "Creates a Mock Apple Menu (THIS DOES NOTHING WHEN CLICKED)", "link": "https://extensions.gnome.org/extension/4111/mock-universal-menu/", "shell_version_map": {"40": {"version": "5", "sha256": "0irq4aamfdvnsjcb9cj4grp7z0s2rg5dv349v095ss7n7jxcmdx2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZXMgYSBNb2NrIEFwcGxlIE1lbnUgKFRISVMgRE9FUyBOT1RISU5HIFdIRU4gQ0xJQ0tFRCkiLAogICJuYW1lIjogIk1vY2sgVW5pdmVyc2FsIE1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1phbnktWmFjaGFyeTEvTW9jay1Vbml2ZXJzYWwtTWVudSIsCiAgInV1aWQiOiAiTW9jay1Vbml2ZXJzYWwtTWVudUB6YWNoYXJ5Z291Z2giLAogICJ2ZXJzaW9uIjogNQp9"}, "41": {"version": "5", "sha256": "0irq4aamfdvnsjcb9cj4grp7z0s2rg5dv349v095ss7n7jxcmdx2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZXMgYSBNb2NrIEFwcGxlIE1lbnUgKFRISVMgRE9FUyBOT1RISU5HIFdIRU4gQ0xJQ0tFRCkiLAogICJuYW1lIjogIk1vY2sgVW5pdmVyc2FsIE1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1phbnktWmFjaGFyeTEvTW9jay1Vbml2ZXJzYWwtTWVudSIsCiAgInV1aWQiOiAiTW9jay1Vbml2ZXJzYWwtTWVudUB6YWNoYXJ5Z291Z2giLAogICJ2ZXJzaW9uIjogNQp9"}}}
 , {"uuid": "customize-ibus@hollowman.ml", "name": "Customize IBus", "pname": "customize-ibus", "description": "Full customization of appearance, behavior, system tray and input source indicator for IBus\n\nSupport Customization of:\n* Candidate Box Orientation\n* Candidate Box Animation\n* Right-click Candidate Box to Switch the Input Mode or Open the Tray Menu\n* Scroll on Candidate Box to Switch among Pages or Candidates\n* Fix Candidate Box to Not Follow the Caret and Set Fixed Position\n* Candidate Box Font\n* Input Mode Remember and Auto-switch by APP\n* Change Candidate Box Opacity\n* Fix IME List Order\n* Drag Candidate Box to Reposition\n* Show or Hide Candidate Box Page Buttons\n* System Tray Menus and Interaction Settings\n* * Show or Hide Tray Icon\n* * Directly Click Tray Icon to Switch Input Mode\n* * Add Additional Menu\n* Input Source Indicator Appearance and Interaction Settings\n* * Enable Indicator\n* * Only Indicate when Switching Input Mode\n* * Only Indicate when Using ASCII Input Mode\n* * Not Indicate when Using Single Mode IME\n* * Right-click Indicator to Hide\n* * Scroll on Indicator to Switch Input Mode\n* * Indicator Animation\n* * Customize Font\n* * Left-click Indicator to Drag to Move Indicator or Switch Input Mode\n* * Change Opacity\n* * Enable Indicator Show Delay and Configure Showing Timeout\n* * Enable Auto-hide Indicator and Configure Auto-hide Timeout\n* Theme (Stylesheet Provided or Extracted from GNOME Shell Themes, Refer to Help Instructions in Extension for More)\n* Candidate Box Background and its Displaying Style\n* Theme and Background Picture Follow GNOME Night Light Mode\n\nUser Guide: https://hollowmansblog.wordpress.com/2021/08/21/customize-ibus-user-guide/\n\n深度定制 IBus 的外观、行为、系统托盘以及输入指示\n\n支持自定义:\n* 候选框方向\n* 候选框动画\n* 右键单击候选框以切换输入源或打开任务栏菜单\n* 候选框上滚动以切换页面或候选词\n* 固定候选框使其不跟随光标以及设定固定位置\n* 候选框字体\n* 输入模式根据应用记忆并自动切换\n* 更改候选框透明度\n* 固定输入法列表顺序\n* 拖拽移动候选框\n* 显示或隐藏候选框调页按钮\n* 系统任务栏托盘显示和交互设置\n* * 显示或隐藏托盘图标\n* * 直接点击托盘图标切换输入源\n* * 添加额外菜单\n* 输入源指示器及其显示和交互设置\n* * 启用指示器\n* * 仅在切换输入法时指示\n* * 仅在英文输入时指示\n* * 使用单模式输入法时不指示\n* * 右击指示器来将其隐藏\n* * 指示器上滚动来切换输入源\n* * 指示器显示动画\n* * 自定义字体\n* * 左击指示器以拖拽移动或者切换输入源\n* * 更改透明度\n* * 启用延时显示以及配置显示时延\n* * 启用自动隐藏以及配置自动隐藏时延\n* 皮肤样式主题(提供的或者从GNOME Shell主题中提取的样式表,参见扩展的帮助部分来获取更多指导)\n* 候选框背景图片及其显示样式\n* 主题和背景图片跟随GNOME夜灯\n\n使用指南:https://blog.csdn.net/qq_18572023/article/details/116331601", "link": "https://extensions.gnome.org/extension/4112/customize-ibus/", "shell_version_map": {"38": {"version": "80", "sha256": "0w4mgjin6s5h8bc50830nd0b34hvij6vzsmp4ppw52ghnb46813p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZ1bGwgY3VzdG9taXphdGlvbiBvZiBhcHBlYXJhbmNlLCBiZWhhdmlvciwgc3lzdGVtIHRyYXkgYW5kIGlucHV0IHNvdXJjZSBpbmRpY2F0b3IgZm9yIElCdXNcblxuU3VwcG9ydCBDdXN0b21pemF0aW9uIG9mOlxuKiBDYW5kaWRhdGUgQm94IE9yaWVudGF0aW9uXG4qIENhbmRpZGF0ZSBCb3ggQW5pbWF0aW9uXG4qIFJpZ2h0LWNsaWNrIENhbmRpZGF0ZSBCb3ggdG8gU3dpdGNoIHRoZSBJbnB1dCBNb2RlIG9yIE9wZW4gdGhlIFRyYXkgTWVudVxuKiBTY3JvbGwgb24gQ2FuZGlkYXRlIEJveCB0byBTd2l0Y2ggYW1vbmcgUGFnZXMgb3IgQ2FuZGlkYXRlc1xuKiBGaXggQ2FuZGlkYXRlIEJveCB0byBOb3QgRm9sbG93IHRoZSBDYXJldCBhbmQgU2V0IEZpeGVkIFBvc2l0aW9uXG4qIENhbmRpZGF0ZSBCb3ggRm9udFxuKiBJbnB1dCBNb2RlIFJlbWVtYmVyIGFuZCBBdXRvLXN3aXRjaCBieSBBUFBcbiogQ2hhbmdlIENhbmRpZGF0ZSBCb3ggT3BhY2l0eVxuKiBGaXggSU1FIExpc3QgT3JkZXJcbiogRHJhZyBDYW5kaWRhdGUgQm94IHRvIFJlcG9zaXRpb25cbiogU2hvdyBvciBIaWRlIENhbmRpZGF0ZSBCb3ggUGFnZSBCdXR0b25zXG4qIFN5c3RlbSBUcmF5IE1lbnVzIGFuZCBJbnRlcmFjdGlvbiBTZXR0aW5nc1xuKiAqIFNob3cgb3IgSGlkZSBUcmF5IEljb25cbiogKiBEaXJlY3RseSBDbGljayBUcmF5IEljb24gdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBBZGQgQWRkaXRpb25hbCBNZW51XG4qIElucHV0IFNvdXJjZSBJbmRpY2F0b3IgQXBwZWFyYW5jZSBhbmQgSW50ZXJhY3Rpb24gU2V0dGluZ3NcbiogKiBFbmFibGUgSW5kaWNhdG9yXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFN3aXRjaGluZyBJbnB1dCBNb2RlXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFVzaW5nIEFTQ0lJIElucHV0IE1vZGVcbiogKiBOb3QgSW5kaWNhdGUgd2hlbiBVc2luZyBTaW5nbGUgTW9kZSBJTUVcbiogKiBSaWdodC1jbGljayBJbmRpY2F0b3IgdG8gSGlkZVxuKiAqIFNjcm9sbCBvbiBJbmRpY2F0b3IgdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBJbmRpY2F0b3IgQW5pbWF0aW9uXG4qICogQ3VzdG9taXplIEZvbnRcbiogKiBMZWZ0LWNsaWNrIEluZGljYXRvciB0byBEcmFnIHRvIE1vdmUgSW5kaWNhdG9yIG9yIFN3aXRjaCBJbnB1dCBNb2RlXG4qICogQ2hhbmdlIE9wYWNpdHlcbiogKiBFbmFibGUgSW5kaWNhdG9yIFNob3cgRGVsYXkgYW5kIENvbmZpZ3VyZSBTaG93aW5nIFRpbWVvdXRcbiogKiBFbmFibGUgQXV0by1oaWRlIEluZGljYXRvciBhbmQgQ29uZmlndXJlIEF1dG8taGlkZSBUaW1lb3V0XG4qIFRoZW1lIChTdHlsZXNoZWV0IFByb3ZpZGVkIG9yIEV4dHJhY3RlZCBmcm9tIEdOT01FIFNoZWxsIFRoZW1lcywgUmVmZXIgdG8gSGVscCBJbnN0cnVjdGlvbnMgaW4gRXh0ZW5zaW9uIGZvciBNb3JlKVxuKiBDYW5kaWRhdGUgQm94IEJhY2tncm91bmQgYW5kIGl0cyBEaXNwbGF5aW5nIFN0eWxlXG4qIFRoZW1lIGFuZCBCYWNrZ3JvdW5kIFBpY3R1cmUgRm9sbG93IEdOT01FIE5pZ2h0IExpZ2h0IE1vZGVcblxuVXNlciBHdWlkZTogaHR0cHM6Ly9ob2xsb3dtYW5zYmxvZy53b3JkcHJlc3MuY29tLzIwMjEvMDgvMjEvY3VzdG9taXplLWlidXMtdXNlci1ndWlkZS9cblxuXHU2ZGYxXHU1ZWE2XHU1YjlhXHU1MjM2IElCdXMgXHU3Njg0XHU1OTE2XHU4OWMyXHUzMDAxXHU4ODRjXHU0ZTNhXHUzMDAxXHU3Y2ZiXHU3ZWRmXHU2MjU4XHU3NmQ4XHU0ZWU1XHU1M2NhXHU4ZjkzXHU1MTY1XHU2MzA3XHU3OTNhXG5cblx1NjUyZlx1NjMwMVx1ODFlYVx1NWI5YVx1NGU0OVx1ZmYxYVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTY1YjlcdTU0MTFcbiogXHU1MDE5XHU5MDA5XHU2ODQ2XHU1MmE4XHU3NTNiXG4qIFx1NTNmM1x1OTUyZVx1NTM1NVx1NTFmYlx1NTAxOVx1OTAwOVx1Njg0Nlx1NGVlNVx1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFx1NjIxNlx1NjI1M1x1NWYwMFx1NGVmYlx1NTJhMVx1NjgwZlx1ODNkY1x1NTM1NVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTRlMGFcdTZlZGFcdTUyYThcdTRlZTVcdTUyMDdcdTYzNjJcdTk4NzVcdTk3NjJcdTYyMTZcdTUwMTlcdTkwMDlcdThiY2RcbiogXHU1NmZhXHU1YjlhXHU1MDE5XHU5MDA5XHU2ODQ2XHU0ZjdmXHU1MTc2XHU0ZTBkXHU4ZGRmXHU5NjhmXHU1MTQ5XHU2ODA3XHU0ZWU1XHU1M2NhXHU4YmJlXHU1YjlhXHU1NmZhXHU1YjlhXHU0ZjRkXHU3ZjZlXG4qIFx1NTAxOVx1OTAwOVx1Njg0Nlx1NWI1N1x1NGY1M1xuKiBcdThmOTNcdTUxNjVcdTZhMjFcdTVmMGZcdTY4MzlcdTYzNmVcdTVlOTRcdTc1MjhcdThiYjBcdTVmYzZcdTVlNzZcdTgxZWFcdTUyYThcdTUyMDdcdTYzNjJcbiogXHU2NmY0XHU2NTM5XHU1MDE5XHU5MDA5XHU2ODQ2XHU5MDBmXHU2NjBlXHU1ZWE2XG4qIFx1NTZmYVx1NWI5YVx1OGY5M1x1NTE2NVx1NmNkNVx1NTIxN1x1ODg2OFx1OTg3YVx1NWU4ZlxuKiBcdTYyZDZcdTYyZmRcdTc5ZmJcdTUyYThcdTUwMTlcdTkwMDlcdTY4NDZcbiogXHU2NjNlXHU3OTNhXHU2MjE2XHU5NjkwXHU4NWNmXHU1MDE5XHU5MDA5XHU2ODQ2XHU4YzAzXHU5ODc1XHU2MzA5XHU5NGFlXG4qIFx1N2NmYlx1N2VkZlx1NGVmYlx1NTJhMVx1NjgwZlx1NjI1OFx1NzZkOFx1NjYzZVx1NzkzYVx1NTQ4Y1x1NGVhNFx1NGU5Mlx1OGJiZVx1N2Y2ZVxuKiAqIFx1NjYzZVx1NzkzYVx1NjIxNlx1OTY5MFx1ODVjZlx1NjI1OFx1NzZkOFx1NTZmZVx1NjgwN1xuKiAqIFx1NzZmNFx1NjNhNVx1NzBiOVx1NTFmYlx1NjI1OFx1NzZkOFx1NTZmZVx1NjgwN1x1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFxuKiAqIFx1NmRmYlx1NTJhMFx1OTg5ZFx1NTkxNlx1ODNkY1x1NTM1NVxuKiBcdThmOTNcdTUxNjVcdTZlOTBcdTYzMDdcdTc5M2FcdTU2NjhcdTUzY2FcdTUxNzZcdTY2M2VcdTc5M2FcdTU0OGNcdTRlYTRcdTRlOTJcdThiYmVcdTdmNmVcbiogKiBcdTU0MmZcdTc1MjhcdTYzMDdcdTc5M2FcdTU2NjhcbiogKiBcdTRlYzVcdTU3MjhcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZjZDVcdTY1ZjZcdTYzMDdcdTc5M2FcbiogKiBcdTRlYzVcdTU3MjhcdTgyZjFcdTY1ODdcdThmOTNcdTUxNjVcdTY1ZjZcdTYzMDdcdTc5M2FcbiogKiBcdTRmN2ZcdTc1MjhcdTUzNTVcdTZhMjFcdTVmMGZcdThmOTNcdTUxNjVcdTZjZDVcdTY1ZjZcdTRlMGRcdTYzMDdcdTc5M2FcbiogKiBcdTUzZjNcdTUxZmJcdTYzMDdcdTc5M2FcdTU2NjhcdTY3NjVcdTVjMDZcdTUxNzZcdTk2OTBcdTg1Y2ZcbiogKiBcdTYzMDdcdTc5M2FcdTU2NjhcdTRlMGFcdTZlZGFcdTUyYThcdTY3NjVcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZlOTBcbiogKiBcdTYzMDdcdTc5M2FcdTU2NjhcdTY2M2VcdTc5M2FcdTUyYThcdTc1M2JcbiogKiBcdTgxZWFcdTViOWFcdTRlNDlcdTViNTdcdTRmNTNcbiogKiBcdTVkZTZcdTUxZmJcdTYzMDdcdTc5M2FcdTU2NjhcdTRlZTVcdTYyZDZcdTYyZmRcdTc5ZmJcdTUyYThcdTYyMTZcdTgwMDVcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZlOTBcbiogKiBcdTY2ZjRcdTY1MzlcdTkwMGZcdTY2MGVcdTVlYTZcbiogKiBcdTU0MmZcdTc1MjhcdTVlZjZcdTY1ZjZcdTY2M2VcdTc5M2FcdTRlZTVcdTUzY2FcdTkxNGRcdTdmNmVcdTY2M2VcdTc5M2FcdTY1ZjZcdTVlZjZcbiogKiBcdTU0MmZcdTc1MjhcdTgxZWFcdTUyYThcdTk2OTBcdTg1Y2ZcdTRlZTVcdTUzY2FcdTkxNGRcdTdmNmVcdTgxZWFcdTUyYThcdTk2OTBcdTg1Y2ZcdTY1ZjZcdTVlZjZcbiogXHU3NmFlXHU4MGE0XHU2ODM3XHU1ZjBmXHU0ZTNiXHU5ODk4XHVmZjA4XHU2M2QwXHU0ZjliXHU3Njg0XHU2MjE2XHU4MDA1XHU0ZWNlR05PTUUgU2hlbGxcdTRlM2JcdTk4OThcdTRlMmRcdTYzZDBcdTUzZDZcdTc2ODRcdTY4MzdcdTVmMGZcdTg4NjhcdWZmMGNcdTUzYzJcdTg5YzFcdTYyNjlcdTVjNTVcdTc2ODRcdTVlMmVcdTUyYTlcdTkwZThcdTUyMDZcdTY3NjVcdTgzYjdcdTUzZDZcdTY2ZjRcdTU5MWFcdTYzMDdcdTViZmNcdWZmMDlcbiogXHU1MDE5XHU5MDA5XHU2ODQ2XHU4MGNjXHU2NjZmXHU1NmZlXHU3MjQ3XHU1M2NhXHU1MTc2XHU2NjNlXHU3OTNhXHU2ODM3XHU1ZjBmXG4qIFx1NGUzYlx1OTg5OFx1NTQ4Y1x1ODBjY1x1NjY2Zlx1NTZmZVx1NzI0N1x1OGRkZlx1OTY4ZkdOT01FXHU1OTFjXHU3MDZmXG5cblx1NGY3Zlx1NzUyOFx1NjMwN1x1NTM1N1x1ZmYxYWh0dHBzOi8vYmxvZy5jc2RuLm5ldC9xcV8xODU3MjAyMy9hcnRpY2xlL2RldGFpbHMvMTE2MzMxNjAxIiwKICAiZXh0ZW5zaW9uLWlkIjogImN1c3RvbWl6ZS1pYnVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9taXplLWlidXMiLAogICJuYW1lIjogIkN1c3RvbWl6ZSBJQnVzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJob2xsb3dtYW5AaG9sbG93bWFuLm1sIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b21pemUtaWJ1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb3BlblNVU0UvQ3VzdG9taXplLUlCdXMiLAogICJ1dWlkIjogImN1c3RvbWl6ZS1pYnVzQGhvbGxvd21hbi5tbCIsCiAgInZlcnNpb24iOiA4MAp9"}, "40": {"version": "80", "sha256": "0w4mgjin6s5h8bc50830nd0b34hvij6vzsmp4ppw52ghnb46813p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZ1bGwgY3VzdG9taXphdGlvbiBvZiBhcHBlYXJhbmNlLCBiZWhhdmlvciwgc3lzdGVtIHRyYXkgYW5kIGlucHV0IHNvdXJjZSBpbmRpY2F0b3IgZm9yIElCdXNcblxuU3VwcG9ydCBDdXN0b21pemF0aW9uIG9mOlxuKiBDYW5kaWRhdGUgQm94IE9yaWVudGF0aW9uXG4qIENhbmRpZGF0ZSBCb3ggQW5pbWF0aW9uXG4qIFJpZ2h0LWNsaWNrIENhbmRpZGF0ZSBCb3ggdG8gU3dpdGNoIHRoZSBJbnB1dCBNb2RlIG9yIE9wZW4gdGhlIFRyYXkgTWVudVxuKiBTY3JvbGwgb24gQ2FuZGlkYXRlIEJveCB0byBTd2l0Y2ggYW1vbmcgUGFnZXMgb3IgQ2FuZGlkYXRlc1xuKiBGaXggQ2FuZGlkYXRlIEJveCB0byBOb3QgRm9sbG93IHRoZSBDYXJldCBhbmQgU2V0IEZpeGVkIFBvc2l0aW9uXG4qIENhbmRpZGF0ZSBCb3ggRm9udFxuKiBJbnB1dCBNb2RlIFJlbWVtYmVyIGFuZCBBdXRvLXN3aXRjaCBieSBBUFBcbiogQ2hhbmdlIENhbmRpZGF0ZSBCb3ggT3BhY2l0eVxuKiBGaXggSU1FIExpc3QgT3JkZXJcbiogRHJhZyBDYW5kaWRhdGUgQm94IHRvIFJlcG9zaXRpb25cbiogU2hvdyBvciBIaWRlIENhbmRpZGF0ZSBCb3ggUGFnZSBCdXR0b25zXG4qIFN5c3RlbSBUcmF5IE1lbnVzIGFuZCBJbnRlcmFjdGlvbiBTZXR0aW5nc1xuKiAqIFNob3cgb3IgSGlkZSBUcmF5IEljb25cbiogKiBEaXJlY3RseSBDbGljayBUcmF5IEljb24gdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBBZGQgQWRkaXRpb25hbCBNZW51XG4qIElucHV0IFNvdXJjZSBJbmRpY2F0b3IgQXBwZWFyYW5jZSBhbmQgSW50ZXJhY3Rpb24gU2V0dGluZ3NcbiogKiBFbmFibGUgSW5kaWNhdG9yXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFN3aXRjaGluZyBJbnB1dCBNb2RlXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFVzaW5nIEFTQ0lJIElucHV0IE1vZGVcbiogKiBOb3QgSW5kaWNhdGUgd2hlbiBVc2luZyBTaW5nbGUgTW9kZSBJTUVcbiogKiBSaWdodC1jbGljayBJbmRpY2F0b3IgdG8gSGlkZVxuKiAqIFNjcm9sbCBvbiBJbmRpY2F0b3IgdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBJbmRpY2F0b3IgQW5pbWF0aW9uXG4qICogQ3VzdG9taXplIEZvbnRcbiogKiBMZWZ0LWNsaWNrIEluZGljYXRvciB0byBEcmFnIHRvIE1vdmUgSW5kaWNhdG9yIG9yIFN3aXRjaCBJbnB1dCBNb2RlXG4qICogQ2hhbmdlIE9wYWNpdHlcbiogKiBFbmFibGUgSW5kaWNhdG9yIFNob3cgRGVsYXkgYW5kIENvbmZpZ3VyZSBTaG93aW5nIFRpbWVvdXRcbiogKiBFbmFibGUgQXV0by1oaWRlIEluZGljYXRvciBhbmQgQ29uZmlndXJlIEF1dG8taGlkZSBUaW1lb3V0XG4qIFRoZW1lIChTdHlsZXNoZWV0IFByb3ZpZGVkIG9yIEV4dHJhY3RlZCBmcm9tIEdOT01FIFNoZWxsIFRoZW1lcywgUmVmZXIgdG8gSGVscCBJbnN0cnVjdGlvbnMgaW4gRXh0ZW5zaW9uIGZvciBNb3JlKVxuKiBDYW5kaWRhdGUgQm94IEJhY2tncm91bmQgYW5kIGl0cyBEaXNwbGF5aW5nIFN0eWxlXG4qIFRoZW1lIGFuZCBCYWNrZ3JvdW5kIFBpY3R1cmUgRm9sbG93IEdOT01FIE5pZ2h0IExpZ2h0IE1vZGVcblxuVXNlciBHdWlkZTogaHR0cHM6Ly9ob2xsb3dtYW5zYmxvZy53b3JkcHJlc3MuY29tLzIwMjEvMDgvMjEvY3VzdG9taXplLWlidXMtdXNlci1ndWlkZS9cblxuXHU2ZGYxXHU1ZWE2XHU1YjlhXHU1MjM2IElCdXMgXHU3Njg0XHU1OTE2XHU4OWMyXHUzMDAxXHU4ODRjXHU0ZTNhXHUzMDAxXHU3Y2ZiXHU3ZWRmXHU2MjU4XHU3NmQ4XHU0ZWU1XHU1M2NhXHU4ZjkzXHU1MTY1XHU2MzA3XHU3OTNhXG5cblx1NjUyZlx1NjMwMVx1ODFlYVx1NWI5YVx1NGU0OVx1ZmYxYVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTY1YjlcdTU0MTFcbiogXHU1MDE5XHU5MDA5XHU2ODQ2XHU1MmE4XHU3NTNiXG4qIFx1NTNmM1x1OTUyZVx1NTM1NVx1NTFmYlx1NTAxOVx1OTAwOVx1Njg0Nlx1NGVlNVx1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFx1NjIxNlx1NjI1M1x1NWYwMFx1NGVmYlx1NTJhMVx1NjgwZlx1ODNkY1x1NTM1NVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTRlMGFcdTZlZGFcdTUyYThcdTRlZTVcdTUyMDdcdTYzNjJcdTk4NzVcdTk3NjJcdTYyMTZcdTUwMTlcdTkwMDlcdThiY2RcbiogXHU1NmZhXHU1YjlhXHU1MDE5XHU5MDA5XHU2ODQ2XHU0ZjdmXHU1MTc2XHU0ZTBkXHU4ZGRmXHU5NjhmXHU1MTQ5XHU2ODA3XHU0ZWU1XHU1M2NhXHU4YmJlXHU1YjlhXHU1NmZhXHU1YjlhXHU0ZjRkXHU3ZjZlXG4qIFx1NTAxOVx1OTAwOVx1Njg0Nlx1NWI1N1x1NGY1M1xuKiBcdThmOTNcdTUxNjVcdTZhMjFcdTVmMGZcdTY4MzlcdTYzNmVcdTVlOTRcdTc1MjhcdThiYjBcdTVmYzZcdTVlNzZcdTgxZWFcdTUyYThcdTUyMDdcdTYzNjJcbiogXHU2NmY0XHU2NTM5XHU1MDE5XHU5MDA5XHU2ODQ2XHU5MDBmXHU2NjBlXHU1ZWE2XG4qIFx1NTZmYVx1NWI5YVx1OGY5M1x1NTE2NVx1NmNkNVx1NTIxN1x1ODg2OFx1OTg3YVx1NWU4ZlxuKiBcdTYyZDZcdTYyZmRcdTc5ZmJcdTUyYThcdTUwMTlcdTkwMDlcdTY4NDZcbiogXHU2NjNlXHU3OTNhXHU2MjE2XHU5NjkwXHU4NWNmXHU1MDE5XHU5MDA5XHU2ODQ2XHU4YzAzXHU5ODc1XHU2MzA5XHU5NGFlXG4qIFx1N2NmYlx1N2VkZlx1NGVmYlx1NTJhMVx1NjgwZlx1NjI1OFx1NzZkOFx1NjYzZVx1NzkzYVx1NTQ4Y1x1NGVhNFx1NGU5Mlx1OGJiZVx1N2Y2ZVxuKiAqIFx1NjYzZVx1NzkzYVx1NjIxNlx1OTY5MFx1ODVjZlx1NjI1OFx1NzZkOFx1NTZmZVx1NjgwN1xuKiAqIFx1NzZmNFx1NjNhNVx1NzBiOVx1NTFmYlx1NjI1OFx1NzZkOFx1NTZmZVx1NjgwN1x1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFxuKiAqIFx1NmRmYlx1NTJhMFx1OTg5ZFx1NTkxNlx1ODNkY1x1NTM1NVxuKiBcdThmOTNcdTUxNjVcdTZlOTBcdTYzMDdcdTc5M2FcdTU2NjhcdTUzY2FcdTUxNzZcdTY2M2VcdTc5M2FcdTU0OGNcdTRlYTRcdTRlOTJcdThiYmVcdTdmNmVcbiogKiBcdTU0MmZcdTc1MjhcdTYzMDdcdTc5M2FcdTU2NjhcbiogKiBcdTRlYzVcdTU3MjhcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZjZDVcdTY1ZjZcdTYzMDdcdTc5M2FcbiogKiBcdTRlYzVcdTU3MjhcdTgyZjFcdTY1ODdcdThmOTNcdTUxNjVcdTY1ZjZcdTYzMDdcdTc5M2FcbiogKiBcdTRmN2ZcdTc1MjhcdTUzNTVcdTZhMjFcdTVmMGZcdThmOTNcdTUxNjVcdTZjZDVcdTY1ZjZcdTRlMGRcdTYzMDdcdTc5M2FcbiogKiBcdTUzZjNcdTUxZmJcdTYzMDdcdTc5M2FcdTU2NjhcdTY3NjVcdTVjMDZcdTUxNzZcdTk2OTBcdTg1Y2ZcbiogKiBcdTYzMDdcdTc5M2FcdTU2NjhcdTRlMGFcdTZlZGFcdTUyYThcdTY3NjVcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZlOTBcbiogKiBcdTYzMDdcdTc5M2FcdTU2NjhcdTY2M2VcdTc5M2FcdTUyYThcdTc1M2JcbiogKiBcdTgxZWFcdTViOWFcdTRlNDlcdTViNTdcdTRmNTNcbiogKiBcdTVkZTZcdTUxZmJcdTYzMDdcdTc5M2FcdTU2NjhcdTRlZTVcdTYyZDZcdTYyZmRcdTc5ZmJcdTUyYThcdTYyMTZcdTgwMDVcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZlOTBcbiogKiBcdTY2ZjRcdTY1MzlcdTkwMGZcdTY2MGVcdTVlYTZcbiogKiBcdTU0MmZcdTc1MjhcdTVlZjZcdTY1ZjZcdTY2M2VcdTc5M2FcdTRlZTVcdTUzY2FcdTkxNGRcdTdmNmVcdTY2M2VcdTc5M2FcdTY1ZjZcdTVlZjZcbiogKiBcdTU0MmZcdTc1MjhcdTgxZWFcdTUyYThcdTk2OTBcdTg1Y2ZcdTRlZTVcdTUzY2FcdTkxNGRcdTdmNmVcdTgxZWFcdTUyYThcdTk2OTBcdTg1Y2ZcdTY1ZjZcdTVlZjZcbiogXHU3NmFlXHU4MGE0XHU2ODM3XHU1ZjBmXHU0ZTNiXHU5ODk4XHVmZjA4XHU2M2QwXHU0ZjliXHU3Njg0XHU2MjE2XHU4MDA1XHU0ZWNlR05PTUUgU2hlbGxcdTRlM2JcdTk4OThcdTRlMmRcdTYzZDBcdTUzZDZcdTc2ODRcdTY4MzdcdTVmMGZcdTg4NjhcdWZmMGNcdTUzYzJcdTg5YzFcdTYyNjlcdTVjNTVcdTc2ODRcdTVlMmVcdTUyYTlcdTkwZThcdTUyMDZcdTY3NjVcdTgzYjdcdTUzZDZcdTY2ZjRcdTU5MWFcdTYzMDdcdTViZmNcdWZmMDlcbiogXHU1MDE5XHU5MDA5XHU2ODQ2XHU4MGNjXHU2NjZmXHU1NmZlXHU3MjQ3XHU1M2NhXHU1MTc2XHU2NjNlXHU3OTNhXHU2ODM3XHU1ZjBmXG4qIFx1NGUzYlx1OTg5OFx1NTQ4Y1x1ODBjY1x1NjY2Zlx1NTZmZVx1NzI0N1x1OGRkZlx1OTY4ZkdOT01FXHU1OTFjXHU3MDZmXG5cblx1NGY3Zlx1NzUyOFx1NjMwN1x1NTM1N1x1ZmYxYWh0dHBzOi8vYmxvZy5jc2RuLm5ldC9xcV8xODU3MjAyMy9hcnRpY2xlL2RldGFpbHMvMTE2MzMxNjAxIiwKICAiZXh0ZW5zaW9uLWlkIjogImN1c3RvbWl6ZS1pYnVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9taXplLWlidXMiLAogICJuYW1lIjogIkN1c3RvbWl6ZSBJQnVzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJob2xsb3dtYW5AaG9sbG93bWFuLm1sIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b21pemUtaWJ1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb3BlblNVU0UvQ3VzdG9taXplLUlCdXMiLAogICJ1dWlkIjogImN1c3RvbWl6ZS1pYnVzQGhvbGxvd21hbi5tbCIsCiAgInZlcnNpb24iOiA4MAp9"}, "41": {"version": "80", "sha256": "0w4mgjin6s5h8bc50830nd0b34hvij6vzsmp4ppw52ghnb46813p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZ1bGwgY3VzdG9taXphdGlvbiBvZiBhcHBlYXJhbmNlLCBiZWhhdmlvciwgc3lzdGVtIHRyYXkgYW5kIGlucHV0IHNvdXJjZSBpbmRpY2F0b3IgZm9yIElCdXNcblxuU3VwcG9ydCBDdXN0b21pemF0aW9uIG9mOlxuKiBDYW5kaWRhdGUgQm94IE9yaWVudGF0aW9uXG4qIENhbmRpZGF0ZSBCb3ggQW5pbWF0aW9uXG4qIFJpZ2h0LWNsaWNrIENhbmRpZGF0ZSBCb3ggdG8gU3dpdGNoIHRoZSBJbnB1dCBNb2RlIG9yIE9wZW4gdGhlIFRyYXkgTWVudVxuKiBTY3JvbGwgb24gQ2FuZGlkYXRlIEJveCB0byBTd2l0Y2ggYW1vbmcgUGFnZXMgb3IgQ2FuZGlkYXRlc1xuKiBGaXggQ2FuZGlkYXRlIEJveCB0byBOb3QgRm9sbG93IHRoZSBDYXJldCBhbmQgU2V0IEZpeGVkIFBvc2l0aW9uXG4qIENhbmRpZGF0ZSBCb3ggRm9udFxuKiBJbnB1dCBNb2RlIFJlbWVtYmVyIGFuZCBBdXRvLXN3aXRjaCBieSBBUFBcbiogQ2hhbmdlIENhbmRpZGF0ZSBCb3ggT3BhY2l0eVxuKiBGaXggSU1FIExpc3QgT3JkZXJcbiogRHJhZyBDYW5kaWRhdGUgQm94IHRvIFJlcG9zaXRpb25cbiogU2hvdyBvciBIaWRlIENhbmRpZGF0ZSBCb3ggUGFnZSBCdXR0b25zXG4qIFN5c3RlbSBUcmF5IE1lbnVzIGFuZCBJbnRlcmFjdGlvbiBTZXR0aW5nc1xuKiAqIFNob3cgb3IgSGlkZSBUcmF5IEljb25cbiogKiBEaXJlY3RseSBDbGljayBUcmF5IEljb24gdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBBZGQgQWRkaXRpb25hbCBNZW51XG4qIElucHV0IFNvdXJjZSBJbmRpY2F0b3IgQXBwZWFyYW5jZSBhbmQgSW50ZXJhY3Rpb24gU2V0dGluZ3NcbiogKiBFbmFibGUgSW5kaWNhdG9yXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFN3aXRjaGluZyBJbnB1dCBNb2RlXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFVzaW5nIEFTQ0lJIElucHV0IE1vZGVcbiogKiBOb3QgSW5kaWNhdGUgd2hlbiBVc2luZyBTaW5nbGUgTW9kZSBJTUVcbiogKiBSaWdodC1jbGljayBJbmRpY2F0b3IgdG8gSGlkZVxuKiAqIFNjcm9sbCBvbiBJbmRpY2F0b3IgdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBJbmRpY2F0b3IgQW5pbWF0aW9uXG4qICogQ3VzdG9taXplIEZvbnRcbiogKiBMZWZ0LWNsaWNrIEluZGljYXRvciB0byBEcmFnIHRvIE1vdmUgSW5kaWNhdG9yIG9yIFN3aXRjaCBJbnB1dCBNb2RlXG4qICogQ2hhbmdlIE9wYWNpdHlcbiogKiBFbmFibGUgSW5kaWNhdG9yIFNob3cgRGVsYXkgYW5kIENvbmZpZ3VyZSBTaG93aW5nIFRpbWVvdXRcbiogKiBFbmFibGUgQXV0by1oaWRlIEluZGljYXRvciBhbmQgQ29uZmlndXJlIEF1dG8taGlkZSBUaW1lb3V0XG4qIFRoZW1lIChTdHlsZXNoZWV0IFByb3ZpZGVkIG9yIEV4dHJhY3RlZCBmcm9tIEdOT01FIFNoZWxsIFRoZW1lcywgUmVmZXIgdG8gSGVscCBJbnN0cnVjdGlvbnMgaW4gRXh0ZW5zaW9uIGZvciBNb3JlKVxuKiBDYW5kaWRhdGUgQm94IEJhY2tncm91bmQgYW5kIGl0cyBEaXNwbGF5aW5nIFN0eWxlXG4qIFRoZW1lIGFuZCBCYWNrZ3JvdW5kIFBpY3R1cmUgRm9sbG93IEdOT01FIE5pZ2h0IExpZ2h0IE1vZGVcblxuVXNlciBHdWlkZTogaHR0cHM6Ly9ob2xsb3dtYW5zYmxvZy53b3JkcHJlc3MuY29tLzIwMjEvMDgvMjEvY3VzdG9taXplLWlidXMtdXNlci1ndWlkZS9cblxuXHU2ZGYxXHU1ZWE2XHU1YjlhXHU1MjM2IElCdXMgXHU3Njg0XHU1OTE2XHU4OWMyXHUzMDAxXHU4ODRjXHU0ZTNhXHUzMDAxXHU3Y2ZiXHU3ZWRmXHU2MjU4XHU3NmQ4XHU0ZWU1XHU1M2NhXHU4ZjkzXHU1MTY1XHU2MzA3XHU3OTNhXG5cblx1NjUyZlx1NjMwMVx1ODFlYVx1NWI5YVx1NGU0OVx1ZmYxYVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTY1YjlcdTU0MTFcbiogXHU1MDE5XHU5MDA5XHU2ODQ2XHU1MmE4XHU3NTNiXG4qIFx1NTNmM1x1OTUyZVx1NTM1NVx1NTFmYlx1NTAxOVx1OTAwOVx1Njg0Nlx1NGVlNVx1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFx1NjIxNlx1NjI1M1x1NWYwMFx1NGVmYlx1NTJhMVx1NjgwZlx1ODNkY1x1NTM1NVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTRlMGFcdTZlZGFcdTUyYThcdTRlZTVcdTUyMDdcdTYzNjJcdTk4NzVcdTk3NjJcdTYyMTZcdTUwMTlcdTkwMDlcdThiY2RcbiogXHU1NmZhXHU1YjlhXHU1MDE5XHU5MDA5XHU2ODQ2XHU0ZjdmXHU1MTc2XHU0ZTBkXHU4ZGRmXHU5NjhmXHU1MTQ5XHU2ODA3XHU0ZWU1XHU1M2NhXHU4YmJlXHU1YjlhXHU1NmZhXHU1YjlhXHU0ZjRkXHU3ZjZlXG4qIFx1NTAxOVx1OTAwOVx1Njg0Nlx1NWI1N1x1NGY1M1xuKiBcdThmOTNcdTUxNjVcdTZhMjFcdTVmMGZcdTY4MzlcdTYzNmVcdTVlOTRcdTc1MjhcdThiYjBcdTVmYzZcdTVlNzZcdTgxZWFcdTUyYThcdTUyMDdcdTYzNjJcbiogXHU2NmY0XHU2NTM5XHU1MDE5XHU5MDA5XHU2ODQ2XHU5MDBmXHU2NjBlXHU1ZWE2XG4qIFx1NTZmYVx1NWI5YVx1OGY5M1x1NTE2NVx1NmNkNVx1NTIxN1x1ODg2OFx1OTg3YVx1NWU4ZlxuKiBcdTYyZDZcdTYyZmRcdTc5ZmJcdTUyYThcdTUwMTlcdTkwMDlcdTY4NDZcbiogXHU2NjNlXHU3OTNhXHU2MjE2XHU5NjkwXHU4NWNmXHU1MDE5XHU5MDA5XHU2ODQ2XHU4YzAzXHU5ODc1XHU2MzA5XHU5NGFlXG4qIFx1N2NmYlx1N2VkZlx1NGVmYlx1NTJhMVx1NjgwZlx1NjI1OFx1NzZkOFx1NjYzZVx1NzkzYVx1NTQ4Y1x1NGVhNFx1NGU5Mlx1OGJiZVx1N2Y2ZVxuKiAqIFx1NjYzZVx1NzkzYVx1NjIxNlx1OTY5MFx1ODVjZlx1NjI1OFx1NzZkOFx1NTZmZVx1NjgwN1xuKiAqIFx1NzZmNFx1NjNhNVx1NzBiOVx1NTFmYlx1NjI1OFx1NzZkOFx1NTZmZVx1NjgwN1x1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFxuKiAqIFx1NmRmYlx1NTJhMFx1OTg5ZFx1NTkxNlx1ODNkY1x1NTM1NVxuKiBcdThmOTNcdTUxNjVcdTZlOTBcdTYzMDdcdTc5M2FcdTU2NjhcdTUzY2FcdTUxNzZcdTY2M2VcdTc5M2FcdTU0OGNcdTRlYTRcdTRlOTJcdThiYmVcdTdmNmVcbiogKiBcdTU0MmZcdTc1MjhcdTYzMDdcdTc5M2FcdTU2NjhcbiogKiBcdTRlYzVcdTU3MjhcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZjZDVcdTY1ZjZcdTYzMDdcdTc5M2FcbiogKiBcdTRlYzVcdTU3MjhcdTgyZjFcdTY1ODdcdThmOTNcdTUxNjVcdTY1ZjZcdTYzMDdcdTc5M2FcbiogKiBcdTRmN2ZcdTc1MjhcdTUzNTVcdTZhMjFcdTVmMGZcdThmOTNcdTUxNjVcdTZjZDVcdTY1ZjZcdTRlMGRcdTYzMDdcdTc5M2FcbiogKiBcdTUzZjNcdTUxZmJcdTYzMDdcdTc5M2FcdTU2NjhcdTY3NjVcdTVjMDZcdTUxNzZcdTk2OTBcdTg1Y2ZcbiogKiBcdTYzMDdcdTc5M2FcdTU2NjhcdTRlMGFcdTZlZGFcdTUyYThcdTY3NjVcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZlOTBcbiogKiBcdTYzMDdcdTc5M2FcdTU2NjhcdTY2M2VcdTc5M2FcdTUyYThcdTc1M2JcbiogKiBcdTgxZWFcdTViOWFcdTRlNDlcdTViNTdcdTRmNTNcbiogKiBcdTVkZTZcdTUxZmJcdTYzMDdcdTc5M2FcdTU2NjhcdTRlZTVcdTYyZDZcdTYyZmRcdTc5ZmJcdTUyYThcdTYyMTZcdTgwMDVcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZlOTBcbiogKiBcdTY2ZjRcdTY1MzlcdTkwMGZcdTY2MGVcdTVlYTZcbiogKiBcdTU0MmZcdTc1MjhcdTVlZjZcdTY1ZjZcdTY2M2VcdTc5M2FcdTRlZTVcdTUzY2FcdTkxNGRcdTdmNmVcdTY2M2VcdTc5M2FcdTY1ZjZcdTVlZjZcbiogKiBcdTU0MmZcdTc1MjhcdTgxZWFcdTUyYThcdTk2OTBcdTg1Y2ZcdTRlZTVcdTUzY2FcdTkxNGRcdTdmNmVcdTgxZWFcdTUyYThcdTk2OTBcdTg1Y2ZcdTY1ZjZcdTVlZjZcbiogXHU3NmFlXHU4MGE0XHU2ODM3XHU1ZjBmXHU0ZTNiXHU5ODk4XHVmZjA4XHU2M2QwXHU0ZjliXHU3Njg0XHU2MjE2XHU4MDA1XHU0ZWNlR05PTUUgU2hlbGxcdTRlM2JcdTk4OThcdTRlMmRcdTYzZDBcdTUzZDZcdTc2ODRcdTY4MzdcdTVmMGZcdTg4NjhcdWZmMGNcdTUzYzJcdTg5YzFcdTYyNjlcdTVjNTVcdTc2ODRcdTVlMmVcdTUyYTlcdTkwZThcdTUyMDZcdTY3NjVcdTgzYjdcdTUzZDZcdTY2ZjRcdTU5MWFcdTYzMDdcdTViZmNcdWZmMDlcbiogXHU1MDE5XHU5MDA5XHU2ODQ2XHU4MGNjXHU2NjZmXHU1NmZlXHU3MjQ3XHU1M2NhXHU1MTc2XHU2NjNlXHU3OTNhXHU2ODM3XHU1ZjBmXG4qIFx1NGUzYlx1OTg5OFx1NTQ4Y1x1ODBjY1x1NjY2Zlx1NTZmZVx1NzI0N1x1OGRkZlx1OTY4ZkdOT01FXHU1OTFjXHU3MDZmXG5cblx1NGY3Zlx1NzUyOFx1NjMwN1x1NTM1N1x1ZmYxYWh0dHBzOi8vYmxvZy5jc2RuLm5ldC9xcV8xODU3MjAyMy9hcnRpY2xlL2RldGFpbHMvMTE2MzMxNjAxIiwKICAiZXh0ZW5zaW9uLWlkIjogImN1c3RvbWl6ZS1pYnVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9taXplLWlidXMiLAogICJuYW1lIjogIkN1c3RvbWl6ZSBJQnVzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJob2xsb3dtYW5AaG9sbG93bWFuLm1sIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b21pemUtaWJ1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb3BlblNVU0UvQ3VzdG9taXplLUlCdXMiLAogICJ1dWlkIjogImN1c3RvbWl6ZS1pYnVzQGhvbGxvd21hbi5tbCIsCiAgInZlcnNpb24iOiA4MAp9"}}}
 , {"uuid": "fildemGMenu@gonza.com", "name": "Fildem global menu", "pname": "fildem-global-menu", "description": "Global menu and HUD for Gnome\n\nThis extension requires the installation of an external program. Please, check the instructions on Github.\n\nThis extension works on gnome 40 but the preferences doesn’t work, if you want you can install it manually modifing the version supported on metadata.", "link": "https://extensions.gnome.org/extension/4114/fildem-global-menu/", "shell_version_map": {"38": {"version": "1", "sha256": "0zgkf4cb4hl0r6r1kzwlvnr4f2svlpwayrw7xqs39fa19cc1zasv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdsb2JhbCBtZW51IGFuZCBIVUQgZm9yIEdub21lXG5cblRoaXMgZXh0ZW5zaW9uIHJlcXVpcmVzIHRoZSBpbnN0YWxsYXRpb24gb2YgYW4gZXh0ZXJuYWwgcHJvZ3JhbS4gUGxlYXNlLCBjaGVjayB0aGUgaW5zdHJ1Y3Rpb25zIG9uIEdpdGh1Yi5cblxuVGhpcyBleHRlbnNpb24gd29ya3Mgb24gZ25vbWUgNDAgYnV0IHRoZSBwcmVmZXJlbmNlcyBkb2Vzblx1MjAxOXQgd29yaywgaWYgeW91IHdhbnQgeW91IGNhbiBpbnN0YWxsIGl0IG1hbnVhbGx5IG1vZGlmaW5nIHRoZSB2ZXJzaW9uIHN1cHBvcnRlZCBvbiBtZXRhZGF0YS4iLAogICJuYW1lIjogIkZpbGRlbSBnbG9iYWwgbWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5maWxkZW0tZ2xvYmFsLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nb256YWFyY3IvRmlsZGVtIiwKICAidXVpZCI6ICJmaWxkZW1HTWVudUBnb256YS5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}}}
 , {"uuid": "remove-panel@sulincix", "name": "RemovePanel", "pname": "removepanel", "description": "remove top panel from gnome-shell", "link": "https://extensions.gnome.org/extension/4118/removepanel/", "shell_version_map": {"38": {"version": "4", "sha256": "0f6p5cd68qlb082favqf2h7q4vn8c6rh0y48g3s2d9fxgccvc1di", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInJlbW92ZSB0b3AgcGFuZWwgZnJvbSBnbm9tZS1zaGVsbCIsCiAgIm5hbWUiOiAiUmVtb3ZlUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAicmVtb3ZlLXBhbmVsQHN1bGluY2l4IiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
@@ -539,8 +542,8 @@
 , {"uuid": "replaceActivitiesText@pratap.fastmail.fm", "name": "Replace Activities Text", "pname": "replace-activities-text", "description": "A Simple Extension to Change 'Activities' Label with Logo and Text.\nYou can Keep Either\n1. Logo or\n2. Text or\n3. Both or\n4. None at all", "link": "https://extensions.gnome.org/extension/4405/replace-activities-text/", "shell_version_map": {"38": {"version": "8", "sha256": "04adx4043d3ni510h44pi3gr0k15a4n0zwr4k5fxisr4yjl1510w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgU2ltcGxlIEV4dGVuc2lvbiB0byBDaGFuZ2UgJ0FjdGl2aXRpZXMnIExhYmVsIHdpdGggTG9nbyBhbmQgVGV4dC5cbllvdSBjYW4gS2VlcCBFaXRoZXJcbjEuIExvZ28gb3JcbjIuIFRleHQgb3JcbjMuIEJvdGggb3JcbjQuIE5vbmUgYXQgYWxsIiwKICAibmFtZSI6ICJSZXBsYWNlIEFjdGl2aXRpZXMgVGV4dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BSQVRBUC1LVU1BUi9BY3Rpdml0aWVzVGV4dCIsCiAgInV1aWQiOiAicmVwbGFjZUFjdGl2aXRpZXNUZXh0QHByYXRhcC5mYXN0bWFpbC5mbSIsCiAgInZlcnNpb24iOiA4Cn0="}, "40": {"version": "10", "sha256": "0fkpphd6ly5n7fybrla1a31sqg10cdll44ilz1vc1achphmbxlk6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgU2ltcGxlIEV4dGVuc2lvbiB0byBDaGFuZ2UgJ0FjdGl2aXRpZXMnIExhYmVsIHdpdGggTG9nbyBhbmQgVGV4dC5cbllvdSBjYW4gS2VlcCBFaXRoZXJcbjEuIExvZ28gb3JcbjIuIFRleHQgb3JcbjMuIEJvdGggb3JcbjQuIE5vbmUgYXQgYWxsIiwKICAibmFtZSI6ICJSZXBsYWNlIEFjdGl2aXRpZXMgVGV4dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUFJBVEFQLUtVTUFSL0FjdGl2aXRpZXNUZXh0IiwKICAidXVpZCI6ICJyZXBsYWNlQWN0aXZpdGllc1RleHRAcHJhdGFwLmZhc3RtYWlsLmZtIiwKICAidmVyc2lvbiI6IDEwCn0="}, "41": {"version": "10", "sha256": "0fkpphd6ly5n7fybrla1a31sqg10cdll44ilz1vc1achphmbxlk6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgU2ltcGxlIEV4dGVuc2lvbiB0byBDaGFuZ2UgJ0FjdGl2aXRpZXMnIExhYmVsIHdpdGggTG9nbyBhbmQgVGV4dC5cbllvdSBjYW4gS2VlcCBFaXRoZXJcbjEuIExvZ28gb3JcbjIuIFRleHQgb3JcbjMuIEJvdGggb3JcbjQuIE5vbmUgYXQgYWxsIiwKICAibmFtZSI6ICJSZXBsYWNlIEFjdGl2aXRpZXMgVGV4dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUFJBVEFQLUtVTUFSL0FjdGl2aXRpZXNUZXh0IiwKICAidXVpZCI6ICJyZXBsYWNlQWN0aXZpdGllc1RleHRAcHJhdGFwLmZhc3RtYWlsLmZtIiwKICAidmVyc2lvbiI6IDEwCn0="}}}
 , {"uuid": "appMenuIcon@pratap.fastmail.fm", "name": "Colored Application Menu Icon", "pname": "app-menu-icon-remove-symbolic", "description": "Remove Symbolic Icons and Saturation Effect for App Menu Icon", "link": "https://extensions.gnome.org/extension/4408/app-menu-icon-remove-symbolic/", "shell_version_map": {"38": {"version": "2", "sha256": "1ggj4c7knbsjwg7n1g7sqjz188ivlihsq8p2a8jd71iw49b917cj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBTeW1ib2xpYyBJY29ucyBhbmQgU2F0dXJhdGlvbiBFZmZlY3QgZm9yIEFwcCBNZW51IEljb24iLAogICJuYW1lIjogIkNvbG9yZWQgQXBwbGljYXRpb24gTWVudSBJY29uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiYXBwTWVudUljb25AcHJhdGFwLmZhc3RtYWlsLmZtIiwKICAidmVyc2lvbiI6IDIKfQ=="}, "40": {"version": "2", "sha256": "1ggj4c7knbsjwg7n1g7sqjz188ivlihsq8p2a8jd71iw49b917cj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBTeW1ib2xpYyBJY29ucyBhbmQgU2F0dXJhdGlvbiBFZmZlY3QgZm9yIEFwcCBNZW51IEljb24iLAogICJuYW1lIjogIkNvbG9yZWQgQXBwbGljYXRpb24gTWVudSBJY29uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiYXBwTWVudUljb25AcHJhdGFwLmZhc3RtYWlsLmZtIiwKICAidmVyc2lvbiI6IDIKfQ=="}, "41": {"version": "2", "sha256": "1ggj4c7knbsjwg7n1g7sqjz188ivlihsq8p2a8jd71iw49b917cj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBTeW1ib2xpYyBJY29ucyBhbmQgU2F0dXJhdGlvbiBFZmZlY3QgZm9yIEFwcCBNZW51IEljb24iLAogICJuYW1lIjogIkNvbG9yZWQgQXBwbGljYXRpb24gTWVudSBJY29uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiYXBwTWVudUljb25AcHJhdGFwLmZhc3RtYWlsLmZtIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
 , {"uuid": "gnome-trash@b00f.github.io", "name": "Gnome Trash", "pname": "gnome-trash", "description": "A gnome shell extension to manage your home trash. You can manage trash items from the panel and open or empty the trash.", "link": "https://extensions.gnome.org/extension/4410/gnome-trash/", "shell_version_map": {"38": {"version": "3", "sha256": "03pyala1i21izg5rl4qqh5bxk36fp8d52bs9ggrik2kav420xhhk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZ25vbWUgc2hlbGwgZXh0ZW5zaW9uIHRvIG1hbmFnZSB5b3VyIGhvbWUgdHJhc2guIFlvdSBjYW4gbWFuYWdlIHRyYXNoIGl0ZW1zIGZyb20gdGhlIHBhbmVsIGFuZCBvcGVuIG9yIGVtcHR5IHRoZSB0cmFzaC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS10cmFzaCIsCiAgIm5hbWUiOiAiR25vbWUgVHJhc2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iMDBmL2dub21lLXRyYXNoIiwKICAidXVpZCI6ICJnbm9tZS10cmFzaEBiMDBmLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAzCn0="}}}
-, {"uuid": "advanced-alt-tab@G-dH.github.com", "name": "AATWS - Advanced Alt-Tab Window Switcher", "pname": "advanced-alttab-window-switcher", "description": "Highly customizable replacement of the Alt-Tab window/app switchers that offers 'type to search' mode, various filtering and sorting options, workspace and monitor navigation, VIM navigation hotkeys, window control and an app launcher.\nAATWS is compatible with Custom Hot Corners - Extended extension, allows to configure any mouse button and scroll wheel and can be used instead of a dock.\n\nYou can set keyboard shortcuts for both, window and application switchers, in  the Gnome Settings.\n\nFollow the link below for more information and bug reports.\n\nKeywords: alttab, search, find, windows, popup delay, applications, apps, dock, monitor, thumbnail, preview, move windows, launch app, switch windows", "link": "https://extensions.gnome.org/extension/4412/advanced-alttab-window-switcher/", "shell_version_map": {"38": {"version": "9", "sha256": "1pnr1kpygsv0z2hkzrgvhwb1pnjdsxg36j1n7y9ilhvfcb2bq7zr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgb2YgdGhlIEFsdC1UYWIgd2luZG93L2FwcCBzd2l0Y2hlcnMgdGhhdCBvZmZlcnMgJ3R5cGUgdG8gc2VhcmNoJyBtb2RlLCB2YXJpb3VzIGZpbHRlcmluZyBhbmQgc29ydGluZyBvcHRpb25zLCB3b3Jrc3BhY2UgYW5kIG1vbml0b3IgbmF2aWdhdGlvbiwgVklNIG5hdmlnYXRpb24gaG90a2V5cywgd2luZG93IGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBpbnN0ZWFkIG9mIGEgZG9jay5cblxuWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBib3RoLCB3aW5kb3cgYW5kIGFwcGxpY2F0aW9uIHN3aXRjaGVycywgaW4gIHRoZSBHbm9tZSBTZXR0aW5ncy5cblxuRm9sbG93IHRoZSBsaW5rIGJlbG93IGZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCBidWcgcmVwb3J0cy5cblxuS2V5d29yZHM6IGFsdHRhYiwgc2VhcmNoLCBmaW5kLCB3aW5kb3dzLCBwb3B1cCBkZWxheSwgYXBwbGljYXRpb25zLCBhcHBzLCBkb2NrLCBtb25pdG9yLCB0aHVtYm5haWwsIHByZXZpZXcsIG1vdmUgd2luZG93cywgbGF1bmNoIGFwcCwgc3dpdGNoIHdpbmRvd3MiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiQUFUV1MgLSBBZHZhbmNlZCBBbHQtVGFiIFdpbmRvdyBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9hZHZhbmNlZC1hbHR0YWItd2luZG93LXN3aXRjaGVyIiwKICAidXVpZCI6ICJhZHZhbmNlZC1hbHQtdGFiQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="}, "40": {"version": "9", "sha256": "1pnr1kpygsv0z2hkzrgvhwb1pnjdsxg36j1n7y9ilhvfcb2bq7zr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgb2YgdGhlIEFsdC1UYWIgd2luZG93L2FwcCBzd2l0Y2hlcnMgdGhhdCBvZmZlcnMgJ3R5cGUgdG8gc2VhcmNoJyBtb2RlLCB2YXJpb3VzIGZpbHRlcmluZyBhbmQgc29ydGluZyBvcHRpb25zLCB3b3Jrc3BhY2UgYW5kIG1vbml0b3IgbmF2aWdhdGlvbiwgVklNIG5hdmlnYXRpb24gaG90a2V5cywgd2luZG93IGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBpbnN0ZWFkIG9mIGEgZG9jay5cblxuWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBib3RoLCB3aW5kb3cgYW5kIGFwcGxpY2F0aW9uIHN3aXRjaGVycywgaW4gIHRoZSBHbm9tZSBTZXR0aW5ncy5cblxuRm9sbG93IHRoZSBsaW5rIGJlbG93IGZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCBidWcgcmVwb3J0cy5cblxuS2V5d29yZHM6IGFsdHRhYiwgc2VhcmNoLCBmaW5kLCB3aW5kb3dzLCBwb3B1cCBkZWxheSwgYXBwbGljYXRpb25zLCBhcHBzLCBkb2NrLCBtb25pdG9yLCB0aHVtYm5haWwsIHByZXZpZXcsIG1vdmUgd2luZG93cywgbGF1bmNoIGFwcCwgc3dpdGNoIHdpbmRvd3MiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiQUFUV1MgLSBBZHZhbmNlZCBBbHQtVGFiIFdpbmRvdyBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9hZHZhbmNlZC1hbHR0YWItd2luZG93LXN3aXRjaGVyIiwKICAidXVpZCI6ICJhZHZhbmNlZC1hbHQtdGFiQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="}, "41": {"version": "9", "sha256": "1pnr1kpygsv0z2hkzrgvhwb1pnjdsxg36j1n7y9ilhvfcb2bq7zr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgb2YgdGhlIEFsdC1UYWIgd2luZG93L2FwcCBzd2l0Y2hlcnMgdGhhdCBvZmZlcnMgJ3R5cGUgdG8gc2VhcmNoJyBtb2RlLCB2YXJpb3VzIGZpbHRlcmluZyBhbmQgc29ydGluZyBvcHRpb25zLCB3b3Jrc3BhY2UgYW5kIG1vbml0b3IgbmF2aWdhdGlvbiwgVklNIG5hdmlnYXRpb24gaG90a2V5cywgd2luZG93IGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBpbnN0ZWFkIG9mIGEgZG9jay5cblxuWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBib3RoLCB3aW5kb3cgYW5kIGFwcGxpY2F0aW9uIHN3aXRjaGVycywgaW4gIHRoZSBHbm9tZSBTZXR0aW5ncy5cblxuRm9sbG93IHRoZSBsaW5rIGJlbG93IGZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCBidWcgcmVwb3J0cy5cblxuS2V5d29yZHM6IGFsdHRhYiwgc2VhcmNoLCBmaW5kLCB3aW5kb3dzLCBwb3B1cCBkZWxheSwgYXBwbGljYXRpb25zLCBhcHBzLCBkb2NrLCBtb25pdG9yLCB0aHVtYm5haWwsIHByZXZpZXcsIG1vdmUgd2luZG93cywgbGF1bmNoIGFwcCwgc3dpdGNoIHdpbmRvd3MiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiQUFUV1MgLSBBZHZhbmNlZCBBbHQtVGFiIFdpbmRvdyBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9hZHZhbmNlZC1hbHR0YWItd2luZG93LXN3aXRjaGVyIiwKICAidXVpZCI6ICJhZHZhbmNlZC1hbHQtdGFiQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="}}}
-, {"uuid": "improvedosk@nick-shmyrev.dev", "name": "Improved OSK", "pname": "improved-osk", "description": "Makes Gnome's onscreen keyboard more useable with e.g. more keys.\nThis extension is a fork of https://extensions.gnome.org/extension/3330/improved-onscreen-keyboard/ by SebastianLuebke.", "link": "https://extensions.gnome.org/extension/4413/improved-osk/", "shell_version_map": {"38": {"version": "4", "sha256": "0f3051wf7lp9ia1r74j72ajlyph63nw4928wg16lfxhdzid4bymp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdub21lJ3Mgb25zY3JlZW4ga2V5Ym9hcmQgbW9yZSB1c2VhYmxlIHdpdGggZS5nLiBtb3JlIGtleXMuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzMzMC9pbXByb3ZlZC1vbnNjcmVlbi1rZXlib2FyZC8gYnkgU2ViYXN0aWFuTHVlYmtlLiIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgT1NLIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uaWNrLXNobXlyZXYvaW1wcm92ZWQtb3NrLWdub21lLWV4dCIsCiAgInV1aWQiOiAiaW1wcm92ZWRvc2tAbmljay1zaG15cmV2LmRldiIsCiAgInZlcnNpb24iOiA0Cn0="}, "40": {"version": "4", "sha256": "0f3051wf7lp9ia1r74j72ajlyph63nw4928wg16lfxhdzid4bymp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdub21lJ3Mgb25zY3JlZW4ga2V5Ym9hcmQgbW9yZSB1c2VhYmxlIHdpdGggZS5nLiBtb3JlIGtleXMuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzMzMC9pbXByb3ZlZC1vbnNjcmVlbi1rZXlib2FyZC8gYnkgU2ViYXN0aWFuTHVlYmtlLiIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgT1NLIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uaWNrLXNobXlyZXYvaW1wcm92ZWQtb3NrLWdub21lLWV4dCIsCiAgInV1aWQiOiAiaW1wcm92ZWRvc2tAbmljay1zaG15cmV2LmRldiIsCiAgInZlcnNpb24iOiA0Cn0="}, "41": {"version": "4", "sha256": "0f3051wf7lp9ia1r74j72ajlyph63nw4928wg16lfxhdzid4bymp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdub21lJ3Mgb25zY3JlZW4ga2V5Ym9hcmQgbW9yZSB1c2VhYmxlIHdpdGggZS5nLiBtb3JlIGtleXMuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzMzMC9pbXByb3ZlZC1vbnNjcmVlbi1rZXlib2FyZC8gYnkgU2ViYXN0aWFuTHVlYmtlLiIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgT1NLIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uaWNrLXNobXlyZXYvaW1wcm92ZWQtb3NrLWdub21lLWV4dCIsCiAgInV1aWQiOiAiaW1wcm92ZWRvc2tAbmljay1zaG15cmV2LmRldiIsCiAgInZlcnNpb24iOiA0Cn0="}}}
+, {"uuid": "advanced-alt-tab@G-dH.github.com", "name": "AATWS - Advanced Alt-Tab Window Switcher", "pname": "advanced-alttab-window-switcher", "description": "Highly customizable replacement of the Alt-Tab window/app switchers that offers 'type to search' mode, various filtering and sorting options, workspace and monitor navigation, VIM navigation hotkeys, window control and an app launcher.\nAATWS is compatible with Custom Hot Corners - Extended extension, allows to configure any mouse button and scroll wheel and can be used as a mouse controlled dock.\n\nNote that GNOME has 3 built-in window switcher popups and this extension replaces all of them. The first one is grouping windows by applications and is used as default in vanilla GNOME distributions. The second one offers window list and the third one windows of currently focused application. You can set keyboard shortcuts for all the switchers in the Gnome Settings.\n\nFollow the link below for more information and bug reports.\n\nKeywords: alttab, search, find, windows, popup delay, applications, apps, dock, monitor, thumbnail, preview, move windows, launch app, switch windows", "link": "https://extensions.gnome.org/extension/4412/advanced-alttab-window-switcher/", "shell_version_map": {"38": {"version": "10", "sha256": "0zfll64krhibs0kiwyz8nw6wdxqd22510d5mvvcfi5l4qs2dm2b2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgb2YgdGhlIEFsdC1UYWIgd2luZG93L2FwcCBzd2l0Y2hlcnMgdGhhdCBvZmZlcnMgJ3R5cGUgdG8gc2VhcmNoJyBtb2RlLCB2YXJpb3VzIGZpbHRlcmluZyBhbmQgc29ydGluZyBvcHRpb25zLCB3b3Jrc3BhY2UgYW5kIG1vbml0b3IgbmF2aWdhdGlvbiwgVklNIG5hdmlnYXRpb24gaG90a2V5cywgd2luZG93IGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBhcyBhIG1vdXNlIGNvbnRyb2xsZWQgZG9jay5cblxuTm90ZSB0aGF0IEdOT01FIGhhcyAzIGJ1aWx0LWluIHdpbmRvdyBzd2l0Y2hlciBwb3B1cHMgYW5kIHRoaXMgZXh0ZW5zaW9uIHJlcGxhY2VzIGFsbCBvZiB0aGVtLiBUaGUgZmlyc3Qgb25lIGlzIGdyb3VwaW5nIHdpbmRvd3MgYnkgYXBwbGljYXRpb25zIGFuZCBpcyB1c2VkIGFzIGRlZmF1bHQgaW4gdmFuaWxsYSBHTk9NRSBkaXN0cmlidXRpb25zLiBUaGUgc2Vjb25kIG9uZSBvZmZlcnMgd2luZG93IGxpc3QgYW5kIHRoZSB0aGlyZCBvbmUgd2luZG93cyBvZiBjdXJyZW50bHkgZm9jdXNlZCBhcHBsaWNhdGlvbi4gWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBhbGwgdGhlIHN3aXRjaGVycyBpbiB0aGUgR25vbWUgU2V0dGluZ3MuXG5cbkZvbGxvdyB0aGUgbGluayBiZWxvdyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgYnVnIHJlcG9ydHMuXG5cbktleXdvcmRzOiBhbHR0YWIsIHNlYXJjaCwgZmluZCwgd2luZG93cywgcG9wdXAgZGVsYXksIGFwcGxpY2F0aW9ucywgYXBwcywgZG9jaywgbW9uaXRvciwgdGh1bWJuYWlsLCBwcmV2aWV3LCBtb3ZlIHdpbmRvd3MsIGxhdW5jaCBhcHAsIHN3aXRjaCB3aW5kb3dzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYWR2YW5jZWQtYWx0LXRhYi13aW5kb3ctc3dpdGNoZXIiLAogICJuYW1lIjogIkFBVFdTIC0gQWR2YW5jZWQgQWx0LVRhYiBXaW5kb3cgU3dpdGNoZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWR2YW5jZWQtYWx0LXRhYi13aW5kb3ctc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvYWR2YW5jZWQtYWx0dGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInV1aWQiOiAiYWR2YW5jZWQtYWx0LXRhYkBHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "40": {"version": "10", "sha256": "0zfll64krhibs0kiwyz8nw6wdxqd22510d5mvvcfi5l4qs2dm2b2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgb2YgdGhlIEFsdC1UYWIgd2luZG93L2FwcCBzd2l0Y2hlcnMgdGhhdCBvZmZlcnMgJ3R5cGUgdG8gc2VhcmNoJyBtb2RlLCB2YXJpb3VzIGZpbHRlcmluZyBhbmQgc29ydGluZyBvcHRpb25zLCB3b3Jrc3BhY2UgYW5kIG1vbml0b3IgbmF2aWdhdGlvbiwgVklNIG5hdmlnYXRpb24gaG90a2V5cywgd2luZG93IGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBhcyBhIG1vdXNlIGNvbnRyb2xsZWQgZG9jay5cblxuTm90ZSB0aGF0IEdOT01FIGhhcyAzIGJ1aWx0LWluIHdpbmRvdyBzd2l0Y2hlciBwb3B1cHMgYW5kIHRoaXMgZXh0ZW5zaW9uIHJlcGxhY2VzIGFsbCBvZiB0aGVtLiBUaGUgZmlyc3Qgb25lIGlzIGdyb3VwaW5nIHdpbmRvd3MgYnkgYXBwbGljYXRpb25zIGFuZCBpcyB1c2VkIGFzIGRlZmF1bHQgaW4gdmFuaWxsYSBHTk9NRSBkaXN0cmlidXRpb25zLiBUaGUgc2Vjb25kIG9uZSBvZmZlcnMgd2luZG93IGxpc3QgYW5kIHRoZSB0aGlyZCBvbmUgd2luZG93cyBvZiBjdXJyZW50bHkgZm9jdXNlZCBhcHBsaWNhdGlvbi4gWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBhbGwgdGhlIHN3aXRjaGVycyBpbiB0aGUgR25vbWUgU2V0dGluZ3MuXG5cbkZvbGxvdyB0aGUgbGluayBiZWxvdyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgYnVnIHJlcG9ydHMuXG5cbktleXdvcmRzOiBhbHR0YWIsIHNlYXJjaCwgZmluZCwgd2luZG93cywgcG9wdXAgZGVsYXksIGFwcGxpY2F0aW9ucywgYXBwcywgZG9jaywgbW9uaXRvciwgdGh1bWJuYWlsLCBwcmV2aWV3LCBtb3ZlIHdpbmRvd3MsIGxhdW5jaCBhcHAsIHN3aXRjaCB3aW5kb3dzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYWR2YW5jZWQtYWx0LXRhYi13aW5kb3ctc3dpdGNoZXIiLAogICJuYW1lIjogIkFBVFdTIC0gQWR2YW5jZWQgQWx0LVRhYiBXaW5kb3cgU3dpdGNoZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWR2YW5jZWQtYWx0LXRhYi13aW5kb3ctc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvYWR2YW5jZWQtYWx0dGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInV1aWQiOiAiYWR2YW5jZWQtYWx0LXRhYkBHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "41": {"version": "10", "sha256": "0zfll64krhibs0kiwyz8nw6wdxqd22510d5mvvcfi5l4qs2dm2b2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgb2YgdGhlIEFsdC1UYWIgd2luZG93L2FwcCBzd2l0Y2hlcnMgdGhhdCBvZmZlcnMgJ3R5cGUgdG8gc2VhcmNoJyBtb2RlLCB2YXJpb3VzIGZpbHRlcmluZyBhbmQgc29ydGluZyBvcHRpb25zLCB3b3Jrc3BhY2UgYW5kIG1vbml0b3IgbmF2aWdhdGlvbiwgVklNIG5hdmlnYXRpb24gaG90a2V5cywgd2luZG93IGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBhcyBhIG1vdXNlIGNvbnRyb2xsZWQgZG9jay5cblxuTm90ZSB0aGF0IEdOT01FIGhhcyAzIGJ1aWx0LWluIHdpbmRvdyBzd2l0Y2hlciBwb3B1cHMgYW5kIHRoaXMgZXh0ZW5zaW9uIHJlcGxhY2VzIGFsbCBvZiB0aGVtLiBUaGUgZmlyc3Qgb25lIGlzIGdyb3VwaW5nIHdpbmRvd3MgYnkgYXBwbGljYXRpb25zIGFuZCBpcyB1c2VkIGFzIGRlZmF1bHQgaW4gdmFuaWxsYSBHTk9NRSBkaXN0cmlidXRpb25zLiBUaGUgc2Vjb25kIG9uZSBvZmZlcnMgd2luZG93IGxpc3QgYW5kIHRoZSB0aGlyZCBvbmUgd2luZG93cyBvZiBjdXJyZW50bHkgZm9jdXNlZCBhcHBsaWNhdGlvbi4gWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBhbGwgdGhlIHN3aXRjaGVycyBpbiB0aGUgR25vbWUgU2V0dGluZ3MuXG5cbkZvbGxvdyB0aGUgbGluayBiZWxvdyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgYnVnIHJlcG9ydHMuXG5cbktleXdvcmRzOiBhbHR0YWIsIHNlYXJjaCwgZmluZCwgd2luZG93cywgcG9wdXAgZGVsYXksIGFwcGxpY2F0aW9ucywgYXBwcywgZG9jaywgbW9uaXRvciwgdGh1bWJuYWlsLCBwcmV2aWV3LCBtb3ZlIHdpbmRvd3MsIGxhdW5jaCBhcHAsIHN3aXRjaCB3aW5kb3dzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYWR2YW5jZWQtYWx0LXRhYi13aW5kb3ctc3dpdGNoZXIiLAogICJuYW1lIjogIkFBVFdTIC0gQWR2YW5jZWQgQWx0LVRhYiBXaW5kb3cgU3dpdGNoZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWR2YW5jZWQtYWx0LXRhYi13aW5kb3ctc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvYWR2YW5jZWQtYWx0dGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInV1aWQiOiAiYWR2YW5jZWQtYWx0LXRhYkBHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}}}
+, {"uuid": "improvedosk@nick-shmyrev.dev", "name": "Improved OSK", "pname": "improved-osk", "description": "Makes Gnome's onscreen keyboard more useable with e.g. more keys.\nThis extension is a fork of https://extensions.gnome.org/extension/3330/improved-onscreen-keyboard/ by SebastianLuebke.", "link": "https://extensions.gnome.org/extension/4413/improved-osk/", "shell_version_map": {"38": {"version": "5", "sha256": "0kwcrks0g3f4f4hxy3h6jb0gpbqrbzg6l53cdcwljrq3q0q93r2l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdub21lJ3Mgb25zY3JlZW4ga2V5Ym9hcmQgbW9yZSB1c2VhYmxlIHdpdGggZS5nLiBtb3JlIGtleXMuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzMzMC9pbXByb3ZlZC1vbnNjcmVlbi1rZXlib2FyZC8gYnkgU2ViYXN0aWFuTHVlYmtlLiIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgT1NLIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uaWNrLXNobXlyZXYvaW1wcm92ZWQtb3NrLWdub21lLWV4dCIsCiAgInV1aWQiOiAiaW1wcm92ZWRvc2tAbmljay1zaG15cmV2LmRldiIsCiAgInZlcnNpb24iOiA1Cn0="}, "40": {"version": "5", "sha256": "0kwcrks0g3f4f4hxy3h6jb0gpbqrbzg6l53cdcwljrq3q0q93r2l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdub21lJ3Mgb25zY3JlZW4ga2V5Ym9hcmQgbW9yZSB1c2VhYmxlIHdpdGggZS5nLiBtb3JlIGtleXMuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzMzMC9pbXByb3ZlZC1vbnNjcmVlbi1rZXlib2FyZC8gYnkgU2ViYXN0aWFuTHVlYmtlLiIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgT1NLIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uaWNrLXNobXlyZXYvaW1wcm92ZWQtb3NrLWdub21lLWV4dCIsCiAgInV1aWQiOiAiaW1wcm92ZWRvc2tAbmljay1zaG15cmV2LmRldiIsCiAgInZlcnNpb24iOiA1Cn0="}, "41": {"version": "5", "sha256": "0kwcrks0g3f4f4hxy3h6jb0gpbqrbzg6l53cdcwljrq3q0q93r2l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdub21lJ3Mgb25zY3JlZW4ga2V5Ym9hcmQgbW9yZSB1c2VhYmxlIHdpdGggZS5nLiBtb3JlIGtleXMuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzMzMC9pbXByb3ZlZC1vbnNjcmVlbi1rZXlib2FyZC8gYnkgU2ViYXN0aWFuTHVlYmtlLiIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgT1NLIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uaWNrLXNobXlyZXYvaW1wcm92ZWQtb3NrLWdub21lLWV4dCIsCiAgInV1aWQiOiAiaW1wcm92ZWRvc2tAbmljay1zaG15cmV2LmRldiIsCiAgInZlcnNpb24iOiA1Cn0="}}}
 , {"uuid": "fedora-update@pepe386", "name": "Fedora Linux Updates Indicator", "pname": "fedora-linux-updates-indicator", "description": "Update indicator for Fedora Linux and GNOME Shell.", "link": "https://extensions.gnome.org/extension/4415/fedora-linux-updates-indicator/", "shell_version_map": {"40": {"version": "1", "sha256": "0sz69rs6z1fybva20xs8587bs4xaflb4frd14d729lqq5h1m8b2p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZSBpbmRpY2F0b3IgZm9yIEZlZG9yYSBMaW51eCBhbmQgR05PTUUgU2hlbGwuIiwKICAibmFtZSI6ICJGZWRvcmEgTGludXggVXBkYXRlcyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGVwZTM4Ni9mZWRvcmEtdXBkYXRlIiwKICAidXVpZCI6ICJmZWRvcmEtdXBkYXRlQHBlcGUzODYiLAogICJ2ZXJzaW9uIjogMQp9"}}}
 , {"uuid": "readingstrip@lupantano.gihthub", "name": "Reading Strip", "pname": "reading-strip", "description": "It is a extension for Gnome-Shell with an equivalent function to a reading guide on the computer, that's really useful for people with dyslexia.", "link": "https://extensions.gnome.org/extension/4419/reading-strip/", "shell_version_map": {"40": {"version": "9", "sha256": "0r6ccgha8gqdqyy9z8sqxgpm1prbxfbh7cc8iyfhba5g40b4lh9g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkl0IGlzIGEgZXh0ZW5zaW9uIGZvciBHbm9tZS1TaGVsbCB3aXRoIGFuIGVxdWl2YWxlbnQgZnVuY3Rpb24gdG8gYSByZWFkaW5nIGd1aWRlIG9uIHRoZSBjb21wdXRlciwgdGhhdCdzIHJlYWxseSB1c2VmdWwgZm9yIHBlb3BsZSB3aXRoIGR5c2xleGlhLiIsCiAgIm5hbWUiOiAiUmVhZGluZyBTdHJpcCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yZWFkaW5nc3RyaXAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHVwYW50YW5vL3JlYWRpbmdzdHJpcCIsCiAgInV1aWQiOiAicmVhZGluZ3N0cmlwQGx1cGFudGFuby5naWh0aHViIiwKICAidmVyc2lvbiI6IDkKfQ=="}}}
 , {"uuid": "gnome-clipboard@b00f.github.io", "name": "Gnome Clipboard", "pname": "gnome-clipboard", "description": "A gnome shell extension to manage your clipboard.", "link": "https://extensions.gnome.org/extension/4422/gnome-clipboard/", "shell_version_map": {"38": {"version": "8", "sha256": "1zgymry549c6pmj1c0f6gvpyyfj0z93fwbhhxa67fx3nf95gb3kv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZ25vbWUgc2hlbGwgZXh0ZW5zaW9uIHRvIG1hbmFnZSB5b3VyIGNsaXBib2FyZC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1jbGlwYm9hcmQiLAogICJuYW1lIjogIkdub21lIENsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2IwMGYvZ25vbWUtY2xpcGJvYXJkIiwKICAidXVpZCI6ICJnbm9tZS1jbGlwYm9hcmRAYjAwZi5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogOAp9"}}}
@@ -553,19 +556,19 @@
 , {"uuid": "logomenu@aryan_k", "name": "Logo Menu", "pname": "logo-menu", "description": "Logo Menu - Menu similar to Apple's macOS menu for the GNOME Desktop\nThis extension gives a simple menu along with the ability to get the icon of your distro on top left part of the panel for a great look.\nThe Icon can be customized through settings, it has both Linux and BSD logos.\nfor more screenshots, visit GitHub.\n\nThe default Terminal and Software center can also be changed.\n\nThis extension is a fork of - https://github.com/tofutech/tofumenu\n\nThe original project is no more supported thus I made this.", "link": "https://extensions.gnome.org/extension/4451/logo-menu/", "shell_version_map": {"38": {"version": "7", "sha256": "15n7ij36sizhg4arbn5x4b2j3nqlr4z7nvsbcqm3bvy9pjvmib2h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvZ28gTWVudSAtIE1lbnUgc2ltaWxhciB0byBBcHBsZSdzIG1hY09TIG1lbnUgZm9yIHRoZSBHTk9NRSBEZXNrdG9wXG5UaGlzIGV4dGVuc2lvbiBnaXZlcyBhIHNpbXBsZSBtZW51IGFsb25nIHdpdGggdGhlIGFiaWxpdHkgdG8gZ2V0IHRoZSBpY29uIG9mIHlvdXIgZGlzdHJvIG9uIHRvcCBsZWZ0IHBhcnQgb2YgdGhlIHBhbmVsIGZvciBhIGdyZWF0IGxvb2suXG5UaGUgSWNvbiBjYW4gYmUgY3VzdG9taXplZCB0aHJvdWdoIHNldHRpbmdzLCBpdCBoYXMgYm90aCBMaW51eCBhbmQgQlNEIGxvZ29zLlxuZm9yIG1vcmUgc2NyZWVuc2hvdHMsIHZpc2l0IEdpdEh1Yi5cblxuVGhlIGRlZmF1bHQgVGVybWluYWwgYW5kIFNvZnR3YXJlIGNlbnRlciBjYW4gYWxzbyBiZSBjaGFuZ2VkLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgLSBodHRwczovL2dpdGh1Yi5jb20vdG9mdXRlY2gvdG9mdW1lbnVcblxuVGhlIG9yaWdpbmFsIHByb2plY3QgaXMgbm8gbW9yZSBzdXBwb3J0ZWQgdGh1cyBJIG1hZGUgdGhpcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsb2dvLW1lbnUiLAogICJuYW1lIjogIkxvZ28gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuYXJ5YW5fay5sb2dvLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FyeWFuMjAvTG9nb21lbnUiLAogICJ1dWlkIjogImxvZ29tZW51QGFyeWFuX2siLAogICJ2ZXJzaW9uIjogNwp9"}, "40": {"version": "7", "sha256": "15n7ij36sizhg4arbn5x4b2j3nqlr4z7nvsbcqm3bvy9pjvmib2h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvZ28gTWVudSAtIE1lbnUgc2ltaWxhciB0byBBcHBsZSdzIG1hY09TIG1lbnUgZm9yIHRoZSBHTk9NRSBEZXNrdG9wXG5UaGlzIGV4dGVuc2lvbiBnaXZlcyBhIHNpbXBsZSBtZW51IGFsb25nIHdpdGggdGhlIGFiaWxpdHkgdG8gZ2V0IHRoZSBpY29uIG9mIHlvdXIgZGlzdHJvIG9uIHRvcCBsZWZ0IHBhcnQgb2YgdGhlIHBhbmVsIGZvciBhIGdyZWF0IGxvb2suXG5UaGUgSWNvbiBjYW4gYmUgY3VzdG9taXplZCB0aHJvdWdoIHNldHRpbmdzLCBpdCBoYXMgYm90aCBMaW51eCBhbmQgQlNEIGxvZ29zLlxuZm9yIG1vcmUgc2NyZWVuc2hvdHMsIHZpc2l0IEdpdEh1Yi5cblxuVGhlIGRlZmF1bHQgVGVybWluYWwgYW5kIFNvZnR3YXJlIGNlbnRlciBjYW4gYWxzbyBiZSBjaGFuZ2VkLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgLSBodHRwczovL2dpdGh1Yi5jb20vdG9mdXRlY2gvdG9mdW1lbnVcblxuVGhlIG9yaWdpbmFsIHByb2plY3QgaXMgbm8gbW9yZSBzdXBwb3J0ZWQgdGh1cyBJIG1hZGUgdGhpcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsb2dvLW1lbnUiLAogICJuYW1lIjogIkxvZ28gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuYXJ5YW5fay5sb2dvLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FyeWFuMjAvTG9nb21lbnUiLAogICJ1dWlkIjogImxvZ29tZW51QGFyeWFuX2siLAogICJ2ZXJzaW9uIjogNwp9"}, "41": {"version": "7", "sha256": "15n7ij36sizhg4arbn5x4b2j3nqlr4z7nvsbcqm3bvy9pjvmib2h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvZ28gTWVudSAtIE1lbnUgc2ltaWxhciB0byBBcHBsZSdzIG1hY09TIG1lbnUgZm9yIHRoZSBHTk9NRSBEZXNrdG9wXG5UaGlzIGV4dGVuc2lvbiBnaXZlcyBhIHNpbXBsZSBtZW51IGFsb25nIHdpdGggdGhlIGFiaWxpdHkgdG8gZ2V0IHRoZSBpY29uIG9mIHlvdXIgZGlzdHJvIG9uIHRvcCBsZWZ0IHBhcnQgb2YgdGhlIHBhbmVsIGZvciBhIGdyZWF0IGxvb2suXG5UaGUgSWNvbiBjYW4gYmUgY3VzdG9taXplZCB0aHJvdWdoIHNldHRpbmdzLCBpdCBoYXMgYm90aCBMaW51eCBhbmQgQlNEIGxvZ29zLlxuZm9yIG1vcmUgc2NyZWVuc2hvdHMsIHZpc2l0IEdpdEh1Yi5cblxuVGhlIGRlZmF1bHQgVGVybWluYWwgYW5kIFNvZnR3YXJlIGNlbnRlciBjYW4gYWxzbyBiZSBjaGFuZ2VkLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgLSBodHRwczovL2dpdGh1Yi5jb20vdG9mdXRlY2gvdG9mdW1lbnVcblxuVGhlIG9yaWdpbmFsIHByb2plY3QgaXMgbm8gbW9yZSBzdXBwb3J0ZWQgdGh1cyBJIG1hZGUgdGhpcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsb2dvLW1lbnUiLAogICJuYW1lIjogIkxvZ28gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuYXJ5YW5fay5sb2dvLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FyeWFuMjAvTG9nb21lbnUiLAogICJ1dWlkIjogImxvZ29tZW51QGFyeWFuX2siLAogICJ2ZXJzaW9uIjogNwp9"}}}
 , {"uuid": "rog-manager@rog", "name": "Rog Asus Manager", "pname": "rog-asus-manager", "description": "Asus ROG manager", "link": "https://extensions.gnome.org/extension/4452/rog-asus-manager/", "shell_version_map": {"38": {"version": "4", "sha256": "194k3qzjd05rki20ww0nv8001aiyp4ih9abv82g64058x8rmnff5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFzdXMgUk9HIG1hbmFnZXIiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJyb2ctbWFuYWdlciIsCiAgIm5hbWUiOiAiUm9nIEFzdXMgTWFuYWdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yb2dtYW5hZ2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWxlamFuZHJvLW1vdXJhcy9yb2ctbWFuYWdlciIsCiAgInV1aWQiOiAicm9nLW1hbmFnZXJAcm9nIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
 , {"uuid": "titlebar-screenshot@jmaargh.github.com", "name": "Titlebar Screenshot", "pname": "titlebar-screenshot", "description": "Take screenshots by right-clicking on window titlebars.\n\nVarious configuration options include screenshots can be taken to the clipboard, to a file, or by opening the interactive tool.\n\nAll feedback and bug reports to Issues on the github page.", "link": "https://extensions.gnome.org/extension/4458/titlebar-screenshot/", "shell_version_map": {"38": {"version": "3", "sha256": "1vhphrjq2vyzlknfl3i7f8i3v9f8jcrpwiz26sigklmv3bmzb059", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRha2Ugc2NyZWVuc2hvdHMgYnkgcmlnaHQtY2xpY2tpbmcgb24gd2luZG93IHRpdGxlYmFycy5cblxuVmFyaW91cyBjb25maWd1cmF0aW9uIG9wdGlvbnMgaW5jbHVkZSBzY3JlZW5zaG90cyBjYW4gYmUgdGFrZW4gdG8gdGhlIGNsaXBib2FyZCwgdG8gYSBmaWxlLCBvciBieSBvcGVuaW5nIHRoZSBpbnRlcmFjdGl2ZSB0b29sLlxuXG5BbGwgZmVlZGJhY2sgYW5kIGJ1ZyByZXBvcnRzIHRvIElzc3VlcyBvbiB0aGUgZ2l0aHViIHBhZ2UuIiwKICAibmFtZSI6ICJUaXRsZWJhciBTY3JlZW5zaG90IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRpdGxlYmFyLXNjcmVlbnNob3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vam1hYXJnaC90aXRsZWJhci1zY3JlZW5zaG90LWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAidGl0bGViYXItc2NyZWVuc2hvdEBqbWFhcmdoLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "1vhphrjq2vyzlknfl3i7f8i3v9f8jcrpwiz26sigklmv3bmzb059", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRha2Ugc2NyZWVuc2hvdHMgYnkgcmlnaHQtY2xpY2tpbmcgb24gd2luZG93IHRpdGxlYmFycy5cblxuVmFyaW91cyBjb25maWd1cmF0aW9uIG9wdGlvbnMgaW5jbHVkZSBzY3JlZW5zaG90cyBjYW4gYmUgdGFrZW4gdG8gdGhlIGNsaXBib2FyZCwgdG8gYSBmaWxlLCBvciBieSBvcGVuaW5nIHRoZSBpbnRlcmFjdGl2ZSB0b29sLlxuXG5BbGwgZmVlZGJhY2sgYW5kIGJ1ZyByZXBvcnRzIHRvIElzc3VlcyBvbiB0aGUgZ2l0aHViIHBhZ2UuIiwKICAibmFtZSI6ICJUaXRsZWJhciBTY3JlZW5zaG90IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRpdGxlYmFyLXNjcmVlbnNob3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vam1hYXJnaC90aXRsZWJhci1zY3JlZW5zaG90LWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAidGl0bGViYXItc2NyZWVuc2hvdEBqbWFhcmdoLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}}}
-, {"uuid": "expandable-notifications@kaan.g.inam.org", "name": "Expandable Notifications", "pname": "expandable-notifications", "description": "Makes the notifications in the notification list expandable. Using gsettings, you can choose between three modes: AUTO, ARROW and CRITICAL.\n\nAUTO will expand the notifications in the notification list automatically. \nARROW adds an arrow that lets you choose what to expand or unexpand. \nCRITICAL is similar to arrow, but expands notifications with the urgency critical automatically. \n\nFor more information and an example command to change the mode, I recommend to look at the repository.\"", "link": "https://extensions.gnome.org/extension/4463/expandable-notifications/", "shell_version_map": {"40": {"version": "8", "sha256": "07g1q5y18zzf0jys16f781bck2s3my5jiyjb72mb47h4iqvyy83q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIHRoZSBub3RpZmljYXRpb25zIGluIHRoZSBub3RpZmljYXRpb24gbGlzdCBleHBhbmRhYmxlLiBVc2luZyBnc2V0dGluZ3MsIHlvdSBjYW4gY2hvb3NlIGJldHdlZW4gdGhyZWUgbW9kZXM6IEFVVE8sIEFSUk9XIGFuZCBDUklUSUNBTC5cblxuQVVUTyB3aWxsIGV4cGFuZCB0aGUgbm90aWZpY2F0aW9ucyBpbiB0aGUgbm90aWZpY2F0aW9uIGxpc3QgYXV0b21hdGljYWxseS4gXG5BUlJPVyBhZGRzIGFuIGFycm93IHRoYXQgbGV0cyB5b3UgY2hvb3NlIHdoYXQgdG8gZXhwYW5kIG9yIHVuZXhwYW5kLiBcbkNSSVRJQ0FMIGlzIHNpbWlsYXIgdG8gYXJyb3csIGJ1dCBleHBhbmRzIG5vdGlmaWNhdGlvbnMgd2l0aCB0aGUgdXJnZW5jeSBjcml0aWNhbCBhdXRvbWF0aWNhbGx5LiBcblxuRm9yIG1vcmUgaW5mb3JtYXRpb24gYW5kIGFuIGV4YW1wbGUgY29tbWFuZCB0byBjaGFuZ2UgdGhlIG1vZGUsIEkgcmVjb21tZW5kIHRvIGxvb2sgYXQgdGhlIHJlcG9zaXRvcnkuXCIiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJleHBhbmRhYmxlLW5vdGlmaWNhdGlvbnMiLAogICJuYW1lIjogIkV4cGFuZGFibGUgTm90aWZpY2F0aW9ucyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5leHBhbmRhYmxlLW5vdGlmaWNhdGlvbnMtc2V0dGluZ3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL2thYW5naW5hbS9leHBhbmRhYmxlLW5vdGlmaWNhdGlvbnMiLAogICJ1dWlkIjogImV4cGFuZGFibGUtbm90aWZpY2F0aW9uc0BrYWFuLmcuaW5hbS5vcmciLAogICJ2ZXJzaW9uIjogOAp9"}, "41": {"version": "8", "sha256": "07g1q5y18zzf0jys16f781bck2s3my5jiyjb72mb47h4iqvyy83q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIHRoZSBub3RpZmljYXRpb25zIGluIHRoZSBub3RpZmljYXRpb24gbGlzdCBleHBhbmRhYmxlLiBVc2luZyBnc2V0dGluZ3MsIHlvdSBjYW4gY2hvb3NlIGJldHdlZW4gdGhyZWUgbW9kZXM6IEFVVE8sIEFSUk9XIGFuZCBDUklUSUNBTC5cblxuQVVUTyB3aWxsIGV4cGFuZCB0aGUgbm90aWZpY2F0aW9ucyBpbiB0aGUgbm90aWZpY2F0aW9uIGxpc3QgYXV0b21hdGljYWxseS4gXG5BUlJPVyBhZGRzIGFuIGFycm93IHRoYXQgbGV0cyB5b3UgY2hvb3NlIHdoYXQgdG8gZXhwYW5kIG9yIHVuZXhwYW5kLiBcbkNSSVRJQ0FMIGlzIHNpbWlsYXIgdG8gYXJyb3csIGJ1dCBleHBhbmRzIG5vdGlmaWNhdGlvbnMgd2l0aCB0aGUgdXJnZW5jeSBjcml0aWNhbCBhdXRvbWF0aWNhbGx5LiBcblxuRm9yIG1vcmUgaW5mb3JtYXRpb24gYW5kIGFuIGV4YW1wbGUgY29tbWFuZCB0byBjaGFuZ2UgdGhlIG1vZGUsIEkgcmVjb21tZW5kIHRvIGxvb2sgYXQgdGhlIHJlcG9zaXRvcnkuXCIiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJleHBhbmRhYmxlLW5vdGlmaWNhdGlvbnMiLAogICJuYW1lIjogIkV4cGFuZGFibGUgTm90aWZpY2F0aW9ucyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5leHBhbmRhYmxlLW5vdGlmaWNhdGlvbnMtc2V0dGluZ3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL2thYW5naW5hbS9leHBhbmRhYmxlLW5vdGlmaWNhdGlvbnMiLAogICJ1dWlkIjogImV4cGFuZGFibGUtbm90aWZpY2F0aW9uc0BrYWFuLmcuaW5hbS5vcmciLAogICJ2ZXJzaW9uIjogOAp9"}}}
+, {"uuid": "expandable-notifications@kaan.g.inam.org", "name": "Expandable Notifications", "pname": "expandable-notifications", "description": "Makes the notifications in the notification list expandable. Using gsettings, you can choose between three modes: AUTO, ARROW and CRITICAL.\n\nAUTO will expand the notifications in the notification list automatically. \nARROW adds an arrow that lets you choose what to expand or unexpand. \nCRITICAL is similar to arrow, but expands notifications with the urgency critical automatically. \n\nFor more information and an example command to change the mode, I recommend to look at the repository.\"\n\nThe old repository has been deleted, however I reposted the extension on GitHub.", "link": "https://extensions.gnome.org/extension/4463/expandable-notifications/", "shell_version_map": {"40": {"version": "8", "sha256": "04i0hxsv41wfxg8z590mgn2klma47mgcz7qr52ca2llpd4dkrjj5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIHRoZSBub3RpZmljYXRpb25zIGluIHRoZSBub3RpZmljYXRpb24gbGlzdCBleHBhbmRhYmxlLiBVc2luZyBnc2V0dGluZ3MsIHlvdSBjYW4gY2hvb3NlIGJldHdlZW4gdGhyZWUgbW9kZXM6IEFVVE8sIEFSUk9XIGFuZCBDUklUSUNBTC5cblxuQVVUTyB3aWxsIGV4cGFuZCB0aGUgbm90aWZpY2F0aW9ucyBpbiB0aGUgbm90aWZpY2F0aW9uIGxpc3QgYXV0b21hdGljYWxseS4gXG5BUlJPVyBhZGRzIGFuIGFycm93IHRoYXQgbGV0cyB5b3UgY2hvb3NlIHdoYXQgdG8gZXhwYW5kIG9yIHVuZXhwYW5kLiBcbkNSSVRJQ0FMIGlzIHNpbWlsYXIgdG8gYXJyb3csIGJ1dCBleHBhbmRzIG5vdGlmaWNhdGlvbnMgd2l0aCB0aGUgdXJnZW5jeSBjcml0aWNhbCBhdXRvbWF0aWNhbGx5LiBcblxuRm9yIG1vcmUgaW5mb3JtYXRpb24gYW5kIGFuIGV4YW1wbGUgY29tbWFuZCB0byBjaGFuZ2UgdGhlIG1vZGUsIEkgcmVjb21tZW5kIHRvIGxvb2sgYXQgdGhlIHJlcG9zaXRvcnkuXCJcblxuVGhlIG9sZCByZXBvc2l0b3J5IGhhcyBiZWVuIGRlbGV0ZWQsIGhvd2V2ZXIgSSByZXBvc3RlZCB0aGUgZXh0ZW5zaW9uIG9uIEdpdEh1Yi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJleHBhbmRhYmxlLW5vdGlmaWNhdGlvbnMiLAogICJuYW1lIjogIkV4cGFuZGFibGUgTm90aWZpY2F0aW9ucyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5leHBhbmRhYmxlLW5vdGlmaWNhdGlvbnMtc2V0dGluZ3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2thYW5naW5hbS9leHBhbmRhYmxlLW5vdGlmaWNhdGlvbnMiLAogICJ1dWlkIjogImV4cGFuZGFibGUtbm90aWZpY2F0aW9uc0BrYWFuLmcuaW5hbS5vcmciLAogICJ2ZXJzaW9uIjogOAp9"}, "41": {"version": "8", "sha256": "04i0hxsv41wfxg8z590mgn2klma47mgcz7qr52ca2llpd4dkrjj5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIHRoZSBub3RpZmljYXRpb25zIGluIHRoZSBub3RpZmljYXRpb24gbGlzdCBleHBhbmRhYmxlLiBVc2luZyBnc2V0dGluZ3MsIHlvdSBjYW4gY2hvb3NlIGJldHdlZW4gdGhyZWUgbW9kZXM6IEFVVE8sIEFSUk9XIGFuZCBDUklUSUNBTC5cblxuQVVUTyB3aWxsIGV4cGFuZCB0aGUgbm90aWZpY2F0aW9ucyBpbiB0aGUgbm90aWZpY2F0aW9uIGxpc3QgYXV0b21hdGljYWxseS4gXG5BUlJPVyBhZGRzIGFuIGFycm93IHRoYXQgbGV0cyB5b3UgY2hvb3NlIHdoYXQgdG8gZXhwYW5kIG9yIHVuZXhwYW5kLiBcbkNSSVRJQ0FMIGlzIHNpbWlsYXIgdG8gYXJyb3csIGJ1dCBleHBhbmRzIG5vdGlmaWNhdGlvbnMgd2l0aCB0aGUgdXJnZW5jeSBjcml0aWNhbCBhdXRvbWF0aWNhbGx5LiBcblxuRm9yIG1vcmUgaW5mb3JtYXRpb24gYW5kIGFuIGV4YW1wbGUgY29tbWFuZCB0byBjaGFuZ2UgdGhlIG1vZGUsIEkgcmVjb21tZW5kIHRvIGxvb2sgYXQgdGhlIHJlcG9zaXRvcnkuXCJcblxuVGhlIG9sZCByZXBvc2l0b3J5IGhhcyBiZWVuIGRlbGV0ZWQsIGhvd2V2ZXIgSSByZXBvc3RlZCB0aGUgZXh0ZW5zaW9uIG9uIEdpdEh1Yi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJleHBhbmRhYmxlLW5vdGlmaWNhdGlvbnMiLAogICJuYW1lIjogIkV4cGFuZGFibGUgTm90aWZpY2F0aW9ucyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5leHBhbmRhYmxlLW5vdGlmaWNhdGlvbnMtc2V0dGluZ3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2thYW5naW5hbS9leHBhbmRhYmxlLW5vdGlmaWNhdGlvbnMiLAogICJ1dWlkIjogImV4cGFuZGFibGUtbm90aWZpY2F0aW9uc0BrYWFuLmcuaW5hbS5vcmciLAogICJ2ZXJzaW9uIjogOAp9"}}}
 , {"uuid": "orange-share@Yannis4444.github.com", "name": "Orange Share", "pname": "orange-share", "description": "A small python server that accepts requests from an apple shortcut to allow sharing all sorts of media from iOS", "link": "https://extensions.gnome.org/extension/4469/orange-share/", "shell_version_map": {"40": {"version": "6", "sha256": "0hv84f6rwmrn1i9dasnrsc3dr4iryxg0mbd39ziq1iamas2j3biz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc21hbGwgcHl0aG9uIHNlcnZlciB0aGF0IGFjY2VwdHMgcmVxdWVzdHMgZnJvbSBhbiBhcHBsZSBzaG9ydGN1dCB0byBhbGxvdyBzaGFyaW5nIGFsbCBzb3J0cyBvZiBtZWRpYSBmcm9tIGlPUyIsCiAgIm5hbWUiOiAiT3JhbmdlIFNoYXJlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1lhbm5pczQ0NDQvT3JhbmdlLVNoYXJlLyIsCiAgInV1aWQiOiAib3JhbmdlLXNoYXJlQFlhbm5pczQ0NDQuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}}}
 , {"uuid": "mediacontrols@cliffniff.github.com", "name": "Media Controls", "pname": "media-controls", "description": "Show controls and information of the currently playing media in the panel.\n\n    - Highly customizable\n    - Support GNOME 3.36(beta) , 3.38, 40, 41\n    - Caches album art\n    - Control every element in the extension", "link": "https://extensions.gnome.org/extension/4470/media-controls/", "shell_version_map": {"38": {"version": "20", "sha256": "0cvn15w11vgjpgrwb7436gyy6v7zlbnfk8bd34wyijfd9ny7d0xj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY29udHJvbHMgYW5kIGluZm9ybWF0aW9uIG9mIHRoZSBjdXJyZW50bHkgcGxheWluZyBtZWRpYSBpbiB0aGUgcGFuZWwuXG5cbiAgICAtIEhpZ2hseSBjdXN0b21pemFibGVcbiAgICAtIFN1cHBvcnQgR05PTUUgMy4zNihiZXRhKSAsIDMuMzgsIDQwLCA0MVxuICAgIC0gQ2FjaGVzIGFsYnVtIGFydFxuICAgIC0gQ29udHJvbCBldmVyeSBlbGVtZW50IGluIHRoZSBleHRlbnNpb24iLAogICJuYW1lIjogIk1lZGlhIENvbnRyb2xzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1lZGlhY29udHJvbHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NsaWZmbmlmZi9tZWRpYS1jb250cm9scyIsCiAgInV1aWQiOiAibWVkaWFjb250cm9sc0BjbGlmZm5pZmYuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyMAp9"}, "40": {"version": "20", "sha256": "0cvn15w11vgjpgrwb7436gyy6v7zlbnfk8bd34wyijfd9ny7d0xj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY29udHJvbHMgYW5kIGluZm9ybWF0aW9uIG9mIHRoZSBjdXJyZW50bHkgcGxheWluZyBtZWRpYSBpbiB0aGUgcGFuZWwuXG5cbiAgICAtIEhpZ2hseSBjdXN0b21pemFibGVcbiAgICAtIFN1cHBvcnQgR05PTUUgMy4zNihiZXRhKSAsIDMuMzgsIDQwLCA0MVxuICAgIC0gQ2FjaGVzIGFsYnVtIGFydFxuICAgIC0gQ29udHJvbCBldmVyeSBlbGVtZW50IGluIHRoZSBleHRlbnNpb24iLAogICJuYW1lIjogIk1lZGlhIENvbnRyb2xzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1lZGlhY29udHJvbHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NsaWZmbmlmZi9tZWRpYS1jb250cm9scyIsCiAgInV1aWQiOiAibWVkaWFjb250cm9sc0BjbGlmZm5pZmYuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyMAp9"}, "41": {"version": "20", "sha256": "0cvn15w11vgjpgrwb7436gyy6v7zlbnfk8bd34wyijfd9ny7d0xj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY29udHJvbHMgYW5kIGluZm9ybWF0aW9uIG9mIHRoZSBjdXJyZW50bHkgcGxheWluZyBtZWRpYSBpbiB0aGUgcGFuZWwuXG5cbiAgICAtIEhpZ2hseSBjdXN0b21pemFibGVcbiAgICAtIFN1cHBvcnQgR05PTUUgMy4zNihiZXRhKSAsIDMuMzgsIDQwLCA0MVxuICAgIC0gQ2FjaGVzIGFsYnVtIGFydFxuICAgIC0gQ29udHJvbCBldmVyeSBlbGVtZW50IGluIHRoZSBleHRlbnNpb24iLAogICJuYW1lIjogIk1lZGlhIENvbnRyb2xzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1lZGlhY29udHJvbHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NsaWZmbmlmZi9tZWRpYS1jb250cm9scyIsCiAgInV1aWQiOiAibWVkaWFjb250cm9sc0BjbGlmZm5pZmYuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyMAp9"}}}
 , {"uuid": "sp-tray@sp-tray.esenliyim.github.com", "name": "spotify-tray", "pname": "spotify-tray", "description": "Adds a simple label to the panel that shows currently playing song on Spotify, nothing more", "link": "https://extensions.gnome.org/extension/4472/spotify-tray/", "shell_version_map": {"38": {"version": "10", "sha256": "0j8sisaidsmybkf6agf580pqppamvs43dbmqjb8j769i1gdq0jp6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBzaW1wbGUgbGFiZWwgdG8gdGhlIHBhbmVsIHRoYXQgc2hvd3MgY3VycmVudGx5IHBsYXlpbmcgc29uZyBvbiBTcG90aWZ5LCBub3RoaW5nIG1vcmUiLAogICJuYW1lIjogInNwb3RpZnktdHJheSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zcC10cmF5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lc2VubGl5aW0vc3AtdHJheSIsCiAgInV1aWQiOiAic3AtdHJheUBzcC10cmF5LmVzZW5saXlpbS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}, "40": {"version": "10", "sha256": "0j8sisaidsmybkf6agf580pqppamvs43dbmqjb8j769i1gdq0jp6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBzaW1wbGUgbGFiZWwgdG8gdGhlIHBhbmVsIHRoYXQgc2hvd3MgY3VycmVudGx5IHBsYXlpbmcgc29uZyBvbiBTcG90aWZ5LCBub3RoaW5nIG1vcmUiLAogICJuYW1lIjogInNwb3RpZnktdHJheSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zcC10cmF5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lc2VubGl5aW0vc3AtdHJheSIsCiAgInV1aWQiOiAic3AtdHJheUBzcC10cmF5LmVzZW5saXlpbS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}, "41": {"version": "10", "sha256": "0j8sisaidsmybkf6agf580pqppamvs43dbmqjb8j769i1gdq0jp6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBzaW1wbGUgbGFiZWwgdG8gdGhlIHBhbmVsIHRoYXQgc2hvd3MgY3VycmVudGx5IHBsYXlpbmcgc29uZyBvbiBTcG90aWZ5LCBub3RoaW5nIG1vcmUiLAogICJuYW1lIjogInNwb3RpZnktdHJheSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zcC10cmF5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lc2VubGl5aW0vc3AtdHJheSIsCiAgInV1aWQiOiAic3AtdHJheUBzcC10cmF5LmVzZW5saXlpbS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}}}
 , {"uuid": "aws-default-profile-switcher@kevin-chappell.com", "name": "AWS Default Profile Switcher", "pname": "aws-default-profile-switcher", "description": "Gnome shell extension for quickly setting named profiles as the default", "link": "https://extensions.gnome.org/extension/4473/aws-default-profile-switcher/", "shell_version_map": {"38": {"version": "3", "sha256": "0mal1290kdvqv60m0ps42hnx801knh5vd4mlwg1z7ydj9sw31cfg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIHNoZWxsIGV4dGVuc2lvbiBmb3IgcXVpY2tseSBzZXR0aW5nIG5hbWVkIHByb2ZpbGVzIGFzIHRoZSBkZWZhdWx0IiwKICAibmFtZSI6ICJBV1MgRGVmYXVsdCBQcm9maWxlIFN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2V2aW5jaGFwcGVsbC9hd3MtZGVmYXVsdC1wcm9maWxlLXN3aXRjaGVyIiwKICAidXVpZCI6ICJhd3MtZGVmYXVsdC1wcm9maWxlLXN3aXRjaGVyQGtldmluLWNoYXBwZWxsLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}}}
 , {"uuid": "hide-panel-for-fullscreen-windows-only@github.freder", "name": "Hide panel (only when active window is fullscreen)", "pname": "hide-panel-only-when-active-window-is-fullscreen", "description": "hide top panel only when a fullscreen application has focus", "link": "https://extensions.gnome.org/extension/4475/hide-panel-only-when-active-window-is-fullscreen/", "shell_version_map": {"40": {"version": "2", "sha256": "1hd5agdjq73qiqip0m3grmlxk8klp26pd71cz555414mi3f9mww3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImhpZGUgdG9wIHBhbmVsIG9ubHkgd2hlbiBhIGZ1bGxzY3JlZW4gYXBwbGljYXRpb24gaGFzIGZvY3VzIiwKICAibmFtZSI6ICJIaWRlIHBhbmVsIChvbmx5IHdoZW4gYWN0aXZlIHdpbmRvdyBpcyBmdWxsc2NyZWVuKSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mcmVkZXIvaGlkZS1wYW5lbC1mb3ItZnVsbHNjcmVlbi13aW5kb3dzLW9ubHkiLAogICJ1dWlkIjogImhpZGUtcGFuZWwtZm9yLWZ1bGxzY3JlZW4td2luZG93cy1vbmx5QGdpdGh1Yi5mcmVkZXIiLAogICJ2ZXJzaW9uIjogMgp9"}}}
 , {"uuid": "netspeed@alynx.one", "name": "Net Speed", "pname": "net-speed", "description": "Show current net speed on panel.", "link": "https://extensions.gnome.org/extension/4478/net-speed/", "shell_version_map": {"40": {"version": "2", "sha256": "0j48ai7nqkpr0ymypsicdp7nw59hx9rgya8qws58wx56q9bznl69", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY3VycmVudCBuZXQgc3BlZWQgb24gcGFuZWwuIiwKICAibmFtZSI6ICJOZXQgU3BlZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIm5ldHNwZWVkQGFseW54Lm9uZSIsCiAgInZlcnNpb24iOiAyCn0="}}}
-, {"uuid": "forge@jmmaranan.com", "name": "Forge", "pname": "forge", "description": "Tiling and window manager for GNOME\n\nMAJOR CHANGES\n\n - Drag-drop tiling regions.\n - Removed toggling monitor stacked/tabbed layout. Creates a split first then updating the layout.\n\n Please report bugs/issues on https://github.com/jmmaranan/forge/issues", "link": "https://extensions.gnome.org/extension/4481/forge/", "shell_version_map": {"38": {"version": "35", "sha256": "14pxp52j63x93lm80k27k7xafjnadifz2ral9a8sipqrdhdgji5b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyBhbmQgd2luZG93IG1hbmFnZXIgZm9yIEdOT01FXG5cbk1BSk9SIENIQU5HRVNcblxuIC0gRHJhZy1kcm9wIHRpbGluZyByZWdpb25zLlxuIC0gUmVtb3ZlZCB0b2dnbGluZyBtb25pdG9yIHN0YWNrZWQvdGFiYmVkIGxheW91dC4gQ3JlYXRlcyBhIHNwbGl0IGZpcnN0IHRoZW4gdXBkYXRpbmcgdGhlIGxheW91dC5cblxuIFBsZWFzZSByZXBvcnQgYnVncy9pc3N1ZXMgb24gaHR0cHM6Ly9naXRodWIuY29tL2ptbWFyYW5hbi9mb3JnZS9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmb3JnZSIsCiAgIm5hbWUiOiAiRm9yZ2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZm9yZ2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qbW1hcmFuYW4vZm9yZ2UiLAogICJ1dWlkIjogImZvcmdlQGptbWFyYW5hbi5jb20iLAogICJ2ZXJzaW9uIjogMzUKfQ=="}, "40": {"version": "36", "sha256": "1lhwncp1jiviw5azarc4ard975a9bxpxrzmllzkhwsqj3mqixyml", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyBhbmQgd2luZG93IG1hbmFnZXIgZm9yIEdOT01FXG5cbk1BSk9SIENIQU5HRVNcblxuIC0gRHJhZy1kcm9wIHRpbGluZyByZWdpb25zLlxuIC0gUmVtb3ZlZCB0b2dnbGluZyBtb25pdG9yIHN0YWNrZWQvdGFiYmVkIGxheW91dC4gQ3JlYXRlcyBhIHNwbGl0IGZpcnN0IHRoZW4gdXBkYXRpbmcgdGhlIGxheW91dC5cblxuIFBsZWFzZSByZXBvcnQgYnVncy9pc3N1ZXMgb24gaHR0cHM6Ly9naXRodWIuY29tL2ptbWFyYW5hbi9mb3JnZS9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmb3JnZSIsCiAgIm5hbWUiOiAiRm9yZ2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZm9yZ2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ptbWFyYW5hbi9mb3JnZSIsCiAgInV1aWQiOiAiZm9yZ2VAam1tYXJhbmFuLmNvbSIsCiAgInZlcnNpb24iOiAzNgp9"}, "41": {"version": "36", "sha256": "1lhwncp1jiviw5azarc4ard975a9bxpxrzmllzkhwsqj3mqixyml", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyBhbmQgd2luZG93IG1hbmFnZXIgZm9yIEdOT01FXG5cbk1BSk9SIENIQU5HRVNcblxuIC0gRHJhZy1kcm9wIHRpbGluZyByZWdpb25zLlxuIC0gUmVtb3ZlZCB0b2dnbGluZyBtb25pdG9yIHN0YWNrZWQvdGFiYmVkIGxheW91dC4gQ3JlYXRlcyBhIHNwbGl0IGZpcnN0IHRoZW4gdXBkYXRpbmcgdGhlIGxheW91dC5cblxuIFBsZWFzZSByZXBvcnQgYnVncy9pc3N1ZXMgb24gaHR0cHM6Ly9naXRodWIuY29tL2ptbWFyYW5hbi9mb3JnZS9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmb3JnZSIsCiAgIm5hbWUiOiAiRm9yZ2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZm9yZ2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ptbWFyYW5hbi9mb3JnZSIsCiAgInV1aWQiOiAiZm9yZ2VAam1tYXJhbmFuLmNvbSIsCiAgInZlcnNpb24iOiAzNgp9"}}}
+, {"uuid": "forge@jmmaranan.com", "name": "Forge", "pname": "forge", "description": "Tiling and window manager for GNOME\n\nMAJOR CHANGES\n\n - Drag-drop tiling regions.\n - Removed toggling monitor stacked/tabbed layout. Creates a split first then updating the layout.\n\n Please report bugs/issues on https://github.com/jmmaranan/forge/issues", "link": "https://extensions.gnome.org/extension/4481/forge/", "shell_version_map": {"38": {"version": "35", "sha256": "14pxp52j63x93lm80k27k7xafjnadifz2ral9a8sipqrdhdgji5b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyBhbmQgd2luZG93IG1hbmFnZXIgZm9yIEdOT01FXG5cbk1BSk9SIENIQU5HRVNcblxuIC0gRHJhZy1kcm9wIHRpbGluZyByZWdpb25zLlxuIC0gUmVtb3ZlZCB0b2dnbGluZyBtb25pdG9yIHN0YWNrZWQvdGFiYmVkIGxheW91dC4gQ3JlYXRlcyBhIHNwbGl0IGZpcnN0IHRoZW4gdXBkYXRpbmcgdGhlIGxheW91dC5cblxuIFBsZWFzZSByZXBvcnQgYnVncy9pc3N1ZXMgb24gaHR0cHM6Ly9naXRodWIuY29tL2ptbWFyYW5hbi9mb3JnZS9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmb3JnZSIsCiAgIm5hbWUiOiAiRm9yZ2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZm9yZ2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qbW1hcmFuYW4vZm9yZ2UiLAogICJ1dWlkIjogImZvcmdlQGptbWFyYW5hbi5jb20iLAogICJ2ZXJzaW9uIjogMzUKfQ=="}, "40": {"version": "37", "sha256": "0xm6ypj2p0hbmhxwx9snral0ca0yp0v9v7bd8nvg2ky8gqy744bn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyBhbmQgd2luZG93IG1hbmFnZXIgZm9yIEdOT01FXG5cbk1BSk9SIENIQU5HRVNcblxuIC0gRHJhZy1kcm9wIHRpbGluZyByZWdpb25zLlxuIC0gUmVtb3ZlZCB0b2dnbGluZyBtb25pdG9yIHN0YWNrZWQvdGFiYmVkIGxheW91dC4gQ3JlYXRlcyBhIHNwbGl0IGZpcnN0IHRoZW4gdXBkYXRpbmcgdGhlIGxheW91dC5cblxuIFBsZWFzZSByZXBvcnQgYnVncy9pc3N1ZXMgb24gaHR0cHM6Ly9naXRodWIuY29tL2ptbWFyYW5hbi9mb3JnZS9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmb3JnZSIsCiAgIm5hbWUiOiAiRm9yZ2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZm9yZ2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ptbWFyYW5hbi9mb3JnZSIsCiAgInV1aWQiOiAiZm9yZ2VAam1tYXJhbmFuLmNvbSIsCiAgInZlcnNpb24iOiAzNwp9"}, "41": {"version": "37", "sha256": "0xm6ypj2p0hbmhxwx9snral0ca0yp0v9v7bd8nvg2ky8gqy744bn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyBhbmQgd2luZG93IG1hbmFnZXIgZm9yIEdOT01FXG5cbk1BSk9SIENIQU5HRVNcblxuIC0gRHJhZy1kcm9wIHRpbGluZyByZWdpb25zLlxuIC0gUmVtb3ZlZCB0b2dnbGluZyBtb25pdG9yIHN0YWNrZWQvdGFiYmVkIGxheW91dC4gQ3JlYXRlcyBhIHNwbGl0IGZpcnN0IHRoZW4gdXBkYXRpbmcgdGhlIGxheW91dC5cblxuIFBsZWFzZSByZXBvcnQgYnVncy9pc3N1ZXMgb24gaHR0cHM6Ly9naXRodWIuY29tL2ptbWFyYW5hbi9mb3JnZS9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmb3JnZSIsCiAgIm5hbWUiOiAiRm9yZ2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZm9yZ2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ptbWFyYW5hbi9mb3JnZSIsCiAgInV1aWQiOiAiZm9yZ2VAam1tYXJhbmFuLmNvbSIsCiAgInZlcnNpb24iOiAzNwp9"}}}
 , {"uuid": "autonightlight@zefty.github.io", "name": "Auto Night Light", "pname": "auto-night-light", "description": "Automatically adjust night light", "link": "https://extensions.gnome.org/extension/4482/auto-night-light/", "shell_version_map": {"38": {"version": "4", "sha256": "1ha064bx8n8369swwh96yd257h2han94v5xpyfilxa756yihcf4w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgYWRqdXN0IG5pZ2h0IGxpZ2h0IiwKICAibmFtZSI6ICJBdXRvIE5pZ2h0IExpZ2h0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1plZnR5L0F1dG9OaWdodExpZ2h0IiwKICAidXVpZCI6ICJhdXRvbmlnaHRsaWdodEB6ZWZ0eS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNAp9"}, "40": {"version": "4", "sha256": "1ha064bx8n8369swwh96yd257h2han94v5xpyfilxa756yihcf4w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgYWRqdXN0IG5pZ2h0IGxpZ2h0IiwKICAibmFtZSI6ICJBdXRvIE5pZ2h0IExpZ2h0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1plZnR5L0F1dG9OaWdodExpZ2h0IiwKICAidXVpZCI6ICJhdXRvbmlnaHRsaWdodEB6ZWZ0eS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNAp9"}}}
 , {"uuid": "favourites-in-appgrid@harshadgavali.gitlab.org", "name": "Favourites in AppGrid", "pname": "favourites-in-appgrid", "description": "Keep favourite applications in AppGrid", "link": "https://extensions.gnome.org/extension/4485/favourites-in-appgrid/", "shell_version_map": {"40": {"version": "1", "sha256": "1zcbs36kcmw50wgxkqn22abh8g1nx17p48vbpzk5x2842mn8shaz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktlZXAgZmF2b3VyaXRlIGFwcGxpY2F0aW9ucyBpbiBBcHBHcmlkIiwKICAibmFtZSI6ICJGYXZvdXJpdGVzIGluIEFwcEdyaWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL2hhcnNoYWRnYXZhbGkvZmF2b3VyaXRlcy1pbi1hcHBncmlkLyIsCiAgInV1aWQiOiAiZmF2b3VyaXRlcy1pbi1hcHBncmlkQGhhcnNoYWRnYXZhbGkuZ2l0bGFiLm9yZyIsCiAgInZlcnNpb24iOiAxCn0="}, "41": {"version": "1", "sha256": "1zcbs36kcmw50wgxkqn22abh8g1nx17p48vbpzk5x2842mn8shaz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktlZXAgZmF2b3VyaXRlIGFwcGxpY2F0aW9ucyBpbiBBcHBHcmlkIiwKICAibmFtZSI6ICJGYXZvdXJpdGVzIGluIEFwcEdyaWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL2hhcnNoYWRnYXZhbGkvZmF2b3VyaXRlcy1pbi1hcHBncmlkLyIsCiAgInV1aWQiOiAiZmF2b3VyaXRlcy1pbi1hcHBncmlkQGhhcnNoYWRnYXZhbGkuZ2l0bGFiLm9yZyIsCiAgInZlcnNpb24iOiAxCn0="}}}
 , {"uuid": "dark-variant@hardpixel.eu", "name": "Dark Variant", "pname": "dark-variant", "description": "Enable dark window decorations on applications. This extension is not compatible with applications that use Client Side Decorations (CSD).\n\nThis extension depends on some Xorg utilities. To install them:\n- Debian/Ubuntu: apt install x11-utils\n- Fedora/RHEL: dnf install xorg-x11-utils\n- Arch: pacman -S xorg-xprop\n\n*Settings are provided to enable/disable applications.", "link": "https://extensions.gnome.org/extension/4488/dark-variant/", "shell_version_map": {"40": {"version": "3", "sha256": "08ywrbcqzijfw9hxlxn56j0dbavq413sbf2qlf6xpc9mi825jhin", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBkYXJrIHdpbmRvdyBkZWNvcmF0aW9ucyBvbiBhcHBsaWNhdGlvbnMuIFRoaXMgZXh0ZW5zaW9uIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggYXBwbGljYXRpb25zIHRoYXQgdXNlIENsaWVudCBTaWRlIERlY29yYXRpb25zIChDU0QpLlxuXG5UaGlzIGV4dGVuc2lvbiBkZXBlbmRzIG9uIHNvbWUgWG9yZyB1dGlsaXRpZXMuIFRvIGluc3RhbGwgdGhlbTpcbi0gRGViaWFuL1VidW50dTogYXB0IGluc3RhbGwgeDExLXV0aWxzXG4tIEZlZG9yYS9SSEVMOiBkbmYgaW5zdGFsbCB4b3JnLXgxMS11dGlsc1xuLSBBcmNoOiBwYWNtYW4gLVMgeG9yZy14cHJvcFxuXG4qU2V0dGluZ3MgYXJlIHByb3ZpZGVkIHRvIGVuYWJsZS9kaXNhYmxlIGFwcGxpY2F0aW9ucy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJkYXJrLXZhcmlhbnQiLAogICJuYW1lIjogIkRhcmsgVmFyaWFudCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXJrLXZhcmlhbnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hhcmRwaXhlbC9kYXJrLXZhcmlhbnQiLAogICJ1dWlkIjogImRhcmstdmFyaWFudEBoYXJkcGl4ZWwuZXUiLAogICJ2ZXJzaW9uIjogMwp9"}, "41": {"version": "3", "sha256": "08ywrbcqzijfw9hxlxn56j0dbavq413sbf2qlf6xpc9mi825jhin", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBkYXJrIHdpbmRvdyBkZWNvcmF0aW9ucyBvbiBhcHBsaWNhdGlvbnMuIFRoaXMgZXh0ZW5zaW9uIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggYXBwbGljYXRpb25zIHRoYXQgdXNlIENsaWVudCBTaWRlIERlY29yYXRpb25zIChDU0QpLlxuXG5UaGlzIGV4dGVuc2lvbiBkZXBlbmRzIG9uIHNvbWUgWG9yZyB1dGlsaXRpZXMuIFRvIGluc3RhbGwgdGhlbTpcbi0gRGViaWFuL1VidW50dTogYXB0IGluc3RhbGwgeDExLXV0aWxzXG4tIEZlZG9yYS9SSEVMOiBkbmYgaW5zdGFsbCB4b3JnLXgxMS11dGlsc1xuLSBBcmNoOiBwYWNtYW4gLVMgeG9yZy14cHJvcFxuXG4qU2V0dGluZ3MgYXJlIHByb3ZpZGVkIHRvIGVuYWJsZS9kaXNhYmxlIGFwcGxpY2F0aW9ucy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJkYXJrLXZhcmlhbnQiLAogICJuYW1lIjogIkRhcmsgVmFyaWFudCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXJrLXZhcmlhbnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hhcmRwaXhlbC9kYXJrLXZhcmlhbnQiLAogICJ1dWlkIjogImRhcmstdmFyaWFudEBoYXJkcGl4ZWwuZXUiLAogICJ2ZXJzaW9uIjogMwp9"}}}
 , {"uuid": "PrivacyMenu@stuarthayhurst", "name": "Privacy Settings Menu", "pname": "privacy-settings-menu", "description": "Add a privacy menu to the top bar for quick access to privacy settings", "link": "https://extensions.gnome.org/extension/4491/privacy-settings-menu/", "shell_version_map": {"38": {"version": "4", "sha256": "1kdkm032xz72cycaj85q1yjb7s6bv3srysp4sn69phclldyg6bhx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHByaXZhY3kgbWVudSB0byB0aGUgdG9wIGJhciBmb3IgcXVpY2sgYWNjZXNzIHRvIHByaXZhY3kgc2V0dGluZ3MiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJQcml2YWN5TWVudUBzdHVhcnRoYXlodXJzdCIsCiAgIm5hbWUiOiAiUHJpdmFjeSBTZXR0aW5ncyBNZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdHVhcnRoYXlodXJzdC9wcml2YWN5LW1lbnUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJQcml2YWN5TWVudUBzdHVhcnRoYXlodXJzdCIsCiAgInZlcnNpb24iOiA0Cn0="}, "40": {"version": "4", "sha256": "1kdkm032xz72cycaj85q1yjb7s6bv3srysp4sn69phclldyg6bhx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHByaXZhY3kgbWVudSB0byB0aGUgdG9wIGJhciBmb3IgcXVpY2sgYWNjZXNzIHRvIHByaXZhY3kgc2V0dGluZ3MiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJQcml2YWN5TWVudUBzdHVhcnRoYXlodXJzdCIsCiAgIm5hbWUiOiAiUHJpdmFjeSBTZXR0aW5ncyBNZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdHVhcnRoYXlodXJzdC9wcml2YWN5LW1lbnUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJQcml2YWN5TWVudUBzdHVhcnRoYXlodXJzdCIsCiAgInZlcnNpb24iOiA0Cn0="}, "41": {"version": "4", "sha256": "1kdkm032xz72cycaj85q1yjb7s6bv3srysp4sn69phclldyg6bhx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHByaXZhY3kgbWVudSB0byB0aGUgdG9wIGJhciBmb3IgcXVpY2sgYWNjZXNzIHRvIHByaXZhY3kgc2V0dGluZ3MiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJQcml2YWN5TWVudUBzdHVhcnRoYXlodXJzdCIsCiAgIm5hbWUiOiAiUHJpdmFjeSBTZXR0aW5ncyBNZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdHVhcnRoYXlodXJzdC9wcml2YWN5LW1lbnUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJQcml2YWN5TWVudUBzdHVhcnRoYXlodXJzdCIsCiAgInZlcnNpb24iOiA0Cn0="}}}
-, {"uuid": "hide-panel-lite@fthx", "name": "Hide Panel (light version & without hot corner)", "pname": "hide-panel-light-version-without-hot-corner", "description": "Hide top panel except in overview.\n\nFor those who don't need a hot corner (e.g. running GNOME 40+ with three fingers gestures). Very very light extension. No options, no bugs. ;-)", "link": "https://extensions.gnome.org/extension/4496/hide-panel-light-version-without-hot-corner/", "shell_version_map": {"38": {"version": "1", "sha256": "092fqwypkfnzfa584nzg90ml9q8cvnxgfvhl4gj049745szs2j06", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdG9wIHBhbmVsIGV4Y2VwdCBpbiBvdmVydmlldy5cblxuRm9yIHRob3NlIHdobyBkb24ndCBuZWVkIGEgaG90IGNvcm5lciAoZS5nLiBydW5uaW5nIEdOT01FIDQwKyB3aXRoIHRocmVlIGZpbmdlcnMgZ2VzdHVyZXMpLiBWZXJ5IHZlcnkgbGlnaHQgZXh0ZW5zaW9uLiBObyBvcHRpb25zLCBubyBidWdzLiA7LSkiLAogICJuYW1lIjogIkhpZGUgUGFuZWwgKGxpZ2h0IHZlcnNpb24gJiB3aXRob3V0IGhvdCBjb3JuZXIpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2hpZGUtcGFuZWwtbGl0ZSIsCiAgInV1aWQiOiAiaGlkZS1wYW5lbC1saXRlQGZ0aHgiLAogICJ2ZXJzaW9uIjogMQp9"}, "40": {"version": "1", "sha256": "092fqwypkfnzfa584nzg90ml9q8cvnxgfvhl4gj049745szs2j06", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdG9wIHBhbmVsIGV4Y2VwdCBpbiBvdmVydmlldy5cblxuRm9yIHRob3NlIHdobyBkb24ndCBuZWVkIGEgaG90IGNvcm5lciAoZS5nLiBydW5uaW5nIEdOT01FIDQwKyB3aXRoIHRocmVlIGZpbmdlcnMgZ2VzdHVyZXMpLiBWZXJ5IHZlcnkgbGlnaHQgZXh0ZW5zaW9uLiBObyBvcHRpb25zLCBubyBidWdzLiA7LSkiLAogICJuYW1lIjogIkhpZGUgUGFuZWwgKGxpZ2h0IHZlcnNpb24gJiB3aXRob3V0IGhvdCBjb3JuZXIpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2hpZGUtcGFuZWwtbGl0ZSIsCiAgInV1aWQiOiAiaGlkZS1wYW5lbC1saXRlQGZ0aHgiLAogICJ2ZXJzaW9uIjogMQp9"}, "41": {"version": "1", "sha256": "092fqwypkfnzfa584nzg90ml9q8cvnxgfvhl4gj049745szs2j06", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdG9wIHBhbmVsIGV4Y2VwdCBpbiBvdmVydmlldy5cblxuRm9yIHRob3NlIHdobyBkb24ndCBuZWVkIGEgaG90IGNvcm5lciAoZS5nLiBydW5uaW5nIEdOT01FIDQwKyB3aXRoIHRocmVlIGZpbmdlcnMgZ2VzdHVyZXMpLiBWZXJ5IHZlcnkgbGlnaHQgZXh0ZW5zaW9uLiBObyBvcHRpb25zLCBubyBidWdzLiA7LSkiLAogICJuYW1lIjogIkhpZGUgUGFuZWwgKGxpZ2h0IHZlcnNpb24gJiB3aXRob3V0IGhvdCBjb3JuZXIpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2hpZGUtcGFuZWwtbGl0ZSIsCiAgInV1aWQiOiAiaGlkZS1wYW5lbC1saXRlQGZ0aHgiLAogICJ2ZXJzaW9uIjogMQp9"}}}
+, {"uuid": "hide-panel-lite@fthx", "name": "Hide Panel Lite", "pname": "hide-panel-light-version-without-hot-corner", "description": "Hide top panel except in overview.\n\nFor those who don't need a hot corner (e.g. running GNOME 40+ with three fingers gestures). Very very light extension. No options, no bugs. ;-)", "link": "https://extensions.gnome.org/extension/4496/hide-panel-light-version-without-hot-corner/", "shell_version_map": {"38": {"version": "2", "sha256": "13kwd7sh0w34881wwaqvv0mchd7ym7av5s658jcrq2n8n2zma4xi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdG9wIHBhbmVsIGV4Y2VwdCBpbiBvdmVydmlldy5cblxuRm9yIHRob3NlIHdobyBkb24ndCBuZWVkIGEgaG90IGNvcm5lciAoZS5nLiBydW5uaW5nIEdOT01FIDQwKyB3aXRoIHRocmVlIGZpbmdlcnMgZ2VzdHVyZXMpLiBWZXJ5IHZlcnkgbGlnaHQgZXh0ZW5zaW9uLiBObyBvcHRpb25zLCBubyBidWdzLiA7LSkiLAogICJuYW1lIjogIkhpZGUgUGFuZWwgTGl0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvaGlkZS1wYW5lbC1saXRlIiwKICAidXVpZCI6ICJoaWRlLXBhbmVsLWxpdGVAZnRoeCIsCiAgInZlcnNpb24iOiAyCn0="}, "40": {"version": "2", "sha256": "13kwd7sh0w34881wwaqvv0mchd7ym7av5s658jcrq2n8n2zma4xi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdG9wIHBhbmVsIGV4Y2VwdCBpbiBvdmVydmlldy5cblxuRm9yIHRob3NlIHdobyBkb24ndCBuZWVkIGEgaG90IGNvcm5lciAoZS5nLiBydW5uaW5nIEdOT01FIDQwKyB3aXRoIHRocmVlIGZpbmdlcnMgZ2VzdHVyZXMpLiBWZXJ5IHZlcnkgbGlnaHQgZXh0ZW5zaW9uLiBObyBvcHRpb25zLCBubyBidWdzLiA7LSkiLAogICJuYW1lIjogIkhpZGUgUGFuZWwgTGl0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvaGlkZS1wYW5lbC1saXRlIiwKICAidXVpZCI6ICJoaWRlLXBhbmVsLWxpdGVAZnRoeCIsCiAgInZlcnNpb24iOiAyCn0="}, "41": {"version": "2", "sha256": "13kwd7sh0w34881wwaqvv0mchd7ym7av5s658jcrq2n8n2zma4xi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdG9wIHBhbmVsIGV4Y2VwdCBpbiBvdmVydmlldy5cblxuRm9yIHRob3NlIHdobyBkb24ndCBuZWVkIGEgaG90IGNvcm5lciAoZS5nLiBydW5uaW5nIEdOT01FIDQwKyB3aXRoIHRocmVlIGZpbmdlcnMgZ2VzdHVyZXMpLiBWZXJ5IHZlcnkgbGlnaHQgZXh0ZW5zaW9uLiBObyBvcHRpb25zLCBubyBidWdzLiA7LSkiLAogICJuYW1lIjogIkhpZGUgUGFuZWwgTGl0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvaGlkZS1wYW5lbC1saXRlIiwKICAidXVpZCI6ICJoaWRlLXBhbmVsLWxpdGVAZnRoeCIsCiAgInZlcnNpb24iOiAyCn0="}}}
 , {"uuid": "ssm-gnome@lgiki.net", "name": "Simple System Monitor", "pname": "simple-system-monitor", "description": "Show current CPU usage, memory usage and net speed on panel.\n\nThis is a fork of https://extensions.gnome.org/extension/4478/net-speed/.", "link": "https://extensions.gnome.org/extension/4506/simple-system-monitor/", "shell_version_map": {"40": {"version": "5", "sha256": "1gzj7zryq716nq15im9wfiaxji3b6gaq0yvbc6cqp2fawj7ajj13", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY3VycmVudCBDUFUgdXNhZ2UsIG1lbW9yeSB1c2FnZSBhbmQgbmV0IHNwZWVkIG9uIHBhbmVsLlxuXG5UaGlzIGlzIGEgZm9yayBvZiBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi80NDc4L25ldC1zcGVlZC8uIiwKICAibmFtZSI6ICJTaW1wbGUgU3lzdGVtIE1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0xHaWtpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zaW1wbGUtc3lzdGVtLW1vbml0b3IiLAogICJ1dWlkIjogInNzbS1nbm9tZUBsZ2lraS5uZXQiLAogICJ2ZXJzaW9uIjogNQp9"}, "41": {"version": "5", "sha256": "1gzj7zryq716nq15im9wfiaxji3b6gaq0yvbc6cqp2fawj7ajj13", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY3VycmVudCBDUFUgdXNhZ2UsIG1lbW9yeSB1c2FnZSBhbmQgbmV0IHNwZWVkIG9uIHBhbmVsLlxuXG5UaGlzIGlzIGEgZm9yayBvZiBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi80NDc4L25ldC1zcGVlZC8uIiwKICAibmFtZSI6ICJTaW1wbGUgU3lzdGVtIE1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0xHaWtpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zaW1wbGUtc3lzdGVtLW1vbml0b3IiLAogICJ1dWlkIjogInNzbS1nbm9tZUBsZ2lraS5uZXQiLAogICJ2ZXJzaW9uIjogNQp9"}}}
 , {"uuid": "unredirect@aunetx", "name": "Disable unredirect fullscreen windows", "pname": "disable-unredirect-fullscreen-windows", "description": "Disables unredirect fullscreen windows in gnome-shell to prevent artifacts when in fullscreen.\n\nThis version makes sure the unredirect option is not re-enabled automatically by the shell.", "link": "https://extensions.gnome.org/extension/4509/disable-unredirect-fullscreen-windows/", "shell_version_map": {"40": {"version": "3", "sha256": "1mgvpzzfdzn5qsxwz5911a8qgq0r34az6xpmqr72ksx6yf13l85z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIHVucmVkaXJlY3QgZnVsbHNjcmVlbiB3aW5kb3dzIGluIGdub21lLXNoZWxsIHRvIHByZXZlbnQgYXJ0aWZhY3RzIHdoZW4gaW4gZnVsbHNjcmVlbi5cblxuVGhpcyB2ZXJzaW9uIG1ha2VzIHN1cmUgdGhlIHVucmVkaXJlY3Qgb3B0aW9uIGlzIG5vdCByZS1lbmFibGVkIGF1dG9tYXRpY2FsbHkgYnkgdGhlIHNoZWxsLiIsCiAgIm5hbWUiOiAiRGlzYWJsZSB1bnJlZGlyZWN0IGZ1bGxzY3JlZW4gd2luZG93cyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiS2F6aW1pZXJhcyBWYWluYSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXVuZXR4L2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaXNhYmxlLXVucmVkaXJlY3QiLAogICJ1dWlkIjogInVucmVkaXJlY3RAYXVuZXR4IiwKICAidmVyc2lvbiI6IDMKfQ=="}, "41": {"version": "3", "sha256": "1mgvpzzfdzn5qsxwz5911a8qgq0r34az6xpmqr72ksx6yf13l85z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIHVucmVkaXJlY3QgZnVsbHNjcmVlbiB3aW5kb3dzIGluIGdub21lLXNoZWxsIHRvIHByZXZlbnQgYXJ0aWZhY3RzIHdoZW4gaW4gZnVsbHNjcmVlbi5cblxuVGhpcyB2ZXJzaW9uIG1ha2VzIHN1cmUgdGhlIHVucmVkaXJlY3Qgb3B0aW9uIGlzIG5vdCByZS1lbmFibGVkIGF1dG9tYXRpY2FsbHkgYnkgdGhlIHNoZWxsLiIsCiAgIm5hbWUiOiAiRGlzYWJsZSB1bnJlZGlyZWN0IGZ1bGxzY3JlZW4gd2luZG93cyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiS2F6aW1pZXJhcyBWYWluYSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXVuZXR4L2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaXNhYmxlLXVucmVkaXJlY3QiLAogICJ1dWlkIjogInVucmVkaXJlY3RAYXVuZXR4IiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
 , {"uuid": "nepali-date@biplab", "name": "Nepali Date", "pname": "nepali-calendar", "description": "Shows nepali date on the panel.", "link": "https://extensions.gnome.org/extension/4518/nepali-calendar/", "shell_version_map": {"40": {"version": "11", "sha256": "1g4zdhypy553wbdq0pnxva05ab6p3dv5dp4jcw8vrf8f0kblxxa5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG5lcGFsaSBkYXRlIG9uIHRoZSBwYW5lbC4iLAogICJuYW1lIjogIk5lcGFsaSBEYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9CaXBsYWItRHV0dGEvTmVwYWxpX0RhdGUiLAogICJ1dWlkIjogIm5lcGFsaS1kYXRlQGJpcGxhYiIsCiAgInZlcnNpb24iOiAxMQp9"}, "41": {"version": "11", "sha256": "1g4zdhypy553wbdq0pnxva05ab6p3dv5dp4jcw8vrf8f0kblxxa5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG5lcGFsaSBkYXRlIG9uIHRoZSBwYW5lbC4iLAogICJuYW1lIjogIk5lcGFsaSBEYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9CaXBsYWItRHV0dGEvTmVwYWxpX0RhdGUiLAogICJ1dWlkIjogIm5lcGFsaS1kYXRlQGJpcGxhYiIsCiAgInZlcnNpb24iOiAxMQp9"}}}
@@ -586,11 +589,11 @@
 , {"uuid": "zfs-status-monitor@chris.hubick.com", "name": "ZFS Status Monitor", "pname": "zfs-status-monitor", "description": "Display status of ZFS filesystem pools currently present on the system, updating every 60 seconds.", "link": "https://extensions.gnome.org/extension/4568/zfs-status-monitor/", "shell_version_map": {"40": {"version": "1", "sha256": "07g6b3y2dpvb41qd0j5rkakxpvyfgwnwcqzfr00h6zfvrx32nnp0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3RhdHVzIG9mIFpGUyBmaWxlc3lzdGVtIHBvb2xzIGN1cnJlbnRseSBwcmVzZW50IG9uIHRoZSBzeXN0ZW0sIHVwZGF0aW5nIGV2ZXJ5IDYwIHNlY29uZHMuIiwKICAibmFtZSI6ICJaRlMgU3RhdHVzIE1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2h1Ymljay9nbm9tZS1zaGVsbC1leHRlbnNpb24temZzLXN0YXR1cy1tb25pdG9yIiwKICAidXVpZCI6ICJ6ZnMtc3RhdHVzLW1vbml0b3JAY2hyaXMuaHViaWNrLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}, "41": {"version": "1", "sha256": "07g6b3y2dpvb41qd0j5rkakxpvyfgwnwcqzfr00h6zfvrx32nnp0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3RhdHVzIG9mIFpGUyBmaWxlc3lzdGVtIHBvb2xzIGN1cnJlbnRseSBwcmVzZW50IG9uIHRoZSBzeXN0ZW0sIHVwZGF0aW5nIGV2ZXJ5IDYwIHNlY29uZHMuIiwKICAibmFtZSI6ICJaRlMgU3RhdHVzIE1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2h1Ymljay9nbm9tZS1zaGVsbC1leHRlbnNpb24temZzLXN0YXR1cy1tb25pdG9yIiwKICAidXVpZCI6ICJ6ZnMtc3RhdHVzLW1vbml0b3JAY2hyaXMuaHViaWNrLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}}}
 , {"uuid": "dollar@dotpyc.com", "name": "Dollar", "pname": "dollar", "description": "Cotações do (USD Dólar Americano) convertido para (BRL Real Brasileiro).\n\nAs atualizações são recebidas a cada 30 segundos e utiliza como base informações disponiblizadas pela API AwesomeAPI, que pode ser consultada diretamente acessando o endereço eletronico https://docs.awesomeapi.com.br.", "link": "https://extensions.gnome.org/extension/4573/dollar/", "shell_version_map": {"38": {"version": "2", "sha256": "0100dspvm8ryqday9dqm76ykc9n9sikv3098yn6a92kpz9kgxacm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvdGFcdTAwZTdcdTAwZjVlcyBkbyAoVVNEIERcdTAwZjNsYXIgQW1lcmljYW5vKSBjb252ZXJ0aWRvIHBhcmEgKEJSTCBSZWFsIEJyYXNpbGVpcm8pLlxuXG5BcyBhdHVhbGl6YVx1MDBlN1x1MDBmNWVzIHNcdTAwZTNvIHJlY2ViaWRhcyBhIGNhZGEgMzAgc2VndW5kb3MgZSB1dGlsaXphIGNvbW8gYmFzZSBpbmZvcm1hXHUwMGU3XHUwMGY1ZXMgZGlzcG9uaWJsaXphZGFzIHBlbGEgQVBJIEF3ZXNvbWVBUEksIHF1ZSBwb2RlIHNlciBjb25zdWx0YWRhIGRpcmV0YW1lbnRlIGFjZXNzYW5kbyBvIGVuZGVyZVx1MDBlN28gZWxldHJvbmljbyBodHRwczovL2RvY3MuYXdlc29tZWFwaS5jb20uYnIuIiwKICAibmFtZSI6ICJEb2xsYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21pY2hhZWxkZW1hdHRvcy9kb2xsYXItZG90cHljLmNvbSIsCiAgInV1aWQiOiAiZG9sbGFyQGRvdHB5Yy5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}, "40": {"version": "2", "sha256": "0100dspvm8ryqday9dqm76ykc9n9sikv3098yn6a92kpz9kgxacm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvdGFcdTAwZTdcdTAwZjVlcyBkbyAoVVNEIERcdTAwZjNsYXIgQW1lcmljYW5vKSBjb252ZXJ0aWRvIHBhcmEgKEJSTCBSZWFsIEJyYXNpbGVpcm8pLlxuXG5BcyBhdHVhbGl6YVx1MDBlN1x1MDBmNWVzIHNcdTAwZTNvIHJlY2ViaWRhcyBhIGNhZGEgMzAgc2VndW5kb3MgZSB1dGlsaXphIGNvbW8gYmFzZSBpbmZvcm1hXHUwMGU3XHUwMGY1ZXMgZGlzcG9uaWJsaXphZGFzIHBlbGEgQVBJIEF3ZXNvbWVBUEksIHF1ZSBwb2RlIHNlciBjb25zdWx0YWRhIGRpcmV0YW1lbnRlIGFjZXNzYW5kbyBvIGVuZGVyZVx1MDBlN28gZWxldHJvbmljbyBodHRwczovL2RvY3MuYXdlc29tZWFwaS5jb20uYnIuIiwKICAibmFtZSI6ICJEb2xsYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21pY2hhZWxkZW1hdHRvcy9kb2xsYXItZG90cHljLmNvbSIsCiAgInV1aWQiOiAiZG9sbGFyQGRvdHB5Yy5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}, "41": {"version": "2", "sha256": "0100dspvm8ryqday9dqm76ykc9n9sikv3098yn6a92kpz9kgxacm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvdGFcdTAwZTdcdTAwZjVlcyBkbyAoVVNEIERcdTAwZjNsYXIgQW1lcmljYW5vKSBjb252ZXJ0aWRvIHBhcmEgKEJSTCBSZWFsIEJyYXNpbGVpcm8pLlxuXG5BcyBhdHVhbGl6YVx1MDBlN1x1MDBmNWVzIHNcdTAwZTNvIHJlY2ViaWRhcyBhIGNhZGEgMzAgc2VndW5kb3MgZSB1dGlsaXphIGNvbW8gYmFzZSBpbmZvcm1hXHUwMGU3XHUwMGY1ZXMgZGlzcG9uaWJsaXphZGFzIHBlbGEgQVBJIEF3ZXNvbWVBUEksIHF1ZSBwb2RlIHNlciBjb25zdWx0YWRhIGRpcmV0YW1lbnRlIGFjZXNzYW5kbyBvIGVuZGVyZVx1MDBlN28gZWxldHJvbmljbyBodHRwczovL2RvY3MuYXdlc29tZWFwaS5jb20uYnIuIiwKICAibmFtZSI6ICJEb2xsYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21pY2hhZWxkZW1hdHRvcy9kb2xsYXItZG90cHljLmNvbSIsCiAgInV1aWQiOiAiZG9sbGFyQGRvdHB5Yy5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}}}
 , {"uuid": "activate_gnome@isjerryxiao", "name": "Activate Gnome", "pname": "activate_gnome", "description": "Shows Activate Gnome watermark on your screen.", "link": "https://extensions.gnome.org/extension/4574/activate_gnome/", "shell_version_map": {"40": {"version": "3", "sha256": "1hmadwwzm6m9vg4wxz6lvalh9bvi2fnhzjyg9f4whzb5zp8klc4p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIEFjdGl2YXRlIEdub21lIHdhdGVybWFyayBvbiB5b3VyIHNjcmVlbi4iLAogICJuYW1lIjogIkFjdGl2YXRlIEdub21lIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFjdGl2YXRlX2dub21lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pc2plcnJ5eGlhby9nbm9tZS1zaGVsbC1leHRlbnNpb24tYWN0aXZhdGUtZ25vbWUiLAogICJ1dWlkIjogImFjdGl2YXRlX2dub21lQGlzamVycnl4aWFvIiwKICAidmVyc2lvbiI6IDMKfQ=="}, "41": {"version": "3", "sha256": "1hmadwwzm6m9vg4wxz6lvalh9bvi2fnhzjyg9f4whzb5zp8klc4p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIEFjdGl2YXRlIEdub21lIHdhdGVybWFyayBvbiB5b3VyIHNjcmVlbi4iLAogICJuYW1lIjogIkFjdGl2YXRlIEdub21lIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFjdGl2YXRlX2dub21lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pc2plcnJ5eGlhby9nbm9tZS1zaGVsbC1leHRlbnNpb24tYWN0aXZhdGUtZ25vbWUiLAogICJ1dWlkIjogImFjdGl2YXRlX2dub21lQGlzamVycnl4aWFvIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
-, {"uuid": "huawei-wmi@apps.sdore.me", "name": "Huawei WMI controls", "pname": "huawei-wmi-controls", "description": "Control various Huawei & Honor laptops WMI functions, such as battery protection, Fn-lock and keyboard backlight (just not yet).", "link": "https://extensions.gnome.org/extension/4580/huawei-wmi-controls/", "shell_version_map": {"40": {"version": "1", "sha256": "0m1dfw61svxkrbcn5jjnsx48a6b0wrn788n2zrjbjr6dd98zwbn6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdmFyaW91cyBIdWF3ZWkgJiBIb25vciBsYXB0b3BzIFdNSSBmdW5jdGlvbnMsIHN1Y2ggYXMgYmF0dGVyeSBwcm90ZWN0aW9uLCBGbi1sb2NrIGFuZCBrZXlib2FyZCBiYWNrbGlnaHQgKGp1c3Qgbm90IHlldCkuIiwKICAibmFtZSI6ICJIdWF3ZWkgV01JIGNvbnRyb2xzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9hcHBzLnNkb3JlLm1lL2dub21lLWV4dGVuc2lvbi1odWF3ZWktd21pIiwKICAidXVpZCI6ICJodWF3ZWktd21pQGFwcHMuc2RvcmUubWUiLAogICJ2ZXJzaW9uIjogMQp9"}}}
+, {"uuid": "huawei-wmi@apps.sdore.me", "name": "Huawei WMI controls", "pname": "huawei-wmi-controls", "description": "Control various Huawei &amp;amp;amp;amp;amp;amp; Honor laptops WMI functions, such as battery protection, Fn-lock and keyboard backlight (just not yet).\n\nRecommended to use with: https://github.com/qu1x/huawei-wmi.", "link": "https://extensions.gnome.org/extension/4580/huawei-wmi-controls/", "shell_version_map": {"40": {"version": "1", "sha256": "0yi513f5paf5xk4d8jx5q3gspj9m5dp7q1zwgx35z8wb3kqmfbb0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdmFyaW91cyBIdWF3ZWkgJmFtcDthbXA7YW1wO2FtcDthbXA7YW1wOyBIb25vciBsYXB0b3BzIFdNSSBmdW5jdGlvbnMsIHN1Y2ggYXMgYmF0dGVyeSBwcm90ZWN0aW9uLCBGbi1sb2NrIGFuZCBrZXlib2FyZCBiYWNrbGlnaHQgKGp1c3Qgbm90IHlldCkuXG5cblJlY29tbWVuZGVkIHRvIHVzZSB3aXRoOiBodHRwczovL2dpdGh1Yi5jb20vcXUxeC9odWF3ZWktd21pLiIsCiAgIm5hbWUiOiAiSHVhd2VpIFdNSSBjb250cm9scyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vYXBwcy5zZG9yZS5tZS9nbm9tZS1leHRlbnNpb24taHVhd2VpLXdtaSIsCiAgInV1aWQiOiAiaHVhd2VpLXdtaUBhcHBzLnNkb3JlLm1lIiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
 , {"uuid": "username-hotname@it-und-entwicklung-fg.de", "name": "Add Username and Hostname to panel", "pname": "username-and-hostname-to-panel", "description": "Adds your avatar icon, user displayname und username to the menu panel. Also it adds the hostname to the left of the panel.", "link": "https://extensions.gnome.org/extension/4583/username-and-hostname-to-panel/", "shell_version_map": {"38": {"version": "3", "sha256": "1vsm7r2i30pmkasb47ia29isrzn40hhhl52z7jq1wpwz0ip3k3g5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgeW91ciBhdmF0YXIgaWNvbiwgdXNlciBkaXNwbGF5bmFtZSB1bmQgdXNlcm5hbWUgdG8gdGhlIG1lbnUgcGFuZWwuIEFsc28gaXQgYWRkcyB0aGUgaG9zdG5hbWUgdG8gdGhlIGxlZnQgb2YgdGhlIHBhbmVsLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ1c2VybmFtZS1ob3RuYW1lIiwKICAibmFtZSI6ICJBZGQgVXNlcm5hbWUgYW5kIEhvc3RuYW1lIHRvIHBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaXQtZW50d2lja2x1bmctZmcvVXNlcm5hbWUtYW5kLUhvc3RuYW1lIiwKICAidXVpZCI6ICJ1c2VybmFtZS1ob3RuYW1lQGl0LXVuZC1lbnR3aWNrbHVuZy1mZy5kZSIsCiAgInZlcnNpb24iOiAzCn0="}}}
 , {"uuid": "InternetSpeedMonitor@Rishu", "name": "Internet Speed Monitor", "pname": "internet-speed-monitor", "description": "Extension to Monitor Internet Speed and Daily Data Usage minimally.\n\nNew update for shell version 3.34+ : Added option to choose what to display in settings menu", "link": "https://extensions.gnome.org/extension/4585/internet-speed-monitor/", "shell_version_map": {"38": {"version": "5", "sha256": "0v4za9lcc7p861vyrnwwza1sizgzj2nv3yz1aixlsbq22d7zf0ac", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4dGVuc2lvbiB0byBNb25pdG9yIEludGVybmV0IFNwZWVkIGFuZCBEYWlseSBEYXRhIFVzYWdlIG1pbmltYWxseS5cblxuTmV3IHVwZGF0ZSBmb3Igc2hlbGwgdmVyc2lvbiAzLjM0KyA6IEFkZGVkIG9wdGlvbiB0byBjaG9vc2Ugd2hhdCB0byBkaXNwbGF5IGluIHNldHRpbmdzIG1lbnUiLAogICJuYW1lIjogIkludGVybmV0IFNwZWVkIE1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Jpc2h1aW5maW5pdHkvSW50ZXJuZXRTcGVlZE1vbml0b3IiLAogICJ1dWlkIjogIkludGVybmV0U3BlZWRNb25pdG9yQFJpc2h1IiwKICAidmVyc2lvbiI6IDUKfQ=="}, "40": {"version": "5", "sha256": "0v4za9lcc7p861vyrnwwza1sizgzj2nv3yz1aixlsbq22d7zf0ac", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4dGVuc2lvbiB0byBNb25pdG9yIEludGVybmV0IFNwZWVkIGFuZCBEYWlseSBEYXRhIFVzYWdlIG1pbmltYWxseS5cblxuTmV3IHVwZGF0ZSBmb3Igc2hlbGwgdmVyc2lvbiAzLjM0KyA6IEFkZGVkIG9wdGlvbiB0byBjaG9vc2Ugd2hhdCB0byBkaXNwbGF5IGluIHNldHRpbmdzIG1lbnUiLAogICJuYW1lIjogIkludGVybmV0IFNwZWVkIE1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Jpc2h1aW5maW5pdHkvSW50ZXJuZXRTcGVlZE1vbml0b3IiLAogICJ1dWlkIjogIkludGVybmV0U3BlZWRNb25pdG9yQFJpc2h1IiwKICAidmVyc2lvbiI6IDUKfQ=="}, "41": {"version": "5", "sha256": "0v4za9lcc7p861vyrnwwza1sizgzj2nv3yz1aixlsbq22d7zf0ac", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4dGVuc2lvbiB0byBNb25pdG9yIEludGVybmV0IFNwZWVkIGFuZCBEYWlseSBEYXRhIFVzYWdlIG1pbmltYWxseS5cblxuTmV3IHVwZGF0ZSBmb3Igc2hlbGwgdmVyc2lvbiAzLjM0KyA6IEFkZGVkIG9wdGlvbiB0byBjaG9vc2Ugd2hhdCB0byBkaXNwbGF5IGluIHNldHRpbmdzIG1lbnUiLAogICJuYW1lIjogIkludGVybmV0IFNwZWVkIE1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Jpc2h1aW5maW5pdHkvSW50ZXJuZXRTcGVlZE1vbml0b3IiLAogICJ1dWlkIjogIkludGVybmV0U3BlZWRNb25pdG9yQFJpc2h1IiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
 , {"uuid": "simulate-switching-workspaces-on-active-monitor@micheledaros.com", "name": "Separate workspaces on multiple monitors", "pname": "switch-workspaces-on-active-monitor", "description": "To work properly, it require the options \"Static workspaces\" and \"Workspaces on primary display only\" of tweaks to be active  .\n\nAfter you switch to a different workspace(by using the preview, or by selecting an app on the dock),  the windows on the monitors that don't have the focus are moved to the visible workspace.  So it looks like you are switching workspaces only on the active monitor, leaving the others unchanged.\n\nAlternatively, you can switch workspace only on the active monitor by using Ctrl+Alt+q and Ctrl+Alt+a", "link": "https://extensions.gnome.org/extension/4586/switch-workspaces-on-active-monitor/", "shell_version_map": {"38": {"version": "6", "sha256": "1n63fs8apwfaivyb39v7bx29jswk53m1c761pg3shkpdz7mmasck", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvIHdvcmsgcHJvcGVybHksIGl0IHJlcXVpcmUgdGhlIG9wdGlvbnMgXCJTdGF0aWMgd29ya3NwYWNlc1wiIGFuZCBcIldvcmtzcGFjZXMgb24gcHJpbWFyeSBkaXNwbGF5IG9ubHlcIiBvZiB0d2Vha3MgdG8gYmUgYWN0aXZlICAuXG5cbkFmdGVyIHlvdSBzd2l0Y2ggdG8gYSBkaWZmZXJlbnQgd29ya3NwYWNlKGJ5IHVzaW5nIHRoZSBwcmV2aWV3LCBvciBieSBzZWxlY3RpbmcgYW4gYXBwIG9uIHRoZSBkb2NrKSwgIHRoZSB3aW5kb3dzIG9uIHRoZSBtb25pdG9ycyB0aGF0IGRvbid0IGhhdmUgdGhlIGZvY3VzIGFyZSBtb3ZlZCB0byB0aGUgdmlzaWJsZSB3b3Jrc3BhY2UuICBTbyBpdCBsb29rcyBsaWtlIHlvdSBhcmUgc3dpdGNoaW5nIHdvcmtzcGFjZXMgb25seSBvbiB0aGUgYWN0aXZlIG1vbml0b3IsIGxlYXZpbmcgdGhlIG90aGVycyB1bmNoYW5nZWQuXG5cbkFsdGVybmF0aXZlbHksIHlvdSBjYW4gc3dpdGNoIHdvcmtzcGFjZSBvbmx5IG9uIHRoZSBhY3RpdmUgbW9uaXRvciBieSB1c2luZyBDdHJsK0FsdCtxIGFuZCBDdHJsK0FsdCthIiwKICAibmFtZSI6ICJTZXBhcmF0ZSB3b3Jrc3BhY2VzIG9uIG11bHRpcGxlIG1vbml0b3JzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJkYXJvc21pY0BnbWFpbC5jb20iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2ltdWxhdGUtc3dpdGNoaW5nLXdvcmtzcGFjZXMtb24tYWN0aXZlLW1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21pY2hlbGVkYXJvcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tc2ltdWxhdGUtc3dpdGNoaW5nLXdvcmtzcGFjZXMtb24tYWN0aXZlLW1vbml0b3IiLAogICJ1dWlkIjogInNpbXVsYXRlLXN3aXRjaGluZy13b3Jrc3BhY2VzLW9uLWFjdGl2ZS1tb25pdG9yQG1pY2hlbGVkYXJvcy5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}, "40": {"version": "6", "sha256": "1n63fs8apwfaivyb39v7bx29jswk53m1c761pg3shkpdz7mmasck", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvIHdvcmsgcHJvcGVybHksIGl0IHJlcXVpcmUgdGhlIG9wdGlvbnMgXCJTdGF0aWMgd29ya3NwYWNlc1wiIGFuZCBcIldvcmtzcGFjZXMgb24gcHJpbWFyeSBkaXNwbGF5IG9ubHlcIiBvZiB0d2Vha3MgdG8gYmUgYWN0aXZlICAuXG5cbkFmdGVyIHlvdSBzd2l0Y2ggdG8gYSBkaWZmZXJlbnQgd29ya3NwYWNlKGJ5IHVzaW5nIHRoZSBwcmV2aWV3LCBvciBieSBzZWxlY3RpbmcgYW4gYXBwIG9uIHRoZSBkb2NrKSwgIHRoZSB3aW5kb3dzIG9uIHRoZSBtb25pdG9ycyB0aGF0IGRvbid0IGhhdmUgdGhlIGZvY3VzIGFyZSBtb3ZlZCB0byB0aGUgdmlzaWJsZSB3b3Jrc3BhY2UuICBTbyBpdCBsb29rcyBsaWtlIHlvdSBhcmUgc3dpdGNoaW5nIHdvcmtzcGFjZXMgb25seSBvbiB0aGUgYWN0aXZlIG1vbml0b3IsIGxlYXZpbmcgdGhlIG90aGVycyB1bmNoYW5nZWQuXG5cbkFsdGVybmF0aXZlbHksIHlvdSBjYW4gc3dpdGNoIHdvcmtzcGFjZSBvbmx5IG9uIHRoZSBhY3RpdmUgbW9uaXRvciBieSB1c2luZyBDdHJsK0FsdCtxIGFuZCBDdHJsK0FsdCthIiwKICAibmFtZSI6ICJTZXBhcmF0ZSB3b3Jrc3BhY2VzIG9uIG11bHRpcGxlIG1vbml0b3JzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJkYXJvc21pY0BnbWFpbC5jb20iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2ltdWxhdGUtc3dpdGNoaW5nLXdvcmtzcGFjZXMtb24tYWN0aXZlLW1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21pY2hlbGVkYXJvcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tc2ltdWxhdGUtc3dpdGNoaW5nLXdvcmtzcGFjZXMtb24tYWN0aXZlLW1vbml0b3IiLAogICJ1dWlkIjogInNpbXVsYXRlLXN3aXRjaGluZy13b3Jrc3BhY2VzLW9uLWFjdGl2ZS1tb25pdG9yQG1pY2hlbGVkYXJvcy5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}, "41": {"version": "6", "sha256": "1n63fs8apwfaivyb39v7bx29jswk53m1c761pg3shkpdz7mmasck", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvIHdvcmsgcHJvcGVybHksIGl0IHJlcXVpcmUgdGhlIG9wdGlvbnMgXCJTdGF0aWMgd29ya3NwYWNlc1wiIGFuZCBcIldvcmtzcGFjZXMgb24gcHJpbWFyeSBkaXNwbGF5IG9ubHlcIiBvZiB0d2Vha3MgdG8gYmUgYWN0aXZlICAuXG5cbkFmdGVyIHlvdSBzd2l0Y2ggdG8gYSBkaWZmZXJlbnQgd29ya3NwYWNlKGJ5IHVzaW5nIHRoZSBwcmV2aWV3LCBvciBieSBzZWxlY3RpbmcgYW4gYXBwIG9uIHRoZSBkb2NrKSwgIHRoZSB3aW5kb3dzIG9uIHRoZSBtb25pdG9ycyB0aGF0IGRvbid0IGhhdmUgdGhlIGZvY3VzIGFyZSBtb3ZlZCB0byB0aGUgdmlzaWJsZSB3b3Jrc3BhY2UuICBTbyBpdCBsb29rcyBsaWtlIHlvdSBhcmUgc3dpdGNoaW5nIHdvcmtzcGFjZXMgb25seSBvbiB0aGUgYWN0aXZlIG1vbml0b3IsIGxlYXZpbmcgdGhlIG90aGVycyB1bmNoYW5nZWQuXG5cbkFsdGVybmF0aXZlbHksIHlvdSBjYW4gc3dpdGNoIHdvcmtzcGFjZSBvbmx5IG9uIHRoZSBhY3RpdmUgbW9uaXRvciBieSB1c2luZyBDdHJsK0FsdCtxIGFuZCBDdHJsK0FsdCthIiwKICAibmFtZSI6ICJTZXBhcmF0ZSB3b3Jrc3BhY2VzIG9uIG11bHRpcGxlIG1vbml0b3JzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJkYXJvc21pY0BnbWFpbC5jb20iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2ltdWxhdGUtc3dpdGNoaW5nLXdvcmtzcGFjZXMtb24tYWN0aXZlLW1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21pY2hlbGVkYXJvcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tc2ltdWxhdGUtc3dpdGNoaW5nLXdvcmtzcGFjZXMtb24tYWN0aXZlLW1vbml0b3IiLAogICJ1dWlkIjogInNpbXVsYXRlLXN3aXRjaGluZy13b3Jrc3BhY2VzLW9uLWFjdGl2ZS1tb25pdG9yQG1pY2hlbGVkYXJvcy5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}}}
-, {"uuid": "newworkspaceshortcut@barnix.io", "name": "New Workspace Shortcut", "pname": "new-workspace-shortcut", "description": "Use a shortcut to move a window to a new and empty workspace on the right of your current workspace: \nSuper + Alt + Shift + n\n\nUse a shortcut to move an entire workspace left or right of the current workspace: ALT+Left ALT+Right. As there is not any UI feedback for this event, you will want to be in the Overview so you can see your Workspace-Thumbnail moving left and right.\n\nFind more  info by following the github repository link.", "link": "https://extensions.gnome.org/extension/4597/new-workspace-shortcut/", "shell_version_map": {"41": {"version": "2", "sha256": "04fkngb1vqgbvixc3ahsp4l5hz9cwh733qbd4f9f7dq4xsd393yc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVzZSBhIHNob3J0Y3V0IHRvIG1vdmUgYSB3aW5kb3cgdG8gYSBuZXcgYW5kIGVtcHR5IHdvcmtzcGFjZSBvbiB0aGUgcmlnaHQgb2YgeW91ciBjdXJyZW50IHdvcmtzcGFjZTogXG5TdXBlciArIEFsdCArIFNoaWZ0ICsgblxuXG5Vc2UgYSBzaG9ydGN1dCB0byBtb3ZlIGFuIGVudGlyZSB3b3Jrc3BhY2UgbGVmdCBvciByaWdodCBvZiB0aGUgY3VycmVudCB3b3Jrc3BhY2U6IEFMVCtMZWZ0IEFMVCtSaWdodC4gQXMgdGhlcmUgaXMgbm90IGFueSBVSSBmZWVkYmFjayBmb3IgdGhpcyBldmVudCwgeW91IHdpbGwgd2FudCB0byBiZSBpbiB0aGUgT3ZlcnZpZXcgc28geW91IGNhbiBzZWUgeW91ciBXb3Jrc3BhY2UtVGh1bWJuYWlsIG1vdmluZyBsZWZ0IGFuZCByaWdodC5cblxuRmluZCBtb3JlICBpbmZvIGJ5IGZvbGxvd2luZyB0aGUgZ2l0aHViIHJlcG9zaXRvcnkgbGluay4iLAogICJuYW1lIjogIk5ldyBXb3Jrc3BhY2UgU2hvcnRjdXQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubmV3d29ya3NwYWNlc2hvcnRjdXQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmFybnNjb3R0L25ld3dvcmtzcGFjZXNob3J0Y3V0LWJhcm5peC5pbyIsCiAgInV1aWQiOiAibmV3d29ya3NwYWNlc2hvcnRjdXRAYmFybml4LmlvIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
+, {"uuid": "newworkspaceshortcut@barnix.io", "name": "New Workspace Shortcut", "pname": "new-workspace-shortcut", "description": "This extension will enable the following:\n\nMove-window-to-new-workspace Shortcut:\nUse a shortcut to move the in-focus window to a new workspace on the right of your current workspace: Super + Alt + Shift + n\nOr to the left / backward: Super + Alt + Shift + b\n\nNew-empty-workspace Shortcut:\nUse a shortcut to create an empty workspace on the right: Super + Alt + n\nOr to the left / backward: Super + Alt + b\n\nReorder-workspace Shortcut:\nUse a shortcut to move an entire workspace left or right of the current workspace: Ctl + Super + Left or Ctl + Super + Right\nBy default, this shorcut with automatically trigger the Overview to provide a limited form of visual feedback. However, this preference can be changed via the extension's Settings panel.\n\nThese shortcuts are created to work logically with the vanilla gnome shortcuts including change-workspace (Super + ALT + Left/Right) and move-window-to-next-workspace (Shift + Super + ALT + Left/Right).", "link": "https://extensions.gnome.org/extension/4597/new-workspace-shortcut/", "shell_version_map": {"41": {"version": "5", "sha256": "0anj72nb9wf80xyhymzr0v97v6hkpi95nmpmpajg5a3w05dz8y7n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHdpbGwgZW5hYmxlIHRoZSBmb2xsb3dpbmc6XG5cbk1vdmUtd2luZG93LXRvLW5ldy13b3Jrc3BhY2UgU2hvcnRjdXQ6XG5Vc2UgYSBzaG9ydGN1dCB0byBtb3ZlIHRoZSBpbi1mb2N1cyB3aW5kb3cgdG8gYSBuZXcgd29ya3NwYWNlIG9uIHRoZSByaWdodCBvZiB5b3VyIGN1cnJlbnQgd29ya3NwYWNlOiBTdXBlciArIEFsdCArIFNoaWZ0ICsgblxuT3IgdG8gdGhlIGxlZnQgLyBiYWNrd2FyZDogU3VwZXIgKyBBbHQgKyBTaGlmdCArIGJcblxuTmV3LWVtcHR5LXdvcmtzcGFjZSBTaG9ydGN1dDpcblVzZSBhIHNob3J0Y3V0IHRvIGNyZWF0ZSBhbiBlbXB0eSB3b3Jrc3BhY2Ugb24gdGhlIHJpZ2h0OiBTdXBlciArIEFsdCArIG5cbk9yIHRvIHRoZSBsZWZ0IC8gYmFja3dhcmQ6IFN1cGVyICsgQWx0ICsgYlxuXG5SZW9yZGVyLXdvcmtzcGFjZSBTaG9ydGN1dDpcblVzZSBhIHNob3J0Y3V0IHRvIG1vdmUgYW4gZW50aXJlIHdvcmtzcGFjZSBsZWZ0IG9yIHJpZ2h0IG9mIHRoZSBjdXJyZW50IHdvcmtzcGFjZTogQ3RsICsgU3VwZXIgKyBMZWZ0IG9yIEN0bCArIFN1cGVyICsgUmlnaHRcbkJ5IGRlZmF1bHQsIHRoaXMgc2hvcmN1dCB3aXRoIGF1dG9tYXRpY2FsbHkgdHJpZ2dlciB0aGUgT3ZlcnZpZXcgdG8gcHJvdmlkZSBhIGxpbWl0ZWQgZm9ybSBvZiB2aXN1YWwgZmVlZGJhY2suIEhvd2V2ZXIsIHRoaXMgcHJlZmVyZW5jZSBjYW4gYmUgY2hhbmdlZCB2aWEgdGhlIGV4dGVuc2lvbidzIFNldHRpbmdzIHBhbmVsLlxuXG5UaGVzZSBzaG9ydGN1dHMgYXJlIGNyZWF0ZWQgdG8gd29yayBsb2dpY2FsbHkgd2l0aCB0aGUgdmFuaWxsYSBnbm9tZSBzaG9ydGN1dHMgaW5jbHVkaW5nIGNoYW5nZS13b3Jrc3BhY2UgKFN1cGVyICsgQUxUICsgTGVmdC9SaWdodCkgYW5kIG1vdmUtd2luZG93LXRvLW5leHQtd29ya3NwYWNlIChTaGlmdCArIFN1cGVyICsgQUxUICsgTGVmdC9SaWdodCkuIiwKICAibmFtZSI6ICJOZXcgV29ya3NwYWNlIFNob3J0Y3V0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5ld3dvcmtzcGFjZXNob3J0Y3V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Jhcm5zY290dC9uZXd3b3Jrc3BhY2VzaG9ydGN1dC1iYXJuaXguaW8iLAogICJ1dWlkIjogIm5ld3dvcmtzcGFjZXNob3J0Y3V0QGJhcm5peC5pbyIsCiAgInZlcnNpb24iOiA1Cn0="}}}
 , {"uuid": "p.stonham@switcheroo.org", "name": "Switcheroo", "pname": "switcheroo", "description": "Switch to the first window with the title x\n\nA very small extension to allow you to switch windows via gdbus. This is particularly useful if you are using wayland as utilities such as wmctrl won't work.\n\nSince Gnome 41 removed org.gnome.Shell.Eval for security reasons, if you ever used a command such as:\n\ngdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval\"var mw = global.get_window_actors().map(w=&gt;w.meta_window).find(mw=&gt;mw.get_title().includes('Firefox'));mw &amp;&amp; mw.activate(0)\"\n\nthis can now be replaced with:\n\ngdbus call --session --dest org.gnome.Shell --object-path /org/switcheroo/Switcheroo --method org.switcheroo.Switcheroo.Set Firefox\n\nThis can then be assigned to a shortcut key in Gnome settings or called programmatically.", "link": "https://extensions.gnome.org/extension/4600/switcheroo/", "shell_version_map": {"41": {"version": "3", "sha256": "0pfjhx8pm26zpizazd2pbpfqsr8vwc6znrm1cbf4ydcyvfxsnwwh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB0byB0aGUgZmlyc3Qgd2luZG93IHdpdGggdGhlIHRpdGxlIHhcblxuQSB2ZXJ5IHNtYWxsIGV4dGVuc2lvbiB0byBhbGxvdyB5b3UgdG8gc3dpdGNoIHdpbmRvd3MgdmlhIGdkYnVzLiBUaGlzIGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgaWYgeW91IGFyZSB1c2luZyB3YXlsYW5kIGFzIHV0aWxpdGllcyBzdWNoIGFzIHdtY3RybCB3b24ndCB3b3JrLlxuXG5TaW5jZSBHbm9tZSA0MSByZW1vdmVkIG9yZy5nbm9tZS5TaGVsbC5FdmFsIGZvciBzZWN1cml0eSByZWFzb25zLCBpZiB5b3UgZXZlciB1c2VkIGEgY29tbWFuZCBzdWNoIGFzOlxuXG5nZGJ1cyBjYWxsIC0tc2Vzc2lvbiAtLWRlc3Qgb3JnLmdub21lLlNoZWxsIC0tb2JqZWN0LXBhdGggL29yZy9nbm9tZS9TaGVsbCAtLW1ldGhvZCBvcmcuZ25vbWUuU2hlbGwuRXZhbFwidmFyIG13ID0gZ2xvYmFsLmdldF93aW5kb3dfYWN0b3JzKCkubWFwKHc9Jmd0O3cubWV0YV93aW5kb3cpLmZpbmQobXc9Jmd0O213LmdldF90aXRsZSgpLmluY2x1ZGVzKCdGaXJlZm94JykpO213ICZhbXA7JmFtcDsgbXcuYWN0aXZhdGUoMClcIlxuXG50aGlzIGNhbiBub3cgYmUgcmVwbGFjZWQgd2l0aDpcblxuZ2RidXMgY2FsbCAtLXNlc3Npb24gLS1kZXN0IG9yZy5nbm9tZS5TaGVsbCAtLW9iamVjdC1wYXRoIC9vcmcvc3dpdGNoZXJvby9Td2l0Y2hlcm9vIC0tbWV0aG9kIG9yZy5zd2l0Y2hlcm9vLlN3aXRjaGVyb28uU2V0IEZpcmVmb3hcblxuVGhpcyBjYW4gdGhlbiBiZSBhc3NpZ25lZCB0byBhIHNob3J0Y3V0IGtleSBpbiBHbm9tZSBzZXR0aW5ncyBvciBjYWxsZWQgcHJvZ3JhbW1hdGljYWxseS4iLAogICJuYW1lIjogIlN3aXRjaGVyb28iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogInAuc3RvbmhhbUBzd2l0Y2hlcm9vLm9yZyIsCiAgInZlcnNpb24iOiAzCn0="}}}
 , {"uuid": "sane-airplane-mode@kippi", "name": "Sane Airplane Mode", "pname": "sane-airplane-mode", "description": "Make airplane mode sane again! This extension gives you better control over the airplane mode. \nHint: With this extension you can also turn off the annoying \"Bluetooth gets turned on when I disable airplane mode\" behaviour.", "link": "https://extensions.gnome.org/extension/4604/sane-airplane-mode/", "shell_version_map": {"40": {"version": "6", "sha256": "0jpis6rncjxjs90dlnl1677bxzk92x2zxzmnz2fmm0myl01pwnpa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgYWlycGxhbmUgbW9kZSBzYW5lIGFnYWluISBUaGlzIGV4dGVuc2lvbiBnaXZlcyB5b3UgYmV0dGVyIGNvbnRyb2wgb3ZlciB0aGUgYWlycGxhbmUgbW9kZS4gXG5IaW50OiBXaXRoIHRoaXMgZXh0ZW5zaW9uIHlvdSBjYW4gYWxzbyB0dXJuIG9mZiB0aGUgYW5ub3lpbmcgXCJCbHVldG9vdGggZ2V0cyB0dXJuZWQgb24gd2hlbiBJIGRpc2FibGUgYWlycGxhbmUgbW9kZVwiIGJlaGF2aW91ci4iLAogICJuYW1lIjogIlNhbmUgQWlycGxhbmUgTW9kZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veEtpcHBpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zYW5lLWFpcnBsYW5lLW1vZGUiLAogICJ1dWlkIjogInNhbmUtYWlycGxhbmUtbW9kZUBraXBwaSIsCiAgInZlcnNpb24iOiA2Cn0="}, "41": {"version": "6", "sha256": "0jpis6rncjxjs90dlnl1677bxzk92x2zxzmnz2fmm0myl01pwnpa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgYWlycGxhbmUgbW9kZSBzYW5lIGFnYWluISBUaGlzIGV4dGVuc2lvbiBnaXZlcyB5b3UgYmV0dGVyIGNvbnRyb2wgb3ZlciB0aGUgYWlycGxhbmUgbW9kZS4gXG5IaW50OiBXaXRoIHRoaXMgZXh0ZW5zaW9uIHlvdSBjYW4gYWxzbyB0dXJuIG9mZiB0aGUgYW5ub3lpbmcgXCJCbHVldG9vdGggZ2V0cyB0dXJuZWQgb24gd2hlbiBJIGRpc2FibGUgYWlycGxhbmUgbW9kZVwiIGJlaGF2aW91ci4iLAogICJuYW1lIjogIlNhbmUgQWlycGxhbmUgTW9kZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veEtpcHBpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zYW5lLWFpcnBsYW5lLW1vZGUiLAogICJ1dWlkIjogInNhbmUtYWlycGxhbmUtbW9kZUBraXBwaSIsCiAgInZlcnNpb24iOiA2Cn0="}}}
 , {"uuid": "undecorate@tabdeveloper.com", "name": "Undecorate Window (Fork)", "pname": "undecorate-window-for-wayland", "description": "Adds undecorate option to window menu to toggle window decoration.", "link": "https://extensions.gnome.org/extension/4606/undecorate-window-for-wayland/", "shell_version_map": {"40": {"version": "1", "sha256": "0l7knd7xam0fh9c30wbrzm0yzwnjin97r1rjdpcw9vvh80yh3hsv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdW5kZWNvcmF0ZSBvcHRpb24gdG8gd2luZG93IG1lbnUgdG8gdG9nZ2xlIHdpbmRvdyBkZWNvcmF0aW9uLiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi11bmRlY29yYXRlIiwKICAibmFtZSI6ICJVbmRlY29yYXRlIFdpbmRvdyAoRm9yaykiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgInN1bi53eGdAZ21haWwuY29tIiwKICAgICJ0aW1AdGFiZGV2ZWxvcGVyLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudW5kZWNvcmF0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdGJyYW55ZW4vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXVuZGVjb3JhdGUiLAogICJ1dWlkIjogInVuZGVjb3JhdGVAdGFiZGV2ZWxvcGVyLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}, "41": {"version": "1", "sha256": "0l7knd7xam0fh9c30wbrzm0yzwnjin97r1rjdpcw9vvh80yh3hsv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdW5kZWNvcmF0ZSBvcHRpb24gdG8gd2luZG93IG1lbnUgdG8gdG9nZ2xlIHdpbmRvdyBkZWNvcmF0aW9uLiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi11bmRlY29yYXRlIiwKICAibmFtZSI6ICJVbmRlY29yYXRlIFdpbmRvdyAoRm9yaykiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgInN1bi53eGdAZ21haWwuY29tIiwKICAgICJ0aW1AdGFiZGV2ZWxvcGVyLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudW5kZWNvcmF0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdGJyYW55ZW4vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXVuZGVjb3JhdGUiLAogICJ1dWlkIjogInVuZGVjb3JhdGVAdGFiZGV2ZWxvcGVyLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}}}
@@ -599,8 +602,20 @@
 , {"uuid": "one-third-window@chmouel.com", "name": "Center or rotate windows by one third of the screen", "pname": "one-third-window", "description": "Center or rotate  the current window by one third of the screen.\n\nPosition and resize your windows in three with key shortcuts, center it to one third of the screen or rotate it around.", "link": "https://extensions.gnome.org/extension/4615/one-third-window/", "shell_version_map": {"38": {"version": "3", "sha256": "07wgkcars3f9ngi435684fp1832zhnda8jljcqlknaxxnigsdd2n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNlbnRlciBvciByb3RhdGUgIHRoZSBjdXJyZW50IHdpbmRvdyBieSBvbmUgdGhpcmQgb2YgdGhlIHNjcmVlbi5cblxuUG9zaXRpb24gYW5kIHJlc2l6ZSB5b3VyIHdpbmRvd3MgaW4gdGhyZWUgd2l0aCBrZXkgc2hvcnRjdXRzLCBjZW50ZXIgaXQgdG8gb25lIHRoaXJkIG9mIHRoZSBzY3JlZW4gb3Igcm90YXRlIGl0IGFyb3VuZC4iLAogICJuYW1lIjogIkNlbnRlciBvciByb3RhdGUgd2luZG93cyBieSBvbmUgdGhpcmQgb2YgdGhlIHNjcmVlbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5vbmV0aGlyZHdpbmRvdyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2htb3VlbC9vbmUtdGhpcmQtd2luZG93LWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAib25lLXRoaXJkLXdpbmRvd0BjaG1vdWVsLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "3", "sha256": "07wgkcars3f9ngi435684fp1832zhnda8jljcqlknaxxnigsdd2n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNlbnRlciBvciByb3RhdGUgIHRoZSBjdXJyZW50IHdpbmRvdyBieSBvbmUgdGhpcmQgb2YgdGhlIHNjcmVlbi5cblxuUG9zaXRpb24gYW5kIHJlc2l6ZSB5b3VyIHdpbmRvd3MgaW4gdGhyZWUgd2l0aCBrZXkgc2hvcnRjdXRzLCBjZW50ZXIgaXQgdG8gb25lIHRoaXJkIG9mIHRoZSBzY3JlZW4gb3Igcm90YXRlIGl0IGFyb3VuZC4iLAogICJuYW1lIjogIkNlbnRlciBvciByb3RhdGUgd2luZG93cyBieSBvbmUgdGhpcmQgb2YgdGhlIHNjcmVlbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5vbmV0aGlyZHdpbmRvdyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2htb3VlbC9vbmUtdGhpcmQtd2luZG93LWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAib25lLXRoaXJkLXdpbmRvd0BjaG1vdWVsLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}, "41": {"version": "3", "sha256": "07wgkcars3f9ngi435684fp1832zhnda8jljcqlknaxxnigsdd2n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNlbnRlciBvciByb3RhdGUgIHRoZSBjdXJyZW50IHdpbmRvdyBieSBvbmUgdGhpcmQgb2YgdGhlIHNjcmVlbi5cblxuUG9zaXRpb24gYW5kIHJlc2l6ZSB5b3VyIHdpbmRvd3MgaW4gdGhyZWUgd2l0aCBrZXkgc2hvcnRjdXRzLCBjZW50ZXIgaXQgdG8gb25lIHRoaXJkIG9mIHRoZSBzY3JlZW4gb3Igcm90YXRlIGl0IGFyb3VuZC4iLAogICJuYW1lIjogIkNlbnRlciBvciByb3RhdGUgd2luZG93cyBieSBvbmUgdGhpcmQgb2YgdGhlIHNjcmVlbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5vbmV0aGlyZHdpbmRvdyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2htb3VlbC9vbmUtdGhpcmQtd2luZG93LWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAib25lLXRoaXJkLXdpbmRvd0BjaG1vdWVsLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}}}
 , {"uuid": "hideTopBarWindow@kinzoku.one", "name": "Hide Top Bar Window", "pname": "hide-top-bar-window", "description": "Hides the selected window entry in the top bar.", "link": "https://extensions.gnome.org/extension/4621/hide-top-bar-window/", "shell_version_map": {"41": {"version": "1", "sha256": "0r7f8qb23ilz42pbbcd4rh22nnczqa9bags6msri1hl68lbv1qwj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSBzZWxlY3RlZCB3aW5kb3cgZW50cnkgaW4gdGhlIHRvcCBiYXIuIiwKICAibmFtZSI6ICJIaWRlIFRvcCBCYXIgV2luZG93IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIsCiAgICAiNDEuMSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9raW56b2t1Lm9uZSIsCiAgInV1aWQiOiAiaGlkZVRvcEJhcldpbmRvd0BraW56b2t1Lm9uZSIsCiAgInZlcnNpb24iOiAxCn0="}}}
 , {"uuid": "alphatint@saifulbkhan.github.com", "name": "AlphaTint", "pname": "alphatint", "description": "Artificially reduce brightness of your displays (including external monitors).\n\nIt is a fork of ColorTint modified to reduce brightness without an alpha channel.", "link": "https://extensions.gnome.org/extension/4624/alphatint/", "shell_version_map": {"40": {"version": "4", "sha256": "0yzip19k148y7yjkgxirhmi5sqj8brgnxij310ka5sl3big95rqb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFydGlmaWNpYWxseSByZWR1Y2UgYnJpZ2h0bmVzcyBvZiB5b3VyIGRpc3BsYXlzIChpbmNsdWRpbmcgZXh0ZXJuYWwgbW9uaXRvcnMpLlxuXG5JdCBpcyBhIGZvcmsgb2YgQ29sb3JUaW50IG1vZGlmaWVkIHRvIHJlZHVjZSBicmlnaHRuZXNzIHdpdGhvdXQgYW4gYWxwaGEgY2hhbm5lbC4iLAogICJuYW1lIjogIkFscGhhVGludCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2FpZnVsYmtoYW4vYWxwaGEtdGludCIsCiAgInV1aWQiOiAiYWxwaGF0aW50QHNhaWZ1bGJraGFuLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "0yzip19k148y7yjkgxirhmi5sqj8brgnxij310ka5sl3big95rqb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFydGlmaWNpYWxseSByZWR1Y2UgYnJpZ2h0bmVzcyBvZiB5b3VyIGRpc3BsYXlzIChpbmNsdWRpbmcgZXh0ZXJuYWwgbW9uaXRvcnMpLlxuXG5JdCBpcyBhIGZvcmsgb2YgQ29sb3JUaW50IG1vZGlmaWVkIHRvIHJlZHVjZSBicmlnaHRuZXNzIHdpdGhvdXQgYW4gYWxwaGEgY2hhbm5lbC4iLAogICJuYW1lIjogIkFscGhhVGludCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2FpZnVsYmtoYW4vYWxwaGEtdGludCIsCiAgInV1aWQiOiAiYWxwaGF0aW50QHNhaWZ1bGJraGFuLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}}}
-, {"uuid": "focus-changer@heartmire", "name": "Focus changer", "pname": "focus-changer", "description": "Change focus between windows in all directions.\n\nThe extension will first try to find a suitable window within the same monitor. If there is none, it will try to find one on the next monitor in that direction (in a multi-monitor setup).\n\nDefault shortcuts (can be changed in preferences):\n<Super>+h = Focus left\n<Super>+j = Focus down\n<Super>+k = Focus up\n<Super>+l = Focus right", "link": "https://extensions.gnome.org/extension/4627/focus-changer/", "shell_version_map": {"38": {"version": "5", "sha256": "1hlkj30ai0l3fgmzpnp0403hqgkrhpxhbcwn7i1vr6fvj5c9hgjl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBmb2N1cyBiZXR3ZWVuIHdpbmRvd3MgaW4gYWxsIGRpcmVjdGlvbnMuXG5cblRoZSBleHRlbnNpb24gd2lsbCBmaXJzdCB0cnkgdG8gZmluZCBhIHN1aXRhYmxlIHdpbmRvdyB3aXRoaW4gdGhlIHNhbWUgbW9uaXRvci4gSWYgdGhlcmUgaXMgbm9uZSwgaXQgd2lsbCB0cnkgdG8gZmluZCBvbmUgb24gdGhlIG5leHQgbW9uaXRvciBpbiB0aGF0IGRpcmVjdGlvbiAoaW4gYSBtdWx0aS1tb25pdG9yIHNldHVwKS5cblxuRGVmYXVsdCBzaG9ydGN1dHMgKGNhbiBiZSBjaGFuZ2VkIGluIHByZWZlcmVuY2VzKTpcbjxTdXBlcj4raCA9IEZvY3VzIGxlZnRcbjxTdXBlcj4raiA9IEZvY3VzIGRvd25cbjxTdXBlcj4rayA9IEZvY3VzIHVwXG48U3VwZXI+K2wgPSBGb2N1cyByaWdodCIsCiAgIm5hbWUiOiAiRm9jdXMgY2hhbmdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hcnRpbmhqYXJ0bXlyL2dub21lLXNoZWxsLWV4dGVuc2lvbi1mb2N1cy1jaGFuZ2VyIiwKICAidXVpZCI6ICJmb2N1cy1jaGFuZ2VyQGhlYXJ0bWlyZSIsCiAgInZlcnNpb24iOiA1Cn0="}, "40": {"version": "4", "sha256": "1h46aq3qilrzv2z5x8sw0d8hn42rj1dj8xgdz3mmg2aj3gyahlbm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBmb2N1cyBiZXR3ZWVuIHdpbmRvd3MgaW4gYWxsIGRpcmVjdGlvbnMuXG5cblRoZSBleHRlbnNpb24gd2lsbCBmaXJzdCB0cnkgdG8gZmluZCBhIHN1aXRhYmxlIHdpbmRvdyB3aXRoaW4gdGhlIHNhbWUgbW9uaXRvci4gSWYgdGhlcmUgaXMgbm9uZSwgaXQgd2lsbCB0cnkgdG8gZmluZCBvbmUgb24gdGhlIG5leHQgbW9uaXRvciBpbiB0aGF0IGRpcmVjdGlvbiAoaW4gYSBtdWx0aS1tb25pdG9yIHNldHVwKS5cblxuRGVmYXVsdCBzaG9ydGN1dHMgKGNhbiBiZSBjaGFuZ2VkIGluIHByZWZlcmVuY2VzKTpcbjxTdXBlcj4raCA9IEZvY3VzIGxlZnRcbjxTdXBlcj4raiA9IEZvY3VzIGRvd25cbjxTdXBlcj4rayA9IEZvY3VzIHVwXG48U3VwZXI+K2wgPSBGb2N1cyByaWdodCIsCiAgIm5hbWUiOiAiRm9jdXMgY2hhbmdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFydGluaGphcnRteXIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZvY3VzLWNoYW5nZXIiLAogICJ1dWlkIjogImZvY3VzLWNoYW5nZXJAaGVhcnRtaXJlIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "1h46aq3qilrzv2z5x8sw0d8hn42rj1dj8xgdz3mmg2aj3gyahlbm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBmb2N1cyBiZXR3ZWVuIHdpbmRvd3MgaW4gYWxsIGRpcmVjdGlvbnMuXG5cblRoZSBleHRlbnNpb24gd2lsbCBmaXJzdCB0cnkgdG8gZmluZCBhIHN1aXRhYmxlIHdpbmRvdyB3aXRoaW4gdGhlIHNhbWUgbW9uaXRvci4gSWYgdGhlcmUgaXMgbm9uZSwgaXQgd2lsbCB0cnkgdG8gZmluZCBvbmUgb24gdGhlIG5leHQgbW9uaXRvciBpbiB0aGF0IGRpcmVjdGlvbiAoaW4gYSBtdWx0aS1tb25pdG9yIHNldHVwKS5cblxuRGVmYXVsdCBzaG9ydGN1dHMgKGNhbiBiZSBjaGFuZ2VkIGluIHByZWZlcmVuY2VzKTpcbjxTdXBlcj4raCA9IEZvY3VzIGxlZnRcbjxTdXBlcj4raiA9IEZvY3VzIGRvd25cbjxTdXBlcj4rayA9IEZvY3VzIHVwXG48U3VwZXI+K2wgPSBGb2N1cyByaWdodCIsCiAgIm5hbWUiOiAiRm9jdXMgY2hhbmdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFydGluaGphcnRteXIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZvY3VzLWNoYW5nZXIiLAogICJ1dWlkIjogImZvY3VzLWNoYW5nZXJAaGVhcnRtaXJlIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
+, {"uuid": "focus-changer@heartmire", "name": "Focus changer", "pname": "focus-changer", "description": "Change focus between windows in all directions.\n\nThe extension will first try to find a suitable window within the same monitor. If there is none, it will try to find one on the next monitor in that direction (in a multi-monitor setup).\n\nDefault shortcuts (can be changed in preferences):\n<Super>+h = Focus left\n<Super>+j = Focus down\n<Super>+k = Focus up\n<Super>+l = Focus right", "link": "https://extensions.gnome.org/extension/4627/focus-changer/", "shell_version_map": {"38": {"version": "9", "sha256": "0ngn0bw0f2fpp0vv4hq7gb0vx2xq2gk3nkkb6p393i9qbr42l3y1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBmb2N1cyBiZXR3ZWVuIHdpbmRvd3MgaW4gYWxsIGRpcmVjdGlvbnMuXG5cblRoZSBleHRlbnNpb24gd2lsbCBmaXJzdCB0cnkgdG8gZmluZCBhIHN1aXRhYmxlIHdpbmRvdyB3aXRoaW4gdGhlIHNhbWUgbW9uaXRvci4gSWYgdGhlcmUgaXMgbm9uZSwgaXQgd2lsbCB0cnkgdG8gZmluZCBvbmUgb24gdGhlIG5leHQgbW9uaXRvciBpbiB0aGF0IGRpcmVjdGlvbiAoaW4gYSBtdWx0aS1tb25pdG9yIHNldHVwKS5cblxuRGVmYXVsdCBzaG9ydGN1dHMgKGNhbiBiZSBjaGFuZ2VkIGluIHByZWZlcmVuY2VzKTpcbjxTdXBlcj4raCA9IEZvY3VzIGxlZnRcbjxTdXBlcj4raiA9IEZvY3VzIGRvd25cbjxTdXBlcj4rayA9IEZvY3VzIHVwXG48U3VwZXI+K2wgPSBGb2N1cyByaWdodCIsCiAgIm5hbWUiOiAiRm9jdXMgY2hhbmdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hcnRpbmhqYXJ0bXlyL2dub21lLXNoZWxsLWV4dGVuc2lvbi1mb2N1cy1jaGFuZ2VyIiwKICAidXVpZCI6ICJmb2N1cy1jaGFuZ2VyQGhlYXJ0bWlyZSIsCiAgInZlcnNpb24iOiA5Cn0="}, "40": {"version": "8", "sha256": "0lcws0mgf72pl8q9q4finfkkzxic22f6gfljfkv5yghl8v1ksv06", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBmb2N1cyBiZXR3ZWVuIHdpbmRvd3MgaW4gYWxsIGRpcmVjdGlvbnMuXG5cblRoZSBleHRlbnNpb24gd2lsbCBmaXJzdCB0cnkgdG8gZmluZCBhIHN1aXRhYmxlIHdpbmRvdyB3aXRoaW4gdGhlIHNhbWUgbW9uaXRvci4gSWYgdGhlcmUgaXMgbm9uZSwgaXQgd2lsbCB0cnkgdG8gZmluZCBvbmUgb24gdGhlIG5leHQgbW9uaXRvciBpbiB0aGF0IGRpcmVjdGlvbiAoaW4gYSBtdWx0aS1tb25pdG9yIHNldHVwKS5cblxuRGVmYXVsdCBzaG9ydGN1dHMgKGNhbiBiZSBjaGFuZ2VkIGluIHByZWZlcmVuY2VzKTpcbjxTdXBlcj4raCA9IEZvY3VzIGxlZnRcbjxTdXBlcj4raiA9IEZvY3VzIGRvd25cbjxTdXBlcj4rayA9IEZvY3VzIHVwXG48U3VwZXI+K2wgPSBGb2N1cyByaWdodCIsCiAgIm5hbWUiOiAiRm9jdXMgY2hhbmdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFydGluaGphcnRteXIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZvY3VzLWNoYW5nZXIiLAogICJ1dWlkIjogImZvY3VzLWNoYW5nZXJAaGVhcnRtaXJlIiwKICAidmVyc2lvbiI6IDgKfQ=="}, "41": {"version": "8", "sha256": "0lcws0mgf72pl8q9q4finfkkzxic22f6gfljfkv5yghl8v1ksv06", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBmb2N1cyBiZXR3ZWVuIHdpbmRvd3MgaW4gYWxsIGRpcmVjdGlvbnMuXG5cblRoZSBleHRlbnNpb24gd2lsbCBmaXJzdCB0cnkgdG8gZmluZCBhIHN1aXRhYmxlIHdpbmRvdyB3aXRoaW4gdGhlIHNhbWUgbW9uaXRvci4gSWYgdGhlcmUgaXMgbm9uZSwgaXQgd2lsbCB0cnkgdG8gZmluZCBvbmUgb24gdGhlIG5leHQgbW9uaXRvciBpbiB0aGF0IGRpcmVjdGlvbiAoaW4gYSBtdWx0aS1tb25pdG9yIHNldHVwKS5cblxuRGVmYXVsdCBzaG9ydGN1dHMgKGNhbiBiZSBjaGFuZ2VkIGluIHByZWZlcmVuY2VzKTpcbjxTdXBlcj4raCA9IEZvY3VzIGxlZnRcbjxTdXBlcj4raiA9IEZvY3VzIGRvd25cbjxTdXBlcj4rayA9IEZvY3VzIHVwXG48U3VwZXI+K2wgPSBGb2N1cyByaWdodCIsCiAgIm5hbWUiOiAiRm9jdXMgY2hhbmdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFydGluaGphcnRteXIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZvY3VzLWNoYW5nZXIiLAogICJ1dWlkIjogImZvY3VzLWNoYW5nZXJAaGVhcnRtaXJlIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
 , {"uuid": "no-titlebar-when-maximized@alec.ninja", "name": "No Titlebar When Maximized", "pname": "no-titlebar-when-maximized", "description": "This extension hides the classic title bar of maximized X.Org windows.\n\nNote: The xprop utility must be installed in order for this extension to function.", "link": "https://extensions.gnome.org/extension/4630/no-titlebar-when-maximized/", "shell_version_map": {"41": {"version": "3", "sha256": "1dc9b5haw4ijd3vrml1zhrcfh97w86pyqf312k1mi91za6j8bfjr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGhpZGVzIHRoZSBjbGFzc2ljIHRpdGxlIGJhciBvZiBtYXhpbWl6ZWQgWC5Pcmcgd2luZG93cy5cblxuTm90ZTogVGhlIHhwcm9wIHV0aWxpdHkgbXVzdCBiZSBpbnN0YWxsZWQgaW4gb3JkZXIgZm9yIHRoaXMgZXh0ZW5zaW9uIHRvIGZ1bmN0aW9uLiIsCiAgIm5hbWUiOiAiTm8gVGl0bGViYXIgV2hlbiBNYXhpbWl6ZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWxlY2RvdG5pbmphL25vLXRpdGxlYmFyLXdoZW4tbWF4aW1pemVkIiwKICAidXVpZCI6ICJuby10aXRsZWJhci13aGVuLW1heGltaXplZEBhbGVjLm5pbmphIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
-, {"uuid": "cryptowatch@d0x2f.github.com", "name": "CryptoWatch", "pname": "cryptowatch", "description": "Display live crypto portfolio balances.", "link": "https://extensions.gnome.org/extension/4633/cryptowatch/", "shell_version_map": {"40": {"version": "4", "sha256": "07qzx3j2rbzriixml2jj3ac7ryzfminl3z0gk1dq7dkrvdaxlr8b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgbGl2ZSBjcnlwdG8gcG9ydGZvbGlvIGJhbGFuY2VzLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJjcnlwdG93YXRjaCIsCiAgImdldHRleHQtZG9tYWluIjogImNyeXB0b3dhdGNoIiwKICAibmFtZSI6ICJDcnlwdG9XYXRjaCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jcnlwdG93YXRjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZDB4MmYvQ3J5cHRvV2F0Y2giLAogICJ1dWlkIjogImNyeXB0b3dhdGNoQGQweDJmLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "07qzx3j2rbzriixml2jj3ac7ryzfminl3z0gk1dq7dkrvdaxlr8b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgbGl2ZSBjcnlwdG8gcG9ydGZvbGlvIGJhbGFuY2VzLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJjcnlwdG93YXRjaCIsCiAgImdldHRleHQtZG9tYWluIjogImNyeXB0b3dhdGNoIiwKICAibmFtZSI6ICJDcnlwdG9XYXRjaCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jcnlwdG93YXRjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZDB4MmYvQ3J5cHRvV2F0Y2giLAogICJ1dWlkIjogImNyeXB0b3dhdGNoQGQweDJmLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}}}
-, {"uuid": "mousefollowsfocus@matthes.biz", "name": "Mouse Follows Focus", "pname": "mouse-follows-focus", "description": "Are you a power-user?\nDo you like using Super+1,2,3 to access your favorite apps?\nAre you annoyed that you have to manually move your mouse between screens because it can't keep up with your keyboard shortcuts?\nThen this extension is for you!\n\nThis simple GNOME shell extension does the opposite of the 'focus follows mouse' setting. It makes the mouse follow your keyboard focus. Whenever you focus a window, if the cursor isn't already in it, it will jump to the windows center, making it easy to interact with it.", "link": "https://extensions.gnome.org/extension/4642/mouse-follows-focus/", "shell_version_map": {"41": {"version": "3", "sha256": "1bz3k5dpzax2ip8han8szw0cxcyanbk1yni67mbldw4rfl3qlfh8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFyZSB5b3UgYSBwb3dlci11c2VyP1xuRG8geW91IGxpa2UgdXNpbmcgU3VwZXIrMSwyLDMgdG8gYWNjZXNzIHlvdXIgZmF2b3JpdGUgYXBwcz9cbkFyZSB5b3UgYW5ub3llZCB0aGF0IHlvdSBoYXZlIHRvIG1hbnVhbGx5IG1vdmUgeW91ciBtb3VzZSBiZXR3ZWVuIHNjcmVlbnMgYmVjYXVzZSBpdCBjYW4ndCBrZWVwIHVwIHdpdGggeW91ciBrZXlib2FyZCBzaG9ydGN1dHM/XG5UaGVuIHRoaXMgZXh0ZW5zaW9uIGlzIGZvciB5b3UhXG5cblRoaXMgc2ltcGxlIEdOT01FIHNoZWxsIGV4dGVuc2lvbiBkb2VzIHRoZSBvcHBvc2l0ZSBvZiB0aGUgJ2ZvY3VzIGZvbGxvd3MgbW91c2UnIHNldHRpbmcuIEl0IG1ha2VzIHRoZSBtb3VzZSBmb2xsb3cgeW91ciBrZXlib2FyZCBmb2N1cy4gV2hlbmV2ZXIgeW91IGZvY3VzIGEgd2luZG93LCBpZiB0aGUgY3Vyc29yIGlzbid0IGFscmVhZHkgaW4gaXQsIGl0IHdpbGwganVtcCB0byB0aGUgd2luZG93cyBjZW50ZXIsIG1ha2luZyBpdCBlYXN5IHRvIGludGVyYWN0IHdpdGggaXQuIiwKICAibmFtZSI6ICJNb3VzZSBGb2xsb3dzIEZvY3VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0xlb25NYXR0aGVzL21vdXNlZm9sbG93c2ZvY3VzIiwKICAidXVpZCI6ICJtb3VzZWZvbGxvd3Nmb2N1c0BtYXR0aGVzLmJpeiIsCiAgInZlcnNpb24iOiAzCn0="}}}
+, {"uuid": "cryptowatch@d0x2f.github.com", "name": "CryptoWatch", "pname": "cryptowatch", "description": "Display live crypto portfolio balances.", "link": "https://extensions.gnome.org/extension/4633/cryptowatch/", "shell_version_map": {"40": {"version": "5", "sha256": "1yxlqbqw1j2gsydfqiz6xqdl6yv6iww90c1l8f1y6601p8979rc0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgbGl2ZSBjcnlwdG8gcG9ydGZvbGlvIGJhbGFuY2VzLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJjcnlwdG93YXRjaCIsCiAgImdldHRleHQtZG9tYWluIjogImNyeXB0b3dhdGNoIiwKICAibmFtZSI6ICJDcnlwdG9XYXRjaCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jcnlwdG93YXRjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZDB4MmYvQ3J5cHRvV2F0Y2giLAogICJ1dWlkIjogImNyeXB0b3dhdGNoQGQweDJmLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}, "41": {"version": "5", "sha256": "1yxlqbqw1j2gsydfqiz6xqdl6yv6iww90c1l8f1y6601p8979rc0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgbGl2ZSBjcnlwdG8gcG9ydGZvbGlvIGJhbGFuY2VzLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJjcnlwdG93YXRjaCIsCiAgImdldHRleHQtZG9tYWluIjogImNyeXB0b3dhdGNoIiwKICAibmFtZSI6ICJDcnlwdG9XYXRjaCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jcnlwdG93YXRjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZDB4MmYvQ3J5cHRvV2F0Y2giLAogICJ1dWlkIjogImNyeXB0b3dhdGNoQGQweDJmLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}}}
+, {"uuid": "mousefollowsfocus@matthes.biz", "name": "Mouse Follows Focus", "pname": "mouse-follows-focus", "description": "Are you a power-user?\nDo you like using Super+1,2,3 to access your favorite apps?\nAre you annoyed that you have to manually move your mouse between screens because it can't keep up with your keyboard shortcuts?\nThen this extension is for you!\n\nThis simple GNOME shell extension does the opposite of the 'focus follows mouse' setting. It makes the mouse follow your keyboard focus. Whenever you focus a window, if the cursor isn't already in it, it will jump to the windows center, making it easy to interact with it.", "link": "https://extensions.gnome.org/extension/4642/mouse-follows-focus/", "shell_version_map": {"41": {"version": "4", "sha256": "1zsy76sab87s74p30sxdp1cki1w956gm0sw27anpx1z6yih50rdv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFyZSB5b3UgYSBwb3dlci11c2VyP1xuRG8geW91IGxpa2UgdXNpbmcgU3VwZXIrMSwyLDMgdG8gYWNjZXNzIHlvdXIgZmF2b3JpdGUgYXBwcz9cbkFyZSB5b3UgYW5ub3llZCB0aGF0IHlvdSBoYXZlIHRvIG1hbnVhbGx5IG1vdmUgeW91ciBtb3VzZSBiZXR3ZWVuIHNjcmVlbnMgYmVjYXVzZSBpdCBjYW4ndCBrZWVwIHVwIHdpdGggeW91ciBrZXlib2FyZCBzaG9ydGN1dHM/XG5UaGVuIHRoaXMgZXh0ZW5zaW9uIGlzIGZvciB5b3UhXG5cblRoaXMgc2ltcGxlIEdOT01FIHNoZWxsIGV4dGVuc2lvbiBkb2VzIHRoZSBvcHBvc2l0ZSBvZiB0aGUgJ2ZvY3VzIGZvbGxvd3MgbW91c2UnIHNldHRpbmcuIEl0IG1ha2VzIHRoZSBtb3VzZSBmb2xsb3cgeW91ciBrZXlib2FyZCBmb2N1cy4gV2hlbmV2ZXIgeW91IGZvY3VzIGEgd2luZG93LCBpZiB0aGUgY3Vyc29yIGlzbid0IGFscmVhZHkgaW4gaXQsIGl0IHdpbGwganVtcCB0byB0aGUgd2luZG93cyBjZW50ZXIsIG1ha2luZyBpdCBlYXN5IHRvIGludGVyYWN0IHdpdGggaXQuIiwKICAibmFtZSI6ICJNb3VzZSBGb2xsb3dzIEZvY3VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0xlb25NYXR0aGVzL21vdXNlZm9sbG93c2ZvY3VzIiwKICAidXVpZCI6ICJtb3VzZWZvbGxvd3Nmb2N1c0BtYXR0aGVzLmJpeiIsCiAgInZlcnNpb24iOiA0Cn0="}}}
+, {"uuid": "gnome-extension-pass-search-provider.lavrov.github.com", "name": "Pass Search Provider", "pname": "pass-search-provider", "description": "Shows matching pass entries in gnome search", "link": "https://extensions.gnome.org/extension/4645/pass-search-provider/", "shell_version_map": {"40": {"version": "4", "sha256": "1jnisq1bzl1dvb3a31rvn5swihs5js46n6bz2pmgc9npbzbvxlnk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG1hdGNoaW5nIHBhc3MgZW50cmllcyBpbiBnbm9tZSBzZWFyY2giLAogICJuYW1lIjogIlBhc3MgU2VhcmNoIFByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xhdnJvdi9nbm9tZS1leHRlbnNpb24tcGFzcy1zZWFyY2gtcHJvdmlkZXIiLAogICJ1dWlkIjogImdub21lLWV4dGVuc2lvbi1wYXNzLXNlYXJjaC1wcm92aWRlci5sYXZyb3YuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}}}
+, {"uuid": "desktop-cube@schneegans.github.com", "name": "Desktop Cube", "pname": "desktop-cube", "description": "Indulge in nostalgia with useless 3D effects.", "link": "https://extensions.gnome.org/extension/4648/desktop-cube/", "shell_version_map": {"40": {"version": "5", "sha256": "0yjzayajrqkl5pxacmp1nqn32v3cslbvs804laibc3a0brlr5f3k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZHVsZ2UgaW4gbm9zdGFsZ2lhIHdpdGggdXNlbGVzcyAzRCBlZmZlY3RzLiIsCiAgImdldHRleHQtZG9tYWluIjogImRlc2t0b3AtY3ViZSIsCiAgIm5hbWUiOiAiRGVza3RvcCBDdWJlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlc2t0b3AtY3ViZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2NobmVlZ2Fucy9EZXNrdG9wLUN1YmUiLAogICJ1dWlkIjogImRlc2t0b3AtY3ViZUBzY2huZWVnYW5zLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}, "41": {"version": "5", "sha256": "0yjzayajrqkl5pxacmp1nqn32v3cslbvs804laibc3a0brlr5f3k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZHVsZ2UgaW4gbm9zdGFsZ2lhIHdpdGggdXNlbGVzcyAzRCBlZmZlY3RzLiIsCiAgImdldHRleHQtZG9tYWluIjogImRlc2t0b3AtY3ViZSIsCiAgIm5hbWUiOiAiRGVza3RvcCBDdWJlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlc2t0b3AtY3ViZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2NobmVlZ2Fucy9EZXNrdG9wLUN1YmUiLAogICJ1dWlkIjogImRlc2t0b3AtY3ViZUBzY2huZWVnYW5zLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}}}
+, {"uuid": "notification-banner-reloaded@marcinjakubowski.github.com", "name": "Notification Banner Reloaded", "pname": "notification-banner-reloaded", "description": "Configure notification banner position and animation to your liking", "link": "https://extensions.gnome.org/extension/4651/notification-banner-reloaded/", "shell_version_map": {"40": {"version": "2", "sha256": "0mral17kp1w4gsrq7lf8zs4nqa3v38828g04fyj0j5f675h9v9jf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbmZpZ3VyZSBub3RpZmljYXRpb24gYmFubmVyIHBvc2l0aW9uIGFuZCBhbmltYXRpb24gdG8geW91ciBsaWtpbmciLAogICJuYW1lIjogIk5vdGlmaWNhdGlvbiBCYW5uZXIgUmVsb2FkZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hcmNpbmpha3Vib3dza2kvbm90aWZpY2F0aW9uLXBvc2l0aW9uLXJlbG9hZGVkIiwKICAidXVpZCI6ICJub3RpZmljYXRpb24tYmFubmVyLXJlbG9hZGVkQG1hcmNpbmpha3Vib3dza2kuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}, "41": {"version": "2", "sha256": "0mral17kp1w4gsrq7lf8zs4nqa3v38828g04fyj0j5f675h9v9jf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbmZpZ3VyZSBub3RpZmljYXRpb24gYmFubmVyIHBvc2l0aW9uIGFuZCBhbmltYXRpb24gdG8geW91ciBsaWtpbmciLAogICJuYW1lIjogIk5vdGlmaWNhdGlvbiBCYW5uZXIgUmVsb2FkZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hcmNpbmpha3Vib3dza2kvbm90aWZpY2F0aW9uLXBvc2l0aW9uLXJlbG9hZGVkIiwKICAidXVpZCI6ICJub3RpZmljYXRpb24tYmFubmVyLXJlbG9hZGVkQG1hcmNpbmpha3Vib3dza2kuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}}}
+, {"uuid": "gnome-extension-brightness@bruno.englert.gitlab.com", "name": "Adjust Display Brightness", "pname": "adjust-display-brightness", "description": "Simple GNOME extension to control displays' brightness via DDC. It requires ddcutil to be installed, I2C permissions for non-root users configured.", "link": "https://extensions.gnome.org/extension/4652/adjust-display-brightness/", "shell_version_map": {"40": {"version": "15", "sha256": "06dmir4xr1w90qmqvjdvivb1q6253mhqc934ckp277kk3p1h47mb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBleHRlbnNpb24gdG8gY29udHJvbCBkaXNwbGF5cycgYnJpZ2h0bmVzcyB2aWEgRERDLiBJdCByZXF1aXJlcyBkZGN1dGlsIHRvIGJlIGluc3RhbGxlZCwgSTJDIHBlcm1pc3Npb25zIGZvciBub24tcm9vdCB1c2VycyBjb25maWd1cmVkLiIsCiAgIm5hbWUiOiAiQWRqdXN0IERpc3BsYXkgQnJpZ2h0bmVzcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9icnVuby5lbmdsZXJ0L2dub21lLWV4dGVuc2lvbi1icmlnaHRuZXNzIiwKICAidXVpZCI6ICJnbm9tZS1leHRlbnNpb24tYnJpZ2h0bmVzc0BicnVuby5lbmdsZXJ0LmdpdGxhYi5jb20iLAogICJ2ZXJzaW9uIjogMTUKfQ=="}}}
+, {"uuid": "date-menu-formatter@marcinjakubowski.github.com", "name": "Date Menu Formatter", "pname": "date-menu-formatter", "description": "Allows customization of the date display in the panel.\n\nMight be especially useful if you're using a horizontal panel which does not at all work well with the default date display.\n\nCHANGELOG\nVersion 5: added support for multiple Dash To Panel panels", "link": "https://extensions.gnome.org/extension/4655/date-menu-formatter/", "shell_version_map": {"40": {"version": "5", "sha256": "0zhndqp2pnpa5kj93j2s7s7f98wnq1i36ap8m6w1nq7g3frarmn8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyBjdXN0b21pemF0aW9uIG9mIHRoZSBkYXRlIGRpc3BsYXkgaW4gdGhlIHBhbmVsLlxuXG5NaWdodCBiZSBlc3BlY2lhbGx5IHVzZWZ1bCBpZiB5b3UncmUgdXNpbmcgYSBob3Jpem9udGFsIHBhbmVsIHdoaWNoIGRvZXMgbm90IGF0IGFsbCB3b3JrIHdlbGwgd2l0aCB0aGUgZGVmYXVsdCBkYXRlIGRpc3BsYXkuXG5cbkNIQU5HRUxPR1xuVmVyc2lvbiA1OiBhZGRlZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBEYXNoIFRvIFBhbmVsIHBhbmVscyIsCiAgIm5hbWUiOiAiRGF0ZSBNZW51IEZvcm1hdHRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXRlLW1lbnUtZm9ybWF0dGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiZGF0ZS1tZW51LWZvcm1hdHRlckBtYXJjaW5qYWt1Ym93c2tpLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}, "41": {"version": "5", "sha256": "0zhndqp2pnpa5kj93j2s7s7f98wnq1i36ap8m6w1nq7g3frarmn8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyBjdXN0b21pemF0aW9uIG9mIHRoZSBkYXRlIGRpc3BsYXkgaW4gdGhlIHBhbmVsLlxuXG5NaWdodCBiZSBlc3BlY2lhbGx5IHVzZWZ1bCBpZiB5b3UncmUgdXNpbmcgYSBob3Jpem9udGFsIHBhbmVsIHdoaWNoIGRvZXMgbm90IGF0IGFsbCB3b3JrIHdlbGwgd2l0aCB0aGUgZGVmYXVsdCBkYXRlIGRpc3BsYXkuXG5cbkNIQU5HRUxPR1xuVmVyc2lvbiA1OiBhZGRlZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBEYXNoIFRvIFBhbmVsIHBhbmVscyIsCiAgIm5hbWUiOiAiRGF0ZSBNZW51IEZvcm1hdHRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXRlLW1lbnUtZm9ybWF0dGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiZGF0ZS1tZW51LWZvcm1hdHRlckBtYXJjaW5qYWt1Ym93c2tpLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}}}
+, {"uuid": "CustomizeClockOnLockScreen@pratap.fastmail.fm", "name": "Customize Clock on Lock Screen", "pname": "customize-clock-on-lock-screen", "description": "Customize Clock on Lock Screen.", "link": "https://extensions.gnome.org/extension/4663/customize-clock-on-lock-screen/", "shell_version_map": {"41": {"version": "2", "sha256": "1rw16avp8svfhkis6ifljkwffy67f22zpql31nmhgsdsm4bsp3pw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSBDbG9jayBvbiBMb2NrIFNjcmVlbi4iLAogICJuYW1lIjogIkN1c3RvbWl6ZSBDbG9jayBvbiBMb2NrIFNjcmVlbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9QUkFUQVAtS1VNQVIvY3VzdG9taXplLWNsb2NrLW9uLWxvY2stc2NyZWVuIiwKICAidXVpZCI6ICJDdXN0b21pemVDbG9ja09uTG9ja1NjcmVlbkBwcmF0YXAuZmFzdG1haWwuZm0iLAogICJ2ZXJzaW9uIjogMgp9"}}}
+, {"uuid": "LeftClock@adityashrivastava.tk", "name": "Left Clock", "pname": "left-clock", "description": "Replaces the activity button with clock and moves it to left side of top bar.", "link": "https://extensions.gnome.org/extension/4667/left-clock/", "shell_version_map": {"40": {"version": "4", "sha256": "0lsihlkx9is0cisx7wsz9jy5h91gqhcpqqpq3lpl3msvn90dlmj9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VzIHRoZSBhY3Rpdml0eSBidXR0b24gd2l0aCBjbG9jayBhbmQgbW92ZXMgaXQgdG8gbGVmdCBzaWRlIG9mIHRvcCBiYXIuIiwKICAibmFtZSI6ICJMZWZ0IENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiTGVmdENsb2NrQGFkaXR5YXNocml2YXN0YXZhLnRrIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "0lsihlkx9is0cisx7wsz9jy5h91gqhcpqqpq3lpl3msvn90dlmj9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VzIHRoZSBhY3Rpdml0eSBidXR0b24gd2l0aCBjbG9jayBhbmQgbW92ZXMgaXQgdG8gbGVmdCBzaWRlIG9mIHRvcCBiYXIuIiwKICAibmFtZSI6ICJMZWZ0IENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiTGVmdENsb2NrQGFkaXR5YXNocml2YXN0YXZhLnRrIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
+, {"uuid": "keyboard-backlight-menu@ophir.dev", "name": "Keyboard Backlight Slider", "pname": "keyboard-backlight-slider", "description": "Allow setting the keyboard backlight brightness with a slider in the main menu", "link": "https://extensions.gnome.org/extension/4669/keyboard-backlight-slider/", "shell_version_map": {"40": {"version": "4", "sha256": "1afrdqjb5xvg57m5y7h33drs8yzwrblyddxypyrmc4xam37nq3lb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IHNldHRpbmcgdGhlIGtleWJvYXJkIGJhY2tsaWdodCBicmlnaHRuZXNzIHdpdGggYSBzbGlkZXIgaW4gdGhlIG1haW4gbWVudSIsCiAgIm5hbWUiOiAiS2V5Ym9hcmQgQmFja2xpZ2h0IFNsaWRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbG92YXNvYS9nbm9tZS1rZXlib2FyZC1iYWNrbGlnaHQtbWVudSIsCiAgInV1aWQiOiAia2V5Ym9hcmQtYmFja2xpZ2h0LW1lbnVAb3BoaXIuZGV2IiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "1afrdqjb5xvg57m5y7h33drs8yzwrblyddxypyrmc4xam37nq3lb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IHNldHRpbmcgdGhlIGtleWJvYXJkIGJhY2tsaWdodCBicmlnaHRuZXNzIHdpdGggYSBzbGlkZXIgaW4gdGhlIG1haW4gbWVudSIsCiAgIm5hbWUiOiAiS2V5Ym9hcmQgQmFja2xpZ2h0IFNsaWRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbG92YXNvYS9nbm9tZS1rZXlib2FyZC1iYWNrbGlnaHQtbWVudSIsCiAgInV1aWQiOiAia2V5Ym9hcmQtYmFja2xpZ2h0LW1lbnVAb3BoaXIuZGV2IiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
+, {"uuid": "alt-tab-move-mouse@buzztaiki.github.com", "name": "Alt-Tab Move Mouse", "pname": "alt-tab-move-mouse", "description": "Move mouse pointer onto active window after Alt-Tab. This extension is workaround of some sloppy focus problems", "link": "https://extensions.gnome.org/extension/4673/alt-tab-move-mouse/", "shell_version_map": {"40": {"version": "1", "sha256": "0dl2v61v2iqnf1qk7dsi60bm68kk4kc16jbrk9knw4ys8n35bxy3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgbW91c2UgcG9pbnRlciBvbnRvIGFjdGl2ZSB3aW5kb3cgYWZ0ZXIgQWx0LVRhYi4gVGhpcyBleHRlbnNpb24gaXMgd29ya2Fyb3VuZCBvZiBzb21lIHNsb3BweSBmb2N1cyBwcm9ibGVtcyIsCiAgIm5hbWUiOiAiQWx0LVRhYiBNb3ZlIE1vdXNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9idXp6dGFpa2kvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWFsdC10YWItbW92ZS1tb3VzZSIsCiAgInV1aWQiOiAiYWx0LXRhYi1tb3ZlLW1vdXNlQGJ1enp0YWlraS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEKfQ=="}, "41": {"version": "1", "sha256": "0dl2v61v2iqnf1qk7dsi60bm68kk4kc16jbrk9knw4ys8n35bxy3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgbW91c2UgcG9pbnRlciBvbnRvIGFjdGl2ZSB3aW5kb3cgYWZ0ZXIgQWx0LVRhYi4gVGhpcyBleHRlbnNpb24gaXMgd29ya2Fyb3VuZCBvZiBzb21lIHNsb3BweSBmb2N1cyBwcm9ibGVtcyIsCiAgIm5hbWUiOiAiQWx0LVRhYiBNb3ZlIE1vdXNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9idXp6dGFpa2kvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWFsdC10YWItbW92ZS1tb3VzZSIsCiAgInV1aWQiOiAiYWx0LXRhYi1tb3ZlLW1vdXNlQGJ1enp0YWlraS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
+, {"uuid": "Server@sven.kramer", "name": "Server", "pname": "server", "description": "A simple Indicator that shows my home-server status (online / offline) on the main panel. Furthermore a wake on lan can be triggered. For WOL functionality, its necessary that you have 'wakeonlan' installed. This extension is only tested with Gnome 40+. Didnt test it yet with older versions.", "link": "https://extensions.gnome.org/extension/4676/server/", "shell_version_map": {"38": {"version": "3", "sha256": "11qhxnvi0l66pf817fcwfxccm5hcvdq5h6fifb30g3frnm0q8v96", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIEluZGljYXRvciB0aGF0IHNob3dzIG15IGhvbWUtc2VydmVyIHN0YXR1cyAob25saW5lIC8gb2ZmbGluZSkgb24gdGhlIG1haW4gcGFuZWwuIEZ1cnRoZXJtb3JlIGEgd2FrZSBvbiBsYW4gY2FuIGJlIHRyaWdnZXJlZC4gRm9yIFdPTCBmdW5jdGlvbmFsaXR5LCBpdHMgbmVjZXNzYXJ5IHRoYXQgeW91IGhhdmUgJ3dha2VvbmxhbicgaW5zdGFsbGVkLiBUaGlzIGV4dGVuc2lvbiBpcyBvbmx5IHRlc3RlZCB3aXRoIEdub21lIDQwKy4gRGlkbnQgdGVzdCBpdCB5ZXQgd2l0aCBvbGRlciB2ZXJzaW9ucy4iLAogICJuYW1lIjogIlNlcnZlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5TZXJ2ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9zdmVucy1iLWxvZy5ibG9nc3BvdC5jb20vIiwKICAidXVpZCI6ICJTZXJ2ZXJAc3Zlbi5rcmFtZXIiLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "11qhxnvi0l66pf817fcwfxccm5hcvdq5h6fifb30g3frnm0q8v96", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIEluZGljYXRvciB0aGF0IHNob3dzIG15IGhvbWUtc2VydmVyIHN0YXR1cyAob25saW5lIC8gb2ZmbGluZSkgb24gdGhlIG1haW4gcGFuZWwuIEZ1cnRoZXJtb3JlIGEgd2FrZSBvbiBsYW4gY2FuIGJlIHRyaWdnZXJlZC4gRm9yIFdPTCBmdW5jdGlvbmFsaXR5LCBpdHMgbmVjZXNzYXJ5IHRoYXQgeW91IGhhdmUgJ3dha2VvbmxhbicgaW5zdGFsbGVkLiBUaGlzIGV4dGVuc2lvbiBpcyBvbmx5IHRlc3RlZCB3aXRoIEdub21lIDQwKy4gRGlkbnQgdGVzdCBpdCB5ZXQgd2l0aCBvbGRlciB2ZXJzaW9ucy4iLAogICJuYW1lIjogIlNlcnZlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5TZXJ2ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9zdmVucy1iLWxvZy5ibG9nc3BvdC5jb20vIiwKICAidXVpZCI6ICJTZXJ2ZXJAc3Zlbi5rcmFtZXIiLAogICJ2ZXJzaW9uIjogMwp9"}, "41": {"version": "3", "sha256": "11qhxnvi0l66pf817fcwfxccm5hcvdq5h6fifb30g3frnm0q8v96", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIEluZGljYXRvciB0aGF0IHNob3dzIG15IGhvbWUtc2VydmVyIHN0YXR1cyAob25saW5lIC8gb2ZmbGluZSkgb24gdGhlIG1haW4gcGFuZWwuIEZ1cnRoZXJtb3JlIGEgd2FrZSBvbiBsYW4gY2FuIGJlIHRyaWdnZXJlZC4gRm9yIFdPTCBmdW5jdGlvbmFsaXR5LCBpdHMgbmVjZXNzYXJ5IHRoYXQgeW91IGhhdmUgJ3dha2VvbmxhbicgaW5zdGFsbGVkLiBUaGlzIGV4dGVuc2lvbiBpcyBvbmx5IHRlc3RlZCB3aXRoIEdub21lIDQwKy4gRGlkbnQgdGVzdCBpdCB5ZXQgd2l0aCBvbGRlciB2ZXJzaW9ucy4iLAogICJuYW1lIjogIlNlcnZlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5TZXJ2ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9zdmVucy1iLWxvZy5ibG9nc3BvdC5jb20vIiwKICAidXVpZCI6ICJTZXJ2ZXJAc3Zlbi5rcmFtZXIiLAogICJ2ZXJzaW9uIjogMwp9"}}}
+, {"uuid": "burn-my-windows@schneegans.github.com", "name": "Burn My Windows", "pname": "burn-my-windows", "description": "Disintegrate your apps the old-school way.", "link": "https://extensions.gnome.org/extension/4679/burn-my-windows/", "shell_version_map": {"40": {"version": "2", "sha256": "0ijhg2672k78a4vdv354bfw9awrn6m7l5kxwwaym620gkr8bgg8v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2ludGVncmF0ZSB5b3VyIGFwcHMgdGhlIG9sZC1zY2hvb2wgd2F5LiIsCiAgImdldHRleHQtZG9tYWluIjogImJ1cm4tbXktd2luZG93cyIsCiAgIm5hbWUiOiAiQnVybiBNeSBXaW5kb3dzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJ1cm4tbXktd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2NobmVlZ2Fucy9CdXJuLU15LVdpbmRvd3MiLAogICJ1dWlkIjogImJ1cm4tbXktd2luZG93c0BzY2huZWVnYW5zLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}, "41": {"version": "2", "sha256": "0ijhg2672k78a4vdv354bfw9awrn6m7l5kxwwaym620gkr8bgg8v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2ludGVncmF0ZSB5b3VyIGFwcHMgdGhlIG9sZC1zY2hvb2wgd2F5LiIsCiAgImdldHRleHQtZG9tYWluIjogImJ1cm4tbXktd2luZG93cyIsCiAgIm5hbWUiOiAiQnVybiBNeSBXaW5kb3dzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJ1cm4tbXktd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2NobmVlZ2Fucy9CdXJuLU15LVdpbmRvd3MiLAogICJ1dWlkIjogImJ1cm4tbXktd2luZG93c0BzY2huZWVnYW5zLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}}}
+, {"uuid": "babar-lite@fthx", "name": "BaBar Lite", "pname": "babar-task-bar-lite-for-gnome-40", "description": "Task bar. App grid, favorites, workspaces and tasks in panel. Light extension.\n\n Replace 'Activities' button by all current workspaces and apps buttons. Switch workspace/app or toggle overview by clicking on these buttons. Drag and drop favorite, task, dash item or app grid item to any workspace (you cannot reorder tasks inside a workspace). Change 'Places' label to an icon. No settings, use BaBar classical for that.\n\n You can use names for workspaces: there are two ways for that. 1) Edit the string array 'org.gnome.desktop.wm.preferences.workspace-names' gsettings key (through dconf editor, e.g.). 2) Use official GNOME extension Workspaces Indicator's settings. You don't have to write a long enough list: numbers are displayed if no workspace name is defined.", "link": "https://extensions.gnome.org/extension/4681/babar-task-bar-lite-for-gnome-40/", "shell_version_map": {"40": {"version": "2", "sha256": "0xdshww4fh4328sfbmb801nvrqpdshwq7jssifa8zvih55858qnk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2sgYmFyLiBBcHAgZ3JpZCwgZmF2b3JpdGVzLCB3b3Jrc3BhY2VzIGFuZCB0YXNrcyBpbiBwYW5lbC4gTGlnaHQgZXh0ZW5zaW9uLlxuXG4gUmVwbGFjZSAnQWN0aXZpdGllcycgYnV0dG9uIGJ5IGFsbCBjdXJyZW50IHdvcmtzcGFjZXMgYW5kIGFwcHMgYnV0dG9ucy4gU3dpdGNoIHdvcmtzcGFjZS9hcHAgb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuIERyYWcgYW5kIGRyb3AgZmF2b3JpdGUsIHRhc2ssIGRhc2ggaXRlbSBvciBhcHAgZ3JpZCBpdGVtIHRvIGFueSB3b3Jrc3BhY2UgKHlvdSBjYW5ub3QgcmVvcmRlciB0YXNrcyBpbnNpZGUgYSB3b3Jrc3BhY2UpLiBDaGFuZ2UgJ1BsYWNlcycgbGFiZWwgdG8gYW4gaWNvbi4gTm8gc2V0dGluZ3MsIHVzZSBCYUJhciBjbGFzc2ljYWwgZm9yIHRoYXQuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuIiwKICAibmFtZSI6ICJCYUJhciBMaXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC9iYWJhci1saXRlIiwKICAidXVpZCI6ICJiYWJhci1saXRlQGZ0aHgiLAogICJ2ZXJzaW9uIjogMgp9"}, "41": {"version": "2", "sha256": "0xdshww4fh4328sfbmb801nvrqpdshwq7jssifa8zvih55858qnk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2sgYmFyLiBBcHAgZ3JpZCwgZmF2b3JpdGVzLCB3b3Jrc3BhY2VzIGFuZCB0YXNrcyBpbiBwYW5lbC4gTGlnaHQgZXh0ZW5zaW9uLlxuXG4gUmVwbGFjZSAnQWN0aXZpdGllcycgYnV0dG9uIGJ5IGFsbCBjdXJyZW50IHdvcmtzcGFjZXMgYW5kIGFwcHMgYnV0dG9ucy4gU3dpdGNoIHdvcmtzcGFjZS9hcHAgb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuIERyYWcgYW5kIGRyb3AgZmF2b3JpdGUsIHRhc2ssIGRhc2ggaXRlbSBvciBhcHAgZ3JpZCBpdGVtIHRvIGFueSB3b3Jrc3BhY2UgKHlvdSBjYW5ub3QgcmVvcmRlciB0YXNrcyBpbnNpZGUgYSB3b3Jrc3BhY2UpLiBDaGFuZ2UgJ1BsYWNlcycgbGFiZWwgdG8gYW4gaWNvbi4gTm8gc2V0dGluZ3MsIHVzZSBCYUJhciBjbGFzc2ljYWwgZm9yIHRoYXQuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuIiwKICAibmFtZSI6ICJCYUJhciBMaXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC9iYWJhci1saXRlIiwKICAidXVpZCI6ICJiYWJhci1saXRlQGZ0aHgiLAogICJ2ZXJzaW9uIjogMgp9"}}}
 ]
diff --git a/pkgs/desktops/pantheon/apps/elementary-code/default.nix b/pkgs/desktops/pantheon/apps/elementary-code/default.nix
index 078dc5d5f04..f83839f6c92 100644
--- a/pkgs/desktops/pantheon/apps/elementary-code/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-code/default.nix
@@ -31,11 +31,9 @@ stdenv.mkDerivation rec {
   pname = "elementary-code";
   version = "6.1.0";
 
-  repoName = "code";
-
   src = fetchFromGitHub {
     owner = "elementary";
-    repo = repoName;
+    repo = "code";
     rev = version;
     sha256 = "sha256-AXmMcPj2hf33G5v3TUg+eZwaKOdVlRvoVXglMJFHRjw=";
   };
@@ -75,9 +73,6 @@ stdenv.mkDerivation rec {
     webkitgtk
   ];
 
-  # install script fails with UnicodeDecodeError because of printing a fancy elipsis character
-  LC_ALL = "C.UTF-8";
-
   # ctags needed in path by outline plugin
   preFixup = ''
     gappsWrapperArgs+=(
diff --git a/pkgs/desktops/pantheon/apps/elementary-dock/default.nix b/pkgs/desktops/pantheon/apps/elementary-dock/default.nix
index f23120c0b6d..5aa61062a8f 100644
--- a/pkgs/desktops/pantheon/apps/elementary-dock/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-dock/default.nix
@@ -28,17 +28,15 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-dock";
-  version = "unstable-2021-11-08";
+  version = "unstable-2021-12-08";
 
   outputs = [ "out" "dev" ];
 
-  repoName = "dock";
-
   src = fetchFromGitHub {
     owner = "elementary";
-    repo = repoName;
-    rev = "51e8d3ddfbed0dfce3158d80f997ab183e92567b";
-    sha256 = "sha256-w6HGxEAXNod/uMEEfSz9nRNTRrCbcEqJCP9EFkVbX1U=";
+    repo = "dock";
+    rev = "5e4b5ba2eec3b522e107ad834a59c0f1271d4699";
+    sha256 = "sha256-/Ul21t9VFxhmlQbfx4eY86UKU33hiRfXF9OPHBzPe5o=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/pantheon/apps/elementary-videos/default.nix b/pkgs/desktops/pantheon/apps/elementary-videos/default.nix
index faeaab7ece1..f7286c9108a 100644
--- a/pkgs/desktops/pantheon/apps/elementary-videos/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-videos/default.nix
@@ -21,15 +21,13 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-videos";
-  version = "2.8.0";
-
-  repoName = "videos";
+  version = "2.8.1";
 
   src = fetchFromGitHub {
     owner = "elementary";
-    repo = repoName;
+    repo = "videos";
     rev = version;
-    sha256 = "sha256-FFCtQ42LygfjowehwZcISWTfv8PBZTH0X8mPrpiG8Ug=";
+    sha256 = "sha256-Ki6i9u+oXOBTH+dVJ9RgBxszD7Wvdrfahd9abyjFYJY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix
index 8f4b9fe32b2..764845c0202 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix
@@ -12,6 +12,7 @@
 , gtk3
 , bluez
 , switchboard
+, wingpanel-indicator-bluetooth
 }:
 
 stdenv.mkDerivation rec {
@@ -53,6 +54,7 @@ stdenv.mkDerivation rec {
     gtk3
     libgee
     switchboard
+    wingpanel-indicator-bluetooth # settings schema
   ];
 
   meta = with lib; {
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix
index 0e8168d299a..16ed92b45d2 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix
@@ -7,7 +7,6 @@
 , pkg-config
 , vala
 , libgee
-, elementary-settings-daemon
 , gnome-settings-daemon
 , granite
 , gtk3
@@ -44,7 +43,6 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     dbus
-    elementary-settings-daemon
     gnome-settings-daemon
     glib
     granite
diff --git a/pkgs/desktops/pantheon/artwork/elementary-redacted-script/default.nix b/pkgs/desktops/pantheon/artwork/elementary-redacted-script/default.nix
index 97df0f9c78a..d6dc4e66cbc 100644
--- a/pkgs/desktops/pantheon/artwork/elementary-redacted-script/default.nix
+++ b/pkgs/desktops/pantheon/artwork/elementary-redacted-script/default.nix
@@ -1,29 +1,36 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, nix-update-script
 }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "elementary-redacted-script";
-  version = "unstable-2016-06-03";
+  version = "5.1.0";
 
   src = fetchFromGitHub {
-    owner = "png2378";
-    repo = "redacted-elementary";
-    rev = "346440ff9ce19465e6d5c3d6d67a8573f992c746";
-    sha256 = "1jpd13sxkarclr0mlm66wzgpjh52ghzjzn4mywhyshyyskwn7jg1";
+    owner = "elementary";
+    repo = "fonts";
+    rev = version;
+    sha256 = "sha256-YiE7yaH0ZrF1/Cp+3bcJYm2cExQjFcat6JLMJPjhops=";
   };
 
   dontBuild = true;
 
   installPhase = ''
     mkdir -p $out/share/fonts/truetype/redacted-elementary
-    cp -a truetype/*.ttf $out/share/fonts/truetype/redacted-elementary
+    cp -a redacted/*.ttf $out/share/fonts/truetype/redacted-elementary
   '';
 
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = "pantheon.${pname}";
+    };
+  };
+
   meta = with lib; {
     description = "Font for concealing text";
-    homepage = "https://github.com/png2378/redacted-elementary";
+    homepage = "https://github.com/elementary/fonts";
     license = licenses.ofl;
     maintainers = teams.pantheon.members;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/pantheon/default.nix b/pkgs/desktops/pantheon/default.nix
index 3300dd2ec8c..617c6ed086d 100644
--- a/pkgs/desktops/pantheon/default.nix
+++ b/pkgs/desktops/pantheon/default.nix
@@ -4,23 +4,37 @@
 lib.makeScope pkgs.newScope (self: with self; {
 
   switchboardPlugs = [
-    switchboard-plug-a11y switchboard-plug-about
-    switchboard-plug-applications switchboard-plug-bluetooth
-    switchboard-plug-datetime switchboard-plug-display
-    switchboard-plug-keyboard switchboard-plug-mouse-touchpad
-    switchboard-plug-network switchboard-plug-notifications
-    switchboard-plug-onlineaccounts switchboard-plug-pantheon-shell
-    switchboard-plug-power switchboard-plug-printers
-    switchboard-plug-security-privacy switchboard-plug-sharing
-    switchboard-plug-sound switchboard-plug-wacom
+    switchboard-plug-a11y
+    switchboard-plug-about
+    switchboard-plug-applications
+    switchboard-plug-bluetooth
+    switchboard-plug-datetime
+    switchboard-plug-display
+    switchboard-plug-keyboard
+    switchboard-plug-mouse-touchpad
+    switchboard-plug-network
+    switchboard-plug-notifications
+    switchboard-plug-onlineaccounts
+    switchboard-plug-pantheon-shell
+    switchboard-plug-power
+    switchboard-plug-printers
+    switchboard-plug-security-privacy
+    switchboard-plug-sharing
+    switchboard-plug-sound
+    switchboard-plug-wacom
   ];
 
   wingpanelIndicators = [
-    wingpanel-applications-menu wingpanel-indicator-a11y
-    wingpanel-indicator-bluetooth wingpanel-indicator-datetime
-    wingpanel-indicator-keyboard wingpanel-indicator-network
-    wingpanel-indicator-nightlight wingpanel-indicator-notifications
-    wingpanel-indicator-power wingpanel-indicator-session
+    wingpanel-applications-menu
+    wingpanel-indicator-a11y
+    wingpanel-indicator-bluetooth
+    wingpanel-indicator-datetime
+    wingpanel-indicator-keyboard
+    wingpanel-indicator-network
+    wingpanel-indicator-nightlight
+    wingpanel-indicator-notifications
+    wingpanel-indicator-power
+    wingpanel-indicator-session
     wingpanel-indicator-sound
   ];
 
@@ -33,8 +47,6 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   elementary-gsettings-schemas = callPackage ./desktop/elementary-gsettings-schemas { };
 
-  notes-up = pkgs.notes-up.override { withPantheon = true; };
-
   touchegg = pkgs.touchegg.override { withPantheon = true; };
 
   #### APPS
@@ -129,6 +141,8 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   pantheon-agent-polkit = callPackage ./services/pantheon-agent-polkit { };
 
+  xdg-desktop-portal-pantheon = callPackage ./services/xdg-desktop-portal-pantheon { };
+
   #### WINGPANEL INDICATORS
 
   wingpanel-applications-menu = callPackage ./desktop/wingpanel-indicators/applications-menu { };
@@ -211,6 +225,13 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   elementary-wallpapers = callPackage ./artwork/elementary-wallpapers { };
 
+  ### THIRD-PARTY
+
+  # Put packages that ONLY works with Pantheon in pkgs/desktops/pantheon/third-party,
+  # specifically third party switchboard plugins and wingpanel indicators.
+  # Please call these packages in pkgs/top-level/all-packages.nix instead of this file.
+  # https://github.com/NixOS/nixpkgs/issues/115222#issuecomment-906868654
+
 } // lib.optionalAttrs (config.allowAliases or true) {
 
   ### ALIASES
@@ -223,4 +244,6 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   extra-elementary-contracts = throw "extra-elementary-contracts has been removed as all contracts have been upstreamed."; # added 2021-12-01
 
+  inherit (pkgs) notes-up; # added 2021-12-18
+
 })
diff --git a/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix b/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
index 18e00e63bcc..25bce374c23 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
@@ -19,7 +19,6 @@
 , elementary-icon-theme
 , wingpanel-with-indicators
 , elementary-gtk-theme
-, elementary-settings-daemon
 , nixos-artwork
 , lightdm
 , gdk-pixbuf
@@ -33,11 +32,9 @@ stdenv.mkDerivation rec {
   pname = "elementary-greeter";
   version = "6.0.1";
 
-  repoName = "greeter";
-
   src = fetchFromGitHub {
     owner = "elementary";
-    repo = repoName;
+    repo = "greeter";
     rev = version;
     sha256 = "1f606ds56sp1c58q8dblfpaq9pwwkqw9i4gkwksw45m2xkwlbflq";
   };
@@ -67,7 +64,6 @@ stdenv.mkDerivation rec {
     clutter-gtk # else we get could not generate cargs for mutter-clutter-2
     elementary-gtk-theme
     elementary-icon-theme
-    elementary-settings-daemon
     gnome-settings-daemon
     gdk-pixbuf
     granite
@@ -101,7 +97,7 @@ stdenv.mkDerivation rec {
       # dbus-launch needed in path
       --prefix PATH : "${dbus}/bin"
 
-      # for `wingpanel -g`
+      # for `io.elementary.wingpanel -g`
       --prefix PATH : "${wingpanel-with-indicators}/bin"
 
       # for the compositor
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix
index 3ebc3813879..ceabac94a23 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wingpanel-indicator-notifications";
-  version = "6.0.3";
+  version = "6.0.4";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-iHhZJwaomQgH1Sal8uejl4QlavOQ75UKZ9xchTi1X3U=";
+    sha256 = "sha256-tIpR/WIhE0Mmt2EploNNDVlAX4OUNI3VnEflTLVkfSo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel/default.nix
index 709a4e3e614..0cd7a13c3e1 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel/default.nix
@@ -22,19 +22,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wingpanel";
-  version = "3.0.1";
+  version = "3.0.2";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "078yi36r452sc33mv2ck8z0icya1lhzhickllrlhc60rdri36sb8";
-  };
-
-  passthru = {
-    updateScript = nix-update-script {
-      attrPath = "pantheon.${pname}";
-    };
+    sha256 = "sha256-WvkQx+9YjKCINpyVg8KjCV0GAb0rJfblSFaO14/4oas=";
   };
 
   nativeBuildInputs = [
@@ -75,6 +69,12 @@ stdenv.mkDerivation rec {
     )
   '';
 
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = "pantheon.${pname}";
+    };
+  };
+
   meta = with lib; {
     description = "The extensible top panel for Pantheon";
     longDescription = ''
diff --git a/pkgs/development/libraries/xdg-desktop-portal-pantheon/default.nix b/pkgs/desktops/pantheon/services/xdg-desktop-portal-pantheon/default.nix
index 68a18741834..3ceff2095d2 100644
--- a/pkgs/development/libraries/xdg-desktop-portal-pantheon/default.nix
+++ b/pkgs/desktops/pantheon/services/xdg-desktop-portal-pantheon/default.nix
@@ -8,9 +8,9 @@
 , vala
 , wrapGAppsHook
 , glib
+, granite
 , gtk3
 , libhandy
-, pantheon
 , systemd
 , vte
 }:
@@ -36,9 +36,9 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     glib
+    granite
     gtk3
     libhandy
-    pantheon.granite
     systemd
     vte
   ];
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
 
   passthru = {
     updateScript = nix-update-script {
-      attrPath = pname;
+      attrPath = "pantheon.${pname}";
     };
   };
 
diff --git a/pkgs/applications/system/pantheon-tweaks/default.nix b/pkgs/desktops/pantheon/third-party/pantheon-tweaks/default.nix
index af6bf54fd71..af6bf54fd71 100644
--- a/pkgs/applications/system/pantheon-tweaks/default.nix
+++ b/pkgs/desktops/pantheon/third-party/pantheon-tweaks/default.nix
diff --git a/pkgs/applications/system/pantheon-tweaks/fix-paths.patch b/pkgs/desktops/pantheon/third-party/pantheon-tweaks/fix-paths.patch
index b2e0e0a7b4c..b2e0e0a7b4c 100644
--- a/pkgs/applications/system/pantheon-tweaks/fix-paths.patch
+++ b/pkgs/desktops/pantheon/third-party/pantheon-tweaks/fix-paths.patch
diff --git a/pkgs/desktops/pantheon/third-party/wingpanel-indicator-ayatana/default.nix b/pkgs/desktops/pantheon/third-party/wingpanel-indicator-ayatana/default.nix
new file mode 100644
index 00000000000..6e3fbf5777b
--- /dev/null
+++ b/pkgs/desktops/pantheon/third-party/wingpanel-indicator-ayatana/default.nix
@@ -0,0 +1,55 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, substituteAll
+, meson
+, ninja
+, pkg-config
+, vala
+, gtk3
+, libindicator-gtk3
+, pantheon
+, indicator-application-gtk3
+}:
+
+stdenv.mkDerivation rec {
+  pname = "wingpanel-indicator-ayatana";
+  version = "unstable-2021-12-18";
+
+  src = fetchFromGitHub {
+    owner = "Lafydev";
+    repo = pname;
+    rev = "5749f753ca64ce58232a46b9045949b3f8219827";
+    sha256 = "sha256-kuEVw62IDTyC3hRRcWv2RihPOohGqEt8YLr44SurwPM=";
+  };
+
+  patches = [
+    # Tells the indicator the path for libapplication.so
+    (substituteAll {
+      src = ./fix-libapplication-dir.patch;
+      indicator_application = indicator-application-gtk3;
+    })
+  ];
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    vala
+  ];
+
+  buildInputs = [
+    gtk3
+    libindicator-gtk3
+    pantheon.granite
+    pantheon.wingpanel
+  ];
+
+  meta = with lib; {
+    description = "Ayatana Compatibility Indicator for Wingpanel";
+    homepage = "https://github.com/Lafydev/wingpanel-indicator-ayatana";
+    license = licenses.lgpl21Plus;
+    platforms = platforms.linux;
+    maintainers = teams.pantheon.members;
+  };
+}
diff --git a/pkgs/desktops/pantheon/third-party/wingpanel-indicator-ayatana/fix-libapplication-dir.patch b/pkgs/desktops/pantheon/third-party/wingpanel-indicator-ayatana/fix-libapplication-dir.patch
new file mode 100644
index 00000000000..2d9a510b751
--- /dev/null
+++ b/pkgs/desktops/pantheon/third-party/wingpanel-indicator-ayatana/fix-libapplication-dir.patch
@@ -0,0 +1,13 @@
+diff --git a/src/IndicatorFactory.vala b/src/IndicatorFactory.vala
+index 9411de0..632d83b 100644
+--- a/src/IndicatorFactory.vala
++++ b/src/IndicatorFactory.vala
+@@ -24,7 +24,7 @@ public class AyatanaCompatibility.IndicatorFactory : Object, IndicatorLoader {
+     public Gee.Collection<IndicatorIface> get_indicators () {
+         if (indicators == null) {
+             indicators = new Gee.LinkedList<IndicatorIface> ();
+-            load_indicator (File.new_for_path (Constants.AYATANA_INDICATOR_DIR), "libapplication.so");
++            load_indicator (File.new_for_path ("@indicator_application@/lib/indicators3/7/"), "libapplication.so");
+         }
+ 
+         return indicators.read_only_view;
diff --git a/pkgs/desktops/plasma-5/3rdparty/lightly/default.nix b/pkgs/desktops/plasma-5/3rdparty/lightly/default.nix
new file mode 100644
index 00000000000..39be6c63f1e
--- /dev/null
+++ b/pkgs/desktops/plasma-5/3rdparty/lightly/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, cmake
+, extra-cmake-modules
+, kdecoration
+, kcoreaddons
+, kguiaddons
+, kconfigwidgets
+, kwindowsystem
+, kiconthemes
+, qtx11extras
+}:
+
+mkDerivation rec{
+  pname = "lightly";
+  version = "0.4.1";
+  src = fetchFromGitHub {
+    owner = "Luwx";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "k1fEZbhzluNlAmj5s/O9X20aCVQxlWQm/Iw/euX7cmI=";
+  };
+
+  extraCmakeFlags=["-DBUILD_TESTING=OFF"];
+
+  nativeBuildInputs = [ cmake extra-cmake-modules ];
+
+  buildInputs = [
+    kcoreaddons
+    kguiaddons
+    kconfigwidgets
+    kwindowsystem
+    kiconthemes
+    qtx11extras
+    kdecoration
+  ];
+
+  meta = with lib; {
+    description = "A modern style for qt applications";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ pasqui23 ];
+    homepage = "https://github.com/Luwx/Lightly/";
+    inherit (kwindowsystem.meta) platforms;
+  };
+}
diff --git a/pkgs/desktops/plasma-5/default.nix b/pkgs/desktops/plasma-5/default.nix
index dd3634ac7cd..0eafc182e46 100644
--- a/pkgs/desktops/plasma-5/default.nix
+++ b/pkgs/desktops/plasma-5/default.nix
@@ -162,6 +162,7 @@ let
         kwin-tiling = callPackage ./3rdparty/kwin/scripts/tiling.nix { };
         krohnkite = callPackage ./3rdparty/kwin/scripts/krohnkite.nix { };
         krunner-symbols = callPackage ./3rdparty/addons/krunner-symbols.nix { };
+        lightly = callPackage ./3rdparty/lightly { };
         parachute = callPackage ./3rdparty/kwin/scripts/parachute.nix { };
       };
 
diff --git a/pkgs/desktops/plasma-5/fetch.sh b/pkgs/desktops/plasma-5/fetch.sh
index 91031ac618f..180092076b0 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.23.3/ -A '*.tar.xz' )
+WGET_ARGS=( https://download.kde.org/stable/plasma/5.23.4/ -A '*.tar.xz' )
diff --git a/pkgs/desktops/plasma-5/srcs.nix b/pkgs/desktops/plasma-5/srcs.nix
index 70cb748709e..3bcfca507ab 100644
--- a/pkgs/desktops/plasma-5/srcs.nix
+++ b/pkgs/desktops/plasma-5/srcs.nix
@@ -4,427 +4,427 @@
 
 {
   bluedevil = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/bluedevil-5.23.3.tar.xz";
-      sha256 = "1n6h2m4z67vl0mv0hs0g5xff1vcj03w0nhx4hkhy66hly556nq8x";
-      name = "bluedevil-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/bluedevil-5.23.4.tar.xz";
+      sha256 = "13sxwsks7gnws13jhk8428npzdyhvv5yhczzayi5yd3856d3g4av";
+      name = "bluedevil-5.23.4.tar.xz";
     };
   };
   breeze = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/breeze-5.23.3.tar.xz";
-      sha256 = "1514y4k52bc71nljihj655d7swk2qvr168i0j2xqcm0w4aiz4jmv";
-      name = "breeze-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/breeze-5.23.4.tar.xz";
+      sha256 = "1wbhir9g2gfwcvw0ib50qhqk0rgfji8wjipqqp7ddsm463ykp472";
+      name = "breeze-5.23.4.tar.xz";
     };
   };
   breeze-grub = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/breeze-grub-5.23.3.tar.xz";
-      sha256 = "1nwhjw0nkdg94znh7h80byrq8vpa1f20ph1m4fhlj233nfskw0zy";
-      name = "breeze-grub-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/breeze-grub-5.23.4.tar.xz";
+      sha256 = "1zkl8ddbdnckz4glaf0j6vkxf1z63d5q9nx0w64d17qydp1fwxjq";
+      name = "breeze-grub-5.23.4.tar.xz";
     };
   };
   breeze-gtk = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/breeze-gtk-5.23.3.tar.xz";
-      sha256 = "0wq313laj7nlsw3d6p1prq1d4gic5lz2ipklj4dq4vsvsh99ggvn";
-      name = "breeze-gtk-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/breeze-gtk-5.23.4.tar.xz";
+      sha256 = "0jv064y7wlvglk0w2yx1zwnxjhczi9gq6cfnz004z18rlqwnz9pq";
+      name = "breeze-gtk-5.23.4.tar.xz";
     };
   };
   breeze-plymouth = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/breeze-plymouth-5.23.3.tar.xz";
-      sha256 = "047clfgqcrplwi3158pw1r868yyqlxs7iqqy861wzlsmjz9qzqdl";
-      name = "breeze-plymouth-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/breeze-plymouth-5.23.4.tar.xz";
+      sha256 = "1qc8pnhhl89bqwyh215cn92qahw8k8gx7zr14rwxqjn9hxf9jxxy";
+      name = "breeze-plymouth-5.23.4.tar.xz";
     };
   };
   discover = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/discover-5.23.3.tar.xz";
-      sha256 = "056wcvk44r11rycnn12xf8r5psxqnm0f6i6z6nc5100sqkhip6p0";
-      name = "discover-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/discover-5.23.4.tar.xz";
+      sha256 = "0z5bp7p3f470i4x5796raawx7kjg1ca453y63wn9papdbiyl4iiz";
+      name = "discover-5.23.4.tar.xz";
     };
   };
   drkonqi = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/drkonqi-5.23.3.tar.xz";
-      sha256 = "14yc6nq3z6jm8siq2r15nzsqxpawk5iqy9ghmmwy9xa4vf18dxy5";
-      name = "drkonqi-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/drkonqi-5.23.4.tar.xz";
+      sha256 = "073vdclybx83dpvvqb3rc413k3nh50nil8rcig4kqm0gzjhp3qdb";
+      name = "drkonqi-5.23.4.tar.xz";
     };
   };
   kactivitymanagerd = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/kactivitymanagerd-5.23.3.tar.xz";
-      sha256 = "0rizk05v19qqymrjh7vswcp80a4rpyffmq7kg88pv5k11fcjqw5b";
-      name = "kactivitymanagerd-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/kactivitymanagerd-5.23.4.tar.xz";
+      sha256 = "1m0rbv8pkswkzfvbf231vn2c8x507ymc07kd0dw03np8h8zs5vbz";
+      name = "kactivitymanagerd-5.23.4.tar.xz";
     };
   };
   kde-cli-tools = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/kde-cli-tools-5.23.3.tar.xz";
-      sha256 = "0f8wab6n4klxj4yy4l4k3q3pdqlz9718mbjydnsmn1jgn20shsa0";
-      name = "kde-cli-tools-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/kde-cli-tools-5.23.4.tar.xz";
+      sha256 = "0ay320b3ixlicd8d1rjngkbxspmpk7rd8g562dv0c54hk73q61gj";
+      name = "kde-cli-tools-5.23.4.tar.xz";
     };
   };
   kde-gtk-config = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/kde-gtk-config-5.23.3.tar.xz";
-      sha256 = "12w2jv0mi39c2g1w3g3c68m80ailcm98hibk1mg885r36gx9kskb";
-      name = "kde-gtk-config-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/kde-gtk-config-5.23.4.tar.xz";
+      sha256 = "0537vk4wdvgz7jl0qkksf38bra5fdk6d0z6lnwm5v4fapdysbry9";
+      name = "kde-gtk-config-5.23.4.tar.xz";
     };
   };
   kdecoration = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/kdecoration-5.23.3.tar.xz";
-      sha256 = "134jmp5l2bvl042a5a1f1d66mqi4g7vrpmrn3gi7ysi34w1ylfc8";
-      name = "kdecoration-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/kdecoration-5.23.4.tar.xz";
+      sha256 = "0s80dhbba458yr85m6yfv7m5jkkn0xqzp42nhhaj4m9hh36bbd9s";
+      name = "kdecoration-5.23.4.tar.xz";
     };
   };
   kdeplasma-addons = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/kdeplasma-addons-5.23.3.tar.xz";
-      sha256 = "139wzfj21k32m36014sas3ad5qdc0df4131ckj1shlz882w4l3dw";
-      name = "kdeplasma-addons-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/kdeplasma-addons-5.23.4.tar.xz";
+      sha256 = "1j7xd2p8a8xi69sh91hldyajqg77lx5bla1vjg65f7yqz903bp4h";
+      name = "kdeplasma-addons-5.23.4.tar.xz";
     };
   };
   kgamma5 = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/kgamma5-5.23.3.tar.xz";
-      sha256 = "06wzcpsjqy5pw3s6qg32l6qg9jf61bbpjwh802182balfq2jl0y5";
-      name = "kgamma5-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/kgamma5-5.23.4.tar.xz";
+      sha256 = "1b3m812xxcya0gf665m8crpmwq91mkq28jkcjaavknr9dd22dkyk";
+      name = "kgamma5-5.23.4.tar.xz";
     };
   };
   khotkeys = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/khotkeys-5.23.3.tar.xz";
-      sha256 = "1ccjlr3q1lsmmdmh30wbrdaardvhivdzm9vrd46d301rdz6gyv86";
-      name = "khotkeys-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/khotkeys-5.23.4.tar.xz";
+      sha256 = "1fsll3cp6z763wp65iwqz244hzq0qlm4007jpxgd4gasbrd5zfg8";
+      name = "khotkeys-5.23.4.tar.xz";
     };
   };
   kinfocenter = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/kinfocenter-5.23.3.tar.xz";
-      sha256 = "09yz5grzwzgs1cg39j18zy7af8azy2lbg4bkkmh7wayv8pngj4gv";
-      name = "kinfocenter-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/kinfocenter-5.23.4.tar.xz";
+      sha256 = "0z3hwq5qjkrcxn0smgi7x49mcyixm1apjd4f16q0z40sn7sdybad";
+      name = "kinfocenter-5.23.4.tar.xz";
     };
   };
   kmenuedit = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/kmenuedit-5.23.3.tar.xz";
-      sha256 = "006kkg7jzwp4icik1hv95wcpw5sb1l1s94wnljvxdfdjkgzjxq55";
-      name = "kmenuedit-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/kmenuedit-5.23.4.tar.xz";
+      sha256 = "1iildwnhkvg2i2yhp6zl7m77fpa8vs7hhv8wjma3vbr2gh808nck";
+      name = "kmenuedit-5.23.4.tar.xz";
     };
   };
   kscreen = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/kscreen-5.23.3.tar.xz";
-      sha256 = "1x4qlycb1dxw36s3zyyrjfmfvwvwk8f8r0jls6hq8gqkl810abhw";
-      name = "kscreen-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/kscreen-5.23.4.tar.xz";
+      sha256 = "0sa9xvyz42c69aqnn2bm3j1hq87n2nk5yawppl7csxyz91iyv3n5";
+      name = "kscreen-5.23.4.tar.xz";
     };
   };
   kscreenlocker = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/kscreenlocker-5.23.3.tar.xz";
-      sha256 = "0wjcrikx3q533qz9wi0z3jm4k0lc09w2xsxr4iw1hh3afsd6jr34";
-      name = "kscreenlocker-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/kscreenlocker-5.23.4.tar.xz";
+      sha256 = "1n4gkcf74hk60fvbkb9940q5r89jbj4kwc4byi51523n038pvymf";
+      name = "kscreenlocker-5.23.4.tar.xz";
     };
   };
   ksshaskpass = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/ksshaskpass-5.23.3.tar.xz";
-      sha256 = "0dcych5zcv8fqmy1lhwpbfzj75ihs648d8ppfr0nj15mm2pgnvhx";
-      name = "ksshaskpass-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/ksshaskpass-5.23.4.tar.xz";
+      sha256 = "1s9wbfl867fgr5md51f63fc57626zw2b637xh7qy8sn563l8y1lk";
+      name = "ksshaskpass-5.23.4.tar.xz";
     };
   };
   ksystemstats = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/ksystemstats-5.23.3.tar.xz";
-      sha256 = "13jic16480rxhdwz0z49di19sxdi7rgvg61lg5i00w9mm6mbph3l";
-      name = "ksystemstats-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/ksystemstats-5.23.4.tar.xz";
+      sha256 = "00vs71jxqlv52absh16jyj1zryk2ib0bpd21c4qja11a3hw7j3gz";
+      name = "ksystemstats-5.23.4.tar.xz";
     };
   };
   kwallet-pam = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/kwallet-pam-5.23.3.tar.xz";
-      sha256 = "0axxk7szp5kn5hhlxh2mjzbwzaj4g1yn40ymgb6dga10h1nfdkd8";
-      name = "kwallet-pam-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/kwallet-pam-5.23.4.tar.xz";
+      sha256 = "08ycniyna3hzdgzi3m61iamwid32hajb1k1m27kw16abh3ds4vx7";
+      name = "kwallet-pam-5.23.4.tar.xz";
     };
   };
   kwayland-integration = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/kwayland-integration-5.23.3.tar.xz";
-      sha256 = "01gm3xbaih22v33bd9142xnrli13yxmib42pj8rnczhczrpnc3z3";
-      name = "kwayland-integration-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/kwayland-integration-5.23.4.tar.xz";
+      sha256 = "14j6iwakkmdyhf3796ap2dnfi0vdbrl3813x4ygzjyb8068a7k9g";
+      name = "kwayland-integration-5.23.4.tar.xz";
     };
   };
   kwayland-server = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/kwayland-server-5.23.3.tar.xz";
-      sha256 = "1hjh278iaz3ydf9bqy2fmm4hsvc60hrqw4hlc3ddcadp28dhg3gx";
-      name = "kwayland-server-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/kwayland-server-5.23.4.tar.xz";
+      sha256 = "13cvw4i1ysw4ncdnx7c4qw29zc350wbmc29dy06b574idm5rbnrm";
+      name = "kwayland-server-5.23.4.tar.xz";
     };
   };
   kwin = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/kwin-5.23.3.tar.xz";
-      sha256 = "04w8vnz3rzd9g1j1f4fbgyxjvxqrhasx6f2vqkrrh4cd56ndmcbz";
-      name = "kwin-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/kwin-5.23.4.tar.xz";
+      sha256 = "0rqim6p0r7k886mwvqy4zpz18scnah9zvjjbgx0p77f1086azvsc";
+      name = "kwin-5.23.4.tar.xz";
     };
   };
   kwrited = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/kwrited-5.23.3.tar.xz";
-      sha256 = "0156syandkq0s76xrrcz6nkxa6jgpf1a6nbkdw0a8biyxs5md644";
-      name = "kwrited-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/kwrited-5.23.4.tar.xz";
+      sha256 = "15sixbk5i5i1jv07hj820xi4fh0b6fmb4jkv2917911wpdkdnyik";
+      name = "kwrited-5.23.4.tar.xz";
     };
   };
   layer-shell-qt = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/layer-shell-qt-5.23.3.tar.xz";
-      sha256 = "15y7p0a59779aqxnsryqirsxslbvbig733i5s3n5jmg98y40712a";
-      name = "layer-shell-qt-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/layer-shell-qt-5.23.4.tar.xz";
+      sha256 = "0a74s7wx3jxxi1dp4j0a5dz7k45il4wjf7hf9j6cw2m5pdni1i2k";
+      name = "layer-shell-qt-5.23.4.tar.xz";
     };
   };
   libkscreen = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/libkscreen-5.23.3.tar.xz";
-      sha256 = "0kazvsahnk7ngld12lp1c07c34x9kal03fy8g7w9bgdha3j7xmdq";
-      name = "libkscreen-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/libkscreen-5.23.4.tar.xz";
+      sha256 = "0n1xghmabhn7sb99k0zsyrbx05mbaf926hyyw9qp5rf07r8yzk2p";
+      name = "libkscreen-5.23.4.tar.xz";
     };
   };
   libksysguard = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/libksysguard-5.23.3.tar.xz";
-      sha256 = "0ma4b0w08j0f46ivh9grci7wfh4z5j8nml83kcvnain1nwzprha0";
-      name = "libksysguard-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/libksysguard-5.23.4.tar.xz";
+      sha256 = "1xik5qaww9m26nkg804akaxbn7i7bd8ibc2v93h3p8ihkb5hh7lw";
+      name = "libksysguard-5.23.4.tar.xz";
     };
   };
   milou = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/milou-5.23.3.tar.xz";
-      sha256 = "0myvm9bkq189cfla7yqiwmbb5z2cm90rq5ll655n2c7zk3lqnn0d";
-      name = "milou-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/milou-5.23.4.tar.xz";
+      sha256 = "15wniaj9zprhvly6krxl5847q8kh8m8z5sr2wj816n70hh1y58f8";
+      name = "milou-5.23.4.tar.xz";
     };
   };
   oxygen = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/oxygen-5.23.3.tar.xz";
-      sha256 = "0r79xadvg7l4nsziy78wydhn4f0223fjc2xd60zih1dwmgapgf0z";
-      name = "oxygen-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/oxygen-5.23.4.tar.xz";
+      sha256 = "0b4rhf9500jhx73xw4ghqifgkfr527n2isiiys8g7m23ya38pbxz";
+      name = "oxygen-5.23.4.tar.xz";
     };
   };
   plasma-browser-integration = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/plasma-browser-integration-5.23.3.tar.xz";
-      sha256 = "0r3sq6w73qn246nddf4f8lbym8k4wp2ycfr2laz888b5cjf9df97";
-      name = "plasma-browser-integration-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/plasma-browser-integration-5.23.4.tar.xz";
+      sha256 = "004406s80i0gv1ga151ws7sny4l3y74swawdgd1swmvkjg2ii909";
+      name = "plasma-browser-integration-5.23.4.tar.xz";
     };
   };
   plasma-desktop = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/plasma-desktop-5.23.3.tar.xz";
-      sha256 = "01259pqncx3gcpanrmhal51dn4y8xcrs16pl5bjnasdn9r8mlhs3";
-      name = "plasma-desktop-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/plasma-desktop-5.23.4.tar.xz";
+      sha256 = "1p48sl6zyra1iyri9zrx88wka9fbzgyhkd9m7r4nqa8h0v5p12as";
+      name = "plasma-desktop-5.23.4.tar.xz";
     };
   };
   plasma-disks = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/plasma-disks-5.23.3.tar.xz";
-      sha256 = "1qwxhasmycn6ah2pv46z8vvls85lfwxm4z61q13l63a50489a05b";
-      name = "plasma-disks-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/plasma-disks-5.23.4.tar.xz";
+      sha256 = "0sgfwqyn539nd6s23nix3igf7z87sn3dn9zp8w2fy488vmm1pdmi";
+      name = "plasma-disks-5.23.4.tar.xz";
     };
   };
   plasma-firewall = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/plasma-firewall-5.23.3.tar.xz";
-      sha256 = "0kqb7sxysh6gq143rmmznv95mx4275bp1xfrlys518yn97clnwqq";
-      name = "plasma-firewall-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/plasma-firewall-5.23.4.tar.xz";
+      sha256 = "040w85ml5rh0l95l744576s3kb00niyr72q4pvf5xj98df1h89aw";
+      name = "plasma-firewall-5.23.4.tar.xz";
     };
   };
   plasma-integration = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/plasma-integration-5.23.3.tar.xz";
-      sha256 = "0q53b43yl5s1pvlqpmic2x8q5inawk66n8wng7rzgcfv9d3imhrn";
-      name = "plasma-integration-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/plasma-integration-5.23.4.tar.xz";
+      sha256 = "0b4rvfnd40xgvgab81p9qjgdpjww673nlaiklwrkrqmv41m0yy33";
+      name = "plasma-integration-5.23.4.tar.xz";
     };
   };
   plasma-nano = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/plasma-nano-5.23.3.tar.xz";
-      sha256 = "0ijygajn78c97s8ys8m2zn52zx45kxhk857hppkxp4jqpd5psf34";
-      name = "plasma-nano-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/plasma-nano-5.23.4.tar.xz";
+      sha256 = "1kw77w00261dmp2w0jvaslamia215mlhd3nnl0wr39p5vhlym70p";
+      name = "plasma-nano-5.23.4.tar.xz";
     };
   };
   plasma-nm = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/plasma-nm-5.23.3.tar.xz";
-      sha256 = "157almdi3br1qdfr0lwfdwc60fbizkwmpw3j2czk2sdsvm58rhgf";
-      name = "plasma-nm-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/plasma-nm-5.23.4.tar.xz";
+      sha256 = "0c4gfdyzac67yxjvz75mxd61wacnsa01liaajdyj853bn7wkx294";
+      name = "plasma-nm-5.23.4.tar.xz";
     };
   };
   plasma-pa = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/plasma-pa-5.23.3.tar.xz";
-      sha256 = "0md3vb2iffn4qdnj4msyn6j3hvidnsxzp2dfsnb3n0yp29niwxqk";
-      name = "plasma-pa-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/plasma-pa-5.23.4.tar.xz";
+      sha256 = "0g4q0y4sr14xsi71mv5qgn6qj8svmd045ff73hf34pb15qvdq0a7";
+      name = "plasma-pa-5.23.4.tar.xz";
     };
   };
   plasma-phone-components = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/plasma-phone-components-5.23.3.tar.xz";
-      sha256 = "1w8yqczr0933vhca5id32vg1k2np6n6hkh58n4x3z3xpdxpb5d4c";
-      name = "plasma-phone-components-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/plasma-phone-components-5.23.4.tar.xz";
+      sha256 = "0ml5pyi90nlmx5550sf3x9263f8mypj4jmdskzabzhnz44ck8vy9";
+      name = "plasma-phone-components-5.23.4.tar.xz";
     };
   };
   plasma-sdk = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/plasma-sdk-5.23.3.tar.xz";
-      sha256 = "0fb9g6vhsaxd6h6889jyhnxp86g7rwkmyiafq72hx6ikv69wyvbi";
-      name = "plasma-sdk-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/plasma-sdk-5.23.4.tar.xz";
+      sha256 = "1cbsksjy9x3jlk8bzd9m1zgr83rzkwv0jd015fap707ysdil1ypk";
+      name = "plasma-sdk-5.23.4.tar.xz";
     };
   };
   plasma-systemmonitor = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/plasma-systemmonitor-5.23.3.tar.xz";
-      sha256 = "1jlgfrkdw785x9bib2hzxjyd70b9aqgcp1w6lk75bhgkrz85kz8p";
-      name = "plasma-systemmonitor-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/plasma-systemmonitor-5.23.4.tar.xz";
+      sha256 = "16kfpzm8bhxyl9jx5xqbas4cm99sny4b2n6i27hc7ggjgx9r3j31";
+      name = "plasma-systemmonitor-5.23.4.tar.xz";
     };
   };
   plasma-tests = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/plasma-tests-5.23.3.tar.xz";
-      sha256 = "1fgl09c0ir8w128z4l0bggszjsvsqncb42k44vn6i6d0qdisxdgh";
-      name = "plasma-tests-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/plasma-tests-5.23.4.tar.xz";
+      sha256 = "1vnihnrxgbrk224xxpisqj84hjbllyk32vsra2rbgrwp2g58fh69";
+      name = "plasma-tests-5.23.4.tar.xz";
     };
   };
   plasma-thunderbolt = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/plasma-thunderbolt-5.23.3.tar.xz";
-      sha256 = "0vzdzsl6isg24j0830lg7is47kpmpvsni7gf4vri2l8a6fy7ibav";
-      name = "plasma-thunderbolt-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/plasma-thunderbolt-5.23.4.tar.xz";
+      sha256 = "0g5n24qwm6yd78rg14d6j2hn0krn0z0fm6bpyzr54ycrgiv850zz";
+      name = "plasma-thunderbolt-5.23.4.tar.xz";
     };
   };
   plasma-vault = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/plasma-vault-5.23.3.tar.xz";
-      sha256 = "061zq00mz1aamam4pc4kbbzdx4mi07iiach6w52n0c9d1bz16ym2";
-      name = "plasma-vault-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/plasma-vault-5.23.4.tar.xz";
+      sha256 = "1ay9x7kbgb5qg7w1m1rp9xbp8dzsxdj7zh2ifk3lff1g5f3yh9y6";
+      name = "plasma-vault-5.23.4.tar.xz";
     };
   };
   plasma-workspace = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/plasma-workspace-5.23.3.tar.xz";
-      sha256 = "0mz2aanm46s88lwm1s2nwm8yfanj78rnx1y14ppzm4dx0lrjx046";
-      name = "plasma-workspace-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/plasma-workspace-5.23.4.tar.xz";
+      sha256 = "0kd37sfg8hbf8biia3ip89nx0jgrdgfprmda392gx5xfzbnlxv0k";
+      name = "plasma-workspace-5.23.4.tar.xz";
     };
   };
   plasma-workspace-wallpapers = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/plasma-workspace-wallpapers-5.23.3.tar.xz";
-      sha256 = "1kz4xqzgwnhp1wmqmgadn0jjc9033i2bm8hiycqkahhj603k552s";
-      name = "plasma-workspace-wallpapers-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/plasma-workspace-wallpapers-5.23.4.tar.xz";
+      sha256 = "157kbi40bv9arxq7cvgxypk1qmrpd52d76xq99rsfbzdfrggx9nc";
+      name = "plasma-workspace-wallpapers-5.23.4.tar.xz";
     };
   };
   plymouth-kcm = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/plymouth-kcm-5.23.3.tar.xz";
-      sha256 = "1fa26h19g4f2fhpisp1jsl1niis50fbkdss7j1nqg44jih0g0qyf";
-      name = "plymouth-kcm-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/plymouth-kcm-5.23.4.tar.xz";
+      sha256 = "11f2r4nq7pi8xn3z6zjc58ix5hj3das16xqvq7m82p8zvw2qs44p";
+      name = "plymouth-kcm-5.23.4.tar.xz";
     };
   };
   polkit-kde-agent = {
-    version = "1-5.23.3";
+    version = "1-5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/polkit-kde-agent-1-5.23.3.tar.xz";
-      sha256 = "1r5sqxzj5r9xqn3iwsfj06f1w69q41j4wq2z11kndnjad0pwrf3r";
-      name = "polkit-kde-agent-1-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/polkit-kde-agent-1-5.23.4.tar.xz";
+      sha256 = "06qjz87c2h0vgpk0jpf24194rahdrwpc274k6vmfkmbr5232w48h";
+      name = "polkit-kde-agent-1-5.23.4.tar.xz";
     };
   };
   powerdevil = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/powerdevil-5.23.3.tar.xz";
-      sha256 = "0hcb22dy4hslzrk3md6amzm51hlmv08747f34x5drdl10cg98mzb";
-      name = "powerdevil-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/powerdevil-5.23.4.tar.xz";
+      sha256 = "1sl62vm25libbx2l2kw7s9p44kdq561gh8an03vkf1q1qgrnpwsf";
+      name = "powerdevil-5.23.4.tar.xz";
     };
   };
   qqc2-breeze-style = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/qqc2-breeze-style-5.23.3.tar.xz";
-      sha256 = "0716mw6dgpzwkaiinp8vphvxj3vrb95v7zckh4pgdky8ahxv655l";
-      name = "qqc2-breeze-style-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/qqc2-breeze-style-5.23.4.tar.xz";
+      sha256 = "1wl8zxq7bca6v40mnwjnpxc3pzz30khc223y9dwpgy8ampvy2ghr";
+      name = "qqc2-breeze-style-5.23.4.tar.xz";
     };
   };
   sddm-kcm = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/sddm-kcm-5.23.3.tar.xz";
-      sha256 = "0sb9sjdbhafjcx2nf2ffzjh14gyambj1w32gjz29fl15xjbmvqnr";
-      name = "sddm-kcm-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/sddm-kcm-5.23.4.tar.xz";
+      sha256 = "148vf9af4fhma0w6v7wwlxpq8v8a858yx3qx7w0pg8jq5zd1k6g2";
+      name = "sddm-kcm-5.23.4.tar.xz";
     };
   };
   systemsettings = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/systemsettings-5.23.3.tar.xz";
-      sha256 = "0i8vc1y95jd3g5vcgzixd73mn1r9s2jg9ix5nwfq4i5ihi0a0ph1";
-      name = "systemsettings-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/systemsettings-5.23.4.tar.xz";
+      sha256 = "0naw5zxgs47nx5wwg1li35salyg2cfpaphhn5m20plwqfi43zbdw";
+      name = "systemsettings-5.23.4.tar.xz";
     };
   };
   xdg-desktop-portal-kde = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/xdg-desktop-portal-kde-5.23.3.tar.xz";
-      sha256 = "1aajlgccl1z9m49a016ixr2hiy231wyx6xnmpbvjx9h1b52b3rpz";
-      name = "xdg-desktop-portal-kde-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/xdg-desktop-portal-kde-5.23.4.tar.xz";
+      sha256 = "17n5d4rjm28in7jpsq2qg2d7lv3qcnlpmgi9kclx81miih9rjwan";
+      name = "xdg-desktop-portal-kde-5.23.4.tar.xz";
     };
   };
 }
diff --git a/pkgs/desktops/xfce/core/exo/default.nix b/pkgs/desktops/xfce/core/exo/default.nix
index 06280220f96..7c891bd0358 100644
--- a/pkgs/desktops/xfce/core/exo/default.nix
+++ b/pkgs/desktops/xfce/core/exo/default.nix
@@ -4,9 +4,9 @@
 mkXfceDerivation {
   category = "xfce";
   pname = "exo";
-  version = "4.16.2";
+  version = "4.16.3";
 
-  sha256 = "sha256-O9Ak1sGxcSl9xB//+/vqJjXuEv9WIZlnliVPSKRIV2c=";
+  sha256 = "sha256-PG3GWpZ04sX4HrgAy2Sqcb+vdhiNk7C3YP7KpwgHj+g=";
 
   nativeBuildInputs = [
     libxslt
diff --git a/pkgs/development/beam-modules/hex/default.nix b/pkgs/development/beam-modules/hex/default.nix
index 836740a7933..c9e45c48061 100644
--- a/pkgs/development/beam-modules/hex/default.nix
+++ b/pkgs/development/beam-modules/hex/default.nix
@@ -8,13 +8,13 @@ let
 
   pkg = self: stdenv.mkDerivation rec {
     pname = "hex";
-    version = "0.21.2";
+    version = "1.0.1";
 
     src = fetchFromGitHub {
       owner = "hexpm";
       repo = "hex";
       rev = "v${version}";
-      sha256 = "18vwrc5b7pyi3nifmx5hd5wbz8fy3h6sfvkmskjg5acmz66fys0g";
+      sha256 = "sha256-5g2MDbStlUrAPQCv1xWp+oPyRIOqARmlsKo/ONLTLnY=";
     };
 
     setupHook = writeText "setupHook.sh" ''
diff --git a/pkgs/development/compilers/ciao/default.nix b/pkgs/development/compilers/ciao/default.nix
index 4d26678605e..a5cdcb82bc0 100644
--- a/pkgs/development/compilers/ciao/default.nix
+++ b/pkgs/development/compilers/ciao/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl21;
     maintainers = with maintainers; [ suhr ];
     platforms = platforms.unix;
+    broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/ciao.x86_64-darwin
   };
 }
diff --git a/pkgs/development/compilers/copper/default.nix b/pkgs/development/compilers/copper/default.nix
index 736004fb580..67d31f6f5e1 100644
--- a/pkgs/development/compilers/copper/default.nix
+++ b/pkgs/development/compilers/copper/default.nix
@@ -4,16 +4,15 @@
 }:
 stdenv.mkDerivation rec {
   pname = "copper";
-  version = "4.4";
+  version = "4.6";
   src = fetchurl {
     url = "https://tibleiz.net/download/copper-${version}-src.tar.gz";
-    sha256 = "1nf0bw143rjhd019yms3k6k531rahl8anidwh6bif0gm7cngfwfw";
+    sha256 = "sha256-tyxAMJp4H50eBz8gjt2O3zj5fq6nOIXKX47wql8aUUg=";
   };
   buildInputs = [
     libffi
   ];
   postPatch = ''
-    substituteInPlace Makefile --replace "-s scripts/" "scripts/"
     patchShebangs .
   '';
   buildPhase = ''
diff --git a/pkgs/development/compilers/dotnet/build-dotnet.nix b/pkgs/development/compilers/dotnet/build-dotnet.nix
index 3080873bb96..21cc6c8227c 100644
--- a/pkgs/development/compilers/dotnet/build-dotnet.nix
+++ b/pkgs/development/compilers/dotnet/build-dotnet.nix
@@ -4,7 +4,8 @@
 }:
 
 assert builtins.elem type [ "aspnetcore" "runtime" "sdk"];
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchurl
 , libunwind
 , openssl
@@ -12,6 +13,7 @@ assert builtins.elem type [ "aspnetcore" "runtime" "sdk"];
 , libuuid
 , zlib
 , curl
+, lttng-ust_2_12
 }:
 
 let
@@ -40,15 +42,19 @@ let
 in stdenv.mkDerivation rec {
   inherit pname version;
 
-  rpath = lib.makeLibraryPath [
+  # Some of these dependencies are `dlopen()`ed.
+  rpath = lib.makeLibraryPath ([
+    stdenv.cc.cc
+    zlib
+
     curl
     icu
     libunwind
     libuuid
     openssl
-    stdenv.cc.cc
-    zlib
-  ];
+  ] ++ lib.optionals stdenv.isLinux [
+    lttng-ust_2_12
+  ]);
 
   src = fetchurl {
     url = builtins.getAttr type urls;
@@ -73,7 +79,7 @@ in stdenv.mkDerivation rec {
     patchelf --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" $out/dotnet
     patchelf --set-rpath "${rpath}" $out/dotnet
     find $out -type f -name "*.so" -exec patchelf --set-rpath '$ORIGIN:${rpath}' {} \;
-    find $out -type f -name "apphost" -exec patchelf --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" --set-rpath '$ORIGIN:${rpath}' {} \;
+    find $out -type f \( -name "apphost" -or -name "createdump" \) -exec patchelf --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" --set-rpath '$ORIGIN:${rpath}' {} \;
   '';
 
   doInstallCheck = true;
diff --git a/pkgs/development/compilers/ecl/16.1.2.nix b/pkgs/development/compilers/ecl/16.1.2.nix
index 2742c2b8c07..9af1eccc793 100644
--- a/pkgs/development/compilers/ecl/16.1.2.nix
+++ b/pkgs/development/compilers/ecl/16.1.2.nix
@@ -1,38 +1,45 @@
-{ lib, stdenv, fetchurl, fetchpatch
-, libtool, autoconf, automake
-, gmp, mpfr, libffi, makeWrapper
+{ lib
+, stdenv
+, fetchurl
+, fetchpatch
+, libtool
+, autoconf
+, automake
+, gmp
+, mpfr
+, libffi
+, makeWrapper
 , noUnicode ? false
 , gcc
 , threadSupport ? false
-, useBoehmgc ? true, boehmgc
+, useBoehmgc ? true
+, boehmgc
 }:
 
-let
-  s = # Generated upstream information
-  rec {
-    baseName="ecl";
-    version="16.1.2";
-    name="${baseName}-${version}";
-    url="https://common-lisp.net/project/ecl/static/files/release/ecl-${version}.tgz";
-    sha256="16ab8qs3awvdxy8xs8jy82v8r04x4wr70l9l2j45vgag18d2nj1d";
+stdenv.mkDerivation rec {
+  pname = "ecl";
+  version = "16.1.2";
+
+  src = fetchurl {
+    url = "https://common-lisp.net/project/ecl/static/files/release/ecl-${version}.tgz";
+    sha256 = "sha256-LUgrGgpPvV2IFDRRcDInnYCMtkBeIt2R721zNTRGS5k=";
   };
+
   buildInputs = [
-    libtool autoconf automake makeWrapper
+    libtool
+    autoconf
+    automake
+    makeWrapper
   ];
   propagatedBuildInputs = [
-    libffi gmp mpfr gcc
+    libffi
+    gmp
+    mpfr
+    gcc
   ] ++ lib.optionals useBoehmgc [
     # replaces ecl's own gc which other packages can depend on, thus propagated
     boehmgc
   ];
-in
-stdenv.mkDerivation {
-  inherit (s) name version;
-  inherit buildInputs propagatedBuildInputs;
-
-  src = fetchurl {
-    inherit (s) url sha256;
-  };
 
   configureFlags = [
     (if threadSupport then "--enable-threads" else "--disable-threads")
@@ -40,8 +47,8 @@ stdenv.mkDerivation {
     "--with-gmp-libdir=${lib.getLib gmp}/lib"
     # -incdir, -libdir doesn't seem to be supported for libffi
     "--with-libffi-prefix=${lib.getDev libffi}"
-    ] ++ lib.optional (! noUnicode) "--enable-unicode"
-    ;
+  ] ++ lib.optional (! noUnicode) "--enable-unicode"
+  ;
 
   patches = [
     (fetchpatch {
@@ -80,17 +87,16 @@ stdenv.mkDerivation {
   # create the variables with suffixSalt (which seems to be necessary for
   # NIX_CFLAGS_COMPILE even).
   + lib.optionalString useBoehmgc ''
-      --prefix NIX_CFLAGS_COMPILE_${gcc.suffixSalt} ' ' "-I${lib.getDev boehmgc}/include" \
-      --prefix NIX_LDFLAGS_BEFORE_${gcc.bintools.suffixSalt} ' ' "-L${lib.getLib boehmgc}/lib" \
+    --prefix NIX_CFLAGS_COMPILE_${gcc.suffixSalt} ' ' "-I${lib.getDev boehmgc}/include" \
+    --prefix NIX_LDFLAGS_BEFORE_${gcc.bintools.suffixSalt} ' ' "-L${lib.getLib boehmgc}/lib" \
   '' + ''
-      --prefix NIX_LDFLAGS_BEFORE_${gcc.bintools.suffixSalt} ' ' "-L${lib.getLib libffi}/lib"
+    --prefix NIX_LDFLAGS_BEFORE_${gcc.bintools.suffixSalt} ' ' "-L${lib.getLib libffi}/lib"
   '';
 
   meta = with lib; {
-    inherit (s) version;
     description = "Lisp implementation aiming to be small, fast and easy to embed";
-    license = licenses.mit ;
-    maintainers = [ maintainers.raskin ];
+    license = licenses.mit;
+    maintainers = with maintainers; [ raskin ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/compilers/ecl/default.nix b/pkgs/development/compilers/ecl/default.nix
index 9d2ded48a37..c442364d198 100644
--- a/pkgs/development/compilers/ecl/default.nix
+++ b/pkgs/development/compilers/ecl/default.nix
@@ -1,40 +1,48 @@
-{lib, stdenv, fetchurl, fetchpatch
-, libtool, autoconf, automake
+{ lib
+, stdenv
+, fetchurl
+, fetchpatch
+, libtool
+, autoconf
+, automake
 , texinfo
-, gmp, mpfr, libffi, makeWrapper
+, gmp
+, mpfr
+, libffi
+, makeWrapper
 , noUnicode ? false
 , gcc
 , threadSupport ? true
-, useBoehmgc ? false, boehmgc
+, useBoehmgc ? false
+, boehmgc
 }:
-let
-  s = # Generated upstream information
-  rec {
-    baseName="ecl";
-    version="21.2.1";
-    name="${baseName}-${version}";
-    url="https://common-lisp.net/project/ecl/static/files/release/${name}.tgz";
-    sha256="000906nnq25177bgsfndiw3iqqgrjc9spk10hzk653sbz3f7anmi";
+
+stdenv.mkDerivation rec {
+  pname = "ecl";
+  version = "21.2.1";
+
+  src = fetchurl {
+    url = "https://common-lisp.net/project/ecl/static/files/release/ecl-${version}.tgz";
+    sha256 = "sha256-sVp13PhLj2LmhyDMqxOT+WEcB4/NOv3WOaEIbK0BCQA=";
   };
+
   nativeBuildInputs = [
-    libtool autoconf automake texinfo makeWrapper
+    libtool
+    autoconf
+    automake
+    texinfo
+    makeWrapper
   ];
   propagatedBuildInputs = [
-    libffi gmp mpfr gcc
+    libffi
+    gmp
+    mpfr
+    gcc
     # replaces ecl's own gc which other packages can depend on, thus propagated
   ] ++ lib.optionals useBoehmgc [
     # replaces ecl's own gc which other packages can depend on, thus propagated
     boehmgc
   ];
-in
-stdenv.mkDerivation {
-  inherit (s) version;
-  pname = s.baseName;
-  inherit nativeBuildInputs propagatedBuildInputs;
-
-  src = fetchurl {
-    inherit (s) url sha256;
-  };
 
   patches = [
     # https://gitlab.com/embeddable-common-lisp/ecl/-/merge_requests/1
@@ -70,9 +78,9 @@ stdenv.mkDerivation {
   meta = with lib; {
     description = "Lisp implementation aiming to be small, fast and easy to embed";
     homepage = "https://common-lisp.net/project/ecl/";
-    license = licenses.mit ;
-    maintainers = [ maintainers.raskin ];
+    license = licenses.mit;
+    maintainers = with maintainers; [ raskin ];
     platforms = platforms.unix;
-    changelog = "https://gitlab.com/embeddable-common-lisp/ecl/-/raw/${s.version}/CHANGELOG";
+    changelog = "https://gitlab.com/embeddable-common-lisp/ecl/-/raw/${version}/CHANGELOG";
   };
 }
diff --git a/pkgs/development/compilers/ecl/default.upstream b/pkgs/development/compilers/ecl/default.upstream
deleted file mode 100644
index eeb82cbfcab..00000000000
--- a/pkgs/development/compilers/ecl/default.upstream
+++ /dev/null
@@ -1,2 +0,0 @@
-url https://common-lisp.net/project/ecl/
-version_link '[.]tgz$'
diff --git a/pkgs/development/compilers/flutter/default.nix b/pkgs/development/compilers/flutter/default.nix
index 940b379173f..a91105adc33 100644
--- a/pkgs/development/compilers/flutter/default.nix
+++ b/pkgs/development/compilers/flutter/default.nix
@@ -4,20 +4,20 @@ let
   getPatches = dir:
     let files = builtins.attrNames (builtins.readDir dir);
     in map (f: dir + ("/" + f)) files;
-  version = "2.5.1";
+  version = "2.8.0";
   channel = "stable";
   filename = "flutter_linux_${version}-${channel}.tar.xz";
 
   # Decouples flutter derivation from dart derivation,
   # use specific dart version to not need to bump dart derivation when bumping flutter.
-  dartVersion = "2.14.2";
+  dartVersion = "2.15.0";
   dartSourceBase = "https://storage.googleapis.com/dart-archive/channels";
   dartForFlutter = dart.override {
     version = dartVersion;
     sources = {
       "${dartVersion}-x86_64-linux" = fetchurl {
         url = "${dartSourceBase}/stable/release/${dartVersion}/sdk/dartsdk-linux-x64-release.zip";
-        sha256 = "1gr2dr683kz0a0k6rcn4jcbxf9fr2xlzi5fcgn1lzrrxvys2lddx";
+        sha256 = "sha256-U1V1OPmFeNZCdBxFy7yqAbAE0cxh9f2UqKQmreJu9YA=";
       };
     };
   };
@@ -29,7 +29,7 @@ in {
     pname = "flutter";
     src = fetchurl {
       url = "https://storage.googleapis.com/flutter_infra_release/releases/${channel}/linux/${filename}";
-      sha256 = "12ycz7iasrc9p9c6zr95l6llyji3za43gsx8cmr2kjfiv23bcrv2";
+      sha256 = "sha256-sSz/owGdCMB5b9+cAWvLkrfFcIIq5665Xopd4JKv1G4=";
     };
     patches = getPatches ./patches;
   };
diff --git a/pkgs/development/compilers/flutter/patches/move-cache.patch b/pkgs/development/compilers/flutter/patches/move-cache.patch
index 2610c155804..533d2d5d8a6 100644
--- a/pkgs/development/compilers/flutter/patches/move-cache.patch
+++ b/pkgs/development/compilers/flutter/patches/move-cache.patch
@@ -1,62 +1,57 @@
 diff --git a/packages/flutter_tools/lib/src/asset.dart b/packages/flutter_tools/lib/src/asset.dart
-index 80fb16673f..5723f93f9f 100644
+index ed42baea29..fee2fb1d62 100644
 --- a/packages/flutter_tools/lib/src/asset.dart
 +++ b/packages/flutter_tools/lib/src/asset.dart
-@@ -7,6 +7,7 @@
- import 'package:meta/meta.dart';
- import 'package:package_config/package_config.dart';
- 
-+import 'base/common.dart';
- import 'base/context.dart';
- import 'base/deferred_component.dart';
- import 'base/file_system.dart';
-@@ -16,6 +17,7 @@ import 'build_info.dart';
- import 'cache.dart';
+@@ -11,11 +11,11 @@ import 'base/file_system.dart';
+ import 'base/logger.dart';
+ import 'base/platform.dart';
+ import 'build_info.dart';
+-import 'cache.dart';
  import 'convert.dart';
  import 'dart/package_map.dart';
-+import 'globals.dart' as globals;
  import 'devfs.dart';
  import 'flutter_manifest.dart';
++import 'globals.dart' as globals;
  import 'license_collector.dart';
-@@ -449,7 +451,7 @@ class ManifestAssetBundle implements AssetBundle {
-       for (final Map<String, Object> font in family['fonts'] as List<Map<String, Object>>) {
-         final Uri entryUri = _fileSystem.path.toUri(font['asset'] as String);
+ import 'project.dart';
+ 
+@@ -504,7 +504,7 @@ class ManifestAssetBundle implements AssetBundle {
+         }
+         final Uri entryUri = _fileSystem.path.toUri(asset);
          result.add(_Asset(
--          baseDir: _fileSystem.path.join(Cache.flutterRoot, 'bin', 'cache', 'artifacts', 'material_fonts'),
-+          baseDir: _fileSystem.path.join(globals.fsUtils.homeDirPath, '.cache', 'flutter', 'artifacts', 'material_fonts'),
+-          baseDir: _fileSystem.path.join(Cache.flutterRoot!, 'bin', 'cache', 'artifacts', 'material_fonts'),
++          baseDir: _fileSystem.path.join(globals.fsUtils.homeDirPath!, 'bin', 'cache', 'artifacts', 'material_fonts'),
            relativeUri: Uri(path: entryUri.pathSegments.last),
            entryUri: entryUri,
            package: null,
 diff --git a/packages/flutter_tools/lib/src/cache.dart b/packages/flutter_tools/lib/src/cache.dart
-index 152d4e75e5..1fcff7e2bd 100644
+index 7870c7807f..3fcf92f20d 100644
 --- a/packages/flutter_tools/lib/src/cache.dart
 +++ b/packages/flutter_tools/lib/src/cache.dart
-@@ -9,6 +9,7 @@ import 'package:file/memory.dart';
- import 'package:meta/meta.dart';
- import 'package:process/process.dart';
- 
+@@ -22,6 +22,7 @@ import 'base/user_messages.dart';
+ import 'build_info.dart';
+ import 'convert.dart';
+ import 'features.dart';
 +import 'globals.dart' as globals;
- import 'base/common.dart';
- import 'base/error_handling_io.dart';
- import 'base/file_system.dart';
-@@ -298,8 +299,15 @@ class Cache {
+ 
+ const String kFlutterRootEnvironmentVariableName = 'FLUTTER_ROOT'; // should point to //flutter/ (root of flutter/flutter repo)
+ const String kFlutterEngineEnvironmentVariableName = 'FLUTTER_ENGINE'; // should point to //engine/src/ (root of flutter/engine repo)
+@@ -302,8 +303,13 @@ class Cache {
        return;
      }
      assert(_lock == null);
-+
 +    final Directory dir = _fileSystem.directory(_fileSystem.path.join(globals.fsUtils.homeDirPath!, '.cache', 'flutter'));
 +    if (!dir.existsSync()) {
 +      dir.createSync(recursive: true);
 +      globals.os.chmod(dir, '755');
 +    }
-+
      final File lockFile =
 -      _fileSystem.file(_fileSystem.path.join(flutterRoot!, 'bin', 'cache', 'lockfile'));
 +      _fileSystem.file(_fileSystem.path.join(globals.fsUtils.homeDirPath!, '.cache', 'flutter', 'lockfile'));
      try {
        _lock = lockFile.openSync(mode: FileMode.write);
      } on FileSystemException catch (e) {
-@@ -404,7 +412,7 @@ class Cache {
+@@ -453,7 +459,7 @@ class Cache {
      if (_rootOverride != null) {
        return _fileSystem.directory(_fileSystem.path.join(_rootOverride!.path, 'bin', 'cache'));
      } else {
diff --git a/pkgs/development/compilers/gleam/default.nix b/pkgs/development/compilers/gleam/default.nix
index d97ab82b394..f9f0396ef07 100644
--- a/pkgs/development/compilers/gleam/default.nix
+++ b/pkgs/development/compilers/gleam/default.nix
@@ -2,13 +2,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "gleam";
-  version = "0.17.0";
+  version = "0.18.0";
 
   src = fetchFromGitHub {
     owner = "gleam-lang";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-HFcJUOfWMgMm+Sc3nAXW6FwXkiY34826QxMZ8rWPmnk=";
+    sha256 = "sha256-S7PYN0iiSXEApIG0Tyb/PJmKjHzjz3S+ToDy+pwPK18=";
   };
 
   nativeBuildInputs = [ pkg-config ];
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = [ openssl ] ++
     lib.optionals stdenv.isDarwin [ Security libiconv ];
 
-  cargoSha256 = "sha256-zjb+ERikMwC+ulfx6EW+FXLweZACwKNw4HEIc9dH3+4=";
+  cargoSha256 = "sha256-Q5WyKQ4HFOIL1KAQ0QvAbZfy+WRAWf9HxSvSabSz4W4=";
 
   meta = with lib; {
     description = "A statically typed language for the Erlang VM";
diff --git a/pkgs/development/compilers/idris2/default.nix b/pkgs/development/compilers/idris2/default.nix
index a8ac6431a4d..ee4d59b6878 100644
--- a/pkgs/development/compilers/idris2/default.nix
+++ b/pkgs/development/compilers/idris2/default.nix
@@ -79,7 +79,7 @@ stdenv.mkDerivation rec {
       --suffix IDRIS2_LIBS ':' "$out/${name}/lib" \
       --suffix IDRIS2_DATA ':' "$out/${name}/support" \
       --suffix IDRIS2_PATH ':' "${additionalIdris2Paths}" \
-      --suffix LD_LIBRARY_PATH ':' "$out/${name}/lib"
+      --suffix ${if stdenv.isDarwin then "DYLD_LIBRARY_PATH" else "LD_LIBRARY_PATH"} ':' "$out/${name}/lib"
   '';
 
   meta = {
diff --git a/pkgs/development/compilers/julia/1.6-bin.nix b/pkgs/development/compilers/julia/1.6-bin.nix
index abd2235189e..ece5a2a2471 100644
--- a/pkgs/development/compilers/julia/1.6-bin.nix
+++ b/pkgs/development/compilers/julia/1.6-bin.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "julia-bin";
-  version = "1.6.4";
+  version = "1.6.5";
 
   src = {
     x86_64-linux = fetchurl {
       url = "https://julialang-s3.julialang.org/bin/linux/x64/${lib.versions.majorMinor version}/julia-${version}-linux-x86_64.tar.gz";
-      sha256 = "0ci1dd8g1pgpp6j1v971zg8xpw120hdjblf9zcyhgs4pfvj4l92j";
+      sha256 = "0b4fmcfd5q5wzvasmsfqq838rivpxn274n5y2kza4m3jakp27zmq";
     };
   }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
 
diff --git a/pkgs/development/compilers/kotlin/default.nix b/pkgs/development/compilers/kotlin/default.nix
index 4a92fd87f26..82d7fe3237b 100644
--- a/pkgs/development/compilers/kotlin/default.nix
+++ b/pkgs/development/compilers/kotlin/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "kotlin";
-  version = "1.6.0";
+  version = "1.6.10";
 
   src = fetchurl {
     url = "https://github.com/JetBrains/kotlin/releases/download/v${version}/kotlin-compiler-${version}.zip";
-    sha256 = "sha256-F0yS4SpUwJAf2fC62s8VFMKLUZepVlTk2rF3UpPd4dw=";
+    sha256 = "sha256-QyJnmW0Na0sXyo3g+HjkTUoJm36fFYepjtxNJ+dsIVo=";
   };
 
   propagatedBuildInputs = [ jre ] ;
diff --git a/pkgs/development/compilers/kotlin/native.nix b/pkgs/development/compilers/kotlin/native.nix
index b1a50cdcf40..514293e5745 100644
--- a/pkgs/development/compilers/kotlin/native.nix
+++ b/pkgs/development/compilers/kotlin/native.nix
@@ -7,7 +7,7 @@
 
 stdenv.mkDerivation rec {
   pname = "kotlin-native";
-  version = "1.6.0";
+  version = "1.6.10";
 
   src = let
     getArch = {
@@ -20,9 +20,9 @@ stdenv.mkDerivation rec {
       "https://github.com/JetBrains/kotlin/releases/download/v${version}/kotlin-native-${arch}-${version}.tar.gz";
 
     getHash = arch: {
-      "macos-aarch64" = "sha256-HLI6E3Y8l/5vAgjT39ezBCEYhCGV3pdjx1B1fL57qO4=";
-      "macos-x86_64" = "sha256-cJV+dP9/pJHlJx55HMqd7KC/OIWEzPXKmobCZLBZ+ec=";
-      "linux-x86_64" = "sha256-C5R2hdPg1cOA9WcSZYkN22Ca3/pslEcp554tuy/HxnQ=";
+      "macos-aarch64" = "sha256-W+9F1YZ5ATa6KaALYQEXW4xr4UxfquuC72xoB2987iM=";
+      "macos-x86_64" = "sha256-pceORt+YJZiP67nbnUB6ny1ic/r0aTrdA2hsQi5Otp8=";
+      "linux-x86_64" = "sha256-tcZffJPcR6PYJ22wIh5BHn/yjG3Jb+MG5COLbAQ2/Ww=";
     }.${arch};
   in
     fetchurl {
diff --git a/pkgs/development/compilers/ldc/generic.nix b/pkgs/development/compilers/ldc/generic.nix
index 93ee83cb0ab..93423d5a1b2 100644
--- a/pkgs/development/compilers/ldc/generic.nix
+++ b/pkgs/development/compilers/ldc/generic.nix
@@ -132,6 +132,6 @@ stdenv.mkDerivation rec {
     # from https://github.com/ldc-developers/ldc/blob/master/LICENSE
     license = with licenses; [ bsd3 boost mit ncsa gpl2Plus ];
     maintainers = with maintainers; [ ThomasMader lionello ];
-    platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" "aarch64-darwin" ];
+    platforms = [ "x86_64-linux" "i686-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
   };
 }
diff --git a/pkgs/development/compilers/nextpnr/default.nix b/pkgs/development/compilers/nextpnr/default.nix
index ed64d9e6a66..16f0a8348d1 100644
--- a/pkgs/development/compilers/nextpnr/default.nix
+++ b/pkgs/development/compilers/nextpnr/default.nix
@@ -14,15 +14,15 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "nextpnr";
-  version = "2021.11.24"; # tagged as 0.1, but we'll keep tracking HEAD
+  version = "2021.15.21";
 
   srcs = [
     (fetchFromGitHub {
-      owner  = "YosysHQ";
-      repo   = "nextpnr";
-      rev    = "fd2d4a8f999947ece42f791e19ddc4c2d8b823f2";
-      sha256 = "sha256-bGh3svJeVRJO0rTnSYoTndeQrTENx6j9t+GCGX4RX4k=";
-      name   = "nextpnr";
+      owner = "YosysHQ";
+      repo  = "nextpnr";
+      rev   = "d04cfd5f0f6da184f5b8a03f0ce18fbd1d98eca3";
+      hash  = "sha256-gm/+kwIZ/m10+KuCJoK45F56nKZD3tM0myHwbFKIKAs=";
+      name  = "nextpnr";
     })
     (fetchFromGitHub {
       owner  = "YosysHQ";
diff --git a/pkgs/development/compilers/nim/default.nix b/pkgs/development/compilers/nim/default.nix
index c4be7c27d85..06b19b547b6 100644
--- a/pkgs/development/compilers/nim/default.nix
+++ b/pkgs/development/compilers/nim/default.nix
@@ -98,12 +98,12 @@ in {
 
   nim-unwrapped = stdenv.mkDerivation rec {
     pname = "nim-unwrapped";
-    version = "1.6.0";
+    version = "1.6.2";
     strictDeps = true;
 
     src = fetchurl {
       url = "https://nim-lang.org/download/nim-${version}.tar.xz";
-      hash = "sha256-UgZdSNcqcnAuwa/l96mDHhFnNTHiec3/nK7AGgfuxj0=";
+      hash = "sha256-msRxT6bDFdaR2n9diUHBsZDU1Dc5fZdC4yfC1RiT43M=";
     };
 
     buildInputs = [ boehmgc openssl pcre readline sqlite ];
diff --git a/pkgs/development/compilers/open-watcom/v2.nix b/pkgs/development/compilers/open-watcom/v2.nix
index da63df43d59..6cb5c6dcc10 100644
--- a/pkgs/development/compilers/open-watcom/v2.nix
+++ b/pkgs/development/compilers/open-watcom/v2.nix
@@ -1,6 +1,7 @@
 { stdenv
 , lib
 , fetchFromGitHub
+, unstableGitUpdater
 
 # Docs cause an immense increase in build time, up to 2 additional hours
 , withDocs ? false
@@ -11,14 +12,14 @@
 
 stdenv.mkDerivation rec {
   pname = "open-watcom-v2";
-  version = "unstable-2021-11-30";
+  version = "unstable-2021-12-10";
   name = "${pname}-unwrapped-${version}";
 
   src = fetchFromGitHub {
     owner = "open-watcom";
     repo = "open-watcom-v2";
-    rev = "982c958eb4840e1c6a98773ba0600f652500f5a7";
-    sha256 = "18dp9nd1gjnpd1870149v67vzxbna25l6zi052z1r51xvaqwc3cx";
+    rev = "ca685c1b780149f7210426f0bb78dd7b67b19e6d";
+    sha256 = "1nmmj94z5hips2426rcdqdcsm8015jjj51rm9fnx81qagdj52j5d";
   };
 
   postPatch = ''
@@ -82,6 +83,10 @@ stdenv.mkDerivation rec {
   # Stripping breaks many tools
   dontStrip = true;
 
+  passthru.updateScript = unstableGitUpdater {
+    url = "https://github.com/open-watcom/open-watcom-v2.git";
+  };
+
   meta = with lib; {
     description = "The v2 fork of the Open Watcom suite of compilers and tools";
     longDescription = ''
diff --git a/pkgs/development/compilers/open-watcom/wrapper.nix b/pkgs/development/compilers/open-watcom/wrapper.nix
index 423ce4b2647..94cca7ab34c 100644
--- a/pkgs/development/compilers/open-watcom/wrapper.nix
+++ b/pkgs/development/compilers/open-watcom/wrapper.nix
@@ -123,6 +123,8 @@ let
           '';
         };
       };
+
+      inherit (open-watcom) meta;
     };
 in
 lib.makeOverridable wrapper
diff --git a/pkgs/development/compilers/vlang/default.nix b/pkgs/development/compilers/vlang/default.nix
index 1535411149d..1786c54ac7e 100644
--- a/pkgs/development/compilers/vlang/default.nix
+++ b/pkgs/development/compilers/vlang/default.nix
@@ -2,22 +2,20 @@
 
 stdenv.mkDerivation rec {
   pname = "vlang";
-  version = "weekly.2021.25";
+  version = "weekly.2021.51";
 
   src = fetchFromGitHub {
     owner = "vlang";
     repo = "v";
     rev = version;
-    sha256 = "0y4a5rmpcdqina32d6azbmsbi3zqqfl413sicg72x6a1pm2vg33j";
+    sha256 = "1jvq3fxckl2jidiigkvclacjxbg5k38268mck7bl1ky1yspgfrnq";
   };
 
-  # V compiler source translated to C for bootstrap.
-  # Use matching v.c release commit for now, 0.1.21 release is not available.
   vc = fetchFromGitHub {
     owner = "vlang";
     repo = "vc";
-    rev = "3201d2dd2faadfa370da0bad2a749a664ad5ade3";
-    sha256 = "0xzkjdph5wfjr3qfkihgc27vsbbjh2l31rp8z2avq9hc531hwvrz";
+    rev = "c8ed2cd82b247e94c33217dba35c420cfc02fef3";
+    sha256 = "1acgx1qp480jmsv1xvqy1zf7iyy90mvg9x1m1b0zrwx09wz4y1cq";
   };
 
   propagatedBuildInputs = [ glfw freetype openssl ]
diff --git a/pkgs/development/compilers/yosys/default.nix b/pkgs/development/compilers/yosys/default.nix
index 4101f06a348..9c3d9179f7b 100644
--- a/pkgs/development/compilers/yosys/default.nix
+++ b/pkgs/development/compilers/yosys/default.nix
@@ -34,13 +34,13 @@
 
 stdenv.mkDerivation rec {
   pname   = "yosys";
-  version = "0.11+52";
+  version = "0.12+36";
 
   src = fetchFromGitHub {
     owner = "YosysHQ";
     repo  = "yosys";
-    rev   = "2be110cb0ba645f95f62ee01b6a6fa46a85d5b26";
-    hash  = "sha256-A1QKu6SbtpJJPF8/LA5SMUP3/+n5giM6rOYdc6vkl90=";
+    rev   = "60c3ea367c942459a95e610ed98f277ce46c0142";
+    hash  = "sha256-NcfhNUmb3IDG08XgS+NGbRLI8sn4aQkOA7RF7wucDug=";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/coq-modules/category-theory/default.nix b/pkgs/development/coq-modules/category-theory/default.nix
index d24cf147930..ae3f7e809fb 100644
--- a/pkgs/development/coq-modules/category-theory/default.nix
+++ b/pkgs/development/coq-modules/category-theory/default.nix
@@ -5,6 +5,8 @@ with lib; mkCoqDerivation {
   pname = "category-theory";
   owner = "jwiegley";
 
+  release."20211213".rev    = "449e30e929d56f6f90c22af2c91ffcc4d79837be";
+  release."20211213".sha256 = "sha256:0vgfmph5l1zn6j4b851rcm43s8y9r83swsz07rpzhmfg34pk0nl0";
   release."20210730".rev    = "d87937faaf7460bcd6985931ac36f551d67e11af";
   release."20210730".sha256 = "04x7433yvibxknk6gy4971yzb4saa3z4dnfy9n6irhyafzlxyf0f";
   release."20190414".rev    = "706fdb4065cc2302d92ac2bce62cb59713253119";
@@ -14,7 +16,7 @@ with lib; mkCoqDerivation {
 
   inherit version;
   defaultVersion = with versions; switch coq.coq-version [
-    { case = range "8.10" "8.13"; out = "20210730"; }
+    { case = range "8.10" "8.14"; out = "20211213"; }
     { case = range "8.8" "8.9"; out = "20190414"; }
     { case = range "8.6" "8.7"; out = "20180709"; }
   ] null;
diff --git a/pkgs/development/coq-modules/paco/default.nix b/pkgs/development/coq-modules/paco/default.nix
index 0a8bb78eeb7..d01bfbed721 100644
--- a/pkgs/development/coq-modules/paco/default.nix
+++ b/pkgs/development/coq-modules/paco/default.nix
@@ -5,9 +5,10 @@ with lib; mkCoqDerivation {
   owner = "snu-sf";
   inherit version;
   defaultVersion = with versions; switch coq.coq-version [
-    { case = range "8.6" "8.13"; out = "4.0.2"; }
+    { case = range "8.6" "8.13"; out = "4.1.1"; }
     { case = isEq "8.5";         out = "1.2.8"; }
   ] null;
+  release."4.1.1".sha256 = "1qap8cyv649lr1s11r7h5jzdjd4hsna8kph15qy5fw24h5nx6byy";
   release."4.0.2".sha256 = "1q96bsxclqx84xn5vkid501jkwlc1p6fhb8szrlrp82zglj58b0b";
   release."1.2.8".sha256 = "05fskx5x1qgaf9qv626m38y5izichzzqc7g2rglzrkygbskrrwsb";
   releaseRev = v: "v${v}";
diff --git a/pkgs/development/embedded/fpga/trellis/default.nix b/pkgs/development/embedded/fpga/trellis/default.nix
index 2289b6fb639..32a4bcdac07 100644
--- a/pkgs/development/embedded/fpga/trellis/default.nix
+++ b/pkgs/development/embedded/fpga/trellis/default.nix
@@ -1,25 +1,28 @@
 { lib, stdenv, fetchFromGitHub, python3, boost, cmake }:
 
 let
-  rev = "03e0070f263fbe31c247de61d259544722786210";
+  rev = "2f06397673bbca3da11928d538b8ab7d01c944c6";
   # git describe --tags
-  realVersion = "1.0-532-g${builtins.substring 0 7 rev}";
+  realVersion = "1.0-534-g${builtins.substring 0 7 rev}";
 in stdenv.mkDerivation rec {
   pname = "trellis";
-  version = "2021-09-01";
+  version = "2021-12-14";
 
   srcs = [
     (fetchFromGitHub {
        owner  = "YosysHQ";
        repo   = "prjtrellis";
        inherit rev;
-       sha256 = "joQMsjVj8d3M3IaqOkfVQ1I5qPDM8HHJiye+Ak8f3dg=";
+       hash   = "sha256-m5CalAIbzY2bhOvpBbPBeLZeDp+itk1HlRsSmtiddaA=";
        name   = "trellis";
      })
 
     (fetchFromGitHub {
       owner  = "YosysHQ";
       repo   = "prjtrellis-db";
+      # note: the upstream submodule points to revision 0ee729d20eaf,
+      # but that's just the tip of the branch that was merged into master.
+      # fdf4bf275a is the merge commit itself
       rev    = "fdf4bf275a7402654bc643db537173e2fbc86103";
       sha256 = "eDq2wU2pnfK9bOkEVZ07NQPv02Dc6iB+p5GTtVBiyQA=";
       name   = "trellis-database";
diff --git a/pkgs/development/embedded/platformio/core.nix b/pkgs/development/embedded/platformio/core.nix
index 7d586760548..711d31be365 100644
--- a/pkgs/development/embedded/platformio/core.nix
+++ b/pkgs/development/embedded/platformio/core.nix
@@ -9,6 +9,16 @@
 let
   python = python3.override {
     packageOverrides = self: super: {
+      aiofiles = super.aiofiles.overridePythonAttrs (oldAttrs: rec {
+        version = "0.8.0";
+        src = fetchFromGitHub {
+          owner = "Tinche";
+          repo = "aiofiles";
+          rev = "v${version}";
+          sha256 = "0mr9pzji4vqyf2yzh8yxz5q7fm8mgmkimx1xh49wh625m72pxcap";
+        };
+      });
+
       asgiref = super.asgiref.overridePythonAttrs (oldAttrs: rec {
         version = "3.4.1";
         src = fetchFromGitHub {
@@ -41,22 +51,12 @@ let
       });
 
       uvicorn = super.uvicorn.overridePythonAttrs (oldAttrs: rec {
-        version = "0.15.0";
+        version = "0.16.0";
         src = fetchFromGitHub {
           owner = "encode";
           repo = "uvicorn";
           rev = version;
-          sha256 = "074smp3448wcazlhc7sb8r54l4kfavr6yks3w5x60zl1qpijf52r";
-        };
-      });
-
-      zeroconf = super.zeroconf.overridePythonAttrs (oldAttrs: rec {
-        version = "0.36.13";
-        src = fetchFromGitHub {
-          owner = "jstasiak";
-          repo = "python-zeroconf";
-          rev = version;
-          sha256 = "aYNb67ESyz2Q2CKLhG+/Z8Xtt0Js8uf+xrVSEpY0X8c=";
+          sha256 = "14jih6j4q2qp5c9rgl798i5p51b4y6zkkj434q2l1naw0csphk4s";
         };
       });
     };
diff --git a/pkgs/development/embedded/platformio/default.nix b/pkgs/development/embedded/platformio/default.nix
index ab2b989696c..5bbc5491636 100644
--- a/pkgs/development/embedded/platformio/default.nix
+++ b/pkgs/development/embedded/platformio/default.nix
@@ -4,14 +4,14 @@
 let
   callPackage = newScope self;
 
-  version = "5.2.3";
+  version = "5.2.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 = "0wbmwawn25srkyrd6hwrgli1himzsj08vbm76fgnpqdc84n78ckl";
+    sha256 = "1dhyxrdxrca669qm6alxxn2jmvcwlpqrx9kfwh4iqy9za5717ag9";
   };
 
   self = {
diff --git a/pkgs/development/embedded/platformio/use-local-spdx-license-list.patch b/pkgs/development/embedded/platformio/use-local-spdx-license-list.patch
index e8239150f38..b5601890285 100644
--- a/pkgs/development/embedded/platformio/use-local-spdx-license-list.patch
+++ b/pkgs/development/embedded/platformio/use-local-spdx-license-list.patch
@@ -6,7 +6,7 @@ index 416dccfd..896c3649 100644
      @staticmethod
      @memoized(expire="1h")
      def load_spdx_licenses():
--        version = "3.14"
+-        version = "3.15"
 -        spdx_data_url = (
 -            "https://raw.githubusercontent.com/spdx/license-list-data/"
 -            "v%s/json/licenses.json" % version
diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix
index b99e50a934d..4ad099ff93a 100644
--- a/pkgs/development/haskell-modules/configuration-common.nix
+++ b/pkgs/development/haskell-modules/configuration-common.nix
@@ -54,6 +54,16 @@ self: super: {
   ghc-datasize = disableLibraryProfiling super.ghc-datasize;
   ghc-vis = disableLibraryProfiling super.ghc-vis;
 
+  # `pinch`s test suite uses a function called `openSocket` that's available
+  # in `network` versions 3.1.2.0 and bigger.
+  # There's an open PR updating the lower bound for `network`:
+  # > https://github.com/abhinav/pinch/pull/46
+  # With that said version tracked for `network` right now is 3.1.1.1 so we're
+  # replacing the network pinch uses with `network_3_1_2_5` for now.
+  pinch = super.pinch.overrideScope (self : super: {
+    network = self.network_3_1_2_5;
+  });
+
   # We can remove this once fakedata version gets to 1.0.1 as the test suite
   # works fine there.
   fakedata = dontCheck super.fakedata;
@@ -967,6 +977,13 @@ self: super: {
   # dontCheck: use of non-standard strptime "%s" which musl doesn't support; only used in test
   unix-time = if pkgs.stdenv.hostPlatform.isMusl then dontCheck super.unix-time else super.unix-time;
 
+  # hslua has tests that appear to break when using musl.
+  # https://github.com/hslua/hslua/issues/106
+  # Note that hslua is currently version 1.3.  However, in the latest version
+  # (>= 2.0), hslua has been split into multiple packages and this override
+  # will likely need to be moved to the hslua-core package.
+  hslua = if pkgs.stdenv.hostPlatform.isMusl then dontCheck super.hslua else super.hslua;
+
   # The test suite runs for 20+ minutes on a very fast machine, which feels kinda disproportionate.
   prettyprinter = dontCheck super.prettyprinter;
   brittany = doJailbreak (dontCheck super.brittany);  # Outdated upperbound on ghc-exactprint: https://github.com/lspitzner/brittany/issues/342
@@ -1349,21 +1366,21 @@ self: super: {
     resource-pool = self.hasura-resource-pool;
     ekg-core = self.hasura-ekg-core;
     ekg-json = self.hasura-ekg-json;
-    hspec = dontCheck self.hspec_2_9_3;
-    hspec-core = dontCheck self.hspec-core_2_9_3;
-    hspec-discover = dontCheck super.hspec-discover_2_9_3;
+    hspec = dontCheck self.hspec_2_9_4;
+    hspec-core = dontCheck self.hspec-core_2_9_4;
+    hspec-discover = dontCheck super.hspec-discover_2_9_4;
     tasty-hspec = self.tasty-hspec_1_2;
   }));
   hasura-ekg-core = doJailbreak (super.hasura-ekg-core.overrideScope (self: super: {
-    hspec = dontCheck self.hspec_2_9_3;
-    hspec-core = dontCheck self.hspec-core_2_9_3;
-    hspec-discover = dontCheck super.hspec-discover_2_9_3;
+    hspec = dontCheck self.hspec_2_9_4;
+    hspec-core = dontCheck self.hspec-core_2_9_4;
+    hspec-discover = dontCheck super.hspec-discover_2_9_4;
   }));
   hasura-ekg-json = super.hasura-ekg-json.overrideScope (self: super: {
     ekg-core = self.hasura-ekg-core;
-    hspec = dontCheck self.hspec_2_9_3;
-    hspec-core = dontCheck self.hspec-core_2_9_3;
-    hspec-discover = dontCheck super.hspec-discover_2_9_3;
+    hspec = dontCheck self.hspec_2_9_4;
+    hspec-core = dontCheck self.hspec-core_2_9_4;
+    hspec-discover = dontCheck super.hspec-discover_2_9_4;
   });
   pg-client = overrideCabal (drv: {
     librarySystemDepends = with pkgs; [ postgresql krb5.dev openssl.dev ];
@@ -1695,12 +1712,16 @@ self: super: {
   # Issue reported upstream, no bug tracker url yet.
   darcs = doJailbreak super.darcs;
 
-  # Too strict version bounds on base16-bytestring and http-link-header.
-  # This patch will be merged when next release comes.
-  github = appendPatch (pkgs.fetchpatch {
-    url = "https://github.com/phadej/github/commit/514b175851dd7c4a9722ff203dd6f652a15d33e8.patch";
-    sha256 = "0pmx54xd7ah85y9mfi5366wbnwrp918j0wbx8yw8hrdac92qi4gh";
-  }) super.github;
+  nix-thunk = appendPatches [
+    (pkgs.fetchpatch {
+      url = "https://github.com/obsidiansystems/nix-thunk/commit/49d27a85dd39cd9413c99958c67e596756a502b5.patch";
+      sha256 = "1p1n0123yrbdqyfk4kx3gq6bdv65l1bxgbsg51ckcwclg54xp2p5";
+    })
+    (pkgs.fetchpatch {
+      url = "https://github.com/obsidiansystems/nix-thunk/commit/512867c651977265d5d8f456b538f7a364ec8a8b.patch";
+      sha256 = "121yg26y4g28k8xv7y1j6c3pxm17vsjn3vi62kkc8g928c47yd02";
+    })
+  ] super.nix-thunk;
 
   # list `modbus` in librarySystemDepends, correct to `libmodbus`
   libmodbus = overrideCabal (drv: {
@@ -1866,27 +1887,22 @@ self: super: {
 
   # Build haskell-ci from git repository, including some useful fixes,
   # e. g. required for generating the workflows for the cabal2nix repository
-  haskell-ci-unstable = (overrideSrc {
-    version = "0.13.20211011";
+  haskell-ci-unstable = (overrideSrc rec {
+    version = "0.13.20211116-${builtins.substring 0 7 src.rev}";
     src = pkgs.fetchFromGitHub {
       owner = "haskell-CI";
       repo = "haskell-ci";
-      rev = "c88e67e675bc4a990da53863c7fb42e67bcf9847";
-      sha256 = "1zhv1cg047lfyxfs3mvc73vv96pn240zaj7f2yl4lw5yj6y5rfk9";
+      rev = "b61df11e7f6010ce09920c231321ab1545a990b5";
+      sha256 = "0v6mqpavz5v161milq6a3x9gzap0pgksd3h4rwi2s3f9b15sczcy";
     };
   } super.haskell-ci).overrideScope (self: super: {
-    attoparsec = self.attoparsec_0_14_2;
+    attoparsec = self.attoparsec_0_14_3;
     Cabal = self.Cabal_3_6_2_0;
   });
 
-  Frames-streamly = overrideCabal (drv: {
-    # https://github.com/adamConnerSax/Frames-streamly/issues/1
-    patchPhase = ''
-cat > example_data/acs100k.csv <<EOT
-"YEAR","REGION","STATEFIP","DENSITY","METRO","PUMA","PERWT","SEX","AGE","RACE","RACED","HISPAN","HISPAND","CITIZEN","LANGUAGE","LANGUAGED","SPEAKENG","EDUC","EDUCD","GRADEATT","GRADEATTD","EMPSTAT","EMPSTATD","INCTOT","INCSS","POVERTY"
-2006,32,1,409.6,3,2300,87.0,1,47,1,100,0,0,0,1,100,3,6,65,0,0,1,12,36000,0,347
-EOT
-    ''; }) (super.Frames-streamly.override { relude = super.relude_1_0_0_1; });
+  Frames-streamly = super.Frames-streamly.override {
+    relude = super.relude_1_0_0_1;
+  };
 
   # 2021-05-09: compilation requires patches from master,
   # remove at next release (current is 0.1.0.4).
@@ -2095,9 +2111,9 @@ EOT
   # Jailbreak isn't sufficient, but this is ok as it's a leaf package.
   hadolint = super.hadolint.overrideScope (self: super: {
     language-docker = self.language-docker_10_4_0;
-    hspec = dontCheck self.hspec_2_9_3;
-    hspec-core = dontCheck self.hspec-core_2_9_3;
-    hspec-discover = dontCheck self.hspec-discover_2_9_3;
+    hspec = dontCheck self.hspec_2_9_4;
+    hspec-core = dontCheck self.hspec-core_2_9_4;
+    hspec-discover = dontCheck self.hspec-discover_2_9_4;
     colourista = doJailbreak super.colourista;
   });
 
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 9bbfa35d867..8a42854be78 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix
@@ -49,7 +49,6 @@ 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;
diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix
index fab62efb46f..30cc6fb9efe 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix
@@ -83,7 +83,7 @@ self: super: {
   # Jailbreaks & Version Updates
   assoc = doJailbreak super.assoc;
   async = doJailbreak super.async;
-  attoparsec = super.attoparsec_0_14_2;
+  attoparsec = super.attoparsec_0_14_3;
   base64-bytestring = doJailbreak super.base64-bytestring;
   base-compat = self.base-compat_0_12_1;
   base-compat-batteries = self.base-compat-batteries_0_12_1;
@@ -209,9 +209,22 @@ self: super: {
   # Tests have a circular dependency on quickcheck-instances
   text-short = dontCheck super.text-short_0_1_4;
 
-  # hlint 3.3 needs a ghc-lib-parser newer than the one from stackage
-  hlint = super.hlint_3_3_4.overrideScope (self: super: {
+  # Use hlint from git for GHC 9.2.1 support
+  hlint = overrideCabal {
+    version = "unstable-2021-12-12";
+    src = pkgs.fetchFromGitHub {
+      owner = "ndmitchell";
+      repo = "hlint";
+      rev = "77a9702e10b772a7695c08682cd4f450fd0e9e46";
+      sha256 = "0hpp3iw7m7w2abr8vb86gdz3x6c8lj119zxln933k90ia7bmk8jc";
+    };
+    revision = null;
+    editedCabalFile = null;
+  } (super.hlint_3_3_4.overrideScope (self: super: {
     ghc-lib-parser = self.ghc-lib-parser_9_2_1_20211101;
     ghc-lib-parser-ex = self.ghc-lib-parser-ex_9_2_0_1;
-  });
+  }));
+
+  # https://github.com/sjakobi/bsb-http-chunked/issues/38
+  bsb-http-chunked = dontCheck super.bsb-http-chunked;
 }
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml
index fc9a0d3e3f4..1f7f15924a3 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml
@@ -1688,7 +1688,6 @@ broken-packages:
   - git-cuk
   - git-date
   - gitdo
-  - github
   - github-backup
   - github-data
   - github-tools
@@ -2435,7 +2434,6 @@ broken-packages:
   - htssets
   - http2-client
   - http2-grpc-proto-lens
-  - http3
   - http-attoparsec
   - http-client-lens
   - http-client-request-modifiers
@@ -3177,7 +3175,6 @@ broken-packages:
   - monad-mersenne-random
   - monad-mock
   - monad-open
-  - Monadoro
   - monad-parallel-progressbar
   - monad-param
   - monad-persist
@@ -3386,7 +3383,6 @@ broken-packages:
   - nix-freeze-tree
   - nixfromnpm
   - nixpkgs-update
-  - nix-thunk
   - nix-tools
   - nkjp
   - nlp-scores
@@ -3728,7 +3724,6 @@ broken-packages:
   - pi-forall
   - pig
   - pi-hoole
-  - pinch
   - pinchot
   - Pipe
   - pipes-async
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml
index f5607d28fea..059803b3b95 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml
@@ -2241,7 +2241,6 @@ dont-distribute-packages:
  - nomyx-language
  - nomyx-library
  - nomyx-server
- - notifications-tray-icon
  - notmuch-haskell
  - notmuch-web
  - numeric-ode
@@ -2275,8 +2274,6 @@ dont-distribute-packages:
  - openpgp-Crypto
  - openpgp-crypto-api
  - openssh-github-keys
- - opentracing-jaeger
- - opentracing-zipkin-v1
  - optima-for-hasql
  - optimal-blocks
  - optimusprime
@@ -2729,7 +2726,6 @@ dont-distribute-packages:
  - servant-ede
  - servant-event-stream
  - servant-examples
- - servant-github-webhook
  - servant-http2-client
  - servant-matrix-param
  - servant-polysemy
diff --git a/pkgs/development/haskell-modules/configuration-nix.nix b/pkgs/development/haskell-modules/configuration-nix.nix
index df3c42b5de3..19ceea97874 100644
--- a/pkgs/development/haskell-modules/configuration-nix.nix
+++ b/pkgs/development/haskell-modules/configuration-nix.nix
@@ -502,12 +502,15 @@ self: super: builtins.intersectAttrs super {
     postPatch = ''
       sed -i -e 's|"abc"|"${pkgs.abc-verifier}/bin/abc"|' Data/SBV/Provers/ABC.hs
       sed -i -e 's|"boolector"|"${pkgs.boolector}/bin/boolector"|' Data/SBV/Provers/Boolector.hs
-      sed -i -e 's|"cvc4"|"${pkgs.cvc4}/bin/cvc4"|' Data/SBV/Provers/CVC4.hs
       sed -i -e 's|"yices-smt2"|"${pkgs.yices}/bin/yices-smt2"|' Data/SBV/Provers/Yices.hs
       sed -i -e 's|"z3"|"${pkgs.z3}/bin/z3"|' Data/SBV/Provers/Z3.hs
-
+    '' + (if pkgs.stdenv.isAarch64 then ''
+      sed -i -e 's|\[abc, boolector, cvc4, mathSAT, yices, z3, dReal\]|[abc, boolector, yices, z3]|' SBVTestSuite/SBVConnectionTest.hs
+    ''
+    else ''
+      sed -i -e 's|"cvc4"|"${pkgs.cvc4}/bin/cvc4"|' Data/SBV/Provers/CVC4.hs
       sed -i -e 's|\[abc, boolector, cvc4, mathSAT, yices, z3, dReal\]|[abc, boolector, cvc4, yices, z3]|' SBVTestSuite/SBVConnectionTest.hs
-   '';
+    '');
   }) super.sbv;
 
   # The test-suite requires a running PostgreSQL server.
diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix
index 57c5cc277f4..54c21370d92 100644
--- a/pkgs/development/haskell-modules/hackage-packages.nix
+++ b/pkgs/development/haskell-modules/hackage-packages.nix
@@ -13913,8 +13913,6 @@ self: {
        testHaskellDepends = [ ansi-terminal base doctest hspec time ];
        description = "A minimalistic CLI Pomodoro timer";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Monaris" = callPackage
@@ -25584,8 +25582,8 @@ self: {
      }:
      mkDerivation {
        pname = "aeson-value-parser";
-       version = "0.19.4.1";
-       sha256 = "0bg4jwb6d6gyvhfzvrlj7snaga077pmfxnanirzqiqjf14g6hcif";
+       version = "0.19.5";
+       sha256 = "0jigygl5vmprs8ngjiz2sz9xyqn7x6nqdljgazy0x1hhs33mdskp";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring hashable megaparsec mtl scientific
          text transformers unordered-containers vector
@@ -35002,8 +35000,8 @@ self: {
      }:
      mkDerivation {
        pname = "atlassian-connect-core";
-       version = "0.8.2.0";
-       sha256 = "06wrbz8r4yc6spjrawqrdsc1nf3bc5nr40ssnrmyv00xzkhvjq2j";
+       version = "0.10.0.1";
+       sha256 = "1cx3lzfblh5sq5q174bgjpcg42c2359870bbzws6br9sflwmcy23";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson atlassian-connect-descriptor base base64-bytestring
@@ -35573,7 +35571,7 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "attoparsec_0_14_2" = callPackage
+  "attoparsec_0_14_3" = callPackage
     ({ mkDerivation, array, base, bytestring, case-insensitive
      , containers, criterion, deepseq, directory, filepath, ghc-prim
      , http-types, parsec, QuickCheck, quickcheck-unicode, scientific
@@ -35582,10 +35580,8 @@ self: {
      }:
      mkDerivation {
        pname = "attoparsec";
-       version = "0.14.2";
-       sha256 = "157lc8s6a8jw4s8w1a1rylxlggsa6lyq239na8ix3czmi79g3jwz";
-       revision = "2";
-       editedCabalFile = "10p0bic82q0yhhyaanj1rdwmms1wql11dnni5mhpk45dv3f5icvj";
+       version = "0.14.3";
+       sha256 = "1j7sy24d7kf9qb99cr36zchb4gsj3gcy4yflawxqnng31lqdxjal";
        libraryHaskellDepends = [
          array base bytestring containers deepseq ghc-prim scientific text
          transformers
@@ -35817,8 +35813,8 @@ self: {
     ({ mkDerivation, attoparsec, base, bytestring, text, time }:
      mkDerivation {
        pname = "attoparsec-time";
-       version = "1.0.1.2";
-       sha256 = "1pc4dy4d6q11cfmgrg41h2nm34vgnnarah85gnwbd6x48cissrpp";
+       version = "1.0.2";
+       sha256 = "074hbgwv5f0fnrrnak07wd572b3kjwqn4x4w8wsh7a515ndmhick";
        libraryHaskellDepends = [ attoparsec base bytestring text time ];
        description = "Attoparsec parsers of time";
        license = lib.licenses.mit;
@@ -44086,8 +44082,8 @@ self: {
        pname = "bitwise";
        version = "1.0.0.1";
        sha256 = "03xyzdkyb99gvm9g5chl07rqbnm7qrxba7wgmrfmal0rkwm0ibkn";
-       revision = "4";
-       editedCabalFile = "0fjcz8239fagjb4pc42digg511rjaz9r8j8fcvcb6ncxijg7g694";
+       revision = "5";
+       editedCabalFile = "0qfg5kwpavyikgyazwz8mwaykw5j6f3b1i5m0khdja4jbb3f1h04";
        libraryHaskellDepends = [ array base bytestring ];
        testHaskellDepends = [ base QuickCheck ];
        benchmarkHaskellDepends = [ array base bytestring criterion ];
@@ -67412,6 +67408,44 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "criterion_1_5_12_0" = callPackage
+    ({ mkDerivation, aeson, ansi-wl-pprint, base, base-compat
+     , base-compat-batteries, binary, binary-orphans, bytestring
+     , cassava, code-page, containers, criterion-measurement, deepseq
+     , directory, exceptions, filepath, Glob, HUnit, js-chart
+     , microstache, mtl, mwc-random, optparse-applicative, parsec
+     , QuickCheck, statistics, tasty, tasty-hunit, tasty-quickcheck
+     , text, time, transformers, transformers-compat, vector
+     , vector-algorithms
+     }:
+     mkDerivation {
+       pname = "criterion";
+       version = "1.5.12.0";
+       sha256 = "0wrb48byp906f9wc9ii2mi2b2k008ycbi8ffrrj86plhp5rpvzz5";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson ansi-wl-pprint base base-compat-batteries binary
+         binary-orphans bytestring cassava code-page containers
+         criterion-measurement deepseq directory exceptions filepath Glob
+         js-chart microstache mtl mwc-random optparse-applicative parsec
+         statistics text time transformers transformers-compat vector
+         vector-algorithms
+       ];
+       executableHaskellDepends = [
+         base base-compat-batteries optparse-applicative
+       ];
+       testHaskellDepends = [
+         aeson base base-compat base-compat-batteries bytestring deepseq
+         directory HUnit QuickCheck statistics tasty tasty-hunit
+         tasty-quickcheck vector
+       ];
+       description = "Robust, reliable performance measurement and analysis";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "criterion-cmp" = callPackage
     ({ mkDerivation, ansi-terminal, base, boxes, bytestring, cassava
      , containers, filepath, optparse-applicative, vector
@@ -94189,14 +94223,14 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "filepath-bytestring_1_4_2_1_9" = callPackage
+  "filepath-bytestring_1_4_2_1_10" = callPackage
     ({ mkDerivation, base, bytestring, criterion, filepath, QuickCheck
      , unix
      }:
      mkDerivation {
        pname = "filepath-bytestring";
-       version = "1.4.2.1.9";
-       sha256 = "1djbx4mxkzmbi6l44r4ag482r71hwd5s22fj2myz6c128lfrvlk7";
+       version = "1.4.2.1.10";
+       sha256 = "0nwfyld4ajikiinppkc0a92bbjnr1bcnpb6llg6k7av61xrv72ar";
        libraryHaskellDepends = [ base bytestring unix ];
        testHaskellDepends = [ base bytestring filepath QuickCheck ];
        benchmarkHaskellDepends = [ base criterion filepath ];
@@ -97850,12 +97884,13 @@ self: {
   "fortran-src" = callPackage
     ({ mkDerivation, alex, array, base, binary, bytestring, containers
      , deepseq, directory, fgl, filepath, GenericPretty, happy, hspec
-     , hspec-discover, mtl, pretty, temporary, text, uniplate
+     , hspec-discover, mtl, pretty, QuickCheck, temporary, text
+     , uniplate
      }:
      mkDerivation {
        pname = "fortran-src";
-       version = "0.6.1";
-       sha256 = "1d07ih8bcij71x4b5nwd4fk12cmmigpzcf98fixgayrkcvmnckzg";
+       version = "0.7.0";
+       sha256 = "1ngh156qyaha44ghisb3h8c2lxik0i6g0a46nq2fhif70r5piqw6";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -97869,10 +97904,11 @@ self: {
        ];
        testHaskellDepends = [
          array base binary bytestring containers deepseq directory fgl
-         filepath GenericPretty hspec mtl pretty temporary text uniplate
+         filepath GenericPretty hspec mtl pretty QuickCheck temporary text
+         uniplate
        ];
        testToolDepends = [ hspec-discover ];
-       description = "Parsers and analyses for Fortran standards 66, 77, 90 and 95";
+       description = "Parsers and analyses for Fortran standards 66, 77, 90, 95 and 2003 (partial)";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
        broken = true;
@@ -106462,6 +106498,19 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "ghc-trace-events_0_1_2_4" = callPackage
+    ({ mkDerivation, base, bytestring, tasty-bench, text }:
+     mkDerivation {
+       pname = "ghc-trace-events";
+       version = "0.1.2.4";
+       sha256 = "1wwpq89bvgzfzrzvidyqk2953hcc9p9xz0vrb62vhgs6k885b90n";
+       libraryHaskellDepends = [ base bytestring text ];
+       benchmarkHaskellDepends = [ base bytestring tasty-bench ];
+       description = "Faster traceEvent and traceMarker, and binary object logging for eventlog";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "ghc-typelits-extra" = callPackage
     ({ mkDerivation, base, containers, ghc, ghc-prim
      , ghc-tcplugins-extra, ghc-typelits-knownnat
@@ -110169,8 +110218,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Access to the GitHub API, v3";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "github-backup" = callPackage
@@ -122700,8 +122747,8 @@ self: {
      }:
      mkDerivation {
        pname = "has-transformers";
-       version = "0.1.0.2";
-       sha256 = "0zgiw37x1f6p9awy6ikbqld1lb9mi4i1b0qvi2l5kwr2f4n7d5w9";
+       version = "0.1.0.3";
+       sha256 = "0mrz11hxm7nyxyirfz8f63w1mxf3snprrxvh2vvhmmi8p3wlay6n";
        libraryHaskellDepends = [ base transformers ];
        testHaskellDepends = [ base hspec operational ];
        testToolDepends = [ hspec-discover ];
@@ -144147,14 +144194,14 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "hspec_2_9_3" = callPackage
+  "hspec_2_9_4" = callPackage
     ({ mkDerivation, base, hspec-core, hspec-discover
      , hspec-expectations, QuickCheck
      }:
      mkDerivation {
        pname = "hspec";
-       version = "2.9.3";
-       sha256 = "0mb3gwalfrl93mrmqflxb1xwyaw46w598z1kg6s8fasn02mcfh6s";
+       version = "2.9.4";
+       sha256 = "1s009dn0hkqfn5c0y0xfja18wps430f2dkga9mfrrndhvlvx8fm3";
        libraryHaskellDepends = [
          base hspec-core hspec-discover hspec-expectations QuickCheck
        ];
@@ -144245,7 +144292,7 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "hspec-core_2_9_3" = callPackage
+  "hspec-core_2_9_4" = callPackage
     ({ mkDerivation, ansi-terminal, array, base, base-orphans
      , call-stack, clock, deepseq, directory, filepath, ghc, ghc-boot-th
      , hspec-expectations, hspec-meta, HUnit, process, QuickCheck
@@ -144254,8 +144301,8 @@ self: {
      }:
      mkDerivation {
        pname = "hspec-core";
-       version = "2.9.3";
-       sha256 = "1g4wmkfgq1v8ncdqyyxjnl0p8ymqdkrvpnhp0sx03snnz032c4bm";
+       version = "2.9.4";
+       sha256 = "0bkr2hywmlawyyrp27xgfd4a080bk1i5kj81hcxbg2w8y0i7r0w4";
        libraryHaskellDepends = [
          ansi-terminal array base call-stack clock deepseq directory
          filepath ghc ghc-boot-th hspec-expectations HUnit QuickCheck
@@ -144312,14 +144359,14 @@ self: {
        maintainers = with lib.maintainers; [ maralorn ];
      }) {};
 
-  "hspec-discover_2_9_3" = callPackage
+  "hspec-discover_2_9_4" = callPackage
     ({ mkDerivation, base, directory, filepath, hspec-meta, mockery
      , QuickCheck
      }:
      mkDerivation {
        pname = "hspec-discover";
-       version = "2.9.3";
-       sha256 = "0m6jzz5sxwv79w1bzv9ik2mm0gg2a1b3fgvgmpfh60yml586n3hw";
+       version = "2.9.4";
+       sha256 = "16y3z6f32bbnkxw142y90hs0512rh2mp9904ffahmag9m95qfbnv";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base directory filepath ];
@@ -147213,6 +147260,26 @@ self: {
        broken = true;
      }) {};
 
+  "http-directory_0_1_9" = callPackage
+    ({ mkDerivation, base, bytestring, hspec, html-conduit, http-client
+     , http-client-tls, http-conduit, http-date, http-types, network-uri
+     , text, time, xml-conduit
+     }:
+     mkDerivation {
+       pname = "http-directory";
+       version = "0.1.9";
+       sha256 = "0hvrajwap7ilqi6ika0vd3hf83k1p3wr3ck6bvz8kayim8ih7apz";
+       libraryHaskellDepends = [
+         base bytestring html-conduit http-client http-client-tls
+         http-conduit http-date http-types network-uri text time xml-conduit
+       ];
+       testHaskellDepends = [ base hspec text ];
+       description = "http directory listing library";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "http-dispatch" = callPackage
     ({ mkDerivation, aeson, base, base64-bytestring, bytestring
      , case-insensitive, hspec, http-client, http-client-tls, http-types
@@ -148007,8 +148074,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "HTTP/3 library";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "httpd-shed" = callPackage
@@ -148840,14 +148905,14 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "hvega_0_12_0_0" = callPackage
+  "hvega_0_12_0_1" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, base, bytestring, containers
      , filepath, tasty, tasty-golden, text, unordered-containers
      }:
      mkDerivation {
        pname = "hvega";
-       version = "0.12.0.0";
-       sha256 = "1zb79dbnznp1y08a497kgc423c7zmppz0qkfb04bnmffcp1p1ymn";
+       version = "0.12.0.1";
+       sha256 = "078q38v39n7gcn0br598d9sfdk256jg8m1k5pi6w0asg0yd1bdyh";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ aeson base text unordered-containers ];
@@ -152512,8 +152577,8 @@ self: {
     ({ mkDerivation, aeson, base, hvega, ihaskell, text }:
      mkDerivation {
        pname = "ihaskell-hvega";
-       version = "0.4.0.0";
-       sha256 = "0sdgrlirnjb1bg6l5a6k3y084q3jddl08h032m0smaalvzcyl21b";
+       version = "0.5.0.0";
+       sha256 = "0nk38bz8rxj42gqchffdh25cr94fadlid7azzp7i9lxi63gq67wx";
        libraryHaskellDepends = [ aeson base hvega ihaskell text ];
        description = "IHaskell display instance for hvega types";
        license = lib.licenses.bsd3;
@@ -155644,8 +155709,8 @@ self: {
      }:
      mkDerivation {
        pname = "interval-algebra";
-       version = "1.1.0";
-       sha256 = "16xx8fw7xf8rrji9n34r3xchjpd6sh3wnlbz70a3mhbdl3yp55vq";
+       version = "1.1.1";
+       sha256 = "1nqp0sj89vaq4cyfnpfj94xa4yvs6k2hsihw4gypwbmpmbsflwd7";
        libraryHaskellDepends = [
          base containers foldl QuickCheck safe time witherable
        ];
@@ -195944,8 +196009,6 @@ self: {
        ];
        description = "Lightweight dependency management with Nix";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "nix-tools" = callPackage
@@ -197045,7 +197108,6 @@ self: {
        platforms = [
          "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
        ];
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "notmuch" = callPackage
@@ -201173,7 +201235,6 @@ self: {
        ];
        description = "Jaeger backend for OpenTracing";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "opentracing-wai" = callPackage
@@ -201215,7 +201276,6 @@ self: {
        ];
        description = "Zipkin V1 backend for OpenTracing";
        license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "opentracing-zipkin-v2" = callPackage
@@ -211179,8 +211239,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "An alternative implementation of Thrift for Haskell";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pinch-gen" = callPackage
@@ -244064,7 +244122,6 @@ self: {
        ];
        description = "Servant combinators to facilitate writing GitHub webhooks";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "servant-haxl-client" = callPackage
@@ -259398,12 +259455,12 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "stm_2_5_0_1" = callPackage
+  "stm_2_5_0_2" = callPackage
     ({ mkDerivation, array, base }:
      mkDerivation {
        pname = "stm";
-       version = "2.5.0.1";
-       sha256 = "1fipf3bbk34mbld1apwnq6kbjxbrz2nc9cxxmhkk2bdcc2z4y7j5";
+       version = "2.5.0.2";
+       sha256 = "1x5kj5jn6c3jc5asipiai9zp6fzkqcqrh8j2imclyls1nybccjm0";
        libraryHaskellDepends = [ array base ];
        description = "Software Transactional Memory";
        license = lib.licenses.bsd3;
@@ -288894,6 +288951,27 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "versions_5_0_1" = callPackage
+    ({ mkDerivation, base, deepseq, hashable, megaparsec, microlens
+     , parser-combinators, QuickCheck, tasty, tasty-hunit
+     , tasty-quickcheck, text
+     }:
+     mkDerivation {
+       pname = "versions";
+       version = "5.0.1";
+       sha256 = "0m7c0iiws3j716a5wksv9dxfcsz6dlvpw147m7ah2b8pfjwqg48c";
+       libraryHaskellDepends = [
+         base deepseq hashable megaparsec parser-combinators text
+       ];
+       testHaskellDepends = [
+         base megaparsec microlens QuickCheck tasty tasty-hunit
+         tasty-quickcheck text
+       ];
+       description = "Types and parsers for software version numbers";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "vessel" = callPackage
     ({ mkDerivation, aeson, aeson-gadt-th, base, bifunctors
      , constraints, constraints-extras, containers, dependent-map
diff --git a/pkgs/development/interpreters/alda/default.nix b/pkgs/development/interpreters/alda/default.nix
index 96d4207dbe8..ec46a5e3923 100644
--- a/pkgs/development/interpreters/alda/default.nix
+++ b/pkgs/development/interpreters/alda/default.nix
@@ -1,20 +1,34 @@
-{ lib, stdenv, fetchurl, jre }:
+{ lib, stdenv, fetchurl, makeWrapper, jre }:
 
 stdenv.mkDerivation rec {
   pname = "alda";
-  version = "1.5.0";
+  version = "2.0.6";
 
-  src = fetchurl {
-    url = "https://github.com/alda-lang/alda/releases/download/${version}/alda";
-    sha256 = "sha256-OHbOsgYN87ThU7EgjCgxADnOv32qIi+7XwDwcW0dmV0=";
+  src_alda = fetchurl {
+    url = "https://alda-releases.nyc3.digitaloceanspaces.com/${version}/client/linux-amd64/alda";
+    sha256 = "1078hywl3gim5wfgxb0xwbk1dn80ls3i7y33n76qsdd4b0x0sn7i";
+  };
+
+  src_player = fetchurl {
+    url = "https://alda-releases.nyc3.digitaloceanspaces.com/${version}/player/non-windows/alda-player";
+    sha256 = "1g7k2qnh4vcw63604z7zbvhbpn7l1v3m9mx4j4vywfq6qar1r6ck";
   };
 
   dontUnpack = true;
 
-  installPhase = ''
-    install -Dm755 $src $out/bin/alda
-    sed -i -e '1 s!java!${jre}/bin/java!' $out/bin/alda
-  '';
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase =
+    let
+      binPath = lib.makeBinPath [ jre ];
+    in
+    ''
+      install -D $src_alda $out/bin/alda
+      install -D $src_player $out/bin/alda-player
+
+      wrapProgram $out/bin/alda --prefix PATH : $out/bin:${binPath}
+      wrapProgram $out/bin/alda-player --prefix PATH : $out/bin:${binPath}
+    '';
 
   meta = with lib; {
     description = "A music programming language for musicians";
@@ -23,5 +37,4 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.ericdallo ];
     platforms = jre.meta.platforms;
   };
-
 }
diff --git a/pkgs/development/interpreters/bqn/cbqn/default.nix b/pkgs/development/interpreters/bqn/cbqn/default.nix
index 4d872f0084e..992caf200a7 100644
--- a/pkgs/development/interpreters/bqn/cbqn/default.nix
+++ b/pkgs/development/interpreters/bqn/cbqn/default.nix
@@ -11,21 +11,21 @@ let
     name = "cbqn-bytecode-files";
     owner = "dzaima";
     repo = "CBQN";
-    rev = "db686e89d4d2e9bfac3dddf306dff890135b2de1";
-    hash = "sha256-RJ751jCsAGjqQx3V5S5Uc611n+/TBs6G2o0q26x98NM=";
+    rev = "b000b951aa8f3590b196b4c09056604c0b32a168";
+    hash = "sha256-znW0xOXogP4TfifUmk3cs4aN/9mMSpSD2WJppmeI1Fg=";
   };
 in
 assert genBytecode -> ((bqn-path != null) && (mbqn-source != null));
 
 stdenv.mkDerivation rec {
   pname = "cbqn" + lib.optionalString (!genBytecode) "-standalone";
-  version = "0.pre+date=2021-11-06";
+  version = "0.pre+date=2021-12-13";
 
   src = fetchFromGitHub {
     owner = "dzaima";
     repo = "CBQN";
-    rev = "cd866e1e45ce0f22bfacd25565ab912c06cb040f";
-    hash = "sha256-XuowrGDgrttRL/SY5si0nqHMKEidSNrQuquxNdBCW8o=";
+    rev = "e7662b0f6a44add0749fba2a6d7309a5c1eb2601";
+    hash = "sha256-2nfkTZBIGHX5cok6Ea3KSewakZy8Ey8nSO2Fe4xGgvg=";
   };
 
   dontConfigure = true;
diff --git a/pkgs/development/interpreters/bqn/dzaima-bqn/default.nix b/pkgs/development/interpreters/bqn/dzaima-bqn/default.nix
index a32757fcb33..b6591825f88 100644
--- a/pkgs/development/interpreters/bqn/dzaima-bqn/default.nix
+++ b/pkgs/development/interpreters/bqn/dzaima-bqn/default.nix
@@ -65,6 +65,7 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ AndersonTorres sternenseemann ];
     inherit (jdk.meta) platforms;
+    broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/dbqn-native.x86_64-darwin
   };
 }
 # TODO: Processing app
diff --git a/pkgs/development/interpreters/bqn/mlochbaum-bqn/default.nix b/pkgs/development/interpreters/bqn/mlochbaum-bqn/default.nix
index fd0ff51c0eb..fbb5b458d08 100644
--- a/pkgs/development/interpreters/bqn/mlochbaum-bqn/default.nix
+++ b/pkgs/development/interpreters/bqn/mlochbaum-bqn/default.nix
@@ -7,13 +7,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "bqn";
-  version = "0.pre+date=2021-11-08";
+  version = "0.pre+date=2021-12-13";
 
   src = fetchFromGitHub {
     owner = "mlochbaum";
     repo = "BQN";
-    rev = "5c68173276c1c1b136a7eda3ad8f4423ab0ee9d0";
-    hash = "sha256-e0P1I8I/J41Hk7Edb4uKCdx30Azkiheq014kSZzJ8yg=";
+    rev = "2c2e86e10ff963a6aefa14f76fd8833ce3c9157c";
+    hash = "sha256-iAlDXGlHTeI6+r/QKFiBHhj5A+FgUy7JFrCpAwpyVQU=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/interpreters/ngn-k/default.nix b/pkgs/development/interpreters/ngn-k/default.nix
index e70ac299214..dfd6b17f65f 100644
--- a/pkgs/development/interpreters/ngn-k/default.nix
+++ b/pkgs/development/interpreters/ngn-k/default.nix
@@ -13,14 +13,14 @@ in
 
 useStdenv.mkDerivation {
   pname = "ngn-k";
-  version = "unstable-2021-08-30";
+  version = "unstable-2021-12-17";
 
   src = fetchFromGitea {
     domain = "codeberg.org";
     owner = "ngn";
     repo = "k";
-    rev = "3e2bcb81c723e268015818570f2805547114b5dd";
-    sha256 = "0b16971xgf0sgx7qf41dilrpz02jnas61gfwkyvbxv18874w5vap";
+    rev = "26f83645e9ed4798b43390fb9dcdfa0ab8245a8f";
+    sha256 = "sha256-VcJcLcL1C8yQH6xvpKR0R0gMrhSfsU4tW+Yy0rGdSSw=";
   };
 
   patches = [
@@ -28,8 +28,7 @@ useStdenv.mkDerivation {
   ];
 
   postPatch = ''
-    # make self-reference for LICENSE
-    substituteAllInPlace repl.k
+    patchShebangs a19/a.sh a20/a.sh a21/a.sh dy/a.sh e/a.sh
 
     # don't use hardcoded /bin/sh
     for f in repl.k m.c;do
@@ -38,14 +37,18 @@ useStdenv.mkDerivation {
   '';
 
   makeFlags = [ "-e" ];
-  buildFlags = [ "k" ];
+  buildFlags = [ "k" "libk.so" ];
   checkTarget = "t";
   inherit doCheck;
 
+  outputs = [ "out" "dev" "lib" ];
+
   installPhase = ''
     runHook preInstall
     install -Dm755 k "$out/bin/k"
     install -Dm755 repl.k "$out/bin/k-repl"
+    install -Dm755 libk.so "$lib/lib/libk.so"
+    install -Dm644 k.h "$dev/include/k.h"
     install -Dm644 LICENSE -t "$out/share/ngn-k"
     substituteInPlace "$out/bin/k-repl" --replace "#!k" "#!$out/bin/k"
     runHook postInstall
diff --git a/pkgs/development/interpreters/ngn-k/repl-license-path.patch b/pkgs/development/interpreters/ngn-k/repl-license-path.patch
index 1b0ce708f0c..6b5d1e4fb6a 100644
--- a/pkgs/development/interpreters/ngn-k/repl-license-path.patch
+++ b/pkgs/development/interpreters/ngn-k/repl-license-path.patch
@@ -1,14 +1,10 @@
-diff --git a/repl.k b/repl.k
-index e4071e6..70ae276 100755
 --- a/repl.k
 +++ b/repl.k
-@@ -3,8 +3,7 @@ repl.banner:"ngn/k, (c) 2019-2021 ngn, GNU AGPLv3. type \\ for more info\n"
- repl.prompt:," "
- repl.cmds:""!()
- repl.cmds["vf"]:{` 0:($!h),'":",'`k'. h:(&(x~"v")=^`o`p`q`r`u`v`w?@'h)#h:``repl_.:0#`}
--repl.cmds["a"]:{` 1:1:repl.basename[`argv 0],"/LICENSE";}
--repl.basename:{$[#x:"/"/-1_"/"\x;x;,"."]}
-+repl.cmds["a"]:{` 1:1:"@out@/share/ngn-k/LICENSE";}
+@@ -1,6 +1,6 @@
+ #!k
+ `1:"ngn/k, (c) 2019-2021 ngn, GNU AGPLv3. type \\ for more info\n",repl.prompt:," "
+-repl.cmds:(,"a")!{`1:1:repl.joinpath[repl.dirname`argv 0]"LICENSE";}
++repl.cmds:(,"a")!{`1:1:repl.joinpath[repl.dirname`argv 0]"../share/ngn-k/LICENSE";}
+ repl.dirname:{$[#x:"/"/-1_"/"\x;x;,"."]}
+ repl.joinpath:{$[x~,".";y;"/"~*|x;x,y;x,"/",y]}
  repl.fmt:{$[x~(::);"";(`A~@x)&1<#x;"(",("\n "/`k'x),")\n";`k[x],"\n"]}
- repl.line:{$[#x;;:0];x:-1_x;$[(3>#x)&("\\"=*x)&~^(!repl.cmds)?x 1;repl.cmds[x 1]x 1;.[` 1:repl.fmt@.:;,x;`epr@]];` 1:repl.prompt;1}
- {repl.cmds[x[1]1]:{y;` 0:x}2_x}'{(&x~\:80#"-")_x:(1+*&x~\:,"/")_-1_x}@0:`argv 1;
diff --git a/pkgs/development/interpreters/php/8.1.nix b/pkgs/development/interpreters/php/8.1.nix
new file mode 100644
index 00000000000..736d6c808cd
--- /dev/null
+++ b/pkgs/development/interpreters/php/8.1.nix
@@ -0,0 +1,51 @@
+{ callPackage, lib, stdenv, ... }@_args:
+
+let
+  base = callPackage ./generic.nix (_args // {
+    version = "8.1.1";
+    sha256 = "sha256-j4vJytbNEk7cER99sKEJdF4vY4dwoQGzwiopU/eptA4=";
+  });
+
+in
+base.withExtensions ({ all, ... }: with all; ([
+  bcmath
+  calendar
+  curl
+  ctype
+  dom
+  exif
+  fileinfo
+  filter
+  ftp
+  gd
+  gettext
+  gmp
+  iconv
+  intl
+  ldap
+  mbstring
+  mysqli
+  mysqlnd
+  opcache
+  openssl
+  pcntl
+  pdo
+  pdo_mysql
+  pdo_odbc
+  pdo_pgsql
+  pdo_sqlite
+  pgsql
+  posix
+  readline
+  session
+  simplexml
+  sockets
+  soap
+  sodium
+  sqlite3
+  tokenizer
+  xmlreader
+  xmlwriter
+  zip
+  zlib
+] ++ lib.optionals (!stdenv.isDarwin) [ imap ]))
diff --git a/pkgs/development/interpreters/php/fix-tokenizer-php81.patch b/pkgs/development/interpreters/php/fix-tokenizer-php81.patch
new file mode 100644
index 00000000000..b43eeefa3c2
--- /dev/null
+++ b/pkgs/development/interpreters/php/fix-tokenizer-php81.patch
@@ -0,0 +1,12 @@
+diff --git a/ext/tokenizer/Makefile.frag b/ext/tokenizer/Makefile.frag
+index 745cbfce91..07bace6022 100644
+--- a/ext/tokenizer/Makefile.frag
++++ b/ext/tokenizer/Makefile.frag
+@@ -1,5 +1,5 @@
+-$(top_srcdir)/ext/tokenizer/tokenizer_data.c: $(top_srcdir)/Zend/zend_language_parser.y
++$(top_srcdir)/tokenizer_data.c: $(top_srcdir)/../../Zend/zend_language_parser.y
+ 	@if test ! -z "$(PHP)"; then \
+ 		$(PHP) $(srcdir)/tokenizer_data_gen.php; \
+ 	fi;
+-$(builddir)/tokenizer.lo: $(top_srcdir)/Zend/zend_language_parser.c $(top_srcdir)/Zend/zend_language_scanner.c
++$(builddir)/tokenizer.lo: $(top_srcdir)/../../Zend/zend_language_parser.c $(top_srcdir)/../../Zend/zend_language_scanner.c
diff --git a/pkgs/development/interpreters/php/generic.nix b/pkgs/development/interpreters/php/generic.nix
index 7a1ee2a2eba..bf2ff11158e 100644
--- a/pkgs/development/interpreters/php/generic.nix
+++ b/pkgs/development/interpreters/php/generic.nix
@@ -212,6 +212,7 @@ let
           ;
 
           CXXFLAGS = lib.optionalString stdenv.cc.isClang "-std=c++11";
+          SKIP_PERF_SENSITIVE = 1;
 
           configureFlags =
             # Disable all extensions
diff --git a/pkgs/development/interpreters/python/default.nix b/pkgs/development/interpreters/python/default.nix
index 7937fe171a0..9078e0901ce 100644
--- a/pkgs/development/interpreters/python/default.nix
+++ b/pkgs/development/interpreters/python/default.nix
@@ -253,6 +253,11 @@ in {
     inherit (darwin) libunwind;
     inherit (darwin.apple_sdk.frameworks) Security;
   };
+  pypy37 = pypy38.override {
+    self = pythonInterpreters.pypy37;
+    pythonVersion = "3.7";
+    sha256 = "sha256-LtAqyecQhZxBvILer7CGGXkruaJ+6qFnbHQe3t0hTdc=";
+  };
 
   pypy27_prebuilt = callPackage ./pypy/prebuilt.nix {
     # Not included at top-level
@@ -285,4 +290,8 @@ in {
     inherit passthruFun;
   };
 
+  rustpython = callPackage ./rustpython/default.nix {
+    inherit (darwin.apple_sdk.frameworks) SystemConfiguration;
+  };
+
 })
diff --git a/pkgs/development/interpreters/python/rustpython/default.nix b/pkgs/development/interpreters/python/rustpython/default.nix
new file mode 100644
index 00000000000..ad438220322
--- /dev/null
+++ b/pkgs/development/interpreters/python/rustpython/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, stdenv
+, rustPlatform
+, fetchFromGitHub
+, SystemConfiguration
+, python3
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "rustpython";
+  version = "unstable-2021-12-09";
+
+  src = fetchFromGitHub {
+    owner = "RustPython";
+    repo = "RustPython";
+    rev = "db3b3127df34ff5dd569301aa36ed71ae5624e4e";
+    sha256 = "sha256-YwGfXs3A5L/18mHnnWubPU3Y8EI9uU3keJ2HJnnTwv0=";
+  };
+
+  cargoHash = "sha256-T85kiPG80oZ4mwpb8Ag40wDHKx2Aens+gM7NGXan5lM=";
+
+  # freeze the stdlib into the rustpython binary
+  cargoBuildFlags = "--features=freeze-stdlib";
+
+  buildInputs = lib.optionals stdenv.isDarwin [ SystemConfiguration ];
+
+  checkInputs = [ python3 ];
+
+  meta = with lib; {
+    description = "Python 3 interpreter in written Rust";
+    homepage = "https://rustpython.github.io";
+    license = licenses.mit;
+    maintainers = with maintainers; [ prusnak ];
+
+    # TODO: Remove once nixpkgs uses newer SDKs that supports '*at' functions.
+    # Probably macOS SDK 10.13 or later. Check the current version in
+    # .../os-specific/darwin/apple-sdk/default.nix
+    #
+    # From the build logs:
+    #
+    # > Undefined symbols for architecture x86_64: "_utimensat"
+    broken = stdenv.isDarwin && stdenv.isx86_64;
+  };
+}
diff --git a/pkgs/development/interpreters/python/tests.nix b/pkgs/development/interpreters/python/tests.nix
index 764ab29e919..49dfe0e4644 100644
--- a/pkgs/development/interpreters/python/tests.nix
+++ b/pkgs/development/interpreters/python/tests.nix
@@ -20,7 +20,15 @@ let
     envs = let
       inherit python;
       pythonEnv = python.withPackages(ps: with ps; [ ]);
-      pythonVirtualEnv = python.withPackages(ps: with ps; [ virtualenv ]);
+      pythonVirtualEnv = if python.isPy3k
+        then
+           python.withPackages(ps: with ps; [ virtualenv ])
+        else
+          python.buildEnv.override {
+            extraLibs = with python.pkgs; [ virtualenv ];
+            # Collisions because of namespaces __init__.py
+            ignoreCollisions = true;
+          };
     in {
       # Plain Python interpreter
       plain = rec {
diff --git a/pkgs/development/libraries/SDL_image/default.nix b/pkgs/development/libraries/SDL_image/default.nix
index d6424575a76..30f71bd3e52 100644
--- a/pkgs/development/libraries/SDL_image/default.nix
+++ b/pkgs/development/libraries/SDL_image/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, SDL, libpng, libjpeg, libtiff, giflib, libXpm }:
+{ lib, stdenv, fetchurl, fetchpatch, SDL, libpng, libjpeg, libtiff, giflib, libXpm, pkg-config }:
 
 stdenv.mkDerivation rec {
   pname = "SDL_image";
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
     "--disable-tif-shared"
   ] ++ lib.optional stdenv.isDarwin "--disable-sdltest";
 
+  nativeBuildInputs = [ pkg-config ];
   buildInputs = [ SDL libpng libjpeg libtiff giflib libXpm ];
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/SDL_mixer/default.nix b/pkgs/development/libraries/SDL_mixer/default.nix
index 291e9790e44..91e9f0a3edf 100644
--- a/pkgs/development/libraries/SDL_mixer/default.nix
+++ b/pkgs/development/libraries/SDL_mixer/default.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, fetchurl
 , SDL, libogg, libvorbis, smpeg, libmikmod
-, fluidsynth
+, fluidsynth, pkg-config
 , enableNativeMidi ? false
 }:
 
@@ -13,6 +13,7 @@ stdenv.mkDerivation rec {
     sha256 = "0alrhqgm40p4c92s26mimg9cm1y7rzr6m0p49687jxd9g6130i0n";
   };
 
+  nativeBuildInputs = [ pkg-config ];
   buildInputs = [ SDL libogg libvorbis fluidsynth smpeg libmikmod ];
 
   configureFlags = [ "--disable-music-ogg-shared" "--disable-music-mod-shared" ]
diff --git a/pkgs/development/libraries/SDL_net/default.nix b/pkgs/development/libraries/SDL_net/default.nix
index f55332a0ee0..e902213c971 100644
--- a/pkgs/development/libraries/SDL_net/default.nix
+++ b/pkgs/development/libraries/SDL_net/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, SDL }:
+{ lib, stdenv, fetchurl, SDL, pkg-config }:
 
 stdenv.mkDerivation rec {
   pname = "SDL_net";
@@ -11,6 +11,7 @@ stdenv.mkDerivation rec {
 
   configureFlags = lib.optional stdenv.isDarwin "--disable-sdltest";
 
+  nativeBuildInputs = [ pkg-config ];
   propagatedBuildInputs = [ SDL ];
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/amdvlk/default.nix b/pkgs/development/libraries/amdvlk/default.nix
index b5323464630..6c9650cacca 100644
--- a/pkgs/development/libraries/amdvlk/default.nix
+++ b/pkgs/development/libraries/amdvlk/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , lib
 , fetchRepoProject
+, writeScript
 , cmake
 , ninja
 , patchelf
@@ -21,17 +22,18 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "amdvlk";
-  version = "2021.Q4.1";
+  version = "2021.Q4.2";
 
   src = fetchRepoProject {
     name = "${pname}-src";
     manifest = "https://github.com/GPUOpen-Drivers/AMDVLK.git";
     rev = "refs/tags/v-${version}";
-    sha256 = "sha256-yvpHLreBNhiSxnZis5+XcTOSZPRLq5K8YNJsjpYqD6s=";
+    sha256 = "DpylZjIqWmCnUI0lEvd/HQcY+lr8asMurt1K9MI3qQw=";
   };
 
   buildInputs = [
     expat
+    libdrm
     ncurses
     openssl
     wayland
@@ -66,16 +68,36 @@ in stdenv.mkDerivation rec {
   cmakeDir = "../drivers/xgl";
 
   installPhase = ''
+    runHook preInstall
+
     install -Dm755 -t $out/lib icd/amdvlk${suffix}.so
     install -Dm644 -t $out/share/vulkan/icd.d icd/amd_icd${suffix}.json
     install -Dm644 -t $out/share/vulkan/implicit_layer.d icd/amd_icd${suffix}.json
 
     patchelf --set-rpath "$rpath" $out/lib/amdvlk${suffix}.so
+
+    runHook postInstall
   '';
 
   # Keep the rpath, otherwise vulkaninfo and vkcube segfault
   dontPatchELF = true;
 
+  passthru.updateScript = writeScript "update.sh" ''
+    #!/usr/bin/env nix-shell
+    #!nix-shell -i bash -p coreutils curl gnused jq common-updater-scripts
+
+    function setHash() {
+      sed -i "pkgs/development/libraries/amdvlk/default.nix" -e 's,sha256 = "[^.'"'"']*",sha256 = "'"$1"'",'
+    }
+
+    version="$(curl -sL "https://api.github.com/repos/GPUOpen-Drivers/AMDVLK/releases?per_page=1" | jq '.[0].tag_name | split("-") | .[1]' --raw-output)"
+    sed -i "pkgs/development/libraries/amdvlk/default.nix" -e 's/version = "[^.'"'"']*"/version = "'"$version"'"/'
+
+    setHash "$(nix-instantiate --eval -A lib.fakeSha256 | xargs echo)"
+    hash="$(nix to-base64 $(nix-build -A amdvlk 2>&1 | tail -n3 | grep 'got:' | cut -d: -f2- | xargs echo || true))"
+    setHash "$hash"
+  '';
+
   meta = with lib; {
     description = "AMD Open Source Driver For Vulkan";
     homepage = "https://github.com/GPUOpen-Drivers/AMDVLK";
diff --git a/pkgs/development/libraries/aspell/dictionaries.nix b/pkgs/development/libraries/aspell/dictionaries.nix
index 81f4bb6c2dc..c0d9d87aa42 100644
--- a/pkgs/development/libraries/aspell/dictionaries.nix
+++ b/pkgs/development/libraries/aspell/dictionaries.nix
@@ -41,10 +41,14 @@ let
     stdenv.mkDerivation ({
       name = "aspell-dict-${shortName}";
 
-      buildInputs = [aspell which];
+      strictDeps = true;
+
+      nativeBuildInputs = [ aspell which ];
 
       dontAddPrefix = true;
 
+      configurePlatforms = [ ];
+
       preBuild = "makeFlagsArray=(dictdir=$out/lib/aspell datadir=$out/lib/aspell)";
 
       meta = {
diff --git a/pkgs/development/libraries/assimp/default.nix b/pkgs/development/libraries/assimp/default.nix
index a2cd3a2a457..a98242f9c7c 100644
--- a/pkgs/development/libraries/assimp/default.nix
+++ b/pkgs/development/libraries/assimp/default.nix
@@ -2,13 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "assimp";
-  version = "5.0.1";
+  version = "5.1.3";
+  outputs = [ "out" "lib" "dev" ];
 
   src = fetchFromGitHub{
     owner = "assimp";
     repo = "assimp";
     rev = "v${version}";
-    sha256 = "00vxzfcrs856qnyk806wqr67nmpjk06mjby0fqmyhm6i1jj2hg1w";
+    hash = "sha256-GNSfaP8O5IsjGwtC3DFaV4OiMMUXIcmHmz+5TCT/HP8=";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -16,7 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A library to import various 3D model formats";
-    homepage = "http://assimp.sourceforge.net/";
+    homepage = "https://www.assimp.org/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ehmry ];
     platforms = platforms.linux ++ platforms.darwin;
diff --git a/pkgs/development/libraries/audio/suil/default.nix b/pkgs/development/libraries/audio/suil/default.nix
index 1c978a18f8f..ac10472e014 100644
--- a/pkgs/development/libraries/audio/suil/default.nix
+++ b/pkgs/development/libraries/audio/suil/default.nix
@@ -31,6 +31,6 @@ stdenv.mkDerivation rec {
     description = "A lightweight C library for loading and wrapping LV2 plugin UIs";
     license = licenses.mit;
     maintainers = with maintainers; [ goibhniu ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/coeurl/default.nix b/pkgs/development/libraries/coeurl/default.nix
index df87210bb79..44e534757ce 100644
--- a/pkgs/development/libraries/coeurl/default.nix
+++ b/pkgs/development/libraries/coeurl/default.nix
@@ -11,14 +11,14 @@
 
 stdenv.mkDerivation rec {
   pname = "coeurl";
-  version = "0.1.0";
+  version = "0.1.1";
 
   src = fetchFromGitLab {
     domain = "nheko.im";
     owner = "nheko-reborn";
     repo = pname;
     rev = "v${version}";
-    sha256 = "10a5klr44m2xy6law8s3s5rynk1q268fa4pkhilbn52yyv0fwajq";
+    sha256 = "sha256-F4kHE9r2pR8hI+CrZQ9ElPjtp0McgwfSxoD5p56KDGs=";
   };
 
   nativeBuildInputs = [ ninja pkg-config meson ];
diff --git a/pkgs/development/libraries/crypto++/default.nix b/pkgs/development/libraries/crypto++/default.nix
index fe553cb37b9..bedf75e75ca 100644
--- a/pkgs/development/libraries/crypto++/default.nix
+++ b/pkgs/development/libraries/crypto++/default.nix
@@ -5,30 +5,22 @@
 
 stdenv.mkDerivation rec {
   pname = "crypto++";
-  version = "8.4.0";
+  version = "8.6.0";
   underscoredVersion = lib.strings.replaceStrings ["."] ["_"] version;
 
   src = fetchFromGitHub {
     owner = "weidai11";
     repo = "cryptopp";
     rev = "CRYPTOPP_${underscoredVersion}";
-    sha256 = "1gwn8yh1mh41hkh6sgnhb9c3ygrdazd7645msl20i0zdvcp7f5w3";
+    hash = "sha256-a3TYaK34WvKEXN7LKAfGwQ3ZL6a3k/zMZyyVfnkQqO4=";
   };
 
   outputs = [ "out" "dev" ];
 
   postPatch = ''
     substituteInPlace GNUmakefile \
-        --replace "AR = libtool" "AR = ar" \
-        --replace "ARFLAGS = -static -o" "ARFLAGS = -cru"
-
-    # See https://github.com/weidai11/cryptopp/issues/1011
-    substituteInPlace GNUmakefile \
-      --replace "ZOPT = -O0" "ZOPT ="
-  '';
-
-  preConfigure = ''
-    sh TestScripts/configure.sh
+      --replace "AR = libtool" "AR = ar" \
+      --replace "ARFLAGS = -static -o" "ARFLAGS = -cru"
   '';
 
   makeFlags = [ "PREFIX=${placeholder "out"}" ];
@@ -37,10 +29,11 @@ stdenv.mkDerivation rec {
     ++ lib.optional enableShared "shared"
     ++ [ "libcryptopp.pc" ];
   enableParallelBuilding = true;
+  hardeningDisable = [ "fortify" ];
 
   doCheck = true;
 
-  # built for checks but we don't install static lib into the nix store
+  # always built for checks but install static lib only when necessary
   preInstall = lib.optionalString (!enableStatic) "rm libcryptopp.a";
 
   installTargets = [ "install-lib" ];
diff --git a/pkgs/development/libraries/draco/default.nix b/pkgs/development/libraries/draco/default.nix
index ed65be9a256..ecbd1252126 100644
--- a/pkgs/development/libraries/draco/default.nix
+++ b/pkgs/development/libraries/draco/default.nix
@@ -1,33 +1,35 @@
-{ lib, stdenv, fetchFromGitHub, cmake
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, python3
+, withAnimation ? true
+, withTranscoder ? true
 }:
 
+let
+  cmakeBool = b: if b then "ON" else "OFF";
+in
 stdenv.mkDerivation rec {
-  version = "1.4.3";
+  version = "1.5.0";
   pname = "draco";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "draco";
     rev = version;
-    sha256 = "sha256-eSu6tkWbRHzJkWwPgljaScAuL0gRkp8PJUHWC8mUvOw=";
+    hash = "sha256-BoJg2lZBPVVm6Nc0XK8QSISpe+B8tpgRg9PFncN4+fY=";
+    fetchSubmodules = true;
   };
 
-  nativeBuildInputs = [ cmake ];
+  nativeBuildInputs = [ cmake python3 ];
 
   cmakeFlags = [
-    # Fake these since we are building from a tarball
-    "-Ddraco_git_hash=${version}"
-    "-Ddraco_git_desc=${version}"
-
-    "-DBUILD_UNITY_PLUGIN=1"
+    "-DDRACO_ANIMATION_ENCODING=${cmakeBool withAnimation}"
+    "-DDRACO_TRANSCODER_SUPPORTED=${cmakeBool withTranscoder}"
+    "-DBUILD_SHARED_LIBS=${cmakeBool true}"
   ];
 
-  # Upstream mistakenly installs to /nix/store/.../nix/store/.../*, work around that
-  postInstall = ''
-    mv $out/nix/store/*/* $out
-    rm -rf $out/nix
-  '';
-
   meta = with lib; {
     description = "Library for compressing and decompressing 3D geometric meshes and point clouds";
     homepage = "https://google.github.io/draco/";
diff --git a/pkgs/development/libraries/fcft/default.nix b/pkgs/development/libraries/fcft/default.nix
index 2101ee6dd42..de20caf22fb 100644
--- a/pkgs/development/libraries/fcft/default.nix
+++ b/pkgs/development/libraries/fcft/default.nix
@@ -20,14 +20,14 @@ in
 
 stdenv.mkDerivation rec {
   pname = "fcft";
-  version = "2.5.0";
+  version = "2.5.1";
 
   src = fetchFromGitea {
     domain = "codeberg.org";
     owner = "dnkl";
     repo = "fcft";
     rev = version;
-    sha256 = "0agqldh68hn898d3f6k99kjbz8had5j5k0jyvi71d4k9vhx8cy7c";
+    sha256 = "0dn0ic2ddi5qz6nqscsn7nlih67ad8vpclppbqwas6xavdfq6va2";
   };
 
   depsBuildBuild = [ pkg-config ];
@@ -44,6 +44,8 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
+  outputs = [ "out" "doc" "man" ];
+
   passthru.tests = {
     noShaping = fcft.override { withShapingTypes = []; };
     onlyGraphemeShaping = fcft.override { withShapingTypes = [ "grapheme" ]; };
diff --git a/pkgs/development/libraries/grpc/default.nix b/pkgs/development/libraries/grpc/default.nix
index ae49974fefe..dab210d6b1e 100644
--- a/pkgs/development/libraries/grpc/default.nix
+++ b/pkgs/development/libraries/grpc/default.nix
@@ -17,13 +17,13 @@
 
 stdenv.mkDerivation rec {
   pname = "grpc";
-  version = "1.42.0"; # N.B: if you change this, change pythonPackages.grpcio-tools to a matching version too
+  version = "1.43.0"; # N.B: if you change this, change pythonPackages.grpcio-tools to a matching version too
 
   src = fetchFromGitHub {
     owner = "grpc";
     repo = "grpc";
     rev = "v${version}";
-    sha256 = "sha256-9/ywbnvd8hqeblFe+X9SM6PkRPB/yqE8Iw9TNmLMSOE=";
+    sha256 = "sha256-NPyCQsrmD/gBs4UHPGbBACmGRTNQDj6WfnfLNdWulK4=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/development/libraries/gsl/default.nix b/pkgs/development/libraries/gsl/default.nix
index dec2125974d..9cc27ef4898 100644
--- a/pkgs/development/libraries/gsl/default.nix
+++ b/pkgs/development/libraries/gsl/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isx86_64 "-mno-fma";
 
   # https://lists.gnu.org/archive/html/bug-gsl/2015-11/msg00012.html
-  doCheck = stdenv.hostPlatform.system != "i686-linux" && stdenv.hostPlatform.system != "aarch64-linux";
+  doCheck = stdenv.hostPlatform.system != "i686-linux";
 
   meta = {
     description = "The GNU Scientific Library, a large numerical library";
diff --git a/pkgs/development/libraries/gtdialog/default.nix b/pkgs/development/libraries/gtdialog/default.nix
index ac925477adb..d7e60659a5e 100644
--- a/pkgs/development/libraries/gtdialog/default.nix
+++ b/pkgs/development/libraries/gtdialog/default.nix
@@ -1,32 +1,29 @@
-{lib, stdenv, fetchurl, cdk, unzip, gtk2, glib, ncurses, pkg-config}:
-let
-  s = # Generated upstream information
-  rec {
-    baseName="gtdialog";
-    version="1.4";
-    name="${baseName}-${version}";
-    hash="1lhsaz56s8m838fi6vnfcd2r6djymvy3n2pbqhii88hraapq3rfk";
-    url="https://foicica.com/gtdialog/download/gtdialog_1.4.zip";
-    sha256="1lhsaz56s8m838fi6vnfcd2r6djymvy3n2pbqhii88hraapq3rfk";
+{ lib, stdenv, fetchurl, cdk, unzip, gtk2, glib, ncurses, pkg-config }:
+
+stdenv.mkDerivation rec {
+  pname = "gtdialog";
+  version = "1.4";
+
+  src = fetchurl {
+    url = "https://foicica.com/gtdialog/download/gtdialog_${version}.zip";
+    sha256 = "sha256-0+WBr1IZIhQjxOsKO/yuXjaTRWPObhMdGqgibcpXGtI=";
   };
+
   nativeBuildInputs = [ pkg-config unzip ];
   buildInputs = [
-    cdk gtk2 glib ncurses
+    cdk
+    gtk2
+    glib
+    ncurses
   ];
-in
-stdenv.mkDerivation {
-  inherit (s) name version;
-  inherit nativeBuildInputs buildInputs;
-  src = fetchurl {
-    inherit (s) url sha256;
-  };
-  makeFlags = ["PREFIX=$(out)"];
-  meta = {
-    inherit (s) version;
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  meta = with lib; {
     description = "Cross-platform helper for creating interactive dialogs";
-    license = lib.licenses.mit ;
-    maintainers = [lib.maintainers.raskin];
-    platforms = lib.platforms.linux;
+    license = licenses.mit;
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.linux;
     homepage = "http://foicica.com/gtdialog";
     downloadPage = "http://foicica.com/gtdialog/download";
   };
diff --git a/pkgs/development/libraries/gtdialog/default.upstream b/pkgs/development/libraries/gtdialog/default.upstream
deleted file mode 100644
index b9cbcf4c5c7..00000000000
--- a/pkgs/development/libraries/gtdialog/default.upstream
+++ /dev/null
@@ -1,3 +0,0 @@
-url http://foicica.com/gtdialog/download
-version_link '[.]zip$'
-version '.*_([0-9.]*)[.]zip' '\1'
diff --git a/pkgs/development/libraries/gtk/2.x.nix b/pkgs/development/libraries/gtk/2.x.nix
index bbf20d60970..396366324d3 100644
--- a/pkgs/development/libraries/gtk/2.x.nix
+++ b/pkgs/development/libraries/gtk/2.x.nix
@@ -4,7 +4,7 @@
 , cupsSupport ? config.gtk2.cups or stdenv.isLinux, cups
 , gdktarget ? if stdenv.isDarwin then "quartz" else "x11"
 , AppKit, Cocoa
-, fetchpatch
+, fetchpatch, buildPackages
 }:
 
 with lib;
@@ -38,6 +38,7 @@ stdenv.mkDerivation rec {
     gtkCleanImmodulesCache
   ];
 
+
   nativeBuildInputs = setupHooks ++ [ perl pkg-config gettext gobject-introspection ];
 
   patches = [
@@ -72,6 +73,9 @@ stdenv.mkDerivation rec {
     "--disable-glibtest"
     "--disable-introspection"
     "--disable-visibility"
+  ] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
+    "ac_cv_path_GTK_UPDATE_ICON_CACHE=${buildPackages.gtk2}/bin/gtk-update-icon-cache"
+    "ac_cv_path_GDK_PIXBUF_CSOURCE=${buildPackages.gdk-pixbuf.dev}/bin/gdk-pixbuf-csource"
   ];
 
   doCheck = false; # needs X11
diff --git a/pkgs/development/libraries/libdevil/default.nix b/pkgs/development/libraries/libdevil/default.nix
index fa48c773dfc..a79e5371c01 100644
--- a/pkgs/development/libraries/libdevil/default.nix
+++ b/pkgs/development/libraries/libdevil/default.nix
@@ -54,6 +54,6 @@ stdenv.mkDerivation rec {
     description = "An image library which can can load, save, convert, manipulate, filter and display a wide variety of image formats";
     license = licenses.lgpl2;
     platforms = platforms.mesaPlatforms;
-    maintainers = [ maintainers.phreedom ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/libraries/libe-book/default.nix b/pkgs/development/libraries/libe-book/default.nix
index f467a01ea7a..b3a1cab066e 100644
--- a/pkgs/development/libraries/libe-book/default.nix
+++ b/pkgs/development/libraries/libe-book/default.nix
@@ -1,41 +1,45 @@
-{ lib, stdenv, fetchurl, gperf, pkg-config, librevenge, libxml2, boost, icu
-, cppunit, zlib, liblangtag
+{ lib
+, stdenv
+, fetchurl
+, gperf
+, pkg-config
+, librevenge
+, libxml2
+, boost
+, icu
+, cppunit
+, zlib
+, liblangtag
 }:
 
-let
-  s = # Generated upstream information
-  rec {
-    baseName="libe-book";
-    version="0.1.3";
-    name="${baseName}-${version}";
-    hash="1yg1vws1wggzhjw672bpgh2x541g5i9wryf67g51m0r79zrqz3by";
-    url="https://kent.dl.sourceforge.net/project/libebook/libe-book-0.1.3/libe-book-0.1.3.tar.xz";
-    sha256="1yg1vws1wggzhjw672bpgh2x541g5i9wryf67g51m0r79zrqz3by";
+stdenv.mkDerivation rec {
+  pname = "libe-book";
+  version = "0.1.3";
+  src = fetchurl {
+    url = "https://kent.dl.sourceforge.net/project/libebook/libe-book-${version}/libe-book-${version}.tar.xz";
+    sha256 = "sha256-fo2P808ngxrKO8b5zFMsL5DSBXx3iWO4hP89HjTf4fk=";
   };
-
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [
-    gperf librevenge libxml2 boost icu cppunit zlib liblangtag
+    gperf
+    librevenge
+    libxml2
+    boost
+    icu
+    cppunit
+    zlib
+    liblangtag
   ];
-
   # Boost 1.59 compatability fix
   # Attempt removing when updating
   postPatch = ''
     sed -i 's,^CPPFLAGS.*,\0 -DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_SYSTEM_NO_DEPRECATED,' src/lib/Makefile.in
   '';
-in
-stdenv.mkDerivation {
-  inherit (s) name version;
-  inherit nativeBuildInputs buildInputs postPatch;
-  src = fetchurl {
-    inherit (s) url sha256;
-  };
   NIX_CFLAGS_COMPILE = "-Wno-error=unused-function";
-  meta = {
-    inherit (s) version;
+  meta = with lib; {
     description = "Library for import of reflowable e-book formats";
-    license = lib.licenses.lgpl21Plus ;
-    maintainers = [lib.maintainers.raskin];
-    platforms = lib.platforms.unix;
+    license = licenses.lgpl21Plus;
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/libe-book/default.upstream b/pkgs/development/libraries/libe-book/default.upstream
deleted file mode 100644
index a06a9af99bb..00000000000
--- a/pkgs/development/libraries/libe-book/default.upstream
+++ /dev/null
@@ -1,4 +0,0 @@
-url https://sourceforge.net/projects/libebook/files/
-SF_version_dir libe-book-
-version_link '[.]tar.xz/download$'
-SF_redirect
diff --git a/pkgs/development/libraries/libff/default.nix b/pkgs/development/libraries/libff/default.nix
index 72d2406aa82..35b7a33cc38 100644
--- a/pkgs/development/libraries/libff/default.nix
+++ b/pkgs/development/libraries/libff/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libff";
-  version = "1.0.0";
+  version = "0.2.1";
 
   src = fetchFromGitHub {
     owner = "scipr-lab";
@@ -12,7 +12,8 @@ stdenv.mkDerivation rec {
     fetchSubmodules = true;
   };
 
-  cmakeFlags = [ "-DWITH_PROCPS=Off" ];
+  cmakeFlags = [ "-DWITH_PROCPS=Off" ]
+    ++ lib.optional stdenv.isAarch64 [ "-DCURVE=ALT_BN128" "-DUSE_ASM=OFF" ];
 
   # CMake is hardcoded to always build static library which causes linker
   # failure for Haskell applications depending on haskellPackages.hevm on macOS.
diff --git a/pkgs/development/libraries/libinfinity/default.nix b/pkgs/development/libraries/libinfinity/default.nix
index e68d27cacff..4b379660a84 100644
--- a/pkgs/development/libraries/libinfinity/default.nix
+++ b/pkgs/development/libraries/libinfinity/default.nix
@@ -46,7 +46,7 @@ let
       homepage = "https://gobby.github.io/";
       description = "An implementation of the Infinote protocol written in GObject-based C";
       license = lib.licenses.lgpl2Plus;
-      maintainers = [ lib.maintainers.phreedom ];
+      maintainers = [ ];
       platforms = with lib.platforms; linux ++ darwin;
     };
   };
diff --git a/pkgs/development/libraries/liblastfm/default.nix b/pkgs/development/libraries/liblastfm/default.nix
index 5183c47bc06..6b28175a9b6 100644
--- a/pkgs/development/libraries/liblastfm/default.nix
+++ b/pkgs/development/libraries/liblastfm/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
     repositories.git = "git://github.com/lastfm/liblastfm.git";
     description = "Official LastFM library";
     platforms = platforms.unix;
-    maintainers = [ maintainers.phreedom ];
+    maintainers = [ ];
     license = licenses.gpl3;
   };
 }
diff --git a/pkgs/development/libraries/libmwaw/default.nix b/pkgs/development/libraries/libmwaw/default.nix
index ed479ad53e1..8f83c2055c6 100644
--- a/pkgs/development/libraries/libmwaw/default.nix
+++ b/pkgs/development/libraries/libmwaw/default.nix
@@ -1,32 +1,29 @@
-{lib, stdenv, fetchurl, boost, pkg-config, cppunit, zlib, libwpg, libwpd, librevenge}:
-let
-  s = # Generated upstream information
-  rec {
-    baseName="libmwaw";
-    version="0.3.20";
-    name="${baseName}-${version}";
-    hash="sha256-FMOLBiFPJ3zNFFDiLm4yZIlVAY12lYlrxWAWV0jIzSE=";
-    url="mirror://sourceforge/libmwaw/libmwaw/libmwaw-0.3.20/libmwaw-0.3.20.tar.xz";
-    sha256="sha256-FMOLBiFPJ3zNFFDiLm4yZIlVAY12lYlrxWAWV0jIzSE=";
+{ lib, stdenv, fetchurl, boost, pkg-config, cppunit, zlib, libwpg, libwpd, librevenge }:
+
+stdenv.mkDerivation rec {
+  pname = "libmwaw";
+  version = "0.3.21";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/libmwaw/libmwaw/libmwaw-${version}/libmwaw-${version}.tar.xz";
+    sha256 = "sha256-6HUBI6eNYblDzveLdzbIp/ILsKZJqhEkAhJPunlPwhw=";
   };
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [
-    boost cppunit zlib libwpg libwpd librevenge
+    boost
+    cppunit
+    zlib
+    libwpg
+    libwpd
+    librevenge
   ];
-in
-stdenv.mkDerivation {
-  inherit (s) name version;
-  inherit nativeBuildInputs buildInputs;
-  src = fetchurl {
-    inherit (s) url sha256;
-  };
   enableParallelBuilding = true;
-  meta = {
-    inherit (s) version;
+
+  meta = with lib; {
     description = "Import library for some old mac text documents";
-    license = lib.licenses.mpl20 ;
-    maintainers = [lib.maintainers.raskin];
-    platforms = lib.platforms.unix;
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/libmwaw/default.upstream b/pkgs/development/libraries/libmwaw/default.upstream
deleted file mode 100644
index bcfb53770e1..00000000000
--- a/pkgs/development/libraries/libmwaw/default.upstream
+++ /dev/null
@@ -1,4 +0,0 @@
-url https://sourceforge.net/projects/libmwaw/files/libmwaw/
-SF_version_dir libmwaw-
-version_link '[.]tar.xz/download$'
-SF_redirect
diff --git a/pkgs/development/libraries/libnest2d/default.nix b/pkgs/development/libraries/libnest2d/default.nix
index 1e666758f81..4117b38e1d9 100644
--- a/pkgs/development/libraries/libnest2d/default.nix
+++ b/pkgs/development/libraries/libnest2d/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchFromGitHub, cmake, clipper, nlopt, boost, python3 }:
 
 stdenv.mkDerivation rec {
-  version = "2020-10-09-unstable";
+  version = "4.12.0";
   pname = "libnest2d";
 
   # This revision is waiting to be merged upstream
diff --git a/pkgs/development/libraries/libodfgen/default.nix b/pkgs/development/libraries/libodfgen/default.nix
index b891c320e86..d4a6aab24c8 100644
--- a/pkgs/development/libraries/libodfgen/default.nix
+++ b/pkgs/development/libraries/libodfgen/default.nix
@@ -1,30 +1,28 @@
-{lib, stdenv, fetchurl, boost, pkg-config, cppunit, zlib, libwpg, libwpd, librevenge}:
-let
-  s = # Generated upstream information
-  rec {
-    baseName="libodfgen";
-    version="0.1.7";
-    name="${baseName}-${version}";
-    hash="0cdq48wlpp8m0qmndybv64r0m4vh0qsqx69cn6ms533cjlgljgij";
-    url="mirror://sourceforge/project/libwpd/libodfgen/libodfgen-0.1.7/libodfgen-0.1.7.tar.xz";
-    sha256="0cdq48wlpp8m0qmndybv64r0m4vh0qsqx69cn6ms533cjlgljgij";
+{ lib, stdenv, fetchurl, boost, pkg-config, cppunit, zlib, libwpg, libwpd, librevenge }:
+
+stdenv.mkDerivation rec {
+  pname = "libodfgen";
+  version = "0.1.7";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/libwpd/libodfgen/libodfgen-${version}/libodfgen-${version}.tar.xz";
+    sha256 = "sha256-Mj5JH5VsjKKrsSyZjjUGcJMKMjF7+WYrBhXdSzkiuDE=";
   };
+
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [
-    boost cppunit zlib libwpg libwpd librevenge
+    boost
+    cppunit
+    zlib
+    libwpg
+    libwpd
+    librevenge
   ];
-in
-stdenv.mkDerivation {
-  inherit (s) name version;
-  inherit nativeBuildInputs buildInputs;
-  src = fetchurl {
-    inherit (s) url sha256;
-  };
-  meta = {
-    inherit (s) version;
+
+  meta = with lib; {
     description = "A base library for generating ODF documents";
-    license = lib.licenses.mpl20 ;
-    maintainers = [lib.maintainers.raskin];
-    platforms = lib.platforms.unix;
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/libodfgen/default.upstream b/pkgs/development/libraries/libodfgen/default.upstream
deleted file mode 100644
index bd78e974e42..00000000000
--- a/pkgs/development/libraries/libodfgen/default.upstream
+++ /dev/null
@@ -1,4 +0,0 @@
-url https://sourceforge.net/projects/libwpd/files/libodfgen/
-SF_version_dir libodfgen-
-version_link '[.]tar.xz/download$'
-SF_redirect
diff --git a/pkgs/development/libraries/libosmium/default.nix b/pkgs/development/libraries/libosmium/default.nix
index 546d89449de..917a64f40e9 100644
--- a/pkgs/development/libraries/libosmium/default.nix
+++ b/pkgs/development/libraries/libosmium/default.nix
@@ -1,19 +1,19 @@
-{ lib, stdenv, fetchFromGitHub, cmake, protozero, expat, zlib, bzip2, boost }:
+{ lib, stdenv, fetchFromGitHub, cmake, protozero, expat, zlib, bzip2, boost, lz4 }:
 
 stdenv.mkDerivation rec {
   pname = "libosmium";
-  version = "2.17.1";
+  version = "2.17.2";
 
   src = fetchFromGitHub {
     owner = "osmcode";
     repo = "libosmium";
     rev = "v${version}";
-    sha256 = "sha256-riNcIC60gw9qxF8UmPjq03XuD3of0BxKbZpgwjMNh3c=";
+    sha256 = "sha256-+WeEK7rWoUPAiAsgd5qT2bwDf+5IlP4uuyh7+i2L/HU=";
   };
 
   nativeBuildInputs = [ cmake ];
 
-  buildInputs = [ protozero zlib bzip2 expat boost ];
+  buildInputs = [ protozero zlib bzip2 expat boost lz4 ];
 
   cmakeFlags = [ "-DINSTALL_GDALCPP:BOOL=ON" ];
 
diff --git a/pkgs/development/libraries/librevenge/default.nix b/pkgs/development/libraries/librevenge/default.nix
index 1d7754bfcae..627b7596c02 100644
--- a/pkgs/development/libraries/librevenge/default.nix
+++ b/pkgs/development/libraries/librevenge/default.nix
@@ -1,25 +1,20 @@
-{lib, stdenv, fetchurl, boost, pkg-config, cppunit, zlib}:
-let
-  s = # Generated upstream information
-  rec {
-    baseName="librevenge";
-    version="0.0.4";
-    name="${baseName}-${version}";
-    hash="1cj76cz4mqcy2mgv9l5xlc95bypyk8zbq0ls9cswqrs2y0lhfgwk";
-    url="mirror://sourceforge/project/libwpd/librevenge/librevenge-0.0.4/librevenge-0.0.4.tar.xz";
-    sha256="1cj76cz4mqcy2mgv9l5xlc95bypyk8zbq0ls9cswqrs2y0lhfgwk";
+{ lib, stdenv, fetchurl, boost, pkg-config, cppunit, zlib }:
+
+stdenv.mkDerivation rec {
+  pname = "librevenge";
+  version = "0.0.4";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/libwpd/librevenge/librevenge-${version}/librevenge-${version}.tar.xz";
+    sha256 = "sha256-kz8HKfBCZ8w1S5oCvD6a/vpVEqO90LRfFZ7hSj4zR7I=";
   };
+
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [
-    boost cppunit zlib
+    boost
+    cppunit
+    zlib
   ];
-in
-stdenv.mkDerivation {
-  inherit (s) name version;
-  inherit nativeBuildInputs buildInputs;
-  src = fetchurl {
-    inherit (s) url sha256;
-  };
 
   # Clang and gcc-7 generate warnings, and
   # -Werror causes these warnings to be interpreted as errors
@@ -32,11 +27,10 @@ stdenv.mkDerivation {
     sed -i 's,-DLIBREVENGE_BUILD,\0 -DBOOST_ERROR_CODE_HEADER_ONLY,g' src/lib/Makefile.in
   '';
 
-  meta = {
-    inherit (s) version;
+  meta = with lib; {
     description = "A base library for writing document import filters";
-    license = lib.licenses.mpl20 ;
-    maintainers = [lib.maintainers.raskin];
-    platforms = lib.platforms.unix;
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/librevenge/default.upstream b/pkgs/development/libraries/librevenge/default.upstream
deleted file mode 100644
index 78e47f83433..00000000000
--- a/pkgs/development/libraries/librevenge/default.upstream
+++ /dev/null
@@ -1,4 +0,0 @@
-url https://sourceforge.net/projects/libwpd/files/librevenge/
-SF_version_dir librevenge-
-version_link '[.]tar.xz/download$'
-SF_redirect
diff --git a/pkgs/development/libraries/librime/default.nix b/pkgs/development/libraries/librime/default.nix
index 3a2ca1e18c1..6877f9ab7b3 100644
--- a/pkgs/development/libraries/librime/default.nix
+++ b/pkgs/development/libraries/librime/default.nix
@@ -1,6 +1,13 @@
 { lib, stdenv, fetchFromGitHub, cmake, boost, glog, leveldb, marisa, opencc,
-  libyamlcpp, gtest, capnproto, pkg-config }:
+  libyamlcpp, gtest, capnproto, pkg-config, plugins ? [ ] }:
 
+let
+  copySinglePlugin = plug: "cp -r ${plug} plugins/${plug.name}";
+  copyPlugins = ''
+    ${lib.concatMapStringsSep "\n" copySinglePlugin plugins}
+    chmod +w -R plugins/*
+  '';
+in
 stdenv.mkDerivation rec {
   pname = "librime";
   version = "1.7.3";
@@ -14,13 +21,16 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake pkg-config ];
 
-  buildInputs = [ boost glog leveldb marisa opencc libyamlcpp gtest capnproto ];
+  buildInputs = [ boost glog leveldb marisa opencc libyamlcpp gtest capnproto ]
+              ++ plugins; # for propagated build inputs
+
+  preConfigure = copyPlugins;
 
   meta = with lib; {
     homepage    = "https://rime.im/";
     description = "Rime Input Method Engine, the core library";
     license     = licenses.bsd3;
-    maintainers = with maintainers; [ sifmelcara ];
+    maintainers = with maintainers; [ vonfry ];
     platforms   = platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/libspatialaudio/default.nix b/pkgs/development/libraries/libspatialaudio/default.nix
new file mode 100644
index 00000000000..c8d29a87a03
--- /dev/null
+++ b/pkgs/development/libraries/libspatialaudio/default.nix
@@ -0,0 +1,25 @@
+{ lib, stdenv, cmake, fetchFromGitHub, libmysofa, zlib }:
+
+stdenv.mkDerivation rec {
+  pname = "libspatialaudio";
+  version = "0.3.0";
+
+  src = fetchFromGitHub {
+    owner = "videolabs";
+    repo = "libspatialaudio";
+    rev = version;
+    hash = "sha256-sPnQPD41AceXM4uGqWXMYhuQv0TUkA6TZP8ChxUFIoI=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ libmysofa zlib ];
+
+  meta = with lib; {
+    description =
+      "Ambisonic encoding / decoding and binauralization library in C++";
+    homepage = "https://github.com/videolabs/libspatialaudio";
+    license = licenses.lgpl21Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ krav ];
+  };
+}
diff --git a/pkgs/development/libraries/libtorrent-rasterbar/1.1.nix b/pkgs/development/libraries/libtorrent-rasterbar/1.1.nix
index a898dd8e24e..52a88e2194d 100644
--- a/pkgs/development/libraries/libtorrent-rasterbar/1.1.nix
+++ b/pkgs/development/libraries/libtorrent-rasterbar/1.1.nix
@@ -44,7 +44,7 @@ in stdenv.mkDerivation {
     homepage = "https://libtorrent.org/";
     description = "A C++ BitTorrent implementation focusing on efficiency and scalability";
     license = licenses.bsd3;
-    maintainers = [ maintainers.phreedom ];
+    maintainers = [ ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/libtorrent-rasterbar/1.2.nix b/pkgs/development/libraries/libtorrent-rasterbar/1.2.nix
index fc97b629a52..adea75b02e9 100644
--- a/pkgs/development/libraries/libtorrent-rasterbar/1.2.nix
+++ b/pkgs/development/libraries/libtorrent-rasterbar/1.2.nix
@@ -47,7 +47,7 @@ in stdenv.mkDerivation {
     homepage = "https://libtorrent.org/";
     description = "A C++ BitTorrent implementation focusing on efficiency and scalability";
     license = licenses.bsd3;
-    maintainers = [ maintainers.phreedom ];
+    maintainers = [ ];
     broken = stdenv.isDarwin;
     platforms = platforms.unix;
   };
diff --git a/pkgs/development/libraries/libtorrent-rasterbar/default.nix b/pkgs/development/libraries/libtorrent-rasterbar/default.nix
index 5d718fb859e..0f5253f850e 100644
--- a/pkgs/development/libraries/libtorrent-rasterbar/default.nix
+++ b/pkgs/development/libraries/libtorrent-rasterbar/default.nix
@@ -40,7 +40,7 @@ in stdenv.mkDerivation {
     homepage = "https://libtorrent.org/";
     description = "A C++ BitTorrent implementation focusing on efficiency and scalability";
     license = licenses.bsd3;
-    maintainers = [ maintainers.phreedom ];
+    maintainers = [ ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/libtoxcore/default.nix b/pkgs/development/libraries/libtoxcore/default.nix
index 4badf32fe8c..10cc499d09d 100644
--- a/pkgs/development/libraries/libtoxcore/default.nix
+++ b/pkgs/development/libraries/libtoxcore/default.nix
@@ -53,7 +53,7 @@ in {
   };
 
   libtoxcore_0_2 = generic {
-    version = "0.2.12";
-    sha256 = "0a6sqpm00d2rn0nviqfz4gh9ck1wzci6rxgmqmcyryl5ca19ffvp";
+    version = "0.2.13";
+    sha256 = "0a1cp00bnxl3q4l74yqp4aa6fg9slz4rg4lfzkl3khvmm6nzckds";
   };
 }
diff --git a/pkgs/development/libraries/libvdpau/default.nix b/pkgs/development/libraries/libvdpau/default.nix
index 75dcd337c38..a83893b01a7 100644
--- a/pkgs/development/libraries/libvdpau/default.nix
+++ b/pkgs/development/libraries/libvdpau/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   NIX_LDFLAGS = lib.optionalString stdenv.isDarwin "-lX11";
 
   meta = with lib; {
-    homepage = "https://people.freedesktop.org/~aplattner/vdpau/";
+    homepage = "https://www.freedesktop.org/wiki/Software/VDPAU/";
     description = "Library to use the Video Decode and Presentation API for Unix (VDPAU)";
     license = licenses.mit; # expat version
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/libxmlxx/default.nix b/pkgs/development/libraries/libxmlxx/default.nix
index 19af942d759..16c29647a7c 100644
--- a/pkgs/development/libraries/libxmlxx/default.nix
+++ b/pkgs/development/libraries/libxmlxx/default.nix
@@ -29,6 +29,6 @@ stdenv.mkDerivation rec {
     description = "C++ wrapper for the libxml2 XML parser library";
     license = licenses.lgpl2Plus;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ phreedom ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/libraries/mpich/default.nix b/pkgs/development/libraries/mpich/default.nix
index 3aed0d28852..7fe1dc33134 100644
--- a/pkgs/development/libraries/mpich/default.nix
+++ b/pkgs/development/libraries/mpich/default.nix
@@ -11,11 +11,11 @@ assert (ch4backend.pname == "ucx" || ch4backend.pname == "libfabric");
 
 stdenv.mkDerivation  rec {
   pname = "mpich";
-  version = "3.4.2";
+  version = "3.4.3";
 
   src = fetchurl {
     url = "https://www.mpich.org/static/downloads/${version}/mpich-${version}.tar.gz";
-    sha256 = "1gw7qpb27mhsj7ip0hhljshgpwvz2hmyhizhlp6793afp2lbw6aw";
+    sha256 = "1msg5i2mcmjix5pvpa84dwmlqpqm3206frl1060k342i62gxhm41";
   };
 
   configureFlags = [
diff --git a/pkgs/development/libraries/mtxclient/default.nix b/pkgs/development/libraries/mtxclient/default.nix
index 48f860c672c..4e5eed1e439 100644
--- a/pkgs/development/libraries/mtxclient/default.nix
+++ b/pkgs/development/libraries/mtxclient/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mtxclient";
-  version = "0.6.0";
+  version = "0.6.1";
 
   src = fetchFromGitHub {
     owner = "Nheko-Reborn";
     repo = "mtxclient";
     rev = "v${version}";
-    sha256 = "0sxx7vj6a1n2d95c118pjq52707qwf16154fdvz5f4z1pq7c8dsi";
+    sha256 = "sha256-hTB0a5KXcQb0MCEX9YonDJOGlTmRkrOIP9UFlwuJc6g=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/libraries/openssl/default.nix b/pkgs/development/libraries/openssl/default.nix
index ca2e240dd86..e9935317cdf 100644
--- a/pkgs/development/libraries/openssl/default.nix
+++ b/pkgs/development/libraries/openssl/default.nix
@@ -207,8 +207,8 @@ in {
   };
 
   openssl_3_0 = common {
-    version = "3.0.0";
-    sha256 = "sha256-We7fy0bCUhTJvTftYHgpe03wHQEiZ/6enu4x9hvHBTY=";
+    version = "3.0.1";
+    sha256 = "sha256-wxGthTNTvOeW7a0BqGLFCopYf2Ln4hAO9GWrU+ybBtE=";
     patches = [
       ./3.0/nix-ssl-cert-file.patch
 
diff --git a/pkgs/development/libraries/physics/cernlib/default.nix b/pkgs/development/libraries/physics/cernlib/default.nix
index b2656f1cc99..7028c44b434 100644
--- a/pkgs/development/libraries/physics/cernlib/default.nix
+++ b/pkgs/development/libraries/physics/cernlib/default.nix
@@ -19,15 +19,23 @@ stdenv.mkDerivation rec {
   patches = [ ./patch.patch ./0001-Use-strerror-rather-than-sys_errlist-to-fix-compilat.patch ];
 
   postPatch = ''
+    echo 'InstallBinSubdirs(packlib scripts)' >> 2006/src/Imakefile
     substituteInPlace 2006/src/config/site.def \
       --replace "# define MakeCmd gmake" "# define MakeCmd make"
     substituteInPlace 2006/src/config/lnxLib.rules \
       --replace "# lib" "// lib"
+
+    substituteInPlace 2006/src/config/linux.cf \
+      --replace "# ifdef Hasgfortran" "# if 1" \
+      --replace "# define CcCmd			gcc4" "# define CcCmd			gcc"
+    substituteInPlace 2006/src/scripts/cernlib \
+      --replace "-lnsl" ""
+
     # binutils 2.37 fix
     substituteInPlace 2006/src/config/Imake.tmpl --replace "clq" "cq"
   '';
 
-  configurePhase = ''
+  preConfigure = ''
     export CERN=`pwd`
     export CERN_LEVEL=${version}
     export CERN_ROOT=$CERN/$CERN_LEVEL
@@ -43,32 +51,39 @@ stdenv.mkDerivation rec {
     "-fallow-argument-mismatch"
   ];
 
+  NIX_CFLAGS = [ "-Wno-return-type" ];
+
   makeFlags = [
     "FORTRANOPTIONS=$(FFLAGS)"
+    "CCOPTIONS=$(NIX_CFLAGS)"
   ];
 
-  buildPhase = ''
-    cd $CERN_ROOT
-    mkdir -p build bin lib
+  configurePhase = ''
+    runHook preConfigure
 
+    cd $CERN_ROOT
+    mkdir -p build
     cd $CERN_ROOT/build
     $CVSCOSRC/config/imake_boot
+
+    runHook postConfigure
+  '';
+
+  preBuild = ''
     make -j $NIX_BUILD_CORES $makeFlags bin/kuipc
     make -j $NIX_BUILD_CORES $makeFlags scripts/Makefile
     pushd scripts
-    make -j $NIX_BUILD_CORES $makeFlags install.bin
+    make -j $NIX_BUILD_CORES $makeFlags bin/cernlib
     popd
-    make -j $NIX_BUILD_CORES $makeFlags
   '';
 
-  installPhase = ''
-    mkdir "$out"
-    cp -r "$CERN_ROOT/bin" "$out"
-    cp -r "$CERN_ROOT/lib" "$out"
-    mkdir "$out/$CERN_LEVEL"
-    ln -s "$out/bin" "$out/$CERN_LEVEL/bin"
-    ln -s "$out/lib" "$out/$CERN_LEVEL/lib"
-  '';
+  installTargets = [ "install.bin" "install.lib" "install.include" ];
+  installFlags = [
+    "CERN_BINDIR=${placeholder "out"}/bin"
+    "CERN_INCLUDEDIR=${placeholder "out"}/include"
+    "CERN_LIBDIR=${placeholder "out"}/lib"
+    "CERN_SHLIBDIR=${placeholder "out"}/libexec"
+  ];
 
   setupHook = ./setup-hook.sh;
 
diff --git a/pkgs/development/libraries/physics/geant4/datasets.nix b/pkgs/development/libraries/physics/geant4/datasets.nix
index 4c6906c9c2e..e9b7f54e2a4 100644
--- a/pkgs/development/libraries/physics/geant4/datasets.nix
+++ b/pkgs/development/libraries/physics/geant4/datasets.nix
@@ -36,84 +36,84 @@ in
     {
       name = "G4NDL";
       version = "4.6";
-      sha256 = "022l2jjhi57frfdv9nk6s6q23gmr9zkix06fmni8gf0gmvr7qa4x";
+      sha256 = "sha256-nSh88q4PuIeirc6AHudPub4hsNFm2rSby+6UCKUUVAg=";
       envvar = "NEUTRONHP";
     }
 
     {
       name = "G4EMLOW";
-      version = "7.13";
-      sha256 = "0scczd4ismvd4g3vfshbvwv92bzkdjz0ma7y21n6qxxy96v9cj1p";
+      version = "8.0";
+      sha256 = "sha256-2Rmo5YOGiCV7kkimE5EOsqdjMFngMMi1DAosKtn9Kzs=";
       envvar = "LE";
     }
 
     {
       name = "G4PhotonEvaporation";
       version = "5.7";
-      sha256 = "1rg7fygfxx06h98ywlci6b0b9ih74q8diygr76c3vppxdzjl47kn";
+      sha256 = "sha256-dh5C5W/93j2YOfn52BAmB8a0wDKRUe5Rggb07p535+U=";
       envvar = "LEVELGAMMA";
     }
 
     {
       name = "G4RadioactiveDecay";
       version = "5.6";
-      sha256 = "1w8d9zzc4ss7sh1f8cxv5pmrx2b74p1y26377rw9hnlfkiy0g1iq";
+      sha256 = "sha256-OIYHfJyOWph4PmcY4cMlZ4me6y27M+QC1Edrwv5PDfE=";
       envvar = "RADIOACTIVE";
     }
 
     {
       name = "G4SAIDDATA";
       version = "2.0";
-      sha256 = "149fqy801n1pj2g6lcai2ziyvdz8cxdgbfarax6y8wdakgksh9hx";
+      sha256 = "sha256-HSao55uqceRNV1m59Vpn6Lft4xdRMWqekDfYAJDHLpE=";
       envvar = "SAIDXS";
     }
 
     {
       name = "G4PARTICLEXS";
-      version = "3.1.1";
-      sha256 = "1nmgy8w1s196php7inrkbsi0f690qa2dsyj9s1sp75mndkfpxhb6";
+      version = "4.0";
+      sha256 = "sha256-k4EDlwPD8rD9NqtJmTYqLItP+QgMMi+QtOMZKBEzypU=";
       envvar = "PARTICLEXS";
     }
 
     {
       name = "G4ABLA";
       version = "3.1";
-      sha256 = "1v97q28g1xqwnav0lwzwk7hc3b87yrmbvkgadf4bkwcbnm9b163n";
+      sha256 = "sha256-dpiwUrWL8bmIa+rNvWr2B63B4Jn8cwq2shz38JDAJ+0=";
       envvar = "ABLA";
     }
 
     {
       name = "G4INCL";
       version = "1.0";
-      sha256 = "0z9nqk125vvf4f19lhgb37jy60jf9zrjqg5zbxbd1wz93a162qbi";
+      sha256 = "sha256-cWFhghrp89BWX788LPNPTgLj5RnrQZqCI27vIsLENn0=";
       envvar = "INCL";
     }
 
     {
       name = "G4PII";
       version = "1.3";
-      sha256 = "09p92rk1sj837m6n6yd9k9a8gkh6bby2bfn6k0f3ix3m4s8as9b2";
+      sha256 = "sha256-YiWtkCZ19DgcmMa6JfxaBs6HVJqpeWNNPQNJHWYW6SY=";
       envvar = "PII";
     }
 
     {
       name = "G4ENSDFSTATE";
       version = "2.3";
-      sha256 = "00wjir59rrrlk0a12vi8rsnhyya71rdi1kmark9sp487hbhcai4l";
+      sha256 = "sha256-lETF4IIHkavTzKrOEFsOR3kPrc4obhEUmDTnnEqOkgM=";
       envvar = "ENSDFSTATE";
     }
 
     {
       name = "G4RealSurface";
       version = "2.2";
-      sha256 = "08382y1258ifs7nap6zaaazvabg72blr0dkqgwk32lrg07hdwm4r";
+      sha256 = "sha256-mVTe4AEvUzEmf3g2kOkS5y21v1Lqm6vs0S6iIoIXaCA=";
       envvar = "REALSURFACE";
     }
 
     {
       name = "G4TENDL";
-      version = "1.3.2";
-      sha256 = "0jdqmz3rz5a7yrq1mli6dj3bnmn73igf4fdxwfbl3rxywg38fa9v";
+      version = "1.4";
+      sha256 = "sha256-S3J0AgzItO1Wm4ku8YwuCI7c22tm850lWFzO4l2XIeA=";
       envvar = "PARTICLEHP";
     }
   ])
diff --git a/pkgs/development/libraries/physics/geant4/default.nix b/pkgs/development/libraries/physics/geant4/default.nix
index 8d2f2f1ef55..6f29b590981 100644
--- a/pkgs/development/libraries/physics/geant4/default.nix
+++ b/pkgs/development/libraries/physics/geant4/default.nix
@@ -49,24 +49,14 @@ let
 in
 
 stdenv.mkDerivation rec {
-  version = "10.7.1";
+  version = "11.0.0";
   pname = "geant4";
 
   src = fetchurl{
-    url = "https://geant4-data.web.cern.ch/geant4-data/releases/geant4.10.07.p01.tar.gz";
-    sha256 = "07if874aljizkjyp21qj6v193pmyifyfmwi5kg8jm71x79sn2laj";
+    url = "https://cern.ch/geant4-data/releases/geant4-v${version}.tar.gz";
+    sha256 = "sha256-PMin350/8ceiGmLS6zoQvhX2uxWNOTI78yEzScnvdbk=";
   };
 
-  boost_python_lib = "python${builtins.replaceStrings ["."] [""] python3.pythonVersion}";
-  postPatch = ''
-    # Fix for boost 1.67+
-    substituteInPlace environments/g4py/CMakeLists.txt \
-      --replace "REQUIRED python" \
-                "REQUIRED COMPONENTS $boost_python_lib"
-    substituteInPlace environments/g4py/G4PythonHelpers.cmake \
-      --replace "Boost::python" "Boost::$boost_python_lib"
-  '';
-
   cmakeFlags = [
     "-DGEANT4_INSTALL_DATA=OFF"
     "-DGEANT4_USE_GDML=${if enableGDML then "ON" else "OFF"}"
@@ -137,7 +127,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "http://www.geant4.org";
     license = licenses.g4sl;
-    maintainers = with maintainers; [ tmplt omnipotententity ];
+    maintainers = with maintainers; [ omnipotententity ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/pipewire/default.nix b/pkgs/development/libraries/pipewire/default.nix
index cf02589792f..54680152248 100644
--- a/pkgs/development/libraries/pipewire/default.nix
+++ b/pkgs/development/libraries/pipewire/default.nix
@@ -10,7 +10,6 @@
 , docutils
 , doxygen
 , graphviz
-, valgrind
 , glib
 , dbus
 , alsa-lib
@@ -28,28 +27,30 @@
 , makeFontsConf
 , callPackage
 , nixosTests
+, withValgrind ? lib.meta.availableOn stdenv.hostPlatform valgrind
+, valgrind
 , withMediaSession ? true
 , libcameraSupport ? true
 , libcamera
 , libdrm
 , gstreamerSupport ? true
-, gst_all_1 ? null
+, gst_all_1
 , ffmpegSupport ? true
-, ffmpeg ? null
+, ffmpeg
 , bluezSupport ? true
-, bluez ? null
-, sbc ? null
-, libfreeaptx ? null
-, ldacbt ? null
-, fdk_aac ? null
+, bluez
+, sbc
+, libfreeaptx
+, ldacbt
+, fdk_aac
 , nativeHspSupport ? true
 , nativeHfpSupport ? true
 , ofonoSupport ? true
 , hsphfpdSupport ? true
 , pulseTunnelSupport ? true
-, libpulseaudio ? null
+, libpulseaudio
 , zeroconfSupport ? true
-, avahi ? null
+, avahi
 }:
 
 let
@@ -121,7 +122,6 @@ let
       vulkan-headers
       vulkan-loader
       webrtc-audio-processing
-      valgrind
       SDL2
       systemd
     ] ++ lib.optionals gstreamerSupport [ gst_all_1.gst-plugins-base gst_all_1.gstreamer ]
@@ -131,6 +131,9 @@ let
     ++ lib.optional pulseTunnelSupport libpulseaudio
     ++ lib.optional zeroconfSupport avahi;
 
+    # Valgrind binary is required for running one optional test.
+    checkInputs = lib.optional withValgrind valgrind;
+
     mesonFlags = [
       "-Ddocs=enabled"
       "-Dudevrulesdir=lib/udev/rules.d"
diff --git a/pkgs/development/libraries/qt-4.x/4.8/default.nix b/pkgs/development/libraries/qt-4.x/4.8/default.nix
index 36f4377727a..96d2abe5a6e 100644
--- a/pkgs/development/libraries/qt-4.x/4.8/default.nix
+++ b/pkgs/development/libraries/qt-4.x/4.8/default.nix
@@ -242,7 +242,7 @@ stdenv.mkDerivation rec {
     homepage    = "https://qt-project.org/";
     description = "A cross-platform application framework for C++";
     license     = lib.licenses.lgpl21Plus; # or gpl3
-    maintainers = with lib.maintainers; [ orivej lovek323 phreedom sander ];
+    maintainers = with lib.maintainers; [ orivej lovek323 sander ];
     platforms   = lib.platforms.unix;
     badPlatforms = [ "x86_64-darwin" ];
   };
diff --git a/pkgs/development/libraries/qt-5/5.12/default.nix b/pkgs/development/libraries/qt-5/5.12/default.nix
index a047b5b7108..ec4055d5916 100644
--- a/pkgs/development/libraries/qt-5/5.12/default.nix
+++ b/pkgs/development/libraries/qt-5/5.12/default.nix
@@ -162,7 +162,9 @@ let
       qtconnectivity = callPackage ../modules/qtconnectivity.nix {};
       qtdeclarative = callPackage ../modules/qtdeclarative.nix {};
       qtdoc = callPackage ../modules/qtdoc.nix {};
-      qtgamepad = callPackage ../modules/qtgamepad.nix {};
+      qtgamepad = callPackage ../modules/qtgamepad.nix {
+        inherit (darwin.apple_sdk.frameworks) GameController;
+      };
       qtgraphicaleffects = callPackage ../modules/qtgraphicaleffects.nix {};
       qtimageformats = callPackage ../modules/qtimageformats.nix {};
       qtlocation = callPackage ../modules/qtlocation.nix {};
diff --git a/pkgs/development/libraries/qt-5/5.14/default.nix b/pkgs/development/libraries/qt-5/5.14/default.nix
index c12a20dd4da..b09826ec915 100644
--- a/pkgs/development/libraries/qt-5/5.14/default.nix
+++ b/pkgs/development/libraries/qt-5/5.14/default.nix
@@ -163,6 +163,9 @@ let
       qtconnectivity = callPackage ../modules/qtconnectivity.nix {};
       qtdeclarative = callPackage ../modules/qtdeclarative.nix {};
       qtdoc = callPackage ../modules/qtdoc.nix {};
+      qtgamepad = callPackage ../modules/qtgamepad.nix {
+        inherit (darwin.apple_sdk.frameworks) GameController;
+      };
       qtgraphicaleffects = callPackage ../modules/qtgraphicaleffects.nix {};
       qtimageformats = callPackage ../modules/qtimageformats.nix {};
       qtlocation = callPackage ../modules/qtlocation.nix {};
diff --git a/pkgs/development/libraries/qt-5/5.15/default.nix b/pkgs/development/libraries/qt-5/5.15/default.nix
index 0b4fc4f1c5e..650e4fd32bb 100644
--- a/pkgs/development/libraries/qt-5/5.15/default.nix
+++ b/pkgs/development/libraries/qt-5/5.15/default.nix
@@ -125,7 +125,9 @@ let
       qtconnectivity = callPackage ../modules/qtconnectivity.nix {};
       qtdeclarative = callPackage ../modules/qtdeclarative.nix {};
       qtdoc = callPackage ../modules/qtdoc.nix {};
-      qtgamepad = callPackage ../modules/qtgamepad.nix {};
+      qtgamepad = callPackage ../modules/qtgamepad.nix {
+        inherit (darwin.apple_sdk.frameworks) GameController;
+      };
       qtgraphicaleffects = callPackage ../modules/qtgraphicaleffects.nix {};
       qtimageformats = callPackage ../modules/qtimageformats.nix {};
       qtlocation = callPackage ../modules/qtlocation.nix {};
diff --git a/pkgs/development/libraries/qt-5/modules/qtgamepad.nix b/pkgs/development/libraries/qt-5/modules/qtgamepad.nix
index 2e266060a34..147fb0745db 100644
--- a/pkgs/development/libraries/qt-5/modules/qtgamepad.nix
+++ b/pkgs/development/libraries/qt-5/modules/qtgamepad.nix
@@ -1,8 +1,9 @@
-{ qtModule, qtbase, qtdeclarative, pkg-config }:
+{ lib, stdenv, qtModule, qtbase, qtdeclarative, GameController, pkg-config }:
 
 qtModule {
   pname = "qtgamepad";
-  qtInputs = [ qtbase qtdeclarative ];
+  qtInputs = [ qtbase qtdeclarative ]
+    ++ lib.optional stdenv.isDarwin GameController;
   buildInputs = [ ];
   nativeBuildInputs = [ pkg-config ];
   outputs = [ "out" "dev" "bin" ];
diff --git a/pkgs/development/libraries/qtutilities/default.nix b/pkgs/development/libraries/qtutilities/default.nix
index d2a700cdfe4..6027e5b0385 100644
--- a/pkgs/development/libraries/qtutilities/default.nix
+++ b/pkgs/development/libraries/qtutilities/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "qtutilities";
-  version = "6.5.2";
+  version = "6.5.3";
 
   src = fetchFromGitHub {
     owner = "Martchus";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-/2gw6k6RUYBRnKJ85C8sDBCCcBEfkRU+MCgWi5/Z2hc=";
+    sha256 = "sha256-P1vAmH1cF5qQxpa4AOIOyK8ogLZgyXt8jaxaHwE9qck=";
   };
 
   buildInputs = [ qtbase cpp-utilities ];
diff --git a/pkgs/development/libraries/science/math/primecount/default.nix b/pkgs/development/libraries/science/math/primecount/default.nix
new file mode 100644
index 00000000000..7985b9d6dbd
--- /dev/null
+++ b/pkgs/development/libraries/science/math/primecount/default.nix
@@ -0,0 +1,25 @@
+{ lib, stdenv, fetchFromGitHub, cmake, primesieve }:
+
+stdenv.mkDerivation rec {
+  pname = "primecount";
+  version = "7.2";
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ primesieve ];
+
+  src = fetchFromGitHub {
+    owner = "kimwalisch";
+    repo = "primecount";
+    rev = "v${version}";
+    sha256 = "sha256-/Cb/HkD4UQ9gXsRpvRiEuQBoRd0THxNHsBaAAa+CqQo=";
+  };
+
+  meta = with lib; {
+    description = "Fast prime counting function implementations";
+    homepage = "https://github.com/kimwalisch/primecount";
+    license = licenses.bsd2;
+    platforms = platforms.unix;
+    maintainers = teams.sage.members;
+  };
+}
diff --git a/pkgs/development/libraries/simdjson/default.nix b/pkgs/development/libraries/simdjson/default.nix
index a2c8c7199a2..56b76ba8875 100644
--- a/pkgs/development/libraries/simdjson/default.nix
+++ b/pkgs/development/libraries/simdjson/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "simdjson";
-  version = "1.0.1";
+  version = "1.0.2";
 
   src = fetchFromGitHub {
     owner = "simdjson";
     repo = "simdjson";
     rev = "v${version}";
-    sha256 = "sha256-NpRpF+1tzPEjBo6i1GxACeAMDn+WEX8C80vInNffqug=";
+    sha256 = "sha256-WuqBR1/Iqly+Y8kJxTuZLTVkR3ltXdyr+/6J3zhBNkQ=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/spglib/default.nix b/pkgs/development/libraries/spglib/default.nix
index 9f50c80bf7a..6d973f36c02 100644
--- a/pkgs/development/libraries/spglib/default.nix
+++ b/pkgs/development/libraries/spglib/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "spglib";
-  version = "1.16.2";
+  version = "1.16.3";
 
   src = fetchFromGitHub {
     owner = "atztogo";
     repo = "spglib";
     rev = "v${version}";
-    sha256 = "1sbrk26xyvlhqxxv9cq2ycxwbiafgmh7lf221377zpqq8q3iavd7";
+    sha256 = "sha256-sM6+RBAVc2aJYlWatdD4nYZkFnaTFVjBzd/VDSSA+kk=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/tdlib/default.nix b/pkgs/development/libraries/tdlib/default.nix
index efad8832a31..c1040c942ce 100644
--- a/pkgs/development/libraries/tdlib/default.nix
+++ b/pkgs/development/libraries/tdlib/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "tdlib";
-  version = "1.7.9";
+  version = "1.7.10";
 
   src = fetchFromGitHub {
     owner = "tdlib";
     repo = "td";
-    # https://github.com/tdlib/td/issues/1718
-    rev = "7d41d9eaa58a6e0927806283252dc9e74eda5512";
-    sha256 = "09b7srbfqi4gmg5pdi398pr0pxihw4d3cw85ycky54g862idzqs8";
+    # https://github.com/tdlib/td/issues/1790
+    rev = "a53cb30e99f937cfd64e0266fa558785a184a553";
+    sha256 = "FX+66JRsigauLq2JLx0InWiedGeQJ9+ox+D/Bqik9ik=";
   };
 
   buildInputs = [ gperf openssl readline zlib ];
diff --git a/pkgs/development/libraries/tkrzw/default.nix b/pkgs/development/libraries/tkrzw/default.nix
index e8163c5282c..84a026be20f 100644
--- a/pkgs/development/libraries/tkrzw/default.nix
+++ b/pkgs/development/libraries/tkrzw/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "tkrzw";
-  version = "0.9.51";
+  version = "1.0.21";
   # TODO: defeat multi-output reference cycles
 
   src = fetchurl {
     url = "https://dbmx.net/tkrzw/pkg/tkrzw-${version}.tar.gz";
-    hash = "sha256-UqF2cJ/r8OksAKyHw6B9UiBFIXgKeDmD2ZyJ+iPkY2w=";
+    hash = "sha256-1g3sIRXxYtD8XGVNpbn4HLTCi+xl2yfJklbUouMQcHs=";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/tsocks/default.nix b/pkgs/development/libraries/tsocks/default.nix
index 728c6e71f7f..d3129441185 100644
--- a/pkgs/development/libraries/tsocks/default.nix
+++ b/pkgs/development/libraries/tsocks/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
     description = "Transparent SOCKS v4 proxying library";
     homepage = "http://tsocks.sourceforge.net/";
     license = lib.licenses.gpl2;
-    maintainers = with maintainers; [ edwtjo phreedom ];
+    maintainers = with maintainers; [ edwtjo ];
     platforms = platforms.unix;
     broken = stdenv.hostPlatform.isDarwin;
   };
diff --git a/pkgs/development/libraries/uhttpmock/default.nix b/pkgs/development/libraries/uhttpmock/default.nix
index 5420eb204e3..7a27cd1fd67 100644
--- a/pkgs/development/libraries/uhttpmock/default.nix
+++ b/pkgs/development/libraries/uhttpmock/default.nix
@@ -11,10 +11,10 @@ stdenv.mkDerivation rec {
     sha256 = "0kkf670abkq5ikm3mqls475lydfsd9by1kv5im4k757xrl1br1d4";
   };
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ autoconf gtk-doc automake libtool glib libsoup gobject-introspection ];
+  nativeBuildInputs = [ pkg-config autoconf automake gtk-doc libtool gobject-introspection ];
+  buildInputs = [ glib libsoup ];
 
-  preConfigure = "./autogen.sh";
+  preConfigure = "NOCONFIGURE=1 ./autogen.sh";
 
   meta = with lib; {
     description = "Project for mocking web service APIs which use HTTP or HTTPS";
diff --git a/pkgs/development/libraries/umockdev/default.nix b/pkgs/development/libraries/umockdev/default.nix
index d432fd15889..f6d1233d279 100644
--- a/pkgs/development/libraries/umockdev/default.nix
+++ b/pkgs/development/libraries/umockdev/default.nix
@@ -19,13 +19,13 @@
 
 stdenv.mkDerivation rec {
   pname = "umockdev";
-  version = "0.16.3";
+  version = "0.17.0";
 
   outputs = [ "bin" "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "https://github.com/martinpitt/umockdev/releases/download/${version}/${pname}-${version}.tar.xz";
-    sha256 = "TjHxqtz8mPhzpsMb5lXWdj8hx/whsadTfor4S2x4U2M=";
+    sha256 = "sha256-rrZtftnvKWJ8f8qIjAOcudn2uvE1upwgByoLrtv1leY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/ustr/default.nix b/pkgs/development/libraries/ustr/default.nix
index 2b04d8c0c5b..564a996949d 100644
--- a/pkgs/development/libraries/ustr/default.nix
+++ b/pkgs/development/libraries/ustr/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
     homepage = "http://www.and.org/ustr/";
     description = "Micro String API for C language";
     license = licenses.bsd2;
-    maintainers = [ maintainers.phreedom ];
+    maintainers = [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/webkitgtk/default.nix b/pkgs/development/libraries/webkitgtk/default.nix
index d3b0ef67d86..d8b7bbc6d65 100644
--- a/pkgs/development/libraries/webkitgtk/default.nix
+++ b/pkgs/development/libraries/webkitgtk/default.nix
@@ -64,7 +64,7 @@ assert enableGeoLocation -> geoclue2 != null;
 
 stdenv.mkDerivation rec {
   pname = "webkitgtk";
-  version = "2.34.1";
+  version = "2.34.3";
 
   outputs = [ "out" "dev" ];
 
@@ -72,7 +72,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://webkitgtk.org/releases/${pname}-${version}.tar.xz";
-    sha256 = "sha256-RDwTFnBd4CR0F0joX+MjJNKZ2e5o5v6zQLieSgQHPe4=";
+    sha256 = "sha256-DS83qjLiGjbk3Vpc565c4nQ1wp1oA7liuMkMsMxJxS0=";
   };
 
   patches = lib.optionals stdenv.isLinux [
diff --git a/pkgs/development/lisp-modules/asdf/2.26.nix b/pkgs/development/lisp-modules/asdf/2.26.nix
index e2f655a5b6e..05851777a7f 100644
--- a/pkgs/development/lisp-modules/asdf/2.26.nix
+++ b/pkgs/development/lisp-modules/asdf/2.26.nix
@@ -1,23 +1,19 @@
-{lib, stdenv, fetchurl, texinfo, texLive, perl}:
-let
-  s = # Generated upstream information
-  rec {
-    baseName="asdf";
-    version="2.26";
-    name="${baseName}-${version}";
-    url="http://common-lisp.net/project/asdf/archives/asdf-${version}.tar.gz";
-    sha256="1qzp444rgnqf1cz9v48nh0yvz7wjq9fjdpimifsfcjswaqi2xrdn";
+{ lib, stdenv, fetchurl, texinfo, texLive, perl }:
+
+stdenv.mkDerivation rec {
+  pname = "asdf";
+  version = "2.26";
+
+  src = fetchurl {
+    url = "http://common-lisp.net/project/asdf/archives/asdf-${version}.tar.gz";
+    sha256 = "sha256-tuUuIlZcS+a0izXeJl3Ckp+/PYAWkZ0+Cw7blwkh9+M=";
   };
+
   buildInputs = [
-    texinfo texLive perl
+    texinfo
+    texLive
+    perl
   ];
-in
-stdenv.mkDerivation {
-  inherit (s) name version;
-  inherit buildInputs;
-  src = fetchurl {
-    inherit (s) url sha256;
-  };
 
   buildPhase = ''
     make asdf.lisp
@@ -31,11 +27,11 @@ stdenv.mkDerivation {
     cp -r doc/* "$out"/share/doc/asdf/
     ln -s  "$out"/lib/common-lisp/{asdf/uiop,uiop}
   '';
+
   meta = with lib; {
-    inherit (s) version;
     description = "Standard software-system definition library for Common Lisp";
     license = licenses.mit;
-    maintainers = [maintainers.raskin];
+    maintainers = with maintainers; [ raskin ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/lisp-modules/asdf/3.1.nix b/pkgs/development/lisp-modules/asdf/3.1.nix
index 7e697d3a637..11cee90bf1f 100644
--- a/pkgs/development/lisp-modules/asdf/3.1.nix
+++ b/pkgs/development/lisp-modules/asdf/3.1.nix
@@ -1,23 +1,19 @@
-{lib, stdenv, fetchurl, texinfo, texLive, perl}:
-let
-  s = # Generated upstream information
-  rec {
-    baseName="asdf";
-    version="3.1.7";
-    name="${baseName}-${version}";
-    url="http://common-lisp.net/project/asdf/archives/asdf-${version}.tar.gz";
-    sha256="1g8wp3vi7gwrs22gnjy9lvrxqag3m8apxnryfs8n5bv6rln8bzzq";
+{ lib, stdenv, fetchurl, texinfo, texLive, perl }:
+
+stdenv.mkDerivation rec {
+  pname = "asdf";
+  version = "3.1.7";
+
+  src = fetchurl {
+    url = "http://common-lisp.net/project/asdf/archives/asdf-${version}.tar.gz";
+    sha256 = "sha256-+P+FLM1mr2KRdj7bfhWq4ync86bJS/uE0Jm/E/e4HL0=";
   };
+
   buildInputs = [
-    texinfo texLive perl
+    texinfo
+    texLive
+    perl
   ];
-in
-stdenv.mkDerivation {
-  inherit (s) name version;
-  inherit buildInputs;
-  src = fetchurl {
-    inherit (s) url sha256;
-  };
 
   buildPhase = ''
     make build/asdf.lisp
@@ -30,11 +26,11 @@ stdenv.mkDerivation {
     cp -r doc/* "$out"/share/doc/asdf/
     ln -s  "$out"/lib/common-lisp/{asdf/uiop,uiop}
   '';
+
   meta = with lib; {
-    inherit (s) version;
     description = "Standard software-system definition library for Common Lisp";
-    license = licenses.mit ;
-    maintainers = [maintainers.raskin];
+    license = licenses.mit;
+    maintainers = with maintainers; [ raskin ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/lisp-modules/asdf/default.nix b/pkgs/development/lisp-modules/asdf/default.nix
index eecea3f98b6..d1b45cb32c3 100644
--- a/pkgs/development/lisp-modules/asdf/default.nix
+++ b/pkgs/development/lisp-modules/asdf/default.nix
@@ -1,24 +1,19 @@
-{lib, stdenv, fetchurl, texinfo, texLive, perl}:
-let
-  s = # Generated upstream information
-  rec {
-    baseName="asdf";
-    version="3.3.4";
-    name="${baseName}-${version}";
-    hash="07npcxgq2m07w78k8gnz9i73kbw6ky2zh2pylhh9b69jvncdqkpy";
-    url="http://common-lisp.net/project/asdf/archives/asdf-3.3.4.tar.gz";
-    sha256="07npcxgq2m07w78k8gnz9i73kbw6ky2zh2pylhh9b69jvncdqkpy";
+{ lib, stdenv, fetchurl, texinfo, texLive, perl }:
+
+stdenv.mkDerivation rec {
+  pname = "asdf";
+  version = "3.3.4";
+
+  src = fetchurl {
+    url = "http://common-lisp.net/project/asdf/archives/asdf-${version}.tar.gz";
+    sha256 = "sha256-/k7cmN0ymZUgpP4K+IWfhq85TkzfPjTR4QdUgV9n1x4=";
   };
+
   buildInputs = [
-    texinfo texLive perl
+    texinfo
+    texLive
+    perl
   ];
-in
-stdenv.mkDerivation {
-  inherit (s) name version;
-  inherit buildInputs;
-  src = fetchurl {
-    inherit (s) url sha256;
-  };
 
   buildPhase = ''
     make build/asdf.lisp
@@ -31,11 +26,11 @@ stdenv.mkDerivation {
     cp -r doc/* "$out"/share/doc/asdf/
     ln -s  "$out"/lib/common-lisp/{asdf/uiop,uiop}
   '';
+
   meta = with lib; {
-    inherit (s) version;
     description = "Standard software-system definition library for Common Lisp";
-    license = licenses.mit ;
-    maintainers = [maintainers.raskin];
+    license = licenses.mit;
+    maintainers = with maintainers; [ raskin ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/lisp-modules/asdf/default.upstream b/pkgs/development/lisp-modules/asdf/default.upstream
deleted file mode 100644
index d8625182352..00000000000
--- a/pkgs/development/lisp-modules/asdf/default.upstream
+++ /dev/null
@@ -1,2 +0,0 @@
-url http://common-lisp.net/project/asdf/archives/
-version_link asdf-[0-9].*[.]tar[.].*
diff --git a/pkgs/development/nim-packages/build-nim-package/default.nix b/pkgs/development/nim-packages/build-nim-package/default.nix
index 6c7aafd22c8..acf67b9f897 100644
--- a/pkgs/development/nim-packages/build-nim-package/default.nix
+++ b/pkgs/development/nim-packages/build-nim-package/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation (attrs // {
     nim_builder --phase:configure
     runHook postConfigure
   '' else
-    buildPhase;
+    configurePhase;
 
   buildPhase = if isNull buildPhase then ''
     runHook preBuild
diff --git a/pkgs/development/nim-packages/python/default.nix b/pkgs/development/nim-packages/python/default.nix
deleted file mode 100644
index 38002c15c93..00000000000
--- a/pkgs/development/nim-packages/python/default.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ lib, buildNimPackage, fetchFromGitHub, python27 }:
-
-buildNimPackage rec {
-  pname = "python";
-  version = "1.2";
-  src = fetchFromGitHub {
-    owner = "nim-lang";
-    repo = pname;
-    rev = "b7c3b2c447a69fdb0a974ba149062e52182fda08";
-    hash = "sha256-Wl4on0rf4zbNxmwmq/ZkNiPIFCZY+1BdokPQoba2EVI=";
-  };
-  postPatch = let pythonLib = "${python27}/lib/libpython2.7.so";
-  in ''
-    substituteInPlace src/python.nim \
-      --replace 'items(LibNames)' "[\"${pythonLib}\"]" \
-      --replace 'dynlib: dllname' 'dynlib: "${pythonLib}"'
-  '';
-  doCheck = true;
-  meta = with lib;
-    src.meta // {
-      description = "Nim wrapper for the Python 2 programming language";
-      license = [ licenses.mit ];
-      maintainers = [ maintainers.ehmry ];
-    };
-}
diff --git a/pkgs/development/nim-packages/spry/default.nix b/pkgs/development/nim-packages/spry/default.nix
index 497431be1e8..ebb23de7014 100644
--- a/pkgs/development/nim-packages/spry/default.nix
+++ b/pkgs/development/nim-packages/spry/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildNimPackage, fetchFromGitHub, python, rocksdb, snappy, spryvm, stew
+{ lib, buildNimPackage, fetchFromGitHub, rocksdb, snappy, spryvm, stew
 , tempfile, ui }:
 
 buildNimPackage rec {
@@ -10,8 +10,8 @@ buildNimPackage rec {
     rev = "098da7bb34a9113d5db5402fecfc76b1c3fa3b36";
     hash = "sha256-PfWBrG2Z16tLgcN8JYpHaNMysBbbYX812Lkgk0ItMwE=";
   };
-  buildInputs = [ python rocksdb snappy spryvm stew tempfile ui ];
-  patches = [ ./nil.patch ];
+  buildInputs = [ rocksdb snappy spryvm stew tempfile ui ];
+  patches = [ ./nil.patch ./python.patch ];
   doCheck = true;
   meta = with lib;
     src.meta // {
diff --git a/pkgs/development/nim-packages/spry/python.patch b/pkgs/development/nim-packages/spry/python.patch
new file mode 100644
index 00000000000..565e53c2ddc
--- /dev/null
+++ b/pkgs/development/nim-packages/spry/python.patch
@@ -0,0 +1,43 @@
+diff --git a/src/ispry.nim b/src/ispry.nim
+index 23ad6c3..d2cfc89 100644
+--- a/src/ispry.nim
++++ b/src/ispry.nim
+@@ -21,7 +21,7 @@ import spryvm/sprycore, spryvm/sprylib, spryvm/spryextend, spryvm/sprymath,
+   spryvm/spryos, spryvm/spryio, spryvm/sprymemfile, spryvm/sprythread,
+   spryvm/spryoo, spryvm/sprydebug, spryvm/sprycompress, spryvm/sprystring,
+   spryvm/sprymodules, spryvm/spryreflect, spryvm/spryblock, spryvm/sprynet,
+-  spryvm/sprysmtp, spryvm/spryjson, spryvm/sprysqlite, spryvm/sprypython,
++  spryvm/sprysmtp, spryvm/spryjson, spryvm/sprysqlite,
+   spryvm/spryrocksdb
+ 
+ const Prompt = ">>> "
+@@ -63,7 +63,6 @@ proc main() =
+ 
+   spry.addMemfile()
+   spry.addThread()
+-  spry.addPython()
+   spry.addDebug()
+   spry.addCompress()
+   spry.addReflect()
+diff --git a/src/spry.nim b/src/spry.nim
+index 670a280..cda9027 100644
+--- a/src/spry.nim
++++ b/src/spry.nim
+@@ -14,8 +14,7 @@ import spryvm/sprycore, spryvm/sprylib, spryvm/spryextend, spryvm/sprymath,
+   spryvm/spryos, spryvm/spryio, spryvm/sprymemfile, spryvm/sprythread,
+   spryvm/spryoo, spryvm/sprydebug, spryvm/sprycompress, spryvm/sprystring,
+   spryvm/sprymodules, spryvm/spryreflect, spryvm/spryui, spryvm/spryblock, spryvm/sprynet,
+-  spryvm/sprysmtp, spryvm/spryjson, spryvm/sprysqlite, spryvm/spryrocksdb,
+-  spryvm/sprypython
++  spryvm/sprysmtp, spryvm/spryjson, spryvm/sprysqlite, spryvm/spryrocksdb
+ 
+ var spry = newInterpreter()
+ 
+@@ -34,7 +33,6 @@ spry.addOO()
+ 
+ spry.addMemfile()
+ spry.addThread()
+-spry.addPython()
+ spry.addDebug()
+ spry.addCompress()
+ spry.addReflect()
diff --git a/pkgs/development/node-packages/default.nix b/pkgs/development/node-packages/default.nix
index 7b8583b6db3..f7ff037df02 100644
--- a/pkgs/development/node-packages/default.nix
+++ b/pkgs/development/node-packages/default.nix
@@ -309,20 +309,13 @@ let
 
     prisma = super.prisma.override rec {
       nativeBuildInputs = [ pkgs.makeWrapper ];
-      version = "3.5.0";
+
+      inherit (pkgs.prisma-engines) version;
+
       src = fetchurl {
         url = "https://registry.npmjs.org/prisma/-/prisma-${version}.tgz";
-        sha512 = "sha512-WEYQ+H98O0yigG+lI0gfh4iyBChvnM6QTXPDtY9eFraLXAmyb6tf/T2mUdrUAU1AEvHLVzQA5A+RpONZlQozBg==";
+        sha512 = "sha512-6SqgHS/5Rq6HtHjsWsTxlj+ySamGyCLBUQfotc2lStOjPv52IQuDVpp58GieNqc9VnfuFyHUvTZw7aQB+G2fvQ==";
       };
-      dependencies = [ rec {
-        name = "_at_prisma_slash_engines";
-        packageName = "@prisma/engines";
-        version = "3.5.0-38.78a5df6def6943431f4c022e1428dbc3e833cf8e";
-        src = fetchurl {
-          url = "https://registry.npmjs.org/@prisma/engines/-/engines-${version}.tgz";
-          sha512 = "sha512-MqZUrxuLlIbjB3wu8LrRJOKcvR4k3dunKoI4Q2bPfAwLQY0XlpsLZ3TRVW1c32ooVk939p6iGNkaCUo63Et36g==";
-        };
-      }];
       postInstall = with pkgs; ''
         wrapProgram "$out/bin/prisma" \
           --set PRISMA_MIGRATION_ENGINE_BINARY ${prisma-engines}/bin/migration-engine \
diff --git a/pkgs/development/node-packages/node-packages.nix b/pkgs/development/node-packages/node-packages.nix
index 81bef6014f6..59d6d063130 100644
--- a/pkgs/development/node-packages/node-packages.nix
+++ b/pkgs/development/node-packages/node-packages.nix
@@ -58,13 +58,13 @@ let
         sha512 = "o/xdK8b4P0t/xpCARgWXAeaiWeh9jeua6bP1jrcbfN39+Z4zC4x2jg4NysHNhz6spRG8dJFH3kJIUoIbs0Ckww==";
       };
     };
-    "@angular-devkit/architect-0.1301.1" = {
+    "@angular-devkit/architect-0.1301.2" = {
       name = "_at_angular-devkit_slash_architect";
       packageName = "@angular-devkit/architect";
-      version = "0.1301.1";
+      version = "0.1301.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1301.1.tgz";
-        sha512 = "3g1wlqihVEOhClsuSzyJYm8Sr4qc4IUDuOa45m8439bz9iQy2wZ3JUGTwX1NcpeLxmCDrgewuphIsW096HxYlg==";
+        url = "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1301.2.tgz";
+        sha512 = "v8e6OF80Ezo5MTHtFcq1AZJH+Wq+hN9pMZ1iLGkODIfKIW9zx6aPhx0JY0b7sZkfNVL8ay8JA8f339eBMnOE9A==";
       };
     };
     "@angular-devkit/core-13.0.2" = {
@@ -76,22 +76,22 @@ let
         sha512 = "I4co4GH+iu0tns+UXfMtjJISO+cLpaUuiEH6kf0wF5cqjaIeluA9UjIRnxuNbdTW8iE2xVj/UWhQfHe/Ncp76w==";
       };
     };
-    "@angular-devkit/core-13.0.3" = {
+    "@angular-devkit/core-13.1.1" = {
       name = "_at_angular-devkit_slash_core";
       packageName = "@angular-devkit/core";
-      version = "13.0.3";
+      version = "13.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-13.0.3.tgz";
-        sha512 = "5yTYW6m4pkDPSYNxThm+47h+UZ6XVEfdfsXR3o+WlRG0hc18EuQ+sXZkzhvZrk5KMLlXFex4eO40RPq2vvWS/w==";
+        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-13.1.1.tgz";
+        sha512 = "tpOOzdrbrXG+BiJ/iKUX5VU5vBXN/n+H1EMThTwjgT11mqw2uvMj4sSRPvHUrrfxbLE9deuCDQEzmci71enn2w==";
       };
     };
-    "@angular-devkit/core-13.1.1" = {
+    "@angular-devkit/core-13.1.2" = {
       name = "_at_angular-devkit_slash_core";
       packageName = "@angular-devkit/core";
-      version = "13.1.1";
+      version = "13.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-13.1.1.tgz";
-        sha512 = "tpOOzdrbrXG+BiJ/iKUX5VU5vBXN/n+H1EMThTwjgT11mqw2uvMj4sSRPvHUrrfxbLE9deuCDQEzmci71enn2w==";
+        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-13.1.2.tgz";
+        sha512 = "uXVesIRiCL/Nv+RSV8JM4j8IoZiGCGnqV2FOJ1hvH7DPxIjhjPMdG/B54xMydZpeASW3ofuxeORyAXxFIBm8Zg==";
       };
     };
     "@angular-devkit/schematics-13.0.2" = {
@@ -103,31 +103,31 @@ let
         sha512 = "qrTe1teQptgP8gmVy6QX0T4dNfnNipEv+cM2cr7JXOmkPpwF+6oBDrTRIJ55t6rziqrXHJ3rxjKm1aHAxFrIEQ==";
       };
     };
-    "@angular-devkit/schematics-13.0.3" = {
+    "@angular-devkit/schematics-13.1.1" = {
       name = "_at_angular-devkit_slash_schematics";
       packageName = "@angular-devkit/schematics";
-      version = "13.0.3";
+      version = "13.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-13.0.3.tgz";
-        sha512 = "+Va1E0zJBCg5jqSfITusghoMJgPAwlU+WUs49fuGVCzfJPwfSjTKSrsbhanahMd27+Ys3rovGZq0F2JUdL801A==";
+        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-13.1.1.tgz";
+        sha512 = "uDE0vzjx7MyiJOul91MYMVpRPnAW5/o+pHcINx85wR6t4/RDQSH3UdBCCFxxwv1W9YZSR4kMiwi/sUYqPqbQMw==";
       };
     };
-    "@angular-devkit/schematics-13.1.1" = {
+    "@angular-devkit/schematics-13.1.2" = {
       name = "_at_angular-devkit_slash_schematics";
       packageName = "@angular-devkit/schematics";
-      version = "13.1.1";
+      version = "13.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-13.1.1.tgz";
-        sha512 = "uDE0vzjx7MyiJOul91MYMVpRPnAW5/o+pHcINx85wR6t4/RDQSH3UdBCCFxxwv1W9YZSR4kMiwi/sUYqPqbQMw==";
+        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-13.1.2.tgz";
+        sha512 = "ayYbHGU8QpMGx8ZyhKOBupz+Zfv/2H1pNQErahYV3qg7hA9hfjTGmNmDQ4iw0fiT04NajjUxuomlKsCsg7oXDw==";
       };
     };
-    "@angular-devkit/schematics-cli-13.0.3" = {
+    "@angular-devkit/schematics-cli-13.1.1" = {
       name = "_at_angular-devkit_slash_schematics-cli";
       packageName = "@angular-devkit/schematics-cli";
-      version = "13.0.3";
+      version = "13.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/schematics-cli/-/schematics-cli-13.0.3.tgz";
-        sha512 = "iGEA3hEbHcmhAkGmrFXKWDnelzhSSJLaZPHr6SLPpztKEU8OFMZxv8NFATc/IpXknEhX3+Tm5DkrOpSc4rJlhA==";
+        url = "https://registry.npmjs.org/@angular-devkit/schematics-cli/-/schematics-cli-13.1.1.tgz";
+        sha512 = "i3hkJ/k0gZMmxIAq0yq0V7mW1kSRJcyND6NN6fmeOEd0UMCwtNhn1sbVdxbdUiKD5vcpNTi5prRmqDITF894bA==";
       };
     };
     "@antora/asciidoc-loader-2.3.4" = {
@@ -364,13 +364,13 @@ let
         sha512 = "O34LQooYVDXPl7QWCdW9p4NR+QlzOr7xShPPJz8GsuCU3/8ua/wqTr7gmnxXv+WBESiGU/G5s16i6tUvHkNb+w==";
       };
     };
-    "@babel/core-7.16.0" = {
+    "@babel/core-7.16.5" = {
       name = "_at_babel_slash_core";
       packageName = "@babel/core";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/core/-/core-7.16.0.tgz";
-        sha512 = "mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ==";
+        url = "https://registry.npmjs.org/@babel/core/-/core-7.16.5.tgz";
+        sha512 = "wUcenlLzuWMZ9Zt8S0KmFwGlH6QKRh3vsm/dhDA3CHkiTA45YuG1XkHRcNRl73EFPXDp/d5kVOU0/y7x2w6OaQ==";
       };
     };
     "@babel/core-7.9.0" = {
@@ -382,13 +382,13 @@ let
         sha512 = "kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==";
       };
     };
-    "@babel/generator-7.16.0" = {
+    "@babel/generator-7.16.5" = {
       name = "_at_babel_slash_generator";
       packageName = "@babel/generator";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.16.0.tgz";
-        sha512 = "RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew==";
+        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.16.5.tgz";
+        sha512 = "kIvCdjZqcdKqoDbVVdt5R99icaRtrtYhYK/xux5qiWCBmfdvEYMFZ68QCrpE5cbFM1JsuArUNs1ZkuKtTtUcZA==";
       };
     };
     "@babel/helper-annotate-as-pure-7.16.0" = {
@@ -400,13 +400,13 @@ let
         sha512 = "ItmYF9vR4zA8cByDocY05o0LGUkp1zhbTQOH1NFyl5xXEqlTJQCEJjieriw+aFpxo16swMxUnUiKS7a/r4vtHg==";
       };
     };
-    "@babel/helper-builder-binary-assignment-operator-visitor-7.16.0" = {
+    "@babel/helper-builder-binary-assignment-operator-visitor-7.16.5" = {
       name = "_at_babel_slash_helper-builder-binary-assignment-operator-visitor";
       packageName = "@babel/helper-builder-binary-assignment-operator-visitor";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.0.tgz";
-        sha512 = "9KuleLT0e77wFUku6TUkqZzCEymBdtuQQ27MhEKzf9UOOJu3cYj98kyaDAzxpC7lV6DGiZFuC8XqDsq8/Kl6aQ==";
+        url = "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.5.tgz";
+        sha512 = "3JEA9G5dmmnIWdzaT9d0NmFRgYnWUThLsDaL7982H0XqqWr56lRrsmwheXFMjR+TMl7QMBb6mzy9kvgr1lRLUA==";
       };
     };
     "@babel/helper-compilation-targets-7.16.3" = {
@@ -418,13 +418,13 @@ let
         sha512 = "vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA==";
       };
     };
-    "@babel/helper-create-class-features-plugin-7.16.0" = {
+    "@babel/helper-create-class-features-plugin-7.16.5" = {
       name = "_at_babel_slash_helper-create-class-features-plugin";
       packageName = "@babel/helper-create-class-features-plugin";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.0.tgz";
-        sha512 = "XLwWvqEaq19zFlF5PTgOod4bUA+XbkR4WLQBct1bkzmxJGB0ZEJaoKF4c8cgH9oBtCDuYJ8BP5NB9uFiEgO5QA==";
+        url = "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.5.tgz";
+        sha512 = "NEohnYA7mkB8L5JhU7BLwcBdU3j83IziR9aseMueWGeAjblbul3zzb8UvJ3a1zuBiqCMObzCJHFqKIQE6hTVmg==";
       };
     };
     "@babel/helper-create-regexp-features-plugin-7.16.0" = {
@@ -445,6 +445,15 @@ let
         sha512 = "7hfT8lUljl/tM3h+izTX/pO3W3frz2ok6Pk+gzys8iJqDfZrZy2pXjRTZAvG2YmfHun1X4q8/UZRLatMfqc5Tg==";
       };
     };
+    "@babel/helper-environment-visitor-7.16.5" = {
+      name = "_at_babel_slash_helper-environment-visitor";
+      packageName = "@babel/helper-environment-visitor";
+      version = "7.16.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.5.tgz";
+        sha512 = "ODQyc5AnxmZWm/R2W7fzhamOk1ey8gSguo5SGvF0zcB3uUzRpTRmM/jmLSm9bDMyPlvbyJ+PwPEK0BWIoZ9wjg==";
+      };
+    };
     "@babel/helper-explode-assignable-expression-7.16.0" = {
       name = "_at_babel_slash_helper-explode-assignable-expression";
       packageName = "@babel/helper-explode-assignable-expression";
@@ -481,13 +490,13 @@ let
         sha512 = "1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg==";
       };
     };
-    "@babel/helper-member-expression-to-functions-7.16.0" = {
+    "@babel/helper-member-expression-to-functions-7.16.5" = {
       name = "_at_babel_slash_helper-member-expression-to-functions";
       packageName = "@babel/helper-member-expression-to-functions";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.0.tgz";
-        sha512 = "bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ==";
+        url = "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.5.tgz";
+        sha512 = "7fecSXq7ZrLE+TWshbGT+HyCLkxloWNhTbU2QM1NTI/tDqyf0oZiMcEfYtDuUDCo528EOlt39G1rftea4bRZIw==";
       };
     };
     "@babel/helper-module-imports-7.16.0" = {
@@ -499,13 +508,13 @@ let
         sha512 = "kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==";
       };
     };
-    "@babel/helper-module-transforms-7.16.0" = {
+    "@babel/helper-module-transforms-7.16.5" = {
       name = "_at_babel_slash_helper-module-transforms";
       packageName = "@babel/helper-module-transforms";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.0.tgz";
-        sha512 = "My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA==";
+        url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.5.tgz";
+        sha512 = "CkvMxgV4ZyyioElFwcuWnDCcNIeyqTkCm9BxXZi73RR1ozqlpboqsbGUNvRTflgZtFbbJ1v5Emvm+lkjMYY/LQ==";
       };
     };
     "@babel/helper-optimise-call-expression-7.16.0" = {
@@ -526,31 +535,31 @@ let
         sha512 = "O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==";
       };
     };
-    "@babel/helper-plugin-utils-7.14.5" = {
+    "@babel/helper-plugin-utils-7.16.5" = {
       name = "_at_babel_slash_helper-plugin-utils";
       packageName = "@babel/helper-plugin-utils";
-      version = "7.14.5";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz";
-        sha512 = "/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==";
+        url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.5.tgz";
+        sha512 = "59KHWHXxVA9K4HNF4sbHCf+eJeFe0Te/ZFGqBT4OjXhrwvA04sGfaEGsVTdsjoszq0YTP49RC9UKe5g8uN2RwQ==";
       };
     };
-    "@babel/helper-remap-async-to-generator-7.16.4" = {
+    "@babel/helper-remap-async-to-generator-7.16.5" = {
       name = "_at_babel_slash_helper-remap-async-to-generator";
       packageName = "@babel/helper-remap-async-to-generator";
-      version = "7.16.4";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.4.tgz";
-        sha512 = "vGERmmhR+s7eH5Y/cp8PCVzj4XEjerq8jooMfxFdA5xVtAk9Sh4AQsrWgiErUEBjtGrBtOFKDUcWQFW4/dFwMA==";
+        url = "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.5.tgz";
+        sha512 = "X+aAJldyxrOmN9v3FKp+Hu1NO69VWgYgDGq6YDykwRPzxs5f2N+X988CBXS7EQahDU+Vpet5QYMqLk+nsp+Qxw==";
       };
     };
-    "@babel/helper-replace-supers-7.16.0" = {
+    "@babel/helper-replace-supers-7.16.5" = {
       name = "_at_babel_slash_helper-replace-supers";
       packageName = "@babel/helper-replace-supers";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz";
-        sha512 = "TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA==";
+        url = "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.5.tgz";
+        sha512 = "ao3seGVa/FZCMCCNDuBcqnBFSbdr8N2EW35mzojx3TwfIbdPmNK+JV6+2d5bR0Z71W5ocLnQp9en/cTF7pBJiQ==";
       };
     };
     "@babel/helper-simple-access-7.16.0" = {
@@ -598,22 +607,22 @@ let
         sha512 = "OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==";
       };
     };
-    "@babel/helper-wrap-function-7.16.0" = {
+    "@babel/helper-wrap-function-7.16.5" = {
       name = "_at_babel_slash_helper-wrap-function";
       packageName = "@babel/helper-wrap-function";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.0.tgz";
-        sha512 = "VVMGzYY3vkWgCJML+qVLvGIam902mJW0FvT7Avj1zEe0Gn7D93aWdLblYARTxEw+6DhZmtzhBM2zv0ekE5zg1g==";
+        url = "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.5.tgz";
+        sha512 = "2J2pmLBqUqVdJw78U0KPNdeE2qeuIyKoG4mKV7wAq3mc4jJG282UgjZw4ZYDnqiWQuS3Y3IYdF/AQ6CpyBV3VA==";
       };
     };
-    "@babel/helpers-7.16.3" = {
+    "@babel/helpers-7.16.5" = {
       name = "_at_babel_slash_helpers";
       packageName = "@babel/helpers";
-      version = "7.16.3";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.3.tgz";
-        sha512 = "Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w==";
+        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.5.tgz";
+        sha512 = "TLgi6Lh71vvMZGEkFuIxzaPsyeYCHQ5jJOOX1f0xXn0uciFuE8cEk0wyBquMcCxBXZ5BJhE2aUB7pnWTD150Tw==";
       };
     };
     "@babel/highlight-7.16.0" = {
@@ -625,13 +634,13 @@ let
         sha512 = "t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==";
       };
     };
-    "@babel/node-7.16.0" = {
+    "@babel/node-7.16.5" = {
       name = "_at_babel_slash_node";
       packageName = "@babel/node";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/node/-/node-7.16.0.tgz";
-        sha512 = "eFUU2RHkgMW0X1lHVVOWJYlaDTwCX2LduQQLfehAfID5VhAjNnBhGZ/r0zk3FSQfFn6enJ2aXyRCiZ829bYVeA==";
+        url = "https://registry.npmjs.org/@babel/node/-/node-7.16.5.tgz";
+        sha512 = "NUzl2ILzKE7lu5yj4pFLeOmREwOq6//8bFBB3m7XXz73INCSI1rjQJbUYLwZrpZWlt6RY536nDJFqo2MnY43nA==";
       };
     };
     "@babel/parser-7.16.2" = {
@@ -643,13 +652,13 @@ let
         sha512 = "RUVpT0G2h6rOZwqLDTrKk7ksNv7YpAilTnYe1/Q+eDjxEceRMKVWbCsX7t8h6C1qCFi/1Y8WZjcEPBAFG27GPw==";
       };
     };
-    "@babel/parser-7.16.4" = {
+    "@babel/parser-7.16.6" = {
       name = "_at_babel_slash_parser";
       packageName = "@babel/parser";
-      version = "7.16.4";
+      version = "7.16.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.16.4.tgz";
-        sha512 = "6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==";
+        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.16.6.tgz";
+        sha512 = "Gr86ujcNuPDnNOY8mi383Hvi8IYrJVJYuf3XcuBM/Dgd+bINn/7tHqsj+tKkoreMbmGsFLsltI/JJd8fOFWGDQ==";
       };
     };
     "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.2" = {
@@ -679,94 +688,94 @@ let
         sha512 = "mx0WXDDiIl5DwzMtzWGRSPugXi9BxROS05GQrhLNbEamhBiicgn994ibwkyiBH+6png7bm/yA7AUsvHyCXi4Vw==";
       };
     };
-    "@babel/plugin-proposal-async-generator-functions-7.16.4" = {
+    "@babel/plugin-proposal-async-generator-functions-7.16.5" = {
       name = "_at_babel_slash_plugin-proposal-async-generator-functions";
       packageName = "@babel/plugin-proposal-async-generator-functions";
-      version = "7.16.4";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.4.tgz";
-        sha512 = "/CUekqaAaZCQHleSK/9HajvcD/zdnJiKRiuUFq8ITE+0HsPzquf53cpFiqAwl/UfmJbR6n5uGPQSPdrmKOvHHg==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.5.tgz";
+        sha512 = "C/FX+3HNLV6sz7AqbTQqEo1L9/kfrKjxcVtgyBCmvIgOjvuBVUWooDoi7trsLxOzCEo5FccjRvKHkfDsJFZlfA==";
       };
     };
-    "@babel/plugin-proposal-class-properties-7.16.0" = {
+    "@babel/plugin-proposal-class-properties-7.16.5" = {
       name = "_at_babel_slash_plugin-proposal-class-properties";
       packageName = "@babel/plugin-proposal-class-properties";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.0.tgz";
-        sha512 = "mCF3HcuZSY9Fcx56Lbn+CGdT44ioBMMvjNVldpKtj8tpniETdLjnxdHI1+sDWXIM1nNt+EanJOZ3IG9lzVjs7A==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.5.tgz";
+        sha512 = "pJD3HjgRv83s5dv1sTnDbZOaTjghKEz8KUn1Kbh2eAIRhGuyQ1XSeI4xVXU3UlIEVA3DAyIdxqT1eRn7Wcn55A==";
       };
     };
-    "@babel/plugin-proposal-class-static-block-7.16.0" = {
+    "@babel/plugin-proposal-class-static-block-7.16.5" = {
       name = "_at_babel_slash_plugin-proposal-class-static-block";
       packageName = "@babel/plugin-proposal-class-static-block";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.0.tgz";
-        sha512 = "mAy3sdcY9sKAkf3lQbDiv3olOfiLqI51c9DR9b19uMoR2Z6r5pmGl7dfNFqEvqOyqbf1ta4lknK4gc5PJn3mfA==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.5.tgz";
+        sha512 = "EEFzuLZcm/rNJ8Q5krK+FRKdVkd6FjfzT9tuSZql9sQn64K0hHA2KLJ0DqVot9/iV6+SsuadC5yI39zWnm+nmQ==";
       };
     };
-    "@babel/plugin-proposal-dynamic-import-7.16.0" = {
+    "@babel/plugin-proposal-dynamic-import-7.16.5" = {
       name = "_at_babel_slash_plugin-proposal-dynamic-import";
       packageName = "@babel/plugin-proposal-dynamic-import";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.0.tgz";
-        sha512 = "QGSA6ExWk95jFQgwz5GQ2Dr95cf7eI7TKutIXXTb7B1gCLTCz5hTjFTQGfLFBBiC5WSNi7udNwWsqbbMh1c4yQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.5.tgz";
+        sha512 = "P05/SJZTTvHz79LNYTF8ff5xXge0kk5sIIWAypcWgX4BTRUgyHc8wRxJ/Hk+mU0KXldgOOslKaeqnhthcDJCJQ==";
       };
     };
-    "@babel/plugin-proposal-export-default-from-7.16.0" = {
+    "@babel/plugin-proposal-export-default-from-7.16.5" = {
       name = "_at_babel_slash_plugin-proposal-export-default-from";
       packageName = "@babel/plugin-proposal-export-default-from";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.16.0.tgz";
-        sha512 = "kFAhaIbh5qbBwETRNa/cgGmPJ/BicXhIyrZhAkyYhf/Z9LXCTRGO1mvUwczto0Hl1q4YtzP9cRtTKT4wujm38Q==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.16.5.tgz";
+        sha512 = "pU4aCS+AzGjDD/6LnwSmeelmtqfMSjzQxs7+/AS673bYsshK1XZm9eth6OkgivVscQM8XdkVYhrb6tPFVTBVHA==";
       };
     };
-    "@babel/plugin-proposal-export-namespace-from-7.16.0" = {
+    "@babel/plugin-proposal-export-namespace-from-7.16.5" = {
       name = "_at_babel_slash_plugin-proposal-export-namespace-from";
       packageName = "@babel/plugin-proposal-export-namespace-from";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.0.tgz";
-        sha512 = "CjI4nxM/D+5wCnhD11MHB1AwRSAYeDT+h8gCdcVJZ/OK7+wRzFsf7PFPWVpVpNRkHMmMkQWAHpTq+15IXQ1diA==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.5.tgz";
+        sha512 = "i+sltzEShH1vsVydvNaTRsgvq2vZsfyrd7K7vPLUU/KgS0D5yZMe6uipM0+izminnkKrEfdUnz7CxMRb6oHZWw==";
       };
     };
-    "@babel/plugin-proposal-json-strings-7.16.0" = {
+    "@babel/plugin-proposal-json-strings-7.16.5" = {
       name = "_at_babel_slash_plugin-proposal-json-strings";
       packageName = "@babel/plugin-proposal-json-strings";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.0.tgz";
-        sha512 = "kouIPuiv8mSi5JkEhzApg5Gn6hFyKPnlkO0a9YSzqRurH8wYzSlf6RJdzluAsbqecdW5pBvDJDfyDIUR/vLxvg==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.5.tgz";
+        sha512 = "QQJueTFa0y9E4qHANqIvMsuxM/qcLQmKttBACtPCQzGUEizsXDACGonlPiSwynHfOa3vNw0FPMVvQzbuXwh4SQ==";
       };
     };
-    "@babel/plugin-proposal-logical-assignment-operators-7.16.0" = {
+    "@babel/plugin-proposal-logical-assignment-operators-7.16.5" = {
       name = "_at_babel_slash_plugin-proposal-logical-assignment-operators";
       packageName = "@babel/plugin-proposal-logical-assignment-operators";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.0.tgz";
-        sha512 = "pbW0fE30sVTYXXm9lpVQQ/Vc+iTeQKiXlaNRZPPN2A2VdlWyAtsUrsQ3xydSlDW00TFMK7a8m3cDTkBF5WnV3Q==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.5.tgz";
+        sha512 = "xqibl7ISO2vjuQM+MzR3rkd0zfNWltk7n9QhaD8ghMmMceVguYrNDt7MikRyj4J4v3QehpnrU8RYLnC7z/gZLA==";
       };
     };
-    "@babel/plugin-proposal-nullish-coalescing-operator-7.16.0" = {
+    "@babel/plugin-proposal-nullish-coalescing-operator-7.16.5" = {
       name = "_at_babel_slash_plugin-proposal-nullish-coalescing-operator";
       packageName = "@babel/plugin-proposal-nullish-coalescing-operator";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.0.tgz";
-        sha512 = "3bnHA8CAFm7cG93v8loghDYyQ8r97Qydf63BeYiGgYbjKKB/XP53W15wfRC7dvKfoiJ34f6Rbyyx2btExc8XsQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.5.tgz";
+        sha512 = "YwMsTp/oOviSBhrjwi0vzCUycseCYwoXnLiXIL3YNjHSMBHicGTz7GjVU/IGgz4DtOEXBdCNG72pvCX22ehfqg==";
       };
     };
-    "@babel/plugin-proposal-numeric-separator-7.16.0" = {
+    "@babel/plugin-proposal-numeric-separator-7.16.5" = {
       name = "_at_babel_slash_plugin-proposal-numeric-separator";
       packageName = "@babel/plugin-proposal-numeric-separator";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.0.tgz";
-        sha512 = "FAhE2I6mjispy+vwwd6xWPyEx3NYFS13pikDBWUAFGZvq6POGs5eNchw8+1CYoEgBl9n11I3NkzD7ghn25PQ9Q==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.5.tgz";
+        sha512 = "DvB9l/TcsCRvsIV9v4jxR/jVP45cslTVC0PMVHvaJhhNuhn2Y1SOhCSFlPK777qLB5wb8rVDaNoqMTyOqtY5Iw==";
       };
     };
     "@babel/plugin-proposal-object-rest-spread-7.10.4" = {
@@ -778,58 +787,58 @@ let
         sha512 = "6vh4SqRuLLarjgeOf4EaROJAHjvu9Gl+/346PbDH9yWbJyfnJ/ah3jmYKYtswEyCoWZiidvVHjHshd4WgjB9BA==";
       };
     };
-    "@babel/plugin-proposal-object-rest-spread-7.16.0" = {
+    "@babel/plugin-proposal-object-rest-spread-7.16.5" = {
       name = "_at_babel_slash_plugin-proposal-object-rest-spread";
       packageName = "@babel/plugin-proposal-object-rest-spread";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.0.tgz";
-        sha512 = "LU/+jp89efe5HuWJLmMmFG0+xbz+I2rSI7iLc1AlaeSMDMOGzWlc5yJrMN1d04osXN4sSfpo4O+azkBNBes0jg==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.5.tgz";
+        sha512 = "UEd6KpChoyPhCoE840KRHOlGhEZFutdPDMGj+0I56yuTTOaT51GzmnEl/0uT41fB/vD2nT+Pci2KjezyE3HmUw==";
       };
     };
-    "@babel/plugin-proposal-optional-catch-binding-7.16.0" = {
+    "@babel/plugin-proposal-optional-catch-binding-7.16.5" = {
       name = "_at_babel_slash_plugin-proposal-optional-catch-binding";
       packageName = "@babel/plugin-proposal-optional-catch-binding";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.0.tgz";
-        sha512 = "kicDo0A/5J0nrsCPbn89mTG3Bm4XgYi0CZtvex9Oyw7gGZE3HXGD0zpQNH+mo+tEfbo8wbmMvJftOwpmPy7aVw==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.5.tgz";
+        sha512 = "ihCMxY1Iljmx4bWy/PIMJGXN4NS4oUj1MKynwO07kiKms23pNvIn1DMB92DNB2R0EA882sw0VXIelYGdtF7xEQ==";
       };
     };
-    "@babel/plugin-proposal-optional-chaining-7.16.0" = {
+    "@babel/plugin-proposal-optional-chaining-7.16.5" = {
       name = "_at_babel_slash_plugin-proposal-optional-chaining";
       packageName = "@babel/plugin-proposal-optional-chaining";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.0.tgz";
-        sha512 = "Y4rFpkZODfHrVo70Uaj6cC1JJOt3Pp0MdWSwIKtb8z1/lsjl9AmnB7ErRFV+QNGIfcY1Eruc2UMx5KaRnXjMyg==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.5.tgz";
+        sha512 = "kzdHgnaXRonttiTfKYnSVafbWngPPr2qKw9BWYBESl91W54e+9R5pP70LtWxV56g0f05f/SQrwHYkfvbwcdQ/A==";
       };
     };
-    "@babel/plugin-proposal-private-methods-7.16.0" = {
+    "@babel/plugin-proposal-private-methods-7.16.5" = {
       name = "_at_babel_slash_plugin-proposal-private-methods";
       packageName = "@babel/plugin-proposal-private-methods";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.0.tgz";
-        sha512 = "IvHmcTHDFztQGnn6aWq4t12QaBXTKr1whF/dgp9kz84X6GUcwq9utj7z2wFCUfeOup/QKnOlt2k0zxkGFx9ubg==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.5.tgz";
+        sha512 = "+yFMO4BGT3sgzXo+lrq7orX5mAZt57DwUK6seqII6AcJnJOIhBJ8pzKH47/ql/d426uQ7YhN8DpUFirQzqYSUA==";
       };
     };
-    "@babel/plugin-proposal-private-property-in-object-7.16.0" = {
+    "@babel/plugin-proposal-private-property-in-object-7.16.5" = {
       name = "_at_babel_slash_plugin-proposal-private-property-in-object";
       packageName = "@babel/plugin-proposal-private-property-in-object";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.0.tgz";
-        sha512 = "3jQUr/HBbMVZmi72LpjQwlZ55i1queL8KcDTQEkAHihttJnAPrcvG9ZNXIfsd2ugpizZo595egYV6xy+pv4Ofw==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.5.tgz";
+        sha512 = "+YGh5Wbw0NH3y/E5YMu6ci5qTDmAEVNoZ3I54aB6nVEOZ5BQ7QJlwKq5pYVucQilMByGn/bvX0af+uNaPRCabA==";
       };
     };
-    "@babel/plugin-proposal-unicode-property-regex-7.16.0" = {
+    "@babel/plugin-proposal-unicode-property-regex-7.16.5" = {
       name = "_at_babel_slash_plugin-proposal-unicode-property-regex";
       packageName = "@babel/plugin-proposal-unicode-property-regex";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.0.tgz";
-        sha512 = "ti7IdM54NXv29cA4+bNNKEMS4jLMCbJgl+Drv+FgYy0erJLAxNAIXcNjNjrRZEcWq0xJHsNVwQezskMFpF8N9g==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.5.tgz";
+        sha512 = "s5sKtlKQyFSatt781HQwv1hoM5BQ9qRH30r+dK56OLDsHmV74mzwJNX7R1yMuE7VZKG5O6q/gmOGSAO6ikTudg==";
       };
     };
     "@babel/plugin-syntax-async-generators-7.8.4" = {
@@ -877,13 +886,13 @@ let
         sha512 = "5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==";
       };
     };
-    "@babel/plugin-syntax-export-default-from-7.16.0" = {
+    "@babel/plugin-syntax-export-default-from-7.16.5" = {
       name = "_at_babel_slash_plugin-syntax-export-default-from";
       packageName = "@babel/plugin-syntax-export-default-from";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.16.0.tgz";
-        sha512 = "xllLOdBj77mFSw8s02I+2SSQGHOftbWTlGmagheuNk/gjQsk7IrYsR/EosXVAVpgIUFffLckB/iPRioQYLHSrQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.16.5.tgz";
+        sha512 = "tvY55nhq4mSG9WbM7IZcLIhdc5jzIZu0PQKJHtZ16+dF7oBxKbqV/Z0e9ta2zaLMvUjH+3rJv1hbZ0+lpXzuFQ==";
       };
     };
     "@babel/plugin-syntax-export-namespace-from-7.8.3" = {
@@ -895,13 +904,13 @@ let
         sha512 = "MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==";
       };
     };
-    "@babel/plugin-syntax-flow-7.16.0" = {
+    "@babel/plugin-syntax-flow-7.16.5" = {
       name = "_at_babel_slash_plugin-syntax-flow";
       packageName = "@babel/plugin-syntax-flow";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.16.0.tgz";
-        sha512 = "dH91yCo0RyqfzWgoM5Ji9ir8fQ+uFbt9KHM3d2x4jZOuHS6wNA+CRmRUP/BWCsHG2bjc7A2Way6AvH1eQk0wig==";
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.16.5.tgz";
+        sha512 = "Nrx+7EAJx1BieBQseZa2pavVH2Rp7hADK2xn7coYqVbWRu9C2OFizYcsKo6TrrqJkJl+qF/+Qqzrk/+XDu4GnA==";
       };
     };
     "@babel/plugin-syntax-import-meta-7.10.4" = {
@@ -931,13 +940,13 @@ let
         sha512 = "KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g==";
       };
     };
-    "@babel/plugin-syntax-jsx-7.16.0" = {
+    "@babel/plugin-syntax-jsx-7.16.5" = {
       name = "_at_babel_slash_plugin-syntax-jsx";
       packageName = "@babel/plugin-syntax-jsx";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.0.tgz";
-        sha512 = "8zv2+xiPHwly31RK4RmnEYY5zziuF3O7W2kIDW+07ewWDh6Oi0dRq8kwvulRkFgt6DB97RlKs5c1y068iPlCUg==";
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.5.tgz";
+        sha512 = "42OGssv9NPk4QHKVgIHlzeLgPOW5rGgfV5jzG90AhcXXIv6hu/eqj63w4VgvRxdvZY3AlYeDgPiSJ3BqAd1Y6Q==";
       };
     };
     "@babel/plugin-syntax-logical-assignment-operators-7.10.4" = {
@@ -1012,337 +1021,337 @@ let
         sha512 = "hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==";
       };
     };
-    "@babel/plugin-syntax-typescript-7.16.0" = {
+    "@babel/plugin-syntax-typescript-7.16.5" = {
       name = "_at_babel_slash_plugin-syntax-typescript";
       packageName = "@babel/plugin-syntax-typescript";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.0.tgz";
-        sha512 = "Xv6mEXqVdaqCBfJFyeab0fH2DnUoMsDmhamxsSi4j8nLd4Vtw213WMJr55xxqipC/YVWyPY3K0blJncPYji+dQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.5.tgz";
+        sha512 = "/d4//lZ1Vqb4mZ5xTep3dDK888j7BGM/iKqBmndBaoYAFPlPKrGU608VVBz5JeyAb6YQDjRu1UKqj86UhwWVgw==";
       };
     };
-    "@babel/plugin-transform-arrow-functions-7.16.0" = {
+    "@babel/plugin-transform-arrow-functions-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-arrow-functions";
       packageName = "@babel/plugin-transform-arrow-functions";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.0.tgz";
-        sha512 = "vIFb5250Rbh7roWARvCLvIJ/PtAU5Lhv7BtZ1u24COwpI9Ypjsh+bZcKk6rlIyalK+r0jOc1XQ8I4ovNxNrWrA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.5.tgz";
+        sha512 = "8bTHiiZyMOyfZFULjsCnYOWG059FVMes0iljEHSfARhNgFfpsqE92OrCffv3veSw9rwMkYcFe9bj0ZoXU2IGtQ==";
       };
     };
-    "@babel/plugin-transform-async-to-generator-7.16.0" = {
+    "@babel/plugin-transform-async-to-generator-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-async-to-generator";
       packageName = "@babel/plugin-transform-async-to-generator";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.0.tgz";
-        sha512 = "PbIr7G9kR8tdH6g8Wouir5uVjklETk91GMVSUq+VaOgiinbCkBP6Q7NN/suM/QutZkMJMvcyAriogcYAdhg8Gw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.5.tgz";
+        sha512 = "TMXgfioJnkXU+XRoj7P2ED7rUm5jbnDWwlCuFVTpQboMfbSya5WrmubNBAMlk7KXvywpo8rd8WuYZkis1o2H8w==";
       };
     };
-    "@babel/plugin-transform-block-scoped-functions-7.16.0" = {
+    "@babel/plugin-transform-block-scoped-functions-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-block-scoped-functions";
       packageName = "@babel/plugin-transform-block-scoped-functions";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.0.tgz";
-        sha512 = "V14As3haUOP4ZWrLJ3VVx5rCnrYhMSHN/jX7z6FAt5hjRkLsb0snPCmJwSOML5oxkKO4FNoNv7V5hw/y2bjuvg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.5.tgz";
+        sha512 = "BxmIyKLjUGksJ99+hJyL/HIxLIGnLKtw772zYDER7UuycDZ+Xvzs98ZQw6NGgM2ss4/hlFAaGiZmMNKvValEjw==";
       };
     };
-    "@babel/plugin-transform-block-scoping-7.16.0" = {
+    "@babel/plugin-transform-block-scoping-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-block-scoping";
       packageName = "@babel/plugin-transform-block-scoping";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.0.tgz";
-        sha512 = "27n3l67/R3UrXfizlvHGuTwsRIFyce3D/6a37GRxn28iyTPvNXaW4XvznexRh1zUNLPjbLL22Id0XQElV94ruw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.5.tgz";
+        sha512 = "JxjSPNZSiOtmxjX7PBRBeRJTUKTyJ607YUYeT0QJCNdsedOe+/rXITjP08eG8xUpsLfPirgzdCFN+h0w6RI+pQ==";
       };
     };
-    "@babel/plugin-transform-classes-7.16.0" = {
+    "@babel/plugin-transform-classes-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-classes";
       packageName = "@babel/plugin-transform-classes";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.0.tgz";
-        sha512 = "HUxMvy6GtAdd+GKBNYDWCIA776byUQH8zjnfjxwT1P1ARv/wFu8eBDpmXQcLS/IwRtrxIReGiplOwMeyO7nsDQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.5.tgz";
+        sha512 = "DzJ1vYf/7TaCYy57J3SJ9rV+JEuvmlnvvyvYKFbk5u46oQbBvuB9/0w+YsVsxkOv8zVWKpDmUoj4T5ILHoXevA==";
       };
     };
-    "@babel/plugin-transform-computed-properties-7.16.0" = {
+    "@babel/plugin-transform-computed-properties-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-computed-properties";
       packageName = "@babel/plugin-transform-computed-properties";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.0.tgz";
-        sha512 = "63l1dRXday6S8V3WFY5mXJwcRAnPYxvFfTlt67bwV1rTyVTM5zrp0DBBb13Kl7+ehkCVwIZPumPpFP/4u70+Tw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.5.tgz";
+        sha512 = "n1+O7xtU5lSLraRzX88CNcpl7vtGdPakKzww74bVwpAIRgz9JVLJJpOLb0uYqcOaXVM0TL6X0RVeIJGD2CnCkg==";
       };
     };
-    "@babel/plugin-transform-destructuring-7.16.0" = {
+    "@babel/plugin-transform-destructuring-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-destructuring";
       packageName = "@babel/plugin-transform-destructuring";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.0.tgz";
-        sha512 = "Q7tBUwjxLTsHEoqktemHBMtb3NYwyJPTJdM+wDwb0g8PZ3kQUIzNvwD5lPaqW/p54TXBc/MXZu9Jr7tbUEUM8Q==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.5.tgz";
+        sha512 = "GuRVAsjq+c9YPK6NeTkRLWyQskDC099XkBSVO+6QzbnOnH2d/4mBVXYStaPrZD3dFRfg00I6BFJ9Atsjfs8mlg==";
       };
     };
-    "@babel/plugin-transform-dotall-regex-7.16.0" = {
+    "@babel/plugin-transform-dotall-regex-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-dotall-regex";
       packageName = "@babel/plugin-transform-dotall-regex";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.0.tgz";
-        sha512 = "FXlDZfQeLILfJlC6I1qyEwcHK5UpRCFkaoVyA1nk9A1L1Yu583YO4un2KsLBsu3IJb4CUbctZks8tD9xPQubLw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.5.tgz";
+        sha512 = "iQiEMt8Q4/5aRGHpGVK2Zc7a6mx7qEAO7qehgSug3SDImnuMzgmm/wtJALXaz25zUj1PmnNHtShjFgk4PDx4nw==";
       };
     };
-    "@babel/plugin-transform-duplicate-keys-7.16.0" = {
+    "@babel/plugin-transform-duplicate-keys-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-duplicate-keys";
       packageName = "@babel/plugin-transform-duplicate-keys";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.0.tgz";
-        sha512 = "LIe2kcHKAZOJDNxujvmp6z3mfN6V9lJxubU4fJIGoQCkKe3Ec2OcbdlYP+vW++4MpxwG0d1wSDOJtQW5kLnkZQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.5.tgz";
+        sha512 = "81tijpDg2a6I1Yhj4aWY1l3O1J4Cg/Pd7LfvuaH2VVInAkXtzibz9+zSPdUM1WvuUi128ksstAP0hM5w48vQgg==";
       };
     };
-    "@babel/plugin-transform-exponentiation-operator-7.16.0" = {
+    "@babel/plugin-transform-exponentiation-operator-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-exponentiation-operator";
       packageName = "@babel/plugin-transform-exponentiation-operator";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.0.tgz";
-        sha512 = "OwYEvzFI38hXklsrbNivzpO3fh87skzx8Pnqi4LoSYeav0xHlueSoCJrSgTPfnbyzopo5b3YVAJkFIcUpK2wsw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.5.tgz";
+        sha512 = "12rba2HwemQPa7BLIKCzm1pT2/RuQHtSFHdNl41cFiC6oi4tcrp7gjB07pxQvFpcADojQywSjblQth6gJyE6CA==";
       };
     };
-    "@babel/plugin-transform-flow-strip-types-7.16.0" = {
+    "@babel/plugin-transform-flow-strip-types-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-flow-strip-types";
       packageName = "@babel/plugin-transform-flow-strip-types";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.0.tgz";
-        sha512 = "vs/F5roOaO/+WxKfp9PkvLsAyj0G+Q0zbFimHm9X2KDgabN2XmNFoAafmeGEYspUlIF9+MvVmyek9UyHiqeG/w==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.5.tgz";
+        sha512 = "skE02E/MptkZdBS4HwoRhjWXqeKQj0BWKEAPfPC+8R4/f6bjQqQ9Nftv/+HkxWwnVxh/E2NV9TNfzLN5H/oiBw==";
       };
     };
-    "@babel/plugin-transform-for-of-7.16.0" = {
+    "@babel/plugin-transform-for-of-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-for-of";
       packageName = "@babel/plugin-transform-for-of";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.0.tgz";
-        sha512 = "5QKUw2kO+GVmKr2wMYSATCTTnHyscl6sxFRAY+rvN7h7WB0lcG0o4NoV6ZQU32OZGVsYUsfLGgPQpDFdkfjlJQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.5.tgz";
+        sha512 = "+DpCAJFPAvViR17PIMi9x2AE34dll5wNlXO43wagAX2YcRGgEVHCNFC4azG85b4YyyFarvkc/iD5NPrz4Oneqw==";
       };
     };
-    "@babel/plugin-transform-function-name-7.16.0" = {
+    "@babel/plugin-transform-function-name-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-function-name";
       packageName = "@babel/plugin-transform-function-name";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.0.tgz";
-        sha512 = "lBzMle9jcOXtSOXUpc7tvvTpENu/NuekNJVova5lCCWCV9/U1ho2HH2y0p6mBg8fPm/syEAbfaaemYGOHCY3mg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.5.tgz";
+        sha512 = "Fuec/KPSpVLbGo6z1RPw4EE1X+z9gZk1uQmnYy7v4xr4TO9p41v1AoUuXEtyqAI7H+xNJYSICzRqZBhDEkd3kQ==";
       };
     };
-    "@babel/plugin-transform-literals-7.16.0" = {
+    "@babel/plugin-transform-literals-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-literals";
       packageName = "@babel/plugin-transform-literals";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.0.tgz";
-        sha512 = "gQDlsSF1iv9RU04clgXqRjrPyyoJMTclFt3K1cjLmTKikc0s/6vE3hlDeEVC71wLTRu72Fq7650kABrdTc2wMQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.5.tgz";
+        sha512 = "B1j9C/IfvshnPcklsc93AVLTrNVa69iSqztylZH6qnmiAsDDOmmjEYqOm3Ts2lGSgTSywnBNiqC949VdD0/gfw==";
       };
     };
-    "@babel/plugin-transform-member-expression-literals-7.16.0" = {
+    "@babel/plugin-transform-member-expression-literals-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-member-expression-literals";
       packageName = "@babel/plugin-transform-member-expression-literals";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.0.tgz";
-        sha512 = "WRpw5HL4Jhnxw8QARzRvwojp9MIE7Tdk3ez6vRyUk1MwgjJN0aNpRoXainLR5SgxmoXx/vsXGZ6OthP6t/RbUg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.5.tgz";
+        sha512 = "d57i3vPHWgIde/9Y8W/xSFUndhvhZN5Wu2TjRrN1MVz5KzdUihKnfDVlfP1U7mS5DNj/WHHhaE4/tTi4hIyHwQ==";
       };
     };
-    "@babel/plugin-transform-modules-amd-7.16.0" = {
+    "@babel/plugin-transform-modules-amd-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-modules-amd";
       packageName = "@babel/plugin-transform-modules-amd";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.0.tgz";
-        sha512 = "rWFhWbCJ9Wdmzln1NmSCqn7P0RAD+ogXG/bd9Kg5c7PKWkJtkiXmYsMBeXjDlzHpVTJ4I/hnjs45zX4dEv81xw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.5.tgz";
+        sha512 = "oHI15S/hdJuSCfnwIz+4lm6wu/wBn7oJ8+QrkzPPwSFGXk8kgdI/AIKcbR/XnD1nQVMg/i6eNaXpszbGuwYDRQ==";
       };
     };
-    "@babel/plugin-transform-modules-commonjs-7.16.0" = {
+    "@babel/plugin-transform-modules-commonjs-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-modules-commonjs";
       packageName = "@babel/plugin-transform-modules-commonjs";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.0.tgz";
-        sha512 = "Dzi+NWqyEotgzk/sb7kgQPJQf7AJkQBWsVp1N6JWc1lBVo0vkElUnGdr1PzUBmfsCCN5OOFya3RtpeHk15oLKQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.5.tgz";
+        sha512 = "ABhUkxvoQyqhCWyb8xXtfwqNMJD7tx+irIRnUh6lmyFud7Jln1WzONXKlax1fg/ey178EXbs4bSGNd6PngO+SQ==";
       };
     };
-    "@babel/plugin-transform-modules-systemjs-7.16.0" = {
+    "@babel/plugin-transform-modules-systemjs-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-modules-systemjs";
       packageName = "@babel/plugin-transform-modules-systemjs";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.0.tgz";
-        sha512 = "yuGBaHS3lF1m/5R+6fjIke64ii5luRUg97N2wr+z1sF0V+sNSXPxXDdEEL/iYLszsN5VKxVB1IPfEqhzVpiqvg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.5.tgz";
+        sha512 = "53gmLdScNN28XpjEVIm7LbWnD/b/TpbwKbLk6KV4KqC9WyU6rq1jnNmVG6UgAdQZVVGZVoik3DqHNxk4/EvrjA==";
       };
     };
-    "@babel/plugin-transform-modules-umd-7.16.0" = {
+    "@babel/plugin-transform-modules-umd-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-modules-umd";
       packageName = "@babel/plugin-transform-modules-umd";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.0.tgz";
-        sha512 = "nx4f6no57himWiHhxDM5pjwhae5vLpTK2zCnDH8+wNLJy0TVER/LJRHl2bkt6w9Aad2sPD5iNNoUpY3X9sTGDg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.5.tgz";
+        sha512 = "qTFnpxHMoenNHkS3VoWRdwrcJ3FhX567GvDA3hRZKF0Dj8Fmg0UzySZp3AP2mShl/bzcywb/UWAMQIjA1bhXvw==";
       };
     };
-    "@babel/plugin-transform-named-capturing-groups-regex-7.16.0" = {
+    "@babel/plugin-transform-named-capturing-groups-regex-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-named-capturing-groups-regex";
       packageName = "@babel/plugin-transform-named-capturing-groups-regex";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.0.tgz";
-        sha512 = "LogN88uO+7EhxWc8WZuQ8vxdSyVGxhkh8WTC3tzlT8LccMuQdA81e9SGV6zY7kY2LjDhhDOFdQVxdGwPyBCnvg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.5.tgz";
+        sha512 = "/wqGDgvFUeKELW6ex6QB7dLVRkd5ehjw34tpXu1nhKC0sFfmaLabIswnpf8JgDyV2NeDmZiwoOb0rAmxciNfjA==";
       };
     };
-    "@babel/plugin-transform-new-target-7.16.0" = {
+    "@babel/plugin-transform-new-target-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-new-target";
       packageName = "@babel/plugin-transform-new-target";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.0.tgz";
-        sha512 = "fhjrDEYv2DBsGN/P6rlqakwRwIp7rBGLPbrKxwh7oVt5NNkIhZVOY2GRV+ULLsQri1bDqwDWnU3vhlmx5B2aCw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.5.tgz";
+        sha512 = "ZaIrnXF08ZC8jnKR4/5g7YakGVL6go6V9ql6Jl3ecO8PQaQqFE74CuM384kezju7Z9nGCCA20BqZaR1tJ/WvHg==";
       };
     };
-    "@babel/plugin-transform-object-super-7.16.0" = {
+    "@babel/plugin-transform-object-super-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-object-super";
       packageName = "@babel/plugin-transform-object-super";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.0.tgz";
-        sha512 = "fds+puedQHn4cPLshoHcR1DTMN0q1V9ou0mUjm8whx9pGcNvDrVVrgw+KJzzCaiTdaYhldtrUps8DWVMgrSEyg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.5.tgz";
+        sha512 = "tded+yZEXuxt9Jdtkc1RraW1zMF/GalVxaVVxh41IYwirdRgyAxxxCKZ9XB7LxZqmsjfjALxupNE1MIz9KH+Zg==";
       };
     };
-    "@babel/plugin-transform-parameters-7.16.3" = {
+    "@babel/plugin-transform-parameters-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-parameters";
       packageName = "@babel/plugin-transform-parameters";
-      version = "7.16.3";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.3.tgz";
-        sha512 = "3MaDpJrOXT1MZ/WCmkOFo7EtmVVC8H4EUZVrHvFOsmwkk4lOjQj8rzv8JKUZV4YoQKeoIgk07GO+acPU9IMu/w==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.5.tgz";
+        sha512 = "B3O6AL5oPop1jAVg8CV+haeUte9oFuY85zu0jwnRNZZi3tVAbJriu5tag/oaO2kGaQM/7q7aGPBlTI5/sr9enA==";
       };
     };
-    "@babel/plugin-transform-property-literals-7.16.0" = {
+    "@babel/plugin-transform-property-literals-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-property-literals";
       packageName = "@babel/plugin-transform-property-literals";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.0.tgz";
-        sha512 = "XLldD4V8+pOqX2hwfWhgwXzGdnDOThxaNTgqagOcpBgIxbUvpgU2FMvo5E1RyHbk756WYgdbS0T8y0Cj9FKkWQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.5.tgz";
+        sha512 = "+IRcVW71VdF9pEH/2R/Apab4a19LVvdVsr/gEeotH00vSDVlKD+XgfSIw+cgGWsjDB/ziqGv/pGoQZBIiQVXHg==";
       };
     };
-    "@babel/plugin-transform-react-display-name-7.16.0" = {
+    "@babel/plugin-transform-react-display-name-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-react-display-name";
       packageName = "@babel/plugin-transform-react-display-name";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.0.tgz";
-        sha512 = "FJFdJAqaCpndL+pIf0aeD/qlQwT7QXOvR6Cc8JPvNhKJBi2zc/DPc4g05Y3fbD/0iWAMQFGij4+Xw+4L/BMpTg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.5.tgz";
+        sha512 = "dHYCOnzSsXFz8UcdNQIHGvg94qPL/teF7CCiCEMRxmA1G2p5Mq4JnKVowCDxYfiQ9D7RstaAp9kwaSI+sXbnhw==";
       };
     };
-    "@babel/plugin-transform-react-jsx-7.16.0" = {
+    "@babel/plugin-transform-react-jsx-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-react-jsx";
       packageName = "@babel/plugin-transform-react-jsx";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.0.tgz";
-        sha512 = "rqDgIbukZ44pqq7NIRPGPGNklshPkvlmvqjdx3OZcGPk4zGIenYkxDTvl3LsSL8gqcc3ZzGmXPE6hR/u/voNOw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.5.tgz";
+        sha512 = "+arLIz1d7kmwX0fKxTxbnoeG85ONSnLpvdODa4P3pc1sS7CV1hfmtYWufkW/oYsPnkDrEeQFxhUWcFnrXW7jQQ==";
       };
     };
-    "@babel/plugin-transform-react-jsx-development-7.16.0" = {
+    "@babel/plugin-transform-react-jsx-development-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-react-jsx-development";
       packageName = "@babel/plugin-transform-react-jsx-development";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.0.tgz";
-        sha512 = "qq65iSqBRq0Hr3wq57YG2AmW0H6wgTnIzpffTphrUWUgLCOK+zf1f7G0vuOiXrp7dU1qq+fQBoqZ3wCDAkhFzw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.5.tgz";
+        sha512 = "uQSLacMZSGLCxOw20dzo1dmLlKkd+DsayoV54q3MHXhbqgPzoiGerZQgNPl/Ro8/OcXV2ugfnkx+rxdS0sN5Uw==";
       };
     };
-    "@babel/plugin-transform-react-pure-annotations-7.16.0" = {
+    "@babel/plugin-transform-react-pure-annotations-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-react-pure-annotations";
       packageName = "@babel/plugin-transform-react-pure-annotations";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.0.tgz";
-        sha512 = "NC/Bj2MG+t8Ef5Pdpo34Ay74X4Rt804h5y81PwOpfPtmAK3i6CizmQqwyBQzIepz1Yt8wNr2Z2L7Lu3qBMfZMA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.5.tgz";
+        sha512 = "0nYU30hCxnCVCbRjSy9ahlhWZ2Sn6khbY4FqR91W+2RbSqkWEbVu2gXh45EqNy4Bq7sRU+H4i0/6YKwOSzh16A==";
       };
     };
-    "@babel/plugin-transform-regenerator-7.16.0" = {
+    "@babel/plugin-transform-regenerator-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-regenerator";
       packageName = "@babel/plugin-transform-regenerator";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.0.tgz";
-        sha512 = "JAvGxgKuwS2PihiSFaDrp94XOzzTUeDeOQlcKzVAyaPap7BnZXK/lvMDiubkPTdotPKOIZq9xWXWnggUMYiExg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.5.tgz";
+        sha512 = "2z+it2eVWU8TtQQRauvGUqZwLy4+7rTfo6wO4npr+fvvN1SW30ZF3O/ZRCNmTuu4F5MIP8OJhXAhRV5QMJOuYg==";
       };
     };
-    "@babel/plugin-transform-reserved-words-7.16.0" = {
+    "@babel/plugin-transform-reserved-words-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-reserved-words";
       packageName = "@babel/plugin-transform-reserved-words";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.0.tgz";
-        sha512 = "Dgs8NNCehHSvXdhEhln8u/TtJxfVwGYCgP2OOr5Z3Ar+B+zXicEOKNTyc+eca2cuEOMtjW6m9P9ijOt8QdqWkg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.5.tgz";
+        sha512 = "aIB16u8lNcf7drkhXJRoggOxSTUAuihTSTfAcpynowGJOZiGf+Yvi7RuTwFzVYSYPmWyARsPqUGoZWWWxLiknw==";
       };
     };
-    "@babel/plugin-transform-runtime-7.16.4" = {
+    "@babel/plugin-transform-runtime-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-runtime";
       packageName = "@babel/plugin-transform-runtime";
-      version = "7.16.4";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.4.tgz";
-        sha512 = "pru6+yHANMTukMtEZGC4fs7XPwg35v8sj5CIEmE+gEkFljFiVJxEWxx/7ZDkTK+iZRYo1bFXBtfIN95+K3cJ5A==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.5.tgz";
+        sha512 = "gxpfS8XQWDbQ8oP5NcmpXxtEgCJkbO+W9VhZlOhr0xPyVaRjAQPOv7ZDj9fg0d5s9+NiVvMCE6gbkEkcsxwGRw==";
       };
     };
-    "@babel/plugin-transform-shorthand-properties-7.16.0" = {
+    "@babel/plugin-transform-shorthand-properties-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-shorthand-properties";
       packageName = "@babel/plugin-transform-shorthand-properties";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.0.tgz";
-        sha512 = "iVb1mTcD8fuhSv3k99+5tlXu5N0v8/DPm2mO3WACLG6al1CGZH7v09HJyUb1TtYl/Z+KrM6pHSIJdZxP5A+xow==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.5.tgz";
+        sha512 = "ZbuWVcY+MAXJuuW7qDoCwoxDUNClfZxoo7/4swVbOW1s/qYLOMHlm9YRWMsxMFuLs44eXsv4op1vAaBaBaDMVg==";
       };
     };
-    "@babel/plugin-transform-spread-7.16.0" = {
+    "@babel/plugin-transform-spread-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-spread";
       packageName = "@babel/plugin-transform-spread";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.0.tgz";
-        sha512 = "Ao4MSYRaLAQczZVp9/7E7QHsCuK92yHRrmVNRe/SlEJjhzivq0BSn8mEraimL8wizHZ3fuaHxKH0iwzI13GyGg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.5.tgz";
+        sha512 = "5d6l/cnG7Lw4tGHEoga4xSkYp1euP7LAtrah1h1PgJ3JY7yNsjybsxQAnVK4JbtReZ/8z6ASVmd3QhYYKLaKZw==";
       };
     };
-    "@babel/plugin-transform-sticky-regex-7.16.0" = {
+    "@babel/plugin-transform-sticky-regex-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-sticky-regex";
       packageName = "@babel/plugin-transform-sticky-regex";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.0.tgz";
-        sha512 = "/ntT2NljR9foobKk4E/YyOSwcGUXtYWv5tinMK/3RkypyNBNdhHUaq6Orw5DWq9ZcNlS03BIlEALFeQgeVAo4Q==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.5.tgz";
+        sha512 = "usYsuO1ID2LXxzuUxifgWtJemP7wL2uZtyrTVM4PKqsmJycdS4U4mGovL5xXkfUheds10Dd2PjoQLXw6zCsCbg==";
       };
     };
-    "@babel/plugin-transform-template-literals-7.16.0" = {
+    "@babel/plugin-transform-template-literals-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-template-literals";
       packageName = "@babel/plugin-transform-template-literals";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.0.tgz";
-        sha512 = "Rd4Ic89hA/f7xUSJQk5PnC+4so50vBoBfxjdQAdvngwidM8jYIBVxBZ/sARxD4e0yMXRbJVDrYf7dyRtIIKT6Q==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.5.tgz";
+        sha512 = "gnyKy9RyFhkovex4BjKWL3BVYzUDG6zC0gba7VMLbQoDuqMfJ1SDXs8k/XK41Mmt1Hyp4qNAvGFb9hKzdCqBRQ==";
       };
     };
-    "@babel/plugin-transform-typeof-symbol-7.16.0" = {
+    "@babel/plugin-transform-typeof-symbol-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-typeof-symbol";
       packageName = "@babel/plugin-transform-typeof-symbol";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.0.tgz";
-        sha512 = "++V2L8Bdf4vcaHi2raILnptTBjGEFxn5315YU+e8+EqXIucA+q349qWngCLpUYqqv233suJ6NOienIVUpS9cqg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.5.tgz";
+        sha512 = "ldxCkW180qbrvyCVDzAUZqB0TAeF8W/vGJoRcaf75awm6By+PxfJKvuqVAnq8N9wz5Xa6mSpM19OfVKKVmGHSQ==";
       };
     };
     "@babel/plugin-transform-typescript-7.16.1" = {
@@ -1354,40 +1363,40 @@ let
         sha512 = "NO4XoryBng06jjw/qWEU2LhcLJr1tWkhpMam/H4eas/CDKMX/b2/Ylb6EI256Y7+FVPCawwSM1rrJNOpDiz+Lg==";
       };
     };
-    "@babel/plugin-transform-unicode-escapes-7.16.0" = {
+    "@babel/plugin-transform-unicode-escapes-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-unicode-escapes";
       packageName = "@babel/plugin-transform-unicode-escapes";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.0.tgz";
-        sha512 = "VFi4dhgJM7Bpk8lRc5CMaRGlKZ29W9C3geZjt9beuzSUrlJxsNwX7ReLwaL6WEvsOf2EQkyIJEPtF8EXjB/g2A==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.5.tgz";
+        sha512 = "shiCBHTIIChGLdyojsKQjoAyB8MBwat25lKM7MJjbe1hE0bgIppD+LX9afr41lLHOhqceqeWl4FkLp+Bgn9o1Q==";
       };
     };
-    "@babel/plugin-transform-unicode-regex-7.16.0" = {
+    "@babel/plugin-transform-unicode-regex-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-unicode-regex";
       packageName = "@babel/plugin-transform-unicode-regex";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.0.tgz";
-        sha512 = "jHLK4LxhHjvCeZDWyA9c+P9XH1sOxRd1RO9xMtDVRAOND/PczPqizEtVdx4TQF/wyPaewqpT+tgQFYMnN/P94A==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.5.tgz";
+        sha512 = "GTJ4IW012tiPEMMubd7sD07iU9O/LOo8Q/oU4xNhcaq0Xn8+6TcUQaHtC8YxySo1T+ErQ8RaWogIEeFhKGNPzw==";
       };
     };
-    "@babel/preset-env-7.16.4" = {
+    "@babel/preset-env-7.16.5" = {
       name = "_at_babel_slash_preset-env";
       packageName = "@babel/preset-env";
-      version = "7.16.4";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.4.tgz";
-        sha512 = "v0QtNd81v/xKj4gNKeuAerQ/azeNn/G1B1qMLeXOcV8+4TWlD2j3NV1u8q29SDFBXx/NBq5kyEAO+0mpRgacjA==";
+        url = "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.5.tgz";
+        sha512 = "MiJJW5pwsktG61NDxpZ4oJ1CKxM1ncam9bzRtx9g40/WkLRkxFP6mhpkYV0/DxcciqoiHicx291+eUQrXb/SfQ==";
       };
     };
-    "@babel/preset-flow-7.16.0" = {
+    "@babel/preset-flow-7.16.5" = {
       name = "_at_babel_slash_preset-flow";
       packageName = "@babel/preset-flow";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.16.0.tgz";
-        sha512 = "e5NE1EoPMpoHFkyFkMSj2h9tu7OolARcUHki8mnBv4NiFK9so+UrhbvT9mV99tMJOUEx8BOj67T6dXvGcTeYeQ==";
+        url = "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.16.5.tgz";
+        sha512 = "rmC6Nznp4V55N4Zfec87jwd14TdREqwKVJFM/6Z2wTwoeZQr56czjaPRCezqzqc8TsHF7aLP1oczjadIQ058gw==";
       };
     };
     "@babel/preset-modules-0.1.5" = {
@@ -1399,13 +1408,13 @@ let
         sha512 = "A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==";
       };
     };
-    "@babel/preset-react-7.16.0" = {
+    "@babel/preset-react-7.16.5" = {
       name = "_at_babel_slash_preset-react";
       packageName = "@babel/preset-react";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.0.tgz";
-        sha512 = "d31IFW2bLRB28uL1WoElyro8RH5l6531XfxMtCeCmp6RVAF1uTfxxUA0LH1tXl+psZdwfmIbwoG4U5VwgbhtLw==";
+        url = "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.5.tgz";
+        sha512 = "3kzUOQeaxY/2vhPDS7CX/KGEGu/1bOYGvdRDJ2U5yjEz5o5jmIeTPLoiQBPGjfhPascLuW5OlMiPzwOOuB6txg==";
       };
     };
     "@babel/preset-stage-0-7.8.3" = {
@@ -1426,22 +1435,22 @@ let
         sha512 = "dStnEQgejNYIHFNACdDCigK4BF7wgW6Zahv9Dc2un7rGjbeVtZhBfR3sy0I7ZJOhBexkFxVdMZ5hqmll7BFShw==";
       };
     };
-    "@babel/preset-typescript-7.16.0" = {
+    "@babel/preset-typescript-7.16.5" = {
       name = "_at_babel_slash_preset-typescript";
       packageName = "@babel/preset-typescript";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.16.0.tgz";
-        sha512 = "txegdrZYgO9DlPbv+9QOVpMnKbOtezsLHWsnsRF4AjbSIsVaujrq1qg8HK0mxQpWv0jnejt0yEoW1uWpvbrDTg==";
+        url = "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.16.5.tgz";
+        sha512 = "lmAWRoJ9iOSvs3DqOndQpj8XqXkzaiQs50VG/zESiI9D3eoZhGriU675xNCr0UwvsuXrhMAGvyk1w+EVWF3u8Q==";
       };
     };
-    "@babel/register-7.16.0" = {
+    "@babel/register-7.16.5" = {
       name = "_at_babel_slash_register";
       packageName = "@babel/register";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/register/-/register-7.16.0.tgz";
-        sha512 = "lzl4yfs0zVXnooeLE0AAfYaT7F3SPA8yB2Bj4W1BiZwLbMS3MZH35ZvCWSRHvneUugwuM+Wsnrj7h0F7UmU3NQ==";
+        url = "https://registry.npmjs.org/@babel/register/-/register-7.16.5.tgz";
+        sha512 = "NpluD+cToBiZiDsG3y9rtIcqDyivsahpaM9csfyfiq1qQWduSmihUZ+ruIqqSDGjZKZMJfgAElo9x2YWlOQuRw==";
       };
     };
     "@babel/runtime-7.13.9" = {
@@ -1453,13 +1462,13 @@ let
         sha512 = "aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==";
       };
     };
-    "@babel/runtime-7.16.3" = {
+    "@babel/runtime-7.16.5" = {
       name = "_at_babel_slash_runtime";
       packageName = "@babel/runtime";
-      version = "7.16.3";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.3.tgz";
-        sha512 = "WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ==";
+        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.5.tgz";
+        sha512 = "TXWihFIS3Pyv5hzR7j6ihmeLkZfrXGxAr5UfSl8CHf+6q/wpiYDkUau0czckpYG8QmnCIuPpdLtuA9VmuGGyMA==";
       };
     };
     "@babel/runtime-7.9.0" = {
@@ -1471,22 +1480,22 @@ let
         sha512 = "cTIudHnzuWLS56ik4DnRnqqNf8MkdUzV4iFFI1h7Jo9xvrpQROYaAnaSd2mHLQAzzZAPfATynX5ord6YlNYNMA==";
       };
     };
-    "@babel/runtime-corejs3-7.16.3" = {
+    "@babel/runtime-corejs3-7.16.5" = {
       name = "_at_babel_slash_runtime-corejs3";
       packageName = "@babel/runtime-corejs3";
-      version = "7.16.3";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.16.3.tgz";
-        sha512 = "IAdDC7T0+wEB4y2gbIL0uOXEYpiZEeuFUTVbdGq+UwCcF35T/tS8KrmMomEwEc5wBbyfH3PJVpTSUqrhPDXFcQ==";
+        url = "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.16.5.tgz";
+        sha512 = "F1pMwvTiUNSAM8mc45kccMQxj31x3y3P+tA/X8hKNWp3/hUsxdGxZ3D3H8JIkxtfA8qGkaBTKvcmvStaYseAFw==";
       };
     };
-    "@babel/standalone-7.16.4" = {
+    "@babel/standalone-7.16.6" = {
       name = "_at_babel_slash_standalone";
       packageName = "@babel/standalone";
-      version = "7.16.4";
+      version = "7.16.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/standalone/-/standalone-7.16.4.tgz";
-        sha512 = "FDRLwjeQfPm5jaHNuB+vwNyGCp24Ah3kEsbLzKmh0eSru+QCr4DmjgbRPoz71AwXLVtXU+l/i7MlVlIj5XO7Gw==";
+        url = "https://registry.npmjs.org/@babel/standalone/-/standalone-7.16.6.tgz";
+        sha512 = "wjildVe951w1IPEPN4G76j+y5JFZfJN9gdyP8o9zd61qbiVEecAgORKskK1D/7VrJZrZS+nxDbhj2akEFU2RJw==";
       };
     };
     "@babel/template-7.16.0" = {
@@ -1498,13 +1507,13 @@ let
         sha512 = "MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A==";
       };
     };
-    "@babel/traverse-7.16.3" = {
+    "@babel/traverse-7.16.5" = {
       name = "_at_babel_slash_traverse";
       packageName = "@babel/traverse";
-      version = "7.16.3";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.3.tgz";
-        sha512 = "eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag==";
+        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.5.tgz";
+        sha512 = "FOCODAzqUMROikDYLYxl4nmwiLlu85rNqBML/A5hKRVXG2LV8d0iMqgPzdYTcIpjZEBB7D6UDU9vxRZiriASdQ==";
       };
     };
     "@babel/types-7.16.0" = {
@@ -1597,31 +1606,31 @@ let
         sha512 = "GcIY79elgB+azP74j8vqkiXz8xLFfIzbQJdlwOPisgbKT00tviJQuEghOXSMVxJ00HoYJbGswr4kcllUc4xCcg==";
       };
     };
-    "@cdktf/hcl2cdk-0.8.1" = {
+    "@cdktf/hcl2cdk-0.8.3" = {
       name = "_at_cdktf_slash_hcl2cdk";
       packageName = "@cdktf/hcl2cdk";
-      version = "0.8.1";
+      version = "0.8.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cdktf/hcl2cdk/-/hcl2cdk-0.8.1.tgz";
-        sha512 = "HI7LJ5ENAxL/K25c0rdNd6IKzKKlicImasYneXLRPZwnwobue2x7kRwpwAl/Lqk0MxYJPbPFdZmtuFOF0cISgA==";
+        url = "https://registry.npmjs.org/@cdktf/hcl2cdk/-/hcl2cdk-0.8.3.tgz";
+        sha512 = "Rm0h1OjgbUoefC34JlW+73GnD8OUOLKn/mDe0AH8/0XWl6WBPRYw/kjBND7xv09WvABmfzd7SBrKU2VHrv0xiQ==";
       };
     };
-    "@cdktf/hcl2json-0.8.1" = {
+    "@cdktf/hcl2json-0.8.3" = {
       name = "_at_cdktf_slash_hcl2json";
       packageName = "@cdktf/hcl2json";
-      version = "0.8.1";
+      version = "0.8.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cdktf/hcl2json/-/hcl2json-0.8.1.tgz";
-        sha512 = "cCXobcITma0CVa8aqCmAKnmLpTC/7T62tJpIUe82LXB+b8XZQb54yFgrgHF1pJiOLqO9CkEOSRztzbUvtzDqPw==";
+        url = "https://registry.npmjs.org/@cdktf/hcl2json/-/hcl2json-0.8.3.tgz";
+        sha512 = "0jvkpZy65cWpzQl6yZ69pQffFXX21eKDbF94q6JeMAXtFiWDJLWyOFuKQ/dapnPPM7+BYC8osXKFO9hvo3ko7g==";
       };
     };
-    "@cdktf/provider-generator-0.8.1" = {
+    "@cdktf/provider-generator-0.8.3" = {
       name = "_at_cdktf_slash_provider-generator";
       packageName = "@cdktf/provider-generator";
-      version = "0.8.1";
+      version = "0.8.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cdktf/provider-generator/-/provider-generator-0.8.1.tgz";
-        sha512 = "50PhWgIDs5m/OjXqy3UrnYPnrjhk7nhSSCDKBUIhuA0oFNfKDLRJDqnKAkNrcD1Kspea7N0/ckPHW7D84lNAIw==";
+        url = "https://registry.npmjs.org/@cdktf/provider-generator/-/provider-generator-0.8.3.tgz";
+        sha512 = "oh0O3EA0u2xmhSlL1JkJpA8K9mENKuRB1y1ChSnkoP5OS2GK0YebPQcrUTcvixW3tNi8ciYalC4JsY5oCKpFDQ==";
       };
     };
     "@chemzqm/neovim-5.4.0" = {
@@ -1795,22 +1804,22 @@ let
         sha512 = "do5jDoX9oCR/dGHE4POVQ3PYDCmQ2Fow4CA72UL4WoE8zUImA/0lChczjfl+ucNjE4sXFWUnzoO6j4WzrUvLnw==";
       };
     };
-    "@cspell/cspell-bundled-dicts-5.13.2" = {
+    "@cspell/cspell-bundled-dicts-5.13.3" = {
       name = "_at_cspell_slash_cspell-bundled-dicts";
       packageName = "@cspell/cspell-bundled-dicts";
-      version = "5.13.2";
+      version = "5.13.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-5.13.2.tgz";
-        sha512 = "1UKx5oFbFjIf+f2W1YrOlRVULaPyFO2ugV5RpT+ezFqcC3E1nfqeFiFUcJOJk9not/0xr+rR9eqxyL/IDXKhEg==";
+        url = "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-5.13.3.tgz";
+        sha512 = "IfjMBNA0M9QsZQW68rGNfWGawAAw5gkjDstuvsEuJfFoOHBT6NB8T5asGmMPJcRdfLvLSaVSG5IYnYWxL0wu/A==";
       };
     };
-    "@cspell/cspell-types-5.13.2" = {
+    "@cspell/cspell-types-5.13.3" = {
       name = "_at_cspell_slash_cspell-types";
       packageName = "@cspell/cspell-types";
-      version = "5.13.2";
+      version = "5.13.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-5.13.2.tgz";
-        sha512 = "gfQO4n7ro8ZfGapDp+yBgH3GchN9KfeiMQiisfkkQZ/+AUX0iJAUZkKU9IOy3ovPPBvR6kPqa/EgJR7GEMnvmg==";
+        url = "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-5.13.3.tgz";
+        sha512 = "T70PvJQ5GV8BW7U2Q5mnrIB5poPnF7bNk7Cp95piYUcv/jlrPdWanDvdp+2gJLM+h0GUDRXscoX3Air4BmAwng==";
       };
     };
     "@cspell/dict-ada-1.1.2" = {
@@ -2209,6 +2218,15 @@ let
         sha512 = "+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q==";
       };
     };
+    "@deltachat/message_parser_wasm-0.1.0" = {
+      name = "_at_deltachat_slash_message_parser_wasm";
+      packageName = "@deltachat/message_parser_wasm";
+      version = "0.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@deltachat/message_parser_wasm/-/message_parser_wasm-0.1.0.tgz";
+        sha512 = "Tp3kWY9rp73omU8afIm3Vijydg+WFrrbsbmlKNXPg4Ao3PDSHuY76zKzDuX22QxdW0KlXi/RaHQ1++zJm8+DBg==";
+      };
+    };
     "@devicefarmer/adbkit-2.11.3" = {
       name = "_at_devicefarmer_slash_adbkit";
       packageName = "@devicefarmer/adbkit";
@@ -2542,22 +2560,22 @@ let
         sha512 = "Ydf4LidRB/EBI+YrB+cVLqIseiRfjUI/AeHBgjGMtq3GroraDu81OV7zqophRgupngoL3iS3JUMDMnxO7g39qA==";
       };
     };
-    "@expo/config-6.0.7" = {
+    "@expo/config-6.0.13" = {
       name = "_at_expo_slash_config";
       packageName = "@expo/config";
-      version = "6.0.7";
+      version = "6.0.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/config/-/config-6.0.7.tgz";
-        sha512 = "aOsm+ZSqCgQrDf+UPHM62QGIpNdt+D3NJSFdHECnTUS6vWiTXhdVS23VQ4ris2thQS0ZRKKlX90S8CBUU49fIg==";
+        url = "https://registry.npmjs.org/@expo/config/-/config-6.0.13.tgz";
+        sha512 = "smVwkWQQrLaWO3/sIhT/7qX3qN29fvNB6kw5bGNzUQTJQ/gbjnwcZ522ME1QrcBQM6/uVWZ6Nu6+JTANk7h/Yg==";
       };
     };
-    "@expo/config-plugins-4.0.7" = {
+    "@expo/config-plugins-4.0.13" = {
       name = "_at_expo_slash_config-plugins";
       packageName = "@expo/config-plugins";
-      version = "4.0.7";
+      version = "4.0.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-4.0.7.tgz";
-        sha512 = "m160Y039LJcI8Q4arzA9edWNRPPnLnTe5tB41812Mn1BAmtoZy9OMs4Rj78OKFkMx6A9JJKUTWMnP/FVAbeMiw==";
+        url = "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-4.0.13.tgz";
+        sha512 = "yFcqqllAKz472UUdMRtcmfz8cHBT5VJ044cDY2E5JvaO/DQ9lfe4j/0soVUv7aeiHIWOheywJeefNfqpCo0glQ==";
       };
     };
     "@expo/config-types-43.0.1" = {
@@ -2569,22 +2587,22 @@ let
         sha512 = "EtllpCGDdB/UdwAIs5YXJwBLpbFQNdlLLrxIvoILA9cXrpQMWkeDCT9lQPJzFRMFcLUaMuGvkzX2tR4tx5EQFQ==";
       };
     };
-    "@expo/dev-server-0.1.94" = {
+    "@expo/dev-server-0.1.100" = {
       name = "_at_expo_slash_dev-server";
       packageName = "@expo/dev-server";
-      version = "0.1.94";
+      version = "0.1.100";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/dev-server/-/dev-server-0.1.94.tgz";
-        sha512 = "WHInk1uB/vNNGdtDxRqrkdYFhuLE4hADKgEgwNBSkcWBWnJIvdXtp/EWbh8zVWF8atvPrtM9JrBtMV3LVIf84g==";
+        url = "https://registry.npmjs.org/@expo/dev-server/-/dev-server-0.1.100.tgz";
+        sha512 = "ypu1Qka1AjR+jPDVoNrNW5o+w412vhTezlM80mvzcmswGOVYshp32+qTGJKtuwdGIir0bgbjHbZ/Sp8T/9Ps7Q==";
       };
     };
-    "@expo/dev-tools-0.13.129" = {
+    "@expo/dev-tools-0.13.136" = {
       name = "_at_expo_slash_dev-tools";
       packageName = "@expo/dev-tools";
-      version = "0.13.129";
+      version = "0.13.136";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/dev-tools/-/dev-tools-0.13.129.tgz";
-        sha512 = "4VLVxI05z65fbuNn5pi3cY+o/4e7Lnw6JmbtImVq/cknCGY0aCnWJWZB1KUZOvvpobI3zga/QAb/6poTtQy09w==";
+        url = "https://registry.npmjs.org/@expo/dev-tools/-/dev-tools-0.13.136.tgz";
+        sha512 = "3L486Jf9D0ErVF+ypUjx74BdyXo4r5iyOtLjvskVkCLxMtuFtjqqyVste3/zBKqHgF/A2ZWo8XfU8v+5SNa00g==";
       };
     };
     "@expo/devcert-1.0.0" = {
@@ -2596,94 +2614,85 @@ let
         sha512 = "cahGyQCmpZmHpn2U04NR9KwsOIZy7Rhsw8Fg4q+A6563lIJxbkrgPnxq/O3NQAh3ohEvOXOOnoFx0b4yycCkpQ==";
       };
     };
-    "@expo/image-utils-0.3.17" = {
+    "@expo/image-utils-0.3.18" = {
       name = "_at_expo_slash_image-utils";
       packageName = "@expo/image-utils";
-      version = "0.3.17";
+      version = "0.3.18";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.3.17.tgz";
-        sha512 = "zaOj24JK5F+pPGpULP8D9aAbApcR7ixV2GjT43YzZqjHuyxQ5knI+EsbmZ1TNnA1vNJJKMYrigB5+chcUGwkpw==";
+        url = "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.3.18.tgz";
+        sha512 = "77/ub2aGuf7SYfaFhvCHE54Hs/jRuU5j+pemS5seLfVHNwHbJSse91TMhsTLLNz3GwwqTxFVe3KMycSccJ73nA==";
       };
     };
-    "@expo/json-file-8.2.33" = {
+    "@expo/json-file-8.2.34" = {
       name = "_at_expo_slash_json-file";
       packageName = "@expo/json-file";
-      version = "8.2.33";
+      version = "8.2.34";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/json-file/-/json-file-8.2.33.tgz";
-        sha512 = "CDnhjdirUs6OdN5hOSTJ2y3i9EiJMk7Z5iDljC5xyCHCrUex7oyI8vbRsZEojAahxZccgL/PrO+CjakiFFWurg==";
+        url = "https://registry.npmjs.org/@expo/json-file/-/json-file-8.2.34.tgz";
+        sha512 = "ZxtBodAZGxdLtgKzmsC+8ViUxt1mhFW642Clu2OuG3f6PAyAFsU/SqEGag9wKFaD3x3Wt8VhL+3y5fMJmUFgPw==";
       };
     };
-    "@expo/metro-config-0.3.0" = {
+    "@expo/metro-config-0.3.6" = {
       name = "_at_expo_slash_metro-config";
       packageName = "@expo/metro-config";
-      version = "0.3.0";
+      version = "0.3.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.3.0.tgz";
-        sha512 = "bwpxqrcziDuqLvSzJ18N/c3+VOVI03gZ4ZWZQ8N6s7OVJrRjUMcSlFzjKlrJNm1t9m44Xl5mzhJYGFK2WsdI+Q==";
+        url = "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.3.6.tgz";
+        sha512 = "GK7esyK2Cn/v5xoksD6x+45eE/PE7YUO9vuaLIwd8QHX7FyWWe3KAC6Mi/sCqNN+GP6E+TL8tgPFaVAr7R/WTw==";
       };
     };
-    "@expo/osascript-2.0.30" = {
+    "@expo/osascript-2.0.31" = {
       name = "_at_expo_slash_osascript";
       packageName = "@expo/osascript";
-      version = "2.0.30";
+      version = "2.0.31";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/osascript/-/osascript-2.0.30.tgz";
-        sha512 = "IlBCyso1wJl8AbgS8n5lcUcXa/8TTU/rHgurWvJRWjErtFOELsqV4O+NCcB7jr4bvv8uZHeRKHQpsoyZWmmk/g==";
+        url = "https://registry.npmjs.org/@expo/osascript/-/osascript-2.0.31.tgz";
+        sha512 = "5OE8+Fb1mLu9EJNUOx5RcetkJZMXJxthVuIzHPlEZFEAZa3f/zQtJ6vA/hnt1BLZ2X9BR3OzBMALrUzVo95L2w==";
       };
     };
-    "@expo/package-manager-0.0.47" = {
+    "@expo/package-manager-0.0.48" = {
       name = "_at_expo_slash_package-manager";
       packageName = "@expo/package-manager";
-      version = "0.0.47";
+      version = "0.0.48";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/package-manager/-/package-manager-0.0.47.tgz";
-        sha512 = "guFnGAiNLW/JsienEq3NkZk5khTP+RdT/czk/teJUiYLkBy0hLmMTJsNXurGgFwI33+ScEbDvFmN5IOEBGpUDQ==";
+        url = "https://registry.npmjs.org/@expo/package-manager/-/package-manager-0.0.48.tgz";
+        sha512 = "mR+UytJc26XE3aGp8ug3MsgDKiOs4Uy5ATbjmoiYQmppJmmT9w14MVP5Iwe7ATwrCkvwqYyQ9uD8UknzCGcBCA==";
       };
     };
-    "@expo/plist-0.0.15" = {
+    "@expo/plist-0.0.16" = {
       name = "_at_expo_slash_plist";
       packageName = "@expo/plist";
-      version = "0.0.15";
+      version = "0.0.16";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/plist/-/plist-0.0.15.tgz";
-        sha512 = "LDxiS0KNZAGJu4fIJhbEKczmb+zeftl1NU0LE0tj0mozoMI5HSKdMUchgvnBm35bwBl8ekKkAfJJ0ONxljWQjQ==";
+        url = "https://registry.npmjs.org/@expo/plist/-/plist-0.0.16.tgz";
+        sha512 = "yQMt2CTm2VNLiHv2/EqHYrHvfflI2mFJd+DZIQQy569hvpZle0CxMPGH1p2KatbrO8htxJNvwrlR/4TIwhQJ5w==";
       };
     };
-    "@expo/prebuild-config-3.0.7" = {
+    "@expo/prebuild-config-3.0.13" = {
       name = "_at_expo_slash_prebuild-config";
       packageName = "@expo/prebuild-config";
-      version = "3.0.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-3.0.7.tgz";
-        sha512 = "0lcgbqC5EP5f+SXu7jY0krLqqKfIbpp4LuDKJBpB7+ytM5W6VOURcCJA7BmwYD42kxsj9JOz/qjU1+OLr3g1qQ==";
-      };
-    };
-    "@expo/results-1.0.0" = {
-      name = "_at_expo_slash_results";
-      packageName = "@expo/results";
-      version = "1.0.0";
+      version = "3.0.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/results/-/results-1.0.0.tgz";
-        sha512 = "qECzzXX5oJot3m2Gu9pfRDz50USdBieQVwYAzeAtQRUTD3PVeTK1tlRUoDcrK8PSruDLuVYdKkLebX4w/o55VA==";
+        url = "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-3.0.13.tgz";
+        sha512 = "g85sgDFITEWKIKNUcab9AGPdnPSp8Msb49bhp03ckvM4gjgN7Ir/u4qN6DPm28JMRwf00aSfoMSZf8JTpSirCw==";
       };
     };
-    "@expo/rudder-sdk-node-1.1.0" = {
+    "@expo/rudder-sdk-node-1.1.1" = {
       name = "_at_expo_slash_rudder-sdk-node";
       packageName = "@expo/rudder-sdk-node";
-      version = "1.1.0";
+      version = "1.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/rudder-sdk-node/-/rudder-sdk-node-1.1.0.tgz";
-        sha512 = "XUxJi2xUEi3RNdKc78emywcl8jQ+iGzpBq0gC1Gpu2/3gAuIxIfp/vGWp1vWo58cZtabhbQx/AMmbOfsHK35Qw==";
+        url = "https://registry.npmjs.org/@expo/rudder-sdk-node/-/rudder-sdk-node-1.1.1.tgz";
+        sha512 = "uy/hS/awclDJ1S88w9UGpc6Nm9XnNUjzOAAib1A3PVAnGQIwebg8DpFqOthFBTlZxeuV/BKbZ5jmTbtNZkp1WQ==";
       };
     };
-    "@expo/schemer-1.3.31" = {
+    "@expo/schemer-1.3.32" = {
       name = "_at_expo_slash_schemer";
       packageName = "@expo/schemer";
-      version = "1.3.31";
+      version = "1.3.32";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/schemer/-/schemer-1.3.31.tgz";
-        sha512 = "gW4r6FIHjlD1sJfAO7JZtrHiIYEf6s5mbEsgU1lxi8bs3vV2feVqb05U8oTCuf0imawNf5aHhvgTL8CUVLA5tA==";
+        url = "https://registry.npmjs.org/@expo/schemer/-/schemer-1.3.32.tgz";
+        sha512 = "cmyIL8glJPLNf1MFMJ5LLSdCC3f3jjItinClZ5Ne0qB5gqjRj2f8JwNZBpYKJ06xKULWtaJrWzw0jIgFmVzchQ==";
       };
     };
     "@expo/sdk-runtime-versions-1.0.0" = {
@@ -2704,13 +2713,13 @@ let
         sha512 = "LB7jWkqrHo+5fJHNrLAFdimuSXQ2MQ4lA7SQW5bf/HbsXuV2VrT/jN/M8f/KoWt0uJMGN4k/j7Opx4AvOOxSew==";
       };
     };
-    "@expo/webpack-config-0.16.7" = {
+    "@expo/webpack-config-0.16.13" = {
       name = "_at_expo_slash_webpack-config";
       packageName = "@expo/webpack-config";
-      version = "0.16.7";
+      version = "0.16.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/webpack-config/-/webpack-config-0.16.7.tgz";
-        sha512 = "/dph1dMDcxb7BJwUERD5LQLSjo16KWhephcjarH4T3dqRAFIR/RihFLI/suPM7dg4g7gFN9/qXYNpsZ75fvaxw==";
+        url = "https://registry.npmjs.org/@expo/webpack-config/-/webpack-config-0.16.13.tgz";
+        sha512 = "VLJzDKaeX27hfMk+ydTO3m+xyBuVEACMYM/wJv4Wo6KgxvJqmYO9d4YzVgU5nW3tnn+eN4+Q02JweyCD+DxjbQ==";
       };
     };
     "@expo/xcpretty-4.1.0" = {
@@ -2767,13 +2776,13 @@ let
         sha512 = "iT1bU56rKrKEOfODoW6fScY11qj3iaYrZ+z11T6fo5+TDm84UGkkXjLXJTE57ZJzg0/gbccHQWYv+chY7bJN8Q==";
       };
     };
-    "@fluentui/react-7.180.1" = {
+    "@fluentui/react-7.180.2" = {
       name = "_at_fluentui_slash_react";
       packageName = "@fluentui/react";
-      version = "7.180.1";
+      version = "7.180.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@fluentui/react/-/react-7.180.1.tgz";
-        sha512 = "z2+VuKjq3PwmfAAasGLixT5NHrzJDOrTBD12Q02SqpwkBxDG2q2EfLTPBmEYWJGioZO6jK+4YkswOfL2tS54nw==";
+        url = "https://registry.npmjs.org/@fluentui/react/-/react-7.180.2.tgz";
+        sha512 = "dx6euh+JxENUfmfnbA/w3liUD0IMvqZ0MfjkX76ALBI+UDaig2bJqxgaIwZjeX2Z3WOer/ZjpHx2Q+w5PoOJ8g==";
       };
     };
     "@fluentui/react-focus-7.18.1" = {
@@ -2956,13 +2965,13 @@ let
         sha512 = "6kUJZiNpYKVhum9E5wfl5PyLLupEDYdH7c8l6oMrk6c7EPEVs6iSUyB7yQoWrtJccJLULBW2CRQ5IHp5JYK0mA==";
       };
     };
-    "@graphql-tools/import-6.6.2" = {
+    "@graphql-tools/import-6.6.3" = {
       name = "_at_graphql-tools_slash_import";
       packageName = "@graphql-tools/import";
-      version = "6.6.2";
+      version = "6.6.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/import/-/import-6.6.2.tgz";
-        sha512 = "XBAw4GBaTwwA736VPTe5vKOS/FCVXpi0ofSeOa2AKedD4JEViAYx4Al3MPpmi2sIVumIOV7wGwHgX7HAgG5RdQ==";
+        url = "https://registry.npmjs.org/@graphql-tools/import/-/import-6.6.3.tgz";
+        sha512 = "k/QkWCZ5rPVgFw1eE4GXPXltw9/mEiJj6F6bJvFKJr1C6im8Y60pl0Pv+SByGZQGuukXE0uR16Mv4OFGSMQIaQ==";
       };
     };
     "@graphql-tools/json-file-loader-6.2.6" = {
@@ -2992,13 +3001,13 @@ let
         sha512 = "FlQC50VELwRxoWUbJMMMs5gG0Dl8BaQYMrXUHTsxwqR7UmksUYnysC21rdousvs6jVZ7pf4unZfZFtBjz+8Edg==";
       };
     };
-    "@graphql-tools/load-7.4.1" = {
+    "@graphql-tools/load-7.5.0" = {
       name = "_at_graphql-tools_slash_load";
       packageName = "@graphql-tools/load";
-      version = "7.4.1";
+      version = "7.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/load/-/load-7.4.1.tgz";
-        sha512 = "UvBodW5hRHpgBUBVz5K5VIhJDOTFIbRRAGD6sQ2l9J5FDKBEs3u/6JjZDzbdL96br94D5cEd2Tk6auaHpTn7mQ==";
+        url = "https://registry.npmjs.org/@graphql-tools/load/-/load-7.5.0.tgz";
+        sha512 = "f0k12xZzxfV4BxWyvt/f8opqICXvz4WzDrVVG4udHFgUJIjhGeE67SRTWFAK/jlIp4QgaDux7L1DXQkJnmx64w==";
       };
     };
     "@graphql-tools/merge-6.2.17" = {
@@ -3046,13 +3055,13 @@ let
         sha512 = "DSDrbhQIv7fheQ60pfDpGD256ixUQIR6Hhf9Z5bRjVkXOCvO5XrkwoWLiU7iHL81GB1r0Ba31bf+sl+D4nyyfw==";
       };
     };
-    "@graphql-tools/url-loader-7.6.0" = {
+    "@graphql-tools/url-loader-7.7.0" = {
       name = "_at_graphql-tools_slash_url-loader";
       packageName = "@graphql-tools/url-loader";
-      version = "7.6.0";
+      version = "7.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-7.6.0.tgz";
-        sha512 = "bGOeP+zK5fqSBm2UN6ESqpYdJvg+6BPeL68jRQ1ImGDCtNW/ksYPL8ont82wYtVCc0fWkUlbV7JbZrb1P/Z85g==";
+        url = "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-7.7.0.tgz";
+        sha512 = "mBBb+aJqI4E0MVEzyfi76Pi/G6lGxGTVt/tP1YtKJly7UnonNoWOtDusdL3zIVAGhGgLsNrLbGhLDbwSd6TV6A==";
       };
     };
     "@graphql-tools/utils-6.2.4" = {
@@ -3082,13 +3091,13 @@ let
         sha512 = "gzkavMOgbhnwkHJYg32Adv6f+LxjbQmmbdD5Hty0+CWxvaiuJq+nU6tzb/7VSU4cwhbNLx/lGu2jbCPEW1McZQ==";
       };
     };
-    "@graphql-tools/utils-8.5.4" = {
+    "@graphql-tools/utils-8.5.5" = {
       name = "_at_graphql-tools_slash_utils";
       packageName = "@graphql-tools/utils";
-      version = "8.5.4";
+      version = "8.5.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.5.4.tgz";
-        sha512 = "ViupMJH590be75tCiyHs/wgJ2KPbWMzc+jopen6P6MliHWoqRlGWMMvYQE1hDj25v4fxObCVq20maQCow0T9nQ==";
+        url = "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.5.5.tgz";
+        sha512 = "y7zRXWIUI73X+9/rf/0KzrNFMlpRKFfzLiwdbIeWwgLs+NV9vfUOoVkX8luXX6LwQxhSypHATMiwZGM2ro/wJA==";
       };
     };
     "@graphql-tools/wrap-7.0.8" = {
@@ -3118,6 +3127,15 @@ let
         sha512 = "a6222b7Dl6fIlMgzVl7e+NiRoLiZFbpcwvBH2Oli56Bn7W4/3Ld+86hK4ffPn5rx2DlDidmIcvIJiOQXyhv9gA==";
       };
     };
+    "@grpc/grpc-js-1.4.5" = {
+      name = "_at_grpc_slash_grpc-js";
+      packageName = "@grpc/grpc-js";
+      version = "1.4.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.4.5.tgz";
+        sha512 = "A6cOzSu7dqXZ7rzvh/9JZf+Jg/MOpLEMP0IdT8pT8hrWJZ6TB4ydN/MRuqOtAugInJe/VQ9F8BPricUpYZSaZA==";
+      };
+    };
     "@grpc/proto-loader-0.6.6" = {
       name = "_at_grpc_slash_proto-loader";
       packageName = "@grpc/proto-loader";
@@ -3604,22 +3622,22 @@ let
         sha512 = "4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==";
       };
     };
-    "@jsii/check-node-1.47.0" = {
+    "@jsii/check-node-1.49.0" = {
       name = "_at_jsii_slash_check-node";
       packageName = "@jsii/check-node";
-      version = "1.47.0";
+      version = "1.49.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jsii/check-node/-/check-node-1.47.0.tgz";
-        sha512 = "LSlbKTpMVYw1R3Be70sJJdJbuLWEFAMbGEHE731Je1QDTXTRm6Gc3NDvPUvTTuHEry8f2Wys+1pXNX06X4PKxQ==";
+        url = "https://registry.npmjs.org/@jsii/check-node/-/check-node-1.49.0.tgz";
+        sha512 = "NRlfVfsczS503K0Y476YkfqLr1yjtgGpj5xcPahS4qaPHJoxMdeiiPuvtybKif37+CKUj/BGsZc8yRXp5bzI1w==";
       };
     };
-    "@jsii/spec-1.47.0" = {
+    "@jsii/spec-1.49.0" = {
       name = "_at_jsii_slash_spec";
       packageName = "@jsii/spec";
-      version = "1.47.0";
+      version = "1.49.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jsii/spec/-/spec-1.47.0.tgz";
-        sha512 = "5F9Qw0lnK8mCumHvpA+XhoBJezgW6q92sLM2jsvo7bzXWXyRRfr1cHl1g5fxQ0yS82B5NMa1fN2n28BsEKs+Gw==";
+        url = "https://registry.npmjs.org/@jsii/spec/-/spec-1.49.0.tgz";
+        sha512 = "uf3wr4c/bCl52VDLQGOGQQynAvyEvwCJ2jcN83nmHhovUkxmhVlqaKt8pumOyjfB5N5SoLW5tiY7ClMQ/q8UoQ==";
       };
     };
     "@kwsites/file-exists-1.1.1" = {
@@ -4288,13 +4306,13 @@ let
         sha512 = "/PT1P6DNf7vjEEiPkVIRJkvibbqWtqnyGaBz3nfRdcxclNSnSdaLU5tfAgcD7I8Yt5i+L19s406YLl1koLnLbg==";
       };
     };
-    "@mapbox/node-pre-gyp-1.0.7" = {
+    "@mapbox/node-pre-gyp-1.0.8" = {
       name = "_at_mapbox_slash_node-pre-gyp";
       packageName = "@mapbox/node-pre-gyp";
-      version = "1.0.7";
+      version = "1.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.7.tgz";
-        sha512 = "PplSvl4pJ5N3BkVjAdDzpPhVUPdC73JgttkR+LnBx2OORC1GCQsBjUeEuipf9uOaAM1SbxcdZFfR3KDTKm2S0A==";
+        url = "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.8.tgz";
+        sha512 = "CMGKi28CF+qlbXh26hDe6NxCd7amqeAzEqnS6IHeO6LoaKyM/n+Xw3HT1COdq8cuioOdlKdqn/hCmqPUOMOywg==";
       };
     };
     "@mapbox/point-geometry-0.1.0" = {
@@ -4522,13 +4540,13 @@ let
         sha512 = "W6CLUJ2eBMw3Rec70qrsEW0jOm/3twwJv21mrmj2yORiaVmVYGS4sSS5yUwvQc1ZlDLYGPnClVWmUUMagKNsfA==";
       };
     };
-    "@microsoft/load-themed-styles-1.10.239" = {
+    "@microsoft/load-themed-styles-1.10.240" = {
       name = "_at_microsoft_slash_load-themed-styles";
       packageName = "@microsoft/load-themed-styles";
-      version = "1.10.239";
+      version = "1.10.240";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.239.tgz";
-        sha512 = "dMXqao/WRNNdmgb6AyVL04O2FoIcZDzT1DN+oostG+hMFlMdZHBIZIYhTZAvrqGwGOfnOgq9QJfbEHbefv0+0w==";
+        url = "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.240.tgz";
+        sha512 = "Db8ycvx1Kf+GWFbGMOVHB7YLOx5TANxDf7t4Qnre+iuf1O0X+YhB4vsGrNFcOL8OJXIa9P+ZaEC1GFL1bp8+4g==";
       };
     };
     "@mitmaro/errors-1.0.0" = {
@@ -4567,15 +4585,6 @@ let
         sha512 = "bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==";
       };
     };
-    "@msgpack/msgpack-1.12.2" = {
-      name = "_at_msgpack_slash_msgpack";
-      packageName = "@msgpack/msgpack";
-      version = "1.12.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-1.12.2.tgz";
-        sha512 = "Vwhc3ObxmDZmA5hY8mfsau2rJ4vGPvzbj20QSZ2/E1GDPF61QVyjLfNHak9xmel6pW4heRt3v1fHa6np9Ehfeg==";
-      };
-    };
     "@msgpack/msgpack-2.7.1" = {
       name = "_at_msgpack_slash_msgpack";
       packageName = "@msgpack/msgpack";
@@ -4837,13 +4846,13 @@ let
         sha512 = "5vwpq6kbvwkQwKqAoOU3L72GZ3Ta8RRrewKj9OJRolx28KLJJ8Dg9Rf7obRwt5jQA9bkYd8gqzMTrI7H3xLfaw==";
       };
     };
-    "@oclif/command-1.8.13" = {
+    "@oclif/command-1.8.15" = {
       name = "_at_oclif_slash_command";
       packageName = "@oclif/command";
-      version = "1.8.13";
+      version = "1.8.15";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@oclif/command/-/command-1.8.13.tgz";
-        sha512 = "yJcOWEJA3DTkdE2VDh3TqpRAuokpSeVyaGRh4qkcBNTIROp+WRlk/XnK6IvS8b3UreBEFmz1BKZrBa6aQpn4Ew==";
+        url = "https://registry.npmjs.org/@oclif/command/-/command-1.8.15.tgz";
+        sha512 = "lMRsr38sm4XBDBt2u88nvGyk3YxMjQenfX1HM140ZckTVqwuvFVZLP4HZ0rSAK9FdJzfryO/tH5hovdiC6bgsw==";
       };
     };
     "@oclif/config-1.17.0" = {
@@ -4864,15 +4873,6 @@ let
         sha512 = "cE3qfHWv8hGRCP31j7fIS7BfCflm/BNZ2HNqHexH+fDrdF2f1D5S8VmXWLC77ffv3oDvWyvE9AZeR0RfmHCCaA==";
       };
     };
-    "@oclif/core-0.5.41" = {
-      name = "_at_oclif_slash_core";
-      packageName = "@oclif/core";
-      version = "0.5.41";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@oclif/core/-/core-0.5.41.tgz";
-        sha512 = "zEYbpxSQr80t7MkLMHOmZr8QCrCIbVrI7fLSZWlsvD2AEM0vvzuhWymjo9/kHy2/kNfxwu7NTI4i2a0zoHu11w==";
-      };
-    };
     "@oclif/errors-1.3.4" = {
       name = "_at_oclif_slash_errors";
       packageName = "@oclif/errors";
@@ -4891,6 +4891,15 @@ let
         sha512 = "OivucXPH/eLLlOT7FkCMoZXiaVYf8I/w1eTAM1+gKzfhALwWTusxEx7wBmW0uzvkSg/9ovWLycPaBgJbM3LOCQ==";
       };
     };
+    "@oclif/help-1.0.1" = {
+      name = "_at_oclif_slash_help";
+      packageName = "@oclif/help";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@oclif/help/-/help-1.0.1.tgz";
+        sha512 = "8rsl4RHL5+vBUAKBL6PFI3mj58hjPCp2VYyXD4TAa7IMStikFfOH2gtWmqLzIlxAED2EpD0dfYwo9JJxYsH7Aw==";
+      };
+    };
     "@oclif/linewrap-1.0.0" = {
       name = "_at_oclif_slash_linewrap";
       packageName = "@oclif/linewrap";
@@ -4936,22 +4945,13 @@ let
         sha512 = "vq7rn16TrQmjX3Al/k1Z5iBZWZ3HE8fDXs52OmDJmmTqryPSNvURH9WCAsqr0PODYCSR17Hy1VTzS0x7vVVLEQ==";
       };
     };
-    "@oclif/plugin-help-3.2.14" = {
+    "@oclif/plugin-help-3.3.1" = {
       name = "_at_oclif_slash_plugin-help";
       packageName = "@oclif/plugin-help";
-      version = "3.2.14";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@oclif/plugin-help/-/plugin-help-3.2.14.tgz";
-        sha512 = "NP5qmE2YfcW3MmXjcrxiqKe9Hf3G0uK/qNc0zAMYKU4crFyIsWj7dBfQVFZSb28YXGioOOpjMzG1I7VMxKF38Q==";
-      };
-    };
-    "@oclif/plugin-help-3.3.0" = {
-      name = "_at_oclif_slash_plugin-help";
-      packageName = "@oclif/plugin-help";
-      version = "3.3.0";
+      version = "3.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@oclif/plugin-help/-/plugin-help-3.3.0.tgz";
-        sha512 = "+eYQZXsWnc54IM5Hv2+IoKBTKUSDt+vRbwf5I8w+DaXvzOmx0VzAbLgL1ciJzYh66CknjWMUJf/hxoc8ykJHaQ==";
+        url = "https://registry.npmjs.org/@oclif/plugin-help/-/plugin-help-3.3.1.tgz";
+        sha512 = "QuSiseNRJygaqAdABYFWn/H1CwIZCp9zp/PLid6yXvy6VcQV7OenEFF5XuYaCvSARe2Tg9r8Jqls5+fw1A9CbQ==";
       };
     };
     "@oclif/screen-1.0.4" = {
@@ -5143,328 +5143,328 @@ let
         sha512 = "a/szuMQV0Quy0/M7kKdglcbRSoorleyyOwbTNNJ32O+RBN766wbQlMTvdimImTmwYWGr+NJOni1EcC242WlRcA==";
       };
     };
-    "@ot-builder/bin-composite-types-1.3.1" = {
+    "@ot-builder/bin-composite-types-1.3.2" = {
       name = "_at_ot-builder_slash_bin-composite-types";
       packageName = "@ot-builder/bin-composite-types";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/bin-composite-types/-/bin-composite-types-1.3.1.tgz";
-        sha512 = "ienMPhQZNLqHmdriCS+vilh/6eRMGMMqrqsjjrI09MxftNPKmVoIv3nzEHgJE6fIMluX8c+cNfUuaWZaaqpiYg==";
+        url = "https://registry.npmjs.org/@ot-builder/bin-composite-types/-/bin-composite-types-1.3.2.tgz";
+        sha512 = "mtNln6Ve4bg3DxfOFFqAaNc/2DZmUSu8hZf9tM0pYoE5mOfeNfMQZEnD8Mo3WJ74bSi1SaJdXGoI00/7jPowCg==";
       };
     };
-    "@ot-builder/bin-util-1.3.1" = {
+    "@ot-builder/bin-util-1.3.2" = {
       name = "_at_ot-builder_slash_bin-util";
       packageName = "@ot-builder/bin-util";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/bin-util/-/bin-util-1.3.1.tgz";
-        sha512 = "HbHBWypPP+bUuCn/JUwmRDizRB8Q+AgW7+QKhBx8MfASR3OLCXDLFSwjW+uI95XkDEimryb4DmQ6AXRS1VtTtQ==";
+        url = "https://registry.npmjs.org/@ot-builder/bin-util/-/bin-util-1.3.2.tgz";
+        sha512 = "v+36AFrFJVQlqPF+vcZzYExCeeryPpjP2hGCGLAf+ADKLtw1sMS39+UHxmNwx5wmlfnhHtg6WTIVOV5l9grpkA==";
       };
     };
-    "@ot-builder/cli-help-shower-1.3.1" = {
+    "@ot-builder/cli-help-shower-1.3.2" = {
       name = "_at_ot-builder_slash_cli-help-shower";
       packageName = "@ot-builder/cli-help-shower";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/cli-help-shower/-/cli-help-shower-1.3.1.tgz";
-        sha512 = "PO40RTulmPRHwNigxDszJURSC+gMWeV9F2EuRNSmdnoFxCmZgFgKla7waGawIMaUWAFxMfM54R2uyQgkdOt9SQ==";
+        url = "https://registry.npmjs.org/@ot-builder/cli-help-shower/-/cli-help-shower-1.3.2.tgz";
+        sha512 = "zkaFrbS6+8GGIsx0YiXUl4vrhd4dV8ADmscc372F0fg8Wnu3k6LJClEFBYSzJAAJxxfDuuPBBDmxrHJafLg0sg==";
       };
     };
-    "@ot-builder/cli-proc-1.3.1" = {
+    "@ot-builder/cli-proc-1.3.2" = {
       name = "_at_ot-builder_slash_cli-proc";
       packageName = "@ot-builder/cli-proc";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/cli-proc/-/cli-proc-1.3.1.tgz";
-        sha512 = "FbffCJpLKFJ/f7vhs0vW85/fMO4j+tI13zv+vFf92udIZCPBxzacWU65HVdD+8BGjoDdKkGFCujRnx80BONVvg==";
+        url = "https://registry.npmjs.org/@ot-builder/cli-proc/-/cli-proc-1.3.2.tgz";
+        sha512 = "qNvhZINthCthkuzfeTmp9bHP7jesbvovcfy7f0lu6Rd7ODdU/ia/qNs58cGWcW6skN7f21Ba6TnAFzyGsll1Fg==";
       };
     };
-    "@ot-builder/cli-shared-1.3.1" = {
+    "@ot-builder/cli-shared-1.3.2" = {
       name = "_at_ot-builder_slash_cli-shared";
       packageName = "@ot-builder/cli-shared";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/cli-shared/-/cli-shared-1.3.1.tgz";
-        sha512 = "BCbTyVlWkvRML0PqseA9RRlBl5mCKDMr51k6F4d10LZXRdMi3KobtiHTYh9R+dN63KhyooSrfi810RJYau7bBg==";
+        url = "https://registry.npmjs.org/@ot-builder/cli-shared/-/cli-shared-1.3.2.tgz";
+        sha512 = "QqOGIOHJQ73MHdzSE7FM5Ip4wE8QwILfiJViB5++74qU7m8wqF3u7TsPbUxlnoYsyMv4xkHI2Bd20VHcboJ+sA==";
       };
     };
-    "@ot-builder/common-impl-1.3.1" = {
+    "@ot-builder/common-impl-1.3.2" = {
       name = "_at_ot-builder_slash_common-impl";
       packageName = "@ot-builder/common-impl";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/common-impl/-/common-impl-1.3.1.tgz";
-        sha512 = "COHVcH3naONXd5SeSUgpo58k03Y4W+aEo6VKt36kVFfVOkhnR9htOc7HUy7+UBk0MhRQ9/WSA5BmLC+ZkFRDYw==";
+        url = "https://registry.npmjs.org/@ot-builder/common-impl/-/common-impl-1.3.2.tgz";
+        sha512 = "GMJfo9am2LqVMbYloPxdatAfuphbjahpLDPRU0qcpw495SInTeYCqysuiJ5iP+PwOOua18Lay9wrPFOVbnp77g==";
       };
     };
-    "@ot-builder/errors-1.3.1" = {
+    "@ot-builder/errors-1.3.2" = {
       name = "_at_ot-builder_slash_errors";
       packageName = "@ot-builder/errors";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/errors/-/errors-1.3.1.tgz";
-        sha512 = "NVbpMCFrKLOAIMdk6fIsqHhHCrP8o54HOJd0dnpGmydhDXRns+ju8y28dKctnhqgbwBOaVJnRsqhzvgUX2OyFA==";
+        url = "https://registry.npmjs.org/@ot-builder/errors/-/errors-1.3.2.tgz";
+        sha512 = "QoQ9ksBaQxt/KyW7NRvaPPOQRKRYmLAdfKNT0GCL8eHViOxQNhFZR9OcdVQEgetxpi2HFOd7L4Mw9Jg+sugLXw==";
       };
     };
-    "@ot-builder/io-bin-cff-1.3.1" = {
+    "@ot-builder/io-bin-cff-1.3.2" = {
       name = "_at_ot-builder_slash_io-bin-cff";
       packageName = "@ot-builder/io-bin-cff";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-cff/-/io-bin-cff-1.3.1.tgz";
-        sha512 = "BHyDiQsBPQzF4AzK1spyHM/Jaw7OnI2UPEK6N+2ah7I5HcJO8TWq6MbNSFnnKgjdw6Iiz/sSXZgPYy7cVNLRYA==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-cff/-/io-bin-cff-1.3.2.tgz";
+        sha512 = "JNt/2zvTxHRQJSWJ23I8zufkyjOEaKkGt4x0JkdyvVBK7TGMu2z29ZArNCCceBr+DFAMfB0M826glHrE9DNwFQ==";
       };
     };
-    "@ot-builder/io-bin-encoding-1.3.1" = {
+    "@ot-builder/io-bin-encoding-1.3.2" = {
       name = "_at_ot-builder_slash_io-bin-encoding";
       packageName = "@ot-builder/io-bin-encoding";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-encoding/-/io-bin-encoding-1.3.1.tgz";
-        sha512 = "SPXxoPNE/wMcCK/ktY42bvksrBFTwbrDokydFs7m7RdEwn9fdhF0jYV/HSwwbTfrKdnr8SMeEPTHCx/1fRuivQ==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-encoding/-/io-bin-encoding-1.3.2.tgz";
+        sha512 = "MLHhwtD8onUkYnC0I3Wxyk5te0qYnWVrmTsnANUEiCyUMcwNGLvJnX0273Gczq41IfsL6C7KFd3AlwXHCyepkw==";
       };
     };
-    "@ot-builder/io-bin-ext-private-1.3.1" = {
+    "@ot-builder/io-bin-ext-private-1.3.2" = {
       name = "_at_ot-builder_slash_io-bin-ext-private";
       packageName = "@ot-builder/io-bin-ext-private";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-ext-private/-/io-bin-ext-private-1.3.1.tgz";
-        sha512 = "fMcJbWRBe+ms7ED/6zjQZAVEcRREx88EHBUQsvzV02ydL0iUHWdy0uB7GpzcjqP1JWIPmC3Kk5leYjqgy/X4VQ==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-ext-private/-/io-bin-ext-private-1.3.2.tgz";
+        sha512 = "BXpOFvKMAq3dbEin+9GrU7rHjdkDX2/CEXpdfGVVAsI91pcNlF0Kd200rUv7B1HoyIP5GQAhkn3/gfZCtbVKYg==";
       };
     };
-    "@ot-builder/io-bin-font-1.3.1" = {
+    "@ot-builder/io-bin-font-1.3.2" = {
       name = "_at_ot-builder_slash_io-bin-font";
       packageName = "@ot-builder/io-bin-font";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-font/-/io-bin-font-1.3.1.tgz";
-        sha512 = "3u8bQDw7yvywBhkrtnnUXzPqSo/wLmifJxg+AKomifKEws4aTmlrslDrpg8B8Vip2wPmY/ta6qsu6QywSTjgEQ==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-font/-/io-bin-font-1.3.2.tgz";
+        sha512 = "b/f3ckpBoY7OMWs0Lnp1N5mnmsOg3pc27Q9LE85tlJvx8k19NDVWOHGxr2TRiSRYgzHm5m4mCi9q8Vd9QRU/Rw==";
       };
     };
-    "@ot-builder/io-bin-glyph-store-1.3.1" = {
+    "@ot-builder/io-bin-glyph-store-1.3.2" = {
       name = "_at_ot-builder_slash_io-bin-glyph-store";
       packageName = "@ot-builder/io-bin-glyph-store";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-glyph-store/-/io-bin-glyph-store-1.3.1.tgz";
-        sha512 = "oO86B63BhkF2CCbIAroUxhyKdeeQiH4Q+BQH74Z9WxK0nMlpM/OhqzAqAhlNUzzwYpqa05fJgigqNCXyQncJbg==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-glyph-store/-/io-bin-glyph-store-1.3.2.tgz";
+        sha512 = "PPZZIwWm3njbDJMojxgwJerQFEL/eAfM1It8Wrgo/04d87jMECWhV+YML/8YEu67TuZiRhKhP27jnPENX1WavQ==";
       };
     };
-    "@ot-builder/io-bin-layout-1.3.1" = {
+    "@ot-builder/io-bin-layout-1.3.2" = {
       name = "_at_ot-builder_slash_io-bin-layout";
       packageName = "@ot-builder/io-bin-layout";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-layout/-/io-bin-layout-1.3.1.tgz";
-        sha512 = "BGThzzwMMBi0XwV0Tw97JxKyglsm9KEoY05T0L4RYmtqNxHi5K+BWBrqScspmBVq7ai+pHCiMvh+JlP3Tfq/oA==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-layout/-/io-bin-layout-1.3.2.tgz";
+        sha512 = "o1M9y2R2KbL9X6DmOx6zeBG126mwDyhxoDYFPXMEaa3x1an7zAavkOd4gZxBFgWPqeVFXScGFTge9WX7DYSDnw==";
       };
     };
-    "@ot-builder/io-bin-metadata-1.3.1" = {
+    "@ot-builder/io-bin-metadata-1.3.2" = {
       name = "_at_ot-builder_slash_io-bin-metadata";
       packageName = "@ot-builder/io-bin-metadata";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-metadata/-/io-bin-metadata-1.3.1.tgz";
-        sha512 = "hrBDfxXu6oBWvhgXqiomHwjsr+X0BYB+WqT/W5LxntdUpheGFEU/UXYlMHAidZRg7++KjjkU0q2vRqKiUe+7wg==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-metadata/-/io-bin-metadata-1.3.2.tgz";
+        sha512 = "odT8UNrlVJrtWKwNbSTrs2exddXfNLP4Ee24eoXKYsRXgbfXI97FbqOMPzGRVnXEeFI0iXQ3ZMdaJHow4yLljg==";
       };
     };
-    "@ot-builder/io-bin-metric-1.3.1" = {
+    "@ot-builder/io-bin-metric-1.3.2" = {
       name = "_at_ot-builder_slash_io-bin-metric";
       packageName = "@ot-builder/io-bin-metric";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-metric/-/io-bin-metric-1.3.1.tgz";
-        sha512 = "vq6y9K8vUIfQ3EHYZeQ2e6T1UTznFPNDo/tkAK9lmwC0QhEBAIt/qIR8ntXd6I5gvDJt9JcO3GtsvD4nJW3/fA==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-metric/-/io-bin-metric-1.3.2.tgz";
+        sha512 = "sstjrdY6Qi16idjlnwALy6bXy8QuOSIcOE5hiQeEJ3NJWgLvPcc7LIPXvwEPhv5IeyZ+ClLFn9n5cFAq3gfUdw==";
       };
     };
-    "@ot-builder/io-bin-name-1.3.1" = {
+    "@ot-builder/io-bin-name-1.3.2" = {
       name = "_at_ot-builder_slash_io-bin-name";
       packageName = "@ot-builder/io-bin-name";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-name/-/io-bin-name-1.3.1.tgz";
-        sha512 = "rzbZoPm4Wxk6nLdeipRhZHgSOjP0WDMEZCTYsFsL8ttlthtwSWH1/FVGe3z0yxgL3W9MVtTRWZNyiaT3/DOKrA==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-name/-/io-bin-name-1.3.2.tgz";
+        sha512 = "JxRB5fg78m7M4GS6uuriu1dPIeLHPqzwKJFmBZH9FStULBUtU5dc5/HaIJJg4ozIukRHyXIwnmsGZO1XsHq3VA==";
       };
     };
-    "@ot-builder/io-bin-sfnt-1.3.1" = {
+    "@ot-builder/io-bin-sfnt-1.3.2" = {
       name = "_at_ot-builder_slash_io-bin-sfnt";
       packageName = "@ot-builder/io-bin-sfnt";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-sfnt/-/io-bin-sfnt-1.3.1.tgz";
-        sha512 = "CzGr3sd3hmC66+gMDslBSwAvBjsqoJ/I8LIzz/YbCLOulC1dNKMqfkTHD9kmK26OYTD3ZlPn0f19vXwtkZ70AQ==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-sfnt/-/io-bin-sfnt-1.3.2.tgz";
+        sha512 = "6wKIR+gABvsJOL94IehuwUbVMDcSokoAv1mXI6IFVhKmdd/ev2PM7KWP3SGSJXV8Kr1QTDFORthLH4D8YFLIYA==";
       };
     };
-    "@ot-builder/io-bin-ttf-1.3.1" = {
+    "@ot-builder/io-bin-ttf-1.3.2" = {
       name = "_at_ot-builder_slash_io-bin-ttf";
       packageName = "@ot-builder/io-bin-ttf";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-ttf/-/io-bin-ttf-1.3.1.tgz";
-        sha512 = "kVLoeI4l14gMR3uMiNVpP/MN0VXxR/rUyMZGKKALq1DmwjKUdIb0drbXOUXUw4lNnkc4jq/82wM+vyVIkPS9zw==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-ttf/-/io-bin-ttf-1.3.2.tgz";
+        sha512 = "ILIs2vFdV9O14SoMMWkXikLgsSqt5sUP9EBJqdHCTv0iVaXT6SFjAWCH8EFMEMKvvaKn4Iarimty9Z+kO7DZDQ==";
       };
     };
-    "@ot-builder/io-bin-vtt-private-1.3.1" = {
+    "@ot-builder/io-bin-vtt-private-1.3.2" = {
       name = "_at_ot-builder_slash_io-bin-vtt-private";
       packageName = "@ot-builder/io-bin-vtt-private";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-vtt-private/-/io-bin-vtt-private-1.3.1.tgz";
-        sha512 = "mkh/lYFJWM9bm5wA5xiH0AXG1imWsDJR5/7Diwyq0C0lurzwNfGeDlCMG3TPc+NRA598dWX9rHkYu/v8pVkgBg==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-vtt-private/-/io-bin-vtt-private-1.3.2.tgz";
+        sha512 = "tHUcaCoCFXexp1AHGVW5uXO1NIKhqKMJEcx6Rp0s82CaVUSaORp362MYUPVcGoLylbQfBsR1c1CpLwrmzB8VoQ==";
       };
     };
-    "@ot-builder/ot-1.3.1" = {
+    "@ot-builder/ot-1.3.2" = {
       name = "_at_ot-builder_slash_ot";
       packageName = "@ot-builder/ot";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot/-/ot-1.3.1.tgz";
-        sha512 = "kdWupASaMG2AbBl9c9+QQ/mFKaNu+oTCUVfAvBIjf370Q+oR5A0Ri+4MqVRB5Aspls250l6WoNMElaceL1QjNw==";
+        url = "https://registry.npmjs.org/@ot-builder/ot/-/ot-1.3.2.tgz";
+        sha512 = "+AqSS8xW+OxlsMT5NFztGNfVCzl/dWazJYTk1JHcMK0xajJnTIrORr/rPvdbKR4iNzGbEi8R++MnGhhllBAO+w==";
       };
     };
-    "@ot-builder/ot-encoding-1.3.1" = {
+    "@ot-builder/ot-encoding-1.3.2" = {
       name = "_at_ot-builder_slash_ot-encoding";
       packageName = "@ot-builder/ot-encoding";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-encoding/-/ot-encoding-1.3.1.tgz";
-        sha512 = "oQ8chRnkdnYZh+s9w+ToLkjNUtqxUma3uLY7a6AdFsV91YugIr5kAFTIokBp7Mo4mqdWcE93HooAryaEulPEJg==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-encoding/-/ot-encoding-1.3.2.tgz";
+        sha512 = "x7AiuYe6r0uyvuw52/dWvfG6fj47v+nnQrvswOr2lOniZMhhRPRbek5y7dWCuabmRFdxmZKClK3PEgmNbVWJQQ==";
       };
     };
-    "@ot-builder/ot-ext-private-1.3.1" = {
+    "@ot-builder/ot-ext-private-1.3.2" = {
       name = "_at_ot-builder_slash_ot-ext-private";
       packageName = "@ot-builder/ot-ext-private";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-ext-private/-/ot-ext-private-1.3.1.tgz";
-        sha512 = "ZIkGHqGu4+flRAntXgdHVApVbBVvzjI0nyRr+31/JVvC4h1ZLO+okBnCfTvUcGsfqRwSE1p4htWpKEWf+0AK3A==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-ext-private/-/ot-ext-private-1.3.2.tgz";
+        sha512 = "IbZNrhXBw5AgbVoUahkDxxpuBDhpstadKdfVS8IcAZHhVyyqOD4+gkAQDfIxqNOMaCXi73dLAcQwNofF63/08w==";
       };
     };
-    "@ot-builder/ot-glyphs-1.3.1" = {
+    "@ot-builder/ot-glyphs-1.3.2" = {
       name = "_at_ot-builder_slash_ot-glyphs";
       packageName = "@ot-builder/ot-glyphs";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-glyphs/-/ot-glyphs-1.3.1.tgz";
-        sha512 = "1/I5qFAeVMh2G9XlYplgmQGHZIvlm+wI51RyCyUiISCtk7LLYtfwD5iw3BvG20FhVH5VMlkdsmDrqDjENuSnSQ==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-glyphs/-/ot-glyphs-1.3.2.tgz";
+        sha512 = "lmt3fSv4bR9xnQKVHz+B9VNnFwVCIlSXyecEhEJqCzQ5UFt3dBHgh8l29n6Yg7FL84m/wB+0vxLdLmGeRvZYeQ==";
       };
     };
-    "@ot-builder/ot-layout-1.3.1" = {
+    "@ot-builder/ot-layout-1.3.2" = {
       name = "_at_ot-builder_slash_ot-layout";
       packageName = "@ot-builder/ot-layout";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-layout/-/ot-layout-1.3.1.tgz";
-        sha512 = "70U5lSA0rzq+1KfUZxrKIUG+PI6reH/5hXRG+4y57vypsV2DDfuCgDAfGxwRo6yyi/2+RLQfqm35oRVQbqjFnw==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-layout/-/ot-layout-1.3.2.tgz";
+        sha512 = "tSdTZtExUmNRiksf6HTzHi8q3i+BazW0O9NANvK5OLroEDcHXn/2DKq4e9DNsuEjDrGLZR4vvAQ9Dx4bhvYSHg==";
       };
     };
-    "@ot-builder/ot-metadata-1.3.1" = {
+    "@ot-builder/ot-metadata-1.3.2" = {
       name = "_at_ot-builder_slash_ot-metadata";
       packageName = "@ot-builder/ot-metadata";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-metadata/-/ot-metadata-1.3.1.tgz";
-        sha512 = "XIkF8N3YgI7aAfLzJpQUPuhCBRlf6sb6q3vME+xcaZsvv4dsT24Zi11ICQW/dxTcQDA2h8Rj7OnFg2O2I7JDzw==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-metadata/-/ot-metadata-1.3.2.tgz";
+        sha512 = "JIX3zX9t3B81OTSZC39Irt9Oia8U4kMRPs4qAusGeGkxyRgVsDcHrnQjxECj/b/RPJbtVzGUxK7o+rEkUaw7Qg==";
       };
     };
-    "@ot-builder/ot-name-1.3.1" = {
+    "@ot-builder/ot-name-1.3.2" = {
       name = "_at_ot-builder_slash_ot-name";
       packageName = "@ot-builder/ot-name";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-name/-/ot-name-1.3.1.tgz";
-        sha512 = "CPbbNSgiy1YohipP638AEzrCGxZn8HOYtR17VIUbGE4DTToaFgGNbzuXnHxo2Gujvsk3PvFTC4Yu6VjYg3R8vw==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-name/-/ot-name-1.3.2.tgz";
+        sha512 = "ecqgZx589wI2YejSUMdxssoguq9CTw4Lymb3cyhdoxXxDP7Y55l2ycOU7HXAfbzwSEWYEh4wDO/y+NL0iV5d2A==";
       };
     };
-    "@ot-builder/ot-sfnt-1.3.1" = {
+    "@ot-builder/ot-sfnt-1.3.2" = {
       name = "_at_ot-builder_slash_ot-sfnt";
       packageName = "@ot-builder/ot-sfnt";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-sfnt/-/ot-sfnt-1.3.1.tgz";
-        sha512 = "RxzBnK3S1Lh+fWW23jLss22S5hH8RBIpQTgbujR5B2DgoXvcawGlIFjNiI18YOuApJySicEnCzbV3rnVY3u4sA==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-sfnt/-/ot-sfnt-1.3.2.tgz";
+        sha512 = "nXZzF4nRGH60J1rVW9ljAlLJavYH0Bp+6L3r0gQvmtLspO3w2s7dYSM1fSfkH2wCG6FqAf8C7TIUgqOS5QyzBQ==";
       };
     };
-    "@ot-builder/ot-standard-glyph-namer-1.3.1" = {
+    "@ot-builder/ot-standard-glyph-namer-1.3.2" = {
       name = "_at_ot-builder_slash_ot-standard-glyph-namer";
       packageName = "@ot-builder/ot-standard-glyph-namer";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-standard-glyph-namer/-/ot-standard-glyph-namer-1.3.1.tgz";
-        sha512 = "QgcdlBV/G5Faf17OTjTcv5QcHhvwI2UE2YU+LmZbruozsloBR3hodliovS9iOUL5oRjolSce8Yk4hKd5zhcldg==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-standard-glyph-namer/-/ot-standard-glyph-namer-1.3.2.tgz";
+        sha512 = "A3Kg35P7pThuEz6eFSAtNbZEvHMferWcs4O4jWUetBqaV6ZbOZ504hVOPVJT7WaT2iS7X4sd0BKNRJLXCwqCbA==";
       };
     };
-    "@ot-builder/ot-vtt-private-1.3.1" = {
+    "@ot-builder/ot-vtt-private-1.3.2" = {
       name = "_at_ot-builder_slash_ot-vtt-private";
       packageName = "@ot-builder/ot-vtt-private";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-vtt-private/-/ot-vtt-private-1.3.1.tgz";
-        sha512 = "JbWU6WMzvjL9XRZNE2hzqC1DlunOMZy7fzW0YXcCmIfc8++gn2KaIZJ9PVjpoEXpILTPY+QtIr1R2x8Apjn2qg==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-vtt-private/-/ot-vtt-private-1.3.2.tgz";
+        sha512 = "ny7u9ZalS6I3tzr8EKDVHLBe8gcBb02GruqFCzhx20115F7Gtk165PqqJTKH5yi2nAh2e92WallUOE7ouB11TQ==";
       };
     };
-    "@ot-builder/prelude-1.3.1" = {
+    "@ot-builder/prelude-1.3.2" = {
       name = "_at_ot-builder_slash_prelude";
       packageName = "@ot-builder/prelude";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/prelude/-/prelude-1.3.1.tgz";
-        sha512 = "uF0nQ9wIzlZ8zxrLqqU3vHPnDxMxzGsdmJrFY1AhtRsc4W8zJg5aPMC+Lpf1eIXVnAJUpolOLIILapNs+UMs1Q==";
+        url = "https://registry.npmjs.org/@ot-builder/prelude/-/prelude-1.3.2.tgz";
+        sha512 = "zDr5gEaBC47gaBsIvz46M52pIUDzPmH4nEwKYmtOQDklR+6A37/2SUOeKMBB1FCPCutyWgSWdwdiUm5wSi77lQ==";
       };
     };
-    "@ot-builder/primitive-1.3.1" = {
+    "@ot-builder/primitive-1.3.2" = {
       name = "_at_ot-builder_slash_primitive";
       packageName = "@ot-builder/primitive";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/primitive/-/primitive-1.3.1.tgz";
-        sha512 = "ZH/nn4MpX2OSvbbb0Ag0F/23EwiA3vtmFcoVUV5ouip47mZyx0Uc4s/YWjKlD1B5wjQl2s2Aa+bgswO1DiMefw==";
+        url = "https://registry.npmjs.org/@ot-builder/primitive/-/primitive-1.3.2.tgz";
+        sha512 = "hoIWTUac1//Uglj78S2w24mMB0wgMoyOZV1h0tpIaisnN2A/rhId6lOLUskn3em8j9+VcvRyIxmIvoVhDKi6mQ==";
       };
     };
-    "@ot-builder/rectify-1.3.1" = {
+    "@ot-builder/rectify-1.3.2" = {
       name = "_at_ot-builder_slash_rectify";
       packageName = "@ot-builder/rectify";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/rectify/-/rectify-1.3.1.tgz";
-        sha512 = "VlBwTQq4magiorU4DAWSZc+Ee4JzfNoUHoC1tIc62Qa0sEE0q3cTIwX8gwr7Gb/AIB7gYra6b0GzNymzOtFTow==";
+        url = "https://registry.npmjs.org/@ot-builder/rectify/-/rectify-1.3.2.tgz";
+        sha512 = "3wZy4fMSHELSaAyi/1ONQ6OLMozLvQjmyPxTkSIPlq6JbUQEOEhwTF+DgqDh6kZixaXeP/Dd/4azhDL0hbsocQ==";
       };
     };
-    "@ot-builder/stat-glyphs-1.3.1" = {
+    "@ot-builder/stat-glyphs-1.3.2" = {
       name = "_at_ot-builder_slash_stat-glyphs";
       packageName = "@ot-builder/stat-glyphs";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/stat-glyphs/-/stat-glyphs-1.3.1.tgz";
-        sha512 = "pRMLK4PFhJan4FJgTYnWXdvgDAprwHN18TGZvmoij0fwEtbGbptG639fT0NsdlOOn0U+FSanVU+pHAqvibyHIw==";
+        url = "https://registry.npmjs.org/@ot-builder/stat-glyphs/-/stat-glyphs-1.3.2.tgz";
+        sha512 = "2F3qwwAzYZcwjmRVUOC9KS7mTB0R+76ZtGoYS28kBz/WHVOduvsxr8xiUwYM/0PAZttWA1eB/CwFjZ2WhQEDAg==";
       };
     };
-    "@ot-builder/trace-1.3.1" = {
+    "@ot-builder/trace-1.3.2" = {
       name = "_at_ot-builder_slash_trace";
       packageName = "@ot-builder/trace";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/trace/-/trace-1.3.1.tgz";
-        sha512 = "N3DO0OPkZFlqhj0ncjiZCLym+wsr5AuN1k+Se5lOfad2fwzuWi/eWbSxrgFcd4ENfhFj5p+f2P5plygQEFWGQA==";
+        url = "https://registry.npmjs.org/@ot-builder/trace/-/trace-1.3.2.tgz";
+        sha512 = "TGjyWSo64Cv0pwZtiLba65qz3BZrS2fshQTnBPWa42CWVoC9wpvF+rMQarvdksJH5UZGkgXRXfdT6rXumo9D7Q==";
       };
     };
-    "@ot-builder/var-store-1.3.1" = {
+    "@ot-builder/var-store-1.3.2" = {
       name = "_at_ot-builder_slash_var-store";
       packageName = "@ot-builder/var-store";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/var-store/-/var-store-1.3.1.tgz";
-        sha512 = "8/OfcmSoMyOojFGFdRJXMeFDs2MbWQkeq3mMIOReMJ4Eai0tM5mv/Iz+ml9P1soCb6H5vHJGHPvz2jSVH/k0xA==";
+        url = "https://registry.npmjs.org/@ot-builder/var-store/-/var-store-1.3.2.tgz";
+        sha512 = "RbCBl+7xCYFgR1bvvDmD7rMU/8J5oESiHWGtx0y1KfykHP4AGElH0ZcocXE/fx8s4Q/s6oXlulojKEWt0r7GfA==";
       };
     };
-    "@ot-builder/variance-1.3.1" = {
+    "@ot-builder/variance-1.3.2" = {
       name = "_at_ot-builder_slash_variance";
       packageName = "@ot-builder/variance";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/variance/-/variance-1.3.1.tgz";
-        sha512 = "b/XIQjy72e0R0v1OQVzEVDfX/tt+L7toVpborgqbWEW+Cl43ZlBFXBgQQ/8FkWSWkbrNjNrVuI36WkvvIJDbzA==";
+        url = "https://registry.npmjs.org/@ot-builder/variance/-/variance-1.3.2.tgz";
+        sha512 = "DEC1r6TZTuhhmzz+j5/rEULkOIgtH1NWVVoo7jff4BPK879hHY56hU5mhcnkvTX9BZ02rHQcYu3ka7ddZ80ZJQ==";
       };
     };
     "@parcel/fs-1.11.0" = {
@@ -5746,13 +5746,13 @@ let
         sha512 = "y9qNj0//tZtWB2jfXNK3BX18BSBp9zNR7KE7lMysVHwbZtY392OJCjm6Rb/h4UHH2r1AqjNEHFD6bRn+DqU9Mw==";
       };
     };
-    "@redocly/openapi-core-1.0.0-beta.69" = {
+    "@redocly/openapi-core-1.0.0-beta.73" = {
       name = "_at_redocly_slash_openapi-core";
       packageName = "@redocly/openapi-core";
-      version = "1.0.0-beta.69";
+      version = "1.0.0-beta.73";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.0.0-beta.69.tgz";
-        sha512 = "A05sPH8U26qQdZgkOQfHrL8dwY3twJ51/PY43WUuRqMdeZEu3SRcIdgLyXaIgR82ZnHC2Y/MnexE5QKtKObYJA==";
+        url = "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.0.0-beta.73.tgz";
+        sha512 = "1wmKGJp+lvhNFDEfTzjB6QlyEPNyozSiDb4sfr+R97pcGa+6YdSmgItPl5P/21Y0fBZYku9Uo1n0rhFVdr20EQ==";
       };
     };
     "@redocly/react-dropdown-aria-2.0.12" = {
@@ -5791,13 +5791,13 @@ let
         sha512 = "c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ==";
       };
     };
-    "@schematics/angular-13.1.1" = {
+    "@schematics/angular-13.1.2" = {
       name = "_at_schematics_slash_angular";
       packageName = "@schematics/angular";
-      version = "13.1.1";
+      version = "13.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@schematics/angular/-/angular-13.1.1.tgz";
-        sha512 = "GY49qumsQ+w1aDsCa796iPL/GcokCVKr2OMLss3avwciBFciMOVsLxZ04lprPCivCQRcKNqbSDDx4+xH5qkrAg==";
+        url = "https://registry.npmjs.org/@schematics/angular/-/angular-13.1.2.tgz";
+        sha512 = "OMbuOsnzUFjIGeo99NYwIPwjX6udJAiT5Sj5K7QZZYj66HuAqNBMV57J8GPA56edx5mOHZZApWMjXLlOxRXbJA==";
       };
     };
     "@segment/loosely-validate-event-2.0.0" = {
@@ -6781,13 +6781,13 @@ let
         sha512 = "UP9rzNn/XyGwb5RQ2fok+DzcIRIYwc16qTXse5+Smsy8MOIccCChT15KAwnsgQx4PzJkaMq4myFyZ4CL5TjhIQ==";
       };
     };
-    "@types/eslint-scope-3.7.1" = {
+    "@types/eslint-scope-3.7.2" = {
       name = "_at_types_slash_eslint-scope";
       packageName = "@types/eslint-scope";
-      version = "3.7.1";
+      version = "3.7.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.1.tgz";
-        sha512 = "SCFeogqiptms4Fg29WpOTk5nHIzfpKCemSN63ksBQYKTcXoJEmJagV+DhVmbapZzY4/5YaOV1nZwrsU79fFm1g==";
+        url = "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.2.tgz";
+        sha512 = "TzgYCWoPiTeRg6RQYgtuW7iODtVoKu3RVL72k3WohqhjfaOLK5Mg2T4Tg1o2bSfu0vPkoI48wdQFv5b/Xe04wQ==";
       };
     };
     "@types/eslint-visitor-keys-1.0.0" = {
@@ -6970,13 +6970,13 @@ let
         sha512 = "e+2rjEwK6KDaNOm5Aa9wNGgyS9oSZU/4pfSMMPYNOfjvFI0WVXm29+ITRFr6aKDvvKo7uU1jV68MW4ScsfDi7Q==";
       };
     };
-    "@types/http-proxy-1.17.7" = {
+    "@types/http-proxy-1.17.8" = {
       name = "_at_types_slash_http-proxy";
       packageName = "@types/http-proxy";
-      version = "1.17.7";
+      version = "1.17.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.7.tgz";
-        sha512 = "9hdj6iXH64tHSLTY+Vt2eYOGzSogC+JQ2H7bdPWkuh7KXP5qLllWx++t+K9Wk556c3dkDdPws/SpMRi0sdCT1w==";
+        url = "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.8.tgz";
+        sha512 = "5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==";
       };
     };
     "@types/inquirer-6.5.0" = {
@@ -7411,6 +7411,15 @@ let
         sha512 = "+2Iggwg7PxoO5Kyhvsq9VarmPbIelXP070HMImEpbtGCoyWNINQj4wzjbQCXzdHTRXnqufutJb5KAURZANNBAw==";
       };
     };
+    "@types/node-16.11.14" = {
+      name = "_at_types_slash_node";
+      packageName = "@types/node";
+      version = "16.11.14";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/node/-/node-16.11.14.tgz";
+        sha512 = "mK6BKLpL0bG6v2CxHbm0ed6RcZrAtTHBTd/ZpnlVPVa3HkumsqLE4BC4u6TQ8D7pnrRbOU0am6epuALs+Ncnzw==";
+      };
+    };
     "@types/node-16.11.7" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
@@ -7420,6 +7429,15 @@ let
         sha512 = "QB5D2sqfSjCmTuWcBWyJ+/44bcjO7VbjSbOE0ucoVbAsSNQc4Lt6QkgkVXkTDwkL4z/beecZNDvVX15D4P8Jbw==";
       };
     };
+    "@types/node-17.0.0" = {
+      name = "_at_types_slash_node";
+      packageName = "@types/node";
+      version = "17.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/node/-/node-17.0.0.tgz";
+        sha512 = "eMhwJXc931Ihh4tkU+Y7GiLzT/y/DBNpNtr4yU9O2w3SYBsr9NaOPhQlLKRmoWtI54uNwuo0IOUFQjVOTZYRvw==";
+      };
+    };
     "@types/node-6.14.13" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
@@ -7879,13 +7897,13 @@ let
         sha512 = "ayJ0iOCDNHnKpKTgBG6Q6JOnHTj9zFta+3j2b8Ejza0e4cvRyMn0ZoLEmbPrTHe5YYRlDYPvPWVdV4cTaRyH7g==";
       };
     };
-    "@types/vscode-1.63.0" = {
+    "@types/vscode-1.63.1" = {
       name = "_at_types_slash_vscode";
       packageName = "@types/vscode";
-      version = "1.63.0";
+      version = "1.63.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/vscode/-/vscode-1.63.0.tgz";
-        sha512 = "iePu1axOi5WSThV6l2TYcciBIpAlMarjBC8H0y8L8ocsZLxh7MttzwFU3pjoItF5fRVGxHS0Hsvje9jO3yJsfw==";
+        url = "https://registry.npmjs.org/@types/vscode/-/vscode-1.63.1.tgz";
+        sha512 = "Z+ZqjRcnGfHP86dvx/BtSwWyZPKQ/LBdmAVImY82TphyjOw2KgTKcp7Nx92oNwCTsHzlshwexAG/WiY2JuUm3g==";
       };
     };
     "@types/webpack-4.41.32" = {
@@ -8275,31 +8293,31 @@ let
         sha512 = "B4Rc4wGgxTAOivy0tmBEuPAbSYeTzv3dusoQUOW1CVT3N5zYkEuxVj8OXmUQ1YECWaK+IjvQQMFkBuXt//lp7g==";
       };
     };
-    "@vue/compiler-core-3.2.24" = {
+    "@vue/compiler-core-3.2.26" = {
       name = "_at_vue_slash_compiler-core";
       packageName = "@vue/compiler-core";
-      version = "3.2.24";
+      version = "3.2.26";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.24.tgz";
-        sha512 = "A0SxB2HAggKzP57LDin5gfgWOTwFyGCtQ5MTMNBADnfQYALWnYuC8kMI0DhRSplGTWRvn9Z2DAnG8f35BnojuA==";
+        url = "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.26.tgz";
+        sha512 = "N5XNBobZbaASdzY9Lga2D9Lul5vdCIOXvUMd6ThcN8zgqQhPKfCV+wfAJNNJKQkSHudnYRO2gEB+lp0iN3g2Tw==";
       };
     };
-    "@vue/compiler-dom-3.2.24" = {
+    "@vue/compiler-dom-3.2.26" = {
       name = "_at_vue_slash_compiler-dom";
       packageName = "@vue/compiler-dom";
-      version = "3.2.24";
+      version = "3.2.26";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.24.tgz";
-        sha512 = "KQEm8r0JFsrNNIfbD28pcwMvHpcJcwjVR1XWFcD0yyQ8eREd7IXhT7J6j7iNCSE/TIo78NOvkwbyX+lnIm836w==";
+        url = "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.26.tgz";
+        sha512 = "smBfaOW6mQDxcT3p9TKT6mE22vjxjJL50GFVJiI0chXYGU/xzC05QRGrW3HHVuJrmLTLx5zBhsZ2dIATERbarg==";
       };
     };
-    "@vue/shared-3.2.24" = {
+    "@vue/shared-3.2.26" = {
       name = "_at_vue_slash_shared";
       packageName = "@vue/shared";
-      version = "3.2.24";
+      version = "3.2.26";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/shared/-/shared-3.2.24.tgz";
-        sha512 = "BUgRiZCkCrqDps5aQ9av05xcge3rn092ztKIh17tHkeEFgP4zfXMQWBA2zfdoCdCEdBL26xtOv+FZYiOp9RUDA==";
+        url = "https://registry.npmjs.org/@vue/shared/-/shared-3.2.26.tgz";
+        sha512 = "vPV6Cq+NIWbH5pZu+V+2QHE9y1qfuTq49uNWw4f7FDEeZaDU2H2cx5jcUZOAKW7qTrUS4k6qZPbMy1x4N96nbA==";
       };
     };
     "@webassemblyjs/ast-1.11.1" = {
@@ -12703,15 +12721,6 @@ let
         sha512 = "H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==";
       };
     };
-    "base32.js-0.1.0" = {
-      name = "base32.js";
-      packageName = "base32.js";
-      version = "0.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/base32.js/-/base32.js-0.1.0.tgz";
-        sha1 = "b582dec693c2f11e893cf064ee6ac5b6131a2202";
-      };
-    };
     "base62-0.1.1" = {
       name = "base62";
       packageName = "base62";
@@ -13090,6 +13099,15 @@ let
         sha512 = "kIPXZS5qwyKiX/HcRvDYfmBQUa8XP17I0mYZZ0y4UhpYOSvtsLHDYqmomS+Mj20aDvD3knEiQ0ecQy2nhio3yA==";
       };
     };
+    "better-opn-3.0.1" = {
+      name = "better-opn";
+      packageName = "better-opn";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/better-opn/-/better-opn-3.0.1.tgz";
+        sha512 = "u7pU4QnwLQ+wCDLHdvtWbI/41pSRayJ+UHyAqpb5sr42FGnqzBlEyWdCklfaSzXqbmnXDBzCvWcaZmL3qp0xGA==";
+      };
+    };
     "better-queue-3.8.10" = {
       name = "better-queue";
       packageName = "better-queue";
@@ -13216,13 +13234,13 @@ let
         sha512 = "t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==";
       };
     };
-    "bignumber.js-9.0.1" = {
+    "bignumber.js-9.0.2" = {
       name = "bignumber.js";
       packageName = "bignumber.js";
-      version = "9.0.1";
+      version = "9.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz";
-        sha512 = "IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==";
+        url = "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz";
+        sha512 = "GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==";
       };
     };
     "bigspinner-3.1.0" = {
@@ -14485,13 +14503,13 @@ let
         sha512 = "HI4lPveGKUR0x2StIz+2FXfDk9SfVMrxn6PLh1JeGUwcuoDkdKZebWiyLRJ68iIPDpMI4JLVDf7S7XzslgWOhw==";
       };
     };
-    "browserslist-4.18.1" = {
+    "browserslist-4.19.1" = {
       name = "browserslist";
       packageName = "browserslist";
-      version = "4.18.1";
+      version = "4.19.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/browserslist/-/browserslist-4.18.1.tgz";
-        sha512 = "8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ==";
+        url = "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz";
+        sha512 = "u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==";
       };
     };
     "brq-0.1.8" = {
@@ -15575,13 +15593,13 @@ let
         sha512 = "bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==";
       };
     };
-    "caniuse-lite-1.0.30001286" = {
+    "caniuse-lite-1.0.30001287" = {
       name = "caniuse-lite";
       packageName = "caniuse-lite";
-      version = "1.0.30001286";
+      version = "1.0.30001287";
       src = fetchurl {
-        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001286.tgz";
-        sha512 = "zaEMRH6xg8ESMi2eQ3R4eZ5qw/hJiVsO/HlLwniIwErij0JDr9P+8V4dtx1l+kLq6j3yy8l8W4fst1lBnat5wQ==";
+        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001287.tgz";
+        sha512 = "4udbs9bc0hfNrcje++AxBuc6PfLNHwh3PO9kbwnfCQWyqtlzg3py0YgFu8jyRTTo85VAz4U+VLxSlID09vNtWA==";
       };
     };
     "canvas-2.8.0" = {
@@ -15746,31 +15764,31 @@ let
         sha512 = "eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==";
       };
     };
-    "cdk8s-1.2.8" = {
+    "cdk8s-1.3.2" = {
       name = "cdk8s";
       packageName = "cdk8s";
-      version = "1.2.8";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cdk8s/-/cdk8s-1.2.8.tgz";
-        sha512 = "w8lIVeS9sIUDS+ueuXZz7yJ3kfka8EaKeSRd0Lqw+uuoszy1M23DP7noWsMqBefFZ+dgKlsWpaPWeUhgwxZyIQ==";
+        url = "https://registry.npmjs.org/cdk8s/-/cdk8s-1.3.2.tgz";
+        sha512 = "ZAYcx5EplKocUWhB50cYqs6C21+27ogXZiqY68J521Lt0cGgCm95Z0Ul3vErmcxaRPGto66odmgZ9FkGBAW8bA==";
       };
     };
-    "cdk8s-plus-22-1.0.0-beta.59" = {
+    "cdk8s-plus-22-1.0.0-beta.62" = {
       name = "cdk8s-plus-22";
       packageName = "cdk8s-plus-22";
-      version = "1.0.0-beta.59";
+      version = "1.0.0-beta.62";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cdk8s-plus-22/-/cdk8s-plus-22-1.0.0-beta.59.tgz";
-        sha512 = "OE9WxRi4T0VtHaVYDbXibN3W2/s4Cn9KXRNYOfq7OeKEf2iE3+5I9bsm1SbZazfsVI57iumY0nnenLg5BDmysw==";
+        url = "https://registry.npmjs.org/cdk8s-plus-22/-/cdk8s-plus-22-1.0.0-beta.62.tgz";
+        sha512 = "VlRod4cmslhNOUt34d1gysY5qlK2lbhXI5PI4wXbvKDDEUvi5MGPGXCREtvDcgzDZk+EqdJ6QTnjYWnqLzcAng==";
       };
     };
-    "cdktf-0.8.1" = {
+    "cdktf-0.8.3" = {
       name = "cdktf";
       packageName = "cdktf";
-      version = "0.8.1";
+      version = "0.8.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cdktf/-/cdktf-0.8.1.tgz";
-        sha512 = "12SZiQvl8r6/Y77dDVlIeYym8ny4Mh3M8WNwWNXV0Gy9S4xJyODKYuKYCleaiJxwtHOkkN7Hn0S3RxAZyx3eRg==";
+        url = "https://registry.npmjs.org/cdktf/-/cdktf-0.8.3.tgz";
+        sha512 = "XW1bmmZ71OslgcCpmippWJOzdL1prJ1rTVADk4AKN+cw0s8udJ/FDJJVdfwH0ZMvFtU82ha+epOIHO8GJjSPHA==";
       };
     };
     "center-align-0.1.3" = {
@@ -16880,13 +16898,13 @@ let
         sha512 = "/1owvF0SZ5Gn54cgrikJ0QskgTzeg30HGjkmjFoaHDJzAqFpuX1DBpFR8aLvsE1J5s9MgeYRENQK4BFwOag5VA==";
       };
     };
-    "cli-ux-5.6.6" = {
+    "cli-ux-5.6.7" = {
       name = "cli-ux";
       packageName = "cli-ux";
-      version = "5.6.6";
+      version = "5.6.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cli-ux/-/cli-ux-5.6.6.tgz";
-        sha512 = "4wUB34zoFklcZV0z5YiOM5IqVMMt9c3TK3QYRK3dqyk3XoRC0ybiWDWHfsMDjkKrzsVTw95rXn9NrzSHbae4pg==";
+        url = "https://registry.npmjs.org/cli-ux/-/cli-ux-5.6.7.tgz";
+        sha512 = "dsKAurMNyFDnO6X1TiiRNiVbL90XReLKcvIq4H777NMqXGBxBws23ag8ubCJE97vVZEgWG2eSUhsyLf63Jv8+g==";
       };
     };
     "cli-width-1.1.1" = {
@@ -17384,13 +17402,13 @@ let
         sha512 = "3WQV/Fpa77nvzjUlc+0u53uIroJyyMB2Qwl++aXpAiDIsrsiAQq4uCURwdRBRX+eLkOTIAmT0L4qna3T7+2pUg==";
       };
     };
-    "codemaker-1.47.0" = {
+    "codemaker-1.49.0" = {
       name = "codemaker";
       packageName = "codemaker";
-      version = "1.47.0";
+      version = "1.49.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/codemaker/-/codemaker-1.47.0.tgz";
-        sha512 = "3Ab891O2IKCAOJE1rrgHS1z91AKlxoeQ2gfvL9bDv2K7zSrEN0IwI/YCgrIsUsf1RQFIOKDnizhFjn2PAap8Wg==";
+        url = "https://registry.npmjs.org/codemaker/-/codemaker-1.49.0.tgz";
+        sha512 = "WtHwTvbR1uORGHNnl2D3kcPk52u21x4oQNsLC5n7r6vCXdRE7RAsy0hUi1ovt+9NQ4jvM9BfeMUdZp9o8h4oog==";
       };
     };
     "codepage-1.4.0" = {
@@ -18428,13 +18446,13 @@ let
         sha512 = "wVQcQgwwK7b//7yI54/3hundmXAw7RBpuy5f6yIBFNceJr8feTK6Cs2I2f3+gp3/ikszzTouLup9AzxioEEXPQ==";
       };
     };
-    "constructs-3.3.165" = {
+    "constructs-3.3.166" = {
       name = "constructs";
       packageName = "constructs";
-      version = "3.3.165";
+      version = "3.3.166";
       src = fetchurl {
-        url = "https://registry.npmjs.org/constructs/-/constructs-3.3.165.tgz";
-        sha512 = "s1O0hXAVDNhwCk07vM7Av9Xek3EUF8LdvVRaFSk+oONp/A5cPGz0fXFJkp0fg9JF34imWr20F2uCggw1t8ozhw==";
+        url = "https://registry.npmjs.org/constructs/-/constructs-3.3.166.tgz";
+        sha512 = "vhFswEqFb5BRkeYbWPd66A+BtvSSSdRI/1TYNwetC2reJul+ztI40vK9l2CNx1Vi/EOAQp1qjjjTEg+29irtYA==";
       };
     };
     "consume-http-header-1.0.0" = {
@@ -18519,13 +18537,13 @@ let
         sha1 = "0e790b3abfef90f6ecb77ae8585db9099caf7578";
       };
     };
-    "contentful-management-7.45.7" = {
+    "contentful-management-7.47.0" = {
       name = "contentful-management";
       packageName = "contentful-management";
-      version = "7.45.7";
+      version = "7.47.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/contentful-management/-/contentful-management-7.45.7.tgz";
-        sha512 = "wm0jumYKK5ecfGZbADcQHrK7pDuzTzWsoORrJ8p/Hh+ariU3XgwbwY781jvLgYAy2OwQNJZEHrm+TlxVvfie2Q==";
+        url = "https://registry.npmjs.org/contentful-management/-/contentful-management-7.47.0.tgz";
+        sha512 = "DruvWHDD/og1Qpu0T5kCmRlm6XSJYFDPNNJOlgo3DeUVLEvp/76nAhEjsW2sPV2KBANgD4wVytP4p6/vO3/LxA==";
       };
     };
     "contentful-sdk-core-6.10.4" = {
@@ -18852,13 +18870,13 @@ let
         sha512 = "z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==";
       };
     };
-    "cookie-session-2.0.0-rc.1" = {
+    "cookie-session-2.0.0" = {
       name = "cookie-session";
       packageName = "cookie-session";
-      version = "2.0.0-rc.1";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cookie-session/-/cookie-session-2.0.0-rc.1.tgz";
-        sha512 = "zg80EsLe7S1J4y0XxV7SZ8Fbi90ZZoampuX2bfYDOvJfc//98sSlZC41YDzTTjtVbeU1VlVdBbldXOOyi5xzEw==";
+        url = "https://registry.npmjs.org/cookie-session/-/cookie-session-2.0.0.tgz";
+        sha512 = "hKvgoThbw00zQOleSlUr2qpvuNweoqBtxrmx0UFosx6AGi9lYtLoA+RbsvknrEX8Pr6MDbdWAb2j6SnMn+lPsg==";
       };
     };
     "cookie-signature-1.0.1" = {
@@ -19023,31 +19041,31 @@ let
         sha512 = "WJeQqq6jOYgVgg4NrXKL0KLQhi0CT4ZOCvFL+3CQ5o7I6J8HkT5wd53EadMfqTDp1so/MT1J+w2ujhWcCJtN7w==";
       };
     };
-    "core-js-3.19.3" = {
+    "core-js-3.20.0" = {
       name = "core-js";
       packageName = "core-js";
-      version = "3.19.3";
+      version = "3.20.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core-js/-/core-js-3.19.3.tgz";
-        sha512 = "LeLBMgEGSsG7giquSzvgBrTS7V5UL6ks3eQlUSbN8dJStlLFiRzUm5iqsRyzUB8carhfKjkJ2vzKqE6z1Vga9g==";
+        url = "https://registry.npmjs.org/core-js/-/core-js-3.20.0.tgz";
+        sha512 = "KjbKU7UEfg4YPpskMtMXPhUKn7m/1OdTHTVjy09ScR2LVaoUXe8Jh0UdvN2EKUR6iKTJph52SJP95mAB0MnVLQ==";
       };
     };
-    "core-js-compat-3.19.3" = {
+    "core-js-compat-3.20.0" = {
       name = "core-js-compat";
       packageName = "core-js-compat";
-      version = "3.19.3";
+      version = "3.20.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.19.3.tgz";
-        sha512 = "59tYzuWgEEVU9r+SRgceIGXSSUn47JknoiXW6Oq7RW8QHjXWz3/vp8pa7dbtuVu40sewz3OP3JmQEcDdztrLhA==";
+        url = "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.20.0.tgz";
+        sha512 = "relrah5h+sslXssTTOkvqcC/6RURifB0W5yhYBdBkaPYa5/2KBMiog3XiD+s3TwEHWxInWVv4Jx2/Lw0vng+IQ==";
       };
     };
-    "core-js-pure-3.19.3" = {
+    "core-js-pure-3.20.0" = {
       name = "core-js-pure";
       packageName = "core-js-pure";
-      version = "3.19.3";
+      version = "3.20.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.19.3.tgz";
-        sha512 = "N3JruInmCyt7EJj5mAq3csCgGYgiSqu7p7TQp2KOztr180/OAIxyIvL1FCjzgmQk/t3Yniua50Fsak7FShI9lA==";
+        url = "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.20.0.tgz";
+        sha512 = "qsrbIwWSEEYOM7z616jAVgwhuDDtPLwZSpUsU3vyUkHYqKTf/uwOJBZg2V7lMurYWkpVlaVOxBrfX0Q3ppvjfg==";
       };
     };
     "core-util-is-1.0.2" = {
@@ -19293,13 +19311,13 @@ let
         sha1 = "06be7abef947a3f14a30fd610671d401bca8b7b6";
       };
     };
-    "create-gatsby-2.3.0" = {
+    "create-gatsby-2.4.0" = {
       name = "create-gatsby";
       packageName = "create-gatsby";
-      version = "2.3.0";
+      version = "2.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/create-gatsby/-/create-gatsby-2.3.0.tgz";
-        sha512 = "nnscdTqSZ/LUUg825sY+XkbEKbUdoJKPpuMfOuTli1ZbmClOdwEa25CSFN7MgXZvvD2BXbw5BezLcSPvMvpCoA==";
+        url = "https://registry.npmjs.org/create-gatsby/-/create-gatsby-2.4.0.tgz";
+        sha512 = "tBGS/Fv4KPNIe8bJE58OyZlIjdvTzwm830RkNQspI+f4V69u0d+API6KGk1UFaGG63n5/d+1Efu/inzp9TMylQ==";
       };
     };
     "create-graphback-1.0.1" = {
@@ -19554,49 +19572,49 @@ let
         sha512 = "v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==";
       };
     };
-    "cspell-gitignore-5.13.2" = {
+    "cspell-gitignore-5.13.3" = {
       name = "cspell-gitignore";
       packageName = "cspell-gitignore";
-      version = "5.13.2";
+      version = "5.13.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-5.13.2.tgz";
-        sha512 = "72qwIApgHHqw7679Npq60HGFm8fnNNyKk+dYs3Sp3bn8D+tOdhamgfnGxdC1MbvvN2m2+pge69QHjsCdU80l4g==";
+        url = "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-5.13.3.tgz";
+        sha512 = "/x8C9v0WINmyD6rgyX3OByN7lVgk1EIt0AGfYZXcVgx6iCpvBNyz8It1l3kaCEw5OPWyHvCEGeL8cy53y2dZxQ==";
       };
     };
-    "cspell-glob-5.13.2" = {
+    "cspell-glob-5.13.3" = {
       name = "cspell-glob";
       packageName = "cspell-glob";
-      version = "5.13.2";
+      version = "5.13.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cspell-glob/-/cspell-glob-5.13.2.tgz";
-        sha512 = "DLW9nhBW6fxwLl3OEGfgBv9G1UQkXNuh5S6QSIhVgRBj/K+xYokxASu2HHJvUmnauAY8HqWxJ7j33FZE/FoDEg==";
+        url = "https://registry.npmjs.org/cspell-glob/-/cspell-glob-5.13.3.tgz";
+        sha512 = "9g1/AJs7ws1tLDXFJwcePhmab3wxrWbxEZVfmJIHhawp9rWc+cU6BZFdxJJ52EHClKa+DuKJxYsyohE1ctD9rA==";
       };
     };
-    "cspell-io-5.13.2" = {
+    "cspell-io-5.13.3" = {
       name = "cspell-io";
       packageName = "cspell-io";
-      version = "5.13.2";
+      version = "5.13.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cspell-io/-/cspell-io-5.13.2.tgz";
-        sha512 = "0/h8i02mIQGkDoYy4LUoMH4WVL8u55iCNnE+/qMTIO8Dld87qqKdhnHASPsvVyb0AHpkEOzOyR62ehpNfqqGeQ==";
+        url = "https://registry.npmjs.org/cspell-io/-/cspell-io-5.13.3.tgz";
+        sha512 = "4OwpSprgaUc8yZGWHUBiy5Uv528gmk7wMai6c2ZQOd8HEOkIoxWIjCVnOEYHsXBflhcrvSPxirwcsLOcGU2bkQ==";
       };
     };
-    "cspell-lib-5.13.2" = {
+    "cspell-lib-5.13.3" = {
       name = "cspell-lib";
       packageName = "cspell-lib";
-      version = "5.13.2";
+      version = "5.13.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cspell-lib/-/cspell-lib-5.13.2.tgz";
-        sha512 = "n7o59nwoIxrftfyd7Zhnx0NsPT1kuTDrjRojsCgJZzfAxi5o+MCJ0a1a6JFbpf4yK2EWwUUkpsFPmibkK4kbqQ==";
+        url = "https://registry.npmjs.org/cspell-lib/-/cspell-lib-5.13.3.tgz";
+        sha512 = "X4GkrxhMkNTH+H+irHHL2GluwQHhR3G0/5+bF/KOYtZ4Ypi2iVYkzcxB3xPmaeM82+NHyoNu/TU5I1jspt4GSg==";
       };
     };
-    "cspell-trie-lib-5.13.2" = {
+    "cspell-trie-lib-5.13.3" = {
       name = "cspell-trie-lib";
       packageName = "cspell-trie-lib";
-      version = "5.13.2";
+      version = "5.13.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-5.13.2.tgz";
-        sha512 = "kEodSYfoSnpdXIJPBj7CJouube7GE/Aj4pD/HZplPbMt786I7ZraKEQ2bDP7xU9+N4xSIyj2D9IP3zb0BEl6kQ==";
+        url = "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-5.13.3.tgz";
+        sha512 = "CbydOTo7u/XxBn2tyWwIkl/KQ8ikLT4TSBM2M/3e7pZMtbAKGlV2L8P0M77mHbz5HrlL+pqrU/Ywk7TwoXmKNQ==";
       };
     };
     "csrf-3.1.0" = {
@@ -19734,13 +19752,13 @@ let
         sha512 = "Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==";
       };
     };
-    "css-select-4.1.3" = {
+    "css-select-4.2.0" = {
       name = "css-select";
       packageName = "css-select";
-      version = "4.1.3";
+      version = "4.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz";
-        sha512 = "gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA==";
+        url = "https://registry.npmjs.org/css-select/-/css-select-4.2.0.tgz";
+        sha512 = "6YVG6hsH9yIb/si3Th/is8Pex7qnVHO6t7q7U6TIUnkQASGbS8tnUDBftnPynLNnuUl/r2+PTd0ekiiq7R0zJw==";
       };
     };
     "css-select-base-adapter-0.1.1" = {
@@ -22146,13 +22164,13 @@ let
         sha1 = "84c6e159b81904fdca59a0ef44cd870d31250f9a";
       };
     };
-    "deltachat-node-1.60.0" = {
+    "deltachat-node-1.70.0" = {
       name = "deltachat-node";
       packageName = "deltachat-node";
-      version = "1.60.0";
+      version = "1.70.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/deltachat-node/-/deltachat-node-1.60.0.tgz";
-        sha512 = "ONDEN3IM2F2XPs2G/6Cc3MeZnyRicm4sa/Sm/J0xxVA9ApGORMQF2v4X5pwMt4liYD84De2P95R85VhwSM4GVA==";
+        url = "https://registry.npmjs.org/deltachat-node/-/deltachat-node-1.70.0.tgz";
+        sha512 = "PjI8X+MPPdVLF2Tq+WG0r9twwxFAWAi1yz+23+Qt07qTNcyeYHJx499Ssc3II5Q5MW00ylTdnFd+APD7FpFqLQ==";
       };
     };
     "denodeify-1.2.1" = {
@@ -22461,6 +22479,15 @@ let
         sha512 = "4INMPwNm9XRpBukhNbF7OB6fNTTCaI8pzy/fXg0xQzAy5h3zL1P8xT3QazgKqBrb/hAYwIBizqDBZ7GtJE74QQ==";
       };
     };
+    "devtools-protocol-0.0.937139" = {
+      name = "devtools-protocol";
+      packageName = "devtools-protocol";
+      version = "0.0.937139";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.937139.tgz";
+        sha512 = "daj+rzR3QSxsPRy5vjjthn58axO8c11j58uY0lG5vvlJk/EiOdCWOptGdkXDjtuRHr78emKq0udHCXM4trhoDQ==";
+      };
+    };
     "dezalgo-1.0.3" = {
       name = "dezalgo";
       packageName = "dezalgo";
@@ -22893,31 +22920,31 @@ let
         sha512 = "2FFKzmLGOnD+Y378bRKH+gTjRMuSpH7OKgPy31KjjfCoKZx7tU8Dmqfd/3fhG2d/4bppuN8/KtWMUZBAcUCRnQ==";
       };
     };
-    "dockerfile-ast-0.3.4" = {
+    "dockerfile-ast-0.4.1" = {
       name = "dockerfile-ast";
       packageName = "dockerfile-ast";
-      version = "0.3.4";
+      version = "0.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dockerfile-ast/-/dockerfile-ast-0.3.4.tgz";
-        sha512 = "QjNH/VnTrWjlDekJtk5GBKbypcFUBdGexd+eOAeivwwSWky6bIJps1cw/qw1jU5K3TDMgtufAHaBh7OV5X/EqA==";
+        url = "https://registry.npmjs.org/dockerfile-ast/-/dockerfile-ast-0.4.1.tgz";
+        sha512 = "qM5/m+Ez4GOM3ILkG13+cPxwgIcuA/z3LmEPZf4VJ82f7T1DuVbz7ctw4IzWdbiecuXcs+C4fFVbo5priGnIIQ==";
       };
     };
-    "dockerfile-language-service-0.7.3" = {
+    "dockerfile-language-service-0.7.4" = {
       name = "dockerfile-language-service";
       packageName = "dockerfile-language-service";
-      version = "0.7.3";
+      version = "0.7.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dockerfile-language-service/-/dockerfile-language-service-0.7.3.tgz";
-        sha512 = "zTDkmeBmafVGDx/34gWAst8tAysx2bUWcSnw+f5SI+b3SzpJNUzoWpgm7xtoNwHoWRuB7xHdiGmvkbrRfA2o8Q==";
+        url = "https://registry.npmjs.org/dockerfile-language-service/-/dockerfile-language-service-0.7.4.tgz";
+        sha512 = "SxKqTMQshN6xr20qTeurUydI432+ZUrkfhMurknjPvhdTc5oheH+WeN1cqKKQrILlcVq7agbFlXH51sdempuGQ==";
       };
     };
-    "dockerfile-utils-0.9.2" = {
+    "dockerfile-utils-0.9.3" = {
       name = "dockerfile-utils";
       packageName = "dockerfile-utils";
-      version = "0.9.2";
+      version = "0.9.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dockerfile-utils/-/dockerfile-utils-0.9.2.tgz";
-        sha512 = "QgcYXSZFBBbPuiQskEAVnW3qSShSCSisLNt2wQZXupBQ/x1lFIyvVfWXk4OQqWoatHyAfUBiXDNx9eRXkmSALQ==";
+        url = "https://registry.npmjs.org/dockerfile-utils/-/dockerfile-utils-0.9.3.tgz";
+        sha512 = "tMPdbywzglQh7JieKL1vn7HyJoYwk8J8AyfyLaqkLJ5tRA/TSrOVK6R40C3bwEceYg875crMo8yHSkz09Fc6VA==";
       };
     };
     "doctoc-2.1.0" = {
@@ -23172,15 +23199,6 @@ let
         sha512 = "3VdM/SXBZX2omc9JF9nOPCtDaYQ67BGp5CoLpIQlO2KCAPETs8TcDHacF26jXadGbvUteZzRTeos2fhID5+ucQ==";
       };
     };
-    "dompurify-2.3.3" = {
-      name = "dompurify";
-      packageName = "dompurify";
-      version = "2.3.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/dompurify/-/dompurify-2.3.3.tgz";
-        sha512 = "dqnqRkPMAjOZE0FogZ+ceJNM2dZ3V/yNOuFB7+39qpO93hHhfRpHw3heYQC7DPK9FqbQTfBKUJhiSfz4MvXYwg==";
-      };
-    };
     "dompurify-2.3.4" = {
       name = "dompurify";
       packageName = "dompurify";
@@ -23739,13 +23757,13 @@ let
         sha512 = "U9dKi10V9w/BdIVB8a8dTKYLK3Q1d2WZ+Yo5qfM3XX/O4jI7KpnwgvWgGoVv0jTWPC2NlebF00ffWS/8NfUAtA==";
       };
     };
-    "electron-to-chromium-1.4.16" = {
+    "electron-to-chromium-1.4.21" = {
       name = "electron-to-chromium";
       packageName = "electron-to-chromium";
-      version = "1.4.16";
+      version = "1.4.21";
       src = fetchurl {
-        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.16.tgz";
-        sha512 = "BQb7FgYwnu6haWLU63/CdVW+9xhmHls3RCQUFiV4lvw3wimEHTVcUk2hkuZo76QhR8nnDdfZE7evJIZqijwPdA==";
+        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.21.tgz";
+        sha512 = "T04U2ciApGbm+dESFEBbewi2Xt0Dgyww8M4n4sOt9lnmFuYbaHEDWCROkx4jvAZDUWWry9YOdnAs+7468q80Qg==";
       };
     };
     "electrum-client-git://github.com/janoside/electrum-client" = {
@@ -23813,13 +23831,13 @@ let
         sha512 = "Bt1sBAGFHY9DKY+4/2cV6izcKJUf5T7/gkdmkxzX/qv9CcGH8xSwVRW5mtX03SWJtRTWSOpzCuWN9rBFYZepZQ==";
       };
     };
-    "emmet-2.3.4" = {
+    "emmet-2.3.5" = {
       name = "emmet";
       packageName = "emmet";
-      version = "2.3.4";
+      version = "2.3.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/emmet/-/emmet-2.3.4.tgz";
-        sha512 = "3IqSwmO+N2ZGeuhDyhV/TIOJFUbkChi53bcasSNRE7Yd+4eorbbYz4e53TpMECt38NtYkZNupQCZRlwdAYA42A==";
+        url = "https://registry.npmjs.org/emmet/-/emmet-2.3.5.tgz";
+        sha512 = "LcWfTamJnXIdMfLvJEC5Ld3hY5/KHXgv1L1bp6I7eEvB0ZhacHZ1kX0BYovJ8FroEsreLcq7n7kZhRMsf6jkXQ==";
       };
     };
     "emoji-js-clean-4.0.0" = {
@@ -24335,15 +24353,6 @@ let
         sha512 = "bHz59NlBbtS0NhftmR8+ExBEekE7br0e01jw+kk0NDro7TtZzBYZ5ScGPs3OmwnpyfHTHOtr1Y6uedCdrIldtg==";
       };
     };
-    "envinfo-7.7.3" = {
-      name = "envinfo";
-      packageName = "envinfo";
-      version = "7.7.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/envinfo/-/envinfo-7.7.3.tgz";
-        sha512 = "46+j5QxbPWza0PB1i15nZx0xQ4I/EfQxg9J8Had3b408SV63nEtor2e+oiY63amTo9KTuh2a3XLObNwduxYwwA==";
-      };
-    };
     "envinfo-7.8.1" = {
       name = "envinfo";
       packageName = "envinfo";
@@ -24632,6 +24641,15 @@ let
         sha512 = "p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==";
       };
     };
+    "esbuild-0.12.29" = {
+      name = "esbuild";
+      packageName = "esbuild";
+      version = "0.12.29";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/esbuild/-/esbuild-0.12.29.tgz";
+        sha512 = "w/XuoBCSwepyiZtIRsKsetiLDUVGPVw1E/R3VTFSecIy8UR7Cq3SOtwKHJMFoVqqVG36aGkzh4e8BvpO1Fdc7g==";
+      };
+    };
     "esc-exit-3.0.0" = {
       name = "esc-exit";
       packageName = "esc-exit";
@@ -25811,13 +25829,22 @@ let
         sha1 = "a793d3ac0cad4c6ab571e9968fbbab6cb2532929";
       };
     };
-    "expo-pwa-0.0.102" = {
+    "expo-modules-autolinking-0.4.0" = {
+      name = "expo-modules-autolinking";
+      packageName = "expo-modules-autolinking";
+      version = "0.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-0.4.0.tgz";
+        sha512 = "GRGHbQ4b/aOtEup/oA6YVS7OOBKqU4sNLhoiTkEJWXmYDRERZiRvp8N2krQtn54y5PqucftqlBrMbdCinTouqg==";
+      };
+    };
+    "expo-pwa-0.0.108" = {
       name = "expo-pwa";
       packageName = "expo-pwa";
-      version = "0.0.102";
+      version = "0.0.108";
       src = fetchurl {
-        url = "https://registry.npmjs.org/expo-pwa/-/expo-pwa-0.0.102.tgz";
-        sha512 = "8vqf+hXpQhzDvEj0Wxx3bD4ZtZTU200F4qGO7QFv16Ji5yGPYgb7bAPokUU5v2DF6q0gsDgEF0WtqCU67lScgQ==";
+        url = "https://registry.npmjs.org/expo-pwa/-/expo-pwa-0.0.108.tgz";
+        sha512 = "+DIFOpzx5oPOYbm7PqCCZVyVZQGJ78r9Ra1rCri2QiYSyH+tS8Yzns1885SdcSh0xLMW7I0ZhKrFs/RB++u7fg==";
       };
     };
     "express-2.5.11" = {
@@ -25955,13 +25982,13 @@ let
         sha1 = "f5fc2f9fa9e9a8578634f10e86ba5a4346b96f4f";
       };
     };
-    "express-validator-6.13.0" = {
+    "express-validator-6.14.0" = {
       name = "express-validator";
       packageName = "express-validator";
-      version = "6.13.0";
+      version = "6.14.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/express-validator/-/express-validator-6.13.0.tgz";
-        sha512 = "gvLqMFPwEm+C1CQlF3l695ubY1Shd3AtfI5JDYXM0Ju0A2GsGX+VjjQN7TcHXF6cO8wPgU8hSSFqWecBR0Gx1g==";
+        url = "https://registry.npmjs.org/express-validator/-/express-validator-6.14.0.tgz";
+        sha512 = "ZWHJfnRgePp3FKRSKMtnZVnD1s8ZchWD+jSl7UMseGIqhweCo1Z9916/xXBbJAa6PrA3pUZfkOvIsHZG4ZtIMw==";
       };
     };
     "express-ws-2.0.0" = {
@@ -26630,15 +26657,6 @@ let
         sha1 = "25c7c89cb1f9077f8891bbe61d8f390eae256f1e";
       };
     };
-    "fecha-2.3.3" = {
-      name = "fecha";
-      packageName = "fecha";
-      version = "2.3.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fecha/-/fecha-2.3.3.tgz";
-        sha512 = "lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg==";
-      };
-    };
     "fecha-4.2.1" = {
       name = "fecha";
       packageName = "fecha";
@@ -27431,13 +27449,13 @@ let
         sha512 = "jlbUu0XkbpXeXhan5xyTqVK1jmEKNxE8hpzznI3TThHTr76GiFwK0iRzhDo4KNy+S9h/KxHaqVhTP86vA6wHCg==";
       };
     };
-    "flow-parser-0.166.1" = {
+    "flow-parser-0.168.0" = {
       name = "flow-parser";
       packageName = "flow-parser";
-      version = "0.166.1";
+      version = "0.168.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/flow-parser/-/flow-parser-0.166.1.tgz";
-        sha512 = "7iJ1cPcOYL/eOPGpGPaxwW8MytKGeXSnfvJA0uIvymXI4MnjjhZLWz1qPIqj2hfYJ7p/yXssbv7k2H3C90cyDw==";
+        url = "https://registry.npmjs.org/flow-parser/-/flow-parser-0.168.0.tgz";
+        sha512 = "YMlc+6vvyDPqWKOpzmyifJXBbwlNdqznuy8YBHxX1/90F8d+NnhsxMe1u/ok5LNvNJVJ2TVMkWudu0BUKOSawA==";
       };
     };
     "fluent-ffmpeg-2.1.2" = {
@@ -27710,13 +27728,13 @@ let
         sha512 = "DUxuQaKoqfNne8iikd14SAkh5uw4+8vNifp6gmA73yYNS6ywLIWSLD/n/mBzHQRpW3J7rbATEakmiA8JvkTyZw==";
       };
     };
-    "fork-ts-checker-webpack-plugin-6.4.0" = {
+    "fork-ts-checker-webpack-plugin-6.5.0" = {
       name = "fork-ts-checker-webpack-plugin";
       packageName = "fork-ts-checker-webpack-plugin";
-      version = "6.4.0";
+      version = "6.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.4.0.tgz";
-        sha512 = "3I3wFkc4DbzaUDPWEi96wdYGu4EKtxBafhZYm0o4mX51d9bphAY4P3mBl8K5mFXFJqVzHfmdbm9kLGnm7vwwBg==";
+        url = "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.0.tgz";
+        sha512 = "cS178Y+xxtIjEUorcHddKS7yCMlrDPV31mt47blKKRfMd70Kxu5xruAFE2o9sDY6wVC5deuob/u/alD04YYHnw==";
       };
     };
     "form-data-1.0.0-rc3" = {
@@ -28394,31 +28412,31 @@ let
         sha1 = "cbed2d20a40c1f5679a35908e2b9415733e78db9";
       };
     };
-    "gatsby-core-utils-3.3.0" = {
+    "gatsby-core-utils-3.4.0" = {
       name = "gatsby-core-utils";
       packageName = "gatsby-core-utils";
-      version = "3.3.0";
+      version = "3.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-3.3.0.tgz";
-        sha512 = "Mr90+2T5mUie2fCkQS3dM6oHzTyt1vLbpJ2nU2OsdF95LHnLBt0kDgK+qEIuz7Ypr91gFN8y2HoP08vuokq7ZQ==";
+        url = "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-3.4.0.tgz";
+        sha512 = "dYQpyo1BLGJzxQOXgGs1Fbj7jzGj5cKAIPYz2hz2l4Aus6skwjjaUlOjZlrWIahNHoLkx3mH0f5y6E8205T/aQ==";
       };
     };
-    "gatsby-recipes-1.3.0" = {
+    "gatsby-recipes-1.4.0" = {
       name = "gatsby-recipes";
       packageName = "gatsby-recipes";
-      version = "1.3.0";
+      version = "1.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-1.3.0.tgz";
-        sha512 = "4+Yvkp+JFtvH1bQBt1k0PrELHga5OrGUpfFeE35TmvTUIRl0hUaSexJ3VVbTHV40MxWnzI1q39/LkKoN8oI38w==";
+        url = "https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-1.4.0.tgz";
+        sha512 = "4KJIKe4nInKBX8uYieC1Jt1+VJz4RadGJeMJPx0JckF8/UbXETwLTOhQQZ8bqDBQaanXqDfATdp4D/a1O9C2DA==";
       };
     };
-    "gatsby-telemetry-3.3.0" = {
+    "gatsby-telemetry-3.4.0" = {
       name = "gatsby-telemetry";
       packageName = "gatsby-telemetry";
-      version = "3.3.0";
+      version = "3.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-3.3.0.tgz";
-        sha512 = "O/9YDrxzvNDEnkpGykGq9VrUqipt8+IshDJs4TEBVZS5OaIy9KwtoOzyEeHZE+SsmhBodiUZMG1qRh1hKmp/Hw==";
+        url = "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-3.4.0.tgz";
+        sha512 = "c5N7x4GkOyg5WUQN0DPeCHkjPvZ3c1yVs43dDPN5MZAqYiyTqzBJ9BXCMb7dBtFDVQB25b+Z96FUTQXfitrWww==";
       };
     };
     "gauge-1.2.7" = {
@@ -28439,13 +28457,13 @@ let
         sha1 = "2c03405c7538c39d7eb37b317022e325fb018bf7";
       };
     };
-    "gauge-3.0.1" = {
+    "gauge-3.0.2" = {
       name = "gauge";
       packageName = "gauge";
-      version = "3.0.1";
+      version = "3.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/gauge/-/gauge-3.0.1.tgz";
-        sha512 = "6STz6KdQgxO4S/ko+AbjlFGGdGcknluoqU+79GOFCDqqyYj5OanQf9AjxwN0jCidtT+ziPMmPSt9E4hfQ0CwIQ==";
+        url = "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz";
+        sha512 = "+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==";
       };
     };
     "gauge-4.0.0" = {
@@ -29610,13 +29628,13 @@ let
         sha512 = "Q+ZjUEvLQj/lrVHF/IQwRo6p3s8Nc44Zk/DALsN+ac3T4HY/g/3rrufkgtl+nZ1TW7DNAw5cTChdVp4apUXVgQ==";
       };
     };
-    "google-auth-library-7.10.3" = {
+    "google-auth-library-7.11.0" = {
       name = "google-auth-library";
       packageName = "google-auth-library";
-      version = "7.10.3";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.10.3.tgz";
-        sha512 = "VBwUCrjR+/p/J4ifSZRXG0XEc3Cm+2xnFrJi3A9DC2GzbCUK5j+R6CfqS7jyu1Hureb1PV53ZXZS1QV9PYUCrw==";
+        url = "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.11.0.tgz";
+        sha512 = "3S5jn2quRumvh9F/Ubf7GFrIq71HZ5a6vqosgdIu105kkk0WtSqc2jGCRqtWWOLRS8SX3AHACMOEDxhyWAQIcg==";
       };
     };
     "google-closure-compiler-js-20170910.0.1" = {
@@ -34867,13 +34885,13 @@ let
         sha512 = "qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==";
       };
     };
-    "is-weakset-2.0.1" = {
+    "is-weakset-2.0.2" = {
       name = "is-weakset";
       packageName = "is-weakset";
-      version = "2.0.1";
+      version = "2.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.1.tgz";
-        sha512 = "pi4vhbhVHGLxohUw7PhGsueT4vRGFoXhP7+RGN0jKIv9+8PWYCQTqtADngrxOm2g46hoH0+g8uZZBzMrvVGDmw==";
+        url = "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz";
+        sha512 = "t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==";
       };
     };
     "is-what-3.14.1" = {
@@ -35362,13 +35380,13 @@ let
         sha512 = "KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==";
       };
     };
-    "jest-worker-27.4.4" = {
+    "jest-worker-27.4.5" = {
       name = "jest-worker";
       packageName = "jest-worker";
-      version = "27.4.4";
+      version = "27.4.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.4.tgz";
-        sha512 = "jfwxYJvfua1b1XkyuyPh01ATmgg4e5fPM/muLmhy9Qc6dmiwacQB0MLHaU6IjEsv/+nAixHGxTn8WllA27Pn0w==";
+        url = "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.5.tgz";
+        sha512 = "f2s8kEdy15cv9r7q4KkzGXvlY0JTcmCbMHZBfSQDwW77REr45IDWwd0lksDFeVHH2jJ5pqb90T77XscrjeGzzg==";
       };
     };
     "jimp-compact-0.16.1" = {
@@ -35516,13 +35534,13 @@ let
         sha1 = "bcb4045c8dd0539c134bc1488cdd3e768a7a9e51";
       };
     };
-    "jquery.terminal-2.29.4" = {
+    "jquery.terminal-2.30.1" = {
       name = "jquery.terminal";
       packageName = "jquery.terminal";
-      version = "2.29.4";
+      version = "2.30.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jquery.terminal/-/jquery.terminal-2.29.4.tgz";
-        sha512 = "ugzctBbbJmw3ZGIhYziBFEK8QnWAZy2q6sZUtmPgjni4ILg59tO0WJI9DkKiDZ4LQtdCVexQ5oP0J90jMN+TzA==";
+        url = "https://registry.npmjs.org/jquery.terminal/-/jquery.terminal-2.30.1.tgz";
+        sha512 = "kZ7mQTKhT/b5js9PYP2uVjyya11wqe2lpEyGgxqQJovmt91Rw0IxGK4iDdvQ1SVPKPbRnJp+OavNR7Uno3fJIg==";
       };
     };
     "js-base64-2.6.4" = {
@@ -35831,49 +35849,49 @@ let
         sha512 = "xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==";
       };
     };
-    "jsii-1.47.0" = {
+    "jsii-1.49.0" = {
       name = "jsii";
       packageName = "jsii";
-      version = "1.47.0";
+      version = "1.49.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii/-/jsii-1.47.0.tgz";
-        sha512 = "cJ1cQfanSl+0vLVRJTwaWdx0dZ4DxIxYhydRlhuv/EFbQzeAVosy6fEnZ5IlPtWR89tF3k89R6w8DHVhPigjjQ==";
+        url = "https://registry.npmjs.org/jsii/-/jsii-1.49.0.tgz";
+        sha512 = "0/nn32SoCVgvuDSvVD8UuEwMJZbKbROuYtYQJRNN3n/O9g1jA/cj1eM95rRlu4THdWChTw0FDQxLfcuK+oEwpQ==";
       };
     };
-    "jsii-pacmak-1.47.0" = {
+    "jsii-pacmak-1.49.0" = {
       name = "jsii-pacmak";
       packageName = "jsii-pacmak";
-      version = "1.47.0";
+      version = "1.49.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-pacmak/-/jsii-pacmak-1.47.0.tgz";
-        sha512 = "VGrHZsK2jv7NuPBULvJBJGF0hLpGwdJa7esI2qzOeX1UbHxXSOah9oboheYELbX5KCH3hSe2uDbcPSnEqIT68Q==";
+        url = "https://registry.npmjs.org/jsii-pacmak/-/jsii-pacmak-1.49.0.tgz";
+        sha512 = "tU5N3wFAl0MrjR29JBzN96kAmm2swrMW3nK8YRdVOZDgNzhyuh0+d6tFfrS5/b6/LTV2sM+wVH6uH6w0FYWxOw==";
       };
     };
-    "jsii-reflect-1.47.0" = {
+    "jsii-reflect-1.49.0" = {
       name = "jsii-reflect";
       packageName = "jsii-reflect";
-      version = "1.47.0";
+      version = "1.49.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-reflect/-/jsii-reflect-1.47.0.tgz";
-        sha512 = "UgRWqkPI03wB6dGrTPA9UqUa37ORAnvaHGthWxNTcHIGIRHb4EfM29lYdbsRYO/+4/OiQLvdnZno1kw5rMyYcw==";
+        url = "https://registry.npmjs.org/jsii-reflect/-/jsii-reflect-1.49.0.tgz";
+        sha512 = "aTpvvkSuinx2xtuxEz69LchQAN7eTK79s6M9512c8Ajvg0+brolHR83mzINKp/i3DWrUAZ+fb3su+PuSmqvEuQ==";
       };
     };
-    "jsii-rosetta-1.47.0" = {
+    "jsii-rosetta-1.49.0" = {
       name = "jsii-rosetta";
       packageName = "jsii-rosetta";
-      version = "1.47.0";
+      version = "1.49.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-rosetta/-/jsii-rosetta-1.47.0.tgz";
-        sha512 = "2XyGNsTOr027bRhDuVy0Ygfkg3/u0jV7F5jvpGWq8lbl0yw90mgfi7epQxFfcFZ7zYgEIx5pXfC5UInl/Ntaqw==";
+        url = "https://registry.npmjs.org/jsii-rosetta/-/jsii-rosetta-1.49.0.tgz";
+        sha512 = "rXj3z0qssulanbqSegJIYhHZmJqwjBed4nJYIsxiUstDCM8vQ5QoewSAO4c7+EZV68EklHh3UCKBkBa5QmQ/hw==";
       };
     };
-    "jsii-srcmak-0.1.423" = {
+    "jsii-srcmak-0.1.426" = {
       name = "jsii-srcmak";
       packageName = "jsii-srcmak";
-      version = "0.1.423";
+      version = "0.1.426";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-srcmak/-/jsii-srcmak-0.1.423.tgz";
-        sha512 = "M1OtPIIbFBoOpdinbHIWO1xuIeSIEsB5hCixDO1FPXWoGl5mMVeJ/ulHB+F169wOadQen65Tg0B+NvWCYXR8Uw==";
+        url = "https://registry.npmjs.org/jsii-srcmak/-/jsii-srcmak-0.1.426.tgz";
+        sha512 = "qiKIpps0TXLmSNjSS7P4Y8znoKhd+6sI+K/8HGWrzLvmv7XD0IhZYIKvzwGV1McA/JOhhMq05LtECS49309PHQ==";
       };
     };
     "json-bigint-1.0.0" = {
@@ -36164,13 +36182,13 @@ let
         sha512 = "0/4Lv6IenJV0qj2oBdgPIAmFiKKnh8qh7bmLFJ+/ZZHLjSeiL3fKKGX3UryvKPbxFbhV+JcYo9KUC19GJ/Z/4A==";
       };
     };
-    "json2jsii-0.2.78" = {
+    "json2jsii-0.2.81" = {
       name = "json2jsii";
       packageName = "json2jsii";
-      version = "0.2.78";
+      version = "0.2.81";
       src = fetchurl {
-        url = "https://registry.npmjs.org/json2jsii/-/json2jsii-0.2.78.tgz";
-        sha512 = "gMumT9D5CA4U+E3Mr4+w6pPcT4MT1FkKUuqhyjdoJSI4G7rJ5ycAVUzp7mU2xQuuyvi8eyzrKr1RAkZaGEDQkA==";
+        url = "https://registry.npmjs.org/json2jsii/-/json2jsii-0.2.81.tgz";
+        sha512 = "0gdbZdLZM8IPb9bva40Iba9GT8944x61CZivTDBygOlrYImR+wVZ4CzQtKwH8Od6BcM5kGSDjoLGNkT20Uhu2w==";
       };
     };
     "json3-3.2.6" = {
@@ -37649,6 +37667,15 @@ let
         sha512 = "KsLcijLhonCRwa9HiAyluIeH3Iju2W0w365/Nd5f6I157zHhnRIZAyCc2QgzklhN1yiDl2CbBJ7AGgM1RUOm7w==";
       };
     };
+    "lightning-5.2.1" = {
+      name = "lightning";
+      packageName = "lightning";
+      version = "5.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lightning/-/lightning-5.2.1.tgz";
+        sha512 = "Mt9J8OvPC0A1xeNhT6mqWiBefer6hEVosLPiqBXJ1BsNPhGYAIEEuWCWT3Yy0biPm6FUotAdfb1IO6B4NILBhg==";
+      };
+    };
     "lilconfig-2.0.4" = {
       name = "lilconfig";
       packageName = "lilconfig";
@@ -37838,6 +37865,15 @@ let
         sha512 = "suXjhDhulSS5pruRaFQdY3FLf6VMrnDqo1f+RcCFNQN7nvA1mFIT2L6bSrnduRGMFofhlOwUWB5DuLBQgTal5w==";
       };
     };
+    "ln-service-53.2.0" = {
+      name = "ln-service";
+      packageName = "ln-service";
+      version = "53.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ln-service/-/ln-service-53.2.0.tgz";
+        sha512 = "4qaKYQV6vRlIja7j5lo5G8srABzFmt/fY+8/EVYhU6hdLhAxNPDUZ8zSQky6bWOwtb2zZYejUZYT2GqI2tfq5w==";
+      };
+    };
     "ln-sync-3.0.1" = {
       name = "ln-sync";
       packageName = "ln-sync";
@@ -37847,13 +37883,13 @@ let
         sha512 = "rCH59pxjqsWrcwse8hL9FdWGMj7L3tGMTzxussOnbM2oEfj9LsvRPxrcj7+mEMhuJ+/OZ8V31jIUwCGwUTMz6w==";
       };
     };
-    "ln-sync-3.1.0" = {
+    "ln-sync-3.3.0" = {
       name = "ln-sync";
       packageName = "ln-sync";
-      version = "3.1.0";
+      version = "3.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ln-sync/-/ln-sync-3.1.0.tgz";
-        sha512 = "7HRMDoW+dB0A3mQ1TJstvj8VKQyV2M6z+7xUuFDpQ0V2Nmd+qEWDvUrQfc4ONsm+1YfFDaR6+6ILEnO1olpQrA==";
+        url = "https://registry.npmjs.org/ln-sync/-/ln-sync-3.3.0.tgz";
+        sha512 = "FXfoGbvYkR+VyMtRMn6RsW6dujt+jI5cUqXJ36sWdnn5XS60sCEeATWvn48vi60BzqgDFMCX7aDHG5v4s7IRbw==";
       };
     };
     "ln-telegram-3.4.2" = {
@@ -39026,15 +39062,6 @@ let
         sha1 = "4fb54f816652e5ae10e8f72f717a388c7326538a";
       };
     };
-    "lodash.omit-4.5.0" = {
-      name = "lodash.omit";
-      packageName = "lodash.omit";
-      version = "4.5.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz";
-        sha1 = "6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60";
-      };
-    };
     "lodash.once-4.1.1" = {
       name = "lodash.once";
       packageName = "lodash.once";
@@ -39413,15 +39440,6 @@ let
         sha512 = "Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==";
       };
     };
-    "logform-1.10.0" = {
-      name = "logform";
-      packageName = "logform";
-      version = "1.10.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/logform/-/logform-1.10.0.tgz";
-        sha512 = "em5ojIhU18fIMOw/333mD+ZLE2fis0EzXl1ZwHx4iQzmpQi6odNiY/t+ITNr33JZhT9/KEaH+UPIipr6a9EjWg==";
-      };
-    };
     "logform-2.3.0" = {
       name = "logform";
       packageName = "logform";
@@ -41412,13 +41430,13 @@ let
         sha512 = "TIurLf/ustQNMXi5foClGTcEsRvH6DCvxeAKu68OrwHMOSM/M1pgPXb7qe52Svk1ClvmZuAVpLtP5FWKzPr/sw==";
       };
     };
-    "mermaid-8.13.5" = {
+    "mermaid-8.13.6" = {
       name = "mermaid";
       packageName = "mermaid";
-      version = "8.13.5";
+      version = "8.13.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mermaid/-/mermaid-8.13.5.tgz";
-        sha512 = "xLINkCQqZZfqDaLpQVy9BOsws8jT6sLBE2ympDEg4G2uvUu1n61j/h3OFDaA2N4dpZyN7q2pAYkDQ4yywruivA==";
+        url = "https://registry.npmjs.org/mermaid/-/mermaid-8.13.6.tgz";
+        sha512 = "mz8MHq0IyEM7vLyl3fEOWgqMNYrowTS1s8Tx2EC1BGlT0KHpy4BFFgcKlLdor2vxSMSlXq1sAZS+aykFC6uUBA==";
       };
     };
     "meros-1.1.4" = {
@@ -42564,13 +42582,13 @@ let
         sha512 = "sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==";
       };
     };
-    "mobx-6.3.8" = {
+    "mobx-6.3.9" = {
       name = "mobx";
       packageName = "mobx";
-      version = "6.3.8";
+      version = "6.3.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mobx/-/mobx-6.3.8.tgz";
-        sha512 = "RfG2y766P1o9u9xrQht/HBXEoUPIr4B3Gjri3reLW/TuHm3I/3TfBBS0OaeMbw19RIF0AymqjDNlJgakN4ZK7g==";
+        url = "https://registry.npmjs.org/mobx/-/mobx-6.3.9.tgz";
+        sha512 = "u9vhETRPgx6s+MD2NhGaOQJMJa/qszflwFxKryCXotERWY77ocdrRQUp7Jwt1urjefUXNj3fQbTnKrCV+kBaXw==";
       };
     };
     "mobx-react-7.2.1" = {
@@ -45860,13 +45878,13 @@ let
         sha512 = "rH3U4eLHsV+OgkOS29ULiC9JLspwMCyCIH/+BglLPXDxQs13IK8AGD+nVmkGXqGN5JefZu85YhfIi05CsOKWPw==";
       };
     };
-    "office-ui-fabric-react-7.180.1" = {
+    "office-ui-fabric-react-7.180.2" = {
       name = "office-ui-fabric-react";
       packageName = "office-ui-fabric-react";
-      version = "7.180.1";
+      version = "7.180.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/office-ui-fabric-react/-/office-ui-fabric-react-7.180.1.tgz";
-        sha512 = "LVnVssg2r4ytH6V48i/7EP/HfK1r/OeAkR9Wd6Dfw39EVsafkVU7WPt3uCq+buLFLV52F9hvty1v39rQdrPuHg==";
+        url = "https://registry.npmjs.org/office-ui-fabric-react/-/office-ui-fabric-react-7.180.2.tgz";
+        sha512 = "84cpy9ZlIgI4tH9EL2ueHsywe+NA0sWuutWbd2pFx/QsWPZlXuNDCvJrqCprD+icJje365WCxwsYp8xyll63Tg==";
       };
     };
     "omggif-1.0.10" = {
@@ -46049,13 +46067,13 @@ let
         sha512 = "fvaSZRzprpwLFge/mcwE0CItfniNisVNamDdMK1FQUjh4ArQZ8ZWSkDaJbZc3XaANKZHq0xIa8NJpZ2HSe3oXA==";
       };
     };
-    "oo-ascii-tree-1.47.0" = {
+    "oo-ascii-tree-1.49.0" = {
       name = "oo-ascii-tree";
       packageName = "oo-ascii-tree";
-      version = "1.47.0";
+      version = "1.49.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/oo-ascii-tree/-/oo-ascii-tree-1.47.0.tgz";
-        sha512 = "m8ZGdK0JSMFOZyjV0kkzBwcbPMGqW5WhCYp4CgPrJz4/y128hwhWGB8x4G7b5CAKRNo583y51kL0UCklaxt1Nw==";
+        url = "https://registry.npmjs.org/oo-ascii-tree/-/oo-ascii-tree-1.49.0.tgz";
+        sha512 = "Y84LTdUO7/ptZRgJqzmxgvuSDlRh23p/mag4T4NTN3TVuBlfg9pvu80Hqo5NEC2Z3GFpUTI5FgIEwiSgqWlevA==";
       };
     };
     "opal-runtime-1.0.11" = {
@@ -46130,15 +46148,6 @@ let
         sha512 = "jB5hAtsDOhCy/FNQJwQJOrGlxLUat482Yr14rbA5l2Zb1eOeoS+ccQPO036C1+z9VDBTmOZqzh1tBbI4myzIYw==";
       };
     };
-    "open-8.3.0" = {
-      name = "open";
-      packageName = "open";
-      version = "8.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/open/-/open-8.3.0.tgz";
-        sha512 = "7INcPWb1UcOwSQxAXTnBJ+FxVV4MPs/X++FWWBtgY69/J5lc+tCteMt/oFK1MnkyHC4VILLa9ntmwKTwDR4Q9w==";
-      };
-    };
     "open-8.4.0" = {
       name = "open";
       packageName = "open";
@@ -46769,22 +46778,22 @@ let
         sha512 = "0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==";
       };
     };
-    "ot-builder-1.3.1" = {
+    "ot-builder-1.3.2" = {
       name = "ot-builder";
       packageName = "ot-builder";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ot-builder/-/ot-builder-1.3.1.tgz";
-        sha512 = "D/E2rbNPKGOOyodYEbDEn0nKcPraDuZvIpCPkTeP80+hAxrrhdv2XGE97SGT33pr23EbOiWTJ71gW62KADLmCw==";
+        url = "https://registry.npmjs.org/ot-builder/-/ot-builder-1.3.2.tgz";
+        sha512 = "sWAQ6ZRqzsvlxa81clJ9xMuPHhDVKqDtsGjgZvR4vo+BFlK232PZaFML5seQ0dIZaw/IBP2t2nmyn6s4dauPkQ==";
       };
     };
-    "otb-ttc-bundle-1.3.1" = {
+    "otb-ttc-bundle-1.3.2" = {
       name = "otb-ttc-bundle";
       packageName = "otb-ttc-bundle";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/otb-ttc-bundle/-/otb-ttc-bundle-1.3.1.tgz";
-        sha512 = "OMtFR7CuG6f3Q+Wl1burzRK2Zet2QjlODbUcyy/0GJTFsmz72tWIKNa6rvzcYo7djldeLPy6uzBqGAFwtMJZtw==";
+        url = "https://registry.npmjs.org/otb-ttc-bundle/-/otb-ttc-bundle-1.3.2.tgz";
+        sha512 = "0Ibk+w278i7wjPntVZItgvjTZ5X596OYcSUayo8XndrN94l/M8+GOpH9tJTSCyI/0WKj8DhwI+NA8LZsh42K9w==";
       };
     };
     "ow-0.21.0" = {
@@ -48416,13 +48425,13 @@ let
         sha512 = "iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==";
       };
     };
-    "peek-readable-4.0.1" = {
+    "peek-readable-4.0.2" = {
       name = "peek-readable";
       packageName = "peek-readable";
-      version = "4.0.1";
+      version = "4.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/peek-readable/-/peek-readable-4.0.1.tgz";
-        sha512 = "7qmhptnR0WMSpxT5rMHG9bW/mYSR1uqaPFj2MHvT+y/aOUu6msJijpKt5SkTDKySwg65OWG2JwTMBlgcbwMHrQ==";
+        url = "https://registry.npmjs.org/peek-readable/-/peek-readable-4.0.2.tgz";
+        sha512 = "9fMaz6zoxw9ypO1KZy5RDJgSupEtu0Q+g/OqqsVHX3rKGR8qehRLYzsFARZ4bVvdvfknKiXvuDbkMnO1g6cRpQ==";
       };
     };
     "peek-stream-1.1.3" = {
@@ -49281,13 +49290,13 @@ let
         sha512 = "hCmlUAIlUiav8Xdqw3Io4LcpA1DOt7h3LSTAC4G6JGHFFaWzI6qvFt9oilvl8BmkbBRX1IhM90ZAmpk68zccQA==";
       };
     };
-    "postcss-8.4.4" = {
+    "postcss-8.4.5" = {
       name = "postcss";
       packageName = "postcss";
-      version = "8.4.4";
+      version = "8.4.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss/-/postcss-8.4.4.tgz";
-        sha512 = "joU6fBsN6EIer28Lj6GDFoC/5yOZzLCfn0zHAn/MYXI7aPt4m4hK5KC5ovEZXy+lnCjmYIbQWngvju2ddyEr8Q==";
+        url = "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz";
+        sha512 = "jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==";
       };
     };
     "postcss-calc-7.0.5" = {
@@ -52098,13 +52107,13 @@ let
         sha512 = "2cP8mBoqnu5gzAVpbZ0fRaobBWZM8GEUF4I1F6WbgHrKV/rz7SX8PG2wMymZgD0wo0UBlg2FBPNxlF/xlqW6+w==";
       };
     };
-    "puppeteer-11.0.0" = {
+    "puppeteer-13.0.0" = {
       name = "puppeteer";
       packageName = "puppeteer";
-      version = "11.0.0";
+      version = "13.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/puppeteer/-/puppeteer-11.0.0.tgz";
-        sha512 = "6rPFqN1ABjn4shgOICGDBITTRV09EjXVqhDERBDKwCLz0UyBxeeBH6Ay0vQUJ84VACmlxwzOIzVEJXThcF3aNg==";
+        url = "https://registry.npmjs.org/puppeteer/-/puppeteer-13.0.0.tgz";
+        sha512 = "kZfGAieIVSo4bFqYuvY2KvhgP9txzmPbbnpZIzLlfdt8nEu9evXEwsbBt1BHocVQM4fJmCiS+FRyw7c8aWadNg==";
       };
     };
     "puppeteer-9.1.1" = {
@@ -52179,13 +52188,13 @@ let
         sha1 = "15931d3cd967ade52206f523aa7331aef7d43af7";
       };
     };
-    "pyright-1.1.194" = {
+    "pyright-1.1.196" = {
       name = "pyright";
       packageName = "pyright";
-      version = "1.1.194";
+      version = "1.1.196";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pyright/-/pyright-1.1.194.tgz";
-        sha512 = "vNKUZKO4K3vU1Ms40h9Q+d8LQIAmlj7zVnzbwKiRw5/F0omdcgkLL3Zx/y8aNLxNE2sygHVibkgcuUWvyJ8bQA==";
+        url = "https://registry.npmjs.org/pyright/-/pyright-1.1.196.tgz";
+        sha512 = "63LF3JNElRU9wkCLgJLk8NMi4tJ/aB97itckp19zb4g8wXmlc90nyvA5bUk19ey10R4yAmlp8ol8Tz/mxAUmGQ==";
       };
     };
     "q-0.9.7" = {
@@ -53034,13 +53043,13 @@ let
         sha512 = "dx0LvIGHcOPtKbeiSUM4jqpBl3TcY7CDjZdfOIcKeznE7BWr9dg0iPG90G5yfVQ+p/rGNMXdbfStvzQZEVEi4A==";
       };
     };
-    "react-devtools-core-4.21.0" = {
+    "react-devtools-core-4.22.1" = {
       name = "react-devtools-core";
       packageName = "react-devtools-core";
-      version = "4.21.0";
+      version = "4.22.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.21.0.tgz";
-        sha512 = "clGWwJHV5MHwTwYyKc+7FZHwzdbzrD2/AoZSkicUcr6YLc3Za9a9FaLhccWDHfjQ+ron9yzNhDT6Tv+FiPkD3g==";
+        url = "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.22.1.tgz";
+        sha512 = "pvpNDHE7p0FtcCmIWGazoY8LLVfBI9sw0Kf10kdHhPI9Tzt3OG/qEt16GrAbE0keuna5WzX3r1qPKVjqOqsuUg==";
       };
     };
     "react-dom-16.14.0" = {
@@ -53061,13 +53070,13 @@ let
         sha512 = "s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==";
       };
     };
-    "react-error-overlay-6.0.9" = {
+    "react-error-overlay-6.0.10" = {
       name = "react-error-overlay";
       packageName = "react-error-overlay";
-      version = "6.0.9";
+      version = "6.0.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.9.tgz";
-        sha512 = "nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew==";
+        url = "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.10.tgz";
+        sha512 = "mKR90fX7Pm5seCOfz8q9F+66VCc1PGsWSBxKbITjfKVQHMNF2zudxHnMdJiB1fRCb+XsbQV9sO9DCkgsMQgBIA==";
       };
     };
     "react-fast-compare-3.2.0" = {
@@ -56130,13 +56139,13 @@ let
         sha1 = "fece61bfa0c1b52a206bd6b18198184bdd523a3b";
       };
     };
-    "reveal.js-4.1.3" = {
+    "reveal.js-4.2.1" = {
       name = "reveal.js";
       packageName = "reveal.js";
-      version = "4.1.3";
+      version = "4.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/reveal.js/-/reveal.js-4.1.3.tgz";
-        sha512 = "5VbL4nVDUedVKnOIIM3UQAIUlp+CvR/SrUkrN5GDoVfcWJAxH2oIh7PWyShy7+pE7tgkH2q+3e5EikGRpgE+oA==";
+        url = "https://registry.npmjs.org/reveal.js/-/reveal.js-4.2.1.tgz";
+        sha512 = "OXH4qT5Gs9di6lZPDmRuanIvdiVzltCe8W9ELz6Q3EhoWS+RjRp5HBwFHr+k1fbbP82/Z83sQiK+/ZYFBwrrsQ==";
       };
     };
     "reverse-http-1.3.0" = {
@@ -56742,15 +56751,6 @@ let
         sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==";
       };
     };
-    "safe-buffer-5.2.0" = {
-      name = "safe-buffer";
-      packageName = "safe-buffer";
-      version = "5.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz";
-        sha512 = "fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==";
-      };
-    };
     "safe-buffer-5.2.1" = {
       name = "safe-buffer";
       packageName = "safe-buffer";
@@ -57399,6 +57399,15 @@ let
         sha512 = "BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==";
       };
     };
+    "send-0.17.2" = {
+      name = "send";
+      packageName = "send";
+      version = "0.17.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/send/-/send-0.17.2.tgz";
+        sha512 = "UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==";
+      };
+    };
     "sentence-splitter-2.3.2" = {
       name = "sentence-splitter";
       packageName = "sentence-splitter";
@@ -57543,6 +57552,15 @@ let
         sha512 = "JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==";
       };
     };
+    "serve-static-1.14.2" = {
+      name = "serve-static";
+      packageName = "serve-static";
+      version = "1.14.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz";
+        sha512 = "+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==";
+      };
+    };
     "server-destroy-1.0.1" = {
       name = "server-destroy";
       packageName = "server-destroy";
@@ -58128,15 +58146,6 @@ let
         sha512 = "ZmlNUGR1KI12sPHeQ7dQY1qM5KfOgFqClNNVO8zQ9Pg6u7gHLCPFGD+VC7MCwpGDMd1uw3Bb2TfFfR8d6bB34A==";
       };
     };
-    "simple-markdown-0.7.3" = {
-      name = "simple-markdown";
-      packageName = "simple-markdown";
-      version = "0.7.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/simple-markdown/-/simple-markdown-0.7.3.tgz";
-        sha512 = "uGXIc13NGpqfPeFJIt/7SHHxd6HekEJYtsdoCM06mEBPL9fQH/pSD7LRM6PZ7CKchpSvxKL4tvwMamqAaNDAyg==";
-      };
-    };
     "simple-message-channels-1.2.1" = {
       name = "simple-message-channels";
       packageName = "simple-message-channels";
@@ -58443,13 +58452,13 @@ let
         sha512 = "tf+h5W1IrjNm/9rKKj0JU2MDMruiopx0jjVA5zCdBtcGjfp0+c5rHw/zADLC3IeKlGHtVbHtpfzvYA0OYT+HKg==";
       };
     };
-    "slugify-1.6.3" = {
+    "slugify-1.6.4" = {
       name = "slugify";
       packageName = "slugify";
-      version = "1.6.3";
+      version = "1.6.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/slugify/-/slugify-1.6.3.tgz";
-        sha512 = "1MPyqnIhgiq+/0iDJyqSJHENdnH5MMIlgJIBxmkRMzTNKlS/QsN5dXsB+MdDq4E6w0g9jFA4XOTRkVDjDae/2w==";
+        url = "https://registry.npmjs.org/slugify/-/slugify-1.6.4.tgz";
+        sha512 = "Pcz296CK0uGnTf4iNQId79Uv6/5G16t0g0x3OsxWS8qVSOW+JXNnNHKVcuDiMgEGTWyK6zjlWXo2dvzV/FLf9Q==";
       };
     };
     "smart-buffer-4.2.0" = {
@@ -59766,13 +59775,13 @@ let
         sha512 = "pJAFizB6OcuJLX4RJJuU9HWyPwM2CqLi/vs08lhVIR3TGxacxpavvK5LzbxT+Y3iWkBchOTKS5hHCigA5aaung==";
       };
     };
-    "ssb-db2-2.8.2" = {
+    "ssb-db2-2.8.3" = {
       name = "ssb-db2";
       packageName = "ssb-db2";
-      version = "2.8.2";
+      version = "2.8.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ssb-db2/-/ssb-db2-2.8.2.tgz";
-        sha512 = "/HaimGEhMgYe0CT1xUFsc4NokTSQgOXwXGxMPUHF/+Mq2Qss+bILSUh/IqeYM9OTbgW4969yCcGpsAH2u+VXCA==";
+        url = "https://registry.npmjs.org/ssb-db2/-/ssb-db2-2.8.3.tgz";
+        sha512 = "45qxUO4ULsQKf79IUma0fuMIatyQac83pmmMZPQHHbiPr001hlgUnZvVzgNgGq7eZE5J6451/TBrBKzO5jjILg==";
       };
     };
     "ssb-ebt-5.6.7" = {
@@ -60072,13 +60081,13 @@ let
         sha512 = "zZ/Q1M+9ZWlrchgh4QauD/MEUFa6eC6H6FYq6T8Of/y82JqsQBLwN6YlzbO09evE7Rx6x0oliXDCnQSjwGwQRA==";
       };
     };
-    "sscaff-1.2.148" = {
+    "sscaff-1.2.151" = {
       name = "sscaff";
       packageName = "sscaff";
-      version = "1.2.148";
+      version = "1.2.151";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sscaff/-/sscaff-1.2.148.tgz";
-        sha512 = "1iU2YOFa8RoXOcGx09Lxa0QQIn7yhTQZsD9criGYtGTMtE/eCwyuuJm8tFxRbyGa8U0K2jO1fJSK0vQGyDxcSw==";
+        url = "https://registry.npmjs.org/sscaff/-/sscaff-1.2.151.tgz";
+        sha512 = "6UfOVW4ElZDCutLaPUULDA/RdtV5zs2qsmSVkg47mE0WrGXmaG/vC/4k668/s+MbpGjCCW+dytbmNkcduREEJw==";
       };
     };
     "ssh-config-1.1.6" = {
@@ -60729,13 +60738,13 @@ let
         sha512 = "PR93KgPkga2p27UhCI9lf096qPyRMDn/zemRQeAgr1azVLDMr8tZZGpgfEw2/cYY/8mTU4dshLMGNYBsNeQGQw==";
       };
     };
-    "strftime-0.10.0" = {
+    "strftime-0.10.1" = {
       name = "strftime";
       packageName = "strftime";
-      version = "0.10.0";
+      version = "0.10.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/strftime/-/strftime-0.10.0.tgz";
-        sha1 = "b3f0fa419295202a5a289f6d6be9f4909a617193";
+        url = "https://registry.npmjs.org/strftime/-/strftime-0.10.1.tgz";
+        sha512 = "nVvH6JG8KlXFPC0f8lojLgEsPA18lRpLZ+RrJh/NkQV2tqOgZfbas8gcU8SFgnnqR3rWzZPYu6N2A3xzs/8rQg==";
       };
     };
     "strict-uri-encode-1.1.0" = {
@@ -61467,13 +61476,13 @@ let
         sha512 = "luHn2OAMGJouOnadm6Fim6WXodQ2AWDkWjYq0rMdyEwzO5PdE4LzoXAEn9LL2snmBAlwUp1URVOTF7lZR3KU+Q==";
       };
     };
-    "stylis-4.0.12" = {
+    "stylis-4.0.13" = {
       name = "stylis";
       packageName = "stylis";
-      version = "4.0.12";
+      version = "4.0.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/stylis/-/stylis-4.0.12.tgz";
-        sha512 = "eVXQEZqRRFRvl8Aor1kNWN7ViNss9tYhphVBFNxyCJWKdK+FO5sOVKEHk7Dg/vLAr1xYQBpUb+7weU4AlDUm8g==";
+        url = "https://registry.npmjs.org/stylis/-/stylis-4.0.13.tgz";
+        sha512 = "xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag==";
       };
     };
     "stylus-0.54.8" = {
@@ -61818,6 +61827,15 @@ let
         sha512 = "N7bBZJH0iF24wsalFZF+fVYMUOigaAUQMIcEKHO3jstK/iL8VmP9xE+P0/a76+FkNcWt+TDv2Gx1taUoUscrvw==";
       };
     };
+    "svelte-preprocess-4.10.0" = {
+      name = "svelte-preprocess";
+      packageName = "svelte-preprocess";
+      version = "4.10.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-4.10.0.tgz";
+        sha512 = "uZgGyC4SwkFoby2ceiMgGYs4qHYGz2fT06cAsHO8FHdDbvj1dKQyQ/fD9OB0KLymVv0fmzuJo/On7Kv7AeVhWA==";
+      };
+    };
     "svelte-preprocess-4.9.8" = {
       name = "svelte-preprocess";
       packageName = "svelte-preprocess";
@@ -62494,13 +62512,13 @@ let
         sha512 = "6u5UyW2KpMS/hwC4DKLGlicK/rVSYCahPFgF14ioP6BzwcDwQlciHCB/oWguvxLJaYGrvY6crzLHfjupFTBPXw==";
       };
     };
-    "telegraf-4.4.2" = {
+    "telegraf-4.5.2" = {
       name = "telegraf";
       packageName = "telegraf";
-      version = "4.4.2";
+      version = "4.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/telegraf/-/telegraf-4.4.2.tgz";
-        sha512 = "OGt9w1LbxYUOsRk3htAavBnL9hqWycmJNiOmS74oARzxKFnYS/MdwW8b5CX9VLCJt537AXkm8/eBNiEYD8E7lQ==";
+        url = "https://registry.npmjs.org/telegraf/-/telegraf-4.5.2.tgz";
+        sha512 = "OG68wQqYQQq2ldzAMv6JJUkh9XU+4mWRgHinMeJ8FoRA5ZZuA4WauqRFi8aY/OQiwJM2gTT2XWCfopN2dZWDNw==";
       };
     };
     "temp-0.6.0" = {
@@ -62755,13 +62773,13 @@ let
         sha512 = "3qAQpykRTD5DReLu5/cwpsg7EZFzP3Q0Hp2XUWJUw2mpq2jfgOKTZr8IZKKnNieRVVo1UauROTdhbQJZveGKtQ==";
       };
     };
-    "terser-webpack-plugin-5.2.5" = {
+    "terser-webpack-plugin-5.3.0" = {
       name = "terser-webpack-plugin";
       packageName = "terser-webpack-plugin";
-      version = "5.2.5";
+      version = "5.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.2.5.tgz";
-        sha512 = "3luOVHku5l0QBeYS8r4CdHYWEGMmIj3H1U64jgkdZzECcSOJAyJ9TjuqcQZvw1Y+4AOBN9SeYJPJmFn2cM4/2g==";
+        url = "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.0.tgz";
+        sha512 = "LPIisi3Ol4chwAaPP8toUJ3L4qCM1G0wao7L3qNv57Drezxj6+VEyySpPw4B1HSO2Eg/hDY/MNF5XihCAoqnsQ==";
       };
     };
     "test-exclude-6.0.0" = {
@@ -64177,13 +64195,13 @@ let
         sha512 = "csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==";
       };
     };
-    "tsconfig-paths-3.11.0" = {
+    "tsconfig-paths-3.12.0" = {
       name = "tsconfig-paths";
       packageName = "tsconfig-paths";
-      version = "3.11.0";
+      version = "3.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz";
-        sha512 = "7ecdYDnIdmv639mmDwslG6KQg1Z9STTz1j7Gcz0xa+nshh/gKDAHcPxRbWOsA3SPp0tXP2leTcY9Kw+NAkfZzA==";
+        url = "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz";
+        sha512 = "e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==";
       };
     };
     "tsconfig-paths-webpack-plugin-3.5.2" = {
@@ -64825,13 +64843,13 @@ let
         sha512 = "DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==";
       };
     };
-    "typescript-4.5.3" = {
+    "typescript-4.5.4" = {
       name = "typescript";
       packageName = "typescript";
-      version = "4.5.3";
+      version = "4.5.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/typescript/-/typescript-4.5.3.tgz";
-        sha512 = "eVYaEHALSt+s9LbvgEv4Ef+Tdq7hBiIZgii12xXJnukryt3pMgJf6aKhoCZ3FWQsu6sydEnkg11fYXLzhLBjeQ==";
+        url = "https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz";
+        sha512 = "VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==";
       };
     };
     "typescript-eslint-parser-16.0.1" = {
@@ -64942,6 +64960,15 @@ let
         sha512 = "AbiSR44J0GoCeV81+oxcy/jDOElO2Bx3d0MfQCUShq7JRXaM4KtQopZsq2vFv8bCq2yMaGrw1FgygUd03RyRDA==";
       };
     };
+    "uglify-js-3.14.5" = {
+      name = "uglify-js";
+      packageName = "uglify-js";
+      version = "3.14.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.5.tgz";
+        sha512 = "qZukoSxOG0urUTvjc2ERMTcAy+BiFh3weWAkeurLwjrCba73poHmG3E36XEjd/JGukMzwTL7uCxZiAexj8ppvQ==";
+      };
+    };
     "uglify-js-3.4.10" = {
       name = "uglify-js";
       packageName = "uglify-js";
@@ -65167,13 +65194,13 @@ let
         sha512 = "hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==";
       };
     };
-    "underscore-1.13.1" = {
+    "underscore-1.13.2" = {
       name = "underscore";
       packageName = "underscore";
-      version = "1.13.1";
+      version = "1.13.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/underscore/-/underscore-1.13.1.tgz";
-        sha512 = "hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g==";
+        url = "https://registry.npmjs.org/underscore/-/underscore-1.13.2.tgz";
+        sha512 = "ekY1NhRzq0B08g4bGuX4wd2jZx5GnKz6mKSqFL4nqBlfyMGiG10gDFhDTMEfYmDL6Jy0FUIZp7wiRB+0BP7J2g==";
       };
     };
     "underscore-1.2.1" = {
@@ -65257,13 +65284,13 @@ let
         sha1 = "5e4bda308e4a8a2ae584f9b9a4359a499825cc50";
       };
     };
-    "undici-4.11.3" = {
+    "undici-4.12.0" = {
       name = "undici";
       packageName = "undici";
-      version = "4.11.3";
+      version = "4.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/undici/-/undici-4.11.3.tgz";
-        sha512 = "bLOCH2juB9gAkqE4a4zb+eMGhI8XD4SH1tF9Qu9J3Y8TA379Xxg7lWRMiDvc36pRWV1z9/HICv05fXkeeLw1Dg==";
+        url = "https://registry.npmjs.org/undici/-/undici-4.12.0.tgz";
+        sha512 = "sJ4CyO3ZPaoxWpLQTJpH/gWD+tCIra2OJ9UPvrX1siyJkgh8NOAybRejJ/g2xHyOdAuoSE0lPRJwRl8AZSXYJQ==";
       };
     };
     "unherit-1.1.3" = {
@@ -67958,13 +67985,13 @@ let
         sha512 = "rrDyCiOgMwOPgchpPGAeLzjYVVEW/Ror2/a1BWUEI3S9+NQhA9vj4SQkzmH6g2Bq9S9SV0OQeadD+xphOf1N3w==";
       };
     };
-    "vscode-html-languageservice-4.2.0" = {
+    "vscode-html-languageservice-4.2.1" = {
       name = "vscode-html-languageservice";
       packageName = "vscode-html-languageservice";
-      version = "4.2.0";
+      version = "4.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-4.2.0.tgz";
-        sha512 = "5ebk/5kMa7PrCPL3JuP27vo8h+coDgSkMP14pSlKz3ISXZxHm+nnCenhVrpy9Ayamtwb28YXeQuN8AqNQH8kVQ==";
+        url = "https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-4.2.1.tgz";
+        sha512 = "PgaToZVXJ44nFWEBuSINdDgVV6EnpC3MnXBsysR3O5TKcAfywbYeRGRy+Y4dVR7YeUgDvtb+JkJoSkaYC0mxXQ==";
       };
     };
     "vscode-json-languageserver-1.3.4" = {
@@ -68930,15 +68957,6 @@ let
         sha512 = "6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==";
       };
     };
-    "webpack-5.64.1" = {
-      name = "webpack";
-      packageName = "webpack";
-      version = "5.64.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/webpack/-/webpack-5.64.1.tgz";
-        sha512 = "b4FHmRgaaAjP+aVOVz41a9Qa5SmkUPQ+u8FntTQ1roPHahSComB6rXnLwc976VhUY4CqTaLu5mCswuHiNhOfVw==";
-      };
-    };
     "webpack-5.65.0" = {
       name = "webpack";
       packageName = "webpack";
@@ -68993,13 +69011,13 @@ let
         sha512 = "djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==";
       };
     };
-    "webpack-dev-middleware-5.2.2" = {
+    "webpack-dev-middleware-5.3.0" = {
       name = "webpack-dev-middleware";
       packageName = "webpack-dev-middleware";
-      version = "5.2.2";
+      version = "5.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.2.2.tgz";
-        sha512 = "DjZyYrsHhkikAFNvSNKrpnziXukU1EChFAh9j4LAm6ndPLPW8cN0KhM7T+RAiOqsQ6ABfQ8hoKIs9IWMTjov+w==";
+        url = "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.0.tgz";
+        sha512 = "MouJz+rXAm9B1OTOYaJnn6rtD/lWZPy2ufQCH3BPs8Rloh/Du6Jze4p7AeLYHkVi0giJnYLaSGDC7S+GM9arhg==";
       };
     };
     "webpack-dev-server-3.11.0" = {
@@ -69623,15 +69641,6 @@ let
         sha512 = "TWoamHt5yYvsMarGlGEQE59SbJHqGsZV8/lwC+iCcGeAe0vUaOh+Lv6SYM17ouzC/a/LB1/hz/7sxFBtlu1l4A==";
       };
     };
-    "winston-3.1.0" = {
-      name = "winston";
-      packageName = "winston";
-      version = "3.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/winston/-/winston-3.1.0.tgz";
-        sha512 = "FsQfEE+8YIEeuZEYhHDk5cILo1HOcWkGwvoidLrDgPog0r4bser1lEIOco2dN9zpDJ1M88hfDgZvxe5z4xNcwg==";
-      };
-    };
     "winston-3.2.1" = {
       name = "winston";
       packageName = "winston";
@@ -69650,13 +69659,13 @@ let
         sha512 = "oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw==";
       };
     };
-    "winston-transport-4.4.0" = {
+    "winston-transport-4.4.1" = {
       name = "winston-transport";
       packageName = "winston-transport";
-      version = "4.4.0";
+      version = "4.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.0.tgz";
-        sha512 = "Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw==";
+        url = "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.1.tgz";
+        sha512 = "ciZRlU4CSjHqHe8RQG1iPxKMRVwv6ZJ0RC7DxStKWd0KjpAhPDy5gVYSCpIUq+5CUsP+IyNOTZy1X0tO2QZqjg==";
       };
     };
     "with-5.1.1" = {
@@ -70154,13 +70163,13 @@ let
         sha512 = "N1XQngeqMBoj9wM4ZFadVV2MymImeiFfYD+fJrNlcVcOHsJFFQe7n3b+aBoTPwARuq2HQxukfzVpQmAk1gN4sQ==";
       };
     };
-    "xdl-59.2.13" = {
+    "xdl-59.2.20" = {
       name = "xdl";
       packageName = "xdl";
-      version = "59.2.13";
+      version = "59.2.20";
       src = fetchurl {
-        url = "https://registry.npmjs.org/xdl/-/xdl-59.2.13.tgz";
-        sha512 = "GDfdIAKWP4ZcjNOne6bzCcCm+BVPJB2L3KuQj6PizXo5Tx9cmvROVzEd/YNQcn8hTSliCmZ1RXexSIx3xfJ5Sg==";
+        url = "https://registry.npmjs.org/xdl/-/xdl-59.2.20.tgz";
+        sha512 = "wP9zY0/yRoOvSMlaoIhpZXQKrtNNjDDFop4TT/Mvrjy5dqQHY6+eB5w0Jla74W+wHSBzcRPBxtRpqwcAl3Q6TA==";
       };
     };
     "xenvar-0.5.1" = {
@@ -71340,15 +71349,15 @@ in
   "@angular/cli" = nodeEnv.buildNodePackage {
     name = "_at_angular_slash_cli";
     packageName = "@angular/cli";
-    version = "13.1.1";
+    version = "13.1.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@angular/cli/-/cli-13.1.1.tgz";
-      sha512 = "cdcl3UAhA2oQK8klDl9zt5SwScSg2F4VQDUQ8XsdApKIRlEfee1Xf7WXKsGpgAuojrFHMzDVWjAg/bOyIpioLg==";
+      url = "https://registry.npmjs.org/@angular/cli/-/cli-13.1.2.tgz";
+      sha512 = "jEsQWzHgODFpppWGb49jfqlN8YYhphsKY3MPHlrjmd05qWgKItUGSgA46hSoDqjaJKVUN9koUnJBFCc9utERYA==";
     };
     dependencies = [
-      sources."@angular-devkit/architect-0.1301.1"
-      sources."@angular-devkit/core-13.1.1"
-      sources."@angular-devkit/schematics-13.1.1"
+      sources."@angular-devkit/architect-0.1301.2"
+      sources."@angular-devkit/core-13.1.2"
+      sources."@angular-devkit/schematics-13.1.2"
       sources."@gar/promisify-1.1.2"
       sources."@npmcli/fs-1.1.0"
       sources."@npmcli/git-2.1.0"
@@ -71357,7 +71366,7 @@ in
       sources."@npmcli/node-gyp-1.0.3"
       sources."@npmcli/promise-spawn-1.3.2"
       sources."@npmcli/run-script-2.0.0"
-      sources."@schematics/angular-13.1.1"
+      sources."@schematics/angular-13.1.2"
       sources."@tootallnate/once-1.1.2"
       sources."@yarnpkg/lockfile-1.1.0"
       sources."abbrev-1.1.1"
@@ -71861,7 +71870,7 @@ in
         ];
       })
       sources."to-utf8-0.0.1"
-      sources."uglify-js-3.14.4"
+      sources."uglify-js-3.14.5"
       sources."unc-path-regex-0.1.2"
       sources."unique-stream-2.3.1"
       sources."universalify-0.1.2"
@@ -71901,10 +71910,10 @@ in
   "@astrojs/language-server" = nodeEnv.buildNodePackage {
     name = "_at_astrojs_slash_language-server";
     packageName = "@astrojs/language-server";
-    version = "0.8.3";
+    version = "0.8.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@astrojs/language-server/-/language-server-0.8.3.tgz";
-      sha512 = "9cgKUK/onWROvSOvzwNGMXL31D0B3J4xk62X6I23JbqlF/hR1nbMJcqb+/YiMN+hMXu/ImvVQUQIkCMkaIxWyA==";
+      url = "https://registry.npmjs.org/@astrojs/language-server/-/language-server-0.8.4.tgz";
+      sha512 = "708BHd8clydMkrsUrh05vPL13RSoU6Cjuu6QExps1co7PDo218EgDBku+JS8g/pnDqDfQwC2Rmo/6GwZ/hfXpA==";
     };
     dependencies = [
       sources."@emmetio/abbreviation-2.2.2"
@@ -71919,7 +71928,7 @@ in
       sources."braces-3.0.2"
       sources."code-block-writer-10.1.1"
       sources."concat-map-0.0.1"
-      sources."emmet-2.3.4"
+      sources."emmet-2.3.5"
       sources."fast-glob-3.2.7"
       sources."fastq-1.13.0"
       sources."fill-range-7.0.1"
@@ -71941,7 +71950,7 @@ in
       sources."source-map-0.7.3"
       sources."to-regex-range-5.0.1"
       sources."ts-morph-12.2.0"
-      sources."typescript-4.5.3"
+      sources."typescript-4.5.4"
       sources."vscode-css-languageservice-5.1.9"
       (sources."vscode-emmet-helper-2.1.2" // {
         dependencies = [
@@ -72307,7 +72316,7 @@ in
       sources."ts-node-9.1.1"
       sources."tslib-2.3.1"
       sources."type-fest-0.18.1"
-      sources."typescript-4.5.3"
+      sources."typescript-4.5.4"
       sources."universalify-2.0.0"
       sources."util-deprecate-1.0.2"
       sources."validate-npm-package-license-3.0.4"
@@ -72380,7 +72389,7 @@ in
       sources."@hyperswarm/hypersign-2.1.1"
       sources."@hyperswarm/network-2.1.0"
       sources."@leichtgewicht/ip-codec-2.0.3"
-      sources."@types/node-16.11.12"
+      sources."@types/node-17.0.0"
       sources."abstract-extension-3.1.1"
       sources."abstract-leveldown-6.2.3"
       sources."ansi-colors-3.2.3"
@@ -72851,7 +72860,7 @@ in
       sha512 = "7EpRhhrJqICbMGjLkdthQYLLGMXNCsrsq8/xxYX1cdRiNwoGb84yjL1WFBrnQtaM8rXShOvhf4lrM2W0K9m4lQ==";
     };
     dependencies = [
-      sources."@babel/parser-7.16.4"
+      sources."@babel/parser-7.16.6"
       sources."@medable/mdctl-api-1.0.62"
       sources."@medable/mdctl-core-1.0.62"
       sources."@medable/mdctl-core-schemas-1.0.62"
@@ -72881,7 +72890,7 @@ in
       sources."@nodelib/fs.walk-1.2.8"
       sources."@types/glob-7.2.0"
       sources."@types/minimatch-3.0.5"
-      sources."@types/node-16.11.12"
+      sources."@types/node-17.0.0"
       sources."@types/tough-cookie-2.3.8"
       sources."abbrev-1.1.1"
       sources."abort-controller-3.0.0"
@@ -73563,7 +73572,7 @@ in
       sources."simple-concat-1.0.1"
       sources."simple-get-2.8.1"
       sources."slash-3.0.0"
-      sources."slugify-1.6.3"
+      sources."slugify-1.6.4"
       (sources."snapdragon-0.8.2" // {
         dependencies = [
           sources."debug-2.6.9"
@@ -73680,8 +73689,8 @@ in
       sources."tweetnacl-0.14.5"
       sources."type-check-0.3.2"
       sources."uc.micro-1.0.6"
-      sources."uglify-js-3.14.4"
-      sources."underscore-1.13.1"
+      sources."uglify-js-3.14.5"
+      sources."underscore-1.13.2"
       sources."union-value-1.0.1"
       (sources."universal-url-2.0.0" // {
         dependencies = [
@@ -73867,15 +73876,15 @@ in
   "@nestjs/cli" = nodeEnv.buildNodePackage {
     name = "_at_nestjs_slash_cli";
     packageName = "@nestjs/cli";
-    version = "8.1.5";
+    version = "8.1.6";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@nestjs/cli/-/cli-8.1.5.tgz";
-      sha512 = "eGlSTCFf/M3ACSNpW3mx5raZ+qq7k/4v6nFuaGpKafQKSKNw7cRVqSeAtHzd7bcK0ik7tKTyhQ8oxnygMLm5Iw==";
+      url = "https://registry.npmjs.org/@nestjs/cli/-/cli-8.1.6.tgz";
+      sha512 = "SFz/DNjsxNamBEi00ml6+Qx7DmnljI+lYqNzk/+1WZWCfONmvGxQrUaXcUHulkwMXZF/wpD93rgbbnT1CXirqQ==";
     };
     dependencies = [
-      sources."@angular-devkit/core-13.0.3"
-      sources."@angular-devkit/schematics-13.0.3"
-      (sources."@angular-devkit/schematics-cli-13.0.3" // {
+      sources."@angular-devkit/core-13.1.1"
+      sources."@angular-devkit/schematics-13.1.1"
+      (sources."@angular-devkit/schematics-cli-13.1.1" // {
         dependencies = [
           sources."chalk-4.1.2"
           sources."inquirer-8.2.0"
@@ -73899,14 +73908,15 @@ in
         dependencies = [
           sources."@angular-devkit/core-13.0.2"
           sources."@angular-devkit/schematics-13.0.2"
+          sources."ajv-8.6.3"
         ];
       })
       sources."@types/eslint-8.2.1"
-      sources."@types/eslint-scope-3.7.1"
+      sources."@types/eslint-scope-3.7.2"
       sources."@types/estree-0.0.50"
       sources."@types/json-schema-7.0.9"
       sources."@types/json5-0.0.29"
-      sources."@types/node-16.11.12"
+      sources."@types/node-17.0.0"
       sources."@types/parse-json-4.0.0"
       sources."@webassemblyjs/ast-1.11.1"
       sources."@webassemblyjs/floating-point-hex-parser-1.11.1"
@@ -73927,7 +73937,7 @@ in
       sources."@xtuc/long-4.2.2"
       sources."acorn-8.6.0"
       sources."acorn-import-assertions-1.8.0"
-      sources."ajv-8.6.3"
+      sources."ajv-8.8.2"
       sources."ajv-formats-2.1.1"
       sources."ajv-keywords-3.5.2"
       sources."ansi-colors-4.1.1"
@@ -73942,11 +73952,11 @@ in
       sources."bl-4.1.0"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
-      sources."browserslist-4.18.1"
+      sources."browserslist-4.19.1"
       sources."buffer-5.7.1"
       sources."buffer-from-1.1.2"
       sources."callsites-3.1.0"
-      sources."caniuse-lite-1.0.30001286"
+      sources."caniuse-lite-1.0.30001287"
       sources."chalk-3.0.0"
       sources."chardet-0.7.0"
       sources."chokidar-3.5.2"
@@ -73965,7 +73975,7 @@ in
       sources."cross-spawn-7.0.3"
       sources."deepmerge-4.2.2"
       sources."defaults-1.0.3"
-      sources."electron-to-chromium-1.4.16"
+      sources."electron-to-chromium-1.4.21"
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
       (sources."enhanced-resolve-5.8.3" // {
@@ -73991,7 +74001,7 @@ in
       sources."fast-json-stable-stringify-2.1.0"
       sources."figures-3.2.0"
       sources."fill-range-7.0.1"
-      (sources."fork-ts-checker-webpack-plugin-6.4.0" // {
+      (sources."fork-ts-checker-webpack-plugin-6.5.0" // {
         dependencies = [
           sources."chalk-4.1.2"
           sources."fs-extra-9.1.0"
@@ -74032,7 +74042,7 @@ in
       sources."is-stream-2.0.1"
       sources."is-unicode-supported-0.1.0"
       sources."isexe-2.0.0"
-      (sources."jest-worker-27.4.4" // {
+      (sources."jest-worker-27.4.5" // {
         dependencies = [
           sources."supports-color-8.1.1"
         ];
@@ -74115,7 +74125,7 @@ in
       sources."shelljs-0.8.4"
       sources."signal-exit-3.0.6"
       sources."source-map-0.7.3"
-      (sources."source-map-support-0.5.20" // {
+      (sources."source-map-support-0.5.21" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
@@ -74134,7 +74144,7 @@ in
           sources."commander-2.20.3"
         ];
       })
-      (sources."terser-webpack-plugin-5.2.5" // {
+      (sources."terser-webpack-plugin-5.3.0" // {
         dependencies = [
           sources."ajv-6.12.6"
           sources."json-schema-traverse-0.4.1"
@@ -74146,7 +74156,7 @@ in
       sources."tmp-0.0.33"
       sources."to-regex-range-5.0.1"
       sources."tree-kill-1.2.2"
-      sources."tsconfig-paths-3.11.0"
+      sources."tsconfig-paths-3.12.0"
       (sources."tsconfig-paths-webpack-plugin-3.5.2" // {
         dependencies = [
           sources."chalk-4.1.2"
@@ -74160,7 +74170,7 @@ in
       sources."util-deprecate-1.0.2"
       sources."watchpack-2.3.1"
       sources."wcwidth-1.0.1"
-      (sources."webpack-5.64.1" // {
+      (sources."webpack-5.65.0" // {
         dependencies = [
           sources."ajv-6.12.6"
           sources."json-schema-traverse-0.4.1"
@@ -74280,57 +74290,58 @@ in
       sources."@apollographql/graphql-upload-8-fork-8.1.3"
       sources."@babel/code-frame-7.16.0"
       sources."@babel/compat-data-7.16.4"
-      sources."@babel/core-7.16.0"
-      sources."@babel/generator-7.16.0"
+      sources."@babel/core-7.16.5"
+      sources."@babel/generator-7.16.5"
       sources."@babel/helper-annotate-as-pure-7.16.0"
-      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.16.0"
+      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.16.5"
       sources."@babel/helper-compilation-targets-7.16.3"
-      sources."@babel/helper-create-class-features-plugin-7.16.0"
+      sources."@babel/helper-create-class-features-plugin-7.16.5"
       sources."@babel/helper-create-regexp-features-plugin-7.16.0"
       sources."@babel/helper-define-polyfill-provider-0.3.0"
+      sources."@babel/helper-environment-visitor-7.16.5"
       sources."@babel/helper-explode-assignable-expression-7.16.0"
       sources."@babel/helper-function-name-7.16.0"
       sources."@babel/helper-get-function-arity-7.16.0"
       sources."@babel/helper-hoist-variables-7.16.0"
-      sources."@babel/helper-member-expression-to-functions-7.16.0"
+      sources."@babel/helper-member-expression-to-functions-7.16.5"
       sources."@babel/helper-module-imports-7.16.0"
-      sources."@babel/helper-module-transforms-7.16.0"
+      sources."@babel/helper-module-transforms-7.16.5"
       sources."@babel/helper-optimise-call-expression-7.16.0"
-      sources."@babel/helper-plugin-utils-7.14.5"
-      sources."@babel/helper-remap-async-to-generator-7.16.4"
-      sources."@babel/helper-replace-supers-7.16.0"
+      sources."@babel/helper-plugin-utils-7.16.5"
+      sources."@babel/helper-remap-async-to-generator-7.16.5"
+      sources."@babel/helper-replace-supers-7.16.5"
       sources."@babel/helper-simple-access-7.16.0"
       sources."@babel/helper-skip-transparent-expression-wrappers-7.16.0"
       sources."@babel/helper-split-export-declaration-7.16.0"
       sources."@babel/helper-validator-identifier-7.15.7"
       sources."@babel/helper-validator-option-7.14.5"
-      sources."@babel/helper-wrap-function-7.16.0"
-      sources."@babel/helpers-7.16.3"
+      sources."@babel/helper-wrap-function-7.16.5"
+      sources."@babel/helpers-7.16.5"
       sources."@babel/highlight-7.16.0"
-      sources."@babel/parser-7.16.4"
+      sources."@babel/parser-7.16.6"
       sources."@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.2"
       sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.0"
-      sources."@babel/plugin-proposal-async-generator-functions-7.16.4"
-      sources."@babel/plugin-proposal-class-properties-7.16.0"
-      sources."@babel/plugin-proposal-class-static-block-7.16.0"
-      sources."@babel/plugin-proposal-dynamic-import-7.16.0"
-      sources."@babel/plugin-proposal-export-namespace-from-7.16.0"
-      sources."@babel/plugin-proposal-json-strings-7.16.0"
-      sources."@babel/plugin-proposal-logical-assignment-operators-7.16.0"
-      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.16.0"
-      sources."@babel/plugin-proposal-numeric-separator-7.16.0"
-      sources."@babel/plugin-proposal-object-rest-spread-7.16.0"
-      sources."@babel/plugin-proposal-optional-catch-binding-7.16.0"
-      sources."@babel/plugin-proposal-optional-chaining-7.16.0"
-      sources."@babel/plugin-proposal-private-methods-7.16.0"
-      sources."@babel/plugin-proposal-private-property-in-object-7.16.0"
-      sources."@babel/plugin-proposal-unicode-property-regex-7.16.0"
+      sources."@babel/plugin-proposal-async-generator-functions-7.16.5"
+      sources."@babel/plugin-proposal-class-properties-7.16.5"
+      sources."@babel/plugin-proposal-class-static-block-7.16.5"
+      sources."@babel/plugin-proposal-dynamic-import-7.16.5"
+      sources."@babel/plugin-proposal-export-namespace-from-7.16.5"
+      sources."@babel/plugin-proposal-json-strings-7.16.5"
+      sources."@babel/plugin-proposal-logical-assignment-operators-7.16.5"
+      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.16.5"
+      sources."@babel/plugin-proposal-numeric-separator-7.16.5"
+      sources."@babel/plugin-proposal-object-rest-spread-7.16.5"
+      sources."@babel/plugin-proposal-optional-catch-binding-7.16.5"
+      sources."@babel/plugin-proposal-optional-chaining-7.16.5"
+      sources."@babel/plugin-proposal-private-methods-7.16.5"
+      sources."@babel/plugin-proposal-private-property-in-object-7.16.5"
+      sources."@babel/plugin-proposal-unicode-property-regex-7.16.5"
       sources."@babel/plugin-syntax-async-generators-7.8.4"
       sources."@babel/plugin-syntax-class-properties-7.12.13"
       sources."@babel/plugin-syntax-class-static-block-7.14.5"
       sources."@babel/plugin-syntax-dynamic-import-7.8.3"
       sources."@babel/plugin-syntax-export-namespace-from-7.8.3"
-      sources."@babel/plugin-syntax-flow-7.16.0"
+      sources."@babel/plugin-syntax-flow-7.16.5"
       sources."@babel/plugin-syntax-json-strings-7.8.3"
       sources."@babel/plugin-syntax-logical-assignment-operators-7.10.4"
       sources."@babel/plugin-syntax-nullish-coalescing-operator-7.8.3"
@@ -74340,55 +74351,55 @@ in
       sources."@babel/plugin-syntax-optional-chaining-7.8.3"
       sources."@babel/plugin-syntax-private-property-in-object-7.14.5"
       sources."@babel/plugin-syntax-top-level-await-7.14.5"
-      sources."@babel/plugin-syntax-typescript-7.16.0"
-      sources."@babel/plugin-transform-arrow-functions-7.16.0"
-      sources."@babel/plugin-transform-async-to-generator-7.16.0"
-      sources."@babel/plugin-transform-block-scoped-functions-7.16.0"
-      sources."@babel/plugin-transform-block-scoping-7.16.0"
-      sources."@babel/plugin-transform-classes-7.16.0"
-      sources."@babel/plugin-transform-computed-properties-7.16.0"
-      sources."@babel/plugin-transform-destructuring-7.16.0"
-      sources."@babel/plugin-transform-dotall-regex-7.16.0"
-      sources."@babel/plugin-transform-duplicate-keys-7.16.0"
-      sources."@babel/plugin-transform-exponentiation-operator-7.16.0"
-      sources."@babel/plugin-transform-flow-strip-types-7.16.0"
-      sources."@babel/plugin-transform-for-of-7.16.0"
-      sources."@babel/plugin-transform-function-name-7.16.0"
-      sources."@babel/plugin-transform-literals-7.16.0"
-      sources."@babel/plugin-transform-member-expression-literals-7.16.0"
-      sources."@babel/plugin-transform-modules-amd-7.16.0"
-      sources."@babel/plugin-transform-modules-commonjs-7.16.0"
-      sources."@babel/plugin-transform-modules-systemjs-7.16.0"
-      sources."@babel/plugin-transform-modules-umd-7.16.0"
-      sources."@babel/plugin-transform-named-capturing-groups-regex-7.16.0"
-      sources."@babel/plugin-transform-new-target-7.16.0"
-      sources."@babel/plugin-transform-object-super-7.16.0"
-      sources."@babel/plugin-transform-parameters-7.16.3"
-      sources."@babel/plugin-transform-property-literals-7.16.0"
-      sources."@babel/plugin-transform-regenerator-7.16.0"
-      sources."@babel/plugin-transform-reserved-words-7.16.0"
-      sources."@babel/plugin-transform-shorthand-properties-7.16.0"
-      sources."@babel/plugin-transform-spread-7.16.0"
-      sources."@babel/plugin-transform-sticky-regex-7.16.0"
-      sources."@babel/plugin-transform-template-literals-7.16.0"
-      sources."@babel/plugin-transform-typeof-symbol-7.16.0"
+      sources."@babel/plugin-syntax-typescript-7.16.5"
+      sources."@babel/plugin-transform-arrow-functions-7.16.5"
+      sources."@babel/plugin-transform-async-to-generator-7.16.5"
+      sources."@babel/plugin-transform-block-scoped-functions-7.16.5"
+      sources."@babel/plugin-transform-block-scoping-7.16.5"
+      sources."@babel/plugin-transform-classes-7.16.5"
+      sources."@babel/plugin-transform-computed-properties-7.16.5"
+      sources."@babel/plugin-transform-destructuring-7.16.5"
+      sources."@babel/plugin-transform-dotall-regex-7.16.5"
+      sources."@babel/plugin-transform-duplicate-keys-7.16.5"
+      sources."@babel/plugin-transform-exponentiation-operator-7.16.5"
+      sources."@babel/plugin-transform-flow-strip-types-7.16.5"
+      sources."@babel/plugin-transform-for-of-7.16.5"
+      sources."@babel/plugin-transform-function-name-7.16.5"
+      sources."@babel/plugin-transform-literals-7.16.5"
+      sources."@babel/plugin-transform-member-expression-literals-7.16.5"
+      sources."@babel/plugin-transform-modules-amd-7.16.5"
+      sources."@babel/plugin-transform-modules-commonjs-7.16.5"
+      sources."@babel/plugin-transform-modules-systemjs-7.16.5"
+      sources."@babel/plugin-transform-modules-umd-7.16.5"
+      sources."@babel/plugin-transform-named-capturing-groups-regex-7.16.5"
+      sources."@babel/plugin-transform-new-target-7.16.5"
+      sources."@babel/plugin-transform-object-super-7.16.5"
+      sources."@babel/plugin-transform-parameters-7.16.5"
+      sources."@babel/plugin-transform-property-literals-7.16.5"
+      sources."@babel/plugin-transform-regenerator-7.16.5"
+      sources."@babel/plugin-transform-reserved-words-7.16.5"
+      sources."@babel/plugin-transform-shorthand-properties-7.16.5"
+      sources."@babel/plugin-transform-spread-7.16.5"
+      sources."@babel/plugin-transform-sticky-regex-7.16.5"
+      sources."@babel/plugin-transform-template-literals-7.16.5"
+      sources."@babel/plugin-transform-typeof-symbol-7.16.5"
       sources."@babel/plugin-transform-typescript-7.16.1"
-      sources."@babel/plugin-transform-unicode-escapes-7.16.0"
-      sources."@babel/plugin-transform-unicode-regex-7.16.0"
-      sources."@babel/preset-env-7.16.4"
-      sources."@babel/preset-flow-7.16.0"
+      sources."@babel/plugin-transform-unicode-escapes-7.16.5"
+      sources."@babel/plugin-transform-unicode-regex-7.16.5"
+      sources."@babel/preset-env-7.16.5"
+      sources."@babel/preset-flow-7.16.5"
       sources."@babel/preset-modules-0.1.5"
-      sources."@babel/preset-typescript-7.16.0"
-      (sources."@babel/register-7.16.0" // {
+      sources."@babel/preset-typescript-7.16.5"
+      (sources."@babel/register-7.16.5" // {
         dependencies = [
           sources."make-dir-2.1.0"
           sources."pify-4.0.1"
           sources."semver-5.7.1"
         ];
       })
-      sources."@babel/runtime-7.16.3"
+      sources."@babel/runtime-7.16.5"
       sources."@babel/template-7.16.0"
-      sources."@babel/traverse-7.16.3"
+      sources."@babel/traverse-7.16.5"
       sources."@babel/types-7.16.0"
       sources."@hapi/address-2.1.4"
       sources."@hapi/bourne-1.3.2"
@@ -74442,7 +74453,7 @@ in
       sources."@types/long-4.0.1"
       sources."@types/mime-1.3.2"
       sources."@types/minimatch-3.0.5"
-      sources."@types/node-16.11.12"
+      sources."@types/node-17.0.0"
       sources."@types/normalize-package-data-2.4.1"
       sources."@types/qs-6.9.7"
       sources."@types/range-parser-1.2.4"
@@ -74457,13 +74468,13 @@ in
       })
       sources."@vue/cli-ui-addon-webpack-4.5.15"
       sources."@vue/cli-ui-addon-widgets-4.5.15"
-      (sources."@vue/compiler-core-3.2.24" // {
+      (sources."@vue/compiler-core-3.2.26" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
       })
-      sources."@vue/compiler-dom-3.2.24"
-      sources."@vue/shared-3.2.24"
+      sources."@vue/compiler-dom-3.2.26"
+      sources."@vue/shared-3.2.26"
       sources."@wry/equality-0.1.11"
       sources."accepts-1.3.7"
       sources."aggregate-error-3.1.0"
@@ -74557,7 +74568,7 @@ in
       })
       sources."brace-expansion-1.1.11"
       sources."braces-2.3.2"
-      sources."browserslist-4.18.1"
+      sources."browserslist-4.19.1"
       sources."buffer-5.7.1"
       sources."buffer-alloc-1.2.0"
       sources."buffer-alloc-unsafe-1.1.0"
@@ -74577,7 +74588,7 @@ in
       sources."call-bind-1.0.2"
       sources."call-me-maybe-1.0.1"
       sources."camelcase-5.3.1"
-      sources."caniuse-lite-1.0.30001286"
+      sources."caniuse-lite-1.0.30001287"
       sources."caseless-0.12.0"
       sources."caw-2.0.1"
       sources."chalk-2.4.2"
@@ -74633,12 +74644,12 @@ in
       sources."cookie-0.4.0"
       sources."cookie-signature-1.0.6"
       sources."copy-descriptor-0.1.1"
-      (sources."core-js-compat-3.19.3" // {
+      (sources."core-js-compat-3.20.0" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
       })
-      sources."core-js-pure-3.19.3"
+      sources."core-js-pure-3.20.0"
       sources."core-util-is-1.0.2"
       sources."cors-2.8.5"
       (sources."cross-spawn-6.0.5" // {
@@ -74704,7 +74715,7 @@ in
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
       sources."ejs-2.7.4"
-      sources."electron-to-chromium-1.4.16"
+      sources."electron-to-chromium-1.4.21"
       sources."emoji-regex-8.0.0"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
@@ -74793,7 +74804,7 @@ in
       })
       sources."find-up-3.0.0"
       sources."fkill-6.2.0"
-      sources."flow-parser-0.166.1"
+      sources."flow-parser-0.168.0"
       sources."for-each-0.3.3"
       sources."for-in-1.0.2"
       sources."forever-agent-0.6.1"
@@ -75602,10 +75613,10 @@ in
     };
     dependencies = [
       sources."@babel/code-frame-7.16.0"
-      sources."@babel/generator-7.16.0"
+      sources."@babel/generator-7.16.5"
       sources."@babel/helper-validator-identifier-7.15.7"
       sources."@babel/highlight-7.16.0"
-      sources."@babel/parser-7.16.4"
+      sources."@babel/parser-7.16.6"
       sources."@babel/template-7.16.0"
       sources."@babel/types-7.16.0"
       sources."@webassemblyjs/ast-1.11.1"
@@ -75698,7 +75709,7 @@ in
       sources."@types/minimist-1.2.2"
       sources."@types/ms-0.7.31"
       sources."@types/nlcst-1.0.0"
-      sources."@types/node-16.11.12"
+      sources."@types/node-16.11.14"
       sources."@types/normalize-package-data-2.4.1"
       sources."@types/parse5-6.0.3"
       sources."@types/supports-color-8.1.1"
@@ -76166,34 +76177,32 @@ in
     dependencies = [
       sources."@babel/code-frame-7.16.0"
       sources."@babel/compat-data-7.16.4"
-      (sources."@babel/core-7.16.0" // {
+      (sources."@babel/core-7.16.5" // {
         dependencies = [
           sources."source-map-0.5.7"
         ];
       })
-      (sources."@babel/generator-7.16.0" // {
+      (sources."@babel/generator-7.16.5" // {
         dependencies = [
           sources."source-map-0.5.7"
         ];
       })
       sources."@babel/helper-compilation-targets-7.16.3"
+      sources."@babel/helper-environment-visitor-7.16.5"
       sources."@babel/helper-function-name-7.16.0"
       sources."@babel/helper-get-function-arity-7.16.0"
       sources."@babel/helper-hoist-variables-7.16.0"
-      sources."@babel/helper-member-expression-to-functions-7.16.0"
       sources."@babel/helper-module-imports-7.16.0"
-      sources."@babel/helper-module-transforms-7.16.0"
-      sources."@babel/helper-optimise-call-expression-7.16.0"
-      sources."@babel/helper-replace-supers-7.16.0"
+      sources."@babel/helper-module-transforms-7.16.5"
       sources."@babel/helper-simple-access-7.16.0"
       sources."@babel/helper-split-export-declaration-7.16.0"
       sources."@babel/helper-validator-identifier-7.15.7"
       sources."@babel/helper-validator-option-7.14.5"
-      sources."@babel/helpers-7.16.3"
+      sources."@babel/helpers-7.16.5"
       sources."@babel/highlight-7.16.0"
-      sources."@babel/parser-7.16.4"
+      sources."@babel/parser-7.16.6"
       sources."@babel/template-7.16.0"
-      sources."@babel/traverse-7.16.3"
+      sources."@babel/traverse-7.16.5"
       sources."@babel/types-7.16.0"
       sources."JSV-4.0.2"
       sources."ansi-styles-3.2.1"
@@ -76201,8 +76210,8 @@ in
       sources."async-3.2.2"
       sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
-      sources."browserslist-4.18.1"
-      sources."caniuse-lite-1.0.30001286"
+      sources."browserslist-4.19.1"
+      sources."caniuse-lite-1.0.30001287"
       sources."chalk-2.4.2"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
@@ -76212,7 +76221,7 @@ in
       sources."convert-source-map-1.8.0"
       sources."debug-4.3.3"
       sources."ejs-3.1.6"
-      sources."electron-to-chromium-1.4.16"
+      sources."electron-to-chromium-1.4.21"
       sources."ensure-posix-path-1.1.1"
       sources."escalade-3.1.1"
       sources."escape-string-regexp-1.0.5"
@@ -76307,7 +76316,7 @@ in
     dependencies = [
       sources."@types/glob-7.2.0"
       sources."@types/minimatch-3.0.5"
-      sources."@types/node-16.11.12"
+      sources."@types/node-17.0.0"
       sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."chromium-pickle-js-0.2.0"
@@ -76391,9 +76400,9 @@ in
       sha512 = "7FdJ1ONtwzV1G43GDD0kpVMn/qbiNqyOPMFTX5nRffI+7vgWoFEc6DcXOxHJxrWNDXrZh18eDsZjvZGUljSRGA==";
     };
     dependencies = [
-      sources."browserslist-4.18.1"
-      sources."caniuse-lite-1.0.30001286"
-      sources."electron-to-chromium-1.4.16"
+      sources."browserslist-4.19.1"
+      sources."caniuse-lite-1.0.30001287"
+      sources."electron-to-chromium-1.4.21"
       sources."escalade-3.1.1"
       sources."fraction.js-4.1.2"
       sources."node-releases-2.0.1"
@@ -76421,7 +76430,7 @@ in
     };
     dependencies = [
       sources."@tootallnate/once-1.1.2"
-      sources."@types/node-16.11.12"
+      sources."@types/node-17.0.0"
       sources."@types/yauzl-2.9.2"
       sources."agent-base-6.0.2"
       sources."ansi-escapes-4.3.2"
@@ -76460,7 +76469,7 @@ in
       sources."commander-8.3.0"
       sources."concat-map-0.0.1"
       sources."core-util-is-1.0.3"
-      sources."css-select-4.1.3"
+      sources."css-select-4.2.0"
       sources."css-what-5.1.0"
       sources."data-uri-to-buffer-3.0.1"
       sources."debug-4.3.3"
@@ -77049,10 +77058,10 @@ in
   balanceofsatoshis = nodeEnv.buildNodePackage {
     name = "balanceofsatoshis";
     packageName = "balanceofsatoshis";
-    version = "11.14.0";
+    version = "11.15.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/balanceofsatoshis/-/balanceofsatoshis-11.14.0.tgz";
-      sha512 = "gO6IVnyqSy1QQ0Qnq/dCO2UaqeG1Ll/8rnTgtVoDujkLgfphsIT+6joSgONTiB/uj+O3aeplL4Z1Hooj4FHtLA==";
+      url = "https://registry.npmjs.org/balanceofsatoshis/-/balanceofsatoshis-11.15.0.tgz";
+      sha512 = "M9z7lob87YaxDc42JLHLUyaw1+mDg4Hykk31HfZSTJ0hL8rUqxjYg5d5BHep43Ue0ZwkYgTWahBgORfLj8QR8Q==";
     };
     dependencies = [
       sources."@alexbosworth/fiat-1.0.0"
@@ -77083,7 +77092,7 @@ in
       sources."@types/express-serve-static-core-4.17.26"
       sources."@types/long-4.0.1"
       sources."@types/mime-1.3.2"
-      sources."@types/node-16.11.12"
+      sources."@types/node-17.0.0"
       sources."@types/qs-6.9.7"
       sources."@types/range-parser-1.2.4"
       sources."@types/request-2.48.7"
@@ -77398,22 +77407,22 @@ in
           sources."ln-service-52.16.0"
         ];
       })
-      (sources."ln-service-53.1.2" // {
+      (sources."ln-service-53.2.0" // {
         dependencies = [
           sources."@grpc/proto-loader-0.6.7"
-          sources."@types/node-16.11.11"
-          sources."@types/ws-8.2.1"
-          sources."lightning-5.1.1"
+          sources."@types/node-16.11.12"
+          sources."@types/ws-8.2.2"
+          sources."lightning-5.2.1"
           sources."type-fest-2.8.0"
           sources."ws-8.3.0"
         ];
       })
-      (sources."ln-sync-3.1.0" // {
+      (sources."ln-sync-3.3.0" // {
         dependencies = [
           sources."@grpc/proto-loader-0.6.7"
-          sources."@types/node-16.11.11"
-          sources."@types/ws-8.2.1"
-          sources."lightning-5.1.1"
+          sources."@types/node-16.11.12"
+          sources."@types/ws-8.2.2"
+          sources."lightning-5.2.1"
           sources."type-fest-2.8.0"
         ];
       })
@@ -77532,7 +77541,17 @@ in
           sources."semver-6.3.0"
         ];
       })
-      sources."paid-services-3.2.0"
+      (sources."paid-services-3.2.0" // {
+        dependencies = [
+          sources."@grpc/proto-loader-0.6.7"
+          sources."@types/node-16.11.11"
+          sources."@types/ws-8.2.1"
+          sources."lightning-5.1.1"
+          sources."ln-service-53.1.2"
+          sources."type-fest-2.8.0"
+          sources."ws-8.3.0"
+        ];
+      })
       sources."parseurl-1.3.3"
       sources."path-to-regexp-0.1.7"
       sources."pinkie-2.0.4"
@@ -77632,7 +77651,7 @@ in
           sources."strip-ansi-3.0.1"
         ];
       })
-      (sources."telegraf-4.4.2" // {
+      (sources."telegraf-4.5.2" // {
         dependencies = [
           sources."debug-4.3.3"
           sources."ms-2.1.2"
@@ -78681,7 +78700,7 @@ in
       sources."@babel/code-frame-7.16.0"
       sources."@babel/helper-validator-identifier-7.15.7"
       sources."@babel/highlight-7.16.0"
-      sources."@babel/parser-7.16.4"
+      sources."@babel/parser-7.16.6"
       sources."@babel/types-7.16.0"
       sources."@kwsites/file-exists-1.1.1"
       sources."@kwsites/promise-deferred-1.1.1"
@@ -78712,7 +78731,7 @@ in
       sources."basic-auth-2.0.1"
       sources."bcrypt-pbkdf-1.0.2"
       sources."bech32-2.0.0"
-      sources."bignumber.js-9.0.1"
+      sources."bignumber.js-9.0.2"
       sources."bindings-1.5.0"
       sources."bip174-2.0.1"
       sources."bip32-2.0.6"
@@ -79148,7 +79167,7 @@ in
       sources."@protobufjs/pool-1.1.0"
       sources."@protobufjs/utf8-1.1.0"
       sources."@types/long-4.0.1"
-      sources."@types/node-16.11.12"
+      sources."@types/node-17.0.0"
       sources."addr-to-ip-port-1.5.4"
       sources."airplay-js-0.2.16"
       sources."ajv-6.12.6"
@@ -80152,14 +80171,14 @@ in
   cdk8s-cli = nodeEnv.buildNodePackage {
     name = "cdk8s-cli";
     packageName = "cdk8s-cli";
-    version = "1.0.49";
+    version = "1.0.52";
     src = fetchurl {
-      url = "https://registry.npmjs.org/cdk8s-cli/-/cdk8s-cli-1.0.49.tgz";
-      sha512 = "NONLY7zFNkGDWxuAGIbQH8CByiyWhjTLjadZYkldZPjmHqoBNoWpjhT/XfaSMFbX0BkJYSwHhaNej9Lo787D3g==";
+      url = "https://registry.npmjs.org/cdk8s-cli/-/cdk8s-cli-1.0.52.tgz";
+      sha512 = "FNSI8peew5FAsgZQ2cxE4asAazudoNVoEGCFNbZ3VyCXz+77wxl6BrslHf6LeHKYEnP8Qfk3NjqZuR2178u2Bw==";
     };
     dependencies = [
-      sources."@jsii/check-node-1.47.0"
-      sources."@jsii/spec-1.47.0"
+      sources."@jsii/check-node-1.49.0"
+      sources."@jsii/spec-1.49.0"
       sources."@types/node-12.20.37"
       sources."@xmldom/xmldom-0.7.5"
       sources."ajv-8.8.2"
@@ -80170,12 +80189,12 @@ in
       sources."call-bind-1.0.2"
       sources."camelcase-6.2.1"
       sources."case-1.6.3"
-      sources."cdk8s-1.2.8"
-      sources."cdk8s-plus-22-1.0.0-beta.59"
+      sources."cdk8s-1.3.2"
+      sources."cdk8s-plus-22-1.0.0-beta.62"
       sources."chalk-4.1.2"
       sources."cliui-7.0.4"
       sources."clone-2.1.2"
-      (sources."codemaker-1.47.0" // {
+      (sources."codemaker-1.49.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
         ];
@@ -80184,7 +80203,7 @@ in
       sources."color-name-1.1.4"
       sources."colors-1.4.0"
       sources."commonmark-0.30.0"
-      sources."constructs-3.3.165"
+      sources."constructs-3.3.166"
       sources."date-format-3.0.0"
       sources."debug-4.3.3"
       sources."decamelize-5.0.1"
@@ -80238,40 +80257,40 @@ in
       sources."is-typed-array-1.1.8"
       sources."is-weakmap-2.0.1"
       sources."is-weakref-1.0.2"
-      sources."is-weakset-2.0.1"
+      sources."is-weakset-2.0.2"
       sources."isarray-2.0.5"
-      (sources."jsii-1.47.0" // {
+      (sources."jsii-1.49.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-pacmak-1.47.0" // {
+      (sources."jsii-pacmak-1.49.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-reflect-1.47.0" // {
+      (sources."jsii-reflect-1.49.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-rosetta-1.47.0" // {
+      (sources."jsii-rosetta-1.49.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-srcmak-0.1.423" // {
+      (sources."jsii-srcmak-0.1.426" // {
         dependencies = [
           sources."fs-extra-9.1.0"
         ];
       })
       sources."json-schema-0.4.0"
       sources."json-schema-traverse-1.0.0"
-      sources."json2jsii-0.2.78"
+      sources."json2jsii-0.2.81"
       sources."jsonfile-6.1.0"
       sources."jsonschema-1.4.0"
       sources."locate-path-5.0.0"
@@ -80287,7 +80306,7 @@ in
       sources."object-is-1.1.5"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.2"
-      sources."oo-ascii-tree-1.47.0"
+      sources."oo-ascii-tree-1.49.0"
       sources."p-limit-2.3.0"
       sources."p-locate-4.1.0"
       sources."p-try-2.2.0"
@@ -80309,7 +80328,7 @@ in
       sources."snake-case-3.0.4"
       sources."sort-json-2.0.0"
       sources."spdx-license-list-6.4.0"
-      sources."sscaff-1.2.148"
+      sources."sscaff-1.2.151"
       (sources."streamroller-2.2.4" // {
         dependencies = [
           sources."date-format-2.1.0"
@@ -80360,23 +80379,23 @@ in
   cdktf-cli = nodeEnv.buildNodePackage {
     name = "cdktf-cli";
     packageName = "cdktf-cli";
-    version = "0.8.1";
+    version = "0.8.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/cdktf-cli/-/cdktf-cli-0.8.1.tgz";
-      sha512 = "pc+zelNhkYIiGY/9rWeKpUD6zh66gbXSS66u+VnA8r7PfXhLuL+uLXJ6YHQUV1zOyrF1KamMk3GoGY/9/PuQWw==";
+      url = "https://registry.npmjs.org/cdktf-cli/-/cdktf-cli-0.8.3.tgz";
+      sha512 = "T1cFortUf0IZKKXIxlNZLAdJ+7+OGi1cD0aN+X8gx8wD4V171f+d/bP2wALGZOstABd6gTzvBZbzEjK7BZgWFg==";
     };
     dependencies = [
       sources."@babel/code-frame-7.16.0"
-      sources."@babel/generator-7.16.0"
+      sources."@babel/generator-7.16.5"
       sources."@babel/helper-validator-identifier-7.15.7"
       sources."@babel/highlight-7.16.0"
-      sources."@babel/parser-7.16.4"
+      sources."@babel/parser-7.16.6"
       sources."@babel/template-7.16.0"
       sources."@babel/types-7.16.0"
-      sources."@cdktf/hcl2cdk-0.8.1"
-      sources."@cdktf/hcl2json-0.8.1"
-      sources."@cdktf/provider-generator-0.8.1"
-      (sources."@jsii/check-node-1.47.0" // {
+      sources."@cdktf/hcl2cdk-0.8.3"
+      sources."@cdktf/hcl2json-0.8.3"
+      sources."@cdktf/provider-generator-0.8.3"
+      (sources."@jsii/check-node-1.49.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."chalk-4.1.2"
@@ -80386,8 +80405,8 @@ in
           sources."supports-color-7.2.0"
         ];
       })
-      sources."@jsii/spec-1.47.0"
-      sources."@types/node-16.11.12"
+      sources."@jsii/spec-1.49.0"
+      sources."@types/node-17.0.0"
       sources."@types/node-fetch-2.5.12"
       sources."@xmldom/xmldom-0.7.5"
       sources."ansi-regex-5.0.1"
@@ -80400,7 +80419,7 @@ in
       sources."call-bind-1.0.2"
       sources."camelcase-6.2.1"
       sources."case-1.6.3"
-      sources."cdktf-0.8.1"
+      sources."cdktf-0.8.3"
       sources."chalk-2.4.2"
       sources."cliui-6.0.0"
       sources."clone-2.1.2"
@@ -80472,11 +80491,11 @@ in
       sources."is-valid-domain-0.1.5"
       sources."is-weakmap-2.0.1"
       sources."is-weakref-1.0.2"
-      sources."is-weakset-2.0.1"
+      sources."is-weakset-2.0.2"
       sources."isarray-2.0.5"
       sources."js-tokens-4.0.0"
       sources."jsesc-2.5.2"
-      (sources."jsii-1.47.0" // {
+      (sources."jsii-1.49.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."cliui-7.0.4"
@@ -80491,11 +80510,11 @@ in
           sources."yargs-parser-20.2.9"
         ];
       })
-      (sources."jsii-pacmak-1.47.0" // {
+      (sources."jsii-pacmak-1.49.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."cliui-7.0.4"
-          sources."codemaker-1.47.0"
+          sources."codemaker-1.49.0"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."decamelize-5.0.1"
@@ -80509,7 +80528,7 @@ in
           sources."yargs-parser-20.2.9"
         ];
       })
-      (sources."jsii-reflect-1.47.0" // {
+      (sources."jsii-reflect-1.49.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."cliui-7.0.4"
@@ -80524,7 +80543,7 @@ in
           sources."yargs-parser-20.2.9"
         ];
       })
-      (sources."jsii-rosetta-1.47.0" // {
+      (sources."jsii-rosetta-1.49.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."cliui-7.0.4"
@@ -80539,7 +80558,7 @@ in
           sources."yargs-parser-20.2.9"
         ];
       })
-      (sources."jsii-srcmak-0.1.423" // {
+      (sources."jsii-srcmak-0.1.426" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."jsonfile-6.1.0"
@@ -80566,7 +80585,7 @@ in
       sources."object.assign-4.1.2"
       sources."obliterator-1.6.1"
       sources."once-1.4.0"
-      sources."oo-ascii-tree-1.47.0"
+      sources."oo-ascii-tree-1.49.0"
       sources."p-limit-2.3.0"
       sources."p-locate-4.1.0"
       sources."p-try-2.2.0"
@@ -80928,10 +80947,10 @@ in
   coc-diagnostic = nodeEnv.buildNodePackage {
     name = "coc-diagnostic";
     packageName = "coc-diagnostic";
-    version = "0.23.0";
+    version = "0.23.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-diagnostic/-/coc-diagnostic-0.23.0.tgz";
-      sha512 = "wGpS2ieusia2OpCaZpT7XRopfUCjKIqH5ksfrLzxwPOi3uT9nfv2exJA6JLk6DEfpwcyBzEnLMQ/JI1BUXDrcg==";
+      url = "https://registry.npmjs.org/coc-diagnostic/-/coc-diagnostic-0.23.1.tgz";
+      sha512 = "LttYS+gGH42SI5XFuIf9TdAGRRKABQvQDbMeUDrUqdpscX90WvHYdeR8M1q94RwoZH33g/4oxWu0RLPKxgDJKw==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -80987,10 +81006,10 @@ in
   coc-explorer = nodeEnv.buildNodePackage {
     name = "coc-explorer";
     packageName = "coc-explorer";
-    version = "0.20.1";
+    version = "0.20.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-explorer/-/coc-explorer-0.20.1.tgz";
-      sha512 = "BCuK5OwUV9mRYN4F8e4TnjWkTcIy7UEsxCST/aoxYoCJ2TKrskDIb82R2EtuD6xmJoz1VEHpugWEG7xHRKDQxg==";
+      url = "https://registry.npmjs.org/coc-explorer/-/coc-explorer-0.20.2.tgz";
+      sha512 = "T/LC5zNmFVDnimzILdZhbK3XvMG+rokGdUIifmNdlGJN3q1SiDyIMJKVAVg9ugWItaz03u+SZkYdxXrMIUzwzA==";
     };
     dependencies = [
       sources."@sindresorhus/df-3.1.1"
@@ -81142,7 +81161,7 @@ in
       sha512 = "7SHQYzpRKPrpaLcTm1UUk1zu9VvFEJKFqxwDIuqv/CL0cBTtEvlsfpVh9DOaMHlZPu8U8Lgyf04bHV/sFS1zJw==";
     };
     dependencies = [
-      sources."typescript-4.5.3"
+      sources."typescript-4.5.4"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -81596,7 +81615,7 @@ in
       sources."callsites-3.1.0"
       sources."camelcase-2.1.1"
       sources."camelcase-keys-2.1.0"
-      sources."caniuse-lite-1.0.30001286"
+      sources."caniuse-lite-1.0.30001287"
       sources."capture-stack-trace-1.0.1"
       sources."ccount-1.1.0"
       (sources."chalk-4.1.2" // {
@@ -81658,7 +81677,7 @@ in
         ];
       })
       sources."copy-descriptor-0.1.1"
-      sources."core-js-3.19.3"
+      sources."core-js-3.20.0"
       sources."cosmiconfig-3.1.0"
       sources."create-error-class-3.0.2"
       sources."cross-spawn-7.0.3"
@@ -81694,7 +81713,7 @@ in
       sources."domutils-1.7.0"
       sources."dot-prop-5.3.0"
       sources."duplexer3-0.1.4"
-      sources."electron-to-chromium-1.4.16"
+      sources."electron-to-chromium-1.4.21"
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
       sources."enquirer-2.3.6"
@@ -82498,7 +82517,7 @@ in
       sha512 = "+OOz8r1rNCC5YL61NIQaDrDeFHOuHQ61NhqvIp9bcALigrexK0WjIWY+SI+1t+GoEiM8e0zpWRxwdyueZKLpGA==";
     };
     dependencies = [
-      sources."pyright-1.1.194"
+      sources."pyright-1.1.196"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -82650,30 +82669,28 @@ in
     dependencies = [
       sources."@babel/code-frame-7.16.0"
       sources."@babel/compat-data-7.16.4"
-      sources."@babel/core-7.16.0"
-      sources."@babel/generator-7.16.0"
+      sources."@babel/core-7.16.5"
+      sources."@babel/generator-7.16.5"
       sources."@babel/helper-compilation-targets-7.16.3"
+      sources."@babel/helper-environment-visitor-7.16.5"
       sources."@babel/helper-function-name-7.16.0"
       sources."@babel/helper-get-function-arity-7.16.0"
       sources."@babel/helper-hoist-variables-7.16.0"
-      sources."@babel/helper-member-expression-to-functions-7.16.0"
       sources."@babel/helper-module-imports-7.16.0"
-      sources."@babel/helper-module-transforms-7.16.0"
-      sources."@babel/helper-optimise-call-expression-7.16.0"
-      sources."@babel/helper-replace-supers-7.16.0"
+      sources."@babel/helper-module-transforms-7.16.5"
       sources."@babel/helper-simple-access-7.16.0"
       sources."@babel/helper-split-export-declaration-7.16.0"
       sources."@babel/helper-validator-identifier-7.15.7"
       sources."@babel/helper-validator-option-7.14.5"
-      sources."@babel/helpers-7.16.3"
+      sources."@babel/helpers-7.16.5"
       (sources."@babel/highlight-7.16.0" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.16.4"
+      sources."@babel/parser-7.16.6"
       sources."@babel/template-7.16.0"
-      sources."@babel/traverse-7.16.3"
+      sources."@babel/traverse-7.16.5"
       sources."@babel/types-7.16.0"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
@@ -82704,11 +82721,11 @@ in
         ];
       })
       sources."braces-3.0.2"
-      sources."browserslist-4.18.1"
+      sources."browserslist-4.19.1"
       sources."callsites-3.1.0"
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
-      sources."caniuse-lite-1.0.30001286"
+      sources."caniuse-lite-1.0.30001287"
       (sources."chalk-4.1.2" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
@@ -82745,7 +82762,7 @@ in
       sources."domelementtype-1.3.1"
       sources."domhandler-2.4.2"
       sources."domutils-1.7.0"
-      sources."electron-to-chromium-1.4.16"
+      sources."electron-to-chromium-1.4.21"
       sources."emoji-regex-8.0.0"
       sources."entities-1.1.2"
       sources."error-ex-1.3.2"
@@ -83120,7 +83137,7 @@ in
       sha512 = "RTet29nZNYrOWEuquBOAv3yFtWyHPE7xGbsHjRdNbTP6g9PF+2nV2TnDO+c/T5HAk/1J0lKKZBu6hZTnEJ2f4w==";
     };
     dependencies = [
-      sources."typescript-4.5.3"
+      sources."typescript-4.5.4"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -83330,7 +83347,7 @@ in
       sources."tsutils-2.29.0"
       sources."type-check-0.4.0"
       sources."type-fest-0.20.2"
-      sources."typescript-4.5.3"
+      sources."typescript-4.5.4"
       sources."uri-js-4.4.1"
       sources."v8-compile-cache-2.3.0"
       sources."vls-0.7.6"
@@ -83785,7 +83802,6 @@ in
       sources."colors-1.4.0"
       sources."colorspace-1.1.4"
       sources."commander-8.0.0"
-      sources."core-util-is-1.0.3"
       sources."enabled-2.0.0"
       sources."eventemitter3-4.0.7"
       sources."fecha-4.2.1"
@@ -83795,12 +83811,10 @@ in
       sources."inherits-2.0.4"
       sources."is-arrayish-0.3.2"
       sources."is-stream-2.0.1"
-      sources."isarray-1.0.0"
       sources."kuler-2.0.0"
       sources."logform-2.3.0"
       sources."ms-2.1.3"
       sources."one-time-1.0.0"
-      sources."process-nextick-args-2.0.1"
       sources."prom-client-13.1.0"
       sources."readable-stream-3.6.0"
       sources."requires-port-1.0.0"
@@ -83808,20 +83822,14 @@ in
       sources."safe-stable-stringify-1.1.1"
       sources."simple-swizzle-0.2.2"
       sources."stack-trace-0.0.10"
-      sources."strftime-0.10.0"
+      sources."strftime-0.10.1"
       sources."string_decoder-1.3.0"
       sources."tdigest-0.1.1"
       sources."text-hex-1.0.0"
       sources."triple-beam-1.3.0"
       sources."util-deprecate-1.0.2"
       sources."winston-3.3.3"
-      (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."winston-transport-4.4.1"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -84027,7 +84035,7 @@ in
       sources."through2-4.0.2"
       sources."trim-newlines-3.0.1"
       sources."type-fest-0.18.1"
-      sources."uglify-js-3.14.4"
+      sources."uglify-js-3.14.5"
       sources."util-deprecate-1.0.2"
       sources."uuid-3.4.0"
       sources."validate-npm-package-license-3.0.4"
@@ -84596,7 +84604,7 @@ in
       sources."type-fest-0.8.1"
       sources."type-is-1.6.18"
       sources."typedarray-to-buffer-3.1.5"
-      sources."underscore-1.13.1"
+      sources."underscore-1.13.2"
       sources."unique-filename-1.1.1"
       sources."unique-slug-2.0.2"
       sources."unique-string-2.0.0"
@@ -84675,7 +84683,7 @@ in
       sources."@types/glob-7.2.0"
       sources."@types/minimatch-3.0.5"
       sources."@types/minimist-1.2.2"
-      sources."@types/node-16.11.12"
+      sources."@types/node-17.0.0"
       sources."@types/normalize-package-data-2.4.1"
       sources."aggregate-error-3.1.0"
       sources."ansi-styles-3.2.1"
@@ -85046,7 +85054,7 @@ in
       sources."@cycle/run-3.4.0"
       sources."@cycle/time-0.10.1"
       sources."@types/cookiejar-2.1.2"
-      sources."@types/node-16.11.12"
+      sources."@types/node-17.0.0"
       sources."@types/superagent-3.8.2"
       sources."ansi-escapes-3.2.0"
       sources."ansi-regex-2.1.1"
@@ -85197,20 +85205,19 @@ in
   create-react-app = nodeEnv.buildNodePackage {
     name = "create-react-app";
     packageName = "create-react-app";
-    version = "4.0.3";
+    version = "5.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/create-react-app/-/create-react-app-4.0.3.tgz";
-      sha512 = "Gz/ilrPq0ehiZ+K3L4jAZXGVep6NDkAytIdiHXsE4cWJav9uHe8xzEN84i3SjMYox6yNrBaULXHAkWdn4ZBF9Q==";
+      url = "https://registry.npmjs.org/create-react-app/-/create-react-app-5.0.0.tgz";
+      sha512 = "r1hJymk28l9HiGNatNq92txdua5pq5z4jHsYRG4g2BME7cDtRcCiuUsZzT1tPqjapSHT0Zwpwnp0gdTaqPzyBA==";
     };
     dependencies = [
       sources."ansi-styles-4.3.0"
-      sources."at-least-node-1.0.0"
       sources."balanced-match-1.0.2"
       sources."block-stream-0.0.9"
       sources."brace-expansion-1.1.11"
       sources."buffer-from-0.1.2"
       sources."builtins-1.0.3"
-      sources."chalk-4.1.0"
+      sources."chalk-4.1.2"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
       sources."commander-4.1.1"
@@ -85219,8 +85226,8 @@ in
       sources."cross-spawn-7.0.3"
       sources."debug-2.6.9"
       sources."duplexer2-0.0.2"
-      sources."envinfo-7.7.3"
-      sources."fs-extra-9.0.1"
+      sources."envinfo-7.8.1"
+      sources."fs-extra-10.0.0"
       sources."fs.realpath-1.0.0"
       sources."fstream-1.0.12"
       sources."fstream-ignore-1.0.5"
@@ -85232,12 +85239,9 @@ in
       sources."inherits-2.0.4"
       sources."isarray-0.0.1"
       sources."isexe-2.0.0"
-      (sources."jsonfile-6.1.0" // {
-        dependencies = [
-          sources."universalify-2.0.0"
-        ];
-      })
+      sources."jsonfile-6.1.0"
       sources."kleur-3.0.3"
+      sources."lru-cache-6.0.0"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
@@ -85246,11 +85250,11 @@ in
       sources."path-is-absolute-1.0.1"
       sources."path-key-3.1.1"
       sources."process-nextick-args-2.0.1"
-      sources."prompts-2.4.0"
+      sources."prompts-2.4.2"
       sources."readable-stream-1.1.14"
       sources."rimraf-2.7.1"
       sources."safe-buffer-5.1.2"
-      sources."semver-7.3.2"
+      sources."semver-7.3.5"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."sisteransi-1.0.5"
@@ -85275,12 +85279,13 @@ in
         ];
       })
       sources."uid-number-0.0.6"
-      sources."universalify-1.0.0"
+      sources."universalify-2.0.0"
       sources."util-deprecate-1.0.2"
       sources."validate-npm-package-name-3.0.0"
       sources."which-2.0.2"
       sources."wrappy-1.0.2"
       sources."xtend-4.0.2"
+      sources."yallist-4.0.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -85295,10 +85300,10 @@ in
   create-react-native-app = nodeEnv.buildNodePackage {
     name = "create-react-native-app";
     packageName = "create-react-native-app";
-    version = "3.6.0";
+    version = "3.7.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/create-react-native-app/-/create-react-native-app-3.6.0.tgz";
-      sha512 = "DlhSk4dbD4V+8ZnIRi3WW/Y+F90slstYUzbnz21pKxvMW1Pkri+081q+zAY1+piBq1wqUE5VbKrkXUKg019lnw==";
+      url = "https://registry.npmjs.org/create-react-native-app/-/create-react-native-app-3.7.2.tgz";
+      sha512 = "/gEvim7UjCFTFdRtSckc5Xhh+ZHSAGDKkN2mERbyLxeja4pzTmYxW/85xfYFSSLDtQmjZmwlnRKColULO1I6ZQ==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -85313,10 +85318,10 @@ in
   cspell = nodeEnv.buildNodePackage {
     name = "cspell";
     packageName = "cspell";
-    version = "5.13.2";
+    version = "5.13.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/cspell/-/cspell-5.13.2.tgz";
-      sha512 = "9AtpLv2zOuxaCBBxaFaa7U+4sMbOZzTKhnqIklr5cudUGfDOVHoGwdGA5Wq5xbnhokOP+xLKgPIWffgbn7lljA==";
+      url = "https://registry.npmjs.org/cspell/-/cspell-5.13.3.tgz";
+      sha512 = "14RzCLHadT2BFcTEhEJUiwW4m8vVNnBXGBPnnEYkFiF2MyJEtfyOoqqVxqDHOvwVmc0zKIiAU0ZrG98spWuNnA==";
     };
     dependencies = [
       sources."@babel/code-frame-7.16.0"
@@ -85331,8 +85336,8 @@ in
           sources."supports-color-5.5.0"
         ];
       })
-      sources."@cspell/cspell-bundled-dicts-5.13.2"
-      sources."@cspell/cspell-types-5.13.2"
+      sources."@cspell/cspell-bundled-dicts-5.13.3"
+      sources."@cspell/cspell-types-5.13.3"
       sources."@cspell/dict-ada-1.1.2"
       sources."@cspell/dict-aws-1.0.14"
       sources."@cspell/dict-bash-1.0.17"
@@ -85389,11 +85394,11 @@ in
       sources."core-util-is-1.0.3"
       sources."cosmiconfig-7.0.1"
       sources."crypto-random-string-2.0.0"
-      sources."cspell-gitignore-5.13.2"
-      sources."cspell-glob-5.13.2"
-      sources."cspell-io-5.13.2"
-      sources."cspell-lib-5.13.2"
-      sources."cspell-trie-lib-5.13.2"
+      sources."cspell-gitignore-5.13.3"
+      sources."cspell-glob-5.13.3"
+      sources."cspell-io-5.13.3"
+      sources."cspell-lib-5.13.3"
+      sources."cspell-trie-lib-5.13.3"
       sources."dot-prop-5.3.0"
       sources."error-ex-1.3.2"
       sources."escape-string-regexp-1.0.5"
@@ -86193,71 +86198,72 @@ in
   "deltachat-desktop-../../applications/networking/instant-messengers/deltachat-desktop" = nodeEnv.buildNodePackage {
     name = "deltachat-desktop";
     packageName = "deltachat-desktop";
-    version = "1.22.2";
+    version = "1.26.0";
     src = ../../applications/networking/instant-messengers/deltachat-desktop;
     dependencies = [
       sources."@babel/code-frame-7.16.0"
       sources."@babel/compat-data-7.16.4"
-      (sources."@babel/core-7.16.0" // {
+      (sources."@babel/core-7.16.5" // {
         dependencies = [
           sources."source-map-0.5.7"
         ];
       })
-      (sources."@babel/generator-7.16.0" // {
+      (sources."@babel/generator-7.16.5" // {
         dependencies = [
           sources."source-map-0.5.7"
         ];
       })
       sources."@babel/helper-annotate-as-pure-7.16.0"
-      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.16.0"
+      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.16.5"
       sources."@babel/helper-compilation-targets-7.16.3"
-      sources."@babel/helper-create-class-features-plugin-7.16.0"
+      sources."@babel/helper-create-class-features-plugin-7.16.5"
       sources."@babel/helper-create-regexp-features-plugin-7.16.0"
       sources."@babel/helper-define-polyfill-provider-0.3.0"
+      sources."@babel/helper-environment-visitor-7.16.5"
       sources."@babel/helper-explode-assignable-expression-7.16.0"
       sources."@babel/helper-function-name-7.16.0"
       sources."@babel/helper-get-function-arity-7.16.0"
       sources."@babel/helper-hoist-variables-7.16.0"
-      sources."@babel/helper-member-expression-to-functions-7.16.0"
+      sources."@babel/helper-member-expression-to-functions-7.16.5"
       sources."@babel/helper-module-imports-7.16.0"
-      sources."@babel/helper-module-transforms-7.16.0"
+      sources."@babel/helper-module-transforms-7.16.5"
       sources."@babel/helper-optimise-call-expression-7.16.0"
-      sources."@babel/helper-plugin-utils-7.14.5"
-      sources."@babel/helper-remap-async-to-generator-7.16.4"
-      sources."@babel/helper-replace-supers-7.16.0"
+      sources."@babel/helper-plugin-utils-7.16.5"
+      sources."@babel/helper-remap-async-to-generator-7.16.5"
+      sources."@babel/helper-replace-supers-7.16.5"
       sources."@babel/helper-simple-access-7.16.0"
       sources."@babel/helper-skip-transparent-expression-wrappers-7.16.0"
       sources."@babel/helper-split-export-declaration-7.16.0"
       sources."@babel/helper-validator-identifier-7.15.7"
       sources."@babel/helper-validator-option-7.14.5"
-      sources."@babel/helper-wrap-function-7.16.0"
-      sources."@babel/helpers-7.16.3"
+      sources."@babel/helper-wrap-function-7.16.5"
+      sources."@babel/helpers-7.16.5"
       sources."@babel/highlight-7.16.0"
-      sources."@babel/parser-7.16.4"
+      sources."@babel/parser-7.16.6"
       sources."@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.2"
       sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.0"
-      sources."@babel/plugin-proposal-async-generator-functions-7.16.4"
-      sources."@babel/plugin-proposal-class-properties-7.16.0"
-      sources."@babel/plugin-proposal-class-static-block-7.16.0"
-      sources."@babel/plugin-proposal-dynamic-import-7.16.0"
-      sources."@babel/plugin-proposal-export-namespace-from-7.16.0"
-      sources."@babel/plugin-proposal-json-strings-7.16.0"
-      sources."@babel/plugin-proposal-logical-assignment-operators-7.16.0"
-      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.16.0"
-      sources."@babel/plugin-proposal-numeric-separator-7.16.0"
-      sources."@babel/plugin-proposal-object-rest-spread-7.16.0"
-      sources."@babel/plugin-proposal-optional-catch-binding-7.16.0"
-      sources."@babel/plugin-proposal-optional-chaining-7.16.0"
-      sources."@babel/plugin-proposal-private-methods-7.16.0"
-      sources."@babel/plugin-proposal-private-property-in-object-7.16.0"
-      sources."@babel/plugin-proposal-unicode-property-regex-7.16.0"
+      sources."@babel/plugin-proposal-async-generator-functions-7.16.5"
+      sources."@babel/plugin-proposal-class-properties-7.16.5"
+      sources."@babel/plugin-proposal-class-static-block-7.16.5"
+      sources."@babel/plugin-proposal-dynamic-import-7.16.5"
+      sources."@babel/plugin-proposal-export-namespace-from-7.16.5"
+      sources."@babel/plugin-proposal-json-strings-7.16.5"
+      sources."@babel/plugin-proposal-logical-assignment-operators-7.16.5"
+      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.16.5"
+      sources."@babel/plugin-proposal-numeric-separator-7.16.5"
+      sources."@babel/plugin-proposal-object-rest-spread-7.16.5"
+      sources."@babel/plugin-proposal-optional-catch-binding-7.16.5"
+      sources."@babel/plugin-proposal-optional-chaining-7.16.5"
+      sources."@babel/plugin-proposal-private-methods-7.16.5"
+      sources."@babel/plugin-proposal-private-property-in-object-7.16.5"
+      sources."@babel/plugin-proposal-unicode-property-regex-7.16.5"
       sources."@babel/plugin-syntax-async-generators-7.8.4"
       sources."@babel/plugin-syntax-class-properties-7.12.13"
       sources."@babel/plugin-syntax-class-static-block-7.14.5"
       sources."@babel/plugin-syntax-dynamic-import-7.8.3"
       sources."@babel/plugin-syntax-export-namespace-from-7.8.3"
       sources."@babel/plugin-syntax-json-strings-7.8.3"
-      sources."@babel/plugin-syntax-jsx-7.16.0"
+      sources."@babel/plugin-syntax-jsx-7.16.5"
       sources."@babel/plugin-syntax-logical-assignment-operators-7.10.4"
       sources."@babel/plugin-syntax-nullish-coalescing-operator-7.8.3"
       sources."@babel/plugin-syntax-numeric-separator-7.10.4"
@@ -86266,52 +86272,53 @@ in
       sources."@babel/plugin-syntax-optional-chaining-7.8.3"
       sources."@babel/plugin-syntax-private-property-in-object-7.14.5"
       sources."@babel/plugin-syntax-top-level-await-7.14.5"
-      sources."@babel/plugin-transform-arrow-functions-7.16.0"
-      sources."@babel/plugin-transform-async-to-generator-7.16.0"
-      sources."@babel/plugin-transform-block-scoped-functions-7.16.0"
-      sources."@babel/plugin-transform-block-scoping-7.16.0"
-      sources."@babel/plugin-transform-classes-7.16.0"
-      sources."@babel/plugin-transform-computed-properties-7.16.0"
-      sources."@babel/plugin-transform-destructuring-7.16.0"
-      sources."@babel/plugin-transform-dotall-regex-7.16.0"
-      sources."@babel/plugin-transform-duplicate-keys-7.16.0"
-      sources."@babel/plugin-transform-exponentiation-operator-7.16.0"
-      sources."@babel/plugin-transform-for-of-7.16.0"
-      sources."@babel/plugin-transform-function-name-7.16.0"
-      sources."@babel/plugin-transform-literals-7.16.0"
-      sources."@babel/plugin-transform-member-expression-literals-7.16.0"
-      sources."@babel/plugin-transform-modules-amd-7.16.0"
-      sources."@babel/plugin-transform-modules-commonjs-7.16.0"
-      sources."@babel/plugin-transform-modules-systemjs-7.16.0"
-      sources."@babel/plugin-transform-modules-umd-7.16.0"
-      sources."@babel/plugin-transform-named-capturing-groups-regex-7.16.0"
-      sources."@babel/plugin-transform-new-target-7.16.0"
-      sources."@babel/plugin-transform-object-super-7.16.0"
-      sources."@babel/plugin-transform-parameters-7.16.3"
-      sources."@babel/plugin-transform-property-literals-7.16.0"
-      sources."@babel/plugin-transform-react-display-name-7.16.0"
-      sources."@babel/plugin-transform-react-jsx-7.16.0"
-      sources."@babel/plugin-transform-react-jsx-development-7.16.0"
-      sources."@babel/plugin-transform-react-pure-annotations-7.16.0"
-      sources."@babel/plugin-transform-regenerator-7.16.0"
-      sources."@babel/plugin-transform-reserved-words-7.16.0"
-      sources."@babel/plugin-transform-shorthand-properties-7.16.0"
-      sources."@babel/plugin-transform-spread-7.16.0"
-      sources."@babel/plugin-transform-sticky-regex-7.16.0"
-      sources."@babel/plugin-transform-template-literals-7.16.0"
-      sources."@babel/plugin-transform-typeof-symbol-7.16.0"
-      sources."@babel/plugin-transform-unicode-escapes-7.16.0"
-      sources."@babel/plugin-transform-unicode-regex-7.16.0"
-      sources."@babel/preset-env-7.16.4"
+      sources."@babel/plugin-transform-arrow-functions-7.16.5"
+      sources."@babel/plugin-transform-async-to-generator-7.16.5"
+      sources."@babel/plugin-transform-block-scoped-functions-7.16.5"
+      sources."@babel/plugin-transform-block-scoping-7.16.5"
+      sources."@babel/plugin-transform-classes-7.16.5"
+      sources."@babel/plugin-transform-computed-properties-7.16.5"
+      sources."@babel/plugin-transform-destructuring-7.16.5"
+      sources."@babel/plugin-transform-dotall-regex-7.16.5"
+      sources."@babel/plugin-transform-duplicate-keys-7.16.5"
+      sources."@babel/plugin-transform-exponentiation-operator-7.16.5"
+      sources."@babel/plugin-transform-for-of-7.16.5"
+      sources."@babel/plugin-transform-function-name-7.16.5"
+      sources."@babel/plugin-transform-literals-7.16.5"
+      sources."@babel/plugin-transform-member-expression-literals-7.16.5"
+      sources."@babel/plugin-transform-modules-amd-7.16.5"
+      sources."@babel/plugin-transform-modules-commonjs-7.16.5"
+      sources."@babel/plugin-transform-modules-systemjs-7.16.5"
+      sources."@babel/plugin-transform-modules-umd-7.16.5"
+      sources."@babel/plugin-transform-named-capturing-groups-regex-7.16.5"
+      sources."@babel/plugin-transform-new-target-7.16.5"
+      sources."@babel/plugin-transform-object-super-7.16.5"
+      sources."@babel/plugin-transform-parameters-7.16.5"
+      sources."@babel/plugin-transform-property-literals-7.16.5"
+      sources."@babel/plugin-transform-react-display-name-7.16.5"
+      sources."@babel/plugin-transform-react-jsx-7.16.5"
+      sources."@babel/plugin-transform-react-jsx-development-7.16.5"
+      sources."@babel/plugin-transform-react-pure-annotations-7.16.5"
+      sources."@babel/plugin-transform-regenerator-7.16.5"
+      sources."@babel/plugin-transform-reserved-words-7.16.5"
+      sources."@babel/plugin-transform-shorthand-properties-7.16.5"
+      sources."@babel/plugin-transform-spread-7.16.5"
+      sources."@babel/plugin-transform-sticky-regex-7.16.5"
+      sources."@babel/plugin-transform-template-literals-7.16.5"
+      sources."@babel/plugin-transform-typeof-symbol-7.16.5"
+      sources."@babel/plugin-transform-unicode-escapes-7.16.5"
+      sources."@babel/plugin-transform-unicode-regex-7.16.5"
+      sources."@babel/preset-env-7.16.5"
       sources."@babel/preset-modules-0.1.5"
-      sources."@babel/preset-react-7.16.0"
-      sources."@babel/runtime-7.16.3"
+      sources."@babel/preset-react-7.16.5"
+      sources."@babel/runtime-7.16.5"
       sources."@babel/template-7.16.0"
-      sources."@babel/traverse-7.16.3"
+      sources."@babel/traverse-7.16.5"
       sources."@babel/types-7.16.0"
       sources."@blueprintjs/colors-4.0.0-beta.3"
       sources."@blueprintjs/core-3.52.0"
       sources."@blueprintjs/icons-3.31.0"
+      sources."@deltachat/message_parser_wasm-0.1.0"
       sources."@electron/get-1.13.1"
       sources."@hypnosphi/create-react-context-0.3.1"
       sources."@mapbox/extent-0.4.0"
@@ -86381,7 +86388,7 @@ in
           sources."extend-shallow-2.0.1"
         ];
       })
-      sources."browserslist-4.18.1"
+      sources."browserslist-4.19.1"
       sources."buffer-crc32-0.2.13"
       sources."buffer-from-1.1.2"
       sources."cache-base-1.0.1"
@@ -86392,7 +86399,7 @@ in
         ];
       })
       sources."call-bind-1.0.2"
-      sources."caniuse-lite-1.0.30001286"
+      sources."caniuse-lite-1.0.30001287"
       sources."chalk-2.4.2"
       sources."chokidar-2.1.8"
       (sources."class-utils-0.3.6" // {
@@ -86433,7 +86440,7 @@ in
         ];
       })
       sources."copy-descriptor-0.1.1"
-      (sources."core-js-compat-3.19.3" // {
+      (sources."core-js-compat-3.20.0" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
@@ -86452,14 +86459,14 @@ in
       sources."define-properties-1.1.3"
       sources."define-property-2.0.2"
       sources."delayed-stream-1.0.0"
-      sources."deltachat-node-1.60.0"
+      sources."deltachat-node-1.70.0"
       sources."detect-node-2.1.0"
       sources."dom-helpers-3.4.0"
       sources."dom4-2.1.6"
       sources."duplexer3-0.1.4"
       sources."earcut-2.2.3"
       sources."electron-13.6.3"
-      sources."electron-to-chromium-1.4.16"
+      sources."electron-to-chromium-1.4.21"
       sources."emoji-js-clean-4.0.0"
       sources."emoji-mart-3.0.1"
       sources."emoji-regex-9.2.2"
@@ -86468,6 +86475,7 @@ in
       sources."env-paths-2.2.1"
       sources."error-stack-parser-2.0.6"
       sources."es6-error-4.1.1"
+      sources."esbuild-0.12.29"
       sources."escalade-3.1.1"
       sources."escape-string-regexp-1.0.5"
       sources."esutils-2.0.3"
@@ -86510,7 +86518,7 @@ in
       })
       sources."fd-slicer-1.1.0"
       sources."file-uri-to-path-1.0.0"
-      sources."filesize-6.4.0"
+      sources."filesize-8.0.6"
       (sources."fill-range-4.0.0" // {
         dependencies = [
           sources."extend-shallow-2.0.1"
@@ -86686,7 +86694,6 @@ in
       sources."proto-list-1.2.4"
       sources."protocol-buffers-schema-3.6.0"
       sources."pump-3.0.0"
-      sources."punycode-2.1.1"
       sources."qr.js-0.0.0"
       sources."querystringify-2.2.0"
       sources."quickselect-2.0.0"
@@ -86769,7 +86776,6 @@ in
           sources."extend-shallow-2.0.1"
         ];
       })
-      sources."simple-markdown-0.7.3"
       (sources."snapdragon-0.8.2" // {
         dependencies = [
           sources."debug-2.6.9"
@@ -86852,7 +86858,7 @@ in
       sources."type-fest-0.3.1"
       sources."typed-styles-0.0.7"
       sources."typedarray-0.0.6"
-      sources."typescript-3.9.10"
+      sources."typescript-4.5.4"
       sources."unicode-canonical-property-names-ecmascript-2.0.0"
       sources."unicode-match-property-ecmascript-2.0.0"
       sources."unicode-match-property-value-ecmascript-2.0.0"
@@ -86918,10 +86924,10 @@ in
   diagnostic-languageserver = nodeEnv.buildNodePackage {
     name = "diagnostic-languageserver";
     packageName = "diagnostic-languageserver";
-    version = "1.14.1";
+    version = "1.14.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/diagnostic-languageserver/-/diagnostic-languageserver-1.14.1.tgz";
-      sha512 = "68I1b1ZRLYn9IDKJ03r+AGYWu5aI7KmAGf4nnxUXUiAerf5+vI3hcKtgJcmQKD+bURPQ/tQ1pBxlUAsKArAvxw==";
+      url = "https://registry.npmjs.org/diagnostic-languageserver/-/diagnostic-languageserver-1.14.2.tgz";
+      sha512 = "nlDDcfcey3FT1n9uaOhqyCvhVVWBd4kcdTrgF8LaHQXX3QWbfnLgrIg57wt3YYoHolpD+yWKyt9nlVbHVDxxgQ==";
     };
     dependencies = [
       sources."@nodelib/fs.scandir-2.1.5"
@@ -87004,15 +87010,15 @@ in
   dockerfile-language-server-nodejs = nodeEnv.buildNodePackage {
     name = "dockerfile-language-server-nodejs";
     packageName = "dockerfile-language-server-nodejs";
-    version = "0.7.2";
+    version = "0.7.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/dockerfile-language-server-nodejs/-/dockerfile-language-server-nodejs-0.7.2.tgz";
-      sha512 = "TrUvQ+Mq/R4uODRPHNsDKwFXucGsJBm4cObKENYtwNkXCeT7QmrNBc9d8lQQM0B+Gsc7mDASWKn1Jn+1FwVtIw==";
+      url = "https://registry.npmjs.org/dockerfile-language-server-nodejs/-/dockerfile-language-server-nodejs-0.7.3.tgz";
+      sha512 = "+fY8JCuoL3T698EZKd78SF1RrGBGYZVRzRDLrWHaum3qx5gW8uMDX41rtaehX7/ZNH/WSuwyFtWh3/JWmjEAKw==";
     };
     dependencies = [
-      sources."dockerfile-ast-0.3.4"
-      sources."dockerfile-language-service-0.7.3"
-      sources."dockerfile-utils-0.9.2"
+      sources."dockerfile-ast-0.4.1"
+      sources."dockerfile-language-service-0.7.4"
+      sources."dockerfile-utils-0.9.3"
       sources."vscode-jsonrpc-8.0.0-next.4"
       sources."vscode-languageserver-8.0.0-next.5"
       (sources."vscode-languageserver-protocol-3.17.0-next.11" // {
@@ -87247,7 +87253,7 @@ in
       sources."@types/http-cache-semantics-4.0.1"
       sources."@types/keyv-3.1.3"
       sources."@types/minimatch-3.0.5"
-      sources."@types/node-16.11.12"
+      sources."@types/node-17.0.0"
       sources."@types/responselike-1.0.0"
       sources."@types/yauzl-2.9.2"
       sources."abbrev-1.1.1"
@@ -87823,42 +87829,40 @@ in
     dependencies = [
       sources."@babel/code-frame-7.16.0"
       sources."@babel/compat-data-7.16.4"
-      (sources."@babel/core-7.16.0" // {
+      (sources."@babel/core-7.16.5" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
-      sources."@babel/generator-7.16.0"
+      sources."@babel/generator-7.16.5"
       sources."@babel/helper-annotate-as-pure-7.16.0"
       (sources."@babel/helper-compilation-targets-7.16.3" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
+      sources."@babel/helper-environment-visitor-7.16.5"
       sources."@babel/helper-function-name-7.16.0"
       sources."@babel/helper-get-function-arity-7.16.0"
       sources."@babel/helper-hoist-variables-7.16.0"
-      sources."@babel/helper-member-expression-to-functions-7.16.0"
       sources."@babel/helper-module-imports-7.16.0"
-      sources."@babel/helper-module-transforms-7.16.0"
-      sources."@babel/helper-optimise-call-expression-7.16.0"
-      sources."@babel/helper-plugin-utils-7.14.5"
-      sources."@babel/helper-replace-supers-7.16.0"
+      sources."@babel/helper-module-transforms-7.16.5"
+      sources."@babel/helper-plugin-utils-7.16.5"
       sources."@babel/helper-simple-access-7.16.0"
       sources."@babel/helper-split-export-declaration-7.16.0"
       sources."@babel/helper-validator-identifier-7.15.7"
       sources."@babel/helper-validator-option-7.14.5"
-      sources."@babel/helpers-7.16.3"
+      sources."@babel/helpers-7.16.5"
       sources."@babel/highlight-7.16.0"
-      sources."@babel/parser-7.16.4"
-      sources."@babel/plugin-proposal-object-rest-spread-7.16.0"
-      sources."@babel/plugin-syntax-jsx-7.16.0"
+      sources."@babel/parser-7.16.6"
+      sources."@babel/plugin-proposal-object-rest-spread-7.16.5"
+      sources."@babel/plugin-syntax-jsx-7.16.5"
       sources."@babel/plugin-syntax-object-rest-spread-7.8.3"
-      sources."@babel/plugin-transform-destructuring-7.16.0"
-      sources."@babel/plugin-transform-parameters-7.16.3"
-      sources."@babel/plugin-transform-react-jsx-7.16.0"
+      sources."@babel/plugin-transform-destructuring-7.16.5"
+      sources."@babel/plugin-transform-parameters-7.16.5"
+      sources."@babel/plugin-transform-react-jsx-7.16.5"
       sources."@babel/template-7.16.0"
-      sources."@babel/traverse-7.16.3"
+      sources."@babel/traverse-7.16.5"
       sources."@babel/types-7.16.0"
       sources."@types/minimist-1.2.2"
       sources."@types/normalize-package-data-2.4.1"
@@ -87878,13 +87882,13 @@ in
       sources."auto-bind-4.0.0"
       sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
-      sources."browserslist-4.18.1"
+      sources."browserslist-4.19.1"
       sources."caller-callsite-2.0.0"
       sources."caller-path-2.0.0"
       sources."callsites-2.0.0"
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
-      sources."caniuse-lite-1.0.30001286"
+      sources."caniuse-lite-1.0.30001287"
       sources."chalk-2.4.2"
       sources."ci-info-2.0.0"
       sources."cli-boxes-2.2.1"
@@ -87913,7 +87917,7 @@ in
         ];
       })
       sources."dot-prop-5.3.0"
-      sources."electron-to-chromium-1.4.16"
+      sources."electron-to-chromium-1.4.21"
       sources."emoji-regex-8.0.0"
       sources."emojilib-2.4.0"
       sources."end-of-stream-1.4.4"
@@ -88039,7 +88043,7 @@ in
       sources."punycode-2.1.1"
       sources."quick-lru-4.0.1"
       sources."react-16.14.0"
-      sources."react-devtools-core-4.21.0"
+      sources."react-devtools-core-4.22.1"
       sources."react-is-16.13.1"
       sources."react-reconciler-0.26.2"
       (sources."read-pkg-5.2.0" // {
@@ -88157,7 +88161,7 @@ in
       sources."@fluentui/date-time-utilities-7.9.1"
       sources."@fluentui/dom-utilities-1.1.2"
       sources."@fluentui/keyboard-key-0.2.17"
-      sources."@fluentui/react-7.180.1"
+      sources."@fluentui/react-7.180.2"
       sources."@fluentui/react-focus-7.18.1"
       sources."@fluentui/react-window-provider-1.0.2"
       sources."@fluentui/theme-1.7.4"
@@ -88172,7 +88176,7 @@ in
           sources."normalize-path-2.1.1"
         ];
       })
-      sources."@microsoft/load-themed-styles-1.10.239"
+      sources."@microsoft/load-themed-styles-1.10.240"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
@@ -89201,7 +89205,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.180.1"
+      sources."office-ui-fabric-react-7.180.2"
       sources."on-finished-2.3.0"
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
@@ -90141,10 +90145,10 @@ in
   expo-cli = nodeEnv.buildNodePackage {
     name = "expo-cli";
     packageName = "expo-cli";
-    version = "4.13.0";
+    version = "5.0.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/expo-cli/-/expo-cli-4.13.0.tgz";
-      sha512 = "C7dfk2yleC7mdOoo9KzphfYz7F+I881VLb8UVgKCqGokwEyxhceKZCImX3D4zsR7bsKJEyjjEvx1XNIp4LV+Ew==";
+      url = "https://registry.npmjs.org/expo-cli/-/expo-cli-5.0.1.tgz";
+      sha512 = "jGGiwb8QUgs7k5d8B2XXoi5hRUtt2D729FR28KkMjAAbnN6egk/G3tWxumKHelz3CO4Kov++qToTbOExkR9u7Q==";
     };
     dependencies = [
       sources."@babel/code-frame-7.10.4"
@@ -90154,32 +90158,30 @@ in
           sources."semver-5.7.1"
         ];
       })
-      sources."@babel/generator-7.16.0"
+      sources."@babel/generator-7.16.5"
+      sources."@babel/helper-environment-visitor-7.16.5"
       sources."@babel/helper-function-name-7.16.0"
       sources."@babel/helper-get-function-arity-7.16.0"
       sources."@babel/helper-hoist-variables-7.16.0"
-      sources."@babel/helper-member-expression-to-functions-7.16.0"
       sources."@babel/helper-module-imports-7.16.0"
-      sources."@babel/helper-module-transforms-7.16.0"
-      sources."@babel/helper-optimise-call-expression-7.16.0"
-      sources."@babel/helper-replace-supers-7.16.0"
+      sources."@babel/helper-module-transforms-7.16.5"
       sources."@babel/helper-simple-access-7.16.0"
       sources."@babel/helper-split-export-declaration-7.16.0"
       sources."@babel/helper-validator-identifier-7.15.7"
-      sources."@babel/helpers-7.16.3"
+      sources."@babel/helpers-7.16.5"
       (sources."@babel/highlight-7.16.0" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.16.4"
+      sources."@babel/parser-7.16.6"
       sources."@babel/runtime-7.9.0"
       (sources."@babel/template-7.16.0" // {
         dependencies = [
           sources."@babel/code-frame-7.16.0"
         ];
       })
-      (sources."@babel/traverse-7.16.3" // {
+      (sources."@babel/traverse-7.16.5" // {
         dependencies = [
           sources."@babel/code-frame-7.16.0"
         ];
@@ -90187,15 +90189,15 @@ in
       sources."@babel/types-7.16.0"
       sources."@expo/apple-utils-0.0.0-alpha.26"
       sources."@expo/bunyan-4.0.0"
-      sources."@expo/config-6.0.7"
-      (sources."@expo/config-plugins-4.0.7" // {
+      sources."@expo/config-6.0.13"
+      (sources."@expo/config-plugins-4.0.13" // {
         dependencies = [
           sources."semver-7.3.5"
         ];
       })
       sources."@expo/config-types-43.0.1"
-      sources."@expo/dev-server-0.1.94"
-      sources."@expo/dev-tools-0.13.129"
+      sources."@expo/dev-server-0.1.100"
+      sources."@expo/dev-tools-0.13.136"
       (sources."@expo/devcert-1.0.0" // {
         dependencies = [
           sources."debug-3.2.7"
@@ -90203,32 +90205,31 @@ in
           sources."sudo-prompt-8.2.5"
         ];
       })
-      (sources."@expo/image-utils-0.3.17" // {
+      (sources."@expo/image-utils-0.3.18" // {
         dependencies = [
           sources."temp-dir-1.0.0"
           sources."tempy-0.3.0"
           sources."type-fest-0.3.1"
         ];
       })
-      sources."@expo/json-file-8.2.33"
-      sources."@expo/metro-config-0.3.0"
-      sources."@expo/osascript-2.0.30"
-      (sources."@expo/package-manager-0.0.47" // {
+      sources."@expo/json-file-8.2.34"
+      sources."@expo/metro-config-0.3.6"
+      sources."@expo/osascript-2.0.31"
+      (sources."@expo/package-manager-0.0.48" // {
         dependencies = [
           sources."npm-package-arg-7.0.0"
           sources."rimraf-3.0.2"
           sources."semver-5.7.1"
         ];
       })
-      (sources."@expo/plist-0.0.15" // {
+      (sources."@expo/plist-0.0.16" // {
         dependencies = [
           sources."xmlbuilder-14.0.0"
         ];
       })
-      sources."@expo/prebuild-config-3.0.7"
-      sources."@expo/results-1.0.0"
-      sources."@expo/rudder-sdk-node-1.1.0"
-      (sources."@expo/schemer-1.3.31" // {
+      sources."@expo/prebuild-config-3.0.13"
+      sources."@expo/rudder-sdk-node-1.1.1"
+      (sources."@expo/schemer-1.3.32" // {
         dependencies = [
           sources."ajv-5.5.2"
           sources."fast-deep-equal-1.1.0"
@@ -90237,7 +90238,7 @@ in
       })
       sources."@expo/sdk-runtime-versions-1.0.0"
       sources."@expo/spawn-async-1.5.0"
-      (sources."@expo/webpack-config-0.16.7" // {
+      (sources."@expo/webpack-config-0.16.13" // {
         dependencies = [
           sources."is-wsl-2.2.0"
         ];
@@ -90307,7 +90308,7 @@ in
       sources."@types/json-schema-7.0.9"
       sources."@types/keyv-3.1.3"
       sources."@types/minimatch-3.0.5"
-      sources."@types/node-16.11.12"
+      sources."@types/node-17.0.0"
       sources."@types/q-1.5.5"
       sources."@types/responselike-1.0.0"
       sources."@types/retry-0.12.1"
@@ -90432,11 +90433,11 @@ in
           sources."define-property-1.0.0"
         ];
       })
-      sources."base32.js-0.1.0"
       sources."base64-js-1.5.1"
       sources."base64url-3.0.1"
       sources."batch-0.6.1"
       sources."bcrypt-pbkdf-1.0.2"
+      sources."better-opn-3.0.1"
       sources."big-integer-1.6.51"
       sources."big.js-5.2.2"
       sources."binary-extensions-2.2.0"
@@ -90450,6 +90451,8 @@ in
           sources."http-errors-1.7.2"
           sources."inherits-2.0.3"
           sources."ms-2.0.0"
+          sources."setprototypeof-1.1.1"
+          sources."toidentifier-1.0.0"
         ];
       })
       (sources."bonjour-3.5.0" // {
@@ -90479,7 +90482,11 @@ in
         ];
       })
       sources."browserify-zlib-0.2.0"
-      sources."browserslist-4.14.2"
+      (sources."browserslist-4.19.1" // {
+        dependencies = [
+          sources."picocolors-1.0.0"
+        ];
+      })
       sources."buffer-4.9.2"
       sources."buffer-from-1.1.2"
       sources."buffer-indexof-1.1.1"
@@ -90509,7 +90516,7 @@ in
       })
       sources."camelcase-6.2.1"
       sources."caniuse-api-3.0.0"
-      sources."caniuse-lite-1.0.30001286"
+      sources."caniuse-lite-1.0.30001287"
       sources."caseless-0.12.0"
       (sources."chalk-4.1.2" // {
         dependencies = [
@@ -90666,7 +90673,7 @@ in
           sources."semver-6.3.0"
         ];
       })
-      (sources."css-select-4.1.3" // {
+      (sources."css-select-4.2.0" // {
         dependencies = [
           sources."domhandler-4.3.0"
         ];
@@ -90767,7 +90774,7 @@ in
       sources."duplexify-3.7.1"
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.4.16"
+      sources."electron-to-chromium-1.4.21"
       (sources."elliptic-6.5.4" // {
         dependencies = [
           sources."bn.js-4.12.0"
@@ -90841,7 +90848,13 @@ in
           sources."ms-2.0.0"
         ];
       })
-      (sources."expo-pwa-0.0.102" // {
+      (sources."expo-modules-autolinking-0.4.0" // {
+        dependencies = [
+          sources."commander-7.2.0"
+          sources."fs-extra-9.1.0"
+        ];
+      })
+      (sources."expo-pwa-0.0.108" // {
         dependencies = [
           sources."commander-2.20.0"
         ];
@@ -90928,13 +90941,17 @@ in
           sources."to-regex-range-2.1.1"
         ];
       })
-      sources."form-data-2.5.1"
+      sources."form-data-2.3.3"
       sources."forwarded-0.2.0"
       sources."fragment-cache-0.2.1"
       sources."freeport-async-2.0.0"
       sources."fresh-0.5.2"
       sources."from2-2.3.0"
-      sources."fs-extra-9.0.0"
+      (sources."fs-extra-9.0.0" // {
+        dependencies = [
+          sources."universalify-1.0.0"
+        ];
+      })
       (sources."fs-minipass-2.1.0" // {
         dependencies = [
           sources."minipass-3.1.6"
@@ -90966,7 +90983,7 @@ in
       sources."global-modules-2.0.0"
       sources."global-prefix-3.0.0"
       sources."globals-11.12.0"
-      sources."globby-11.0.1"
+      sources."globby-11.0.4"
       sources."got-11.8.3"
       sources."graceful-fs-4.2.8"
       sources."graphql-0.13.2"
@@ -91031,7 +91048,7 @@ in
       sources."htmlparser2-4.1.0"
       sources."http-cache-semantics-4.1.0"
       sources."http-deceiver-1.2.7"
-      sources."http-errors-1.7.3"
+      sources."http-errors-1.8.1"
       (sources."http-proxy-1.18.1" // {
         dependencies = [
           sources."eventemitter3-4.0.7"
@@ -91191,11 +91208,7 @@ in
       sources."json-stringify-safe-5.0.1"
       sources."json3-3.3.3"
       sources."json5-1.0.1"
-      (sources."jsonfile-6.1.0" // {
-        dependencies = [
-          sources."universalify-2.0.0"
-        ];
-      })
+      sources."jsonfile-6.1.0"
       sources."jsonify-0.0.0"
       sources."jsonparse-1.3.1"
       sources."jsprim-1.4.2"
@@ -91209,7 +91222,7 @@ in
       sources."leven-3.1.0"
       sources."lines-and-columns-1.2.4"
       sources."loader-runner-2.4.0"
-      (sources."loader-utils-2.0.0" // {
+      (sources."loader-utils-2.0.2" // {
         dependencies = [
           sources."json5-2.2.0"
         ];
@@ -91247,7 +91260,6 @@ in
       sources."map-cache-0.2.2"
       sources."map-visit-1.0.0"
       sources."md5-2.3.0"
-      sources."md5-file-5.0.0"
       sources."md5.js-1.3.5"
       sources."md5hex-1.0.0"
       sources."mdn-data-2.0.4"
@@ -91369,7 +91381,7 @@ in
           sources."punycode-1.4.1"
         ];
       })
-      sources."node-releases-1.1.77"
+      sources."node-releases-2.0.1"
       sources."nopt-5.0.0"
       sources."normalize-path-3.0.0"
       sources."normalize-url-6.1.0"
@@ -91739,11 +91751,14 @@ in
           sources."bytes-3.1.0"
           sources."http-errors-1.7.2"
           sources."inherits-2.0.3"
+          sources."setprototypeof-1.1.1"
+          sources."toidentifier-1.0.0"
         ];
       })
       sources."rc-1.2.8"
       (sources."react-dev-utils-11.0.4" // {
         dependencies = [
+          sources."browserslist-4.14.2"
           (sources."chalk-2.4.2" // {
             dependencies = [
               sources."escape-string-regexp-1.0.5"
@@ -91752,8 +91767,12 @@ 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."json5-2.2.0"
+          sources."loader-utils-2.0.0"
           sources."locate-path-5.0.0"
+          sources."node-releases-1.1.77"
           sources."open-7.4.2"
           sources."p-limit-2.3.0"
           sources."p-locate-4.1.0"
@@ -91766,7 +91785,7 @@ in
           sources."which-2.0.2"
         ];
       })
-      sources."react-error-overlay-6.0.9"
+      sources."react-error-overlay-6.0.10"
       sources."react-is-17.0.2"
       sources."read-chunk-3.2.0"
       sources."read-last-lines-1.6.0"
@@ -91794,7 +91813,6 @@ in
       sources."repeat-string-1.6.1"
       (sources."request-2.88.2" // {
         dependencies = [
-          sources."form-data-2.3.3"
           sources."qs-6.5.2"
           sources."uuid-3.4.0"
         ];
@@ -91842,7 +91860,7 @@ in
       sources."select-hose-2.0.0"
       sources."selfsigned-1.10.11"
       sources."semver-7.3.2"
-      (sources."send-0.17.1" // {
+      (sources."send-0.17.2" // {
         dependencies = [
           (sources."debug-2.6.9" // {
             dependencies = [
@@ -91850,7 +91868,7 @@ in
             ];
           })
           sources."mime-1.6.0"
-          sources."ms-2.1.1"
+          sources."ms-2.1.3"
         ];
       })
       sources."serialize-error-6.0.0"
@@ -91864,7 +91882,7 @@ in
           sources."setprototypeof-1.1.0"
         ];
       })
-      sources."serve-static-1.14.1"
+      sources."serve-static-1.14.2"
       sources."set-blocking-2.0.0"
       (sources."set-value-2.0.1" // {
         dependencies = [
@@ -91872,7 +91890,7 @@ in
         ];
       })
       sources."setimmediate-1.0.5"
-      sources."setprototypeof-1.1.1"
+      sources."setprototypeof-1.2.0"
       sources."sha.js-2.4.11"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
@@ -91891,7 +91909,7 @@ in
       })
       sources."sisteransi-1.0.5"
       sources."slash-3.0.0"
-      sources."slugify-1.6.3"
+      sources."slugify-1.6.4"
       sources."smart-buffer-4.2.0"
       (sources."snapdragon-0.8.2" // {
         dependencies = [
@@ -92099,7 +92117,7 @@ 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."toidentifier-1.0.1"
       sources."tough-cookie-2.5.0"
       sources."tr46-0.0.3"
       sources."traverse-0.6.6"
@@ -92123,7 +92141,7 @@ in
       sources."unique-filename-1.1.1"
       sources."unique-slug-2.0.2"
       sources."unique-string-1.0.0"
-      sources."universalify-1.0.0"
+      sources."universalify-2.0.0"
       sources."unpipe-1.0.0"
       sources."unquote-1.1.1"
       (sources."unset-value-1.0.0" // {
@@ -92242,12 +92260,14 @@ in
           sources."fsevents-1.2.13"
           sources."glob-parent-3.1.0"
           sources."globby-6.1.0"
+          sources."http-errors-1.7.3"
           sources."is-absolute-url-3.0.3"
           sources."is-binary-path-1.0.1"
           sources."is-glob-3.1.0"
           sources."is-number-3.0.0"
           sources."kind-of-3.2.2"
           sources."micromatch-3.1.10"
+          sources."mime-1.6.0"
           sources."ms-2.0.0"
           sources."normalize-path-2.1.1"
           sources."p-map-2.1.0"
@@ -92257,9 +92277,22 @@ in
           sources."rimraf-2.7.1"
           sources."schema-utils-1.0.0"
           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."setprototypeof-1.1.1"
           sources."strip-ansi-3.0.1"
           sources."supports-color-6.1.0"
           sources."to-regex-range-2.1.1"
+          sources."toidentifier-1.0.0"
           sources."ws-6.2.2"
         ];
       })
@@ -92306,7 +92339,7 @@ in
           sources."uuid-7.0.3"
         ];
       })
-      (sources."xdl-59.2.13" // {
+      (sources."xdl-59.2.20" // {
         dependencies = [
           sources."bplist-parser-0.3.1"
           sources."chownr-1.1.4"
@@ -92353,7 +92386,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "The command-line tool for creating and publishing Expo apps";
-      homepage = "https://github.com/expo/expo-cli/tree/master/packages/expo-cli#readme";
+      homepage = "https://github.com/expo/expo-cli/tree/main/packages/expo-cli#readme";
       license = "MIT";
     };
     production = true;
@@ -92371,37 +92404,35 @@ in
     dependencies = [
       sources."@babel/code-frame-7.16.0"
       sources."@babel/compat-data-7.16.4"
-      sources."@babel/core-7.16.0"
-      sources."@babel/generator-7.16.0"
+      sources."@babel/core-7.16.5"
+      sources."@babel/generator-7.16.5"
       sources."@babel/helper-annotate-as-pure-7.16.0"
       sources."@babel/helper-compilation-targets-7.16.3"
+      sources."@babel/helper-environment-visitor-7.16.5"
       sources."@babel/helper-function-name-7.16.0"
       sources."@babel/helper-get-function-arity-7.16.0"
       sources."@babel/helper-hoist-variables-7.16.0"
-      sources."@babel/helper-member-expression-to-functions-7.16.0"
       sources."@babel/helper-module-imports-7.16.0"
-      sources."@babel/helper-module-transforms-7.16.0"
-      sources."@babel/helper-optimise-call-expression-7.16.0"
-      sources."@babel/helper-plugin-utils-7.14.5"
-      sources."@babel/helper-replace-supers-7.16.0"
+      sources."@babel/helper-module-transforms-7.16.5"
+      sources."@babel/helper-plugin-utils-7.16.5"
       sources."@babel/helper-simple-access-7.16.0"
       sources."@babel/helper-split-export-declaration-7.16.0"
       sources."@babel/helper-validator-identifier-7.15.7"
       sources."@babel/helper-validator-option-7.14.5"
-      sources."@babel/helpers-7.16.3"
+      sources."@babel/helpers-7.16.5"
       sources."@babel/highlight-7.16.0"
-      sources."@babel/parser-7.16.4"
-      sources."@babel/plugin-proposal-object-rest-spread-7.16.0"
-      sources."@babel/plugin-syntax-jsx-7.16.0"
+      sources."@babel/parser-7.16.6"
+      sources."@babel/plugin-proposal-object-rest-spread-7.16.5"
+      sources."@babel/plugin-syntax-jsx-7.16.5"
       sources."@babel/plugin-syntax-object-rest-spread-7.8.3"
-      sources."@babel/plugin-transform-destructuring-7.16.0"
-      sources."@babel/plugin-transform-parameters-7.16.3"
-      sources."@babel/plugin-transform-react-jsx-7.16.0"
+      sources."@babel/plugin-transform-destructuring-7.16.5"
+      sources."@babel/plugin-transform-parameters-7.16.5"
+      sources."@babel/plugin-transform-react-jsx-7.16.5"
       sources."@babel/template-7.16.0"
-      sources."@babel/traverse-7.16.3"
+      sources."@babel/traverse-7.16.5"
       sources."@babel/types-7.16.0"
       sources."@types/minimist-1.2.2"
-      sources."@types/node-16.11.12"
+      sources."@types/node-17.0.0"
       sources."@types/normalize-package-data-2.4.1"
       sources."@types/yauzl-2.9.2"
       sources."@types/yoga-layout-1.9.2"
@@ -92420,7 +92451,7 @@ in
       sources."base64-js-1.5.1"
       sources."bl-4.1.0"
       sources."brace-expansion-1.1.11"
-      sources."browserslist-4.18.1"
+      sources."browserslist-4.19.1"
       sources."buffer-5.7.1"
       sources."buffer-crc32-0.2.13"
       sources."caller-callsite-2.0.0"
@@ -92428,7 +92459,7 @@ in
       sources."callsites-2.0.0"
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
-      sources."caniuse-lite-1.0.30001286"
+      sources."caniuse-lite-1.0.30001287"
       sources."chalk-2.4.2"
       sources."chownr-1.1.4"
       sources."ci-info-2.0.0"
@@ -92452,7 +92483,7 @@ in
       })
       sources."delay-5.0.0"
       sources."devtools-protocol-0.0.869402"
-      sources."electron-to-chromium-1.4.16"
+      sources."electron-to-chromium-1.4.21"
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
       sources."error-ex-1.3.2"
@@ -92547,7 +92578,7 @@ in
       sources."puppeteer-9.1.1"
       sources."quick-lru-4.0.1"
       sources."react-16.14.0"
-      sources."react-devtools-core-4.21.0"
+      sources."react-devtools-core-4.22.1"
       sources."react-is-16.13.1"
       sources."react-reconciler-0.26.2"
       (sources."read-pkg-5.2.0" // {
@@ -92662,14 +92693,14 @@ in
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      (sources."@oclif/command-1.8.13" // {
+      sources."@oclif/command-1.8.15"
+      sources."@oclif/config-1.18.2"
+      sources."@oclif/errors-1.3.5"
+      (sources."@oclif/help-1.0.1" // {
         dependencies = [
-          sources."@oclif/plugin-help-3.2.14"
           sources."wrap-ansi-6.2.0"
         ];
       })
-      sources."@oclif/config-1.18.2"
-      sources."@oclif/errors-1.3.5"
       sources."@oclif/linewrap-1.0.0"
       sources."@oclif/parser-3.8.6"
       (sources."@oclif/plugin-autocomplete-0.1.5" // {
@@ -93033,10 +93064,10 @@ in
   firebase-tools = nodeEnv.buildNodePackage {
     name = "firebase-tools";
     packageName = "firebase-tools";
-    version = "9.23.1";
+    version = "9.23.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/firebase-tools/-/firebase-tools-9.23.1.tgz";
-      sha512 = "voBcfApvEyyuFGFg0ypmtSldFLtifDquxix1htLHll6PFvmSzBOCz+1U4manzOnoUMBcy8cVNhNNgDgcErzgHQ==";
+      url = "https://registry.npmjs.org/firebase-tools/-/firebase-tools-9.23.3.tgz";
+      sha512 = "J1S/T96rL3vKObDtTuBkop9JtW3vYnfwyU83NopiuOy9oPBRxFkitgzk034qGrpGyZvDA6Do6ZHI50taB3hrEg==";
     };
     dependencies = [
       (sources."@apidevtools/json-schema-ref-parser-9.0.9" // {
@@ -93052,10 +93083,10 @@ in
       sources."@google-cloud/promisify-2.0.4"
       (sources."@google-cloud/pubsub-2.18.4" // {
         dependencies = [
-          sources."google-auth-library-7.10.3"
+          sources."google-auth-library-7.11.0"
         ];
       })
-      sources."@grpc/grpc-js-1.4.4"
+      sources."@grpc/grpc-js-1.4.5"
       sources."@grpc/proto-loader-0.6.7"
       sources."@jsdevtools/ono-7.1.3"
       (sources."@npmcli/fs-1.1.0" // {
@@ -93089,7 +93120,7 @@ in
       sources."@types/json-schema-7.0.9"
       sources."@types/long-4.0.1"
       sources."@types/minimatch-3.0.5"
-      sources."@types/node-16.11.12"
+      sources."@types/node-17.0.0"
       sources."JSONStream-1.3.5"
       sources."abbrev-1.1.1"
       sources."abort-controller-3.0.0"
@@ -93135,7 +93166,7 @@ in
       sources."basic-auth-connect-1.0.0"
       sources."bcrypt-pbkdf-1.0.2"
       sources."big-integer-1.6.51"
-      sources."bignumber.js-9.0.1"
+      sources."bignumber.js-9.0.2"
       sources."binary-0.3.0"
       sources."binary-extensions-2.2.0"
       sources."bl-4.1.0"
@@ -93426,7 +93457,7 @@ in
       sources."google-auth-library-6.1.6"
       (sources."google-gax-2.28.1" // {
         dependencies = [
-          sources."google-auth-library-7.10.3"
+          sources."google-auth-library-7.11.0"
         ];
       })
       sources."google-p12-pem-3.1.2"
@@ -93918,13 +93949,7 @@ in
       sources."wide-align-1.1.5"
       sources."widest-line-3.1.0"
       sources."winston-3.3.3"
-      (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."winston-transport-4.4.1"
       sources."word-wrap-1.2.3"
       sources."wrap-ansi-7.0.0"
       sources."wrappy-1.0.2"
@@ -94222,7 +94247,7 @@ in
       sources."@types/atob-2.1.2"
       sources."@types/bn.js-5.1.0"
       sources."@types/inquirer-6.5.0"
-      sources."@types/node-16.11.12"
+      sources."@types/node-17.0.0"
       sources."@types/pbkdf2-3.1.0"
       sources."@types/secp256k1-4.0.3"
       sources."@types/through-0.0.30"
@@ -94648,7 +94673,7 @@ in
       sources."is-typed-array-1.1.8"
       sources."is-weakmap-2.0.1"
       sources."is-weakref-1.0.2"
-      sources."is-weakset-2.0.1"
+      sources."is-weakset-2.0.2"
       sources."is-windows-1.0.2"
       sources."isarray-2.0.5"
       sources."isobject-3.0.1"
@@ -94926,10 +94951,10 @@ in
   gatsby-cli = nodeEnv.buildNodePackage {
     name = "gatsby-cli";
     packageName = "gatsby-cli";
-    version = "4.3.0";
+    version = "4.4.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-4.3.0.tgz";
-      sha512 = "yp+w7UMLTlnYYS+gHsFQI811qt9q4ecwhNTLS5PCoibJB74oAFDSnKK/4wiZgRScGc28us/NHbwKlfRNDoTYRA==";
+      url = "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-4.4.0.tgz";
+      sha512 = "Q3WcITyJeGn6kg5xbEcwkLApwEsvesdJZSk9SkblWu/ykMKE1T1q3BFrPKRdyMZMCq08IVR/jdjpAn8pjn/3WA==";
     };
     dependencies = [
       (sources."@ardatan/aggregate-error-0.0.6" // {
@@ -94939,13 +94964,13 @@ in
       })
       sources."@babel/code-frame-7.16.0"
       sources."@babel/compat-data-7.16.4"
-      (sources."@babel/core-7.16.0" // {
+      (sources."@babel/core-7.16.5" // {
         dependencies = [
           sources."semver-6.3.0"
           sources."source-map-0.5.7"
         ];
       })
-      (sources."@babel/generator-7.16.0" // {
+      (sources."@babel/generator-7.16.5" // {
         dependencies = [
           sources."source-map-0.5.7"
         ];
@@ -94956,38 +94981,36 @@ in
           sources."semver-6.3.0"
         ];
       })
+      sources."@babel/helper-environment-visitor-7.16.5"
       sources."@babel/helper-function-name-7.16.0"
       sources."@babel/helper-get-function-arity-7.16.0"
       sources."@babel/helper-hoist-variables-7.16.0"
-      sources."@babel/helper-member-expression-to-functions-7.16.0"
       sources."@babel/helper-module-imports-7.16.0"
-      sources."@babel/helper-module-transforms-7.16.0"
-      sources."@babel/helper-optimise-call-expression-7.16.0"
-      sources."@babel/helper-plugin-utils-7.14.5"
-      sources."@babel/helper-replace-supers-7.16.0"
+      sources."@babel/helper-module-transforms-7.16.5"
+      sources."@babel/helper-plugin-utils-7.16.5"
       sources."@babel/helper-simple-access-7.16.0"
       sources."@babel/helper-skip-transparent-expression-wrappers-7.16.0"
       sources."@babel/helper-split-export-declaration-7.16.0"
       sources."@babel/helper-validator-identifier-7.15.7"
       sources."@babel/helper-validator-option-7.14.5"
-      sources."@babel/helpers-7.16.3"
+      sources."@babel/helpers-7.16.5"
       (sources."@babel/highlight-7.16.0" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.16.4"
+      sources."@babel/parser-7.16.6"
       sources."@babel/plugin-proposal-object-rest-spread-7.10.4"
-      sources."@babel/plugin-proposal-optional-chaining-7.16.0"
-      sources."@babel/plugin-syntax-jsx-7.16.0"
+      sources."@babel/plugin-proposal-optional-chaining-7.16.5"
+      sources."@babel/plugin-syntax-jsx-7.16.5"
       sources."@babel/plugin-syntax-object-rest-spread-7.8.3"
       sources."@babel/plugin-syntax-optional-chaining-7.8.3"
-      sources."@babel/plugin-transform-parameters-7.16.3"
-      sources."@babel/plugin-transform-react-jsx-7.16.0"
-      sources."@babel/runtime-7.16.3"
-      sources."@babel/standalone-7.16.4"
+      sources."@babel/plugin-transform-parameters-7.16.5"
+      sources."@babel/plugin-transform-react-jsx-7.16.5"
+      sources."@babel/runtime-7.16.5"
+      sources."@babel/standalone-7.16.6"
       sources."@babel/template-7.16.0"
-      sources."@babel/traverse-7.16.3"
+      sources."@babel/traverse-7.16.5"
       sources."@babel/types-7.16.0"
       sources."@graphql-tools/schema-7.1.5"
       sources."@graphql-tools/utils-7.10.0"
@@ -95027,7 +95050,7 @@ in
       sources."@types/istanbul-reports-1.1.2"
       sources."@types/json-patch-0.0.30"
       sources."@types/keyv-3.1.3"
-      sources."@types/node-16.11.12"
+      sources."@types/node-17.0.0"
       sources."@types/node-fetch-2.5.12"
       sources."@types/responselike-1.0.0"
       sources."@types/unist-2.0.6"
@@ -95067,7 +95090,7 @@ in
       sources."boxen-5.1.2"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
-      sources."browserslist-4.18.1"
+      sources."browserslist-4.19.1"
       sources."bytes-3.1.0"
       sources."cacheable-lookup-5.0.4"
       (sources."cacheable-request-7.0.2" // {
@@ -95078,7 +95101,7 @@ in
       sources."call-bind-1.0.2"
       sources."camel-case-4.1.2"
       sources."camelcase-6.2.1"
-      sources."caniuse-lite-1.0.30001286"
+      sources."caniuse-lite-1.0.30001287"
       sources."ccount-1.1.0"
       (sources."chalk-4.1.2" // {
         dependencies = [
@@ -95127,7 +95150,7 @@ in
         ];
       })
       sources."content-type-1.0.4"
-      (sources."contentful-management-7.45.7" // {
+      (sources."contentful-management-7.47.0" // {
         dependencies = [
           sources."type-fest-2.8.0"
         ];
@@ -95142,14 +95165,14 @@ in
       sources."cookie-0.4.0"
       sources."cookie-signature-1.0.6"
       sources."cors-2.8.5"
-      sources."create-gatsby-2.3.0"
+      sources."create-gatsby-2.4.0"
       (sources."cross-spawn-6.0.5" // {
         dependencies = [
           sources."semver-5.7.1"
         ];
       })
       sources."crypto-random-string-2.0.0"
-      sources."css-select-4.1.3"
+      sources."css-select-4.2.0"
       sources."css-what-5.1.0"
       sources."debug-4.3.3"
       sources."decamelize-1.2.0"
@@ -95181,7 +95204,7 @@ in
       sources."dotenv-8.6.0"
       sources."duplexer3-0.1.4"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.4.16"
+      sources."electron-to-chromium-1.4.21"
       sources."emoji-regex-8.0.0"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
@@ -95252,13 +95275,13 @@ in
       sources."fs.realpath-1.0.0"
       sources."fsevents-2.3.2"
       sources."function-bind-1.1.1"
-      sources."gatsby-core-utils-3.3.0"
-      (sources."gatsby-recipes-1.3.0" // {
+      sources."gatsby-core-utils-3.4.0"
+      (sources."gatsby-recipes-1.4.0" // {
         dependencies = [
           sources."strip-ansi-6.0.1"
         ];
       })
-      (sources."gatsby-telemetry-3.3.0" // {
+      (sources."gatsby-telemetry-3.4.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."boxen-4.2.0"
@@ -95471,7 +95494,7 @@ in
       sources."path-key-2.0.1"
       sources."path-parse-1.0.7"
       sources."path-to-regexp-0.1.7"
-      sources."peek-readable-4.0.1"
+      sources."peek-readable-4.0.2"
       sources."picocolors-1.0.0"
       sources."picomatch-2.3.0"
       sources."pkg-dir-4.2.0"
@@ -96163,7 +96186,7 @@ in
       sources."@types/cacheable-request-6.0.2"
       sources."@types/http-cache-semantics-4.0.1"
       sources."@types/keyv-3.1.3"
-      sources."@types/node-16.11.12"
+      sources."@types/node-17.0.0"
       sources."@types/responselike-1.0.0"
       sources."ansi-regex-6.0.1"
       sources."ansi-styles-4.3.0"
@@ -96856,9 +96879,9 @@ in
           sources."tslib-2.1.0"
         ];
       })
-      (sources."@graphql-tools/import-6.6.2" // {
+      (sources."@graphql-tools/import-6.6.3" // {
         dependencies = [
-          sources."@graphql-tools/utils-8.5.4"
+          sources."@graphql-tools/utils-8.5.5"
           sources."tslib-2.3.1"
         ];
       })
@@ -96886,7 +96909,7 @@ in
       (sources."@graphql-tools/schema-8.3.1" // {
         dependencies = [
           sources."@graphql-tools/merge-8.2.1"
-          sources."@graphql-tools/utils-8.5.4"
+          sources."@graphql-tools/utils-8.5.5"
           sources."tslib-2.3.1"
         ];
       })
@@ -96917,7 +96940,7 @@ in
       sources."@nodelib/fs.walk-1.2.8"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
-      sources."@types/node-16.11.12"
+      sources."@types/node-17.0.0"
       sources."@types/parse-json-4.0.0"
       sources."@types/websocket-1.0.2"
       sources."abort-controller-3.0.0"
@@ -97131,7 +97154,7 @@ in
       sources."is-unicode-supported-0.1.0"
       sources."is-weakmap-2.0.1"
       sources."is-weakref-1.0.2"
-      sources."is-weakset-2.0.1"
+      sources."is-weakset-2.0.2"
       sources."is-wsl-2.2.0"
       sources."isarray-2.0.5"
       sources."isexe-2.0.0"
@@ -97409,12 +97432,12 @@ in
       sources."@graphql-tools/batch-execute-8.3.1"
       sources."@graphql-tools/delegate-8.4.3"
       sources."@graphql-tools/graphql-file-loader-7.3.3"
-      sources."@graphql-tools/import-6.6.2"
+      sources."@graphql-tools/import-6.6.3"
       sources."@graphql-tools/json-file-loader-7.3.3"
-      sources."@graphql-tools/load-7.4.1"
+      sources."@graphql-tools/load-7.5.0"
       sources."@graphql-tools/merge-8.2.1"
       sources."@graphql-tools/schema-8.3.1"
-      (sources."@graphql-tools/url-loader-7.6.0" // {
+      (sources."@graphql-tools/url-loader-7.7.0" // {
         dependencies = [
           (sources."subscriptions-transport-ws-0.11.0" // {
             dependencies = [
@@ -97424,7 +97447,7 @@ in
           sources."ws-8.3.0"
         ];
       })
-      sources."@graphql-tools/utils-8.5.4"
+      sources."@graphql-tools/utils-8.5.5"
       sources."@graphql-tools/wrap-8.3.2"
       sources."@iarna/toml-2.2.5"
       sources."@n1ru4l/graphql-live-query-0.9.0"
@@ -97457,7 +97480,7 @@ in
       })
       sources."@oclif/screen-1.0.4"
       sources."@types/json-schema-7.0.9"
-      sources."@types/node-16.11.12"
+      sources."@types/node-17.0.0"
       sources."@types/parse-json-4.0.0"
       sources."@types/websocket-1.0.4"
       sources."@types/ws-8.2.2"
@@ -97727,7 +97750,7 @@ in
       sources."ts-node-9.1.1"
       sources."tslib-2.3.1"
       sources."type-is-1.6.18"
-      sources."undici-4.11.3"
+      sources."undici-4.12.0"
       sources."uniq-1.0.1"
       sources."universalify-0.1.2"
       sources."unixify-1.0.0"
@@ -98953,7 +98976,7 @@ in
       sources."param-case-2.1.1"
       sources."relateurl-0.2.7"
       sources."source-map-0.6.1"
-      sources."uglify-js-3.14.4"
+      sources."uglify-js-3.14.5"
       sources."upper-case-1.1.3"
     ];
     buildInputs = globalBuildInputs;
@@ -99823,7 +99846,7 @@ in
       sources."is-wsl-2.2.0"
       sources."isexe-2.0.0"
       sources."jquery-3.6.0"
-      sources."jquery.terminal-2.29.4"
+      sources."jquery.terminal-2.30.1"
       sources."jsonfile-2.4.0"
       sources."keyboardevent-key-polyfill-1.1.0"
       sources."line-reader-0.4.0"
@@ -100032,7 +100055,7 @@ in
       sources."tough-cookie-2.5.0"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
-      sources."typescript-4.5.3"
+      sources."typescript-4.5.4"
       sources."universalify-2.0.0"
       sources."uri-js-4.4.1"
       sources."uuid-3.4.0"
@@ -100042,7 +100065,7 @@ in
           sources."vscode-languageserver-types-3.16.0"
         ];
       })
-      (sources."vscode-html-languageservice-4.2.0" // {
+      (sources."vscode-html-languageservice-4.2.1" // {
         dependencies = [
           sources."vscode-languageserver-types-3.16.0"
         ];
@@ -100397,9 +100420,9 @@ in
     dependencies = [
       sources."@iarna/toml-2.2.5"
       sources."@msgpack/msgpack-2.7.1"
-      sources."@ot-builder/bin-composite-types-1.3.1"
-      sources."@ot-builder/bin-util-1.3.1"
-      (sources."@ot-builder/cli-help-shower-1.3.1" // {
+      sources."@ot-builder/bin-composite-types-1.3.2"
+      sources."@ot-builder/bin-util-1.3.2"
+      (sources."@ot-builder/cli-help-shower-1.3.2" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."chalk-4.1.2"
@@ -100409,39 +100432,39 @@ in
           sources."supports-color-7.2.0"
         ];
       })
-      sources."@ot-builder/cli-proc-1.3.1"
-      sources."@ot-builder/cli-shared-1.3.1"
-      sources."@ot-builder/common-impl-1.3.1"
-      sources."@ot-builder/errors-1.3.1"
-      sources."@ot-builder/io-bin-cff-1.3.1"
-      sources."@ot-builder/io-bin-encoding-1.3.1"
-      sources."@ot-builder/io-bin-ext-private-1.3.1"
-      sources."@ot-builder/io-bin-font-1.3.1"
-      sources."@ot-builder/io-bin-glyph-store-1.3.1"
-      sources."@ot-builder/io-bin-layout-1.3.1"
-      sources."@ot-builder/io-bin-metadata-1.3.1"
-      sources."@ot-builder/io-bin-metric-1.3.1"
-      sources."@ot-builder/io-bin-name-1.3.1"
-      sources."@ot-builder/io-bin-sfnt-1.3.1"
-      sources."@ot-builder/io-bin-ttf-1.3.1"
-      sources."@ot-builder/io-bin-vtt-private-1.3.1"
-      sources."@ot-builder/ot-1.3.1"
-      sources."@ot-builder/ot-encoding-1.3.1"
-      sources."@ot-builder/ot-ext-private-1.3.1"
-      sources."@ot-builder/ot-glyphs-1.3.1"
-      sources."@ot-builder/ot-layout-1.3.1"
-      sources."@ot-builder/ot-metadata-1.3.1"
-      sources."@ot-builder/ot-name-1.3.1"
-      sources."@ot-builder/ot-sfnt-1.3.1"
-      sources."@ot-builder/ot-standard-glyph-namer-1.3.1"
-      sources."@ot-builder/ot-vtt-private-1.3.1"
-      sources."@ot-builder/prelude-1.3.1"
-      sources."@ot-builder/primitive-1.3.1"
-      sources."@ot-builder/rectify-1.3.1"
-      sources."@ot-builder/stat-glyphs-1.3.1"
-      sources."@ot-builder/trace-1.3.1"
-      sources."@ot-builder/var-store-1.3.1"
-      sources."@ot-builder/variance-1.3.1"
+      sources."@ot-builder/cli-proc-1.3.2"
+      sources."@ot-builder/cli-shared-1.3.2"
+      sources."@ot-builder/common-impl-1.3.2"
+      sources."@ot-builder/errors-1.3.2"
+      sources."@ot-builder/io-bin-cff-1.3.2"
+      sources."@ot-builder/io-bin-encoding-1.3.2"
+      sources."@ot-builder/io-bin-ext-private-1.3.2"
+      sources."@ot-builder/io-bin-font-1.3.2"
+      sources."@ot-builder/io-bin-glyph-store-1.3.2"
+      sources."@ot-builder/io-bin-layout-1.3.2"
+      sources."@ot-builder/io-bin-metadata-1.3.2"
+      sources."@ot-builder/io-bin-metric-1.3.2"
+      sources."@ot-builder/io-bin-name-1.3.2"
+      sources."@ot-builder/io-bin-sfnt-1.3.2"
+      sources."@ot-builder/io-bin-ttf-1.3.2"
+      sources."@ot-builder/io-bin-vtt-private-1.3.2"
+      sources."@ot-builder/ot-1.3.2"
+      sources."@ot-builder/ot-encoding-1.3.2"
+      sources."@ot-builder/ot-ext-private-1.3.2"
+      sources."@ot-builder/ot-glyphs-1.3.2"
+      sources."@ot-builder/ot-layout-1.3.2"
+      sources."@ot-builder/ot-metadata-1.3.2"
+      sources."@ot-builder/ot-name-1.3.2"
+      sources."@ot-builder/ot-sfnt-1.3.2"
+      sources."@ot-builder/ot-standard-glyph-namer-1.3.2"
+      sources."@ot-builder/ot-vtt-private-1.3.2"
+      sources."@ot-builder/prelude-1.3.2"
+      sources."@ot-builder/primitive-1.3.2"
+      sources."@ot-builder/rectify-1.3.2"
+      sources."@ot-builder/stat-glyphs-1.3.2"
+      sources."@ot-builder/trace-1.3.2"
+      sources."@ot-builder/var-store-1.3.2"
+      sources."@ot-builder/variance-1.3.2"
       sources."@unicode/unicode-13.0.0-1.2.1"
       sources."@xmldom/xmldom-0.7.5"
       sources."aglfn-1.0.2"
@@ -100523,8 +100546,8 @@ in
       sources."once-1.4.0"
       sources."onetime-5.1.2"
       sources."optionator-0.8.3"
-      sources."ot-builder-1.3.1"
-      sources."otb-ttc-bundle-1.3.1"
+      sources."ot-builder-1.3.2"
+      sources."otb-ttc-bundle-1.3.2"
       sources."passerror-1.1.1"
       sources."patel-0.35.1"
       sources."path-is-absolute-1.0.1"
@@ -100944,7 +100967,7 @@ in
       sources."domelementtype-2.2.0"
       sources."domexception-1.0.1"
       sources."domhandler-3.3.0"
-      sources."dompurify-2.3.3"
+      sources."dompurify-2.3.4"
       (sources."domutils-2.8.0" // {
         dependencies = [
           sources."domhandler-4.3.0"
@@ -101162,7 +101185,7 @@ in
       sources."md5-2.3.0"
       sources."md5-file-4.0.0"
       sources."mdurl-1.0.1"
-      sources."mermaid-8.13.5"
+      sources."mermaid-8.13.6"
       sources."mime-db-1.51.0"
       sources."mime-types-2.1.34"
       sources."mimic-response-2.1.0"
@@ -101368,7 +101391,7 @@ in
         ];
       })
       sources."strip-json-comments-2.0.1"
-      sources."stylis-4.0.12"
+      sources."stylis-4.0.13"
       sources."supports-color-7.2.0"
       sources."symbol-observable-1.2.0"
       sources."symbol-tree-3.2.4"
@@ -101544,7 +101567,7 @@ in
       sha512 = "sxKt7h0vzCd+3Y81Ey2qinupL6DpRSZJclS04ugHDNmRUXGzqicMJ6iwayhSA0S0DwwX30c5ozyUthr1QKF6uw==";
     };
     dependencies = [
-      sources."@babel/parser-7.16.4"
+      sources."@babel/parser-7.16.6"
       sources."argparse-1.0.10"
       sources."bluebird-3.7.2"
       sources."catharsis-0.9.0"
@@ -101565,7 +101588,7 @@ in
       sources."strip-json-comments-3.1.1"
       sources."taffydb-2.6.2"
       sources."uc.micro-1.0.6"
-      sources."underscore-1.13.1"
+      sources."underscore-1.13.2"
       sources."xmlcreate-2.0.4"
     ];
     buildInputs = globalBuildInputs;
@@ -102590,24 +102613,21 @@ in
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      (sources."@oclif/command-1.8.13" // {
+      sources."@oclif/command-1.8.15"
+      sources."@oclif/config-1.18.2"
+      sources."@oclif/errors-1.3.5"
+      (sources."@oclif/help-1.0.1" // {
         dependencies = [
-          sources."@oclif/plugin-help-3.2.14"
           sources."wrap-ansi-6.2.0"
         ];
       })
-      sources."@oclif/config-1.18.2"
-      (sources."@oclif/core-0.5.41" // {
+      sources."@oclif/linewrap-1.0.0"
+      sources."@oclif/parser-3.8.6"
+      (sources."@oclif/plugin-help-3.3.1" // {
         dependencies = [
-          sources."fs-extra-9.1.0"
-          sources."jsonfile-6.1.0"
-          sources."universalify-2.0.0"
+          sources."wrap-ansi-6.2.0"
         ];
       })
-      sources."@oclif/errors-1.3.5"
-      sources."@oclif/linewrap-1.0.0"
-      sources."@oclif/parser-3.8.6"
-      sources."@oclif/plugin-help-3.3.0"
       sources."@oclif/screen-1.0.4"
       (sources."@putdotio/api-client-8.19.0" // {
         dependencies = [
@@ -102622,7 +102642,6 @@ in
       sources."argparse-1.0.10"
       sources."array-union-2.1.0"
       sources."asynckit-0.4.0"
-      sources."at-least-node-1.0.0"
       (sources."axios-0.19.2" // {
         dependencies = [
           sources."debug-3.1.0"
@@ -102638,7 +102657,7 @@ in
       sources."clean-stack-3.0.1"
       sources."cli-cursor-3.1.0"
       sources."cli-progress-3.9.1"
-      (sources."cli-ux-5.6.6" // {
+      (sources."cli-ux-5.6.7" // {
         dependencies = [
           sources."supports-color-8.1.1"
         ];
@@ -102696,7 +102715,6 @@ in
       sources."fs-extra-8.1.0"
       sources."function-bind-1.1.1"
       sources."get-intrinsic-1.1.1"
-      sources."get-package-type-0.1.0"
       sources."glob-parent-5.1.2"
       sources."globby-11.0.4"
       sources."graceful-fs-4.2.8"
@@ -102725,9 +102743,6 @@ in
       sources."jsonfile-4.0.0"
       sources."locate-path-3.0.0"
       sources."lodash-4.17.21"
-      sources."lodash._reinterpolate-3.0.0"
-      sources."lodash.template-4.5.0"
-      sources."lodash.templatesettings-4.2.0"
       sources."lru-cache-6.0.0"
       (sources."make-dir-3.1.0" // {
         dependencies = [
@@ -102848,7 +102863,7 @@ in
       sources."@types/component-emitter-1.2.11"
       sources."@types/cookie-0.4.1"
       sources."@types/cors-2.8.12"
-      sources."@types/node-16.11.12"
+      sources."@types/node-17.0.0"
       sources."accepts-1.3.7"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-4.3.0"
@@ -103011,40 +103026,38 @@ in
       sources."@babel/cli-7.16.0"
       sources."@babel/code-frame-7.16.0"
       sources."@babel/compat-data-7.16.4"
-      (sources."@babel/core-7.16.0" // {
+      (sources."@babel/core-7.16.5" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
-      sources."@babel/generator-7.16.0"
+      sources."@babel/generator-7.16.5"
       sources."@babel/helper-annotate-as-pure-7.16.0"
       (sources."@babel/helper-compilation-targets-7.16.3" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
+      sources."@babel/helper-environment-visitor-7.16.5"
       sources."@babel/helper-function-name-7.16.0"
       sources."@babel/helper-get-function-arity-7.16.0"
       sources."@babel/helper-hoist-variables-7.16.0"
-      sources."@babel/helper-member-expression-to-functions-7.16.0"
       sources."@babel/helper-module-imports-7.16.0"
-      sources."@babel/helper-module-transforms-7.16.0"
-      sources."@babel/helper-optimise-call-expression-7.16.0"
-      sources."@babel/helper-plugin-utils-7.14.5"
-      sources."@babel/helper-replace-supers-7.16.0"
+      sources."@babel/helper-module-transforms-7.16.5"
+      sources."@babel/helper-plugin-utils-7.16.5"
       sources."@babel/helper-simple-access-7.16.0"
       sources."@babel/helper-split-export-declaration-7.16.0"
       sources."@babel/helper-validator-identifier-7.15.7"
       sources."@babel/helper-validator-option-7.14.5"
-      sources."@babel/helpers-7.16.3"
+      sources."@babel/helpers-7.16.5"
       sources."@babel/highlight-7.16.0"
-      sources."@babel/node-7.16.0"
-      sources."@babel/parser-7.16.4"
-      sources."@babel/plugin-syntax-jsx-7.16.0"
-      sources."@babel/plugin-transform-react-jsx-7.16.0"
-      sources."@babel/register-7.16.0"
+      sources."@babel/node-7.16.5"
+      sources."@babel/parser-7.16.6"
+      sources."@babel/plugin-syntax-jsx-7.16.5"
+      sources."@babel/plugin-transform-react-jsx-7.16.5"
+      sources."@babel/register-7.16.5"
       sources."@babel/template-7.16.0"
-      sources."@babel/traverse-7.16.3"
+      sources."@babel/traverse-7.16.5"
       sources."@babel/types-7.16.0"
       sources."@tootallnate/once-1.1.2"
       sources."@xmpp/base64-0.12.1"
@@ -103106,12 +103119,12 @@ in
       sources."brace-expansion-1.1.11"
       sources."browser-or-node-1.3.0"
       sources."browser-process-hrtime-1.0.0"
-      sources."browserslist-4.18.1"
+      sources."browserslist-4.19.1"
       sources."buffer-from-1.1.2"
       sources."bytes-3.1.0"
       sources."bytesish-0.4.4"
       sources."call-bind-1.0.2"
-      sources."caniuse-lite-1.0.30001286"
+      sources."caniuse-lite-1.0.30001287"
       sources."caseless-0.12.0"
       sources."chalk-2.4.2"
       sources."chardet-1.4.0"
@@ -103129,7 +103142,7 @@ in
       sources."convert-source-map-1.8.0"
       sources."cookie-0.4.0"
       sources."cookie-signature-1.0.6"
-      sources."core-js-3.19.3"
+      sources."core-js-3.20.0"
       sources."cors-2.8.5"
       sources."create-hash-1.2.0"
       sources."create-hmac-1.1.7"
@@ -103162,7 +103175,7 @@ in
       })
       sources."dotenv-8.6.0"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.4.16"
+      sources."electron-to-chromium-1.4.21"
       sources."emoji-regex-8.0.0"
       sources."encodeurl-1.0.2"
       sources."enquirer-2.3.6"
@@ -103187,7 +103200,7 @@ in
           sources."ms-2.0.0"
         ];
       })
-      sources."express-validator-6.13.0"
+      sources."express-validator-6.14.0"
       sources."fast-levenshtein-2.0.6"
       sources."filter-obj-1.1.0"
       (sources."finalhandler-1.1.2" // {
@@ -104730,7 +104743,7 @@ in
       sources."type-fest-0.4.1"
       sources."typedarray-0.0.6"
       sources."typedarray-to-buffer-3.1.5"
-      sources."uglify-js-3.14.4"
+      sources."uglify-js-3.14.5"
       sources."uid-number-0.0.6"
       sources."umask-1.1.0"
       sources."unbox-primitive-1.0.1"
@@ -104988,7 +105001,7 @@ in
         ];
       })
       sources."http-auth-3.1.3"
-      (sources."http-errors-1.7.3" // {
+      (sources."http-errors-1.8.1" // {
         dependencies = [
           sources."depd-1.1.2"
         ];
@@ -105066,10 +105079,10 @@ in
       sources."ret-0.1.15"
       sources."safe-buffer-5.1.2"
       sources."safe-regex-1.1.0"
-      (sources."send-0.17.1" // {
+      (sources."send-0.17.2" // {
         dependencies = [
           sources."depd-1.1.2"
-          sources."ms-2.1.1"
+          sources."ms-2.1.3"
         ];
       })
       (sources."serve-index-1.9.1" // {
@@ -105086,7 +105099,7 @@ in
           sources."is-extendable-0.1.1"
         ];
       })
-      sources."setprototypeof-1.1.1"
+      sources."setprototypeof-1.2.0"
       (sources."snapdragon-0.8.2" // {
         dependencies = [
           sources."define-property-0.2.5"
@@ -105149,7 +105162,7 @@ in
       })
       sources."to-regex-3.0.2"
       sources."to-regex-range-2.1.1"
-      sources."toidentifier-1.0.0"
+      sources."toidentifier-1.0.1"
       (sources."union-value-1.0.1" // {
         dependencies = [
           sources."is-extendable-0.1.1"
@@ -105727,56 +105740,57 @@ in
     dependencies = [
       sources."@babel/code-frame-7.16.0"
       sources."@babel/compat-data-7.16.4"
-      sources."@babel/core-7.16.0"
-      sources."@babel/generator-7.16.0"
+      sources."@babel/core-7.16.5"
+      sources."@babel/generator-7.16.5"
       sources."@babel/helper-annotate-as-pure-7.16.0"
-      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.16.0"
+      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.16.5"
       sources."@babel/helper-compilation-targets-7.16.3"
-      sources."@babel/helper-create-class-features-plugin-7.16.0"
+      sources."@babel/helper-create-class-features-plugin-7.16.5"
       sources."@babel/helper-create-regexp-features-plugin-7.16.0"
       sources."@babel/helper-define-polyfill-provider-0.3.0"
+      sources."@babel/helper-environment-visitor-7.16.5"
       sources."@babel/helper-explode-assignable-expression-7.16.0"
       sources."@babel/helper-function-name-7.16.0"
       sources."@babel/helper-get-function-arity-7.16.0"
       sources."@babel/helper-hoist-variables-7.16.0"
-      sources."@babel/helper-member-expression-to-functions-7.16.0"
+      sources."@babel/helper-member-expression-to-functions-7.16.5"
       sources."@babel/helper-module-imports-7.16.0"
-      sources."@babel/helper-module-transforms-7.16.0"
+      sources."@babel/helper-module-transforms-7.16.5"
       sources."@babel/helper-optimise-call-expression-7.16.0"
-      sources."@babel/helper-plugin-utils-7.14.5"
-      sources."@babel/helper-remap-async-to-generator-7.16.4"
-      sources."@babel/helper-replace-supers-7.16.0"
+      sources."@babel/helper-plugin-utils-7.16.5"
+      sources."@babel/helper-remap-async-to-generator-7.16.5"
+      sources."@babel/helper-replace-supers-7.16.5"
       sources."@babel/helper-simple-access-7.16.0"
       sources."@babel/helper-skip-transparent-expression-wrappers-7.16.0"
       sources."@babel/helper-split-export-declaration-7.16.0"
       sources."@babel/helper-validator-identifier-7.15.7"
       sources."@babel/helper-validator-option-7.14.5"
-      sources."@babel/helper-wrap-function-7.16.0"
-      sources."@babel/helpers-7.16.3"
+      sources."@babel/helper-wrap-function-7.16.5"
+      sources."@babel/helpers-7.16.5"
       (sources."@babel/highlight-7.16.0" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.16.4"
+      sources."@babel/parser-7.16.6"
       sources."@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.2"
       sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.0"
       sources."@babel/plugin-external-helpers-7.8.3"
-      sources."@babel/plugin-proposal-async-generator-functions-7.16.4"
-      sources."@babel/plugin-proposal-class-properties-7.16.0"
-      sources."@babel/plugin-proposal-class-static-block-7.16.0"
-      sources."@babel/plugin-proposal-dynamic-import-7.16.0"
-      sources."@babel/plugin-proposal-export-namespace-from-7.16.0"
-      sources."@babel/plugin-proposal-json-strings-7.16.0"
-      sources."@babel/plugin-proposal-logical-assignment-operators-7.16.0"
-      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.16.0"
-      sources."@babel/plugin-proposal-numeric-separator-7.16.0"
-      sources."@babel/plugin-proposal-object-rest-spread-7.16.0"
-      sources."@babel/plugin-proposal-optional-catch-binding-7.16.0"
-      sources."@babel/plugin-proposal-optional-chaining-7.16.0"
-      sources."@babel/plugin-proposal-private-methods-7.16.0"
-      sources."@babel/plugin-proposal-private-property-in-object-7.16.0"
-      sources."@babel/plugin-proposal-unicode-property-regex-7.16.0"
+      sources."@babel/plugin-proposal-async-generator-functions-7.16.5"
+      sources."@babel/plugin-proposal-class-properties-7.16.5"
+      sources."@babel/plugin-proposal-class-static-block-7.16.5"
+      sources."@babel/plugin-proposal-dynamic-import-7.16.5"
+      sources."@babel/plugin-proposal-export-namespace-from-7.16.5"
+      sources."@babel/plugin-proposal-json-strings-7.16.5"
+      sources."@babel/plugin-proposal-logical-assignment-operators-7.16.5"
+      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.16.5"
+      sources."@babel/plugin-proposal-numeric-separator-7.16.5"
+      sources."@babel/plugin-proposal-object-rest-spread-7.16.5"
+      sources."@babel/plugin-proposal-optional-catch-binding-7.16.5"
+      sources."@babel/plugin-proposal-optional-chaining-7.16.5"
+      sources."@babel/plugin-proposal-private-methods-7.16.5"
+      sources."@babel/plugin-proposal-private-property-in-object-7.16.5"
+      sources."@babel/plugin-proposal-unicode-property-regex-7.16.5"
       sources."@babel/plugin-syntax-async-generators-7.8.4"
       sources."@babel/plugin-syntax-bigint-7.8.3"
       sources."@babel/plugin-syntax-class-properties-7.12.13"
@@ -105793,45 +105807,45 @@ in
       sources."@babel/plugin-syntax-optional-chaining-7.8.3"
       sources."@babel/plugin-syntax-private-property-in-object-7.14.5"
       sources."@babel/plugin-syntax-top-level-await-7.14.5"
-      sources."@babel/plugin-transform-arrow-functions-7.16.0"
-      sources."@babel/plugin-transform-async-to-generator-7.16.0"
-      sources."@babel/plugin-transform-block-scoped-functions-7.16.0"
-      sources."@babel/plugin-transform-block-scoping-7.16.0"
-      sources."@babel/plugin-transform-classes-7.16.0"
-      sources."@babel/plugin-transform-computed-properties-7.16.0"
-      sources."@babel/plugin-transform-destructuring-7.16.0"
-      sources."@babel/plugin-transform-dotall-regex-7.16.0"
-      sources."@babel/plugin-transform-duplicate-keys-7.16.0"
-      sources."@babel/plugin-transform-exponentiation-operator-7.16.0"
-      sources."@babel/plugin-transform-for-of-7.16.0"
-      sources."@babel/plugin-transform-function-name-7.16.0"
-      sources."@babel/plugin-transform-literals-7.16.0"
-      sources."@babel/plugin-transform-member-expression-literals-7.16.0"
-      sources."@babel/plugin-transform-modules-amd-7.16.0"
-      sources."@babel/plugin-transform-modules-commonjs-7.16.0"
-      sources."@babel/plugin-transform-modules-systemjs-7.16.0"
-      sources."@babel/plugin-transform-modules-umd-7.16.0"
-      sources."@babel/plugin-transform-named-capturing-groups-regex-7.16.0"
-      sources."@babel/plugin-transform-new-target-7.16.0"
-      sources."@babel/plugin-transform-object-super-7.16.0"
-      sources."@babel/plugin-transform-parameters-7.16.3"
-      sources."@babel/plugin-transform-property-literals-7.16.0"
-      sources."@babel/plugin-transform-regenerator-7.16.0"
-      sources."@babel/plugin-transform-reserved-words-7.16.0"
-      sources."@babel/plugin-transform-runtime-7.16.4"
-      sources."@babel/plugin-transform-shorthand-properties-7.16.0"
-      sources."@babel/plugin-transform-spread-7.16.0"
-      sources."@babel/plugin-transform-sticky-regex-7.16.0"
-      sources."@babel/plugin-transform-template-literals-7.16.0"
-      sources."@babel/plugin-transform-typeof-symbol-7.16.0"
-      sources."@babel/plugin-transform-unicode-escapes-7.16.0"
-      sources."@babel/plugin-transform-unicode-regex-7.16.0"
-      sources."@babel/preset-env-7.16.4"
+      sources."@babel/plugin-transform-arrow-functions-7.16.5"
+      sources."@babel/plugin-transform-async-to-generator-7.16.5"
+      sources."@babel/plugin-transform-block-scoped-functions-7.16.5"
+      sources."@babel/plugin-transform-block-scoping-7.16.5"
+      sources."@babel/plugin-transform-classes-7.16.5"
+      sources."@babel/plugin-transform-computed-properties-7.16.5"
+      sources."@babel/plugin-transform-destructuring-7.16.5"
+      sources."@babel/plugin-transform-dotall-regex-7.16.5"
+      sources."@babel/plugin-transform-duplicate-keys-7.16.5"
+      sources."@babel/plugin-transform-exponentiation-operator-7.16.5"
+      sources."@babel/plugin-transform-for-of-7.16.5"
+      sources."@babel/plugin-transform-function-name-7.16.5"
+      sources."@babel/plugin-transform-literals-7.16.5"
+      sources."@babel/plugin-transform-member-expression-literals-7.16.5"
+      sources."@babel/plugin-transform-modules-amd-7.16.5"
+      sources."@babel/plugin-transform-modules-commonjs-7.16.5"
+      sources."@babel/plugin-transform-modules-systemjs-7.16.5"
+      sources."@babel/plugin-transform-modules-umd-7.16.5"
+      sources."@babel/plugin-transform-named-capturing-groups-regex-7.16.5"
+      sources."@babel/plugin-transform-new-target-7.16.5"
+      sources."@babel/plugin-transform-object-super-7.16.5"
+      sources."@babel/plugin-transform-parameters-7.16.5"
+      sources."@babel/plugin-transform-property-literals-7.16.5"
+      sources."@babel/plugin-transform-regenerator-7.16.5"
+      sources."@babel/plugin-transform-reserved-words-7.16.5"
+      sources."@babel/plugin-transform-runtime-7.16.5"
+      sources."@babel/plugin-transform-shorthand-properties-7.16.5"
+      sources."@babel/plugin-transform-spread-7.16.5"
+      sources."@babel/plugin-transform-sticky-regex-7.16.5"
+      sources."@babel/plugin-transform-template-literals-7.16.5"
+      sources."@babel/plugin-transform-typeof-symbol-7.16.5"
+      sources."@babel/plugin-transform-unicode-escapes-7.16.5"
+      sources."@babel/plugin-transform-unicode-regex-7.16.5"
+      sources."@babel/preset-env-7.16.5"
       sources."@babel/preset-modules-0.1.5"
       sources."@babel/preset-stage-2-7.8.3"
-      sources."@babel/runtime-7.16.3"
+      sources."@babel/runtime-7.16.5"
       sources."@babel/template-7.16.0"
-      sources."@babel/traverse-7.16.3"
+      sources."@babel/traverse-7.16.5"
       sources."@babel/types-7.16.0"
       sources."@cnakazawa/watch-1.0.4"
       sources."@comandeer/babel-plugin-banner-5.0.0"
@@ -105853,7 +105867,7 @@ in
       sources."@types/istanbul-lib-report-3.0.0"
       sources."@types/istanbul-reports-1.1.2"
       sources."@types/json-schema-7.0.9"
-      sources."@types/node-16.11.12"
+      sources."@types/node-17.0.0"
       sources."@types/normalize-package-data-2.4.1"
       sources."@types/resolve-0.0.8"
       sources."@types/yargs-15.0.14"
@@ -106010,7 +106024,7 @@ in
         ];
       })
       sources."browserify-zlib-0.2.0"
-      sources."browserslist-4.18.1"
+      sources."browserslist-4.19.1"
       sources."bser-2.1.1"
       sources."buffer-5.2.1"
       sources."buffer-from-1.1.2"
@@ -106026,7 +106040,7 @@ in
       sources."cached-path-relative-1.0.2"
       sources."call-bind-1.0.2"
       sources."camelcase-5.3.1"
-      sources."caniuse-lite-1.0.30001286"
+      sources."caniuse-lite-1.0.30001287"
       sources."capture-exit-2.0.0"
       sources."caseless-0.12.0"
       (sources."chalk-3.0.0" // {
@@ -106097,7 +106111,7 @@ in
       })
       sources."copy-descriptor-0.1.1"
       sources."core-js-2.6.12"
-      (sources."core-js-compat-3.19.3" // {
+      (sources."core-js-compat-3.20.0" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
@@ -106149,7 +106163,7 @@ in
       sources."duplexer2-0.1.4"
       sources."duplexify-3.7.1"
       sources."ecc-jsbn-0.1.2"
-      sources."electron-to-chromium-1.4.16"
+      sources."electron-to-chromium-1.4.21"
       (sources."elliptic-6.5.4" // {
         dependencies = [
           sources."bn.js-4.12.0"
@@ -106886,7 +106900,7 @@ in
       sources."@types/commander-2.12.2"
       sources."@types/diff-3.5.4"
       sources."@types/get-stdin-5.0.1"
-      sources."@types/node-16.11.12"
+      sources."@types/node-17.0.0"
       sources."commander-2.20.3"
       sources."diff-3.5.0"
       sources."get-stdin-5.0.1"
@@ -107746,14 +107760,14 @@ in
   "@mermaid-js/mermaid-cli" = nodeEnv.buildNodePackage {
     name = "_at_mermaid-js_slash_mermaid-cli";
     packageName = "@mermaid-js/mermaid-cli";
-    version = "8.13.4";
+    version = "8.13.5";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@mermaid-js/mermaid-cli/-/mermaid-cli-8.13.4.tgz";
-      sha512 = "zgG9vjTT6G+kgrwRlIeBJCPM/5o/ZG/SXajQr5RDcjkk377ZM1gaEbKsZrxLzva/EvSCDKVnnEiPQeOAzXsNcw==";
+      url = "https://registry.npmjs.org/@mermaid-js/mermaid-cli/-/mermaid-cli-8.13.5.tgz";
+      sha512 = "QcFi12GO+wOjzQdqLhhPkbRBKx6QhB4azNCA/DH/NROUdAp0iUyOk5W+1xr10ERcANxajWlguO8MwxzTqXzaTw==";
     };
     dependencies = [
       sources."@braintree/sanitize-url-3.1.0"
-      sources."@types/node-16.11.12"
+      sources."@types/node-17.0.0"
       sources."@types/yauzl-2.9.2"
       sources."agent-base-6.0.2"
       sources."ansi-styles-4.3.0"
@@ -107845,8 +107859,8 @@ in
       })
       sources."debug-4.3.2"
       sources."delaunator-5.0.0"
-      sources."devtools-protocol-0.0.901419"
-      sources."dompurify-2.3.3"
+      sources."devtools-protocol-0.0.937139"
+      sources."dompurify-2.3.4"
       sources."end-of-stream-1.4.4"
       sources."extract-zip-2.0.1"
       sources."fd-slicer-1.1.0"
@@ -107866,7 +107880,7 @@ in
       sources."khroma-1.4.1"
       sources."locate-path-5.0.0"
       sources."lodash-4.17.21"
-      sources."mermaid-8.13.5"
+      sources."mermaid-8.13.6"
       sources."minimatch-3.0.4"
       sources."mkdirp-classic-0.5.3"
       sources."moment-mini-2.24.0"
@@ -107883,7 +107897,7 @@ in
       sources."progress-2.0.3"
       sources."proxy-from-env-1.1.0"
       sources."pump-3.0.0"
-      sources."puppeteer-11.0.0"
+      sources."puppeteer-13.0.0"
       sources."readable-stream-3.6.0"
       sources."rimraf-3.0.2"
       sources."robust-predicates-3.0.1"
@@ -107891,7 +107905,7 @@ in
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."string_decoder-1.3.0"
-      sources."stylis-4.0.12"
+      sources."stylis-4.0.13"
       sources."supports-color-7.2.0"
       sources."tar-fs-2.1.1"
       sources."tar-stream-2.2.0"
@@ -108169,51 +108183,44 @@ in
   neovim = nodeEnv.buildNodePackage {
     name = "neovim";
     packageName = "neovim";
-    version = "4.10.0";
+    version = "4.10.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/neovim/-/neovim-4.10.0.tgz";
-      sha512 = "MMtsyjCPYXy45I8TZTz0iYJUIJhaDSO0zfHOJeidGuLUCeY6WLQiwZteJ9tmCveNWMjT1r2QO9nq135mUDgbtw==";
+      url = "https://registry.npmjs.org/neovim/-/neovim-4.10.1.tgz";
+      sha512 = "H46Jl2bh/LAFJsitv2MiIK3oCxvQnEK9t3efNMUUkKzsTYlLIikVxGWVk/vJnHzvxoHYBIRB/KHwPAOm+9UStg==";
     };
     dependencies = [
-      sources."@msgpack/msgpack-1.12.2"
-      sources."async-2.6.3"
+      sources."@dabh/diagnostics-2.0.2"
+      sources."@msgpack/msgpack-2.7.1"
+      sources."async-3.2.2"
       sources."color-3.2.1"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
       sources."color-string-1.9.0"
-      sources."colornames-1.1.1"
       sources."colors-1.4.0"
       sources."colorspace-1.1.4"
-      sources."core-util-is-1.0.3"
-      sources."diagnostics-1.1.1"
-      sources."enabled-1.0.2"
-      sources."env-variable-0.0.6"
-      sources."fast-safe-stringify-2.1.1"
-      sources."fecha-2.3.3"
+      sources."enabled-2.0.0"
+      sources."fecha-4.2.1"
+      sources."fn.name-1.1.0"
       sources."inherits-2.0.4"
       sources."is-arrayish-0.3.2"
-      sources."is-stream-1.1.0"
-      sources."isarray-1.0.0"
-      sources."kuler-1.0.1"
-      sources."lodash-4.17.21"
-      sources."lodash.defaults-4.2.0"
-      sources."lodash.omit-4.5.0"
-      sources."logform-1.10.0"
+      sources."is-stream-2.0.1"
+      sources."kuler-2.0.0"
+      sources."logform-2.3.0"
       sources."lru-cache-6.0.0"
       sources."ms-2.1.3"
-      sources."one-time-0.0.4"
-      sources."process-nextick-args-2.0.1"
-      sources."readable-stream-2.3.7"
-      sources."safe-buffer-5.1.2"
+      sources."one-time-1.0.0"
+      sources."readable-stream-3.6.0"
+      sources."safe-buffer-5.2.1"
+      sources."safe-stable-stringify-1.1.1"
       sources."semver-7.3.5"
       sources."simple-swizzle-0.2.2"
       sources."stack-trace-0.0.10"
-      sources."string_decoder-1.1.1"
+      sources."string_decoder-1.3.0"
       sources."text-hex-1.0.0"
       sources."triple-beam-1.3.0"
       sources."util-deprecate-1.0.2"
-      sources."winston-3.1.0"
-      sources."winston-transport-4.4.0"
+      sources."winston-3.3.3"
+      sources."winston-transport-4.4.1"
       sources."yallist-4.0.0"
     ];
     buildInputs = globalBuildInputs;
@@ -108772,8 +108779,8 @@ in
       sha512 = "ScpFFE0G+NlxFWrHnMcIkaF8gW+6jwK7n5qRGId66fCTICYnBGkOxXBvV3Q45H+4iQUro5aIRj737Gu7shjsJw==";
     };
     dependencies = [
-      sources."@babel/runtime-7.16.3"
-      sources."@mapbox/node-pre-gyp-1.0.7"
+      sources."@babel/runtime-7.16.5"
+      sources."@mapbox/node-pre-gyp-1.0.8"
       sources."@node-red/editor-api-2.1.4"
       sources."@node-red/editor-client-2.1.4"
       (sources."@node-red/nodes-2.1.4" // {
@@ -108800,7 +108807,7 @@ in
       sources."@types/cacheable-request-6.0.2"
       sources."@types/http-cache-semantics-4.0.1"
       sources."@types/keyv-3.1.3"
-      sources."@types/node-16.11.12"
+      sources."@types/node-17.0.0"
       sources."@types/responselike-1.0.0"
       sources."abbrev-1.1.1"
       sources."accepts-1.3.7"
@@ -108886,7 +108893,7 @@ in
       sources."core-util-is-1.0.3"
       sources."cors-2.8.5"
       sources."cronosjs-1.7.1"
-      sources."css-select-4.1.3"
+      sources."css-select-4.2.0"
       sources."css-what-5.1.0"
       sources."debug-2.6.9"
       (sources."decompress-response-6.0.0" // {
@@ -108946,7 +108953,7 @@ in
       sources."fs-minipass-2.1.0"
       sources."fs.notify-0.0.4"
       sources."fs.realpath-1.0.0"
-      sources."gauge-4.0.0"
+      sources."gauge-3.0.2"
       sources."get-stream-5.2.0"
       sources."glob-7.2.0"
       sources."got-11.8.3"
@@ -109052,7 +109059,7 @@ in
       sources."node-red-admin-2.2.1"
       sources."nopt-5.0.0"
       sources."normalize-url-6.1.0"
-      sources."npmlog-6.0.0"
+      sources."npmlog-5.0.1"
       sources."nth-check-2.0.1"
       sources."oauth2orize-1.11.1"
       sources."object-assign-4.1.1"
@@ -109552,7 +109559,7 @@ in
       sources."@types/http-cache-semantics-4.0.1"
       sources."@types/keyv-3.1.3"
       sources."@types/minimist-1.2.2"
-      sources."@types/node-16.11.12"
+      sources."@types/node-17.0.0"
       sources."@types/normalize-package-data-2.4.1"
       sources."@types/parse-json-4.0.0"
       sources."@types/responselike-1.0.0"
@@ -110063,10 +110070,10 @@ in
   npm-check-updates = nodeEnv.buildNodePackage {
     name = "npm-check-updates";
     packageName = "npm-check-updates";
-    version = "12.0.3";
+    version = "12.0.5";
     src = fetchurl {
-      url = "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-12.0.3.tgz";
-      sha512 = "MTHzkDZY1ebhPaDvzWOU9bt4UYdHmY4tIcMCaZjgguGKUgwqokH/aB0Nrc4WcZ4rD491Spuj5DILo/RvKAefvw==";
+      url = "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-12.0.5.tgz";
+      sha512 = "ns1liBBogwjmOVZY/PYgeIoarItwdOSBxccJDZKKkxsMkXges/Bp5CAnQIvYwlsz6fByQJFvqXSOqwIUBY6gpQ==";
     };
     dependencies = [
       sources."@gar/promisify-1.1.2"
@@ -110656,77 +110663,78 @@ in
     dependencies = [
       sources."@babel/code-frame-7.16.0"
       sources."@babel/compat-data-7.16.4"
-      (sources."@babel/core-7.16.0" // {
+      (sources."@babel/core-7.16.5" // {
         dependencies = [
           sources."json5-2.2.0"
           sources."semver-6.3.0"
           sources."source-map-0.5.7"
         ];
       })
-      (sources."@babel/generator-7.16.0" // {
+      (sources."@babel/generator-7.16.5" // {
         dependencies = [
           sources."source-map-0.5.7"
         ];
       })
       sources."@babel/helper-annotate-as-pure-7.16.0"
-      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.16.0"
+      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.16.5"
       (sources."@babel/helper-compilation-targets-7.16.3" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
-      sources."@babel/helper-create-class-features-plugin-7.16.0"
+      sources."@babel/helper-create-class-features-plugin-7.16.5"
       sources."@babel/helper-create-regexp-features-plugin-7.16.0"
       (sources."@babel/helper-define-polyfill-provider-0.3.0" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
+      sources."@babel/helper-environment-visitor-7.16.5"
       sources."@babel/helper-explode-assignable-expression-7.16.0"
       sources."@babel/helper-function-name-7.16.0"
       sources."@babel/helper-get-function-arity-7.16.0"
       sources."@babel/helper-hoist-variables-7.16.0"
-      sources."@babel/helper-member-expression-to-functions-7.16.0"
+      sources."@babel/helper-member-expression-to-functions-7.16.5"
       sources."@babel/helper-module-imports-7.16.0"
-      sources."@babel/helper-module-transforms-7.16.0"
+      sources."@babel/helper-module-transforms-7.16.5"
       sources."@babel/helper-optimise-call-expression-7.16.0"
-      sources."@babel/helper-plugin-utils-7.14.5"
-      sources."@babel/helper-remap-async-to-generator-7.16.4"
-      sources."@babel/helper-replace-supers-7.16.0"
+      sources."@babel/helper-plugin-utils-7.16.5"
+      sources."@babel/helper-remap-async-to-generator-7.16.5"
+      sources."@babel/helper-replace-supers-7.16.5"
       sources."@babel/helper-simple-access-7.16.0"
       sources."@babel/helper-skip-transparent-expression-wrappers-7.16.0"
       sources."@babel/helper-split-export-declaration-7.16.0"
       sources."@babel/helper-validator-identifier-7.15.7"
       sources."@babel/helper-validator-option-7.14.5"
-      sources."@babel/helper-wrap-function-7.16.0"
-      sources."@babel/helpers-7.16.3"
+      sources."@babel/helper-wrap-function-7.16.5"
+      sources."@babel/helpers-7.16.5"
       sources."@babel/highlight-7.16.0"
-      sources."@babel/parser-7.16.4"
+      sources."@babel/parser-7.16.6"
       sources."@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.2"
       sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.0"
-      sources."@babel/plugin-proposal-async-generator-functions-7.16.4"
-      sources."@babel/plugin-proposal-class-properties-7.16.0"
-      sources."@babel/plugin-proposal-class-static-block-7.16.0"
-      sources."@babel/plugin-proposal-dynamic-import-7.16.0"
-      sources."@babel/plugin-proposal-export-namespace-from-7.16.0"
-      sources."@babel/plugin-proposal-json-strings-7.16.0"
-      sources."@babel/plugin-proposal-logical-assignment-operators-7.16.0"
-      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.16.0"
-      sources."@babel/plugin-proposal-numeric-separator-7.16.0"
-      sources."@babel/plugin-proposal-object-rest-spread-7.16.0"
-      sources."@babel/plugin-proposal-optional-catch-binding-7.16.0"
-      sources."@babel/plugin-proposal-optional-chaining-7.16.0"
-      sources."@babel/plugin-proposal-private-methods-7.16.0"
-      sources."@babel/plugin-proposal-private-property-in-object-7.16.0"
-      sources."@babel/plugin-proposal-unicode-property-regex-7.16.0"
+      sources."@babel/plugin-proposal-async-generator-functions-7.16.5"
+      sources."@babel/plugin-proposal-class-properties-7.16.5"
+      sources."@babel/plugin-proposal-class-static-block-7.16.5"
+      sources."@babel/plugin-proposal-dynamic-import-7.16.5"
+      sources."@babel/plugin-proposal-export-namespace-from-7.16.5"
+      sources."@babel/plugin-proposal-json-strings-7.16.5"
+      sources."@babel/plugin-proposal-logical-assignment-operators-7.16.5"
+      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.16.5"
+      sources."@babel/plugin-proposal-numeric-separator-7.16.5"
+      sources."@babel/plugin-proposal-object-rest-spread-7.16.5"
+      sources."@babel/plugin-proposal-optional-catch-binding-7.16.5"
+      sources."@babel/plugin-proposal-optional-chaining-7.16.5"
+      sources."@babel/plugin-proposal-private-methods-7.16.5"
+      sources."@babel/plugin-proposal-private-property-in-object-7.16.5"
+      sources."@babel/plugin-proposal-unicode-property-regex-7.16.5"
       sources."@babel/plugin-syntax-async-generators-7.8.4"
       sources."@babel/plugin-syntax-class-properties-7.12.13"
       sources."@babel/plugin-syntax-class-static-block-7.14.5"
       sources."@babel/plugin-syntax-dynamic-import-7.8.3"
       sources."@babel/plugin-syntax-export-namespace-from-7.8.3"
-      sources."@babel/plugin-syntax-flow-7.16.0"
+      sources."@babel/plugin-syntax-flow-7.16.5"
       sources."@babel/plugin-syntax-json-strings-7.8.3"
-      sources."@babel/plugin-syntax-jsx-7.16.0"
+      sources."@babel/plugin-syntax-jsx-7.16.5"
       sources."@babel/plugin-syntax-logical-assignment-operators-7.10.4"
       sources."@babel/plugin-syntax-nullish-coalescing-operator-7.8.3"
       sources."@babel/plugin-syntax-numeric-separator-7.10.4"
@@ -110735,49 +110743,49 @@ in
       sources."@babel/plugin-syntax-optional-chaining-7.8.3"
       sources."@babel/plugin-syntax-private-property-in-object-7.14.5"
       sources."@babel/plugin-syntax-top-level-await-7.14.5"
-      sources."@babel/plugin-transform-arrow-functions-7.16.0"
-      sources."@babel/plugin-transform-async-to-generator-7.16.0"
-      sources."@babel/plugin-transform-block-scoped-functions-7.16.0"
-      sources."@babel/plugin-transform-block-scoping-7.16.0"
-      sources."@babel/plugin-transform-classes-7.16.0"
-      sources."@babel/plugin-transform-computed-properties-7.16.0"
-      sources."@babel/plugin-transform-destructuring-7.16.0"
-      sources."@babel/plugin-transform-dotall-regex-7.16.0"
-      sources."@babel/plugin-transform-duplicate-keys-7.16.0"
-      sources."@babel/plugin-transform-exponentiation-operator-7.16.0"
-      sources."@babel/plugin-transform-flow-strip-types-7.16.0"
-      sources."@babel/plugin-transform-for-of-7.16.0"
-      sources."@babel/plugin-transform-function-name-7.16.0"
-      sources."@babel/plugin-transform-literals-7.16.0"
-      sources."@babel/plugin-transform-member-expression-literals-7.16.0"
-      sources."@babel/plugin-transform-modules-amd-7.16.0"
-      sources."@babel/plugin-transform-modules-commonjs-7.16.0"
-      sources."@babel/plugin-transform-modules-systemjs-7.16.0"
-      sources."@babel/plugin-transform-modules-umd-7.16.0"
-      sources."@babel/plugin-transform-named-capturing-groups-regex-7.16.0"
-      sources."@babel/plugin-transform-new-target-7.16.0"
-      sources."@babel/plugin-transform-object-super-7.16.0"
-      sources."@babel/plugin-transform-parameters-7.16.3"
-      sources."@babel/plugin-transform-property-literals-7.16.0"
-      sources."@babel/plugin-transform-react-jsx-7.16.0"
-      sources."@babel/plugin-transform-regenerator-7.16.0"
-      sources."@babel/plugin-transform-reserved-words-7.16.0"
-      sources."@babel/plugin-transform-shorthand-properties-7.16.0"
-      sources."@babel/plugin-transform-spread-7.16.0"
-      sources."@babel/plugin-transform-sticky-regex-7.16.0"
-      sources."@babel/plugin-transform-template-literals-7.16.0"
-      sources."@babel/plugin-transform-typeof-symbol-7.16.0"
-      sources."@babel/plugin-transform-unicode-escapes-7.16.0"
-      sources."@babel/plugin-transform-unicode-regex-7.16.0"
-      (sources."@babel/preset-env-7.16.4" // {
+      sources."@babel/plugin-transform-arrow-functions-7.16.5"
+      sources."@babel/plugin-transform-async-to-generator-7.16.5"
+      sources."@babel/plugin-transform-block-scoped-functions-7.16.5"
+      sources."@babel/plugin-transform-block-scoping-7.16.5"
+      sources."@babel/plugin-transform-classes-7.16.5"
+      sources."@babel/plugin-transform-computed-properties-7.16.5"
+      sources."@babel/plugin-transform-destructuring-7.16.5"
+      sources."@babel/plugin-transform-dotall-regex-7.16.5"
+      sources."@babel/plugin-transform-duplicate-keys-7.16.5"
+      sources."@babel/plugin-transform-exponentiation-operator-7.16.5"
+      sources."@babel/plugin-transform-flow-strip-types-7.16.5"
+      sources."@babel/plugin-transform-for-of-7.16.5"
+      sources."@babel/plugin-transform-function-name-7.16.5"
+      sources."@babel/plugin-transform-literals-7.16.5"
+      sources."@babel/plugin-transform-member-expression-literals-7.16.5"
+      sources."@babel/plugin-transform-modules-amd-7.16.5"
+      sources."@babel/plugin-transform-modules-commonjs-7.16.5"
+      sources."@babel/plugin-transform-modules-systemjs-7.16.5"
+      sources."@babel/plugin-transform-modules-umd-7.16.5"
+      sources."@babel/plugin-transform-named-capturing-groups-regex-7.16.5"
+      sources."@babel/plugin-transform-new-target-7.16.5"
+      sources."@babel/plugin-transform-object-super-7.16.5"
+      sources."@babel/plugin-transform-parameters-7.16.5"
+      sources."@babel/plugin-transform-property-literals-7.16.5"
+      sources."@babel/plugin-transform-react-jsx-7.16.5"
+      sources."@babel/plugin-transform-regenerator-7.16.5"
+      sources."@babel/plugin-transform-reserved-words-7.16.5"
+      sources."@babel/plugin-transform-shorthand-properties-7.16.5"
+      sources."@babel/plugin-transform-spread-7.16.5"
+      sources."@babel/plugin-transform-sticky-regex-7.16.5"
+      sources."@babel/plugin-transform-template-literals-7.16.5"
+      sources."@babel/plugin-transform-typeof-symbol-7.16.5"
+      sources."@babel/plugin-transform-unicode-escapes-7.16.5"
+      sources."@babel/plugin-transform-unicode-regex-7.16.5"
+      (sources."@babel/preset-env-7.16.5" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
       sources."@babel/preset-modules-0.1.5"
-      sources."@babel/runtime-7.16.3"
+      sources."@babel/runtime-7.16.5"
       sources."@babel/template-7.16.0"
-      sources."@babel/traverse-7.16.3"
+      sources."@babel/traverse-7.16.5"
       sources."@babel/types-7.16.0"
       sources."@iarna/toml-2.2.5"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
@@ -110883,7 +110891,7 @@ in
           sources."pako-1.0.11"
         ];
       })
-      sources."browserslist-4.18.1"
+      sources."browserslist-4.19.1"
       (sources."buffer-4.9.2" // {
         dependencies = [
           sources."isarray-1.0.0"
@@ -110900,7 +110908,7 @@ in
       sources."caller-path-2.0.0"
       sources."callsites-2.0.0"
       sources."caniuse-api-3.0.0"
-      sources."caniuse-lite-1.0.30001286"
+      sources."caniuse-lite-1.0.30001287"
       sources."caseless-0.12.0"
       sources."chalk-2.4.2"
       sources."chokidar-2.1.8"
@@ -110926,7 +110934,7 @@ in
       sources."convert-source-map-1.8.0"
       sources."copy-descriptor-0.1.1"
       sources."core-js-2.6.12"
-      (sources."core-js-compat-3.19.3" // {
+      (sources."core-js-compat-3.20.0" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
@@ -111037,7 +111045,7 @@ in
       sources."duplexer2-0.1.4"
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.4.16"
+      sources."electron-to-chromium-1.4.21"
       (sources."elliptic-6.5.4" // {
         dependencies = [
           sources."bn.js-4.12.0"
@@ -111157,7 +111165,7 @@ in
           sources."domutils-2.8.0"
         ];
       })
-      sources."http-errors-1.7.3"
+      sources."http-errors-1.8.1"
       sources."http-signature-1.2.0"
       sources."https-browserify-1.0.0"
       sources."iconv-lite-0.4.24"
@@ -111489,21 +111497,21 @@ in
       sources."sax-1.2.4"
       sources."saxes-3.1.11"
       sources."semver-5.7.1"
-      (sources."send-0.17.1" // {
+      (sources."send-0.17.2" // {
         dependencies = [
           (sources."debug-2.6.9" // {
             dependencies = [
               sources."ms-2.0.0"
             ];
           })
-          sources."ms-2.1.1"
+          sources."ms-2.1.3"
         ];
       })
       sources."serialize-to-js-3.1.1"
-      sources."serve-static-1.14.1"
+      sources."serve-static-1.14.2"
       sources."set-value-2.0.1"
       sources."setimmediate-1.0.5"
-      sources."setprototypeof-1.1.1"
+      sources."setprototypeof-1.2.0"
       sources."sha.js-2.4.11"
       sources."shallow-copy-0.0.1"
       sources."shebang-command-1.2.0"
@@ -111586,7 +111594,7 @@ in
         ];
       })
       sources."to-regex-range-2.1.1"
-      sources."toidentifier-1.0.0"
+      sources."toidentifier-1.0.1"
       sources."tough-cookie-2.5.0"
       sources."tr46-1.0.1"
       sources."tty-browserify-0.0.0"
@@ -111919,7 +111927,7 @@ in
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       sources."type-is-1.6.18"
-      sources."uglify-js-3.14.4"
+      sources."uglify-js-3.14.5"
       sources."unix-dgram-2.0.4"
       sources."unpipe-1.0.0"
       sources."uri-js-4.4.1"
@@ -112465,6 +112473,7 @@ in
           sources."inherits-2.0.3"
           sources."qs-6.7.0"
           sources."raw-body-2.4.0"
+          sources."serve-static-1.14.1"
           sources."setprototypeof-1.1.1"
           sources."toidentifier-1.0.0"
         ];
@@ -112628,7 +112637,12 @@ in
           sources."toidentifier-1.0.0"
         ];
       })
-      sources."serve-static-1.14.1"
+      (sources."serve-static-1.14.2" // {
+        dependencies = [
+          sources."ms-2.1.3"
+          sources."send-0.17.2"
+        ];
+      })
       sources."setprototypeof-1.2.0"
       sources."simple-concat-1.0.1"
       sources."simple-get-2.8.1"
@@ -113144,10 +113158,10 @@ in
   pnpm = nodeEnv.buildNodePackage {
     name = "pnpm";
     packageName = "pnpm";
-    version = "6.23.6";
+    version = "6.24.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/pnpm/-/pnpm-6.23.6.tgz";
-      sha512 = "H6PIzO4W2zg2Jqms13uS5U3fU8yBdWk8rXcpJLjs/in+nutgVA8GGlasEAI2eAiTpc9FYJUkCklbJ4a/M36N0w==";
+      url = "https://registry.npmjs.org/pnpm/-/pnpm-6.24.1.tgz";
+      sha512 = "gvXXhgSfdq27ASRSd9121GtRXqnZ5RMeaj/HDlsRjV5XTBWCMJZvLIdz6SiSeDQas/+6w9PNz73vFR0l9j+XYA==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -113190,10 +113204,10 @@ in
   postcss = nodeEnv.buildNodePackage {
     name = "postcss";
     packageName = "postcss";
-    version = "8.4.4";
+    version = "8.4.5";
     src = fetchurl {
-      url = "https://registry.npmjs.org/postcss/-/postcss-8.4.4.tgz";
-      sha512 = "joU6fBsN6EIer28Lj6GDFoC/5yOZzLCfn0zHAn/MYXI7aPt4m4hK5KC5ovEZXy+lnCjmYIbQWngvju2ddyEr8Q==";
+      url = "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz";
+      sha512 = "jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==";
     };
     dependencies = [
       sources."nanoid-3.1.30"
@@ -114042,10 +114056,10 @@ in
   pyright = nodeEnv.buildNodePackage {
     name = "pyright";
     packageName = "pyright";
-    version = "1.1.194";
+    version = "1.1.196";
     src = fetchurl {
-      url = "https://registry.npmjs.org/pyright/-/pyright-1.1.194.tgz";
-      sha512 = "vNKUZKO4K3vU1Ms40h9Q+d8LQIAmlj7zVnzbwKiRw5/F0omdcgkLL3Zx/y8aNLxNE2sygHVibkgcuUWvyJ8bQA==";
+      url = "https://registry.npmjs.org/pyright/-/pyright-1.1.196.tgz";
+      sha512 = "63LF3JNElRU9wkCLgJLk8NMi4tJ/aB97itckp19zb4g8wXmlc90nyvA5bUk19ey10R4yAmlp8ol8Tz/mxAUmGQ==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -114343,7 +114357,7 @@ in
       sources."is-typed-array-1.1.8"
       sources."is-weakmap-2.0.1"
       sources."is-weakref-1.0.2"
-      sources."is-weakset-2.0.1"
+      sources."is-weakset-2.0.2"
       sources."isarray-2.0.5"
       sources."isstream-0.1.2"
       sources."minimatch-3.0.4"
@@ -114404,72 +114418,73 @@ in
       sources."@babel/cli-7.16.0"
       sources."@babel/code-frame-7.16.0"
       sources."@babel/compat-data-7.16.4"
-      (sources."@babel/core-7.16.0" // {
+      (sources."@babel/core-7.16.5" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
-      sources."@babel/generator-7.16.0"
+      sources."@babel/generator-7.16.5"
       sources."@babel/helper-annotate-as-pure-7.16.0"
-      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.16.0"
+      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.16.5"
       (sources."@babel/helper-compilation-targets-7.16.3" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
-      sources."@babel/helper-create-class-features-plugin-7.16.0"
+      sources."@babel/helper-create-class-features-plugin-7.16.5"
       sources."@babel/helper-create-regexp-features-plugin-7.16.0"
       (sources."@babel/helper-define-polyfill-provider-0.3.0" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
+      sources."@babel/helper-environment-visitor-7.16.5"
       sources."@babel/helper-explode-assignable-expression-7.16.0"
       sources."@babel/helper-function-name-7.16.0"
       sources."@babel/helper-get-function-arity-7.16.0"
       sources."@babel/helper-hoist-variables-7.16.0"
-      sources."@babel/helper-member-expression-to-functions-7.16.0"
+      sources."@babel/helper-member-expression-to-functions-7.16.5"
       sources."@babel/helper-module-imports-7.16.0"
-      sources."@babel/helper-module-transforms-7.16.0"
+      sources."@babel/helper-module-transforms-7.16.5"
       sources."@babel/helper-optimise-call-expression-7.16.0"
-      sources."@babel/helper-plugin-utils-7.14.5"
-      sources."@babel/helper-remap-async-to-generator-7.16.4"
-      sources."@babel/helper-replace-supers-7.16.0"
+      sources."@babel/helper-plugin-utils-7.16.5"
+      sources."@babel/helper-remap-async-to-generator-7.16.5"
+      sources."@babel/helper-replace-supers-7.16.5"
       sources."@babel/helper-simple-access-7.16.0"
       sources."@babel/helper-skip-transparent-expression-wrappers-7.16.0"
       sources."@babel/helper-split-export-declaration-7.16.0"
       sources."@babel/helper-validator-identifier-7.15.7"
       sources."@babel/helper-validator-option-7.14.5"
-      sources."@babel/helper-wrap-function-7.16.0"
-      sources."@babel/helpers-7.16.3"
+      sources."@babel/helper-wrap-function-7.16.5"
+      sources."@babel/helpers-7.16.5"
       sources."@babel/highlight-7.16.0"
-      sources."@babel/parser-7.16.4"
+      sources."@babel/parser-7.16.6"
       sources."@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.2"
       sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.0"
-      sources."@babel/plugin-proposal-async-generator-functions-7.16.4"
-      sources."@babel/plugin-proposal-class-properties-7.16.0"
-      sources."@babel/plugin-proposal-class-static-block-7.16.0"
-      sources."@babel/plugin-proposal-dynamic-import-7.16.0"
-      sources."@babel/plugin-proposal-export-default-from-7.16.0"
-      sources."@babel/plugin-proposal-export-namespace-from-7.16.0"
-      sources."@babel/plugin-proposal-json-strings-7.16.0"
-      sources."@babel/plugin-proposal-logical-assignment-operators-7.16.0"
-      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.16.0"
-      sources."@babel/plugin-proposal-numeric-separator-7.16.0"
-      sources."@babel/plugin-proposal-object-rest-spread-7.16.0"
-      sources."@babel/plugin-proposal-optional-catch-binding-7.16.0"
-      sources."@babel/plugin-proposal-optional-chaining-7.16.0"
-      sources."@babel/plugin-proposal-private-methods-7.16.0"
-      sources."@babel/plugin-proposal-private-property-in-object-7.16.0"
-      sources."@babel/plugin-proposal-unicode-property-regex-7.16.0"
+      sources."@babel/plugin-proposal-async-generator-functions-7.16.5"
+      sources."@babel/plugin-proposal-class-properties-7.16.5"
+      sources."@babel/plugin-proposal-class-static-block-7.16.5"
+      sources."@babel/plugin-proposal-dynamic-import-7.16.5"
+      sources."@babel/plugin-proposal-export-default-from-7.16.5"
+      sources."@babel/plugin-proposal-export-namespace-from-7.16.5"
+      sources."@babel/plugin-proposal-json-strings-7.16.5"
+      sources."@babel/plugin-proposal-logical-assignment-operators-7.16.5"
+      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.16.5"
+      sources."@babel/plugin-proposal-numeric-separator-7.16.5"
+      sources."@babel/plugin-proposal-object-rest-spread-7.16.5"
+      sources."@babel/plugin-proposal-optional-catch-binding-7.16.5"
+      sources."@babel/plugin-proposal-optional-chaining-7.16.5"
+      sources."@babel/plugin-proposal-private-methods-7.16.5"
+      sources."@babel/plugin-proposal-private-property-in-object-7.16.5"
+      sources."@babel/plugin-proposal-unicode-property-regex-7.16.5"
       sources."@babel/plugin-syntax-async-generators-7.8.4"
       sources."@babel/plugin-syntax-class-properties-7.12.13"
       sources."@babel/plugin-syntax-class-static-block-7.14.5"
       sources."@babel/plugin-syntax-dynamic-import-7.8.3"
-      sources."@babel/plugin-syntax-export-default-from-7.16.0"
+      sources."@babel/plugin-syntax-export-default-from-7.16.5"
       sources."@babel/plugin-syntax-export-namespace-from-7.8.3"
       sources."@babel/plugin-syntax-json-strings-7.8.3"
-      sources."@babel/plugin-syntax-jsx-7.16.0"
+      sources."@babel/plugin-syntax-jsx-7.16.5"
       sources."@babel/plugin-syntax-logical-assignment-operators-7.10.4"
       sources."@babel/plugin-syntax-nullish-coalescing-operator-7.8.3"
       sources."@babel/plugin-syntax-numeric-separator-7.10.4"
@@ -114478,66 +114493,66 @@ in
       sources."@babel/plugin-syntax-optional-chaining-7.8.3"
       sources."@babel/plugin-syntax-private-property-in-object-7.14.5"
       sources."@babel/plugin-syntax-top-level-await-7.14.5"
-      sources."@babel/plugin-transform-arrow-functions-7.16.0"
-      sources."@babel/plugin-transform-async-to-generator-7.16.0"
-      sources."@babel/plugin-transform-block-scoped-functions-7.16.0"
-      sources."@babel/plugin-transform-block-scoping-7.16.0"
-      sources."@babel/plugin-transform-classes-7.16.0"
-      sources."@babel/plugin-transform-computed-properties-7.16.0"
-      sources."@babel/plugin-transform-destructuring-7.16.0"
-      sources."@babel/plugin-transform-dotall-regex-7.16.0"
-      sources."@babel/plugin-transform-duplicate-keys-7.16.0"
-      sources."@babel/plugin-transform-exponentiation-operator-7.16.0"
-      sources."@babel/plugin-transform-for-of-7.16.0"
-      sources."@babel/plugin-transform-function-name-7.16.0"
-      sources."@babel/plugin-transform-literals-7.16.0"
-      sources."@babel/plugin-transform-member-expression-literals-7.16.0"
-      sources."@babel/plugin-transform-modules-amd-7.16.0"
-      sources."@babel/plugin-transform-modules-commonjs-7.16.0"
-      sources."@babel/plugin-transform-modules-systemjs-7.16.0"
-      sources."@babel/plugin-transform-modules-umd-7.16.0"
-      sources."@babel/plugin-transform-named-capturing-groups-regex-7.16.0"
-      sources."@babel/plugin-transform-new-target-7.16.0"
-      sources."@babel/plugin-transform-object-super-7.16.0"
-      sources."@babel/plugin-transform-parameters-7.16.3"
-      sources."@babel/plugin-transform-property-literals-7.16.0"
-      sources."@babel/plugin-transform-react-display-name-7.16.0"
-      sources."@babel/plugin-transform-react-jsx-7.16.0"
-      sources."@babel/plugin-transform-react-jsx-development-7.16.0"
-      sources."@babel/plugin-transform-react-pure-annotations-7.16.0"
-      sources."@babel/plugin-transform-regenerator-7.16.0"
-      sources."@babel/plugin-transform-reserved-words-7.16.0"
-      (sources."@babel/plugin-transform-runtime-7.16.4" // {
+      sources."@babel/plugin-transform-arrow-functions-7.16.5"
+      sources."@babel/plugin-transform-async-to-generator-7.16.5"
+      sources."@babel/plugin-transform-block-scoped-functions-7.16.5"
+      sources."@babel/plugin-transform-block-scoping-7.16.5"
+      sources."@babel/plugin-transform-classes-7.16.5"
+      sources."@babel/plugin-transform-computed-properties-7.16.5"
+      sources."@babel/plugin-transform-destructuring-7.16.5"
+      sources."@babel/plugin-transform-dotall-regex-7.16.5"
+      sources."@babel/plugin-transform-duplicate-keys-7.16.5"
+      sources."@babel/plugin-transform-exponentiation-operator-7.16.5"
+      sources."@babel/plugin-transform-for-of-7.16.5"
+      sources."@babel/plugin-transform-function-name-7.16.5"
+      sources."@babel/plugin-transform-literals-7.16.5"
+      sources."@babel/plugin-transform-member-expression-literals-7.16.5"
+      sources."@babel/plugin-transform-modules-amd-7.16.5"
+      sources."@babel/plugin-transform-modules-commonjs-7.16.5"
+      sources."@babel/plugin-transform-modules-systemjs-7.16.5"
+      sources."@babel/plugin-transform-modules-umd-7.16.5"
+      sources."@babel/plugin-transform-named-capturing-groups-regex-7.16.5"
+      sources."@babel/plugin-transform-new-target-7.16.5"
+      sources."@babel/plugin-transform-object-super-7.16.5"
+      sources."@babel/plugin-transform-parameters-7.16.5"
+      sources."@babel/plugin-transform-property-literals-7.16.5"
+      sources."@babel/plugin-transform-react-display-name-7.16.5"
+      sources."@babel/plugin-transform-react-jsx-7.16.5"
+      sources."@babel/plugin-transform-react-jsx-development-7.16.5"
+      sources."@babel/plugin-transform-react-pure-annotations-7.16.5"
+      sources."@babel/plugin-transform-regenerator-7.16.5"
+      sources."@babel/plugin-transform-reserved-words-7.16.5"
+      (sources."@babel/plugin-transform-runtime-7.16.5" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
-      sources."@babel/plugin-transform-shorthand-properties-7.16.0"
-      sources."@babel/plugin-transform-spread-7.16.0"
-      sources."@babel/plugin-transform-sticky-regex-7.16.0"
-      sources."@babel/plugin-transform-template-literals-7.16.0"
-      sources."@babel/plugin-transform-typeof-symbol-7.16.0"
-      sources."@babel/plugin-transform-unicode-escapes-7.16.0"
-      sources."@babel/plugin-transform-unicode-regex-7.16.0"
-      (sources."@babel/preset-env-7.16.4" // {
+      sources."@babel/plugin-transform-shorthand-properties-7.16.5"
+      sources."@babel/plugin-transform-spread-7.16.5"
+      sources."@babel/plugin-transform-sticky-regex-7.16.5"
+      sources."@babel/plugin-transform-template-literals-7.16.5"
+      sources."@babel/plugin-transform-typeof-symbol-7.16.5"
+      sources."@babel/plugin-transform-unicode-escapes-7.16.5"
+      sources."@babel/plugin-transform-unicode-regex-7.16.5"
+      (sources."@babel/preset-env-7.16.5" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
       sources."@babel/preset-modules-0.1.5"
-      sources."@babel/preset-react-7.16.0"
+      sources."@babel/preset-react-7.16.5"
       sources."@babel/preset-stage-0-7.8.3"
-      sources."@babel/register-7.16.0"
-      sources."@babel/runtime-7.16.3"
+      sources."@babel/register-7.16.5"
+      sources."@babel/runtime-7.16.5"
       sources."@babel/template-7.16.0"
-      sources."@babel/traverse-7.16.3"
+      sources."@babel/traverse-7.16.5"
       sources."@babel/types-7.16.0"
       sources."@reach/router-1.3.4"
       sources."@sindresorhus/is-0.7.0"
       sources."@types/glob-7.2.0"
       sources."@types/json-schema-7.0.9"
       sources."@types/minimatch-3.0.5"
-      sources."@types/node-16.11.12"
+      sources."@types/node-17.0.0"
       sources."@types/parse-json-4.0.0"
       sources."@types/q-1.5.5"
       sources."@webassemblyjs/ast-1.9.0"
@@ -114695,7 +114710,7 @@ in
         ];
       })
       sources."browserify-zlib-0.1.4"
-      sources."browserslist-4.18.1"
+      sources."browserslist-4.19.1"
       sources."buffer-5.7.1"
       sources."buffer-alloc-1.2.0"
       sources."buffer-alloc-unsafe-1.1.0"
@@ -114729,7 +114744,7 @@ in
       sources."camel-case-3.0.0"
       sources."camelcase-5.3.1"
       sources."caniuse-api-3.0.0"
-      sources."caniuse-lite-1.0.30001286"
+      sources."caniuse-lite-1.0.30001287"
       sources."case-sensitive-paths-webpack-plugin-2.4.0"
       sources."caw-2.0.1"
       sources."chalk-2.4.2"
@@ -114813,7 +114828,7 @@ in
       sources."copy-concurrently-1.0.5"
       sources."copy-descriptor-0.1.1"
       sources."core-js-2.6.12"
-      (sources."core-js-compat-3.19.3" // {
+      (sources."core-js-compat-3.20.0" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
@@ -114957,7 +114972,7 @@ in
       sources."duplexify-3.7.1"
       sources."ee-first-1.1.1"
       sources."ejs-2.7.4"
-      sources."electron-to-chromium-1.4.16"
+      sources."electron-to-chromium-1.4.21"
       (sources."elliptic-6.5.4" // {
         dependencies = [
           sources."bn.js-4.12.0"
@@ -115695,7 +115710,7 @@ in
       (sources."renderkid-2.0.7" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
-          sources."css-select-4.1.3"
+          sources."css-select-4.2.0"
           sources."css-what-5.1.0"
           sources."dom-serializer-1.3.2"
           sources."domelementtype-2.2.0"
@@ -116327,12 +116342,13 @@ in
     };
     dependencies = [
       sources."@babel/code-frame-7.16.0"
-      (sources."@babel/generator-7.16.0" // {
+      (sources."@babel/generator-7.16.5" // {
         dependencies = [
           sources."source-map-0.5.7"
         ];
       })
       sources."@babel/helper-annotate-as-pure-7.16.0"
+      sources."@babel/helper-environment-visitor-7.16.5"
       sources."@babel/helper-function-name-7.16.0"
       sources."@babel/helper-get-function-arity-7.16.0"
       sources."@babel/helper-hoist-variables-7.16.0"
@@ -116340,10 +116356,10 @@ in
       sources."@babel/helper-split-export-declaration-7.16.0"
       sources."@babel/helper-validator-identifier-7.15.7"
       sources."@babel/highlight-7.16.0"
-      sources."@babel/parser-7.16.4"
-      sources."@babel/runtime-7.16.3"
+      sources."@babel/parser-7.16.6"
+      sources."@babel/runtime-7.16.5"
       sources."@babel/template-7.16.0"
-      sources."@babel/traverse-7.16.3"
+      sources."@babel/traverse-7.16.5"
       sources."@babel/types-7.16.0"
       sources."@emotion/is-prop-valid-0.8.8"
       sources."@emotion/memoize-0.7.4"
@@ -116351,7 +116367,7 @@ in
       sources."@emotion/unitless-0.7.5"
       sources."@exodus/schemasafe-1.0.0-rc.6"
       sources."@redocly/ajv-8.6.4"
-      sources."@redocly/openapi-core-1.0.0-beta.69"
+      sources."@redocly/openapi-core-1.0.0-beta.73"
       sources."@redocly/react-dropdown-aria-2.0.12"
       sources."@types/json-schema-7.0.9"
       sources."@types/node-14.18.0"
@@ -116500,7 +116516,7 @@ in
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-1.0.4"
-      sources."mobx-6.3.8"
+      sources."mobx-6.3.9"
       sources."mobx-react-7.2.1"
       sources."mobx-react-lite-3.2.2"
       sources."ms-2.1.2"
@@ -116593,7 +116609,7 @@ in
       sources."to-regex-range-5.0.1"
       sources."tr46-0.0.3"
       sources."tty-browserify-0.0.0"
-      sources."uglify-js-3.14.4"
+      sources."uglify-js-3.14.5"
       (sources."uri-js-4.4.1" // {
         dependencies = [
           sources."punycode-2.1.1"
@@ -116800,10 +116816,10 @@ in
   reveal-md = nodeEnv.buildNodePackage {
     name = "reveal-md";
     packageName = "reveal-md";
-    version = "5.2.0";
+    version = "5.3.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/reveal-md/-/reveal-md-5.2.0.tgz";
-      sha512 = "vd3fS4qP/g7pUwLhbPUONK6YKPcgD3cxExDeZFOq+LRZqLgRWxnzXWMCIPsszvMCo0+n+hXEadNqrf9QrVeWkw==";
+      url = "https://registry.npmjs.org/reveal-md/-/reveal-md-5.3.1.tgz";
+      sha512 = "nh2hjnCwshHNbARfbgdIJq1JHiDuYZDqFGKP7Y/t1/nEb6z2k8XakfUq7Yf+Ew5DC6enBxjYxosUjwZpdg/mpw==";
     };
     dependencies = [
       sources."@sindresorhus/is-0.14.0"
@@ -116855,7 +116871,7 @@ in
       sources."cookie-signature-1.0.6"
       sources."core-util-is-1.0.3"
       sources."crypto-random-string-2.0.0"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."decompress-response-3.3.0"
       sources."deep-extend-0.6.0"
       sources."defer-to-connect-1.1.3"
@@ -116969,7 +116985,7 @@ in
       sources."normalize-url-4.5.1"
       sources."on-finished-2.3.0"
       sources."once-1.4.0"
-      sources."open-8.3.0"
+      sources."open-8.4.0"
       sources."opts-2.0.2"
       sources."p-cancelable-1.1.0"
       (sources."package-json-6.5.0" // {
@@ -117008,7 +117024,7 @@ in
       sources."registry-auth-token-4.2.1"
       sources."registry-url-5.1.0"
       sources."responselike-1.0.2"
-      sources."reveal.js-4.1.3"
+      sources."reveal.js-4.2.1"
       sources."rimraf-2.7.1"
       sources."safe-buffer-5.1.2"
       sources."safer-buffer-2.1.2"
@@ -117115,10 +117131,10 @@ in
   rollup = nodeEnv.buildNodePackage {
     name = "rollup";
     packageName = "rollup";
-    version = "2.61.0";
+    version = "2.61.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/rollup/-/rollup-2.61.0.tgz";
-      sha512 = "teQ+T1mUYbyvGyUavCodiyA9hD4DxwYZJwr/qehZGhs1Z49vsmzelMVYMxGU4ZhGRKxYPupHuz5yzm/wj7VpWA==";
+      url = "https://registry.npmjs.org/rollup/-/rollup-2.61.1.tgz";
+      sha512 = "BbTXlEvB8d+XFbK/7E5doIcRtxWPRiqr0eb5vQ0+2paMM04Ye4PZY5nHOQef2ix24l/L0SpLd5hwcH15QHPdvA==";
     };
     dependencies = [
       sources."fsevents-2.3.2"
@@ -117165,7 +117181,7 @@ in
       sources."@types/mocha-8.2.3"
       sources."@types/node-14.17.34"
       sources."@types/node-fetch-2.5.12"
-      sources."@types/vscode-1.63.0"
+      sources."@types/vscode-1.63.1"
       sources."@typescript-eslint/eslint-plugin-4.33.0"
       sources."@typescript-eslint/experimental-utils-4.33.0"
       sources."@typescript-eslint/parser-4.33.0"
@@ -117236,7 +117252,7 @@ in
       sources."console-control-strings-1.1.0"
       sources."core-util-is-1.0.3"
       sources."cross-spawn-7.0.3"
-      sources."css-select-4.1.3"
+      sources."css-select-4.2.0"
       sources."css-what-5.1.0"
       sources."d3-7.2.1"
       sources."d3-array-3.1.1"
@@ -117591,10 +117607,10 @@ in
       sources."type-check-0.4.0"
       sources."type-fest-0.20.2"
       sources."typed-rest-client-1.8.6"
-      sources."typescript-4.5.3"
+      sources."typescript-4.5.4"
       sources."typescript-formatter-7.2.2"
       sources."uc.micro-1.0.6"
-      sources."underscore-1.13.1"
+      sources."underscore-1.13.2"
       sources."unzipper-0.10.11"
       sources."uri-js-4.4.1"
       sources."url-join-1.1.0"
@@ -117661,7 +117677,7 @@ in
       sources."p-locate-5.0.0"
       sources."path-exists-4.0.0"
       sources."picocolors-1.0.0"
-      sources."postcss-8.4.4"
+      sources."postcss-8.4.5"
       sources."source-map-js-1.0.1"
       sources."strip-json-comments-3.1.1"
       sources."yocto-queue-0.1.0"
@@ -117955,10 +117971,10 @@ in
   serverless = nodeEnv.buildNodePackage {
     name = "serverless";
     packageName = "serverless";
-    version = "2.68.0";
+    version = "2.69.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/serverless/-/serverless-2.68.0.tgz";
-      sha512 = "RFhbwobdTEy/GsisYgLijjamKMpQpPdqD7rKXIFB8Ahfllnk+yFbP0fp/UdOH9qGATik8SISO+0wn5zjrhahxg==";
+      url = "https://registry.npmjs.org/serverless/-/serverless-2.69.1.tgz";
+      sha512 = "pHHr8l6BDDzHIcFqdXDNGIrEbtcm4Lf0dlE3nuHVvmADET+rdl5aOWem9JaHA75cyICybm8oj8FhhtJIt5Uotw==";
     };
     dependencies = [
       sources."2-thenable-1.0.0"
@@ -118050,7 +118066,7 @@ in
       sources."@types/keyv-3.1.3"
       sources."@types/lodash-4.14.178"
       sources."@types/long-4.0.1"
-      sources."@types/node-16.11.12"
+      sources."@types/node-17.0.0"
       sources."@types/request-2.48.7"
       sources."@types/request-promise-native-1.0.18"
       sources."@types/responselike-1.0.0"
@@ -118573,7 +118589,7 @@ in
       sources."path-loader-1.0.10"
       sources."path-type-4.0.0"
       sources."path2-0.1.0"
-      sources."peek-readable-4.0.1"
+      sources."peek-readable-4.0.2"
       sources."pend-1.2.0"
       sources."performance-now-2.1.0"
       sources."picomatch-2.3.0"
@@ -118798,13 +118814,7 @@ in
         ];
       })
       sources."winston-3.2.1"
-      (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."winston-transport-4.4.1"
       (sources."wrap-ansi-7.0.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
@@ -119470,10 +119480,10 @@ in
   snyk = nodeEnv.buildNodePackage {
     name = "snyk";
     packageName = "snyk";
-    version = "1.789.0";
+    version = "1.794.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/snyk/-/snyk-1.789.0.tgz";
-      sha512 = "DaLrZuFyIHoXdUm6umRovVebTGLWHC6V5ouYCtQUwGSFCia2RhDWZOptEE+MJNrbr1xxJPxTp3ZfwjiXt3//jA==";
+      url = "https://registry.npmjs.org/snyk/-/snyk-1.794.0.tgz";
+      sha512 = "o2SVajU3FKSn2n56NsCRDroENk4r0GVKX1+++Zle2hPKILNaLZVwtcPAN1NqTFl9WBFAAzcbYzq8ltLopdcADg==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -119497,7 +119507,7 @@ in
       sources."@types/component-emitter-1.2.11"
       sources."@types/cookie-0.4.1"
       sources."@types/cors-2.8.12"
-      sources."@types/node-16.11.12"
+      sources."@types/node-17.0.0"
       sources."accepts-1.3.7"
       sources."base64-arraybuffer-1.0.1"
       sources."base64id-2.0.0"
@@ -120040,7 +120050,7 @@ in
       sources."is-valid-domain-0.0.20"
       sources."is-weakmap-2.0.1"
       sources."is-weakref-1.0.2"
-      sources."is-weakset-2.0.1"
+      sources."is-weakset-2.0.2"
       sources."is-windows-1.0.2"
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
@@ -120459,7 +120469,7 @@ in
         ];
       })
       sources."ssb-db-19.2.0"
-      (sources."ssb-db2-2.8.2" // {
+      (sources."ssb-db2-2.8.3" // {
         dependencies = [
           sources."abstract-leveldown-6.2.3"
           (sources."flumecodec-0.0.1" // {
@@ -120808,10 +120818,10 @@ in
       sources."content-type-1.0.4"
       sources."convert-to-ecmascript-compatible-varname-0.1.5"
       sources."cookie-0.4.0"
-      (sources."cookie-session-2.0.0-rc.1" // {
+      (sources."cookie-session-2.0.0" // {
         dependencies = [
-          sources."debug-3.2.6"
-          sources."safe-buffer-5.2.0"
+          sources."debug-3.2.7"
+          sources."safe-buffer-5.2.1"
         ];
       })
       sources."cookie-signature-1.0.6"
@@ -120902,6 +120912,7 @@ in
           sources."proxy-addr-2.0.7"
           sources."qs-6.7.0"
           sources."raw-body-2.4.0"
+          sources."serve-static-1.14.1"
           sources."setprototypeof-1.1.1"
           sources."toidentifier-1.0.0"
         ];
@@ -121263,7 +121274,11 @@ in
           sources."safe-buffer-5.1.1"
         ];
       })
-      sources."serve-static-1.14.1"
+      (sources."serve-static-1.14.2" // {
+        dependencies = [
+          sources."send-0.17.2"
+        ];
+      })
       sources."set-blocking-2.0.0"
       sources."setprototypeof-1.2.0"
       sources."shebang-command-1.2.0"
@@ -121642,7 +121657,7 @@ in
       sources."path-type-4.0.0"
       sources."picocolors-1.0.0"
       sources."picomatch-2.3.0"
-      sources."postcss-8.4.4"
+      sources."postcss-8.4.5"
       sources."postcss-media-query-parser-0.2.3"
       sources."postcss-resolve-nested-selector-0.1.1"
       sources."postcss-safe-parser-6.0.0"
@@ -121731,7 +121746,7 @@ in
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@types/node-16.11.12"
+      sources."@types/node-17.0.0"
       sources."@types/pug-2.0.5"
       sources."@types/sass-1.43.1"
       sources."ansi-styles-4.3.0"
@@ -121791,9 +121806,9 @@ in
       sources."sourcemap-codec-1.4.8"
       sources."strip-indent-3.0.0"
       sources."supports-color-7.2.0"
-      sources."svelte-preprocess-4.9.8"
+      sources."svelte-preprocess-4.10.0"
       sources."to-regex-range-5.0.1"
-      sources."typescript-4.5.3"
+      sources."typescript-4.5.4"
       sources."wrappy-1.0.2"
     ];
     buildInputs = globalBuildInputs;
@@ -121821,7 +121836,7 @@ in
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@types/node-16.11.12"
+      sources."@types/node-17.0.0"
       sources."@types/pug-2.0.5"
       sources."@types/sass-1.43.1"
       sources."anymatch-3.1.2"
@@ -121834,7 +121849,7 @@ in
       sources."concat-map-0.0.1"
       sources."dedent-js-1.0.1"
       sources."detect-indent-6.1.0"
-      sources."emmet-2.3.4"
+      sources."emmet-2.3.5"
       sources."es6-promise-3.3.1"
       sources."estree-walker-2.0.2"
       sources."fast-glob-3.2.7"
@@ -121884,7 +121899,7 @@ in
       sources."svelte2tsx-0.4.11"
       sources."to-regex-range-5.0.1"
       sources."tslib-2.3.1"
-      sources."typescript-4.5.3"
+      sources."typescript-4.5.4"
       sources."vscode-css-languageservice-5.1.9"
       (sources."vscode-emmet-helper-2.6.4" // {
         dependencies = [
@@ -121927,7 +121942,7 @@ in
       sources."@trysound/sax-0.2.0"
       sources."boolbase-1.0.0"
       sources."commander-7.2.0"
-      sources."css-select-4.1.3"
+      sources."css-select-4.2.0"
       sources."css-tree-1.1.3"
       sources."css-what-5.1.0"
       sources."csso-4.2.0"
@@ -122183,7 +122198,7 @@ in
           sources."kind-of-4.0.0"
         ];
       })
-      sources."http-errors-1.7.3"
+      sources."http-errors-1.8.1"
       sources."iconv-lite-0.4.8"
       sources."ignore-by-default-1.0.1"
       sources."import-lazy-2.1.0"
@@ -122407,19 +122422,19 @@ in
       sources."sanitize-filename-1.6.3"
       sources."semver-5.7.1"
       sources."semver-diff-2.1.0"
-      (sources."send-0.17.1" // {
+      (sources."send-0.17.2" // {
         dependencies = [
-          sources."ms-2.1.1"
+          sources."ms-2.1.3"
         ];
       })
-      sources."serve-static-1.14.1"
+      sources."serve-static-1.14.2"
       (sources."set-value-2.0.1" // {
         dependencies = [
           sources."extend-shallow-2.0.1"
           sources."is-extendable-0.1.1"
         ];
       })
-      sources."setprototypeof-1.1.1"
+      sources."setprototypeof-1.2.0"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
       sources."side-channel-1.0.4"
@@ -122530,13 +122545,13 @@ in
       })
       sources."to-regex-3.0.2"
       sources."to-regex-range-2.1.1"
-      sources."toidentifier-1.0.0"
+      sources."toidentifier-1.0.1"
       sources."touch-3.1.0"
       sources."traverse-0.6.6"
       sources."truncate-utf8-bytes-1.0.2"
       sources."type-is-1.6.18"
       sources."typedarray-0.0.6"
-      sources."uglify-js-3.14.4"
+      sources."uglify-js-3.14.5"
       sources."undefsafe-2.0.5"
       (sources."union-value-1.0.1" // {
         dependencies = [
@@ -122596,10 +122611,10 @@ in
   tailwindcss = nodeEnv.buildNodePackage {
     name = "tailwindcss";
     packageName = "tailwindcss";
-    version = "3.0.1";
+    version = "3.0.6";
     src = fetchurl {
-      url = "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.1.tgz";
-      sha512 = "EVDXVZkcueZ77/zfOJw7XkzCuxe5TCiT/S9pw9P183oRzSuwMZ7WO+W/L76jbJQA5qxGeUBJOVOLVBuAUfeZ3g==";
+      url = "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.6.tgz";
+      sha512 = "+CA2f09rbHFDsdQ1iDvsOGbF1tZFmyPoRhUeaF9/5FRT5GYObtp+UjTSCdmeDcu6T90bx4WAaOkddYFPBkjbAA==";
     };
     dependencies = [
       sources."@babel/code-frame-7.16.0"
@@ -122695,7 +122710,7 @@ in
       sources."path-type-4.0.0"
       sources."picocolors-1.0.0"
       sources."picomatch-2.3.0"
-      sources."postcss-8.4.4"
+      sources."postcss-8.4.5"
       sources."postcss-js-3.0.3"
       sources."postcss-load-config-3.1.0"
       sources."postcss-nested-5.0.6"
@@ -124059,7 +124074,7 @@ in
       sources."@types/cors-2.8.12"
       sources."@types/http-cache-semantics-4.0.1"
       sources."@types/keyv-3.1.3"
-      sources."@types/node-16.11.12"
+      sources."@types/node-17.0.0"
       sources."@types/responselike-1.0.0"
       sources."abbrev-1.1.1"
       sources."abstract-logging-2.0.1"
@@ -124125,10 +124140,10 @@ in
       sources."content-type-1.0.4"
       sources."cookie-0.4.0"
       sources."cookie-signature-1.0.6"
-      sources."core-js-3.19.3"
+      sources."core-js-3.20.0"
       sources."core-util-is-1.0.2"
       sources."cors-2.8.5"
-      sources."css-select-4.1.3"
+      sources."css-select-4.2.0"
       sources."css-what-5.1.0"
       sources."dashdash-1.14.1"
       sources."debug-2.6.9"
@@ -124364,7 +124379,7 @@ in
       sources."parseurl-1.3.3"
       sources."path-is-absolute-1.0.1"
       sources."path-to-regexp-0.1.7"
-      sources."peek-readable-4.0.1"
+      sources."peek-readable-4.0.2"
       sources."performance-now-2.1.0"
       sources."pify-4.0.1"
       sources."precond-0.2.3"
@@ -124960,10 +124975,10 @@ in
   typescript = nodeEnv.buildNodePackage {
     name = "typescript";
     packageName = "typescript";
-    version = "4.5.3";
+    version = "4.5.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/typescript/-/typescript-4.5.3.tgz";
-      sha512 = "eVYaEHALSt+s9LbvgEv4Ef+Tdq7hBiIZgii12xXJnukryt3pMgJf6aKhoCZ3FWQsu6sydEnkg11fYXLzhLBjeQ==";
+      url = "https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz";
+      sha512 = "VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -125070,10 +125085,10 @@ in
   uglify-js = nodeEnv.buildNodePackage {
     name = "uglify-js";
     packageName = "uglify-js";
-    version = "3.14.4";
+    version = "3.14.5";
     src = fetchurl {
-      url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.4.tgz";
-      sha512 = "AbiSR44J0GoCeV81+oxcy/jDOElO2Bx3d0MfQCUShq7JRXaM4KtQopZsq2vFv8bCq2yMaGrw1FgygUd03RyRDA==";
+      url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.5.tgz";
+      sha512 = "qZukoSxOG0urUTvjc2ERMTcAy+BiFh3weWAkeurLwjrCba73poHmG3E36XEjd/JGukMzwTL7uCxZiAexj8ppvQ==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -125161,7 +125176,6 @@ in
       sources."cookie-0.4.1"
       sources."cookie-parser-1.4.6"
       sources."cookie-signature-1.0.6"
-      sources."core-util-is-1.0.3"
       sources."cors-2.8.5"
       sources."crossroads-0.12.2"
       sources."debug-2.6.9"
@@ -125200,6 +125214,7 @@ in
           sources."inherits-2.0.3"
           sources."qs-6.7.0"
           sources."raw-body-2.4.0"
+          sources."serve-static-1.14.1"
           sources."setprototypeof-1.1.1"
           sources."toidentifier-1.0.0"
         ];
@@ -125240,7 +125255,6 @@ in
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-stream-2.0.1"
       sources."is-wsl-2.2.0"
-      sources."isarray-1.0.0"
       sources."jquery-3.6.0"
       sources."jquery-ui-1.12.1"
       sources."json-buffer-3.0.0"
@@ -125301,7 +125315,6 @@ in
       sources."path-to-regexp-0.1.7"
       sources."pause-0.0.1"
       sources."prepend-http-2.0.0"
-      sources."process-nextick-args-2.0.1"
       sources."proxy-addr-2.0.7"
       sources."pseudomap-1.0.2"
       sources."pump-3.0.0"
@@ -125334,7 +125347,12 @@ in
           sources."toidentifier-1.0.0"
         ];
       })
-      sources."serve-static-1.14.1"
+      (sources."serve-static-1.14.2" // {
+        dependencies = [
+          sources."ms-2.1.3"
+          sources."send-0.17.2"
+        ];
+      })
       sources."setprototypeof-1.2.0"
       sources."signals-1.0.0"
       sources."simple-swizzle-0.2.2"
@@ -125380,12 +125398,7 @@ in
       sources."utils-merge-1.0.1"
       sources."vary-1.1.2"
       sources."winston-3.3.3"
-      (sources."winston-transport-4.4.0" // {
-        dependencies = [
-          sources."readable-stream-2.3.7"
-          sources."string_decoder-1.1.1"
-        ];
-      })
+      sources."winston-transport-4.4.1"
       sources."wrap-ansi-7.0.0"
       sources."wrappy-1.0.2"
       sources."ws-7.4.6"
@@ -125413,7 +125426,7 @@ in
       sha512 = "N+ENrder8z9zJQF9UM7K3/1LcfVW60omqeyaQsu6GN1BGdCgPm8gdHssn7WRD7vx+ABKc82IE1+pJyHOPkwe+w==";
     };
     dependencies = [
-      sources."@types/node-16.11.12"
+      sources."@types/node-17.0.0"
       sources."@types/unist-2.0.6"
       sources."@types/vfile-3.0.2"
       sources."@types/vfile-message-2.0.0"
@@ -125564,7 +125577,7 @@ in
       sha512 = "UuxW79x2n0bYBexa3vblI2o4CPhIJTBGvA0remuNm74RjkjMkDHMXDriCs5sYQ7jYyekvROmvmC9t/Pn0g0+6Q==";
     };
     dependencies = [
-      sources."@mapbox/node-pre-gyp-1.0.7"
+      sources."@mapbox/node-pre-gyp-1.0.8"
       sources."@types/estree-0.0.50"
       sources."abbrev-1.1.1"
       sources."agent-base-6.0.2"
@@ -125611,7 +125624,7 @@ in
       sources."fs-minipass-2.1.0"
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.1"
-      sources."gauge-4.0.0"
+      sources."gauge-3.0.2"
       sources."get-caller-file-2.0.5"
       sources."glob-7.2.0"
       sources."has-1.0.3"
@@ -125638,7 +125651,8 @@ in
       sources."nan-2.15.0"
       sources."node-fetch-2.6.6"
       sources."nopt-5.0.0"
-      sources."npmlog-6.0.0"
+      sources."npmlog-5.0.1"
+      sources."object-assign-4.1.1"
       sources."once-1.4.0"
       sources."path-is-absolute-1.0.1"
       sources."path-parse-1.0.7"
@@ -125769,7 +125783,7 @@ in
     dependencies = [
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
-      sources."@types/node-16.11.12"
+      sources."@types/node-17.0.0"
       sources."@vercel/build-utils-2.12.2"
       sources."@vercel/go-1.2.3"
       sources."@vercel/node-1.12.1"
@@ -126074,7 +126088,7 @@ in
       sources."tsutils-2.29.0"
       sources."type-check-0.4.0"
       sources."type-fest-0.20.2"
-      sources."typescript-4.5.3"
+      sources."typescript-4.5.4"
       sources."uri-js-4.4.1"
       sources."v8-compile-cache-2.3.0"
       (sources."vue-eslint-parser-7.11.0" // {
@@ -126267,9 +126281,9 @@ in
     dependencies = [
       sources."jsonc-parser-3.0.0"
       sources."request-light-0.5.5"
-      sources."typescript-4.5.3"
+      sources."typescript-4.5.4"
       sources."vscode-css-languageservice-5.1.9"
-      sources."vscode-html-languageservice-4.2.0"
+      sources."vscode-html-languageservice-4.2.1"
       sources."vscode-json-languageservice-4.2.0-next.2"
       sources."vscode-jsonrpc-8.0.0-next.4"
       sources."vscode-languageserver-8.0.0-next.5"
@@ -126302,12 +126316,12 @@ in
     dependencies = [
       sources."@discoveryjs/json-ext-0.5.6"
       sources."@types/eslint-8.2.1"
-      sources."@types/eslint-scope-3.7.1"
+      sources."@types/eslint-scope-3.7.2"
       sources."@types/estree-0.0.50"
       sources."@types/json-schema-7.0.9"
       sources."@types/mocha-7.0.2"
       sources."@types/node-8.10.66"
-      sources."@types/vscode-1.63.0"
+      sources."@types/vscode-1.63.1"
       sources."@types/yauzl-2.9.2"
       sources."@ungap/promise-all-settled-1.1.2"
       sources."@webassemblyjs/ast-1.11.1"
@@ -126347,12 +126361,12 @@ in
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
       sources."browser-stdout-1.3.1"
-      sources."browserslist-4.18.1"
+      sources."browserslist-4.19.1"
       sources."buffer-crc32-0.2.13"
       sources."buffer-from-1.1.2"
       sources."call-bind-1.0.2"
       sources."camelcase-6.2.1"
-      sources."caniuse-lite-1.0.30001286"
+      sources."caniuse-lite-1.0.30001287"
       (sources."chalk-4.1.2" // {
         dependencies = [
           sources."supports-color-7.2.0"
@@ -126378,7 +126392,7 @@ in
       sources."concat-map-0.0.1"
       sources."core-util-is-1.0.3"
       sources."cross-spawn-7.0.3"
-      sources."css-select-4.1.3"
+      sources."css-select-4.2.0"
       sources."css-what-5.1.0"
       (sources."debug-4.3.1" // {
         dependencies = [
@@ -126392,7 +126406,7 @@ in
       sources."domelementtype-2.2.0"
       sources."domhandler-4.3.0"
       sources."domutils-2.8.0"
-      sources."electron-to-chromium-1.4.16"
+      sources."electron-to-chromium-1.4.21"
       sources."emoji-regex-8.0.0"
       sources."emojis-list-3.0.0"
       sources."enhanced-resolve-5.8.3"
@@ -126451,7 +126465,7 @@ in
       sources."isarray-0.0.1"
       sources."isexe-2.0.0"
       sources."isobject-3.0.1"
-      sources."jest-worker-27.4.4"
+      sources."jest-worker-27.4.5"
       sources."js-yaml-4.0.0"
       sources."json-parse-better-errors-1.0.2"
       sources."json-schema-traverse-0.4.1"
@@ -126564,7 +126578,7 @@ in
           sources."source-map-0.7.3"
         ];
       })
-      (sources."terser-webpack-plugin-5.2.5" // {
+      (sources."terser-webpack-plugin-5.3.0" // {
         dependencies = [
           sources."serialize-javascript-6.0.0"
         ];
@@ -126581,9 +126595,9 @@ in
       sources."tslib-2.3.1"
       sources."tunnel-0.0.6"
       sources."typed-rest-client-1.8.6"
-      sources."typescript-4.5.3"
+      sources."typescript-4.5.4"
       sources."uc.micro-1.0.6"
-      sources."underscore-1.13.1"
+      sources."underscore-1.13.2"
       sources."uri-js-4.4.1"
       sources."url-join-1.1.0"
       sources."util-deprecate-1.0.2"
@@ -126899,7 +126913,7 @@ in
       sources."tslib-1.14.1"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
-      sources."uglify-js-3.14.4"
+      sources."uglify-js-3.14.5"
       sources."uid-0.0.2"
       sources."unbzip2-stream-1.4.3"
       sources."unyield-0.0.1"
@@ -126962,7 +126976,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-16.11.12"
+      sources."@types/node-17.0.0"
       sources."@types/unist-2.0.6"
       sources."@types/vfile-3.0.2"
       sources."@types/vfile-message-2.0.0"
@@ -127887,8 +127901,8 @@ in
       sha512 = "slGcIXCA/j5d2uzQ7flA4/veF0P0eE+Om/Bw7uEO2LC9a3mVNdB+2bSR1CILMjvgyFy9Q9D6eseomQgp7UW5Dg==";
     };
     dependencies = [
-      sources."@babel/runtime-corejs3-7.16.3"
-      sources."@mapbox/node-pre-gyp-1.0.7"
+      sources."@babel/runtime-corejs3-7.16.5"
+      sources."@mapbox/node-pre-gyp-1.0.8"
       sources."@tootallnate/once-1.1.2"
       sources."@types/raf-3.4.0"
       sources."abab-2.0.5"
@@ -127922,7 +127936,7 @@ in
       sources."combined-stream-1.0.8"
       sources."concat-map-0.0.1"
       sources."console-control-strings-1.1.0"
-      sources."core-js-pure-3.19.3"
+      sources."core-js-pure-3.20.0"
       sources."cssom-0.4.4"
       (sources."cssstyle-2.3.0" // {
         dependencies = [
@@ -127959,7 +127973,7 @@ in
       sources."fs-extra-10.0.0"
       sources."fs-minipass-2.1.0"
       sources."fs.realpath-1.0.0"
-      sources."gauge-4.0.0"
+      sources."gauge-3.0.2"
       sources."get-caller-file-2.0.5"
       sources."glob-7.2.0"
       sources."graceful-fs-4.2.8"
@@ -128002,8 +128016,9 @@ in
       sources."nan-2.15.0"
       sources."node-fetch-2.6.6"
       sources."nopt-5.0.0"
-      sources."npmlog-6.0.0"
+      sources."npmlog-5.0.1"
       sources."nwsapi-2.2.0"
+      sources."object-assign-4.1.1"
       sources."once-1.4.0"
       sources."onml-2.1.0"
       sources."optionator-0.8.3"
@@ -128120,7 +128135,7 @@ in
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
       sources."@types/minimatch-3.0.5"
-      sources."@types/node-16.11.12"
+      sources."@types/node-17.0.0"
       sources."@types/yauzl-2.9.2"
       sources."acorn-8.6.0"
       sources."acorn-jsx-5.3.2"
@@ -128208,7 +128223,7 @@ in
       sources."core-util-is-1.0.3"
       sources."cross-spawn-7.0.3"
       sources."crypto-random-string-2.0.0"
-      sources."css-select-4.1.3"
+      sources."css-select-4.2.0"
       sources."css-what-5.1.0"
       sources."dashdash-1.14.1"
       sources."debounce-1.2.0"
@@ -128662,10 +128677,10 @@ in
     };
     dependencies = [
       sources."@types/eslint-8.2.1"
-      sources."@types/eslint-scope-3.7.1"
+      sources."@types/eslint-scope-3.7.2"
       sources."@types/estree-0.0.50"
       sources."@types/json-schema-7.0.9"
-      sources."@types/node-16.11.12"
+      sources."@types/node-17.0.0"
       sources."@webassemblyjs/ast-1.11.1"
       sources."@webassemblyjs/floating-point-hex-parser-1.11.1"
       sources."@webassemblyjs/helper-api-error-1.11.1"
@@ -128687,12 +128702,12 @@ in
       sources."acorn-import-assertions-1.8.0"
       sources."ajv-6.12.6"
       sources."ajv-keywords-3.5.2"
-      sources."browserslist-4.18.1"
+      sources."browserslist-4.19.1"
       sources."buffer-from-1.1.2"
-      sources."caniuse-lite-1.0.30001286"
+      sources."caniuse-lite-1.0.30001287"
       sources."chrome-trace-event-1.0.3"
       sources."commander-2.20.3"
-      sources."electron-to-chromium-1.4.16"
+      sources."electron-to-chromium-1.4.21"
       sources."enhanced-resolve-5.8.3"
       sources."es-module-lexer-0.9.3"
       sources."escalade-3.1.1"
@@ -128709,7 +128724,7 @@ in
       sources."glob-to-regexp-0.4.1"
       sources."graceful-fs-4.2.8"
       sources."has-flag-4.0.0"
-      sources."jest-worker-27.4.4"
+      sources."jest-worker-27.4.5"
       sources."json-parse-better-errors-1.0.2"
       sources."json-schema-traverse-0.4.1"
       sources."loader-runner-4.2.0"
@@ -128733,7 +128748,7 @@ in
           sources."source-map-0.7.3"
         ];
       })
-      sources."terser-webpack-plugin-5.2.5"
+      sources."terser-webpack-plugin-5.3.0"
       sources."uri-js-4.4.1"
       sources."watchpack-2.3.1"
       sources."webpack-sources-3.2.2"
@@ -128828,9 +128843,9 @@ in
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@types/http-proxy-1.17.7"
+      sources."@types/http-proxy-1.17.8"
       sources."@types/json-schema-7.0.9"
-      sources."@types/node-16.11.12"
+      sources."@types/node-17.0.0"
       sources."@types/retry-0.12.1"
       sources."accepts-1.3.7"
       sources."aggregate-error-3.1.0"
@@ -129096,7 +129111,7 @@ in
       sources."uuid-8.3.2"
       sources."vary-1.1.2"
       sources."wbuf-1.7.3"
-      sources."webpack-dev-middleware-5.2.2"
+      sources."webpack-dev-middleware-5.3.0"
       sources."websocket-driver-0.7.4"
       sources."websocket-extensions-0.1.4"
       sources."which-2.0.2"
@@ -129116,10 +129131,10 @@ in
   copy-webpack-plugin = nodeEnv.buildNodePackage {
     name = "copy-webpack-plugin";
     packageName = "copy-webpack-plugin";
-    version = "10.1.0";
+    version = "10.2.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-10.1.0.tgz";
-      sha512 = "dPGo+zoW77wiF5LlwkQcZTY7FsrSm7dmovhLDHsjYyciiJ+ZhLFt2EQbw9LRUHJ586JXN0K1A70Kbudclvt00Q==";
+      url = "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-10.2.0.tgz";
+      sha512 = "my6iXII95c78w14HzYCNya5TlJYa44lOppAge5GSTMM1SyDxNsVGCJvhP4/ld6snm8lzjn3XOonMZD6s1L86Og==";
     };
     dependencies = [
       sources."@nodelib/fs.scandir-2.1.5"
@@ -129196,7 +129211,7 @@ in
       sources."@protobufjs/pool-1.1.0"
       sources."@protobufjs/utf8-1.1.0"
       sources."@types/long-4.0.1"
-      sources."@types/node-16.11.12"
+      sources."@types/node-17.0.0"
       sources."addr-to-ip-port-1.5.4"
       sources."airplay-js-0.3.0"
       sources."ansi-regex-5.0.1"
@@ -129683,7 +129698,7 @@ in
       sha512 = "0V5CpR62BY1EOevIxXq5BL84YJeIunEzRsFlqb00tc7D77I51/0bvgdGRZhEwhNI2rFxKZ1i77eoisT56gfMTQ==";
     };
     dependencies = [
-      sources."@babel/runtime-7.16.3"
+      sources."@babel/runtime-7.16.5"
       sources."@gar/promisify-1.1.2"
       sources."@isaacs/string-locale-compare-1.1.0"
       sources."@nodelib/fs.scandir-2.1.5"
@@ -129844,7 +129859,7 @@ in
       sources."config-chain-1.1.13"
       sources."configstore-3.1.5"
       sources."console-control-strings-1.1.0"
-      sources."core-js-3.19.3"
+      sources."core-js-3.20.0"
       sources."core-util-is-1.0.3"
       sources."create-error-class-3.0.2"
       sources."cross-spawn-6.0.5"
@@ -130555,13 +130570,7 @@ in
             ];
           })
           sources."find-up-5.0.0"
-          (sources."gauge-3.0.1" // {
-            dependencies = [
-              sources."is-fullwidth-code-point-2.0.0"
-              sources."string-width-2.1.1"
-              sources."strip-ansi-4.0.0"
-            ];
-          })
+          sources."gauge-3.0.2"
           sources."get-stream-6.0.1"
           sources."has-flag-4.0.0"
           sources."inquirer-8.2.0"
@@ -130630,7 +130639,7 @@ in
       sources."@nodelib/fs.walk-1.2.8"
       sources."@types/fs-extra-9.0.13"
       sources."@types/minimist-1.2.2"
-      sources."@types/node-16.11.12"
+      sources."@types/node-16.11.14"
       sources."@types/node-fetch-2.5.12"
       sources."ansi-styles-4.3.0"
       sources."array-union-3.0.1"
diff --git a/pkgs/development/ocaml-modules/containers/default.nix b/pkgs/development/ocaml-modules/containers/default.nix
index de6c8076ced..281fbfbfde8 100644
--- a/pkgs/development/ocaml-modules/containers/default.nix
+++ b/pkgs/development/ocaml-modules/containers/default.nix
@@ -1,11 +1,11 @@
 { lib, fetchFromGitHub, buildDunePackage, ocaml
 , dune-configurator
-, seq
+, either, seq
 , gen, iter, ounit, qcheck, uutf
 }:
 
 buildDunePackage rec {
-  version = "3.4";
+  version = "3.6.1";
   pname = "containers";
 
   useDune2 = true;
@@ -14,11 +14,11 @@ buildDunePackage rec {
     owner = "c-cube";
     repo = "ocaml-containers";
     rev = "v${version}";
-    sha256 = "0ixpy81p6rc3lq71djfndb2sg2hfj20j1jbzzrrmgqsysqdjsgzz";
+    sha256 = "sha256:1k8xrs3nki8g875sig9f5v6k4vwxrk5gn7ixrlkkys5ksbr4kis7";
   };
 
   buildInputs = [ dune-configurator ];
-  propagatedBuildInputs = [ seq ];
+  propagatedBuildInputs = [ either seq ];
 
   checkInputs = [ gen iter ounit qcheck uutf ];
 
diff --git a/pkgs/development/ocaml-modules/iter/default.nix b/pkgs/development/ocaml-modules/iter/default.nix
index 34e14baea7c..4fa7e42c5d5 100644
--- a/pkgs/development/ocaml-modules/iter/default.nix
+++ b/pkgs/development/ocaml-modules/iter/default.nix
@@ -4,15 +4,15 @@
 
 buildDunePackage rec {
   pname = "iter";
-  version = "1.2.1";
+  version = "1.3";
 
   useDune2 = true;
 
   src = fetchFromGitHub {
     owner = "c-cube";
     repo = pname;
-    rev = version;
-    sha256 = "0j2sg50byn0ppmf6l36ksip7zx1d3gv7sc4hbbxs2rmx39jr7vxh";
+    rev = "v${version}";
+    sha256 = "sha256:0xgkplpbi41sw0yv1wfd12cfbybls6cal8qxddmd9x8khgk5s3vx";
   };
 
   buildInputs = [ dune-configurator ];
diff --git a/pkgs/development/ocaml-modules/mdx/default.nix b/pkgs/development/ocaml-modules/mdx/default.nix
index 2677f56584e..e5132d64d4d 100644
--- a/pkgs/development/ocaml-modules/mdx/default.nix
+++ b/pkgs/development/ocaml-modules/mdx/default.nix
@@ -5,12 +5,12 @@
 
 buildDunePackage rec {
   pname = "mdx";
-  version = "1.11.0";
+  version = "1.11.1";
   useDune2 = true;
 
   src = fetchurl {
     url = "https://github.com/realworldocaml/mdx/releases/download/${version}/mdx-${version}.tbz";
-    sha256 = "1hk8ffh3d9hiibrj6691khnbmjnfs9psmiawnrbgi0577bw030wx";
+    sha256 = "sha256:1q6169gmynnbrvlnzlmx7lpd6hwv6vwxg5j8ibc88wgs5s0r0fb0";
   };
 
   nativeBuildInputs = [ cppo ];
diff --git a/pkgs/development/ocaml-modules/mirage/runtime.nix b/pkgs/development/ocaml-modules/mirage/runtime.nix
index 4a876658d18..ce50ffd2c3a 100644
--- a/pkgs/development/ocaml-modules/mirage/runtime.nix
+++ b/pkgs/development/ocaml-modules/mirage/runtime.nix
@@ -3,7 +3,7 @@
 
 buildDunePackage rec {
   pname = "mirage-runtime";
-  version = "3.10.4";
+  version = "3.10.7";
 
   useDune2 = true;
 
@@ -11,7 +11,7 @@ buildDunePackage rec {
 
   src = fetchurl {
     url = "https://github.com/mirage/mirage/releases/download/v${version}/mirage-v${version}.tbz";
-    sha256 = "c2ea22b6faf16bed783cac0e0bafd87f321756a91798f56c9a930f0edb5d9116";
+    sha256 = "fec4492239c6d1fdd73db4da0782e33e66202e19595bf1d52aa98972296cc72d";
   };
 
   propagatedBuildInputs = [ ipaddr functoria-runtime fmt logs ocaml_lwt ];
diff --git a/pkgs/development/ocaml-modules/parany/default.nix b/pkgs/development/ocaml-modules/parany/default.nix
index 29213031f35..4f072391deb 100644
--- a/pkgs/development/ocaml-modules/parany/default.nix
+++ b/pkgs/development/ocaml-modules/parany/default.nix
@@ -2,7 +2,7 @@
 
 buildDunePackage rec {
   pname = "parany";
-  version = "12.1.1";
+  version = "12.1.2";
 
   useDune2 = true;
   minimumOCamlVersion = "4.03.0";
@@ -11,7 +11,7 @@ buildDunePackage rec {
     owner = "UnixJunkie";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0s2sbmywy4yyh69dcrcqd85hd8jcd7qgfczy79nam4bvn87bjm72";
+    sha256 = "yOeJzb2Wr6jA4efI9/fuqDCl/Tza3zxT3YjAiJmhHHg=";
   };
 
   propagatedBuildInputs = [ ocamlnet cpu ];
diff --git a/pkgs/development/ocaml-modules/sha/default.nix b/pkgs/development/ocaml-modules/sha/default.nix
index 80a5205a230..c1a76e4149e 100644
--- a/pkgs/development/ocaml-modules/sha/default.nix
+++ b/pkgs/development/ocaml-modules/sha/default.nix
@@ -2,11 +2,11 @@
 
 buildDunePackage rec {
   pname = "sha";
-  version = "1.14";
+  version = "1.15.1";
 
   src = fetchurl {
     url = "https://github.com/djs55/ocaml-${pname}/releases/download/v${version}/${pname}-v${version}.tbz";
-    sha256 = "114vydrfdp7fayigvgk3ckiby0kh4n49c1j53v8k40gk6nzm3l19";
+    sha256 = "sha256-cRtjydvwgXgimi6F3C48j7LrWgfMO6m9UJKjKlxvp0Q=";
   };
 
   useDune2 = true;
diff --git a/pkgs/development/ocaml-modules/wayland/default.nix b/pkgs/development/ocaml-modules/wayland/default.nix
index 82764af64f5..7dfb46ce63c 100644
--- a/pkgs/development/ocaml-modules/wayland/default.nix
+++ b/pkgs/development/ocaml-modules/wayland/default.nix
@@ -12,15 +12,15 @@
 
 buildDunePackage rec {
   pname = "wayland";
-  version = "0.2";
+  version = "1.0";
 
   minimumOCamlVersion = "4.08";
 
   useDune2 = true;
 
   src = fetchurl {
-    url = "https://github.com/talex5/ocaml-wayland/releases/download/v${version}/wayland-v${version}.tbz";
-    sha256 = "4eb323e42a8c64e9e49b15a588342bfcc1e99640305cb261d128c75612d9458c";
+    url = "https://github.com/talex5/ocaml-wayland/releases/download/v${version}/wayland-${version}.tbz";
+    sha256 = "bf8fd0057242d11f1c265c11cfa5de3c517ec0ad5994eae45e1efe3aac034510";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/ocaml-modules/yaml/default.nix b/pkgs/development/ocaml-modules/yaml/default.nix
index 2b8714ed103..43481e4c7f3 100644
--- a/pkgs/development/ocaml-modules/yaml/default.nix
+++ b/pkgs/development/ocaml-modules/yaml/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchurl, buildDunePackage
+{ lib, fetchurl, buildDunePackage, ocaml
 , dune-configurator
 , bos, ctypes, fmt, logs, rresult
 , mdx, alcotest, crowbar, junit_alcotest, ezjsonm
@@ -17,7 +17,9 @@ buildDunePackage rec {
 
   buildInputs = [ dune-configurator ];
   propagatedBuildInputs = [ bos ctypes rresult ];
-  checkInputs = [ fmt logs mdx alcotest crowbar junit_alcotest ezjsonm ];
+  # crowbar is not available for OCaml < 4.08
+  doCheck = lib.versionAtLeast ocaml.version "4.08";
+  checkInputs = [ fmt logs mdx.bin alcotest crowbar junit_alcotest ezjsonm ];
 
   meta = {
     description = "Parse and generate YAML 1.1 files";
diff --git a/pkgs/development/php-packages/psysh/default.nix b/pkgs/development/php-packages/psysh/default.nix
index d1780f09aef..b3ca5edebf9 100644
--- a/pkgs/development/php-packages/psysh/default.nix
+++ b/pkgs/development/php-packages/psysh/default.nix
@@ -1,14 +1,14 @@
 { mkDerivation, fetchurl, makeWrapper, lib, php }:
 let
   pname = "psysh";
-  version = "0.10.12";
+  version = "0.11.0";
 in
 mkDerivation {
   inherit pname version;
 
   src = fetchurl {
     url = "https://github.com/bobthecow/psysh/releases/download/v${version}/psysh-v${version}.tar.gz";
-    sha256 = "sha256-UJ44PgVdXw++gfKZgBTjOBFRj3GL0WUB7I0Qpdzrijw=";
+    sha256 = "sha256-UIAeOVbKWcfNV3bXaBhkK06wezhtig8aBZfB27umwFU=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/development/python-modules/adafruit-platformdetect/default.nix b/pkgs/development/python-modules/adafruit-platformdetect/default.nix
index 17e304b6802..9e32e903e82 100644
--- a/pkgs/development/python-modules/adafruit-platformdetect/default.nix
+++ b/pkgs/development/python-modules/adafruit-platformdetect/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "adafruit-platformdetect";
-  version = "3.17.2";
+  version = "3.18.0";
   format = "setuptools";
 
   src = fetchPypi {
     pname = "Adafruit-PlatformDetect";
     inherit version;
-    sha256 = "sha256-IA846zNFmBqSUc0oXJ0eA5wj6PzQ28jxO22z5WNOT24=";
+    sha256 = "593f3719580b31b3dffab0817414a3aa548ed609659ad216ceb8cf31cc51ec9b";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/adal/default.nix b/pkgs/development/python-modules/adal/default.nix
index b555188b4b5..d3826013c8e 100644
--- a/pkgs/development/python-modules/adal/default.nix
+++ b/pkgs/development/python-modules/adal/default.nix
@@ -16,6 +16,6 @@ buildPythonPackage rec {
     description = "Library to make it easy for python application to authenticate to Azure Active Directory (AAD) in order to access AAD protected web resources";
     homepage = "https://github.com/AzureAD/azure-activedirectory-library-for-python";
     license = licenses.mit;
-    maintainers = with maintainers; [ phreedom ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/aiohue/default.nix b/pkgs/development/python-modules/aiohue/default.nix
index a4c6536308b..b0f748e77d6 100644
--- a/pkgs/development/python-modules/aiohue/default.nix
+++ b/pkgs/development/python-modules/aiohue/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "aiohue";
-  version = "3.0.3";
+  version = "3.0.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-ajDwA8zFBQdFeI3oUBBWQZA13PNust21BWxrsB7PcTQ=";
+    sha256 = "sha256-qOtfr6rrV+E/vdY3AprJ5G7p+VzYDVk1aq9/F0O0mLE=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/aiosenz/default.nix b/pkgs/development/python-modules/aiosenz/default.nix
new file mode 100644
index 00000000000..beb56186147
--- /dev/null
+++ b/pkgs/development/python-modules/aiosenz/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, authlib
+, buildPythonPackage
+, fetchFromGitHub
+, httpx
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "aiosenz";
+  version = "1.0.0";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "milanmeu";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-ODdWPS14zzptxuS6mff51f0s1SYnIqjF40DmvT0sL0w=";
+  };
+
+  propagatedBuildInputs = [
+    httpx
+    authlib
+  ];
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "aiosenz"
+  ];
+
+  meta = with lib; {
+    description = "Python wrapper for the nVent Raychem SENZ RestAPI";
+    homepage = "https://github.com/milanmeu/aiosenz";
+    license = with licenses; [ lgpl3Plus ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/aiostream/default.nix b/pkgs/development/python-modules/aiostream/default.nix
index e15271bafdb..060da226b93 100644
--- a/pkgs/development/python-modules/aiostream/default.nix
+++ b/pkgs/development/python-modules/aiostream/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "aiostream";
-  version = "0.4.3";
+  version = "0.4.4";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "vxgmichel";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1r3x9qwl08yscmzvhafc6gsmq84lr17s6p7a1qxr49cmdvjzsc13";
+    sha256 = "07if27z1h0mg236sj9lc8nl0bqy9sdrj83ls73mrc69h76bzg5xi";
   };
 
   checkInputs = [ pytestCheckHook pytest-cov pytest-asyncio ];
diff --git a/pkgs/development/python-modules/aubio/default.nix b/pkgs/development/python-modules/aubio/default.nix
index 4616e1b6ed3..ad78b6c63fc 100644
--- a/pkgs/development/python-modules/aubio/default.nix
+++ b/pkgs/development/python-modules/aubio/default.nix
@@ -3,6 +3,8 @@
 , fetchFromGitHub
 , numpy
 , pytestCheckHook
+, stdenv
+, darwin
 }:
 
 buildPythonPackage rec {
@@ -16,6 +18,8 @@ buildPythonPackage rec {
     sha256 = "0fhxikvlr010nbh02g455d5y8bq6j5yw180cdh4gsd0hb43y3z26";
   };
 
+  buildInputs = lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ Accelerate AudioToolbox CoreVideo CoreGraphics ]);
+
   propagatedBuildInputs = [
     numpy
   ];
diff --git a/pkgs/development/python-modules/automate-home/default.nix b/pkgs/development/python-modules/automate-home/default.nix
new file mode 100644
index 00000000000..bd2816f6d34
--- /dev/null
+++ b/pkgs/development/python-modules/automate-home/default.nix
@@ -0,0 +1,56 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+, pythonOlder
+, APScheduler
+, hiredis
+, aioredis
+, ephem
+, pytz
+, pyyaml
+}:
+
+buildPythonPackage rec {
+  pname = "automate-home";
+  version = "0.9.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-41qd+KPSrOrczkovwXht3irbcYlYehBZ1HZ44yZe4cM=";
+  };
+
+  propagatedBuildInputs = [
+    APScheduler
+    hiredis
+    aioredis
+    ephem
+    pytz
+    pyyaml
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    # Rename pyephem, https://github.com/majamassarini/automate-home/pull/3
+    substituteInPlace setup.py \
+      --replace "pyephem" "ephem" \
+      --replace "aioredis==1.3.1" "aioredis"
+  '';
+
+  pythonImportsCheck = [
+    "home"
+  ];
+
+  meta = with lib; {
+    description = "Python module to automate (home) devices";
+    homepage = "https://github.com/majamassarini/automate-home";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/bids-validator/default.nix b/pkgs/development/python-modules/bids-validator/default.nix
index 9832ff783a6..49952b4f5f1 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.8.8";
+  version = "1.8.9";
   pname = "bids-validator";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e9ebc4cf1004bd343bbb56105b1eb2be833200e466dbaff7dfd267fca044d55e";
+    sha256 = "01fcb5a8fe6de1280cdfd5b37715103ffa0bafb3c739ca7f5ffc41e46549612e";
   };
 
   # needs packages which are not available in nixpkgs
diff --git a/pkgs/development/python-modules/blspy/default.nix b/pkgs/development/python-modules/blspy/default.nix
index 72ba6c38f84..1c491cb5de0 100644
--- a/pkgs/development/python-modules/blspy/default.nix
+++ b/pkgs/development/python-modules/blspy/default.nix
@@ -2,7 +2,6 @@
 , buildPythonPackage
 , fetchPypi
 , fetchFromGitHub
-, fetchpatch
 , setuptools-scm
 , substituteAll
 , cmake
@@ -14,12 +13,12 @@
 
 buildPythonPackage rec {
   pname = "blspy";
-  version = "1.0.6";
+  version = "1.0.8";
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-sULXnecEs8VI687pR9EK9jjYWlrB4tV4dt7Kzekaxb4=";
+    hash = "sha256-yKLirwWWeUTs5BFXZfqfuNJUXtQW40EiNPxuP+FeHso=";
   };
 
   patches = [
@@ -40,12 +39,12 @@ buildPythonPackage rec {
         sha256 = "sha256-lGz7o6DQVAuEc7yTp8bYS2kwjzHwGaNjugDi1ruRJOA=";
         fetchSubmodules = true;
       };
-    })
-
-    # avoid dynamic linking error at import time
-    (fetchpatch {
-      url = "https://github.com/Chia-Network/bls-signatures/pull/287/commits/797241e9dae1c164c862cbdb38c865d4b124a601.patch";
-      sha256 = "sha256-tlc4aA75gUxt5OaSNZqIlO//PXjmddVgVLYuVEFNmkE=";
+      catch2_src = fetchFromGitHub {
+        owner = "catchorg";
+        repo = "Catch2";
+        rev = "v2.13.7"; # pinned by blspy
+        sha256 = "NhZ8Hh7dka7KggEKKZyEbIZahuuTYeCT7cYYSUvkPzI=";
+      };
     })
   ];
 
diff --git a/pkgs/development/python-modules/blspy/dont_fetch_dependencies.patch b/pkgs/development/python-modules/blspy/dont_fetch_dependencies.patch
index a480c6d3708..337c8df3c4e 100644
--- a/pkgs/development/python-modules/blspy/dont_fetch_dependencies.patch
+++ b/pkgs/development/python-modules/blspy/dont_fetch_dependencies.patch
@@ -48,3 +48,17 @@ index 5a8c381..d9aa940 100644
  )
  FetchContent_MakeAvailable(pybind11 relic)
  
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 449164a..15a955e 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -37,8 +37,7 @@ install(FILES $<TARGET_FILE:bls> DESTINATION lib)
+ if(BUILD_BLS_TESTS)
+   FetchContent_Declare(
+     Catch2
+-    GIT_REPOSITORY https://github.com/catchorg/Catch2.git
+-    GIT_TAG        v2.13.7
++    URL @catch2_src@
+   )
+   FetchContent_MakeAvailable(Catch2)
+   add_executable(runtest test.cpp)
diff --git a/pkgs/development/python-modules/boschshcpy/default.nix b/pkgs/development/python-modules/boschshcpy/default.nix
index 46adb7c8c60..ea8525d0a41 100644
--- a/pkgs/development/python-modules/boschshcpy/default.nix
+++ b/pkgs/development/python-modules/boschshcpy/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "boschshcpy";
-  version = "0.2.24";
+  version = "0.2.27";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "tschamm";
     repo = pname;
     rev = version;
-    sha256 = "sha256-hvanimPWTKzOHRwJhynzO/4Z1jGlLopk4ogU3KHTEyc=";
+    sha256 = "sha256-xlkLMCLo1tut1mLj/L9YcRn16+GVKXJSSkpClBh1ujI=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/brelpy/default.nix b/pkgs/development/python-modules/brelpy/default.nix
new file mode 100644
index 00000000000..66d611f5e93
--- /dev/null
+++ b/pkgs/development/python-modules/brelpy/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pycryptodome
+, PyGithub
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "brelpy";
+  version = "0.0.3";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-MYWSKYd7emHZfY+W/UweQtTg62GSUMybpecL9BR8dhg=";
+  };
+
+  propagatedBuildInputs = [
+    pycryptodome
+  ];
+
+  # Source not tagged and PyPI releases don't contain tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "brelpy"
+  ];
+
+  meta = with lib; {
+    description = "Python to communicate with the Brel hubs";
+    homepage = "https://gitlab.com/rogiervandergeer/brelpy";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/bx-python/default.nix b/pkgs/development/python-modules/bx-python/default.nix
index db5d0166f55..ba83cca9e4e 100644
--- a/pkgs/development/python-modules/bx-python/default.nix
+++ b/pkgs/development/python-modules/bx-python/default.nix
@@ -3,14 +3,14 @@
 
 buildPythonPackage rec {
   pname = "bx-python";
-  version = "0.8.12";
+  version = "0.8.13";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "bxlab";
     repo = "bx-python";
     rev = "v${version}";
-    sha256 = "sha256-bOoD2dY6Zf4HRMqZcGSot1owu/5VEkF6wpuMTzVUlFU=";
+    sha256 = "0r3z02mvaswijalr42ikpa7crvliijy0aigsvp5m0frp05n4irf5";
   };
 
   nativeBuildInputs = [ cython ];
diff --git a/pkgs/development/python-modules/capstone/default.nix b/pkgs/development/python-modules/capstone/default.nix
index e6c42ac0c4d..f10f34c381d 100644
--- a/pkgs/development/python-modules/capstone/default.nix
+++ b/pkgs/development/python-modules/capstone/default.nix
@@ -31,7 +31,5 @@ buildPythonPackage rec {
     license = licenses.bsdOriginal;
     description = "Python bindings for Capstone disassembly engine";
     maintainers = with maintainers; [ bennofs ris ];
-    # creates a manylinux2014-x86_64 wheel
-    broken = !stdenv.isx86_64;
   };
 }
diff --git a/pkgs/development/python-modules/casbin/default.nix b/pkgs/development/python-modules/casbin/default.nix
index 944136840f6..815bc8ae36c 100644
--- a/pkgs/development/python-modules/casbin/default.nix
+++ b/pkgs/development/python-modules/casbin/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "casbin";
-  version = "1.15.0";
+  version = "1.15.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = pname;
     repo = "pycasbin";
     rev = "v${version}";
-    sha256 = "05jg8qm0ix02qvcjqcfalp15j22hzlf9wfdnhrll57bnwgk4kkf8";
+    sha256 = "0mrk6b16f4ds666qa4884kjjbmb55kpfvvqsznfmyg9iii6dir50";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/cement/default.nix b/pkgs/development/python-modules/cement/default.nix
index f021ea16b62..a6b436a92f4 100644
--- a/pkgs/development/python-modules/cement/default.nix
+++ b/pkgs/development/python-modules/cement/default.nix
@@ -1,24 +1,33 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+}:
 
 buildPythonPackage rec {
   pname = "cement";
-  version = "3.0.4";
+  version = "3.0.6";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "10a8459dc9fc31d6c038ede24a9081c5c3bd5fcd75b071e01baf281f81c9eace";
+    sha256 = "fccec41eab3f15a03445b1ce24c8a7e106d4d5520f6507a7145698ce68923d31";
   };
 
   # Disable test tests since they depend on a memcached server running on
   # 127.0.0.1:11211.
   doCheck = false;
 
-  disabled = !isPy3k;
+  pythonImportsCheck = [
+    "cement"
+  ];
 
   meta = with lib; {
+    description = "CLI Application Framework for Python";
     homepage = "https://builtoncement.com/";
-    description = "A CLI Application Framework for Python.";
-    maintainers = with maintainers; [ eqyiel ];
     license = licenses.bsd3;
+    maintainers = with maintainers; [ eqyiel ];
   };
 }
diff --git a/pkgs/development/python-modules/cyclonedx-python-lib/default.nix b/pkgs/development/python-modules/cyclonedx-python-lib/default.nix
index e4f007cf839..75f9c29607d 100644
--- a/pkgs/development/python-modules/cyclonedx-python-lib/default.nix
+++ b/pkgs/development/python-modules/cyclonedx-python-lib/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "cyclonedx-python-lib";
-  version = "0.12.2";
+  version = "0.12.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "CycloneDX";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-+NIC+dxajG5wffIFUC5MqRAiodh8ynO1fp1XTOxaR1g=";
+    sha256 = "1404wcwjglq025n8ncsrl2h64g1sly83cs9sc6jpiw1g5ay4a1vi";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/cysignals/default.nix b/pkgs/development/python-modules/cysignals/default.nix
index 1c7af6798f4..d03e3ba501e 100644
--- a/pkgs/development/python-modules/cysignals/default.nix
+++ b/pkgs/development/python-modules/cysignals/default.nix
@@ -1,4 +1,5 @@
 { lib
+, autoreconfHook
 , fetchPypi
 , buildPythonPackage
 , cython
@@ -9,11 +10,11 @@ assert pariSupport -> pari != null;
 
 buildPythonPackage rec {
   pname = "cysignals";
-  version = "1.11.1";
+  version = "1.11.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "72985b0ddd6d6f0084b9583562c39d818012420c4f7dd8bf31b55be45d3b95f8";
+    sha256 = "5858b1760fbe21848121b826b2463a67ac5a45caf3d73105497a68618c5a6fa6";
   };
 
   # explicit check:
@@ -40,6 +41,8 @@ buildPythonPackage rec {
     pari
   ];
 
+  nativeBuildInputs = [ autoreconfHook ];
+
   enableParallelBuilding = true;
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/dask-image/default.nix b/pkgs/development/python-modules/dask-image/default.nix
index e3ab607dcac..5ff95eef6ac 100644
--- a/pkgs/development/python-modules/dask-image/default.nix
+++ b/pkgs/development/python-modules/dask-image/default.nix
@@ -9,12 +9,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.6.0";
+  version = "2021.12.0";
   pname = "dask-image";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1zzxrvbm52xn7azkn74pjinlk0jkpdcyl3r5vxxy5lmjnmzlrrpy";
+    sha256 = "35be49626bd01c3e3892128126a27d5ee3266a198a8e3c7e30d59eaef712fcf9";
   };
 
   propagatedBuildInputs = [ dask scipy pims ];
diff --git a/pkgs/development/python-modules/deezer-py/default.nix b/pkgs/development/python-modules/deezer-py/default.nix
index a3662e711e7..fea1dafbf4e 100644
--- a/pkgs/development/python-modules/deezer-py/default.nix
+++ b/pkgs/development/python-modules/deezer-py/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "deezer-py";
-  version = "1.2.7";
+  version = "1.2.9";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "20a99337fc22b7406f5bb9b4687535b91a61dc31998c0369c4efc76dffeb9a2c";
+    sha256 = "16eacdc9c53f55d2130891c6335e88046afa0601184fd5197fee35a09e99d9cf";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/pkgs/development/python-modules/django-ipware/default.nix b/pkgs/development/python-modules/django-ipware/default.nix
index d773c1490bc..ba8f1d79db8 100644
--- a/pkgs/development/python-modules/django-ipware/default.nix
+++ b/pkgs/development/python-modules/django-ipware/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "django-ipware";
-  version = "4.0.0";
+  version = "4.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1294f916f3b3475e40e1b0ec1bd320aa2397978eae672721c81cbc2ed517e9ee";
+    sha256 = "602a58325a4808bd19197fef2676a0b2da2df40d0ecf21be414b2ff48c72ad05";
   };
 
   propagatedBuildInputs = [ django ];
diff --git a/pkgs/development/python-modules/django-jinja2/default.nix b/pkgs/development/python-modules/django-jinja2/default.nix
index 04885072c67..039a75aacee 100644
--- a/pkgs/development/python-modules/django-jinja2/default.nix
+++ b/pkgs/development/python-modules/django-jinja2/default.nix
@@ -4,7 +4,7 @@
 
 buildPythonPackage rec {
   pname = "django-jinja";
-  version = "2.9.1";
+  version = "2.10.0";
 
   meta = {
     description = "Simple and nonobstructive jinja2 integration with Django";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6c1fc68b0f4b1fb21b208a3e5dc19a3b11bab2812c06f827d5fdbd24001a1910";
+    sha256 = "ae6a3fdf1ffa7a9ef6fd2f0a59c1a68c96b29f7f00f5166375658ef392f1ed32";
   };
 
   buildInputs = [ django pytz tox ];
diff --git a/pkgs/development/python-modules/django-prometheus/default.nix b/pkgs/development/python-modules/django-prometheus/default.nix
index 8708a95a479..733a177d6a5 100644
--- a/pkgs/development/python-modules/django-prometheus/default.nix
+++ b/pkgs/development/python-modules/django-prometheus/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "django-prometheus";
-  version = "2.1.0";
+  version = "2.2.0";
   format = "setuptools";
   disabled = pythonOlder "3.6";
 
diff --git a/pkgs/development/python-modules/elasticsearch/default.nix b/pkgs/development/python-modules/elasticsearch/default.nix
index 678c2ce6329..81bc807a134 100644
--- a/pkgs/development/python-modules/elasticsearch/default.nix
+++ b/pkgs/development/python-modules/elasticsearch/default.nix
@@ -12,11 +12,11 @@ buildPythonPackage (rec {
   # there's a clear path forward. See
   # https://github.com/elastic/elasticsearch-py/issues/1639 for more
   # info.
-  version = "7.16.0";
+  version = "7.16.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d7f8665715ad80e3e99e42388bcc49c1b06162f72acfa1f8febe2baf5570b0ed";
+    sha256 = "c024ee2e7e2509c842c4e3c5e2b99a92ceecfde06d6dac2d32a19bf566c3e175";
   };
 
   # Check is disabled because running them destroy the content of the local cluster!
diff --git a/pkgs/development/python-modules/esprima/default.nix b/pkgs/development/python-modules/esprima/default.nix
new file mode 100644
index 00000000000..b32a098c12b
--- /dev/null
+++ b/pkgs/development/python-modules/esprima/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "esprima";
+  version = "4.0.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "Kronuz";
+    repo = "esprima-python";
+    rev = "v${version}";
+    sha256 = "WtkPCReXhxyr6pOzE9gsdIeBlLk+nSnbxkS3OowEaHo=";
+  };
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pytestFlagsArray = [
+    "test/__main__.py::TestEsprima"
+  ];
+
+  pythonImportsCheck = [
+    "esprima"
+  ];
+
+  meta = with lib; {
+    description = "Python parser for standard-compliant ECMAScript";
+    homepage = "https://github.com/Kronuz/esprima-python";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/fastcore/default.nix b/pkgs/development/python-modules/fastcore/default.nix
new file mode 100644
index 00000000000..4783b8d33c7
--- /dev/null
+++ b/pkgs/development/python-modules/fastcore/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, packaging
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "fastcore";
+  version = "1.3.27";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "fastai";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-ogCNDh18FHP9KY0q0BIbsjPH5vGGioGh4FFUUb3c3Jc=";
+  };
+
+  propagatedBuildInputs = [
+    packaging
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "fastcore"
+  ];
+
+  meta = with lib; {
+    description = "Python module for Fast AI";
+    homepage = "https://github.com/fastai/fastcore";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/filelock/3.2.nix b/pkgs/development/python-modules/filelock/3.2.nix
index 3929361f7d8..401fdf582ff 100644
--- a/pkgs/development/python-modules/filelock/3.2.nix
+++ b/pkgs/development/python-modules/filelock/3.2.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{ lib, buildPythonPackage, fetchPypi, setuptools-scm }:
 
 buildPythonPackage rec {
   pname = "filelock";
@@ -9,6 +9,10 @@ buildPythonPackage rec {
     sha256 = "1qry67zv2pmz8px6wdfbjqv75nmryy2ac7asqgs6q6db2722kpcw";
   };
 
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
   meta = with lib; {
     homepage = "https://github.com/benediktschmitt/py-filelock";
     description = "A platform independent file lock for Python";
diff --git a/pkgs/development/python-modules/flask-appbuilder/default.nix b/pkgs/development/python-modules/flask-appbuilder/default.nix
index 52d1daa14d0..afb81cc103b 100644
--- a/pkgs/development/python-modules/flask-appbuilder/default.nix
+++ b/pkgs/development/python-modules/flask-appbuilder/default.nix
@@ -25,12 +25,12 @@
 
 buildPythonPackage rec {
   pname = "flask-appbuilder";
-  version = "3.4.0";
+  version = "3.4.1";
 
   src = fetchPypi {
     pname = "Flask-AppBuilder";
     inherit version;
-    sha256 = "a5dfb559a0e96dd06bf5ff023f72bb3cc855e6db68e573e70f30caa31840f50f";
+    sha256 = "c0830935077c4d06d57237ca4791fcabfc682fe3e315c1c9444a2bd6f94e7514";
   };
 
   # See here: https://github.com/dpgaspar/Flask-AppBuilder/commit/7097a7b133f27c78d2b54d2a46e4a4c24478a066.patch
diff --git a/pkgs/development/python-modules/flask-session/default.nix b/pkgs/development/python-modules/flask-session/default.nix
new file mode 100644
index 00000000000..a9433fe0b87
--- /dev/null
+++ b/pkgs/development/python-modules/flask-session/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchPypi, buildPythonPackage, pytestCheckHook, flask, cachelib }:
+
+buildPythonPackage rec {
+  pname = "Flask-Session";
+  version = "0.4.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-ye1UMh+oxMoBMv/TNpWCdZ7aclL7SzvuSA5pDRukH0Y=";
+  };
+
+  propagatedBuildInputs = [ flask cachelib ];
+
+  checkInputs = [ pytestCheckHook ];
+
+  # The rest of the tests require database servers and optional db connector dependencies
+  pytestFlagsArray = [ "-k" "'null_session or filesystem_session'" ];
+
+  pythonImportsCheck = [ "flask_session" ];
+
+  meta = with lib; {
+    description = "A Flask extension that adds support for server-side sessions";
+    homepage = "https://github.com/fengsp/flask-session";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ zhaofengli ];
+  };
+}
diff --git a/pkgs/development/python-modules/flux-led/default.nix b/pkgs/development/python-modules/flux-led/default.nix
index 95c4479b244..a9e75979f07 100644
--- a/pkgs/development/python-modules/flux-led/default.nix
+++ b/pkgs/development/python-modules/flux-led/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "flux-led";
-  version = "0.26.11";
+  version = "0.27.10";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "Danielhiversen";
     repo = "flux_led";
     rev = version;
-    sha256 = "sha256-1+LS9pAJQsXzt5vC4vR2SBzC21GbLj8nZ8oF5CfVWSg=";
+    sha256 = "sha256-xHPP6QxPmlMAEdZ3t5RyDXKN51okwxBtaOZPTyONy5w=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/gehomesdk/default.nix b/pkgs/development/python-modules/gehomesdk/default.nix
new file mode 100644
index 00000000000..855b671d2b6
--- /dev/null
+++ b/pkgs/development/python-modules/gehomesdk/default.nix
@@ -0,0 +1,50 @@
+{ lib
+, aiohttp
+, bidict
+, buildPythonPackage
+, fetchPypi
+, humanize
+, lxml
+, pythonOlder
+, requests
+, slixmpp
+, websockets
+}:
+
+buildPythonPackage rec {
+  pname = "gehomesdk";
+  version = "0.4.22";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-3HErbW9/YD8Jd6zr5O2hjoLZ9x5P/vzZLjqPmSm09EM=";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    bidict
+    humanize
+    lxml
+    requests
+    slixmpp
+    websockets
+  ];
+
+  # Tests are not shipped and source is not tagged
+  # https://github.com/simbaja/gehome/issues/32
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "gehomesdk"
+  ];
+
+  meta = with lib; {
+    description = "Python SDK for GE smart appliances";
+    homepage = "https://github.com/simbaja/gehome";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/gekitchen/default.nix b/pkgs/development/python-modules/gekitchen/default.nix
new file mode 100644
index 00000000000..8dc5bbdb3ae
--- /dev/null
+++ b/pkgs/development/python-modules/gekitchen/default.nix
@@ -0,0 +1,53 @@
+{ lib
+, aiohttp
+, bidict
+, buildPythonPackage
+, fetchFromGitHub
+, humanize
+, lxml
+, pytestCheckHook
+, pythonOlder
+, requests
+, slixmpp
+, websockets
+}:
+
+buildPythonPackage rec {
+  pname = "gekitchen";
+  version = "0.2.19";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "ajmarks";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-eKGundh7j9LqFd71bx86rNBVu2iAcgLN25JfFa39+VA=";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    bidict
+    humanize
+    lxml
+    requests
+    slixmpp
+    websockets
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "gekitchen"
+  ];
+
+  meta = with lib; {
+    description = "Python SDK for GE smart appliances";
+    homepage = "https://github.com/ajmarks/gekitchen";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/ghapi/default.nix b/pkgs/development/python-modules/ghapi/default.nix
new file mode 100644
index 00000000000..428215eeee5
--- /dev/null
+++ b/pkgs/development/python-modules/ghapi/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, fastcore
+, packaging
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "ghapi";
+  version = "0.1.19";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "fastai";
+    repo = "ghapi";
+    rev = version;
+    sha256 = "sha256-UV2cfotRad9jg/X3pOysKJyMi4/XKt24kf6F4aw4vcI=";
+  };
+
+  propagatedBuildInputs = [
+    fastcore
+    packaging
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "ghapi"
+  ];
+
+  meta = with lib; {
+    description = "Python interface to GitHub's API";
+    homepage = "https://github.com/fastai/ghapi";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/ghrepo-stats/default.nix b/pkgs/development/python-modules/ghrepo-stats/default.nix
new file mode 100644
index 00000000000..0552dbbf62d
--- /dev/null
+++ b/pkgs/development/python-modules/ghrepo-stats/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, matplotlib
+, PyGithub
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "ghrepo-stats";
+  version = "0.3.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "mrbean-bremen";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-W6RhVnMuOgB4GNxczx3UlSeq0RWIM7yISKEvpnrE9uk=";
+  };
+
+  propagatedBuildInputs = [
+    matplotlib
+    PyGithub
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "ghrepo_stats"
+  ];
+
+  meta = with lib; {
+    description = "Python module and CLI tool for GitHub repo statistics";
+    homepage = "https://github.com/mrbean-bremen/ghrepo-stats";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/goodwe/default.nix b/pkgs/development/python-modules/goodwe/default.nix
index 185562844fb..855c7f3f81d 100644
--- a/pkgs/development/python-modules/goodwe/default.nix
+++ b/pkgs/development/python-modules/goodwe/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "goodwe";
-  version = "0.2.7";
+  version = "0.2.8";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "marcelblijleven";
     repo = pname;
     rev = "v${version}";
-    sha256 = "6/JAp7zK60+om4l14sLn+pUki0Q/5XwCJSawOf1q2q0=";
+    sha256 = "0ij87hyfv4c93nb4irpxax8p1i6swnm8b6ncs70s6z5sk7ipp663";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/google-nest-sdm/default.nix b/pkgs/development/python-modules/google-nest-sdm/default.nix
index c9812875278..a4520a6847d 100644
--- a/pkgs/development/python-modules/google-nest-sdm/default.nix
+++ b/pkgs/development/python-modules/google-nest-sdm/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "google-nest-sdm";
-  version = "0.4.6";
+  version = "0.4.8";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "allenporter";
     repo = "python-google-nest-sdm";
     rev = version;
-    sha256 = "sha256-oMYCBmqDTPcGHwP3LFYX3CdbHw2hg41EQQv8iiv+ljE=";
+    sha256 = "sha256-HHjCML/55jthqZ5WjNNsldr+8nul8bd8N9aNAoe/iBw=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/goveelights/default.nix b/pkgs/development/python-modules/goveelights/default.nix
new file mode 100644
index 00000000000..d4f955c18c6
--- /dev/null
+++ b/pkgs/development/python-modules/goveelights/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "goveelights";
+  version = "0.1.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-4j4iBT4PIpk6BbHwJF7+sp/PeIlHw+8dsOK1Ecfuwtc=";
+  };
+
+  propagatedBuildInputs = [
+    requests
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "goveelights"
+  ];
+
+  meta = with lib; {
+    description = "Python module for interacting with the Govee API";
+    homepage = "https://github.com/arcanearronax/govee_lights";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/grpcio-tools/default.nix b/pkgs/development/python-modules/grpcio-tools/default.nix
index 64874e31448..78d952f4cb9 100644
--- a/pkgs/development/python-modules/grpcio-tools/default.nix
+++ b/pkgs/development/python-modules/grpcio-tools/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "grpcio-tools";
-  version = "1.42.0";
+  version = "1.43.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d0a0daa82eb2c2fb8e12b82a458d1b7c5516fe1135551da92b1a02e2cba93422";
+    sha256 = "f42f1d713096808b1b0472dd2a3749b712d13f0092dab9442d9c096446e860b2";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/python-modules/hjson/default.nix b/pkgs/development/python-modules/hjson/default.nix
index 096edbe5252..cd48fcd6187 100644
--- a/pkgs/development/python-modules/hjson/default.nix
+++ b/pkgs/development/python-modules/hjson/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, python
 , pythonImportsCheckHook
 , makeWrapper
 }:
@@ -23,7 +24,9 @@ buildPythonPackage rec {
 
   postInstall = ''
     rm $out/bin/hjson.cmd
-    wrapProgram $out/bin/hjson --set PYTHONPATH "$PYTHONPATH"
+    wrapProgram $out/bin/hjson  \
+      --set PYTHONPATH "$PYTHONPATH" \
+      --prefix PATH : ${lib.makeBinPath [ python ]}
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/holoviews/default.nix b/pkgs/development/python-modules/holoviews/default.nix
index e68499940ae..89d86ee4eb4 100644
--- a/pkgs/development/python-modules/holoviews/default.nix
+++ b/pkgs/development/python-modules/holoviews/default.nix
@@ -16,11 +16,11 @@
 
 buildPythonPackage rec {
   pname = "holoviews";
-  version = "1.14.6";
+  version = "1.14.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3a25c4fe3195fdc4639461abbfa5a8bebce8ab737674b6673da2236a901cfefd";
+    sha256 = "8d8d171227e9c9eaadd4b037b3ddaa01055a33bacbdbeb57a5efbd273986665f";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/ipfshttpclient/default.nix b/pkgs/development/python-modules/ipfshttpclient/default.nix
index 62fa6d93614..271cd85a819 100644
--- a/pkgs/development/python-modules/ipfshttpclient/default.nix
+++ b/pkgs/development/python-modules/ipfshttpclient/default.nix
@@ -57,6 +57,18 @@ buildPythonPackage rec {
       --replace 'pytest_ordering' 'pytest_order'
     substituteInPlace test/functional/test_miscellaneous.py \
       --replace '@pytest.mark.last' '@pytest.mark.order("last")'
+
+    # Until a proper fix is created, just skip these tests
+    # and ignore any breakage that may result from the API change in IPFS
+    # See https://github.com/ipfs-shipyard/py-ipfs-http-client/issues/308
+    substituteInPlace test/functional/test_pubsub.py \
+      --replace '# the message that will be published' 'pytest.skip("This test fails because of an incompatibility with the experimental PubSub feature in IPFS>=0.11.0")' \
+      --replace '# subscribe to the topic testing'     'pytest.skip("This test fails because of an incompatibility with the experimental PubSub feature in IPFS>=0.11.0")'
+    substituteInPlace test/functional/test_other.py \
+      --replace 'import ipfshttpclient' 'import ipfshttpclient; import pytest' \
+      --replace 'assert ipfs_is_available' 'pytest.skip("Unknown test failure with IPFS >=0.11.0"); assert ipfs_is_available'
+    substituteInPlace test/run-tests.py \
+      --replace '--cov-fail-under=90' '--cov-fail-under=75'
   '';
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/jc/default.nix b/pkgs/development/python-modules/jc/default.nix
index ea1715c9b37..a4a6ccad54c 100644
--- a/pkgs/development/python-modules/jc/default.nix
+++ b/pkgs/development/python-modules/jc/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "jc";
-  version = "1.17.3";
+  version = "1.17.4";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "kellyjonbrazil";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-LoefoKrYZF0REF3EEd9/rxd5VQfpU+lYX/siRlQw00o=";
+    sha256 = "sha256-Dtyf7T34g2sD86cipKsOwfcCXet6u6f5oHVaHCBEbUA=";
   };
 
   propagatedBuildInputs = [ ruamel-yaml xmltodict pygments ];
diff --git a/pkgs/development/python-modules/jellyfin-apiclient-python/default.nix b/pkgs/development/python-modules/jellyfin-apiclient-python/default.nix
index ca96e63060d..59e4d5e68d1 100644
--- a/pkgs/development/python-modules/jellyfin-apiclient-python/default.nix
+++ b/pkgs/development/python-modules/jellyfin-apiclient-python/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "jellyfin-apiclient-python";
-  version = "1.7.2";
+  version = "1.8.0";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-nSLUa9/jAT6XrHo77kV5HYBxPO/lhcWKqPfpES7ul9A=";
+    sha256 = "sha256-pH1mFm0enT8LOCYABAgb/T/ZwHyhtQGBu7mAxNeu7jQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/levenshtein/default.nix b/pkgs/development/python-modules/levenshtein/default.nix
index 6f6c5d3f0cf..cc4a029b7b5 100644
--- a/pkgs/development/python-modules/levenshtein/default.nix
+++ b/pkgs/development/python-modules/levenshtein/default.nix
@@ -20,6 +20,11 @@ buildPythonPackage rec {
     sha256 = "agshUVkkqogj4FbonFd/rrGisMOomS62NND66YKZvjg=";
   };
 
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace "rapidfuzz >= 1.8.2, < 1.9" "rapidfuzz"
+  '';
+
   propagatedBuildInputs = [
     rapidfuzz
   ];
diff --git a/pkgs/development/python-modules/libarcus/default.nix b/pkgs/development/python-modules/libarcus/default.nix
index 4002f527a45..494e786e978 100644
--- a/pkgs/development/python-modules/libarcus/default.nix
+++ b/pkgs/development/python-modules/libarcus/default.nix
@@ -4,14 +4,14 @@
 
 buildPythonPackage rec {
   pname = "libarcus";
-  version = "4.10.0";
+  version = "4.12.0";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "Ultimaker";
     repo = "libArcus";
     rev = version;
-    sha256 = "1ahka8s8fjwymyr7pca7i7h51ikfr35zy4nkzfcjn946x7p0dprf";
+    sha256 = "sha256-X33ptwYj9YkVWqUDPP+Ic+hoIb+rwsLdQXvHLA9z+3w=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/libsavitar/default.nix b/pkgs/development/python-modules/libsavitar/default.nix
index e82400b565f..588ebfcd1e9 100644
--- a/pkgs/development/python-modules/libsavitar/default.nix
+++ b/pkgs/development/python-modules/libsavitar/default.nix
@@ -2,14 +2,14 @@
 
 buildPythonPackage rec {
   pname = "libsavitar";
-  version = "4.10.0";
+  version = "4.12.0";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "Ultimaker";
     repo = "libSavitar";
     rev = version;
-    sha256 = "1zyzsrdm5aazv12h7ga35amfryrbxdsmx3abvh27hixyh9f92fdp";
+    sha256 = "sha256-MAA1WtGED6lvU6N4BE6wwY1aYaFrCq/gkmQFz3VWqNA=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/lightwave2/default.nix b/pkgs/development/python-modules/lightwave2/default.nix
index 9246c6d42da..ce42ebfc8b3 100644
--- a/pkgs/development/python-modules/lightwave2/default.nix
+++ b/pkgs/development/python-modules/lightwave2/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "lightwave2";
-  version = "0.7.7";
+  version = "0.7.9";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-89REmMsZ79OsjhxAuxyTfRKy1+4cYDB9suiZLTXNntA=";
+    sha256 = "0cd36d7f7710afa7094fce422422196532d4fbccfa31bfcb642e1674a137900a";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/linkify-it-py/default.nix b/pkgs/development/python-modules/linkify-it-py/default.nix
index 4886f0254a7..ef97439cdc8 100644
--- a/pkgs/development/python-modules/linkify-it-py/default.nix
+++ b/pkgs/development/python-modules/linkify-it-py/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "linkify-it-py";
-  version = "1.0.2";
+  version = "1.0.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "tsutsu3";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-i48B5qNufuhGp9a/46rWRgPawYkMA0ryRSyR+JhUmmw=";
+    hash = "sha256-1QqfqFdTEdZr02jQnmHmvw3fgnC/ktsfALyhtkGSXoY=";
   };
 
   propagatedBuildInputs = [ uc-micro-py ];
diff --git a/pkgs/development/python-modules/losant-rest/default.nix b/pkgs/development/python-modules/losant-rest/default.nix
new file mode 100644
index 00000000000..36b6efa724e
--- /dev/null
+++ b/pkgs/development/python-modules/losant-rest/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, pythonOlder
+, requests
+, requests-mock
+}:
+
+buildPythonPackage rec {
+  pname = "losant-rest";
+  version = "1.15.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "Losant";
+    repo = "losant-rest-python";
+    rev = "v${version}";
+    sha256 = "sha256-j8Vzr83pvl/AnXfA+nl5uRXf+y6ndKmQHM3bl306wFM=";
+  };
+
+  propagatedBuildInputs = [
+    requests
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    requests-mock
+  ];
+
+  pytestFlagsArray = [
+    "tests/losantrest_tests.py"
+  ];
+
+  pythonImportsCheck = [
+    "losantrest"
+  ];
+
+  meta = with lib; {
+    description = "Python module for consuming the Losant IoT Platform API";
+    homepage = "https://github.com/Losant/losant-rest-python";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/lupupy/default.nix b/pkgs/development/python-modules/lupupy/default.nix
index 07628c02740..23ec7c33c20 100644
--- a/pkgs/development/python-modules/lupupy/default.nix
+++ b/pkgs/development/python-modules/lupupy/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "lupupy";
-  version = "0.0.24";
+  version = "0.1.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "62b63877aa6a9e6bfecd163a922641906f233cc4b53b1314ee71247e157273c6";
+    sha256 = "sha256-bWBiM+u5wl9fWqL8k+R2IaYXSNnc4IxgWgUzyJVxkKk=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/manimpango/default.nix b/pkgs/development/python-modules/manimpango/default.nix
index 95e03586471..5ff88388818 100644
--- a/pkgs/development/python-modules/manimpango/default.nix
+++ b/pkgs/development/python-modules/manimpango/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "manimpango";
-  version = "0.3.1";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "ManimCommunity";
     repo = pname;
     rev = "v${version}";
-    sha256 = "ldZfvv5kloQ0uj0agxOP8cRh+Ix8f9Z0PT+pnhWYjiQ=";
+    sha256 = "1qffb04bz4s2anb6a7nm6dpqwdlvq6626z1whqwrwsvn8z9sry76";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/meross-iot/default.nix b/pkgs/development/python-modules/meross-iot/default.nix
new file mode 100644
index 00000000000..5c2bbe9222b
--- /dev/null
+++ b/pkgs/development/python-modules/meross-iot/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, paho-mqtt
+, pytestCheckHook
+, pythonOlder
+, requests
+, retrying
+}:
+
+buildPythonPackage rec {
+  pname = "meross-iot";
+  version = "0.4.3.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "albertogeniola";
+    repo = "MerossIot";
+    rev = version;
+    sha256 = "sha256-PZ1+Bjw7k6EFZEuPhbkGrdQzdLGiM4U0ecAAN8SxWU4=";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    paho-mqtt
+    requests
+    retrying
+  ];
+
+  # Test require network access
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "meross_iot"
+  ];
+
+  meta = with lib; {
+    description = "Python library to interact with Meross devices";
+    homepage = "https://github.com/albertogeniola/MerossIot";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/mistletoe/default.nix b/pkgs/development/python-modules/mistletoe/default.nix
index 29666254e7f..0de5077ebee 100644
--- a/pkgs/development/python-modules/mistletoe/default.nix
+++ b/pkgs/development/python-modules/mistletoe/default.nix
@@ -5,12 +5,12 @@
 
 buildPythonPackage rec {
   pname = "mistletoe";
-  version = "0.7.2";
+  version = "0.8.1";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "18z6hqfnfjqnrcgfgl5pkj9ggf9yx0yyy94azcn1qf7hqn6g3l14";
+    sha256 = "468c6a42fd98b85e05b318033f63d76e02712e1ea1328a7ebcba7e47fb6f1e41";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/monkeyhex/default.nix b/pkgs/development/python-modules/monkeyhex/default.nix
index a6261805427..7c10ad743f9 100644
--- a/pkgs/development/python-modules/monkeyhex/default.nix
+++ b/pkgs/development/python-modules/monkeyhex/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "monkeyhex";
-  version = "1.7.3";
+  version = "1.7.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c121e734ccae8f1be6f1ecaf9100f3f8bde0a2dd03979b8ba42c474b1978806e";
+    sha256 = "a646096dd3114ee8a7c6f30363f38c288ec56c4e032c8fc7e681792b604dd122";
   };
 
   propagatedBuildInputs = [ future ];
diff --git a/pkgs/development/python-modules/myfitnesspal/default.nix b/pkgs/development/python-modules/myfitnesspal/default.nix
index 923f639feb9..567eeaf6969 100644
--- a/pkgs/development/python-modules/myfitnesspal/default.nix
+++ b/pkgs/development/python-modules/myfitnesspal/default.nix
@@ -20,12 +20,12 @@
 
 buildPythonPackage rec {
   pname = "myfitnesspal";
-  version = "1.16.5";
+  version = "1.16.6";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-v7lYaZLHxQs3/2uJnj+9y0xCXfPO1C38jLwzF7IMbb0=";
+    sha256 = "ac07369ede3ca4c6d673e02f2b9e0893b17d079f3085e36fdfdbdd1cba9f37db";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/neo4j-driver/default.nix b/pkgs/development/python-modules/neo4j-driver/default.nix
new file mode 100644
index 00000000000..6b81af0c294
--- /dev/null
+++ b/pkgs/development/python-modules/neo4j-driver/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, pytz
+}:
+
+buildPythonPackage rec {
+  pname = "neo4j-driver";
+  version = "4.4.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "neo4j";
+    repo = "neo4j-python-driver";
+    rev = version;
+    sha256 = "sha256-aGOqD6mmd3dulQ/SdaDPDZhkCwXdYCucHw+CrkJf1M0=";
+  };
+
+  propagatedBuildInputs = [
+    pytz
+  ];
+
+  # Missing dependencies
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "neo4j"
+  ];
+
+  meta = with lib; {
+    description = "Neo4j Bolt Driver for Python";
+    homepage = "https://github.com/neo4j/neo4j-python-driver";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/nltk/default.nix b/pkgs/development/python-modules/nltk/default.nix
index 346c8339dbe..df49f1d0f57 100644
--- a/pkgs/development/python-modules/nltk/default.nix
+++ b/pkgs/development/python-modules/nltk/default.nix
@@ -6,13 +6,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "3.6.5";
+  version = "3.6.6";
   pname = "nltk";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "834d1a8e38496369390be699be9bca4f2a0f2175b50327272b2ec7a98ffda2a0";
+    sha256 = "0f8ff4e261c78605bca284e8d2025e562304766156af32a1731f56b396ee364b";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/obfsproxy/default.nix b/pkgs/development/python-modules/obfsproxy/default.nix
index b5736851fbb..0c0781bc577 100644
--- a/pkgs/development/python-modules/obfsproxy/default.nix
+++ b/pkgs/development/python-modules/obfsproxy/default.nix
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     description = "A pluggable transport proxy";
     homepage = "https://www.torproject.org/projects/obfsproxy";
     repositories.git = "https://git.torproject.org/pluggable-transports/obfsproxy.git";
-    maintainers = with maintainers; [ phreedom thoughtpolice ];
+    maintainers = with maintainers; [ thoughtpolice ];
   };
 
 }
diff --git a/pkgs/development/python-modules/omnikinverter/default.nix b/pkgs/development/python-modules/omnikinverter/default.nix
new file mode 100644
index 00000000000..6f347d9672a
--- /dev/null
+++ b/pkgs/development/python-modules/omnikinverter/default.nix
@@ -0,0 +1,59 @@
+{ lib
+, aiohttp
+, aresponses
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, pytest-asyncio
+, pytestCheckHook
+, pythonOlder
+, yarl
+}:
+
+buildPythonPackage rec {
+  pname = "omnikinverter";
+  version = "0.6.2";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "klaasnicolaas";
+    repo = "python-omnikinverter";
+    rev = "v${version}";
+    sha256 = "sha256-NnwjiaFUi2vzORu8sndtfdVpZEAIMCvT+9VEr2ZOx3k=";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    aiohttp
+    yarl
+  ];
+
+  checkInputs = [
+    aresponses
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    # Upstream doesn't set a version for the pyproject.toml
+    substituteInPlace pyproject.toml \
+      --replace "0.0.0" "${version}" \
+      --replace "--cov" ""
+  '';
+
+  pythonImportsCheck = [
+    "omnikinverter"
+  ];
+
+  meta = with lib; {
+    description = "Python module for the Omnik Inverter";
+    homepage = "https://github.com/klaasnicolaas/python-omnikinverter";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/open-meteo/default.nix b/pkgs/development/python-modules/open-meteo/default.nix
index 6a7d5cfeb6e..520af3062ea 100644
--- a/pkgs/development/python-modules/open-meteo/default.nix
+++ b/pkgs/development/python-modules/open-meteo/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "open-meteo";
-  version = "0.2.0";
+  version = "0.2.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "frenck";
     repo = "python-open-meteo";
     rev = "v${version}";
-    sha256 = "tuAuY43HRz8zFTOhsm4TxSppP4CYTGPqQndDMxW3URs=";
+    sha256 = "0i8jmhd29vvkpfxs9l5wy8525ngs79mnc7si2j9b1nc41xrv91f6";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pdftotext/default.nix b/pkgs/development/python-modules/pdftotext/default.nix
index 2ba18dd92e4..2b61bfdaffa 100644
--- a/pkgs/development/python-modules/pdftotext/default.nix
+++ b/pkgs/development/python-modules/pdftotext/default.nix
@@ -1,19 +1,14 @@
-{ lib, stdenv, buildPythonPackage, fetchPypi, poppler }:
+{ lib, buildPythonPackage, fetchPypi, poppler }:
 
 buildPythonPackage rec {
   pname = "pdftotext";
-  version = "2.2.1";
+  version = "2.2.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a067c121654917ecbe07fbd71c807c34bbdb1ea029e269ddd11925ee7e191d3f";
+    sha256 = "sha256-Kpqom8YgIkCHgbOdGI+r9aOtEQO2Yw8yxOJ+OV95Zu4=";
   };
 
-  postPatch = lib.optionalString stdenv.isDarwin ''
-    substituteInPlace setup.py \
-        --replace '= brew_poppler_include()' '= "${lib.getDev poppler}/include", "${lib.getLib poppler}/lib"'
-  '';
-
   buildInputs = [ poppler ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pint/default.nix b/pkgs/development/python-modules/pint/default.nix
index f39caef6e59..c5a9148f0e5 100644
--- a/pkgs/development/python-modules/pint/default.nix
+++ b/pkgs/development/python-modules/pint/default.nix
@@ -7,6 +7,7 @@
 , packaging
 # Check Inputs
 , pytestCheckHook
+, pytest-subtests
 , numpy
 , matplotlib
 , uncertainties
@@ -14,12 +15,12 @@
 
 buildPythonPackage rec {
   pname = "pint";
-  version = "0.14";
+  version = "0.18";
 
   src = fetchPypi {
     inherit version;
     pname = "Pint";
-    sha256 = "0wkzb7g20wzpqr3xaqpq96dlfv6irw202icsz81ys8npp7mm194s";
+    sha256 = "sha256-jEvOiEwmkFH+t6vGnb/RhAPAx2SryD2hMuinIi+LqAE=";
   };
 
   disabled = pythonOlder "3.6";
@@ -32,6 +33,7 @@ buildPythonPackage rec {
   # Test suite explicitly requires pytest
   checkInputs = [
     pytestCheckHook
+    pytest-subtests
     numpy
     matplotlib
     uncertainties
@@ -42,7 +44,7 @@ buildPythonPackage rec {
     description = "Physical quantities module";
     license = licenses.bsd3;
     homepage = "https://github.com/hgrecco/pint/";
-    maintainers = [ maintainers.costrouc ];
+    maintainers = with maintainers; [ costrouc doronbehar ];
   };
 
 }
diff --git a/pkgs/development/python-modules/platformdirs/2.nix b/pkgs/development/python-modules/platformdirs/2.nix
new file mode 100644
index 00000000000..6fe2bcbde60
--- /dev/null
+++ b/pkgs/development/python-modules/platformdirs/2.nix
@@ -0,0 +1,43 @@
+{ lib
+, appdirs
+, buildPythonPackage
+, fetchFromGitHub
+, platformdirs
+, pytest-mock
+, pytestCheckHook
+, pythonOlder
+, setuptools-scm
+}:
+
+buildPythonPackage rec {
+  pname = "platformdirs";
+  version = "2.0.2";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-yCvfOPuX9hbQO9gbFHfeu+dGH+Vb9FM7wng1XU2D8hE=";
+  };
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  checkInputs = [
+    appdirs
+    pytest-mock
+    pytestCheckHook
+  ];
+
+ pythonImportsCheck = [ "platformdirs" ];
+
+  meta = with lib; {
+    description = "Python module for determining appropriate platform-specific directories";
+    homepage = "https://platformdirs.readthedocs.io/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/protobuf/default.nix b/pkgs/development/python-modules/protobuf/default.nix
index db3b73d7462..30e9fbf9ea7 100644
--- a/pkgs/development/python-modules/protobuf/default.nix
+++ b/pkgs/development/python-modules/protobuf/default.nix
@@ -18,8 +18,6 @@ buildPythonPackage {
   inherit disabled;
   doCheck = doCheck && !isPy27; # setuptools>=41.4 no longer collects correctly on python2
 
-  outputs = [ "out" "dev" ];
-
   propagatedBuildInputs = [ six ] ++ lib.optionals isPy27 [ google-apputils ];
   propagatedNativeBuildInputs = [ buildPackages.protobuf ]; # For protoc.
   nativeBuildInputs = [ pyext ] ++ lib.optionals isPy27 [ google-apputils ];
@@ -41,32 +39,20 @@ buildPythonPackage {
     cd python
   '';
 
-  preConfigure = lib.optionalString (lib.versionAtLeast protobuf.version "2.6.0") ''
-    export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=cpp
-    export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION_VERSION=2
-  '';
-
-  preBuild = ''
-    # Workaround for https://github.com/google/protobuf/issues/2895
-    ${python.pythonForBuild.interpreter} setup.py build
-  '' + lib.optionalString (lib.versionAtLeast protobuf.version "2.6.0") ''
-    ${python.pythonForBuild.interpreter} setup.py build_ext --cpp_implementation
-  '';
-
-  installFlags = lib.optional (lib.versionAtLeast protobuf.version "2.6.0")
-    "--install-option='--cpp_implementation'";
+  setupPyGlobalFlags = lib.optional (lib.versionAtLeast protobuf.version "2.6.0")
+    "--cpp_implementation";
 
-  # the _message.so isn't installed, so we'll do that manually.
-  # if someone can figure out a less hacky way to get the _message.so to
-  # install, please do replace this.
-  postInstall = lib.optionalString (lib.versionAtLeast protobuf.version "2.6.0") ''
-    cp -v $(find build -name "_message*") $out/${python.sitePackages}/google/protobuf/pyext
-  '';
+  pythonImportsCheck = [
+    "google.protobuf"
+  ] ++ lib.optionals (lib.versionAtLeast protobuf.version "2.6.0") [
+    "google.protobuf.internal._api_implementation" # Verify that --cpp_implementation worked
+  ];
 
   meta = with lib; {
     description = "Protocol Buffers are Google's data interchange format";
     homepage = "https://developers.google.com/protocol-buffers/";
     license = licenses.bsd3;
+    maintainers = with maintainers; [ knedlsepp ];
   };
 
   passthru.protobuf = protobuf;
diff --git a/pkgs/development/python-modules/proxy-py/default.nix b/pkgs/development/python-modules/proxy-py/default.nix
new file mode 100644
index 00000000000..4bf07b1375e
--- /dev/null
+++ b/pkgs/development/python-modules/proxy-py/default.nix
@@ -0,0 +1,63 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, openssl
+, paramiko
+, pytest-asyncio
+, pytest-mock
+, pytestCheckHook
+, pythonOlder
+, setuptools-scm
+, typing-extensions
+}:
+
+buildPythonPackage rec {
+  pname = "proxy-py";
+  version = "2.3.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "abhinavsingh";
+    repo = "proxy.py";
+    rev = "v${version}";
+    sha256 = "sha256-qqwb3t8/xicDGfO6l843qRwh0yUfthnOIhgNeKIbEO4=";
+  };
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    paramiko
+    typing-extensions
+  ];
+
+  checkInputs = [
+    openssl
+    pytest-asyncio
+    pytest-mock
+    pytestCheckHook
+  ];
+
+  preCheck = ''
+    export HOME=$(mktemp -d);
+  '';
+
+  postPatch = ''
+    substituteInPlace requirements.txt \
+      --replace "typing-extensions==3.7.4.3" "typing-extensions"
+  '';
+
+  pythonImportsCheck = [
+    "proxy"
+  ];
+
+  meta = with lib; {
+    description = "Python proxy framework";
+    homepage = "https://github.com/abhinavsingh/proxy.py";
+    license = with licenses; [ bsd3 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/proxy_tools/default.nix b/pkgs/development/python-modules/proxy_tools/default.nix
new file mode 100644
index 00000000000..e4596956dda
--- /dev/null
+++ b/pkgs/development/python-modules/proxy_tools/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "proxy_tools";
+  version = "0.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-zLN1H1KcBH4tilhEDYayBTA88P6BRveE0cvNlPCigBA=";
+  };
+
+  # no tests in pypi
+  doCheck = false;
+  pythonImportsCheck = [ "proxy_tools" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/jtushman/proxy_tools";
+    description = "Simple (hopefuly useful) Proxy (as in the GoF design pattern) implementation for Python";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ jojosch ];
+  };
+}
diff --git a/pkgs/development/python-modules/pubnub/default.nix b/pkgs/development/python-modules/pubnub/default.nix
index 24ac0e37ca7..40a4bf497f4 100644
--- a/pkgs/development/python-modules/pubnub/default.nix
+++ b/pkgs/development/python-modules/pubnub/default.nix
@@ -13,13 +13,13 @@
 
 buildPythonPackage rec {
   pname = "pubnub";
-  version = "5.4.0";
+  version = "5.5.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = "python";
     rev = "v${version}";
-    sha256 = "sha256-FyDsTqDQTI/Xxu4Sl4eHqwmgwN+ip+8WKGJs/h/kl2Y=";
+    sha256 = "133sis24jd40yq4sgp8lmg2kac5wiiccisjpkhm50rb9wdbpn6kh";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pychromecast/default.nix b/pkgs/development/python-modules/pychromecast/default.nix
index f4b244b5ea6..49eba4812c2 100644
--- a/pkgs/development/python-modules/pychromecast/default.nix
+++ b/pkgs/development/python-modules/pychromecast/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "pychromecast";
-  version = "10.1.1";
+  version = "10.2.1";
   format = "setuptools";
 
   disabled = !isPy3k;
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "PyChromecast";
     inherit version;
-    sha256 = "sha256-M6R9VRrotvkxKVZIKOcuf03LJsn4gSMohwzzAO5FQ48=";
+    sha256 = "1b5f0ce62374d01f7eef027adcc87f87e7c519b1ef2f7168e28be9c2adff5153";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyduke-energy/default.nix b/pkgs/development/python-modules/pyduke-energy/default.nix
new file mode 100644
index 00000000000..aba25f551f2
--- /dev/null
+++ b/pkgs/development/python-modules/pyduke-energy/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, jsonpickle
+, paho-mqtt
+, pytest-asyncio
+, pytest-timeout
+, pytestCheckHook
+, python-dateutil
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "pyduke-energy";
+  version = "1.0.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "mjmeli";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-bthEWsitnZwK4eyhLXv5RxlOaWyJG1fK0cC4wMEqCbI=";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    jsonpickle
+    paho-mqtt
+    python-dateutil
+  ];
+
+  checkInputs = [
+    pytest-asyncio
+    pytest-timeout
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "pyduke_energy"
+  ];
+
+  meta = with lib; {
+    description = "Python module for the Duke Energy API";
+    homepage = "https://github.com/mjmeli/pyduke-energy";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pykeyatome/default.nix b/pkgs/development/python-modules/pykeyatome/default.nix
index 8dd6d7fc45d..b1890388faf 100644
--- a/pkgs/development/python-modules/pykeyatome/default.nix
+++ b/pkgs/development/python-modules/pykeyatome/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "pykeyatome";
-  version = "1.1.2";
+  version = "1.2.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "jugla";
     repo = "pyKeyAtome";
     rev = "V${version}";
-    sha256 = "sha256-5aKZaS+BFKR1ldAY3BlS/oqYGz1C+ZRkNL9ez/etWh4=";
+    sha256 = "173bf4nrj4jqp2119gfmbra7rhbr30bkjkd44rw9450nmpfmh7pk";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pylast/default.nix b/pkgs/development/python-modules/pylast/default.nix
index 0306008aa78..098cdd33bfc 100644
--- a/pkgs/development/python-modules/pylast/default.nix
+++ b/pkgs/development/python-modules/pylast/default.nix
@@ -3,27 +3,32 @@
 , certifi
 , fetchPypi
 , flaky
+, importlib-metadata
 , pytestCheckHook
 , pythonOlder
 , setuptools-scm
-, six
 }:
 
 buildPythonPackage rec {
   pname = "pylast";
-  version = "4.3.0";
+  version = "4.4.0";
+  format = "setuptools";
+
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "71fd876e3753009bd10ea55b3f8f7c5d68591ee18a4127d257fc4a418010aa5c";
+    sha256 = "sha256-2m6+pQYBmvVxlBw1yLSAKr3kZ5WS1S0TZ1ZQ3ER+bCk=";
   };
 
-  nativeBuildInputs = [ setuptools-scm ];
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
 
   propagatedBuildInputs = [
     certifi
-    six
+  ] ++ lib.optionals (pythonOlder "3.8") [
+    importlib-metadata
   ];
 
   checkInputs = [
@@ -31,7 +36,9 @@ buildPythonPackage rec {
     flaky
   ];
 
-  pythonImportsCheck = [ "pylast" ];
+  pythonImportsCheck = [
+    "pylast"
+  ];
 
   meta = with lib; {
     description = "Python interface to last.fm (and compatibles)";
diff --git a/pkgs/development/python-modules/pymavlink/default.nix b/pkgs/development/python-modules/pymavlink/default.nix
index 50dc87a926f..8e7439a80d4 100644
--- a/pkgs/development/python-modules/pymavlink/default.nix
+++ b/pkgs/development/python-modules/pymavlink/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pymavlink";
-  version = "2.4.17";
+  version = "2.4.19";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "84e2af4d8099afd37c5d887261a168e7bde4ec2354f12f65c72dad1a4cd8f21d";
+    sha256 = "08ppwlsnrvzkpi4fn14d4d4grzx2bmsd0m9369q3f9hw48fgf645";
   };
 
   propagatedBuildInputs = [ future lxml ];
diff --git a/pkgs/development/python-modules/pympler/default.nix b/pkgs/development/python-modules/pympler/default.nix
index 856458bf043..8cc1e2db9ed 100644
--- a/pkgs/development/python-modules/pympler/default.nix
+++ b/pkgs/development/python-modules/pympler/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "Pympler";
-  version = "0.9";
+  version = "1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f2cbe7df622117af890249f2dea884eb702108a12d729d264b7c5983a6e06e47";
+    sha256 = "f2e82c3e33835d0378ed95fffabc00806f4070f00decaa38b340ca99b1aca25c";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pynest2d/default.nix b/pkgs/development/python-modules/pynest2d/default.nix
index 1f338806a18..9be7072a89f 100644
--- a/pkgs/development/python-modules/pynest2d/default.nix
+++ b/pkgs/development/python-modules/pynest2d/default.nix
@@ -2,7 +2,7 @@
 , libnest2d, sip_4, clipper }:
 
 buildPythonPackage rec {
-  version = "4.10.0";
+  version = "4.12.0";
   pname = "pynest2d";
   format = "other";
 
@@ -10,7 +10,7 @@ buildPythonPackage rec {
     owner = "Ultimaker";
     repo = "pynest2d";
     rev = version;
-    sha256 = "03aj0whxj9rs9nz3idld7w4vpmnr6vr40vpwmzcf5w2pi2n4z4lk";
+    sha256 = "sha256-QQdTDhO4i9NVhegGTmdEQSNv3gooaZzTX/Rv86h3GEo=";
   };
 
   propagatedBuildInputs = [ libnest2d sip_4 clipper ];
diff --git a/pkgs/development/python-modules/pypandoc/default.nix b/pkgs/development/python-modules/pypandoc/default.nix
index ecb87d951b3..a5d0ea849bb 100644
--- a/pkgs/development/python-modules/pypandoc/default.nix
+++ b/pkgs/development/python-modules/pypandoc/default.nix
@@ -4,13 +4,13 @@
 
 buildPythonPackage rec {
   pname = "pypandoc";
-  version = "1.6.4";
+  version = "1.7.0";
 
   src = fetchFromGitHub {
     owner = "NicklasTegner";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0rssjig3nwdi4qvsjq7v7k8jyv6l9szfl5dp1a8s54c4j4dw37nh";
+    sha256 = "00r88qcvc9jpi8jvd6rpizz9gm33aq8hc3mf8lrarrjiq2fsxmk9";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/pyscf/default.nix b/pkgs/development/python-modules/pyscf/default.nix
index cf6f91e74f7..d08289d7573 100644
--- a/pkgs/development/python-modules/pyscf/default.nix
+++ b/pkgs/development/python-modules/pyscf/default.nix
@@ -66,6 +66,7 @@ buildPythonPackage rec {
     nosetests pyscf/ -v \
       --exclude-dir=examples --exclude-dir=pyscf/pbc/grad \
       --exclude-dir=pyscf/x2c \
+      --exclude-dir=pyscf/adc \
       --exclude-dir=pyscf/pbc/tdscf \
       -e test_bz \
       -e h2o_vdz \
@@ -103,7 +104,7 @@ buildPythonPackage rec {
     description = "Python-based simulations of chemistry framework";
     homepage = "https://github.com/pyscf/pyscf";
     license = licenses.asl20;
-    platforms = platforms.unix;
+    platforms = [ "x86_64-linux" "x86_64-darwin" ];
     maintainers = [ maintainers.sheepforce ];
   };
 }
diff --git a/pkgs/development/python-modules/pysmappee/default.nix b/pkgs/development/python-modules/pysmappee/default.nix
index 028d591ac92..c2322819ae4 100644
--- a/pkgs/development/python-modules/pysmappee/default.nix
+++ b/pkgs/development/python-modules/pysmappee/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "pysmappee";
-  version = "0.2.27";
+  version = "0.2.29";
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "smappee";
     repo = pname;
     rev = version;
-    sha256 = "sha256-CzdkeC53ye+IMeGUiD1mK84h2ruC1/ZpjlDjuWMVoyQ=";
+    sha256 = "sha256-Ffi55FZsZUKDcS4qV46NpRK3VP6axzrL2BO+hYW7J9E=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pytaglib/default.nix b/pkgs/development/python-modules/pytaglib/default.nix
index bf17988e758..cd51421fbc7 100644
--- a/pkgs/development/python-modules/pytaglib/default.nix
+++ b/pkgs/development/python-modules/pytaglib/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "pytaglib";
-  version = "1.4.6";
+  version = "1.5.0-1";
 
   src = fetchFromGitHub {
     owner = "supermihi";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-UAWXR1MCxEB48n7oQE+L545F+emlU3HErzLX6YTRteg=";
+    sha256 = "1nssiqzlzvzdd3pc5xd1qwgwgkyazynmq8qiljz0dhy0c8j6mkfp";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/pytest-httpserver/default.nix b/pkgs/development/python-modules/pytest-httpserver/default.nix
index 5a5c3b1449f..cd07a104038 100644
--- a/pkgs/development/python-modules/pytest-httpserver/default.nix
+++ b/pkgs/development/python-modules/pytest-httpserver/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "pytest-httpserver";
-  version = "1.0.2";
+  version = "1.0.3";
 
   src = fetchPypi {
     pname = "pytest_httpserver";
     inherit version;
-    sha256 = "sha256-JwH9HZgU1YVR+dEETbM1xrqYcxaTZsWDSVI6WM907UA=";
+    sha256 = "87561c4fa6a7bc306d76d1979a3eb9d54eb26bfb2f3f51f1643bf3c090ce629d";
   };
 
   propagatedBuildInputs = [ werkzeug ];
diff --git a/pkgs/development/python-modules/pytest-json-report/default.nix b/pkgs/development/python-modules/pytest-json-report/default.nix
new file mode 100644
index 00000000000..2b89fe71592
--- /dev/null
+++ b/pkgs/development/python-modules/pytest-json-report/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytest
+, pytest-metadata
+, pytest-xdist
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "pytest-json-report";
+  version = "1.4.1";
+
+  src = fetchFromGitHub {
+    owner = "numirias";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-OS9ASUp9iJ12Ovr931RQU/DHEAXqbgcRMCBP4h+GAhk=";
+  };
+
+  buildInputs = [
+    pytest
+  ];
+
+  propagatedBuildInputs = [
+    pytest-metadata
+  ];
+
+  checkInputs = [
+    pytest-xdist
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    # pytest-flaky is not available at the moment
+    "test_bug_31"
+  ];
+
+  pythonImportsCheck = [
+    "pytest_jsonreport"
+  ];
+
+  meta = with lib; {
+    description = "Pytest plugin to report test results as JSON";
+    homepage = "https://github.com/numirias/pytest-json-report";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/python-vipaccess/default.nix b/pkgs/development/python-modules/python-vipaccess/default.nix
index 8c3a5bf797d..c3d51ae5911 100644
--- a/pkgs/development/python-modules/python-vipaccess/default.nix
+++ b/pkgs/development/python-modules/python-vipaccess/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "python-vipaccess";
-  version = "0.13";
+  version = "0.14";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f148d4534e3a4dda9050a6a038868594c1216ea2413f2144ca6697e0e20c9cad";
+    sha256 = "d5013d306e5891ecfe523c9ef52d074fe8b6ca29ee259c0deeb8a83ae9884ce0";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyweatherflowrest/default.nix b/pkgs/development/python-modules/pyweatherflowrest/default.nix
new file mode 100644
index 00000000000..ccbf21fb90d
--- /dev/null
+++ b/pkgs/development/python-modules/pyweatherflowrest/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "pyweatherflowrest";
+  version = "0.1.21";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "briis";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-lW7mhjCYrPBsHL0plHZo6L3OwZFHAzBK2TtNVre5Lt8=";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+  ];
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace "--cov=pyweatherflowrest --cov-append" ""
+  '';
+
+  # Module has no tests. test.py is a demo script
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "pyweatherflowrest"
+  ];
+
+  meta = with lib; {
+    description = "Python module to get data from WeatherFlow Weather Stations";
+    homepage = "https://github.com/briis/pyweatherflowrest";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pywebview/default.nix b/pkgs/development/python-modules/pywebview/default.nix
index e750f234faf..67f11ed291f 100644
--- a/pkgs/development/python-modules/pywebview/default.nix
+++ b/pkgs/development/python-modules/pywebview/default.nix
@@ -7,18 +7,19 @@
 , pythonOlder
 , qt5
 , xvfb-run
+, proxy_tools
 }:
 
 buildPythonPackage rec {
   pname = "pywebview";
-  version = "3.4";
+  version = "3.5";
   disabled = pythonOlder "3.5";
 
   src = fetchFromGitHub {
     owner = "r0x0r";
     repo = "pywebview";
     rev = version;
-    sha256 = "sha256-3JHwtw8oReolEl4k8cdt7GCVGNkfWWJN6EnZYHxzDO8=";
+    sha256 = "sha256-+At/ToEylSPcLh/u2NHVTXQpMnw+2/afsevg5YAX/4c=";
   };
 
   nativeBuildInputs = [
@@ -27,6 +28,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     pyqtwebengine
+    proxy_tools
   ] ++ lib.optionals (pythonOlder "3.7") [ importlib-resources ];
 
   checkInputs = [
@@ -52,6 +54,8 @@ buildPythonPackage rec {
     popd
   '';
 
+  pythonImportsCheck = [ "webview" ];
+
   meta = with lib; {
     homepage = "https://github.com/r0x0r/pywebview";
     description = "Lightweight cross-platform wrapper around a webview";
diff --git a/pkgs/development/python-modules/pywizlight/default.nix b/pkgs/development/python-modules/pywizlight/default.nix
index 9098bf80dc5..16a72550ffd 100644
--- a/pkgs/development/python-modules/pywizlight/default.nix
+++ b/pkgs/development/python-modules/pywizlight/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "pywizlight";
-  version = "0.4.13";
+  version = "0.4.16";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -18,8 +18,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "sbidy";
     repo = pname;
-    rev = version;
-    sha256 = "sha256-XO9KmsC3DXgVcGWr5ss3m2wB8rVboWyQUWBidynhkP8=";
+    rev = "v${version}";
+    sha256 = "sha256-Da5hkmzGJtfqiDPV9X02opv54Ry6sGiSbDnej9a2QDA=";
   };
 
   propagatedBuildInputs = [
@@ -37,6 +37,8 @@ buildPythonPackage rec {
     "test_Bulb_Discovery"
     "test_timeout"
     "test_timeout_PilotBuilder"
+    "test_error_PilotBuilder_warm_wite"
+    "test_error_PilotBuilder_cold_white_lower"
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/quantum-gateway/default.nix b/pkgs/development/python-modules/quantum-gateway/default.nix
new file mode 100644
index 00000000000..19b9ae22264
--- /dev/null
+++ b/pkgs/development/python-modules/quantum-gateway/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, buildPythonPackage
+, esprima
+, fetchFromGitHub
+, pytestCheckHook
+, pythonOlder
+, requests
+, requests-mock
+, setuptools-scm
+, urllib3
+}:
+
+buildPythonPackage rec {
+  pname = "quantum-gateway";
+  version = "0.0.6";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "cisasteelersfan";
+    repo = "quantum_gateway";
+    rev = version;
+    sha256 = "f2LYOr9xJSfbA/1aHfll5lg7r05o855Zkkk9HuRamP8=";
+  };
+
+  propagatedBuildInputs = [
+    urllib3
+    esprima
+    requests
+  ];
+
+  checkInputs = [
+    requests-mock
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "quantum_gateway"
+  ];
+
+  meta = with lib; {
+    description = "Python library for interacting with Verizon Fios Quantum gateway devices";
+    homepage = "https://github.com/cisasteelersfan/quantum_gateway";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/rapidfuzz/default.nix b/pkgs/development/python-modules/rapidfuzz/default.nix
index 7e87fbab5d3..19ee86e93ab 100644
--- a/pkgs/development/python-modules/rapidfuzz/default.nix
+++ b/pkgs/development/python-modules/rapidfuzz/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "rapidfuzz";
-  version = "1.8.3";
+  version = "1.9.1";
 
   disabled = pythonOlder "3.5";
 
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     repo = "RapidFuzz";
     rev = "v${version}";
     fetchSubmodules = true;
-    sha256 = "sha256-DjMUI5JBomv0f2AC1Nvb3DeqWn65AvZJWhWus4AZk7w=";
+    sha256 = "sha256-aZqsQHrxmPqZARkqR1hWaj7XndOlCJjmWk1Cosx4skA=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/ring-doorbell/default.nix b/pkgs/development/python-modules/ring-doorbell/default.nix
index 041a959ca5b..968182f8535 100644
--- a/pkgs/development/python-modules/ring-doorbell/default.nix
+++ b/pkgs/development/python-modules/ring-doorbell/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonPackage rec {
   pname = "ring-doorbell";
-  version = "0.7.1";
+  version = "0.7.2";
   disabled = !isPy3k;
 
   src = fetchPypi {
     pname = "ring_doorbell";
     inherit version;
-    sha256 = "sha256-xE3TqXdhiUf9Tzmzc48D65Y5t1ekauacsTwwSG1urz4=";
+    sha256 = "0a7e82abf27086843eb39c0279f5dfccea6751ff848560e67154ca6fbfa4ef2b";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/robotframework/default.nix b/pkgs/development/python-modules/robotframework/default.nix
index 3acb55377f9..b0b363d8ca2 100644
--- a/pkgs/development/python-modules/robotframework/default.nix
+++ b/pkgs/development/python-modules/robotframework/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "robotframework";
-  version = "4.1.2";
+  version = "4.1.3";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "0s6lakbd8h1pa4lfdj18sm13gpywszgpcns4hz026a4kam787kby";
+    sha256 = "0j71awmfkwk7prz82kr1zbcl3nrih3396sshrygnqlrdjmgivd3p";
   };
 
   checkInputs = [ jsonschema ];
diff --git a/pkgs/development/python-modules/scp/default.nix b/pkgs/development/python-modules/scp/default.nix
index 47276ad305c..e62581057d0 100644
--- a/pkgs/development/python-modules/scp/default.nix
+++ b/pkgs/development/python-modules/scp/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "scp";
-  version = "0.14.1";
+  version = "0.14.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b776bd6ce8c8385aa9a025b64a9815b5d798f12d4ef0d712d569503f62aece8b";
+    sha256 = "713f117413bbd616a1a7da8f07db9adcd835ce73d8585fb469ea5b5785f92e4d";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/sendgrid/default.nix b/pkgs/development/python-modules/sendgrid/default.nix
index 99367f97b8d..b71c25a283d 100644
--- a/pkgs/development/python-modules/sendgrid/default.nix
+++ b/pkgs/development/python-modules/sendgrid/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "sendgrid";
-  version = "6.9.2";
+  version = "6.9.3";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = "sendgrid-python";
     rev = version;
-    sha256 = "sha256-eqmYuVW912E8hiVReLAoclmNDc2+gOIcUo9lRUx9AwM=";
+    sha256 = "sha256-/4Wk+1zAFwK+FxRhABQBha43/zapgPDfTFGrPJjXA7s=";
   };
 
   propagatedBuildInputs = [
@@ -33,10 +33,10 @@ buildPythonPackage rec {
     werkzeug
   ];
 
-  # Exclude tests that require network access
-  pytestFlagsArray = [
-    "--ignore test/test_sendgrid.py"
-    "--ignore live_test.py"
+  disabledTestPaths = [
+    # Exclude tests that require network access
+    "test/integ/test_sendgrid.py"
+    "live_test.py"
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/sentry-sdk/default.nix b/pkgs/development/python-modules/sentry-sdk/default.nix
index 31dd130bf72..0d06fa96563 100644
--- a/pkgs/development/python-modules/sentry-sdk/default.nix
+++ b/pkgs/development/python-modules/sentry-sdk/default.nix
@@ -40,14 +40,14 @@
 
 buildPythonPackage rec {
   pname = "sentry-sdk";
-  version = "1.5.0";
+  version = "1.5.1";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "getsentry";
     repo = "sentry-python";
     rev = version;
-    sha256 = "sha256-hJqopR/kvqU0trniHMOahi3oeIzeMvc74ujmfJ2iG48=";
+    sha256 = "sha256-vQ5zeAscPMQH3L+Ogj50IZZp2pBoYaxHzvcXakaoC4k=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/snowflake-sqlalchemy/default.nix b/pkgs/development/python-modules/snowflake-sqlalchemy/default.nix
index 1433ee1185f..ba2463f4aa8 100644
--- a/pkgs/development/python-modules/snowflake-sqlalchemy/default.nix
+++ b/pkgs/development/python-modules/snowflake-sqlalchemy/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "snowflake-sqlalchemy";
-  version = "1.3.2";
+  version = "1.3.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "51d9d923ebbfefe392582f6e3d0faa83f52e5eb6f190607820e055318dd2d2f8";
+    sha256 = "d1c087ce0a90bbce77f2308b9c4aeb14efeb26a3ae9da7c3d5a153341cd8ef34";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/solax/default.nix b/pkgs/development/python-modules/solax/default.nix
index 09e09d94182..e76df373bf1 100644
--- a/pkgs/development/python-modules/solax/default.nix
+++ b/pkgs/development/python-modules/solax/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "solax";
-  version = "0.2.8";
+  version = "0.2.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-bOpDrbRbdsb4XgEksAQG4GE26XSTwGAECq9Fh//zoYc=";
+    sha256 = "e66db0c5d4ec840b047e574f0325ea01862d1f5563a844510541b35faa55f392";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
diff --git a/pkgs/development/python-modules/somajo/default.nix b/pkgs/development/python-modules/somajo/default.nix
index 5d17a907cae..8701fa98e67 100644
--- a/pkgs/development/python-modules/somajo/default.nix
+++ b/pkgs/development/python-modules/somajo/default.nix
@@ -2,14 +2,14 @@
 
 buildPythonPackage rec {
   pname = "SoMaJo";
-  version = "2.1.5";
+  version = "2.1.6";
   disabled = !isPy3k;
 
   src = fetchFromGitHub {
     owner = "tsproisl";
     repo = pname;
     rev = "v${version}";
-    sha256 = "17v1vmbjwpxwql25vlbm7xsair7945ljmyaricxx8fd6fxvgn9rr";
+    sha256 = "1q88x05729qdnl1gbahisjk3s97wha0b5dj3n63kq2qyvyy0929s";
   };
 
   propagatedBuildInputs = [ regex ];
diff --git a/pkgs/development/python-modules/sphinxext-opengraph/default.nix b/pkgs/development/python-modules/sphinxext-opengraph/default.nix
index 08a87a2f7c0..8b8cb4cdbb5 100644
--- a/pkgs/development/python-modules/sphinxext-opengraph/default.nix
+++ b/pkgs/development/python-modules/sphinxext-opengraph/default.nix
@@ -2,24 +2,29 @@
 , buildPythonPackage
 , fetchFromGitHub
 , sphinx
+, pytestCheckHook
+, beautifulsoup4
 }:
 
 buildPythonPackage rec {
   pname = "sphinxext-opengraph";
-  version = "0.4.2";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
     owner = "wpilibsuite";
     repo = "sphinxext-opengraph";
     rev = "v${version}";
-    sha256 = "sha256-978aPtaqUDHcswDdFynzi+IjDYaBmCZDZk+dmDkhajY=";
+    sha256 = "sha256-US0UXxcTlN7x5v2ilpL+umTr7tadqthqhvfaQnm7tCc=";
   };
 
   propagatedBuildInputs = [
     sphinx
   ];
 
-  doCheck = false; # no tests
+  checkInputs = [
+    pytestCheckHook
+    beautifulsoup4
+  ];
 
   pythonImportsCheck = [ "sphinxext.opengraph" ];
 
diff --git a/pkgs/development/python-modules/sqlalchemy-mixins/default.nix b/pkgs/development/python-modules/sqlalchemy-mixins/default.nix
new file mode 100644
index 00000000000..85a03482a32
--- /dev/null
+++ b/pkgs/development/python-modules/sqlalchemy-mixins/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, nose
+, pytestCheckHook
+, pythonOlder
+, six
+, sqlalchemy
+}:
+
+buildPythonPackage rec {
+  pname = "sqlalchemy-mixins";
+  version = "1.5.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "absent1706";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-HZiv7F0/UatgY3KlILgzywrK5NJE/tDe6B8/smeYwlM=";
+  };
+
+  propagatedBuildInputs = [
+    six
+    sqlalchemy
+  ];
+
+  checkInputs = [
+    nose
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "sqlalchemy_mixins"
+  ];
+
+  meta = with lib; {
+    description = "Python mixins for SQLAlchemy ORM";
+    homepage = "https://github.com/absent1706/sqlalchemy-mixins";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/sslyze/default.nix b/pkgs/development/python-modules/sslyze/default.nix
index 5680b4bd36b..587572646ab 100644
--- a/pkgs/development/python-modules/sslyze/default.nix
+++ b/pkgs/development/python-modules/sslyze/default.nix
@@ -1,52 +1,107 @@
 { lib
 , fetchFromGitHub
 , buildPythonPackage
-, nassl
-, cryptography
-, typing-extensions
-, faker
 , pytestCheckHook
 , pythonOlder
+  # deps
+, cryptography
+, nassl
+, pydantic
+, tls-parser
+  # check deps
+, faker
+, openssl_1_0_2
+, openssl_1_1
 }:
 
 buildPythonPackage rec {
   pname = "sslyze";
-  version = "4.1.0";
+  version = "5.0.0";
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "nabla-c0d3";
     repo = pname;
     rev = version;
-    hash = "sha256-oSTKNiECczlPAbv5Azc023PcquFbnlC5O+8tVgNcUW0=";
+    hash = "sha256-7kUriEMHcGCXKs42KVWxXvM+JEEWf/8tnuoGujHbqHY=";
   };
 
   patchPhase = ''
     substituteInPlace setup.py \
-      --replace "cryptography>=2.6,<3.5" "cryptography>=2.6,<4.0"
+      --replace "cryptography>=2.6,<36.0.0" "cryptography>=2.6"
   '';
 
-  checkInputs = [ pytestCheckHook ];
+  checkInputs = [
+    pytestCheckHook
+    faker
+  ];
 
   # Most of the tests are online; hence, applicable tests are listed
   # explicitly here
   pytestFlagsArray = [
-    "tests/test_main.py"
-    "tests/test_scanner.py"
     "tests/cli_tests/test_console_output.py"
-    "tests/cli_tests/test_json_output.py"
     "tests/cli_tests/test_server_string_parser.py"
-    "tests/plugins_tests/test_scan_commands.py"
+    "tests/json_tests/test_json_output.py"
+    "tests/plugins_tests/certificate_info/test_certificate_algorithms.py"
     "tests/plugins_tests/certificate_info/test_certificate_utils.py"
+    "tests/plugins_tests/certificate_info/test_symantec.py"
+    "tests/plugins_tests/certificate_info/test_trust_store_repository.py"
+    "tests/plugins_tests/openssl_cipher_suites/test_cipher_suites.py"
+    "tests/plugins_tests/test_early_data_plugin.py"
+    "tests/plugins_tests/test_http_headers_plugin.py"
+    "tests/plugins_tests/test_robot_plugin.py"
+    "tests/plugins_tests/test_scan_commands.py"
+    "tests/plugins_tests/test_session_renegotiation_plugin.py"
+    "tests/scanner_tests/test_jobs_worker_thread.py"
+    "tests/scanner_tests/test_mass_scanner.py"
+    "tests/scanner_tests/test_models.py"
+    "tests/scanner_tests/test_scanner.py"
+    "tests/server_connectivity_tests/test_client_authentication.py"
   ];
 
   disabledTests = [
-    "test_error_client_certificate_needed"
+    # TestEllipticCurvesPluginWithOnlineServer
+    "test_supported_curves"
+    # TestRobotPluginPlugin
+    "test_robot_attack_good"
+    # TestHttpHeadersPlugin
+    "test_all_headers_disabled"
+    "test_expect_ct_enabled"
+    "test_hsts_enabled"
+    # TestSessionRenegotiationPlugin
+    "test_renegotiation_good"
+    # TestCertificateAlgorithms
+    "test_ecdsa_certificate"
+    "test_invalid_certificate_bad_name"
+    # TestEarlyDataPlugin
+    "test_early_data_enabled"
+    # TestTrustStoresRepository
+    "test_update_default"
+    # TestClientAuthentication
+    "test_optional_client_authentication"
   ];
 
+  # Some tests require OpenSSL
+  preCheck = ''
+    pushd $TMPDIR/$sourceRoot/tests/openssl_server/
+
+    rm openssl-1-1-1-linux64
+    ln -s ${openssl_1_1.bin}/bin/openssl openssl-1-1-1-linux64
+
+    rm openssl-1-0-0e-linux64
+    ln -s ${openssl_1_0_2.bin}/bin/openssl openssl-1-0-0e-linux64
+
+    popd
+  '';
+
   pythonImportsCheck = [ "sslyze" ];
 
-  propagatedBuildInputs = [ nassl cryptography typing-extensions faker ];
+  propagatedBuildInputs = [
+    cryptography
+    nassl
+    pydantic
+    tls-parser
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/nabla-c0d3/sslyze";
diff --git a/pkgs/development/python-modules/stem/default.nix b/pkgs/development/python-modules/stem/default.nix
index c607d45e170..9ad5e2285ff 100644
--- a/pkgs/development/python-modules/stem/default.nix
+++ b/pkgs/development/python-modules/stem/default.nix
@@ -27,6 +27,6 @@ buildPythonPackage rec {
     description = "Controller library that allows applications to interact with Tor";
     homepage = "https://stem.torproject.org/";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ phreedom ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/striprtf/default.nix b/pkgs/development/python-modules/striprtf/default.nix
index efde42b5195..3f941d59dac 100644
--- a/pkgs/development/python-modules/striprtf/default.nix
+++ b/pkgs/development/python-modules/striprtf/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "striprtf";
-  version = "0.0.16";
+  version = "0.0.17";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "690387117f3341354fddd0957913158d1319c207755c0cc54a614f80248887b2";
+    sha256 = "e122b5d334cda9b0edb3eeb8910f01d0ffb02eaca054facd75b17b98fcf646f5";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/subarulink/default.nix b/pkgs/development/python-modules/subarulink/default.nix
index 6abaa02d703..1b6d1033c45 100644
--- a/pkgs/development/python-modules/subarulink/default.nix
+++ b/pkgs/development/python-modules/subarulink/default.nix
@@ -12,14 +12,16 @@
 
 buildPythonPackage rec {
   pname = "subarulink";
-  version = "0.3.15";
+  version = "0.3.16";
+  format = "setuptools";
+
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "G-Two";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-akDccWkiFwTwq7dvUxm34BFNS5PnQowqnxVvkPFzxLM=";
+    sha256 = "sha256-7waY5AOONi+u056JRH9KcoBWSB4AlMw4QcMW0uoCARc=";
   };
 
   propagatedBuildInputs = [
@@ -35,7 +37,8 @@ buildPythonPackage rec {
   ];
 
   postPatch = ''
-    substituteInPlace setup.cfg --replace "--cov=subarulink" ""
+    substituteInPlace setup.cfg \
+      --replace "--cov=subarulink" ""
   '';
 
   __darwinAllowLocalNetworking = true;
@@ -44,7 +47,9 @@ buildPythonPackage rec {
     export HOME=$(mktemp -d)
   '';
 
-  pythonImportsCheck = [ "subarulink" ];
+  pythonImportsCheck = [
+    "subarulink"
+  ];
 
   meta = with lib; {
     description = "Python module for interacting with STARLINK-enabled vehicle";
diff --git a/pkgs/development/python-modules/tableaudocumentapi/default.nix b/pkgs/development/python-modules/tableaudocumentapi/default.nix
index 56a3b27e7b9..06a445450e5 100644
--- a/pkgs/development/python-modules/tableaudocumentapi/default.nix
+++ b/pkgs/development/python-modules/tableaudocumentapi/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "tableaudocumentapi";
-  version = "0.7";
+  version = "0.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5b1d04817a0fba43d58e1ce23c64ad8dfe54dc029ba5ccae3908944555bb13e0";
+    sha256 = "0c7d01f01758dd6e50ff2fc915c6087c0da17298635e6635581aaf25c934d6ce";
   };
 
   # tests not inclued with release
diff --git a/pkgs/development/python-modules/tailscale/default.nix b/pkgs/development/python-modules/tailscale/default.nix
index 94de671acaf..96016b3f0d4 100644
--- a/pkgs/development/python-modules/tailscale/default.nix
+++ b/pkgs/development/python-modules/tailscale/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "tailscale";
-  version = "0.1.4";
+  version = "0.1.6";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "frenck";
     repo = "python-tailscale";
     rev = "v${version}";
-    sha256 = "sha256-xRVkmofD2pOco0kJfVcmUaPow2ZZNEZrhvNmldUjQuw=";
+    sha256 = "1dkmjc78mhgbikfz6mi6g63a36w6v29pdbb3pvgpicg0l649rsc9";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/tensorflow/default.nix b/pkgs/development/python-modules/tensorflow/default.nix
index ae55ac637e9..776fbaa1801 100644
--- a/pkgs/development/python-modules/tensorflow/default.nix
+++ b/pkgs/development/python-modules/tensorflow/default.nix
@@ -6,13 +6,13 @@
 , numpy, tensorflow-tensorboard, absl-py
 , setuptools, wheel, keras, keras-preprocessing, google-pasta
 , opt-einsum, astunparse, h5py
-, termcolor, grpcio, six, wrapt, protobuf, tensorflow-estimator
+, termcolor, grpcio, six, wrapt, protobuf-python, tensorflow-estimator
 , dill, flatbuffers-python, tblib, typing-extensions
 # Common deps
 , git, pybind11, which, binutils, glibcLocales, cython, perl
 # Common libraries
 , jemalloc, mpi, gast, grpc, sqlite, boringssl, jsoncpp
-, curl, snappy, flatbuffers-core, lmdb-core, icu, double-conversion, libpng, libjpeg_turbo, giflib
+, curl, snappy, flatbuffers-core, lmdb-core, icu, double-conversion, libpng, libjpeg_turbo, giflib, protobuf-core
 # Upsteam by default includes cuda support since tensorflow 1.15. We could do
 # that in nix as well. It would make some things easier and less confusing, but
 # it would also make the default tensorflow package unfree. See
@@ -90,7 +90,7 @@ let
       keras-preprocessing
       numpy
       opt-einsum
-      protobuf
+      protobuf-python
       setuptools
       six
       tblib
@@ -188,11 +188,16 @@ let
       sha256 = "sha256-n7jRDPeXsyq4pEWSWmOCas4c8VsArIKlCuwvSU/Ro/c=";
     };
 
+    patches = [
+      # Patch the sources to compile with protobuf >= 3.16.
+      ./system-protobuf.patch
+    ];
+
     # On update, it can be useful to steal the changes from gentoo
     # https://gitweb.gentoo.org/repo/gentoo.git/tree/sci-libs/tensorflow
 
     nativeBuildInputs = [
-      which pythonEnv cython perl
+      which pythonEnv cython perl protobuf-core
     ] ++ lib.optional cudaSupport addOpenGLRunpath;
 
     buildInputs = [
@@ -241,12 +246,7 @@ let
       # "com_github_googleapis_googleapis"
       # "com_github_googlecloudplatform_google_cloud_cpp"
       "com_github_grpc_grpc"
-      # Multiple issues with custom protobuf.
-      # First `com_github_googleapis` fails to configure. Can be worked around by disabling `com_github_googleapis`
-      # and related functionality, but then the next error is about "dangling symbolic link", and in general
-      # looks like that's only the beginning: see
-      # https://stackoverflow.com/questions/55578884/how-to-build-tensorflow-1-13-1-with-custom-protobuf
-      # "com_google_protobuf"
+      "com_google_protobuf"
       # Fails with the error: external/org_tensorflow/tensorflow/core/profiler/utils/tf_op_utils.cc:46:49: error: no matching function for call to 're2::RE2::FullMatch(absl::lts_2020_02_25::string_view&, re2::RE2&)'
       # "com_googlesource_code_re2"
       "curl"
@@ -281,6 +281,11 @@ let
 
     INCLUDEDIR = "${includes_joined}/include";
 
+    # This is needed for the Nix-provided protobuf dependency to work,
+    # as otherwise the rule `link_proto_files` tries to create the links
+    # to `/usr/include/...` which results in build failures.
+    PROTOBUF_INCLUDE_PATH = "${protobuf-core}/include";
+
     PYTHON_BIN_PATH = pythonEnv.interpreter;
 
     TF_NEED_GCP = true;
@@ -356,12 +361,12 @@ let
     fetchAttrs = {
       # cudaSupport causes fetch of ncclArchive, resulting in different hashes
       sha256 = if cudaSupport then
-        "sha256-GIBs1BAUuefwlavu7dr9rFb4n1A3uwnvvCAvsBnSSqQ="
+        "sha256-+szc2mRoImwijzbj3nw6HmZp3DeRjjPRU5yC+5AEbkg="
       else
         if stdenv.isDarwin then
-          "sha256-156eOnnjk+wzIiGLd6k/+SAgm4AyImsV/qBsHFlxe+k="
+          "sha256-+bwIzp6t7gRJPcI8B5oyuf9z0AjCAyggUR7x+vv5kFs="
         else
-          "sha256-Fj/wWapsre55VctJ1k1kcYKAn3uDCMPN5rVX8y76ypM=";
+          "sha256-5yOYmeGpJq4Chi55H7iblxyRXVktgnePtpYTPvBs538=";
     };
 
     buildAttrs = {
@@ -454,7 +459,7 @@ in buildPythonPackage {
     keras-preprocessing
     numpy
     opt-einsum
-    protobuf
+    protobuf-python
     six
     tblib
     tensorflow-estimator
diff --git a/pkgs/development/python-modules/tensorflow/system-protobuf.patch b/pkgs/development/python-modules/tensorflow/system-protobuf.patch
new file mode 100644
index 00000000000..dce6df81046
--- /dev/null
+++ b/pkgs/development/python-modules/tensorflow/system-protobuf.patch
@@ -0,0 +1,13 @@
+diff --git a/tensorflow/core/kernels/example_parsing_ops.cc b/tensorflow/core/kernels/example_parsing_ops.cc
+index a1265cfb5c6..ada919bbd7b 100644
+--- a/tensorflow/core/kernels/example_parsing_ops.cc
++++ b/tensorflow/core/kernels/example_parsing_ops.cc
+@@ -1218,7 +1218,7 @@ class DecodeJSONExampleOp : public OpKernel {
+           resolver_.get(), "type.googleapis.com/tensorflow.Example", &in, &out);
+       OP_REQUIRES(ctx, status.ok(),
+                   errors::InvalidArgument("Error while parsing JSON: ",
+-                                          string(status.error_message())));
++                                          string(status.message())));
+     }
+   }
+ 
diff --git a/pkgs/development/python-modules/tokenizers/default.nix b/pkgs/development/python-modules/tokenizers/default.nix
index d5d26050eee..55928d4fcc8 100644
--- a/pkgs/development/python-modules/tokenizers/default.nix
+++ b/pkgs/development/python-modules/tokenizers/default.nix
@@ -1,9 +1,11 @@
 { lib
+, stdenv
 , fetchFromGitHub
 , fetchurl
 , buildPythonPackage
 , rustPlatform
 , setuptools-rust
+, libiconv
 , numpy
 , datasets
 , pytestCheckHook
@@ -72,6 +74,10 @@ in buildPythonPackage rec {
     rust.rustc
   ]);
 
+  buildInputs = lib.optionals stdenv.isDarwin [
+    libiconv
+  ];
+
   propagatedBuildInputs = [
     numpy
   ];
diff --git a/pkgs/development/python-modules/torchvision/default.nix b/pkgs/development/python-modules/torchvision/default.nix
index d17eabb8c35..4774e09f0b6 100644
--- a/pkgs/development/python-modules/torchvision/default.nix
+++ b/pkgs/development/python-modules/torchvision/default.nix
@@ -24,13 +24,13 @@ let
   cudaArchStr = lib.optionalString cudaSupport lib.strings.concatStringsSep ";" pytorch.cudaArchList;
 in buildPythonPackage rec {
   pname = "torchvision";
-  version = "0.11.1";
+  version = "0.11.2";
 
   src = fetchFromGitHub {
     owner = "pytorch";
     repo = "vision";
     rev = "v${version}";
-    sha256 = "05dg835mmpzf7k2jn101l7x7cnra1kldwbgf19zblym5lfn21zhf";
+    sha256 = "136w9pqyfdsxxc7337q3x42gsr17gs0i0af2swfhzqhz6hd5139i";
   };
 
   nativeBuildInputs = [ libpng ninja which ]
diff --git a/pkgs/development/python-modules/trezor/default.nix b/pkgs/development/python-modules/trezor/default.nix
index 137d6712445..78eb7eda088 100644
--- a/pkgs/development/python-modules/trezor/default.nix
+++ b/pkgs/development/python-modules/trezor/default.nix
@@ -19,7 +19,7 @@
 , shamir-mnemonic
 , typing-extensions
 , trezor-udev-rules
-, pytest
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
@@ -54,16 +54,7 @@ buildPythonPackage rec {
     trezor-udev-rules
   ];
 
-  checkInputs = [
-    pytest
-  ];
-
-  # disable test_tx_api.py as it requires being online
-  checkPhase = ''
-    runHook preCheck
-    pytest --pyargs tests --ignore tests/test_tx_api.py
-    runHook postCheck
-  '';
+  checkInputs = [ pytestCheckHook ];
 
   postFixup = ''
     mkdir completions
diff --git a/pkgs/development/python-modules/twilio/default.nix b/pkgs/development/python-modules/twilio/default.nix
index d85446f5387..12859fae86c 100644
--- a/pkgs/development/python-modules/twilio/default.nix
+++ b/pkgs/development/python-modules/twilio/default.nix
@@ -11,7 +11,8 @@
 
 buildPythonPackage rec {
   pname = "twilio";
-  version = "7.2.0";
+  version = "7.4.0";
+  format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
@@ -19,7 +20,7 @@ buildPythonPackage rec {
     owner = "twilio";
     repo = "twilio-python";
     rev = version;
-    sha256 = "sha256-lhRlLZ9RpOpNIPEgrO7+JO8CnqeC3gqgGqXjznsA9ls=";
+    sha256 = "sha256-gN9cVBhiO34uj2ZGqXrnlvOlSaGxry0tMxaTK4SYhjM=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/twitterapi/default.nix b/pkgs/development/python-modules/twitterapi/default.nix
index 6bbb68c28f5..31caed5ebd9 100644
--- a/pkgs/development/python-modules/twitterapi/default.nix
+++ b/pkgs/development/python-modules/twitterapi/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "twitterapi";
-  version = "2.7.9.1";
+  version = "2.7.10";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "geduldig";
     repo = "TwitterAPI";
     rev = "v${version}";
-    sha256 = "sha256-3Ho8iw//X+eB7B/Q9TJGeoxAYjUJ96qsI1T3WYqZOpM=";
+    sha256 = "sha256-NWvoamSSyMssV4yJpMZtnCwQ5zBpqbgyUA7sJa9854U=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/types-requests/default.nix b/pkgs/development/python-modules/types-requests/default.nix
index 6e89d2edd2a..527893aed00 100644
--- a/pkgs/development/python-modules/types-requests/default.nix
+++ b/pkgs/development/python-modules/types-requests/default.nix
@@ -5,12 +5,12 @@
 
 buildPythonPackage rec {
   pname = "types-requests";
-  version = "2.26.1";
+  version = "2.26.2";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-CJPhEuFRC7tn9TeUHJIZLedHLlG/fyNuDlg4ZvDtkz4=";
+    sha256 = "0e22d9cdeff4c3eb068eb883d59b127c98d80525f3d0412a1c4499c6ae1f711e";
   };
 
   # Module doesn't have tests
diff --git a/pkgs/development/python-modules/uranium/default.nix b/pkgs/development/python-modules/uranium/default.nix
index a8ce6713f2c..58b96b5cd7a 100644
--- a/pkgs/development/python-modules/uranium/default.nix
+++ b/pkgs/development/python-modules/uranium/default.nix
@@ -2,7 +2,7 @@
 , pyqt5, numpy, scipy, shapely, libarcus, cryptography, doxygen, gettext, pythonOlder }:
 
 buildPythonPackage rec {
-  version = "4.10.0";
+  version = "4.12.0";
   pname = "uranium";
   format = "other";
 
@@ -10,7 +10,7 @@ buildPythonPackage rec {
     owner = "Ultimaker";
     repo = "Uranium";
     rev = version;
-    sha256 = "0bxbkqc4ajs52vmalmhvvqvl1aw2ss6yf7nclwx8nc2g5vchd4ng";
+    sha256 = "sha256-SE9xqrloPXIRTJiiqUdRKFmb4c0OjmJK5CMn6VXMFmk=";
   };
 
   disabled = pythonOlder "3.5.0";
diff --git a/pkgs/development/python-modules/vehicle/default.nix b/pkgs/development/python-modules/vehicle/default.nix
index 9d5f15a3e1b..7447ce14cfc 100644
--- a/pkgs/development/python-modules/vehicle/default.nix
+++ b/pkgs/development/python-modules/vehicle/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "vehicle";
-  version = "0.2.2";
+  version = "0.3.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "frenck";
     repo = "python-vehicle";
     rev = "v${version}";
-    sha256 = "sha256-3DkfS8gx3C1/Vj8+IE7uxZ5i0cKJk0mJpBWQqAgb2Xo=";
+    sha256 = "0blpyh246l16bn6jy8ifym2br13k8qxagggbwpzwrwfxkb3kdz5x";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/virtualenv/default.nix b/pkgs/development/python-modules/virtualenv/default.nix
index c5aa9f0bac9..f23764a5107 100644
--- a/pkgs/development/python-modules/virtualenv/default.nix
+++ b/pkgs/development/python-modules/virtualenv/default.nix
@@ -74,6 +74,9 @@ buildPythonPackage rec {
   disabledTests = [
     # Permission Error
     "test_bad_exe_py_info_no_raise"
+  ] ++ lib.optionals isPy27 [
+    "test_python_via_env_var"
+    "test_python_multi_value_prefer_newline_via_env_var"
   ];
 
   pythonImportsCheck = [ "virtualenv" ];
diff --git a/pkgs/development/python-modules/vpk/default.nix b/pkgs/development/python-modules/vpk/default.nix
new file mode 100644
index 00000000000..a65aacd4eb2
--- /dev/null
+++ b/pkgs/development/python-modules/vpk/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "vpk";
+  version = "1.3.3";
+
+  src = fetchFromGitHub {
+    owner = "ValvePython";
+    repo = "vpk";
+    rev = "v${version}";
+    hash = "sha256-kFKu4fuclanMdlfA/2ZccglM7rSzaq9BbbSaKuIN+Pk=";
+  };
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  meta = with lib; {
+    description = "Library for working with Valve Pak files";
+    homepage = "https://github.com/ValvePython/vpk";
+    license = licenses.mit;
+    maintainers = with maintainers; [ joshuafern ];
+  };
+}
diff --git a/pkgs/development/python-modules/yalexs/default.nix b/pkgs/development/python-modules/yalexs/default.nix
index a97ebe947af..9b9ef513f70 100644
--- a/pkgs/development/python-modules/yalexs/default.nix
+++ b/pkgs/development/python-modules/yalexs/default.nix
@@ -16,14 +16,16 @@
 
 buildPythonPackage rec {
   pname = "yalexs";
-  version = "1.1.13";
+  version = "1.1.15";
+  format = "setuptools";
+
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "bdraco";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0938540n60xv7kxam3azszn3nj0mnhhgh5p4hgbfxj43bkwpqz4n";
+    sha256 = "sha256-EK9jmbU3A2rNx/H8WOsZiGA7tqzg/XJkW/DV5s+2Y3U=";
   };
 
   propagatedBuildInputs = [
@@ -44,10 +46,13 @@ buildPythonPackage rec {
 
   postPatch = ''
     # Not used requirement
-    substituteInPlace setup.py --replace '"vol",' ""
+    substituteInPlace setup.py \
+      --replace '"vol",' ""
   '';
 
-  pythonImportsCheck = [ "yalexs" ];
+  pythonImportsCheck = [
+    "yalexs"
+  ];
 
   meta = with lib; {
     description = "Python API for Yale Access (formerly August) Smart Lock and Doorbell";
diff --git a/pkgs/development/quickemu/default.nix b/pkgs/development/quickemu/default.nix
index f7807a9d1c9..aa9906c77ec 100644
--- a/pkgs/development/quickemu/default.nix
+++ b/pkgs/development/quickemu/default.nix
@@ -17,6 +17,9 @@
 , xdg-user-dirs
 , xrandr
 , zsync
+, OVMF
+, quickemu
+, testVersion
 }:
 let
   runtimePaths = [
@@ -40,15 +43,20 @@ in
 
 stdenv.mkDerivation rec {
   pname = "quickemu";
-  version = "2.2.7";
+  version = "3.11";
 
   src = fetchFromGitHub {
-    owner = "wimpysworld";
-    repo = pname;
+    owner = "quickemu-project";
+    repo = "quickemu";
     rev = version;
-    sha256 = "sha256-TNG1pCePsi12QQafhayhj+V5EXq+v7qmaW5v5X8ER6s=";
+    sha256 = "1xwf9vwbr57wmyxfcqzl1jnmfx3ffh7sfqf0zcdq41wqkm8s106n";
   };
 
+  patches = [
+    ./efi_vars_ensure_writable.patch
+    ./input_overrides.patch
+  ];
+
   nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
@@ -56,16 +64,21 @@ stdenv.mkDerivation rec {
 
     install -Dm755 -t "$out/bin" quickemu quickget macrecovery
 
-   for f in quickget macrecovery quickemu; do
-    wrapProgram $out/bin/$f --prefix PATH : "${lib.makeBinPath runtimePaths}"
-   done
+    for f in quickget macrecovery quickemu; do
+      wrapProgram $out/bin/$f \
+        --prefix PATH : "${lib.makeBinPath runtimePaths}" \
+        --set ENV_EFI_CODE "${OVMF.fd}/FV/OVMF_CODE.fd" \
+        --set ENV_EFI_VARS "${OVMF.fd}/FV/OVMF_VARS.fd"
+    done
 
     runHook postInstall
   '';
 
+  passthru.tests = testVersion { package = quickemu; };
+
   meta = with lib; {
     description = "Quickly create and run optimised Windows, macOS and Linux desktop virtual machines";
-    homepage = "https://github.com/wimpysworld/quickemu";
+    homepage = "https://github.com/quickemu-project/quickemu";
     license = licenses.mit;
     maintainers = with maintainers; [ fedx-sudo ];
   };
diff --git a/pkgs/development/quickemu/efi_vars_ensure_writable.patch b/pkgs/development/quickemu/efi_vars_ensure_writable.patch
new file mode 100644
index 00000000000..e146d0ba768
--- /dev/null
+++ b/pkgs/development/quickemu/efi_vars_ensure_writable.patch
@@ -0,0 +1,13 @@
+diff --git a/quickemu b/quickemu
+index a9a60a5..1a932ac 100755
+--- a/quickemu
++++ b/quickemu
+@@ -197,7 +197,7 @@ function efi_vars() {
+ 
+   if [ ! -e "${VARS_OUT}" ]; then
+     if [ -e "${VARS_IN}" ]; then
+-      cp "${VARS_IN}" "${VARS_OUT}"
++      cp "${VARS_IN}" "${VARS_OUT}" && chmod +w "${VARS_OUT}"
+     else
+       echo "ERROR! ${VARS_IN} was not found. Please install edk2."
+       exit 1
diff --git a/pkgs/development/quickemu/input_overrides.patch b/pkgs/development/quickemu/input_overrides.patch
new file mode 100644
index 00000000000..228624edcf1
--- /dev/null
+++ b/pkgs/development/quickemu/input_overrides.patch
@@ -0,0 +1,28 @@
+diff --git a/quickemu b/quickemu
+index 1a932ac..ab2f752 100755
+--- a/quickemu
++++ b/quickemu
+@@ -383,7 +383,10 @@ function vm_boot() {
+     # https://bugzilla.redhat.com/show_bug.cgi?id=1929357#c5
+     case ${secureboot} in
+       on)
+-        if [ -e "/usr/share/OVMF/OVMF_CODE_4M.secboot.fd" ]; then
++        if [[ ${ENV_EFI_CODE_SECURE} && ${ENV_EFI_CODE_SECURE-x} ]] && [[ ${ENV_EFI_VARS_SECURE} && ${ENV_EFI_VARS_SECURE-x} ]]; then
++          EFI_CODE="${ENV_EFI_CODE_SECURE}"
++          efi_vars "${ENV_EFI_VARS_SECURE}" "${EFI_VARS}"
++        elif [ -e "/usr/share/OVMF/OVMF_CODE_4M.secboot.fd" ]; then
+           EFI_CODE="/usr/share/OVMF/OVMF_CODE_4M.secboot.fd"
+           efi_vars "/usr/share/OVMF/OVMF_VARS_4M.fd" "${EFI_VARS}"
+         elif [ -e "/usr/share/edk2/ovmf/OVMF_CODE.secboot.fd" ]; then
+@@ -402,7 +405,10 @@ function vm_boot() {
+         fi
+         ;;
+       *)
+-        if [ -e "/usr/share/OVMF/OVMF_CODE_4M.fd" ]; then
++        if [[ ${ENV_EFI_CODE} && ${ENV_EFI_CODE-x} ]] && [[ ${ENV_EFI_VARS} && ${ENV_EFI_VARS-x} ]]; then
++          EFI_CODE="${ENV_EFI_CODE}"
++          efi_vars "${ENV_EFI_VARS}" "${EFI_VARS}"
++        elif [ -e "/usr/share/OVMF/OVMF_CODE_4M.fd" ]; then
+           EFI_CODE="/usr/share/OVMF/OVMF_CODE_4M.fd"
+           efi_vars "/usr/share/OVMF/OVMF_VARS_4M.fd" "${EFI_VARS}"
+         elif [ -e "/usr/share/edk2/ovmf/OVMF_CODE.fd" ]; then
diff --git a/pkgs/development/tools/analysis/checkov/default.nix b/pkgs/development/tools/analysis/checkov/default.nix
index dab8e7f60ed..3be59a04c02 100644
--- a/pkgs/development/tools/analysis/checkov/default.nix
+++ b/pkgs/development/tools/analysis/checkov/default.nix
@@ -46,13 +46,13 @@ with py.pkgs;
 
 buildPythonApplication rec {
   pname = "checkov";
-  version = "2.0.648";
+  version = "2.0.682";
 
   src = fetchFromGitHub {
     owner = "bridgecrewio";
     repo = pname;
     rev = version;
-    sha256 = "sha256-WhBbZiLPGA9Dvn8xJaPOvOjEeVOWHBVLyEav4Mw/Xy8=";
+    sha256 = "sha256-WQSt3z2U4cQeT2AAGiVA4UhJlsMjzgR16cW9/7foHUI=";
   };
 
   nativeBuildInputs = with py.pkgs; [
diff --git a/pkgs/development/tools/analysis/include-what-you-use/default.nix b/pkgs/development/tools/analysis/include-what-you-use/default.nix
index 8ba381bc544..bc1be4e5ba5 100644
--- a/pkgs/development/tools/analysis/include-what-you-use/default.nix
+++ b/pkgs/development/tools/analysis/include-what-you-use/default.nix
@@ -3,10 +3,10 @@
 stdenv.mkDerivation rec {
   pname = "include-what-you-use";
   # Also bump llvmPackages in all-packages.nix to the supported version!
-  version = "0.16";
+  version = "0.17";
 
   src = fetchurl {
-    sha256 = "sha256-jW/JslU0O8Hl7EWeOVEt8dUcYOA1YpheAHYDYRn/Whw=";
+    sha256 = "sha256-7KfAT4tBa2OF7QDjNmmn+kaTzSbLcrUizeVYgo6wxmU=";
     url = "${meta.homepage}/downloads/${pname}-${version}.src.tar.gz";
   };
 
diff --git a/pkgs/development/tools/analysis/radare2/default.nix b/pkgs/development/tools/analysis/radare2/default.nix
index ef311a8c6ed..c50f75c154e 100644
--- a/pkgs/development/tools/analysis/radare2/default.nix
+++ b/pkgs/development/tools/analysis/radare2/default.nix
@@ -44,13 +44,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "radare2";
-  version = "5.5.2";
+  version = "5.5.4";
 
   src = fetchFromGitHub {
     owner = "radare";
     repo = "radare2";
     rev = version;
-    sha256 = "sha256-7nygSugqOYhK0lXEy3BSr5h5+GTfLBG/1O6TyKhk++c=";
+    sha256 = "sha256-zELmNpbT1JCt0UAzHwzcTDN9QZTLQY0+rG9zVRWxiFg=";
   };
 
   preBuild = ''
diff --git a/pkgs/development/tools/analysis/tflint/default.nix b/pkgs/development/tools/analysis/tflint/default.nix
index 0bf9715de6f..cbdd2d37d80 100644
--- a/pkgs/development/tools/analysis/tflint/default.nix
+++ b/pkgs/development/tools/analysis/tflint/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "tflint";
-  version = "0.33.2";
+  version = "0.34.0";
 
   src = fetchFromGitHub {
     owner = "terraform-linters";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-CjpeBB1krbRJxwfvBbhhHUf5IDOZFWRds/t9h22iLE0=";
+    sha256 = "sha256-MdA1bS8ZPsfwnmnmIKBissuvwWY9HHxoLJEfGcJQ3j0=";
   };
 
   vendorSha256 = "sha256-y+bPFCjgTu+C5Cx85lYRjUbLd6c5PcckXRpg102d1zk=";
diff --git a/pkgs/development/tools/bazelisk/default.nix b/pkgs/development/tools/bazelisk/default.nix
index 00852a4c90f..2ba077fa943 100644
--- a/pkgs/development/tools/bazelisk/default.nix
+++ b/pkgs/development/tools/bazelisk/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "bazelisk";
-  version = "1.10.1";
+  version = "1.11.0";
 
   src = fetchFromGitHub {
     owner = "bazelbuild";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-MpAYJSDAbyh4aGW+hRrny5+bXZ96cNcUhqJkgY8bdD8=";
+    sha256 = "sha256-9J49+1fI3wmHQqYgdoGgaAuVMA9eG7wrFe7dQEectvI=";
   };
 
-  vendorSha256 = "sha256-5qpeAD4VFsR8iJlRiNTncOdq39lq3MU6gSLu3G/BcPU=";
+  vendorSha256 = "sha256-+zJEB9FyVvxHdwR/dAn56jrMbgVBhlbziVFe2WCQFfE=";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/build-managers/bazel/README.md b/pkgs/development/tools/build-managers/bazel/README.md
new file mode 100644
index 00000000000..69ec0e30e15
--- /dev/null
+++ b/pkgs/development/tools/build-managers/bazel/README.md
@@ -0,0 +1,7 @@
+# The Bazel build tool
+
+https://bazel.build/
+
+The bazel tool requires regular maintenance, especially under darwin, so we created a maintainers team.
+
+Please ping @NixOS/bazel in your github PR/issue to increase your chance of a quick turnaround, thanks!
diff --git a/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix b/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix
index 7211543c22a..3d67dfafb83 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix
@@ -22,7 +22,7 @@ buildGoModule rec {
     homepage = "https://github.com/buchgr/bazel-remote";
     description = "A remote HTTP/1.1 cache for Bazel";
     license = licenses.asl20;
-    maintainers = [ maintainers.uri-canva ];
+    maintainers = lib.teams.bazel.members;
     platforms = platforms.darwin ++ platforms.linux;
   };
 }
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_0_29/default.nix b/pkgs/development/tools/build-managers/bazel/bazel_0_29/default.nix
index 3a3a39b3eee..0ecf6300eb2 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel_0_29/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/bazel_0_29/default.nix
@@ -149,7 +149,7 @@ stdenv'.mkDerivation rec {
     homepage = "https://github.com/bazelbuild/bazel/";
     description = "Build tool that builds code quickly and reliably";
     license = licenses.asl20;
-    maintainers = [ maintainers.mboes ];
+    maintainers = lib.teams.bazel.members;
     inherit platforms;
   };
 
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_1/default.nix b/pkgs/development/tools/build-managers/bazel/bazel_1/default.nix
index ee39a7c6f7b..3adf52ec905 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel_1/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/bazel_1/default.nix
@@ -150,7 +150,7 @@ stdenv'.mkDerivation rec {
     homepage = "https://github.com/bazelbuild/bazel/";
     description = "Build tool that builds code quickly and reliably";
     license = licenses.asl20;
-    maintainers = [ maintainers.mboes ];
+    maintainers = lib.teams.bazel.members;
     inherit platforms;
   };
 
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_3/default.nix b/pkgs/development/tools/build-managers/bazel/bazel_3/default.nix
index a08f7a62eae..d9c93c2265f 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel_3/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/bazel_3/default.nix
@@ -164,7 +164,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/bazelbuild/bazel/";
     description = "Build tool that builds code quickly and reliably";
     license = licenses.asl20;
-    maintainers = [ maintainers.mboes ];
+    maintainers = lib.teams.bazel.members;
     inherit platforms;
   };
 
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_4/actions_path.patch b/pkgs/development/tools/build-managers/bazel/bazel_4/actions_path.patch
new file mode 100644
index 00000000000..1fa1e574833
--- /dev/null
+++ b/pkgs/development/tools/build-managers/bazel/bazel_4/actions_path.patch
@@ -0,0 +1,41 @@
+diff --git a/src/main/java/com/google/devtools/build/lib/exec/local/PosixLocalEnvProvider.java b/src/main/java/com/google/devtools/build/lib/exec/local/PosixLocalEnvProvider.java
+index 6fff2af..7e2877e 100644
+--- a/src/main/java/com/google/devtools/build/lib/exec/local/PosixLocalEnvProvider.java
++++ b/src/main/java/com/google/devtools/build/lib/exec/local/PosixLocalEnvProvider.java
+@@ -47,6 +47,16 @@ public final class PosixLocalEnvProvider implements LocalEnvProvider {
+       Map<String, String> env, BinTools binTools, String fallbackTmpDir) {
+     ImmutableMap.Builder<String, String> result = ImmutableMap.builder();
+     result.putAll(Maps.filterKeys(env, k -> !k.equals("TMPDIR")));
++
++    // In case we are running on NixOS.
++    // If bash is called with an unset PATH on this platform,
++    // it will set it to /no-such-path and default tools will be missings.
++    // See, https://github.com/NixOS/nixpkgs/issues/94222
++    // So we ensure that minimal dependencies are present.
++    if (!env.containsKey("PATH")){
++        result.put("PATH", "@actionsPathPatch@");
++    }
++ 
+     String p = clientEnv.get("TMPDIR");
+     if (Strings.isNullOrEmpty(p)) {
+       // Do not use `fallbackTmpDir`, use `/tmp` instead. This way if the user didn't export TMPDIR
+index 95642767c6..39d3c62461 100644
+--- a/src/main/java/com/google/devtools/build/lib/exec/local/XcodeLocalEnvProvider.java
++++ b/src/main/java/com/google/devtools/build/lib/exec/local/XcodeLocalEnvProvider.java
+@@ -74,6 +74,16 @@ public final class XcodeLocalEnvProvider implements LocalEnvProvider {
+
+     ImmutableMap.Builder<String, String> newEnvBuilder = ImmutableMap.builder();
+     newEnvBuilder.putAll(Maps.filterKeys(env, k -> !k.equals("TMPDIR")));
++
++    // In case we are running on NixOS.
++    // If bash is called with an unset PATH on this platform,
++    // it will set it to /no-such-path and default tools will be missings.
++    // See, https://github.com/NixOS/nixpkgs/issues/94222
++    // So we ensure that minimal dependencies are present.
++    if (!env.containsKey("PATH")){
++      newEnvBuilder.put("PATH", "@actionsPathPatch@");
++    }
++
+     String p = clientEnv.get("TMPDIR");
+     if (Strings.isNullOrEmpty(p)) {
+       // Do not use `fallbackTmpDir`, use `/tmp` instead. This way if the user didn't export TMPDIR
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_4/default.nix b/pkgs/development/tools/build-managers/bazel/bazel_4/default.nix
index 3dd40ad1f8a..d7943ef2584 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel_4/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/bazel_4/default.nix
@@ -27,12 +27,12 @@
 }:
 
 let
-  version = "4.2.1";
+  version = "4.2.2";
   sourceRoot = ".";
 
   src = fetchurl {
     url = "https://github.com/bazelbuild/bazel/releases/download/${version}/bazel-${version}-dist.zip";
-    sha256 = "Eup6oR4r2xLeHc65k5oi6W9aSAQ3yxfBIzedjg/fXoI=";
+    sha256 = "mYHQ1To1bE6HlihHdQqXyegFTkYIVHSABsgPDX4rLTM=";
   };
 
   # Update with `eval $(nix-build -A bazel.updater)`,
@@ -75,7 +75,7 @@ let
     for i in ${builtins.toString srcDeps}; do cp $i $out/$(stripHash $i); done
   '';
 
-  defaultShellPath = lib.makeBinPath
+  defaultShellUtils =
     # Keep this list conservative. For more exotic tools, prefer to use
     # @rules_nixpkgs to pull in tools from the nix repository. Example:
     #
@@ -103,7 +103,27 @@ let
     #        ],
     #     )
     #
-    [ bash coreutils findutils gawk gnugrep gnutar gnused gzip which unzip file zip python27 python3 ];
+    # Some of the scripts explicitly depend on Python 2.7. Otherwise, we
+    # default to using python3. Therefore, both python27 and python3 are
+    # runtime dependencies.
+    [
+      bash
+      coreutils
+      file
+      findutils
+      gawk
+      gnugrep
+      gnused
+      gnutar
+      gzip
+      python27
+      python3
+      unzip
+      which
+      zip
+    ];
+
+  defaultShellPath = lib.makeBinPath defaultShellUtils;
 
   # Java toolchain used for the build and tests
   javaToolchain = "@bazel_tools//tools/jdk:toolchain_${buildJdkName}";
@@ -177,7 +197,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/bazelbuild/bazel/";
     description = "Build tool that builds code quickly and reliably";
     license = licenses.asl20;
-    maintainers = [ maintainers.mboes ];
+    maintainers = lib.teams.bazel.members;
     inherit platforms;
   };
 
@@ -208,20 +228,17 @@ stdenv.mkDerivation rec {
       strictActionEnvPatch = defaultShellPath;
     })
 
+    (substituteAll {
+      src = ./actions_path.patch;
+      actionsPathPatch = defaultShellPath;
+    })
+
     # bazel reads its system bazelrc in /etc
     # override this path to a builtin one
     (substituteAll {
       src = ../bazel_rc.patch;
       bazelSystemBazelRCPath = bazelRC;
     })
-
-    # On macOS Monterey, protoc segfaults.
-    # Issue: https://github.com/bazelbuild/bazel/issues/14216
-    # Fix: https://github.com/bazelbuild/bazel/pull/14275
-    (fetchpatch {
-      url = "https://github.com/bazelbuild/bazel/commit/ae0a6c98d4f94abedbedb2d51c27de5febd7df67.patch";
-      sha256 = "sha256-YcdxqjTMGI86k1wgFqxJqghv0kknAjlFQFpt4VccCTE=";
-    })
   ] ++ lib.optional enableNixHacks ../nix-hacks.patch;
 
 
@@ -235,7 +252,7 @@ stdenv.mkDerivation rec {
       runLocal = name: attrs: script:
       let
         attrs' = removeAttrs attrs [ "buildInputs" ];
-        buildInputs = [ python3 ] ++ (attrs.buildInputs or []);
+        buildInputs = [ python3 which ] ++ (attrs.buildInputs or []);
       in
       runCommandCC name ({
         inherit buildInputs;
@@ -358,32 +375,6 @@ stdenv.mkDerivation rec {
   # Bazel starts a local server and needs to bind a local address.
   __darwinAllowLocalNetworking = true;
 
-  # Bazel expects several utils to be available in Bash even without PATH. Hence this hack.
-  customBash = writeCBin "bash" ''
-    #include <stdio.h>
-    #include <stdlib.h>
-    #include <string.h>
-    #include <unistd.h>
-
-    extern char **environ;
-
-    int main(int argc, char *argv[]) {
-      char *path = getenv("PATH");
-      char *pathToAppend = "${defaultShellPath}";
-      char *newPath;
-      if (path != NULL) {
-        int length = strlen(path) + 1 + strlen(pathToAppend) + 1;
-        newPath = malloc(length * sizeof(char));
-        snprintf(newPath, length, "%s:%s", path, pathToAppend);
-      } else {
-        newPath = pathToAppend;
-      }
-      setenv("PATH", newPath, 1);
-      execve("${bash}/bin/bash", argv, environ);
-      return 0;
-    }
-  '';
-
   postPatch = let
 
     darwinPatches = ''
@@ -456,8 +447,8 @@ stdenv.mkDerivation rec {
         # We default to python3 where possible. See also `postFixup` where
         # python3 is added to $out/nix-support
         substituteInPlace "$path" \
-          --replace /bin/bash ${customBash}/bin/bash \
-          --replace "/usr/bin/env bash" ${customBash}/bin/bash \
+          --replace /bin/bash ${bash}/bin/bash \
+          --replace "/usr/bin/env bash" ${bash}/bin/bash \
           --replace "/usr/bin/env python" ${python3}/bin/python \
           --replace /usr/bin/env ${coreutils}/bin/env \
           --replace /bin/true ${coreutils}/bin/true
@@ -465,17 +456,17 @@ stdenv.mkDerivation rec {
 
       # bazel test runner include references to /bin/bash
       substituteInPlace tools/build_rules/test_rules.bzl \
-        --replace /bin/bash ${customBash}/bin/bash
+        --replace /bin/bash ${bash}/bin/bash
 
       for i in $(find tools/cpp/ -type f)
       do
         substituteInPlace $i \
-          --replace /bin/bash ${customBash}/bin/bash
+          --replace /bin/bash ${bash}/bin/bash
       done
 
       # Fixup scripts that generate scripts. Not fixed up by patchShebangs below.
       substituteInPlace scripts/bootstrap/compile.sh \
-          --replace /bin/bash ${customBash}/bin/bash
+          --replace /bin/bash ${bash}/bin/bash
 
       # add nix environment vars to .bazelrc
       cat >> .bazelrc <<EOF
@@ -496,6 +487,8 @@ stdenv.mkDerivation rec {
       build --host_javabase='@local_jdk//:jdk'
       build --host_java_toolchain='${javaToolchain}'
       build --verbose_failures
+      build --curses=no
+      build --sandbox_debug
       EOF
 
       # add the same environment vars to compile.sh
@@ -508,6 +501,8 @@ stdenv.mkDerivation rec {
           -e "/\$command \\\\$/a --host_javabase='@local_jdk//:jdk' \\\\" \
           -e "/\$command \\\\$/a --host_java_toolchain='${javaToolchain}' \\\\" \
           -e "/\$command \\\\$/a --verbose_failures \\\\" \
+          -e "/\$command \\\\$/a --curses=no \\\\" \
+          -e "/\$command \\\\$/a --sandbox_debug \\\\" \
           -i scripts/bootstrap/compile.sh
 
       # This is necessary to avoid:
@@ -529,21 +524,18 @@ stdenv.mkDerivation rec {
     in lib.optionalString stdenv.hostPlatform.isDarwin darwinPatches
      + genericPatches;
 
-  buildInputs = [
-    buildJdk
-    python3
-  ];
+  buildInputs = [buildJdk] ++ defaultShellUtils;
 
   # when a command can’t be found in a bazel build, you might also
   # need to add it to `defaultShellPath`.
   nativeBuildInputs = [
+    coreutils
     installShellFiles
-    zip
+    makeWrapper
     python3
     unzip
-    makeWrapper
     which
-    customBash
+    zip
   ] ++ lib.optionals (stdenv.isDarwin) [ cctools libcxx CoreFoundation CoreServices Foundation ];
 
   # Bazel makes extensive use of symlinks in the WORKSPACE.
@@ -573,7 +565,7 @@ stdenv.mkDerivation rec {
     # Note that .bazelversion is always correct and is based on bazel-*
     # executable name, version checks should work fine
     export EMBED_LABEL="${version}- (@non-git)"
-    ${customBash}/bin/bash ./bazel_src/compile.sh
+    ${bash}/bin/bash ./bazel_src/compile.sh
     ./bazel_src/scripts/generate_bash_completion.sh \
         --bazel=./bazel_src/output/bazel \
         --output=./bazel_src/output/bazel-complete.bash \
@@ -665,16 +657,10 @@ stdenv.mkDerivation rec {
   '';
 
   # Save paths to hardcoded dependencies so Nix can detect them.
+  # This is needed because the templates get tar’d up into a .jar.
   postFixup = ''
     mkdir -p $out/nix-support
-    echo "${customBash} ${defaultShellPath}" >> $out/nix-support/depends
-    # The templates get tar’d up into a .jar,
-    # so nix can’t detect python is needed in the runtime closure
-    # Some of the scripts explicitly depend on Python 2.7. Otherwise, we
-    # default to using python3. Therefore, both python27 and python3 are
-    # runtime dependencies.
-    echo "${python27}" >> $out/nix-support/depends
-    echo "${python3}" >> $out/nix-support/depends
+    echo "${defaultShellPath}" >> $out/nix-support/depends
   '' + lib.optionalString stdenv.isDarwin ''
     echo "${cctools}" >> $out/nix-support/depends
   '';
diff --git a/pkgs/development/tools/build-managers/bazel/buildtools/default.nix b/pkgs/development/tools/build-managers/bazel/buildtools/default.nix
index 97105b2fece..00a9f540143 100644
--- a/pkgs/development/tools/build-managers/bazel/buildtools/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/buildtools/default.nix
@@ -27,6 +27,8 @@ buildGoModule rec {
     description = "Tools for working with Google's bazel buildtool. Includes buildifier, buildozer, and unused_deps";
     homepage = "https://github.com/bazelbuild/buildtools";
     license = licenses.asl20;
-    maintainers = with maintainers; [ elasticdog uri-canva marsam ];
+    maintainers = with maintainers;
+      [ elasticdog uri-canva marsam ]
+      ++ lib.teams.bazel.members;
   };
 }
diff --git a/pkgs/development/tools/build-managers/bazel/cpp-test.nix b/pkgs/development/tools/build-managers/bazel/cpp-test.nix
index f4e03abdbc9..3f3faae25e2 100644
--- a/pkgs/development/tools/build-managers/bazel/cpp-test.nix
+++ b/pkgs/development/tools/build-managers/bazel/cpp-test.nix
@@ -44,6 +44,8 @@ let
       ${bazel}/bin/bazel \
         build --verbose_failures \
         --distdir=${distDir} \
+        --curses=no \
+        --sandbox_debug \
           //...
     '';
   };
diff --git a/pkgs/development/tools/build-managers/bazel/java-test.nix b/pkgs/development/tools/build-managers/bazel/java-test.nix
index 11931a197c0..9641a95c33b 100644
--- a/pkgs/development/tools/build-managers/bazel/java-test.nix
+++ b/pkgs/development/tools/build-managers/bazel/java-test.nix
@@ -50,6 +50,8 @@ let
           --java_toolchain='@bazel_tools//tools/jdk:toolchain_hostjdk8' \
           --javabase='@local_jdk//:jdk' \
           --verbose_failures \
+          --curses=no \
+          --sandbox_debug \
           //:ProjectRunner
     '';
   };
diff --git a/pkgs/development/tools/build-managers/bazel/protobuf-test.nix b/pkgs/development/tools/build-managers/bazel/protobuf-test.nix
index 3858a681659..d01e1888724 100644
--- a/pkgs/development/tools/build-managers/bazel/protobuf-test.nix
+++ b/pkgs/development/tools/build-managers/bazel/protobuf-test.nix
@@ -169,6 +169,8 @@ let
           --java_toolchain='@bazel_tools//tools/jdk:toolchain_hostjdk8' \
           --javabase='@local_jdk//:jdk' \
           --verbose_failures \
+          --curses=no \
+          --sandbox_debug \
           //...
     '';
   };
diff --git a/pkgs/development/tools/build-managers/conan/default.nix b/pkgs/development/tools/build-managers/conan/default.nix
index 95994e0924d..353f4d0f4e0 100644
--- a/pkgs/development/tools/build-managers/conan/default.nix
+++ b/pkgs/development/tools/build-managers/conan/default.nix
@@ -52,14 +52,14 @@ let newPython = python3.override {
 };
 
 in newPython.pkgs.buildPythonApplication rec {
-  version = "1.40.0";
+  version = "1.43.1";
   pname = "conan";
 
   src = fetchFromGitHub {
     owner = "conan-io";
     repo = "conan";
     rev = version;
-    sha256 = "1sb4w4wahasrwxkag1g79f135601sca6iafv4r4836f2vi48ka2d";
+    sha256 = "0jwi7smgy2d9m49igijqr2p4ncw5nksjbijj8fzjvf1lgxgnyjhr";
   };
 
   propagatedBuildInputs = with newPython.pkgs; [
diff --git a/pkgs/development/tools/build-managers/gn/default.nix b/pkgs/development/tools/build-managers/gn/default.nix
index 3c0abb3edea..508a821d749 100644
--- a/pkgs/development/tools/build-managers/gn/default.nix
+++ b/pkgs/development/tools/build-managers/gn/default.nix
@@ -1,64 +1,10 @@
-{ stdenv, lib, fetchgit, darwin, writeText
-, ninja, python3
-}:
+{ callPackage, ... } @ args:
 
-let
+callPackage ./generic.nix args {
   # Note: Please use the recommended version for Chromium, e.g.:
   # https://git.archlinux.org/svntogit/packages.git/tree/trunk/chromium-gn-version.sh?h=packages/gn
   rev = "fd3d768bcfd44a8d9639fe278581bd9851d0ce3a";
   revNum = "1718"; # git describe HEAD --match initial-commit | cut -d- -f3
   version = "2020-03-09";
   sha256 = "1asc14y8by7qcn10vbk467hvx93s30pif8r0brissl0sihsaqazr";
-
-  revShort = builtins.substring 0 7 rev;
-  lastCommitPosition = writeText "last_commit_position.h" ''
-    #ifndef OUT_LAST_COMMIT_POSITION_H_
-    #define OUT_LAST_COMMIT_POSITION_H_
-
-    #define LAST_COMMIT_POSITION_NUM ${revNum}
-    #define LAST_COMMIT_POSITION "${revNum} (${revShort})"
-
-    #endif  // OUT_LAST_COMMIT_POSITION_H_
-  '';
-
-in stdenv.mkDerivation {
-  pname = "gn-unstable";
-  inherit version;
-
-  src = fetchgit {
-    # Note: The TAR-Archives (+archive/${rev}.tar.gz) are not deterministic!
-    url = "https://gn.googlesource.com/gn";
-    inherit rev sha256;
-  };
-
-  nativeBuildInputs = [ ninja python3 ];
-  buildInputs = lib.optionals stdenv.isDarwin (with darwin; with apple_sdk.frameworks; [
-    libobjc
-    cctools
-
-    # frameworks
-    ApplicationServices
-    Foundation
-    AppKit
-  ]);
-
-  buildPhase = ''
-    python build/gen.py --no-last-commit-position
-    ln -s ${lastCommitPosition} out/last_commit_position.h
-    ninja -j $NIX_BUILD_CORES -C out gn
-  '';
-
-  installPhase = ''
-    install -vD out/gn "$out/bin/gn"
-  '';
-
-  setupHook = ./setup-hook.sh;
-
-  meta = with lib; {
-    description = "A meta-build system that generates build files for Ninja";
-    homepage = "https://gn.googlesource.com/gn";
-    license = licenses.bsd3;
-    platforms = platforms.unix;
-    maintainers = with maintainers; [ stesie matthewbauer primeos ];
-  };
 }
diff --git a/pkgs/development/tools/build-managers/gn/generic.nix b/pkgs/development/tools/build-managers/gn/generic.nix
new file mode 100644
index 00000000000..4214bb822b9
--- /dev/null
+++ b/pkgs/development/tools/build-managers/gn/generic.nix
@@ -0,0 +1,60 @@
+{ stdenv, lib, fetchgit, darwin, writeText
+, ninja, python3
+, ...
+}:
+
+{ rev, revNum, version, sha256 }:
+
+let
+  revShort = builtins.substring 0 7 rev;
+  lastCommitPosition = writeText "last_commit_position.h" ''
+    #ifndef OUT_LAST_COMMIT_POSITION_H_
+    #define OUT_LAST_COMMIT_POSITION_H_
+
+    #define LAST_COMMIT_POSITION_NUM ${revNum}
+    #define LAST_COMMIT_POSITION "${revNum} (${revShort})"
+
+    #endif  // OUT_LAST_COMMIT_POSITION_H_
+  '';
+
+in stdenv.mkDerivation {
+  pname = "gn-unstable";
+  inherit version;
+
+  src = fetchgit {
+    # Note: The TAR-Archives (+archive/${rev}.tar.gz) are not deterministic!
+    url = "https://gn.googlesource.com/gn";
+    inherit rev sha256;
+  };
+
+  nativeBuildInputs = [ ninja python3 ];
+  buildInputs = lib.optionals stdenv.isDarwin (with darwin; with apple_sdk.frameworks; [
+    libobjc
+    cctools
+
+    # frameworks
+    ApplicationServices
+    Foundation
+    AppKit
+  ]);
+
+  buildPhase = ''
+    python build/gen.py --no-last-commit-position
+    ln -s ${lastCommitPosition} out/last_commit_position.h
+    ninja -j $NIX_BUILD_CORES -C out gn
+  '';
+
+  installPhase = ''
+    install -vD out/gn "$out/bin/gn"
+  '';
+
+  setupHook = ./setup-hook.sh;
+
+  meta = with lib; {
+    description = "A meta-build system that generates build files for Ninja";
+    homepage = "https://gn.googlesource.com/gn";
+    license = licenses.bsd3;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ stesie matthewbauer primeos ];
+  };
+}
diff --git a/pkgs/development/tools/build-managers/gn/rev1924.nix b/pkgs/development/tools/build-managers/gn/rev1924.nix
new file mode 100644
index 00000000000..1b17328f2e0
--- /dev/null
+++ b/pkgs/development/tools/build-managers/gn/rev1924.nix
@@ -0,0 +1,8 @@
+{ callPackage, ... } @ args:
+
+callPackage ./generic.nix args {
+  rev = "24e2f7df92641de0351a96096fb2c490b2436bb8";
+  revNum = "1924"; # git describe HEAD --match initial-commit | cut -d- -f3
+  version = "2021-08-08";
+  sha256 = "1lwkyhfhw0zd7daqz466n7x5cddf0danr799h4jg3s0yvd4galjl";
+}
diff --git a/pkgs/development/tools/build-managers/gradle/default.nix b/pkgs/development/tools/build-managers/gradle/default.nix
index 0c154079ff4..eadcc80a536 100644
--- a/pkgs/development/tools/build-managers/gradle/default.nix
+++ b/pkgs/development/tools/build-managers/gradle/default.nix
@@ -89,9 +89,9 @@ rec {
   # https://docs.gradle.org/current/userguide/compatibility.html
 
   gradle_7 = gen {
-    version = "7.3.1";
+    version = "7.3.2";
     nativeVersion = "0.22-milestone-21";
-    sha256 = "0rkb9pdmvq0zidv8lv4im2j7gs949lg35r79l1hwf4pwi2k3ryws";
+    sha256 = "14jk1mhk59flzml55alwi9r5picmf8657q1nhd5mygrnmj79zf13";
     defaultJava = jdk17;
   };
 
diff --git a/pkgs/development/tools/build-managers/meson/allow-dirs-outside-of-prefix.patch b/pkgs/development/tools/build-managers/meson/0.57/allow-dirs-outside-of-prefix.patch
index 4eb292a2e52..4eb292a2e52 100644
--- a/pkgs/development/tools/build-managers/meson/allow-dirs-outside-of-prefix.patch
+++ b/pkgs/development/tools/build-managers/meson/0.57/allow-dirs-outside-of-prefix.patch
diff --git a/pkgs/development/tools/build-managers/meson/boost-Do-not-add-system-paths-on-nix.patch b/pkgs/development/tools/build-managers/meson/0.57/boost-Do-not-add-system-paths-on-nix.patch
index 5b9020b3d54..5b9020b3d54 100644
--- a/pkgs/development/tools/build-managers/meson/boost-Do-not-add-system-paths-on-nix.patch
+++ b/pkgs/development/tools/build-managers/meson/0.57/boost-Do-not-add-system-paths-on-nix.patch
diff --git a/pkgs/development/tools/build-managers/meson/clear-old-rpath.patch b/pkgs/development/tools/build-managers/meson/0.57/clear-old-rpath.patch
index f1e3c76e8b5..f1e3c76e8b5 100644
--- a/pkgs/development/tools/build-managers/meson/clear-old-rpath.patch
+++ b/pkgs/development/tools/build-managers/meson/0.57/clear-old-rpath.patch
diff --git a/pkgs/development/tools/build-managers/meson/default.nix b/pkgs/development/tools/build-managers/meson/0.57/default.nix
index de82609a548..6fd93e8f86b 100644
--- a/pkgs/development/tools/build-managers/meson/default.nix
+++ b/pkgs/development/tools/build-managers/meson/0.57/default.nix
@@ -1,6 +1,5 @@
 { lib
 , python3
-
 , writeTextDir
 , substituteAll
 , fetchpatch
diff --git a/pkgs/development/tools/build-managers/meson/fix-rpath.patch b/pkgs/development/tools/build-managers/meson/0.57/fix-rpath.patch
index d34b6c4c434..d34b6c4c434 100644
--- a/pkgs/development/tools/build-managers/meson/fix-rpath.patch
+++ b/pkgs/development/tools/build-managers/meson/0.57/fix-rpath.patch
diff --git a/pkgs/development/tools/build-managers/meson/gir-fallback-path.patch b/pkgs/development/tools/build-managers/meson/0.57/gir-fallback-path.patch
index 0c924bacf73..0c924bacf73 100644
--- a/pkgs/development/tools/build-managers/meson/gir-fallback-path.patch
+++ b/pkgs/development/tools/build-managers/meson/0.57/gir-fallback-path.patch
diff --git a/pkgs/development/tools/build-managers/meson/more-env-vars.patch b/pkgs/development/tools/build-managers/meson/0.57/more-env-vars.patch
index 4b2606e2d69..4b2606e2d69 100644
--- a/pkgs/development/tools/build-managers/meson/more-env-vars.patch
+++ b/pkgs/development/tools/build-managers/meson/0.57/more-env-vars.patch
diff --git a/pkgs/development/tools/build-managers/meson/setup-hook.sh b/pkgs/development/tools/build-managers/meson/0.57/setup-hook.sh
index 3d946fcffd5..3d946fcffd5 100644
--- a/pkgs/development/tools/build-managers/meson/setup-hook.sh
+++ b/pkgs/development/tools/build-managers/meson/0.57/setup-hook.sh
diff --git a/pkgs/development/tools/build-managers/meson/0.60/allow-dirs-outside-of-prefix.patch b/pkgs/development/tools/build-managers/meson/0.60/allow-dirs-outside-of-prefix.patch
new file mode 100644
index 00000000000..4eb292a2e52
--- /dev/null
+++ b/pkgs/development/tools/build-managers/meson/0.60/allow-dirs-outside-of-prefix.patch
@@ -0,0 +1,19 @@
+--- a/mesonbuild/coredata.py
++++ b/mesonbuild/coredata.py
+@@ -506,7 +506,6 @@ class CoreData:
+             return value
+         if option.name.endswith('dir') and value.is_absolute() and \
+            option not in BULITIN_DIR_NOPREFIX_OPTIONS:
+-            # Value must be a subdir of the prefix
+             # commonpath will always return a path in the native format, so we
+             # must use pathlib.PurePath to do the same conversion before
+             # comparing.
+@@ -518,7 +517,7 @@ class CoreData:
+             try:
+                 value = value.relative_to(prefix)
+             except ValueError:
+-                raise MesonException(msg.format(option, value, prefix))
++                pass
+             if '..' in str(value):
+                 raise MesonException(msg.format(option, value, prefix))
+         return value.as_posix()
diff --git a/pkgs/development/tools/build-managers/meson/0.60/boost-Do-not-add-system-paths-on-nix.patch b/pkgs/development/tools/build-managers/meson/0.60/boost-Do-not-add-system-paths-on-nix.patch
new file mode 100644
index 00000000000..0a2eda9de9a
--- /dev/null
+++ b/pkgs/development/tools/build-managers/meson/0.60/boost-Do-not-add-system-paths-on-nix.patch
@@ -0,0 +1,21 @@
+diff -Naur meson-0.60.2-old/mesonbuild/dependencies/boost.py meson-0.60.2-new/mesonbuild/dependencies/boost.py
+--- meson-0.60.2-old/mesonbuild/dependencies/boost.py	2021-11-02 16:58:07.000000000 -0300
++++ meson-0.60.2-new/mesonbuild/dependencies/boost.py	2021-12-12 19:21:27.895705897 -0300
+@@ -682,16 +682,7 @@
+         else:
+             tmp = []  # type: T.List[Path]
+ 
+-            # Add some default system paths
+-            tmp += [Path('/opt/local')]
+-            tmp += [Path('/usr/local/opt/boost')]
+-            tmp += [Path('/usr/local')]
+-            tmp += [Path('/usr')]
+-
+-            # Cleanup paths
+-            tmp = [x for x in tmp if x.is_dir()]
+-            tmp = [x.resolve() for x in tmp]
+-            roots += tmp
++            # Remove such spurious, non-explicit "system" paths for Nix&Nixpkgs
+ 
+         self.check_and_set_roots(roots, use_system=True)
+ 
diff --git a/pkgs/development/tools/build-managers/meson/0.60/clear-old-rpath.patch b/pkgs/development/tools/build-managers/meson/0.60/clear-old-rpath.patch
new file mode 100644
index 00000000000..f1e3c76e8b5
--- /dev/null
+++ b/pkgs/development/tools/build-managers/meson/0.60/clear-old-rpath.patch
@@ -0,0 +1,20 @@
+diff --git a/mesonbuild/scripts/depfixer.py b/mesonbuild/scripts/depfixer.py
+index 4176b9a03..faaabf616 100644
+--- a/mesonbuild/scripts/depfixer.py
++++ b/mesonbuild/scripts/depfixer.py
+@@ -336,6 +336,15 @@ class Elf(DataSizes):
+         if not new_rpath:
+             self.remove_rpath_entry(entrynum)
+         else:
++            # Clear old rpath to avoid stale references,
++            # not heeding the warning above about de-duplication
++            # since it does not seem to cause issues for us
++            # and not doing so trips up Nix’s reference checker.
++            # See https://github.com/NixOS/nixpkgs/pull/46020
++            # and https://github.com/NixOS/nixpkgs/issues/95163
++            self.bf.seek(rp_off)
++            self.bf.write(b'\0'*len(old_rpath))
++
+             self.bf.seek(rp_off)
+             self.bf.write(new_rpath)
+             self.bf.write(b'\0')
diff --git a/pkgs/development/tools/build-managers/meson/0.60/default.nix b/pkgs/development/tools/build-managers/meson/0.60/default.nix
new file mode 100644
index 00000000000..79870cd4d12
--- /dev/null
+++ b/pkgs/development/tools/build-managers/meson/0.60/default.nix
@@ -0,0 +1,109 @@
+{ lib
+, fetchpatch
+, installShellFiles
+, ninja
+, pkg-config
+, python3
+, substituteAll
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "meson";
+  version = "0.60.2";
+
+  src = python3.pkgs.fetchPypi {
+    inherit pname version;
+    hash = "sha256-ZOaWhWW/G4FS9PnWyoFU77nhTKqaq/eyLnHmxdBT6SE=";
+  };
+
+  patches = [
+    # Upstream insists on not allowing bindir and other dir options
+    # outside of prefix for some reason:
+    # https://github.com/mesonbuild/meson/issues/2561
+    # We remove the check so multiple outputs can work sanely.
+    ./allow-dirs-outside-of-prefix.patch
+
+    # Meson is currently inspecting fewer variables than autoconf does, which
+    # makes it harder for us to use setup hooks, etc.  Taken from
+    # https://github.com/mesonbuild/meson/pull/6827
+    ./more-env-vars.patch
+
+    # Unlike libtool, vanilla Meson does not pass any information
+    # about the path library will be installed to to g-ir-scanner,
+    # breaking the GIR when path other than ${!outputLib}/lib is used.
+    # We patch Meson to add a --fallback-library-path argument with
+    # library install_dir to g-ir-scanner.
+    ./gir-fallback-path.patch
+
+    # In common distributions, RPATH is only needed for internal libraries so
+    # meson removes everything else. With Nix, the locations of libraries
+    # are not as predictable, therefore we need to keep them in the RPATH.
+    # At the moment we are keeping the paths starting with /nix/store.
+    # https://github.com/NixOS/nixpkgs/issues/31222#issuecomment-365811634
+    (substituteAll {
+      src = ./fix-rpath.patch;
+      inherit (builtins) storeDir;
+    })
+
+    # When Meson removes build_rpath from DT_RUNPATH entry, it just writes
+    # the shorter NUL-terminated new rpath over the old one to reduce
+    # the risk of potentially breaking the ELF files.
+    # But this can cause much bigger problem for Nix as it can produce
+    # cut-in-half-by-\0 store path references.
+    # Let’s just clear the whole rpath and hope for the best.
+    ./clear-old-rpath.patch
+
+    # Patch out default boost search paths to avoid impure builds on
+    # unsandboxed non-NixOS builds, see:
+    # https://github.com/NixOS/nixpkgs/issues/86131#issuecomment-711051774
+    ./boost-Do-not-add-system-paths-on-nix.patch
+  ];
+
+  setupHook = ./setup-hook.sh;
+
+  # Meson included tests since 0.45, however they fail in Nixpkgs because they
+  # require a typical building environment (including C compiler and stuff).
+  # Just for the sake of documentation, the next lines are maintained here.
+  doCheck = false;
+  checkInputs = [ ninja pkg-config ];
+  checkPhase = ''
+    python ./run_project_tests.py
+  '';
+
+  postFixup = ''
+    pushd $out/bin
+    # undo shell wrapper as meson tools are called with python
+    for i in *; do
+      mv ".$i-wrapped" "$i"
+    done
+    popd
+
+    # Do not propagate Python
+    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 = "An open source, fast and friendly build system made in Python";
+    longDescription = ''
+      Meson is an open source build system meant to be both extremely fast, and,
+      even more importantly, as user friendly as possible.
+
+      The main design point of Meson is that every moment a developer spends
+      writing or debugging build definitions is a second wasted. So is every
+      second spent waiting for the build system to actually start compiling
+      code.
+    '';
+    license = licenses.asl20;
+    maintainers = with maintainers; [ jtojnar mbe AndersonTorres ];
+    inherit (python3.meta) platforms;
+  };
+}
+# TODO: a more Nixpkgs-tailoired test suite
diff --git a/pkgs/development/tools/build-managers/meson/0.60/fix-rpath.patch b/pkgs/development/tools/build-managers/meson/0.60/fix-rpath.patch
new file mode 100644
index 00000000000..d34b6c4c434
--- /dev/null
+++ b/pkgs/development/tools/build-managers/meson/0.60/fix-rpath.patch
@@ -0,0 +1,24 @@
+--- a/mesonbuild/backend/backends.py
++++ b/mesonbuild/backend/backends.py
+@@ -456,6 +456,21 @@ class Backend:
+                 args.extend(self.environment.coredata.get_external_link_args(target.for_machine, lang))
+             except Exception:
+                 pass
++
++        nix_ldflags = os.environ.get('NIX_LDFLAGS', '').split()
++        next_is_path = False
++        # Try to add rpaths set by user or ld-wrapper so that they are not removed.
++        # Based on https://github.com/NixOS/nixpkgs/blob/69711a2f5ffe8cda208163be5258266172ff527f/pkgs/build-support/bintools-wrapper/ld-wrapper.sh#L148-L177
++        for flag in nix_ldflags:
++            if flag == '-rpath' or flag == '-L':
++                next_is_path = True
++            elif next_is_path or flag.startswith('-L/'):
++                if flag.startswith('-L/'):
++                    flag = flag[2:]
++                if flag.startswith('@storeDir@'):
++                    dirs.add(flag)
++                next_is_path = False
++
+         # Match rpath formats:
+         # -Wl,-rpath=
+         # -Wl,-rpath,
diff --git a/pkgs/development/tools/build-managers/meson/0.60/gir-fallback-path.patch b/pkgs/development/tools/build-managers/meson/0.60/gir-fallback-path.patch
new file mode 100644
index 00000000000..e6d74026527
--- /dev/null
+++ b/pkgs/development/tools/build-managers/meson/0.60/gir-fallback-path.patch
@@ -0,0 +1,21 @@
+diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py
+index 1c6952df7..9466a0b7d 100644
+--- a/mesonbuild/modules/gnome.py
++++ b/mesonbuild/modules/gnome.py
+@@ -923,6 +923,16 @@ class GnomeModule(ExtensionModule):
+         if fatal_warnings:
+             scan_command.append('--warn-error')
+
++        if len(set(girtarget.get_custom_install_dir()[0] for girtarget in girtargets if girtarget.get_custom_install_dir())) > 1:
++            raise MesonException('generate_gir tries to build multiple libraries with different install_dir at once: {}'.format(','.join([str(girtarget) for girtarget in girtargets])))
++
++        if girtargets[0].get_custom_install_dir():
++            fallback_libpath = girtargets[0].get_custom_install_dir()[0]
++        else:
++            fallback_libpath = None
++        if fallback_libpath is not None and isinstance(fallback_libpath, str) and len(fallback_libpath) > 0 and fallback_libpath[0] == "/":
++            scan_command += ['--fallback-library-path=' + fallback_libpath]
++
+         generated_files = [f for f in libsources if isinstance(f, (GeneratedList, CustomTarget, CustomTargetIndex))]
+ 
+         scan_target = self._make_gir_target(state, girfile, scan_command, generated_files, depends, kwargs)
diff --git a/pkgs/development/tools/build-managers/meson/0.60/more-env-vars.patch b/pkgs/development/tools/build-managers/meson/0.60/more-env-vars.patch
new file mode 100644
index 00000000000..e4ad4355042
--- /dev/null
+++ b/pkgs/development/tools/build-managers/meson/0.60/more-env-vars.patch
@@ -0,0 +1,12 @@
+diff -Naur meson-0.60.2-old/mesonbuild/environment.py meson-0.60.2-new/mesonbuild/environment.py
+--- meson-0.60.2-old/mesonbuild/environment.py	2021-11-02 16:58:13.000000000 -0300
++++ meson-0.60.2-new/mesonbuild/environment.py	2021-12-12 17:44:00.350499307 -0300
+@@ -68,7 +68,7 @@
+         # compiling we fall back on the unprefixed host version. This
+         # allows native builds to never need to worry about the 'BUILD_*'
+         # ones.
+-        ([var_name + '_FOR_BUILD'] if is_cross else [var_name]),
++        [var_name + '_FOR_BUILD'] + ([] if is_cross else [var_name]),
+         # Always just the unprefixed host versions
+         [var_name]
+     )[for_machine]
diff --git a/pkgs/development/tools/build-managers/meson/0.60/setup-hook.sh b/pkgs/development/tools/build-managers/meson/0.60/setup-hook.sh
new file mode 100644
index 00000000000..3d946fcffd5
--- /dev/null
+++ b/pkgs/development/tools/build-managers/meson/0.60/setup-hook.sh
@@ -0,0 +1,37 @@
+mesonConfigurePhase() {
+    runHook preConfigure
+
+    if [ -z "${dontAddPrefix-}" ]; then
+        mesonFlags="--prefix=$prefix $mesonFlags"
+    fi
+
+    # See multiple-outputs.sh and meson’s coredata.py
+    mesonFlags="\
+        --libdir=${!outputLib}/lib --libexecdir=${!outputLib}/libexec \
+        --bindir=${!outputBin}/bin --sbindir=${!outputBin}/sbin \
+        --includedir=${!outputInclude}/include \
+        --mandir=${!outputMan}/share/man --infodir=${!outputInfo}/share/info \
+        --localedir=${!outputLib}/share/locale \
+        -Dauto_features=${mesonAutoFeatures:-enabled} \
+        -Dwrap_mode=${mesonWrapMode:-nodownload} \
+        $mesonFlags"
+
+    mesonFlags="${crossMesonFlags+$crossMesonFlags }--buildtype=${mesonBuildType:-plain} $mesonFlags"
+
+    echo "meson flags: $mesonFlags ${mesonFlagsArray[@]}"
+
+    meson build $mesonFlags "${mesonFlagsArray[@]}"
+    cd build
+
+    if ! [[ -v enableParallelBuilding ]]; then
+        enableParallelBuilding=1
+        echo "meson: enabled parallel building"
+    fi
+
+    runHook postConfigure
+}
+
+if [ -z "${dontUseMesonConfigure-}" -a -z "${configurePhase-}" ]; then
+    setOutputFlags=
+    configurePhase=mesonConfigurePhase
+fi
diff --git a/pkgs/development/tools/build-managers/sbt/default.nix b/pkgs/development/tools/build-managers/sbt/default.nix
index eeb7fe56a79..76855e670a9 100644
--- a/pkgs/development/tools/build-managers/sbt/default.nix
+++ b/pkgs/development/tools/build-managers/sbt/default.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   pname = "sbt";
-  version = "1.5.6";
+  version = "1.5.7";
 
   src = fetchurl {
     url = "https://github.com/sbt/sbt/releases/download/v${version}/sbt-${version}.tgz";
-    sha256 = "sha256-PC0ndJkv4nNIdZMCtZhi3XRp/dRlXXx1yHvK8bAwIGg=";
+    sha256 = "sha256-6dnG02A0azpycsfdQOyh9GLewvezZl3s8esmIqWJfBk=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/tools/compass/Gemfile.lock b/pkgs/development/tools/compass/Gemfile.lock
index ecae8fdd7f6..f0bf7699df0 100644
--- a/pkgs/development/tools/compass/Gemfile.lock
+++ b/pkgs/development/tools/compass/Gemfile.lock
@@ -1,7 +1,7 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    chunky_png (1.3.11)
+    chunky_png (1.4.0)
     compass (1.0.3)
       chunky_png (~> 1.2)
       compass-core (~> 1.0.2)
@@ -14,10 +14,10 @@ GEM
       sass (>= 3.3.0, < 3.5)
     compass-import-once (1.0.5)
       sass (>= 3.2, < 3.5)
-    ffi (1.10.0)
-    multi_json (1.13.1)
-    rb-fsevent (0.10.3)
-    rb-inotify (0.10.0)
+    ffi (1.15.4)
+    multi_json (1.15.0)
+    rb-fsevent (0.11.0)
+    rb-inotify (0.10.1)
       ffi (~> 1.0)
     sass (3.4.25)
 
@@ -28,4 +28,4 @@ DEPENDENCIES
   compass!
 
 BUNDLED WITH
-   2.1.4
+   2.2.24
diff --git a/pkgs/development/tools/compass/gemset.nix b/pkgs/development/tools/compass/gemset.nix
index 3e93f6e417a..2b1bd604254 100644
--- a/pkgs/development/tools/compass/gemset.nix
+++ b/pkgs/development/tools/compass/gemset.nix
@@ -4,10 +4,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "124najs9prqzrzk49h53kap992rmqxj0wni61z2hhsn7mwmgdp9d";
+      sha256 = "1znw5x86hmm9vfhidwdsijz8m38pqgmv98l9ryilvky0aldv7mc9";
       type = "gem";
     };
-    version = "1.3.11";
+    version = "1.4.0";
   };
   compass = {
     dependencies = ["chunky_png" "compass-core" "compass-import-once" "rb-fsevent" "rb-inotify" "sass"];
@@ -47,30 +47,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0j8pzj8raxbir5w5k6s7a042sb5k02pg0f8s4na1r5lan901j00p";
+      sha256 = "0ssxcywmb3flxsjdg13is6k01807zgzasdhj4j48dm7ac59cmksn";
       type = "gem";
     };
-    version = "1.10.0";
+    version = "1.15.4";
   };
   multi_json = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv";
+      sha256 = "0pb1g1y3dsiahavspyzkdy39j4q377009f6ix0bh1ag4nqw43l0z";
       type = "gem";
     };
-    version = "1.13.1";
+    version = "1.15.0";
   };
   rb-fsevent = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1lm1k7wpz69jx7jrc92w3ggczkjyjbfziq5mg62vjnxmzs383xx8";
+      sha256 = "1qsx9c4jr11vr3a9s5j83avczx9qn9rjaf32gxpc2v451hvbc0is";
       type = "gem";
     };
-    version = "0.10.3";
+    version = "0.11.0";
   };
   rb-inotify = {
     dependencies = ["ffi"];
@@ -78,10 +78,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1fs7hxm9g6ywv2yih83b879klhc4fs8i0p9166z795qmd77dk0a4";
+      sha256 = "1jm76h8f8hji38z3ggf4bzi8vps6p7sagxn3ab57qc0xyga64005";
       type = "gem";
     };
-    version = "0.10.0";
+    version = "0.10.1";
   };
   sass = {
     groups = ["default"];
diff --git a/pkgs/development/tools/continuous-integration/github-runner/default.nix b/pkgs/development/tools/continuous-integration/github-runner/default.nix
index 97312c835f5..17a0cff31fe 100644
--- a/pkgs/development/tools/continuous-integration/github-runner/default.nix
+++ b/pkgs/development/tools/continuous-integration/github-runner/default.nix
@@ -14,6 +14,7 @@
 , lttng-ust
 , makeWrapper
 , nodejs-12_x
+, nodejs-16_x
 , openssl
 , stdenv
 , zlib
@@ -37,13 +38,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "github-runner";
-  version = "2.284.0";
+  version = "2.285.1";
 
   src = fetchFromGitHub {
     owner = "actions";
     repo = "runner";
     rev = "v${version}";
-    sha256 = "sha256-JR0OzbT5gGhO/dxb/eSjP/d/VxW/aLmTs/oPwN8b8Rc=";
+    hash = "sha256-SlKUuebsoZ9OgYuDTNOlY1KMg01LFSFazrLCctiFq3A=";
   };
 
   nativeBuildInputs = [
@@ -142,6 +143,9 @@ stdenv.mkDerivation rec {
   disabledTests = [
     # Self-updating is patched out, hence this test will fail
     "FullyQualifiedName!=GitHub.Runner.Common.Tests.Listener.RunnerL0.TestRunOnceHandleUpdateMessage"
+  ] ++ lib.optionals (stdenv.hostPlatform.system == "aarch64-linux") [
+    # "JavaScript Actions in Alpine containers are only supported on x64 Linux runners. Detected Linux Arm64"
+    "FullyQualifiedName!=GitHub.Runner.Common.Tests.Worker.StepHostL0.DetermineNodeRuntimeVersionInAlpineContainerAsync"
   ] ++ map
     # Online tests
     (x: "FullyQualifiedName!=GitHub.Runner.Common.Tests.Worker.ActionManagerL0.PrepareActions_${x}")
@@ -189,6 +193,7 @@ stdenv.mkDerivation rec {
 
     mkdir -p _layout/externals
     ln -s ${nodejs-12_x} _layout/externals/node12
+    ln -s ${nodejs-16_x} _layout/externals/node16
 
     # BUILDCONFIG needs to be "Debug"
     dotnet msbuild \
@@ -230,11 +235,12 @@ stdenv.mkDerivation rec {
       --replace './externals' "$out/externals" \
       --replace './bin' "$out/lib"
 
-    # The upstream package includes Node 12 and expects it at the path
-    # externals/node12. As opposed to the official releases, we don't
-    # link the Alpine Node flavor.
+    # The upstream package includes Node {12,16} and expects it at the path
+    # externals/node{12,16}. As opposed to the official releases, we don't
+    # link the Alpine Node flavors.
     mkdir -p $out/externals
     ln -s ${nodejs-12_x} $out/externals/node12
+    ln -s ${nodejs-16_x} $out/externals/node16
 
     runHook postInstall
   '';
diff --git a/pkgs/development/tools/continuous-integration/jenkins/default.nix b/pkgs/development/tools/continuous-integration/jenkins/default.nix
index 0b113a6fe8c..65132b72391 100644
--- a/pkgs/development/tools/continuous-integration/jenkins/default.nix
+++ b/pkgs/development/tools/continuous-integration/jenkins/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "jenkins";
-  version = "2.303.3";
+  version = "2.319.1";
 
   src = fetchurl {
     url = "http://mirrors.jenkins.io/war-stable/${version}/jenkins.war";
-    sha256 = "8a6ae7367755b3f31a050faa945f7a3991abdb43d941c7294cac890c1e2779d8";
+    sha256 = "0qm562v7jwc9mjpbn1f808kg97axy1mraq3s5h679niffn588jvy";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/database/prisma-engines/default.nix b/pkgs/development/tools/database/prisma-engines/default.nix
index b05b0c2e47f..3cf9f18188f 100644
--- a/pkgs/development/tools/database/prisma-engines/default.nix
+++ b/pkgs/development/tools/database/prisma-engines/default.nix
@@ -10,19 +10,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "prisma-engines";
-  version = "3.5.0";
+  version = "3.6.0";
 
   src = fetchFromGitHub {
     owner = "prisma";
     repo = "prisma-engines";
     rev = version;
-    sha256 = "sha256-c4t7r9Os0nmQEBpNeZ+XdTPc/5X6Dyw0dd7J4pw5s88=";
+    sha256 = "sha256-opo4CM/ONZfVWhv/2r9Mfu8eNTgcG2hwvJmSrQ/OPDA=";
   };
 
   # Use system openssl.
   OPENSSL_NO_VENDOR = 1;
 
-  cargoSha256 = "sha256-rjqFEY7GXXWzlw5E6Wg4KPz25BbvQPuLW5m8+3CbcRw=";
+  cargoSha256 = "sha256-Zrv5cI2uyGu4hOH8lKOrzA+U3ZLE+MEeD5fBxhI+eIk=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/development/tools/doctl/default.nix b/pkgs/development/tools/doctl/default.nix
index 6405c042a22..9f31ebb0af4 100644
--- a/pkgs/development/tools/doctl/default.nix
+++ b/pkgs/development/tools/doctl/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "doctl";
-  version = "1.67.0";
+  version = "1.68.0";
 
   vendorSha256 = null;
 
@@ -31,7 +31,7 @@ buildGoModule rec {
     owner = "digitalocean";
     repo = "doctl";
     rev = "v${version}";
-    sha256 = "sha256-xtOgc52mn3e/Kiz6GVK8RLQkoJW9Kpv0GvGXXgrCdpc=";
+    sha256 = "sha256-3W6jDMT4UUtSND9bJJEexQ9LrqxL4oZtpucdcM1McdE=";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/tools/gojsontoyaml/default.nix b/pkgs/development/tools/gojsontoyaml/default.nix
index 659532e04e0..02f5421ca00 100644
--- a/pkgs/development/tools/gojsontoyaml/default.nix
+++ b/pkgs/development/tools/gojsontoyaml/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "gojsontoyaml";
-  version = "unstable-2020-12-16";
+  version = "0.1.0";
 
   src = fetchFromGitHub {
     owner = "brancz";
     repo = "gojsontoyaml";
-    rev = "202f76bf8c1f8fb74941a845b349941064603185";
-    sha256 = "sha256-N49iHQh28nAZBGJnLKG/aZPdn5fwPKQpdrXXtX28yss=";
+    rev = "v${version}";
+    sha256 = "sha256-ebxz2uTH7XwD3j6JnsfET6aCGYjvsCjow/sU9pagg50=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/development/tools/gosec/default.nix b/pkgs/development/tools/gosec/default.nix
index 00529c265ee..baadebe53a0 100644
--- a/pkgs/development/tools/gosec/default.nix
+++ b/pkgs/development/tools/gosec/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "gosec";
-  version = "2.9.3";
+  version = "2.9.5";
 
   src = fetchFromGitHub {
     owner = "securego";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-WjHNiFfa0YXuRq/FfWcamBwAVqRqLv9Qf+vy74rsCS4=";
+    sha256 = "sha256-YXAUDICQhZFeafP/wezd+dLpXpd7waz3wUCVCwVb12I=";
   };
 
-  vendorSha256 = "sha256-X2qxoq6bCQJH0B/jq670WWuTkDEurFI+Zx/5bcvXtVY=";
+  vendorSha256 = "sha256-Mob8XxTALtuG9q7gMWKvp1k2cUDKI0QHAeXfQK47NDo=";
 
   subPackages = [
     "cmd/gosec"
diff --git a/pkgs/development/tools/hjson-go/default.nix b/pkgs/development/tools/hjson-go/default.nix
new file mode 100644
index 00000000000..bbd1f3c0ec0
--- /dev/null
+++ b/pkgs/development/tools/hjson-go/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  pname = "hjson-go";
+  version = "3.1.0";
+
+  src = fetchFromGitHub {
+    owner = "hjson";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-X02NnSefJfKUfagzJpdW1UpOLe84SvRaTN+8GqGKzbU=";
+  };
+
+  goPackagePath = "github.com/hjson/hjson-go";
+
+  meta = with lib;
+    src.meta // {
+      description = "Utility to convert JSON to and from HJSON";
+      maintainers = with maintainers; [ ehmry ];
+      license = licenses.mit;
+    };
+}
diff --git a/pkgs/development/tools/java/cfr/default.nix b/pkgs/development/tools/java/cfr/default.nix
index 68841d48d47..0676cea4a04 100644
--- a/pkgs/development/tools/java/cfr/default.nix
+++ b/pkgs/development/tools/java/cfr/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "cfr";
-  version = "0.151";
+  version = "0.152";
 
   src = fetchurl {
     url = "http://www.benf.org/other/cfr/cfr_${version}.jar";
-    sha256 = "sha256-MW6QFbmvKVP8/0/oa/O7pwXzLnzSW9blNcaY3ool6Dc=";
+    sha256 = "sha256-9obo897Td9e8h9IWqQ6elRLfQVbnWwbGVaFmSK6HZbI=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/just/default.nix b/pkgs/development/tools/just/default.nix
index 2d78ec338ac..79c726c2796 100644
--- a/pkgs/development/tools/just/default.nix
+++ b/pkgs/development/tools/just/default.nix
@@ -2,25 +2,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "just";
-  version = "0.10.3";
+  version = "0.10.5";
 
   src = fetchFromGitHub {
     owner = "casey";
     repo = pname;
     rev = version;
-    sha256 = "sha256-r6kP1LbT8ZQoxSuy7jpnHD2/RgcPvmTNfjKzj5ceXRc=";
+    sha256 = "sha256-PbWV8It/ubDbZooJdt/KWihnp221Pexs0U6zMa8KSMw=";
   };
-  cargoSha256 = "sha256-y6RcFH2qDoM3wWnZ6ewC9QyRD3mFsoakToRmon4bAnE=";
+  cargoSha256 = "sha256-VRfk6566SNmvCxtD9EdDxDdBvQuEfjPVggXzt4VoYRg=";
 
   nativeBuildInputs = [ installShellFiles ];
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
 
-  postPatch = ''
-    # this hard codes the compiler, which breaks the aarch64 in particular
-    # we rather want to set the compiler ourself
-    rm .cargo/config
-  '';
-
   postInstall = ''
     installManPage man/just.1
 
diff --git a/pkgs/development/tools/krankerl/default.nix b/pkgs/development/tools/krankerl/default.nix
index c44677235d9..0061ca60bfc 100644
--- a/pkgs/development/tools/krankerl/default.nix
+++ b/pkgs/development/tools/krankerl/default.nix
@@ -12,16 +12,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "krankerl";
-  version = "0.13.2";
+  version = "0.13.3";
 
   src = fetchFromGitHub {
     owner = "ChristophWurst";
     repo = "krankerl";
     rev = "v${version}";
-    sha256 = "sha256-Kol39AtM5m6FC+s5SDbQhWuASkGbeXPlmSGb7axEuK8=";
+    sha256 = "sha256-/zRO+CVYQgx9/j14zgNm/ABzLprt0OYne+O6hOEjSEw=";
   };
 
-  cargoSha256 = "sha256-bPcKe3vE3VIjLJ4iYdF3Gt0sID09gRpxG5TpTGWhnPs=";
+  cargoSha256 = "sha256-LWQRFgDxl2yxP+v1TUENaTGrA/udh84AJvWIkfTJezM=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/development/tools/kubie/default.nix b/pkgs/development/tools/kubie/default.nix
index ee941b4b90c..0bf711a2293 100644
--- a/pkgs/development/tools/kubie/default.nix
+++ b/pkgs/development/tools/kubie/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "kubie";
-  version = "0.15.3";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "sbstp";
     repo = "kubie";
-    sha256 = "sha256-XkZbYQaQlRdsXo+4DTbLLYB59ya6DHimhZbdqfWXx1k=";
+    sha256 = "sha256-loVGMkB3p+xx7xRHdeSOcck+2vhV461VdNgUIpb/3O0=";
   };
 
-  cargoSha256 = "sha256-xgqrQbd6tdTu4NkCWGv8UQe8m4wWlm3qJy/Slp7we68=";
+  cargoSha256 = "sha256-BLKcuumF72MPL408+fUS+7MiTYjvSRORKNP2s0I7McI=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/development/tools/misc/cl-launch/default.nix b/pkgs/development/tools/misc/cl-launch/default.nix
index 4fe93694ab7..35cfd01ff92 100644
--- a/pkgs/development/tools/misc/cl-launch/default.nix
+++ b/pkgs/development/tools/misc/cl-launch/default.nix
@@ -1,22 +1,11 @@
-{lib, stdenv, fetchurl}:
-let
-  s = # Generated upstream information
-  rec {
-    baseName="cl-launch";
-    version="4.1.4.1";
-    name="${baseName}-${version}";
-    hash="09450yknzb0m3375lg4k8gdypmk3xwl8m1krv1kvhylmrm3995mz";
-    url="http://common-lisp.net/project/xcvb/cl-launch/cl-launch-4.1.4.1.tar.gz";
-    sha256="09450yknzb0m3375lg4k8gdypmk3xwl8m1krv1kvhylmrm3995mz";
-  };
-  buildInputs = [
-  ];
-in
-stdenv.mkDerivation {
-  inherit (s) name version;
-  inherit buildInputs;
+{ lib, stdenv, fetchurl }:
+stdenv.mkDerivation rec {
+  pname = "cl-launch";
+  version = "4.1.4.1";
+
   src = fetchurl {
-    inherit (s) url sha256;
+    url = "http://common-lisp.net/project/xcvb/cl-launch/cl-launch-${version}.tar.gz";
+    sha256 = "sha256-v5aURs2Verhn2HmGiijvY9br20OTPFrOGBWsb6cHhSQ=";
   };
 
   preConfigure = ''
@@ -28,11 +17,10 @@ stdenv.mkDerivation {
     sed -e 's/\t\t@/\t\t/g' -i Makefile
   '';
 
-  meta = {
-    inherit (s) version;
+  meta = with lib; {
     description = "Common Lisp launcher script";
-    license = lib.licenses.llgpl21 ;
-    maintainers = [lib.maintainers.raskin];
-    platforms = lib.platforms.unix;
+    license = licenses.llgpl21;
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/tools/misc/cl-launch/default.upstream b/pkgs/development/tools/misc/cl-launch/default.upstream
deleted file mode 100644
index ff7ee9446d2..00000000000
--- a/pkgs/development/tools/misc/cl-launch/default.upstream
+++ /dev/null
@@ -1,2 +0,0 @@
-url http://common-lisp.net/project/xcvb/cl-launch/
-version_link '.-[0-9].*[0-9][.]tar[.][a-z0-9]*$'
diff --git a/pkgs/development/tools/misc/kibana/6.x.nix b/pkgs/development/tools/misc/kibana/6.x.nix
index c728f737543..cd81975ee44 100644
--- a/pkgs/development/tools/misc/kibana/6.x.nix
+++ b/pkgs/development/tools/misc/kibana/6.x.nix
@@ -18,12 +18,12 @@ let
   shas =
     if enableUnfree
     then {
-      x86_64-linux  = "1xwklhqxk5rmdrgy2simwvijzq29kyq5w2w3hy53xh2i1zlnyvq3";
-      x86_64-darwin = "1qpdn28mrpggd55khzqqld6r89l0hb870rigxcw2i8p2yx3jv106";
+      x86_64-linux  = "1a501lavxhckb3l93sbrbqyshicwkk6p89frry4x8p037xcfpy0x";
+      x86_64-darwin = "0zm45af30shhcg3mdhcma6rms1hyrx62rm5jzwnz9kxv4d30skbw";
     }
     else {
-      x86_64-linux  = "1wpnwal2rq5v2bsp5qil9j6dplif7ql5394sy4ia5ghp2fzifxmf";
-      x86_64-darwin = "12z8i0wbw10c097glbpdy350p0h3957433f51qfx2p0ghgkzkhzv";
+      x86_64-linux  = "0wfdipf21apyily7mvlqgyc7m5jpr96zgrryzwa854z3xb2vw8zg";
+      x86_64-darwin = "1nklfx4yz6hsxlljvnvwjy7pncv9mzngl84710xad5jlyras3sdj";
     };
 
 in stdenv.mkDerivation rec {
diff --git a/pkgs/development/tools/misc/kibana/7.x.nix b/pkgs/development/tools/misc/kibana/7.x.nix
index 7a2e0d1d364..455f95a69eb 100644
--- a/pkgs/development/tools/misc/kibana/7.x.nix
+++ b/pkgs/development/tools/misc/kibana/7.x.nix
@@ -4,23 +4,23 @@
 , stdenv
 , makeWrapper
 , fetchurl
-, nodejs-14_x
+, nodejs-16_x
 , coreutils
 , which
 }:
 
 with lib;
 let
-  nodejs = nodejs-14_x;
+  nodejs = nodejs-16_x;
   inherit (builtins) elemAt;
   info = splitString "-" stdenv.hostPlatform.system;
   arch = elemAt info 0;
   plat = elemAt info 1;
   shas =
     {
-      x86_64-linux  = "19p9s4sir982bb1zcldrbphhwfs9i11p0q28vgc421iqg10kjlf1";
-      x86_64-darwin = "0qq557ngwwakifidyrccga4cadj9k9pzhjwy4msmbcgf5pb86qyc";
-      aarch64-linux = "183cp1h8d3n7xfcpcys4hf36palczxa409afyp62kzyzckngy0j8";
+      x86_64-linux  = "0jivwsrq31n0qfznrsjfsn65sg3wpbd990afn2wzjnj4drq7plz6";
+      x86_64-darwin = "02483aqzrccq1x6rwznmcazijdd46yxj9vnbihnvp2xyp3w9as45";
+      aarch64-linux = "0iw155gkkl1hshc80lfj95rssg039ig21wz1l3srmmf2x4f934s9";
     };
 
 in stdenv.mkDerivation rec {
diff --git a/pkgs/development/tools/misc/lttng-ust/2.12.nix b/pkgs/development/tools/misc/lttng-ust/2.12.nix
new file mode 100644
index 00000000000..b3ef1fe65e7
--- /dev/null
+++ b/pkgs/development/tools/misc/lttng-ust/2.12.nix
@@ -0,0 +1,4 @@
+import ./generic.nix {
+  version = "2.12.2";
+  sha256 = "sha256-vNDwZLbKiMcthOdg6sNHKuXIKEEcY0Q1kivun841n8c=";
+}
diff --git a/pkgs/development/tools/misc/lttng-ust/default.nix b/pkgs/development/tools/misc/lttng-ust/default.nix
index 244d6442c15..3bace16de56 100644
--- a/pkgs/development/tools/misc/lttng-ust/default.nix
+++ b/pkgs/development/tools/misc/lttng-ust/default.nix
@@ -1,42 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, liburcu, numactl, python3 }:
-
-# NOTE:
-#   ./configure ...
-#   [...]
-#   LTTng-UST will be built with the following options:
-#
-#   Java support (JNI): Disabled
-#   sdt.h integration:  Disabled
-#   [...]
-#
-# Debian builds with std.h (systemtap).
-
-stdenv.mkDerivation rec {
-  pname = "lttng-ust";
-  version = "2.13.0";
-
-  src = fetchurl {
-    url = "https://lttng.org/files/lttng-ust/${pname}-${version}.tar.bz2";
-    sha256 = "0l0p6y2zrd9hgd015dhafjmpcj7waz762n6wf5ws1xlwcwrwkr2l";
-  };
-
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ numactl python3 ];
-
-  preConfigure = ''
-    patchShebangs .
-  '';
-
-  propagatedBuildInputs = [ liburcu ];
-
-  enableParallelBuilding = true;
-
-  meta = with lib; {
-    description = "LTTng Userspace Tracer libraries";
-    homepage = "https://lttng.org/";
-    license = with licenses; [ lgpl21Only gpl2Only mit ];
-    platforms = platforms.linux;
-    maintainers = [ maintainers.bjornfor ];
-  };
-
+import ./generic.nix {
+  version = "2.13.1";
+  sha256 = "sha256-Vme/Amnh5i4tnLl0xFb/huBAG9eqO/yNX9uXIzJJ7dw=";
 }
diff --git a/pkgs/development/tools/misc/lttng-ust/generic.nix b/pkgs/development/tools/misc/lttng-ust/generic.nix
new file mode 100644
index 00000000000..e6e67352c85
--- /dev/null
+++ b/pkgs/development/tools/misc/lttng-ust/generic.nix
@@ -0,0 +1,44 @@
+{ version, sha256 }:
+
+{ lib, stdenv, fetchurl, pkg-config, liburcu, numactl, python3 }:
+
+# NOTE:
+#   ./configure ...
+#   [...]
+#   LTTng-UST will be built with the following options:
+#
+#   Java support (JNI): Disabled
+#   sdt.h integration:  Disabled
+#   [...]
+#
+# Debian builds with std.h (systemtap).
+
+stdenv.mkDerivation rec {
+  pname = "lttng-ust";
+  inherit version;
+
+  src = fetchurl {
+    url = "https://lttng.org/files/lttng-ust/${pname}-${version}.tar.bz2";
+    inherit sha256;
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ numactl python3 ];
+
+  preConfigure = ''
+    patchShebangs .
+  '';
+
+  propagatedBuildInputs = [ liburcu ];
+
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    description = "LTTng Userspace Tracer libraries";
+    homepage = "https://lttng.org/";
+    license = with licenses; [ lgpl21Only gpl2Only mit ];
+    platforms = platforms.linux;
+    maintainers = [ maintainers.bjornfor ];
+  };
+
+}
diff --git a/pkgs/development/tools/misc/tcptrack/default.nix b/pkgs/development/tools/misc/tcptrack/default.nix
index 5b1fd72a7f5..25121bf1ad7 100644
--- a/pkgs/development/tools/misc/tcptrack/default.nix
+++ b/pkgs/development/tools/misc/tcptrack/default.nix
@@ -1,16 +1,26 @@
-{ lib, stdenv, fetchFromGitHub, ncurses, libpcap }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, ncurses, libpcap }:
 
 stdenv.mkDerivation rec {
   pname = "tcptrack";
-  version = "1.4.3";
+  version = "unstable-2017-04-29";
 
   src = fetchFromGitHub {
     owner = "bchretien";
     repo = "tcptrack";
-    rev = "d05fe08154ff1e46578e92be49e4cfa2c6543283";
-    sha256 = "08lh3l67wn4kq9q0nfspc7rj0jvp9dzwjgxpvqliwcif8cy5mi45";
+    rev = "2b096ac103af2884bbd7648cff8adcbadbda9394";
+    sha256 = "0084g9s0ynv1az67j08q9nz4p07bqqz9k6w5lprzj3ljlh0x10gj";
   };
 
+  patches = [
+    # Fix pending upstream inclusion for ncurses-6.3 support:
+    #  https://github.com/bchretien/tcptrack/pull/10
+    (fetchpatch {
+      name = "ncurses-6.3.patch";
+      url = "https://github.com/bchretien/tcptrack/commit/409007afbce8ec5a81312a2a4123dd83b62b4494.patch";
+      sha256 = "00641jyr52ksww5bbzvxlprmbb36jnvzg2w1aj1jgnm75jiajcfc";
+    })
+  ];
+
   buildInputs = [ ncurses libpcap ];
 
   NIX_CFLAGS_COMPILE = "-Wno-error=cpp";
diff --git a/pkgs/development/tools/mold/default.nix b/pkgs/development/tools/mold/default.nix
index 0a39f47c0cc..3613b18e728 100644
--- a/pkgs/development/tools/mold/default.nix
+++ b/pkgs/development/tools/mold/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mold";
-  version = "0.9.6";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
     owner = "rui314";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0mj258fy8l4i23jd6ail0xrrq3das7lmrf1brrr1591ahx4vjj14";
+    sha256 = "sha256-89Dh4qly70Jzyo/KPlRte58hbN5HNnzZpi32tFd8fXU=";
   };
 
   buildInputs = [ zlib openssl ];
diff --git a/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix b/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix
index 4cdd0b8e3e2..82d84c819dd 100644
--- a/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix
+++ b/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix
@@ -1,23 +1,23 @@
 { lib, fetchurl, buildDunePackage
-, ocaml, cmdliner, cppo, yojson, ppxlib
+, cmdliner, yojson, ppxlib
 , menhir, menhirLib
 }:
 
 buildDunePackage rec {
   pname = "js_of_ocaml-compiler";
-  version = "3.10.0";
+  version = "3.11.0";
   useDune2 = true;
 
   src = fetchurl {
     url = "https://github.com/ocsigen/js_of_ocaml/releases/download/${version}/js_of_ocaml-${version}.tbz";
-    sha256 = "09k19bygxl766dmshrp5df3i99jfm8bmamb4jggm62p3hg19bzkv";
+    sha256 = "sha256:0flws9mw0yjfw4d8d3y3k408mivy2xgky70xk1br3iqs4zksz38m";
   };
 
-  nativeBuildInputs = [ cppo menhir ];
-  buildInputs = [ cmdliner menhirLib ];
+  nativeBuildInputs = [ menhir ];
+  buildInputs = [ cmdliner ppxlib ];
 
   configurePlatforms = [];
-  propagatedBuildInputs = [ yojson ppxlib ];
+  propagatedBuildInputs = [ menhirLib yojson ];
 
   meta = {
     description = "Compiler from OCaml bytecode to Javascript";
diff --git a/pkgs/development/tools/ocaml/js_of_ocaml/ppx.nix b/pkgs/development/tools/ocaml/js_of_ocaml/ppx.nix
index b29ef435e46..3c0f8c76123 100644
--- a/pkgs/development/tools/ocaml/js_of_ocaml/ppx.nix
+++ b/pkgs/development/tools/ocaml/js_of_ocaml/ppx.nix
@@ -8,5 +8,6 @@ buildDunePackage {
 
   inherit (js_of_ocaml-compiler) version src meta useDune2;
 
-  buildInputs = [ ppxlib js_of_ocaml ];
+  buildInputs = [ js_of_ocaml ];
+  propagatedBuildInputs = [ ppxlib ];
 }
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/default.nix b/pkgs/development/tools/parsing/tree-sitter/grammars/default.nix
index 2ecb55f5a7a..6995c41cc91 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/default.nix
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/default.nix
@@ -4,49 +4,86 @@
   tree-sitter-agda = lib.importJSON ./tree-sitter-agda.json;
   tree-sitter-bash = lib.importJSON ./tree-sitter-bash.json;
   tree-sitter-beancount = lib.importJSON ./tree-sitter-beancount.json;
+  tree-sitter-bibtex = lib.importJSON ./tree-sitter-bibtex.json;
   tree-sitter-c = lib.importJSON ./tree-sitter-c.json;
   tree-sitter-c-sharp = lib.importJSON ./tree-sitter-c-sharp.json;
   tree-sitter-clojure = lib.importJSON ./tree-sitter-clojure.json;
+  tree-sitter-cmake = lib.importJSON ./tree-sitter-cmake.json;
   tree-sitter-comment = lib.importJSON ./tree-sitter-comment.json;
+  tree-sitter-commonlisp = lib.importJSON ./tree-sitter-commonlisp.json;
   tree-sitter-cpp = lib.importJSON ./tree-sitter-cpp.json;
   tree-sitter-css = lib.importJSON ./tree-sitter-css.json;
+  tree-sitter-cuda = lib.importJSON ./tree-sitter-cuda.json;
   tree-sitter-dart = lib.importJSON ./tree-sitter-dart.json;
+  tree-sitter-devicetree = lib.importJSON ./tree-sitter-devicetree.json;
+  tree-sitter-dockerfile = lib.importJSON ./tree-sitter-dockerfile.json;
   tree-sitter-dot = lib.importJSON ./tree-sitter-dot.json;
   tree-sitter-elisp = lib.importJSON ./tree-sitter-elisp.json;
+  tree-sitter-elixir = lib.importJSON ./tree-sitter-elixir.json;
+  tree-sitter-elm = lib.importJSON ./tree-sitter-elm.json;
   tree-sitter-embedded-template = lib.importJSON ./tree-sitter-embedded-template.json;
+  tree-sitter-erlang = lib.importJSON ./tree-sitter-erlang.json;
   tree-sitter-fennel = lib.importJSON ./tree-sitter-fennel.json;
   tree-sitter-fish = lib.importJSON ./tree-sitter-fish.json;
   tree-sitter-fluent = lib.importJSON ./tree-sitter-fluent.json;
+  tree-sitter-fortran = lib.importJSON ./tree-sitter-fortran.json;
+  tree-sitter-gdscript = lib.importJSON ./tree-sitter-gdscript.json;
+  tree-sitter-glimmer = lib.importJSON ./tree-sitter-glimmer.json;
+  tree-sitter-glsl = lib.importJSON ./tree-sitter-glsl.json;
   tree-sitter-go = lib.importJSON ./tree-sitter-go.json;
+  tree-sitter-godot-resource = lib.importJSON ./tree-sitter-godot-resource.json;
+  tree-sitter-gomod = lib.importJSON ./tree-sitter-gomod.json;
+  tree-sitter-graphql = lib.importJSON ./tree-sitter-graphql.json;
   tree-sitter-haskell = lib.importJSON ./tree-sitter-haskell.json;
+  tree-sitter-heex = lib.importJSON ./tree-sitter-heex.json;
+  tree-sitter-hjson = lib.importJSON ./tree-sitter-hjson.json;
   tree-sitter-html = lib.importJSON ./tree-sitter-html.json;
+  tree-sitter-http = lib.importJSON ./tree-sitter-http.json;
   tree-sitter-java = lib.importJSON ./tree-sitter-java.json;
   tree-sitter-javascript = lib.importJSON ./tree-sitter-javascript.json;
   tree-sitter-jsdoc = lib.importJSON ./tree-sitter-jsdoc.json;
   tree-sitter-json = lib.importJSON ./tree-sitter-json.json;
+  tree-sitter-json5 = lib.importJSON ./tree-sitter-json5.json;
   tree-sitter-julia = lib.importJSON ./tree-sitter-julia.json;
+  tree-sitter-kotlin = lib.importJSON ./tree-sitter-kotlin.json;
   tree-sitter-latex = lib.importJSON ./tree-sitter-latex.json;
+  tree-sitter-ledger = lib.importJSON ./tree-sitter-ledger.json;
+  tree-sitter-llvm = lib.importJSON ./tree-sitter-llvm.json;
   tree-sitter-lua = lib.importJSON ./tree-sitter-lua.json;
   tree-sitter-make = lib.importJSON ./tree-sitter-make.json;
   tree-sitter-markdown = lib.importJSON ./tree-sitter-markdown.json;
   tree-sitter-nix = lib.importJSON ./tree-sitter-nix.json;
   tree-sitter-norg = lib.importJSON ./tree-sitter-norg.json;
   tree-sitter-ocaml = lib.importJSON ./tree-sitter-ocaml.json;
+  tree-sitter-perl = lib.importJSON ./tree-sitter-perl.json;
   tree-sitter-php = lib.importJSON ./tree-sitter-php.json;
+  tree-sitter-pioasm = lib.importJSON ./tree-sitter-pioasm.json;
+  tree-sitter-prisma = lib.importJSON ./tree-sitter-prisma.json;
+  tree-sitter-pug = lib.importJSON ./tree-sitter-pug.json;
   tree-sitter-python = lib.importJSON ./tree-sitter-python.json;
   tree-sitter-ql = lib.importJSON ./tree-sitter-ql.json;
+  tree-sitter-query = lib.importJSON ./tree-sitter-query.json;
+  tree-sitter-r = lib.importJSON ./tree-sitter-r.json;
   tree-sitter-regex = lib.importJSON ./tree-sitter-regex.json;
   tree-sitter-rst = lib.importJSON ./tree-sitter-rst.json;
   tree-sitter-ruby = lib.importJSON ./tree-sitter-ruby.json;
   tree-sitter-rust = lib.importJSON ./tree-sitter-rust.json;
   tree-sitter-scala = lib.importJSON ./tree-sitter-scala.json;
+  tree-sitter-scss = lib.importJSON ./tree-sitter-scss.json;
+  tree-sitter-sparql = lib.importJSON ./tree-sitter-sparql.json;
+  tree-sitter-supercollider = lib.importJSON ./tree-sitter-supercollider.json;
+  tree-sitter-surface = lib.importJSON ./tree-sitter-surface.json;
   tree-sitter-svelte = lib.importJSON ./tree-sitter-svelte.json;
   tree-sitter-swift = lib.importJSON ./tree-sitter-swift.json;
+  tree-sitter-tlaplus = lib.importJSON ./tree-sitter-tlaplus.json;
   tree-sitter-toml = lib.importJSON ./tree-sitter-toml.json;
   tree-sitter-tsq = lib.importJSON ./tree-sitter-tsq.json;
+  tree-sitter-turtle = lib.importJSON ./tree-sitter-turtle.json;
   tree-sitter-typescript = lib.importJSON ./tree-sitter-typescript.json;
   tree-sitter-verilog = lib.importJSON ./tree-sitter-verilog.json;
   tree-sitter-vim = lib.importJSON ./tree-sitter-vim.json;
+  tree-sitter-vue = lib.importJSON ./tree-sitter-vue.json;
   tree-sitter-yaml = lib.importJSON ./tree-sitter-yaml.json;
+  tree-sitter-yang = lib.importJSON ./tree-sitter-yang.json;
   tree-sitter-zig = lib.importJSON ./tree-sitter-zig.json;
 }
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-bibtex.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-bibtex.json
new file mode 100644
index 00000000000..24fc75ec25c
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-bibtex.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/latex-lsp/tree-sitter-bibtex",
+  "rev": "ccfd77db0ed799b6c22c214fe9d2937f47bc8b34",
+  "date": "2021-03-26T15:53:50+01:00",
+  "path": "/nix/store/pg00zy53rni7znda2vbyyhkkclgja3kq-tree-sitter-bibtex",
+  "sha256": "0m7f3dkqbmy8x1bhl11m8f4p6n76wfvh99rp46zrqv39355nw1y2",
+  "fetchLFS": false,
+  "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
index ad7e72f61d1..efd5be61284 100644
--- 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
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-c-sharp",
-  "rev": "69921685a7688361626600543a2beaf82b67a64d",
-  "date": "2021-11-03T12:36:17+00:00",
-  "path": "/nix/store/f4rd6avwf2flqr9yv0dvy9288qrgn2bs-tree-sitter-c-sharp",
-  "sha256": "18yzr0yvkbp5wf2slcfn04fc23jn0ray72ica0jyv92jkp5pxc03",
+  "rev": "3104df21065af0f3d51e05a96cd0e2ff16a6f982",
+  "date": "2021-12-09T21:13:54+00:00",
+  "path": "/nix/store/1xgrz7rm6mc6j2svaidj4x0zyda0ahz4-tree-sitter-c-sharp",
+  "sha256": "14g8x5q4xc87s2wpycws6r6ci083j7pk1jdw6sr8qp96zyzs17pp",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-cmake.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-cmake.json
new file mode 100644
index 00000000000..61e0ee43fc7
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-cmake.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/uyha/tree-sitter-cmake",
+  "rev": "f6616f1e417ee8b62daf251aa1daa5d73781c596",
+  "date": "2021-10-13T08:19:43+02:00",
+  "path": "/nix/store/p13qh130n5741wdfk2fbmy7ifd1z1zb2-tree-sitter-cmake",
+  "sha256": "1b5cc84d0gjm8nb73gdvfjxbk9fjrfkd5aay3b0qvk6gar59pcj6",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-commonlisp.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-commonlisp.json
new file mode 100644
index 00000000000..cefe88d8be1
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-commonlisp.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/thehamsta/tree-sitter-commonlisp",
+  "rev": "4fd115d3bb7046cd094f21bfe5766c302dbf64cd",
+  "date": "2021-12-06T20:34:14+01:00",
+  "path": "/nix/store/vmyfmgyhnx0ipi16d1w7sxsdkprybzk7-tree-sitter-commonlisp",
+  "sha256": "1kmxmx93f34lba5g7kqa5fcijfak9zc9qydbid9dcqxw6kf65ncg",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-cuda.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-cuda.json
new file mode 100644
index 00000000000..7eb34545b41
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-cuda.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/thehamsta/tree-sitter-cuda",
+  "rev": "bc20ed7a36031437a69a88ef368af4b9f1ecec70",
+  "date": "2021-12-10T00:43:38+01:00",
+  "path": "/nix/store/zagrgq7zfh6n90z4qpp8cy002g588dhj-tree-sitter-cuda",
+  "sha256": "04gnfjq5rd1vcby8737wxhzmg4vmn2ggjz6n94bbna8b96qc1xxj",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-devicetree.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-devicetree.json
new file mode 100644
index 00000000000..4b301bb0f57
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-devicetree.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/joelspadin/tree-sitter-devicetree",
+  "rev": "fa70098cd70393f84785f85cdc6a45299b59cd5b",
+  "date": "2021-03-28T12:08:53-05:00",
+  "path": "/nix/store/6nqsmnd75vwbvkj764vg5slkmjzkmdd9-tree-sitter-devicetree",
+  "sha256": "0mr3q2l7js6csb1fp8xjysikj26l94p3mmsiik4qwnw5kg694yam",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-dockerfile.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-dockerfile.json
new file mode 100644
index 00000000000..951daa9e3d9
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-dockerfile.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/camdencheek/tree-sitter-dockerfile",
+  "rev": "7af32bc04a66ab196f5b9f92ac471f29372ae2ce",
+  "date": "2021-12-16T07:47:57-07:00",
+  "path": "/nix/store/gh1pnracilf89q9z5czqr4z7lkd480xb-tree-sitter-dockerfile",
+  "sha256": "06hy683mrp1jcg2ypd6msbmv0pm2z85y8nqxgrnbr9vbi6syvmp5",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-elixir.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-elixir.json
new file mode 100644
index 00000000000..3041fe7610f
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-elixir.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/elixir-lang/tree-sitter-elixir",
+  "rev": "1b3ecf7765979a5602bbb8988b8fc0d9f4c887d6",
+  "date": "2021-12-15T23:29:48+01:00",
+  "path": "/nix/store/ahdmwdlw7g63wf681cvclxh92mp8waba-tree-sitter-elixir",
+  "sha256": "09kmi989hp2fp7w1xsambnlnp49fnnivdh45pwz9y3dab8iyngsn",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-elm.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-elm.json
new file mode 100644
index 00000000000..e5ab2be1113
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-elm.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/elm-tooling/tree-sitter-elm",
+  "rev": "8dd06afd9ca60a420374c6b65831e58a1d1237ad",
+  "date": "2021-07-26T03:59:46+02:00",
+  "path": "/nix/store/pz5nbdx19mdq6dp238l1qc3n81l2i88f-tree-sitter-elm",
+  "sha256": "1mncr0nvb616zn2172pqcjd2jrqzyfad0y1pz2mwh8pqwfr0c3nf",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-erlang.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-erlang.json
new file mode 100644
index 00000000000..b824f34f27a
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-erlang.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/abstractmachineslab/tree-sitter-erlang",
+  "rev": "9d5fd0c329280a156bf7614a49dc5e8c58cc037c",
+  "date": "2021-08-03T11:57:52+02:00",
+  "path": "/nix/store/35ydhh12dgf4q016gjka35wnqnkwc1jg-tree-sitter-erlang",
+  "sha256": "0d6wl95wgys21vcix6j0bf7l000glkmk1n6shgcnp4baw9wxh009",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-fortran.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-fortran.json
new file mode 100644
index 00000000000..6b3198e7318
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-fortran.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/stadelmanma/tree-sitter-fortran",
+  "rev": "f0f2f100952a353e64e26b0fa710b4c296d7af13",
+  "date": "2021-09-02T21:24:27-04:00",
+  "path": "/nix/store/5abj5miyzb7dvyq4zw0j1mxgdxqyj2yx-tree-sitter-fortran",
+  "sha256": "17iiz38s7adkzv9rw97nn5nd9kvn1vyccm7r6ywipaa5aim0nm6a",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-gdscript.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-gdscript.json
new file mode 100644
index 00000000000..a7c5970eb5b
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-gdscript.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/prestonknopp/tree-sitter-gdscript",
+  "rev": "eed1595d830407b49775aa33b871a9400e5a44e6",
+  "date": "2021-11-27T11:52:11-08:00",
+  "path": "/nix/store/spim2mz5frha9lfvrkgdwyrwsxm41fhs-tree-sitter-gdscript",
+  "sha256": "1aymw5hi636wfngsvx6c0z8lpfdqfnh0xjh7avaq99npbg6sbn51",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-glimmer.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-glimmer.json
new file mode 100644
index 00000000000..5dc18d6c7b2
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-glimmer.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/alexlafroscia/tree-sitter-glimmer",
+  "rev": "5ed38d3cba65376e4734b0f1763c2f049ad5a1cf",
+  "date": "2021-09-25T09:50:19-04:00",
+  "path": "/nix/store/z0nhsn3v519mbxrhj5x1y7h7k7giviw2-tree-sitter-glimmer",
+  "sha256": "0whij8420niywdi0lna8w5fizq30vhldz3wssisw91gjfdn8d9mz",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-glsl.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-glsl.json
new file mode 100644
index 00000000000..9a0adc92f38
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-glsl.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/thehamsta/tree-sitter-glsl",
+  "rev": "26ba31a3f5a85ebed5d71e49eef11a003bed782b",
+  "date": "2021-11-22T08:02:47+01:00",
+  "path": "/nix/store/khlrphky7p7qdivnn34r8hxlpzgav3xm-tree-sitter-glsl",
+  "sha256": "0qvn45whhd6q4wwqaihfd90197xr8lcynwjj418hxl83m9zy8xcz",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-go.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-go.json
index 3839bd61dc1..7e7ef382bae 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-go.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-go.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-go",
-  "rev": "7f6bfd0161b2fe97f03564edad3287ebea0494a3",
-  "date": "2021-10-04T13:10:27-04:00",
-  "path": "/nix/store/64xzxzc8z4fmwhfb7wbdkcxlk7r3bia2-tree-sitter-go",
-  "sha256": "12naks95vzb0sf219i39myvfpkycr2dh3lv7i7i6kwddmlhqsjnl",
+  "rev": "1203c11e422c73350e672445c5c32b8c0f79266d",
+  "date": "2021-12-03T14:22:11-08:00",
+  "path": "/nix/store/5h584m7qgvlh0s5k10503zj3idggandz-tree-sitter-go",
+  "sha256": "03i63mh5g21y424pf9whl42p7shqp9xlrx90xpyrd12dlc9zhh2j",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-godot-resource.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-godot-resource.json
new file mode 100644
index 00000000000..240ec944f4b
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-godot-resource.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/prestonknopp/tree-sitter-godot-resource",
+  "rev": "4ad1b796fb375c8e0fbf5b3cad57050b4372114f",
+  "date": "2021-11-27T00:00:05-08:00",
+  "path": "/nix/store/n9jcbf1rxzg9bqlmkhrjpx1pbqjq2bkg-tree-sitter-godot-resource",
+  "sha256": "12ws3lslhm6aq52s3hvgrxrvyz1kfm6r5k8pfxf5nwbr3pxbndmw",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-gomod.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-gomod.json
new file mode 100644
index 00000000000..2b8fe79a3d2
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-gomod.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/camdencheek/tree-sitter-go-mod",
+  "rev": "3cbcb572109ea0bc476a292208722c326c9e6c3a",
+  "date": "2021-12-16T14:44:10-07:00",
+  "path": "/nix/store/jxc3lqcxagfvlk7l62fg8z98mjrn7pgz-tree-sitter-go-mod",
+  "sha256": "0csrvmpvihwmw3772j4lkj49myqqp0f7imi7c11h9x9szz3lc8x8",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-graphql.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-graphql.json
new file mode 100644
index 00000000000..b543c81fbd6
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-graphql.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/bkegley/tree-sitter-graphql",
+  "rev": "5e66e961eee421786bdda8495ed1db045e06b5fe",
+  "date": "2021-05-10T09:09:29-05:00",
+  "path": "/nix/store/am2ld0br0yhdny5c2ndp6l0bl3c78wwq-tree-sitter-graphql",
+  "sha256": "0xvrd6p9rxdjpqfq575ap6hpl2f7dad5i4d4m05w1qk9jx33vw9n",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-heex.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-heex.json
new file mode 100644
index 00000000000..99eb38b7adb
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-heex.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/connorlay/tree-sitter-heex",
+  "rev": "625a721ac38d9dd23d4f2b08eceb6700a2e670d5",
+  "date": "2021-10-19T12:18:28-07:00",
+  "path": "/nix/store/pr36q25xgnpmywm53w6rg58ygs9l93wj-tree-sitter-heex",
+  "sha256": "1r7wrb1h2l35wp0hlswb3xpwcf55dr56r865sriq3ngv89y64yha",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-hjson.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-hjson.json
new file mode 100644
index 00000000000..d3ee4fba8cf
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-hjson.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/winston0410/tree-sitter-hjson",
+  "rev": "02fa3b79b3ff9a296066da6277adfc3f26cbc9e0",
+  "date": "2021-08-02T21:41:53+01:00",
+  "path": "/nix/store/cvbkxylvkpgxcmkv87fvknlfxg4q09bg-tree-sitter-hjson",
+  "sha256": "0zqf4bxqd2bpzdsw4kghq0jmn7l4sgdlrrlhc567b03p6kfdzi1n",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-http.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-http.json
new file mode 100644
index 00000000000..71664391b23
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-http.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/ntbbloodbath/tree-sitter-http",
+  "rev": "bfddd16b1cf78e0042fd1f6846a179f76a254e20",
+  "date": "2021-11-04T16:44:58-04:00",
+  "path": "/nix/store/l776a8vyhzg64pzna22hy96cia71l1sq-tree-sitter-http",
+  "sha256": "0va7lxddkpbsjpbih4dwv6i9minnl2a4lq7i6dm3fk99c71y4ghg",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-json5.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-json5.json
new file mode 100644
index 00000000000..cd9bc3e8dc8
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-json5.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/joakker/tree-sitter-json5",
+  "rev": "5dd5cdc418d9659682556b6adca2dd9ace0ac6d2",
+  "date": "2021-08-24T18:08:31-04:00",
+  "path": "/nix/store/0qhffwc84sp97d8im4lfrd06jsyvmzc4-tree-sitter-json5",
+  "sha256": "1la7bq5vi21gy0kf4zpwh0c0jfyv1bb62a3v7158hnxdyd5ijz07",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-kotlin.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-kotlin.json
new file mode 100644
index 00000000000..f7e29af84f1
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-kotlin.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/fwcd/tree-sitter-kotlin",
+  "rev": "607af7be5606ad6580246cd9c68fc615e1ad97fd",
+  "date": "2021-10-12T01:11:47+02:00",
+  "path": "/nix/store/49cvpcypxjzpb0srcpd383ay9f0g19dy-tree-sitter-kotlin",
+  "sha256": "1sisvx7cp95d309ykhimn8bhbwd1lzcwrpz3s0mdsb2i44p69469",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ledger.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ledger.json
new file mode 100644
index 00000000000..a75a6176491
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ledger.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/cbarrete/tree-sitter-ledger",
+  "rev": "0cdeb0e51411a3ba5493662952c3039de08939ca",
+  "date": "2021-09-06T18:36:51-04:00",
+  "path": "/nix/store/8gh6lfvqczb6n6ncnmszvk3kj527m75w-tree-sitter-ledger",
+  "sha256": "1z0r2aphijzq6j67gb2lx2qr3fi2qpiz2x9dwkjvppdb4ch7ga7m",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-llvm.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-llvm.json
new file mode 100644
index 00000000000..6fbe13182fe
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-llvm.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/benwilliamgraham/tree-sitter-llvm",
+  "rev": "d4f61bed8ecb632addcd5e088c4f4cb9c1bf1c5b",
+  "date": "2021-10-03T12:19:51-04:00",
+  "path": "/nix/store/k9vpa9lvrvf1im6wx0c0xyjf2yzgbn0x-tree-sitter-llvm",
+  "sha256": "0iiigra7knvwsb6v76qs7vxpkmfnggakd27gl6sz9dm6gimp1adp",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-make.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-make.json
index fcb0b280e24..468146ac47d 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-make.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-make.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/alemuller/tree-sitter-make",
-  "rev": "716c294283bc3dda263ccbdf55e38ec30aa0edba",
-  "date": "2021-04-30T16:37:32-03:00",
-  "path": "/nix/store/v2dvgqs3fxwh83dhc53xivrx8i0g519y-tree-sitter-make",
-  "sha256": "1fb6rf6pc6mdawphifhlbzbgppxvq6hj48cz6073schvavgjgchc",
+  "rev": "a4b9187417d6be349ee5fd4b6e77b4172c6827dd",
+  "date": "2021-12-16T17:14:17+00:00",
+  "path": "/nix/store/v01s3lfi1w3bm433gf6zi0wb0r603906-tree-sitter-make",
+  "sha256": "07gz4x12xhigar2plr3jgazb2z4f9xp68nscmvy9a7wafak9l2m9",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-nix.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-nix.json
index e04d8f81ff6..801634201c8 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-nix.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-nix.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/cstrahan/tree-sitter-nix",
-  "rev": "83ee5993560bf15854c69b77d92e34456f8fb655",
-  "date": "2021-07-21T20:36:40-05:00",
-  "path": "/nix/store/n5pq9gba570874akpwpvs052d7vyalhh-tree-sitter-nix",
-  "sha256": "03jhvyrsxq49smk9p2apjj839wmzjmrzy045wcxawz1g7xssp9pr",
+  "rev": "6d6aaa50793b8265b6a8b6628577a0083d3b923d",
+  "date": "2021-11-29T00:27:21-06:00",
+  "path": "/nix/store/6cjadxvqbrh205lsqnk2rnzq3badxdxv-tree-sitter-nix",
+  "sha256": "0cbk6dqppasrvnm87pwfgm718z6b0xmy9m7zj8ysil0h8bklz1w9",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-norg.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-norg.json
index dbf88190fb3..7feaee05a86 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-norg.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-norg.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/nvim-neorg/tree-sitter-norg",
-  "rev": "995d7e0be4dc2a9655d2285405c0ef3fededf63c",
-  "date": "2021-11-05T21:28:42+01:00",
-  "path": "/nix/store/1l5dq21x6sln1gvixf20gx3pkadjad4d-tree-sitter-norg",
-  "sha256": "181y8p91hl5j7mrff0pmnx91d9vr24nvklgx12qvc0297vdp8c5v",
+  "rev": "665736e400cfd52ae92ead244ca9f5d44db98151",
+  "date": "2021-12-14T15:04:57+01:00",
+  "path": "/nix/store/crbl24rj54f8c9pjq8igadz3wqcw6qrw-tree-sitter-norg",
+  "sha256": "0hxar07a7n3ghqagr0qjxbz4sgzcpyxwgd4dbj1vvy4xnk07i0br",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-perl.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-perl.json
new file mode 100644
index 00000000000..fd07357b6bb
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-perl.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/ganezdragon/tree-sitter-perl",
+  "rev": "0ac2c6da562c7a2c26ed7e8691d4a590f7e8b90a",
+  "date": "2021-11-01T14:40:51-04:00",
+  "path": "/nix/store/1yzkap7jvps3xdj19pygyv1bn6c33qak-tree-sitter-perl",
+  "sha256": "184zaicrl9i4cywhyc2cxpghw7daz9pi0fhwkkgpv7j6kvp1ig2w",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json
index c680b87b76d..e64e3f6bff3 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-php",
-  "rev": "435fa00006c0d1515c37fbb4dd6a9de284af75ab",
-  "date": "2021-10-17T09:05:36+02:00",
-  "path": "/nix/store/0vgi25jrbc6fks97sxkya80dvwa0gzbk-tree-sitter-php",
-  "sha256": "05k4h58gi616gv41r0qqdb1x4rs8y94vghn2r10yczisgzq4vbad",
+  "rev": "57f855461aeeca73bd4218754fb26b5ac143f98f",
+  "date": "2021-11-19T17:22:11+01:00",
+  "path": "/nix/store/lxl3r0lykb9b3r0sdqb3sqixlnaf6015-tree-sitter-php",
+  "sha256": "1v7xzc8w8nilmgnx6whdvq03dbi1z8j57aarwwzx9xbb86z2qhvc",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-pioasm.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-pioasm.json
new file mode 100644
index 00000000000..9c753e26305
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-pioasm.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/leo60228/tree-sitter-pioasm",
+  "rev": "924aadaf5dea2a6074d72027b064f939acf32e20",
+  "date": "2021-08-27T17:22:56-04:00",
+  "path": "/nix/store/nhxzw33vljxh5i90d0fb5nzdfjp5h9bl-tree-sitter-pioasm",
+  "sha256": "1lxvgc0zkd2sv8dxp2fy6b1k3gqrbkxgqy25lw9sbd4kij7463m2",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-prisma.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-prisma.json
new file mode 100644
index 00000000000..ec69a798aad
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-prisma.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/victorhqc/tree-sitter-prisma",
+  "rev": "74a721e8eed1a4a25cf495d45974ba24f315f81a",
+  "date": "2021-11-19T19:52:32+01:00",
+  "path": "/nix/store/rbr2p57ic1kn0121ca6k0bh2r8svw066-tree-sitter-prisma",
+  "sha256": "1b8yil6v9jz9ndx2kzln639fkjkj1xb0qfcip1njxcq5mlqlfswd",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-pug.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-pug.json
new file mode 100644
index 00000000000..cf72f03519c
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-pug.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/zealot128/tree-sitter-pug",
+  "rev": "5875f9a7d94836708119b0a1102bb5792e8bf673",
+  "date": "2021-07-13T22:48:45+02:00",
+  "path": "/nix/store/3bwj01nmxkd4cmvjyrfv2a6wq07hbqig-tree-sitter-pug",
+  "sha256": "1sjw632yidi8dq34g1nqmld9861j40qnrlg4c8w478kl8hmhnvmb",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-query.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-query.json
new file mode 100644
index 00000000000..8f70551443f
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-query.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/nvim-treesitter/tree-sitter-query",
+  "rev": "9a2ccff9f672f1f3d320cf925b8e5acc89b27055",
+  "date": "2021-07-13T08:51:40-05:00",
+  "path": "/nix/store/k843gr9rlkd5jaf9arvlwcs31wsznn81-tree-sitter-query",
+  "sha256": "0x5ssq8pb767s1l68123jaa5p4570xmz74ii94kckd46wmqbk4v9",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-r.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-r.json
new file mode 100644
index 00000000000..dd644745aea
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-r.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/r-lib/tree-sitter-r",
+  "rev": "91f587e5685f46e26f9f6e55f2e06d503f8f0fc0",
+  "date": "2021-12-03T10:44:27-05:00",
+  "path": "/nix/store/z89yfih6g05fkrzz6s7snkyqp8wj8pi5-tree-sitter-r",
+  "sha256": "0dds34vgrvgxi1918a2w6xcw5l8n9ch3qi43vql769p8zxf8qijp",
+  "fetchLFS": false,
+  "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 86320373d7e..e9df62ad10f 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": "fe6a2d634da0e16b11b5aa255cc3df568a4572fd",
-  "date": "2021-03-03T16:54:30-08:00",
-  "path": "/nix/store/ragrvqj7hm98r74v5b3fljvc47gd3nhj-tree-sitter-ruby",
-  "sha256": "0m3h4928rbs300wcb6776h9r88hi32rybbhcaf6rdympl5nzi83v",
+  "rev": "888e2e563ed3b43c417f17e57f7e29c39ce9aeea",
+  "date": "2021-12-03T16:33:06+01:00",
+  "path": "/nix/store/6g101r5pwy6iqicch9srlhwfz9xdrvzd-tree-sitter-ruby",
+  "sha256": "0xfcqafslxlpkw7agw4a179w3c6k6ivi3fzlf32pqfd5bjrlx9d7",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": 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 8e8af00423b..2f6ac50b07d 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": "cc7bdd3e6d14677e8aa77da64f6a3f57b6f8b00a",
-  "date": "2021-08-17T11:21:11-07:00",
-  "path": "/nix/store/aw8bi91hz7a26swc5qrfqwn2lrdmiymr-tree-sitter-rust",
-  "sha256": "15qz4rwz1fkpcy78g0aspfgk9pgykvzv5sxmhgm37nfpgyi7vlg1",
+  "rev": "d045b04b66d51c0ba8671e7ce1ee23a9f286b7d7",
+  "date": "2021-12-12T10:08:54-08:00",
+  "path": "/nix/store/2h6vkl05jxqgp4738a0dxccmg40yhqvj-tree-sitter-rust",
+  "sha256": "0ckyaw1ll3yazyg18wd40kc09h6f0zmwqmahsm07bwgfyc2nvf3h",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scss.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scss.json
new file mode 100644
index 00000000000..03644c839c3
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scss.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/serenadeai/tree-sitter-scss",
+  "rev": "f3174d3d131eb776f86dfa3d90fe6f7325c0ad9a",
+  "date": "2021-11-08T17:21:33-08:00",
+  "path": "/nix/store/qpmqd6a3rnrp451b5jjmqqwark276smj-tree-sitter-scss",
+  "sha256": "0c8mx5fxcfn8wn361i7pnr3xga7vm2jjj99ilkqljir71nl6bm11",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-sparql.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-sparql.json
new file mode 100644
index 00000000000..4180f584407
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-sparql.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/bonabeavis/tree-sitter-sparql",
+  "rev": "05f949d3c1c15e3261473a244d3ce87777374dec",
+  "date": "2021-08-16T15:50:03+02:00",
+  "path": "/nix/store/vvgvb1jcv0qrn3xj0jbf83qwi1lh2m68-tree-sitter-sparql",
+  "sha256": "012c1pi4vc6hkvllymvl2yah3ix8k4pi7997iydy949fc33aa5i8",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-supercollider.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-supercollider.json
new file mode 100644
index 00000000000..fa5ff363241
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-supercollider.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/madskjeldgaard/tree-sitter-supercollider",
+  "rev": "df3b6210bad8f352515cd0c92aadb1e63802283b",
+  "date": "2021-12-15T19:44:59+01:00",
+  "path": "/nix/store/01jd9nc524mi1snkp9ln9s8xyh98bhzf-tree-sitter-supercollider",
+  "sha256": "04jd3vc0965c3nwy0d61cdj9gp7drabd8d35g63vyz9s9kr29vv2",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-surface.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-surface.json
new file mode 100644
index 00000000000..d12ff52a556
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-surface.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/connorlay/tree-sitter-surface",
+  "rev": "21b7676859c1187645a27ff301f76738af5dfd44",
+  "date": "2021-08-15T10:33:50-07:00",
+  "path": "/nix/store/7i1klj80jbcvwgad7nrbcs7hvn68f125-tree-sitter-surface",
+  "sha256": "122v1d2zb0w2k5h7xqgm1c42rwfrp59dzyb2lly7kxmylyazmshy",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-tlaplus.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-tlaplus.json
new file mode 100644
index 00000000000..cf939daf9cc
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-tlaplus.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/tlaplus-community/tree-sitter-tlaplus",
+  "rev": "26bbaf5d07356cacbf21defa9316988bc732c8b3",
+  "date": "2021-10-12T19:50:03-04:00",
+  "path": "/nix/store/52rs1n8y6krfkb9z2h7jsl4s3j15dp08-tree-sitter-tlaplus",
+  "sha256": "1yj2hjc48sjjpysjgyji7nx2l0rpc5dnsm68i8amff5wcag5lyhw",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-turtle.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-turtle.json
new file mode 100644
index 00000000000..6430be302fb
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-turtle.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/bonabeavis/tree-sitter-turtle",
+  "rev": "085437f5cb117703b7f520dd92161140a684f092",
+  "date": "2021-08-16T15:17:50+02:00",
+  "path": "/nix/store/c90hph3wfyhjmri3qbfb5lpy1bl855zv-tree-sitter-turtle",
+  "sha256": "1l5djvz90sq9w14kfcrffdigqs61r1p8v17xpj92sxz8z3ngpgmr",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-vue.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-vue.json
new file mode 100644
index 00000000000..f40c0054c94
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-vue.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/ikatyang/tree-sitter-vue",
+  "rev": "91fe2754796cd8fba5f229505a23fa08f3546c06",
+  "date": "2021-04-04T11:51:48+08:00",
+  "path": "/nix/store/9bw35fa56xli7r2k3b3bzzlm7vkpxzcy-tree-sitter-vue",
+  "sha256": "0l0kqy9ajm5izqcywd39aavgmc281s8qrhmjkbwl6r8arfj8vsrm",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-yang.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-yang.json
new file mode 100644
index 00000000000..73d18723027
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-yang.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/hubro/tree-sitter-yang",
+  "rev": "8e9d175982afcefa3dac8ca20d40d1643accd2bd",
+  "date": "2021-07-29T23:07:25+02:00",
+  "path": "/nix/store/ark7nssjv3jzy1kw9anlma7li5k9zpnb-tree-sitter-yang",
+  "sha256": "044q9fikaxnrcrnfwc7cfjnwdg6v7jb6rg7mj556iryv0bkv48s1",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-zig.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-zig.json
index 100bb09fce2..98a30d08ac4 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-zig.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-zig.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/maxxnino/tree-sitter-zig",
-  "rev": "63e8a11f1858c7351a299223b231c8134ed61612",
-  "date": "2021-10-13T22:25:30+09:00",
-  "path": "/nix/store/2dy3wrmjss5mnmdv6xf50cjj3k9bfpp0-tree-sitter-zig",
-  "sha256": "1izvw3dv5ydklqlh8n4fslyzqdal9n8kark0g4xslcrnji3q71wg",
+  "rev": "cf93353d5682c3e9d8112d448ff24d4de7b2304e",
+  "date": "2021-11-25T20:46:40+09:00",
+  "path": "/nix/store/jwrs3fdgdqymjkrni6mlz1j0f0ai6h9y-tree-sitter-zig",
+  "sha256": "04ja9w28zprw575s4734d02ibi498whh3z7cxm3m1fdydhjsdlrj",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/update.nix b/pkgs/development/tools/parsing/tree-sitter/update.nix
index 0f7c61b37bb..58d420fe402 100644
--- a/pkgs/development/tools/parsing/tree-sitter/update.nix
+++ b/pkgs/development/tools/parsing/tree-sitter/update.nix
@@ -1,6 +1,12 @@
-{ writeShellScript, nix-prefetch-git, formats, lib
-, curl, jq, xe
-, src }:
+{ writeShellScript
+, nix-prefetch-git
+, formats
+, lib
+, curl
+, jq
+, xe
+, src
+}:
 
 # Grammar list:
 # https://github.com/tree-sitter/tree-sitter/blob/master/docs/index.md
@@ -150,38 +156,188 @@ let
       orga = "nvim-neorg";
       repo = "tree-sitter-norg";
     };
+    "tree-sitter-commonlisp" = {
+      orga = "thehamsta";
+      repo = "tree-sitter-commonlisp";
+    };
+    "tree-sitter-cuda" = {
+      orga = "thehamsta";
+      repo = "tree-sitter-cuda";
+    };
+    "tree-sitter-glsl" = {
+      orga = "thehamsta";
+      repo = "tree-sitter-glsl";
+    };
+    "tree-sitter-dockerfile" = {
+      orga = "camdencheek";
+      repo = "tree-sitter-dockerfile";
+    };
+    "tree-sitter-ledger" = {
+      orga = "cbarrete";
+      repo = "tree-sitter-ledger";
+    };
+    "tree-sitter-gomod" = {
+      orga = "camdencheek";
+      repo = "tree-sitter-go-mod";
+    };
+    "tree-sitter-graphql" = {
+      orga = "bkegley";
+      repo = "tree-sitter-graphql";
+    };
+    "tree-sitter-perl" = {
+      orga = "ganezdragon";
+      repo = "tree-sitter-perl";
+    };
+    "tree-sitter-kotlin" = {
+      orga = "fwcd";
+      repo = "tree-sitter-kotlin";
+    };
+    "tree-sitter-scss" = {
+      orga = "serenadeai";
+      repo = "tree-sitter-scss";
+    };
+    "tree-sitter-erlang" = {
+      orga = "abstractmachineslab";
+      repo = "tree-sitter-erlang";
+    };
+    "tree-sitter-elixir" = {
+      orga = "elixir-lang";
+      repo = "tree-sitter-elixir";
+    };
+    "tree-sitter-surface" = {
+      orga = "connorlay";
+      repo = "tree-sitter-surface";
+    };
+    "tree-sitter-heex" = {
+      orga = "connorlay";
+      repo = "tree-sitter-heex";
+    };
+    "tree-sitter-supercollider" = {
+      orga = "madskjeldgaard";
+      repo = "tree-sitter-supercollider";
+    };
+    "tree-sitter-tlaplus" = {
+      orga = "tlaplus-community";
+      repo = "tree-sitter-tlaplus";
+    };
+    "tree-sitter-glimmer" = {
+      orga = "alexlafroscia";
+      repo = "tree-sitter-glimmer";
+    };
+    "tree-sitter-pug" = {
+      orga = "zealot128";
+      repo = "tree-sitter-pug";
+    };
+    "tree-sitter-vue" = {
+      orga = "ikatyang";
+      repo = "tree-sitter-vue";
+    };
+    "tree-sitter-elm" = {
+      orga = "elm-tooling";
+      repo = "tree-sitter-elm";
+    };
+    "tree-sitter-yang" = {
+      orga = "hubro";
+      repo = "tree-sitter-yang";
+    };
+    "tree-sitter-query" = {
+      orga = "nvim-treesitter";
+      repo = "tree-sitter-query";
+    };
+    "tree-sitter-sparql" = {
+      orga = "bonabeavis";
+      repo = "tree-sitter-sparql";
+    };
+    "tree-sitter-gdscript" = {
+      orga = "prestonknopp";
+      repo = "tree-sitter-gdscript";
+    };
+    "tree-sitter-godot-resource" = {
+      orga = "prestonknopp";
+      repo = "tree-sitter-godot-resource";
+    };
+    "tree-sitter-turtle" = {
+      orga = "bonabeavis";
+      repo = "tree-sitter-turtle";
+    };
+    "tree-sitter-devicetree" = {
+      orga = "joelspadin";
+      repo = "tree-sitter-devicetree";
+    };
+    "tree-sitter-r" = {
+      orga = "r-lib";
+      repo = "tree-sitter-r";
+    };
+    "tree-sitter-bibtex" = {
+      orga = "latex-lsp";
+      repo = "tree-sitter-bibtex";
+    };
+    "tree-sitter-fortran" = {
+      orga = "stadelmanma";
+      repo = "tree-sitter-fortran";
+    };
+    "tree-sitter-cmake" = {
+      orga = "uyha";
+      repo = "tree-sitter-cmake";
+    };
+    "tree-sitter-json5" = {
+      orga = "joakker";
+      repo = "tree-sitter-json5";
+    };
+    "tree-sitter-pioasm" = {
+      orga = "leo60228";
+      repo = "tree-sitter-pioasm";
+    };
+    "tree-sitter-hjson" = {
+      orga = "winston0410";
+      repo = "tree-sitter-hjson";
+    };
+    "tree-sitter-llvm" = {
+      orga = "benwilliamgraham";
+      repo = "tree-sitter-llvm";
+    };
+    "tree-sitter-http" = {
+      orga = "ntbbloodbath";
+      repo = "tree-sitter-http";
+    };
+    "tree-sitter-prisma" = {
+      orga = "victorhqc";
+      repo = "tree-sitter-prisma";
+    };
   };
 
   allGrammars =
     let
       treeSitterOrgaGrammars =
-        lib.listToAttrs (map (repo:
-          { name = repo;
-            value = {
-              orga = "tree-sitter";
-              inherit repo;
-            };
-          })
-        knownTreeSitterOrgGrammarRepos);
+        lib.listToAttrs (map
+          (repo:
+            {
+              name = repo;
+              value = {
+                orga = "tree-sitter";
+                inherit repo;
+              };
+            })
+          knownTreeSitterOrgGrammarRepos);
 
     in
-      mergeAttrsUnique otherGrammars treeSitterOrgaGrammars;
+    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)}"
-        ]);
+    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;
+  jsonFile = name: val: (formats.json { }).generate name val;
 
   # check the tree-sitter orga repos
   checkTreeSitterRepos = writeShellScript "get-grammars.sh" ''
@@ -244,11 +400,11 @@ let
       --no-deepClone \
       --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);
+      (lib.mapAttrsToList (k: v: { name = k; } // v) attrs);
 
   update-all-grammars = writeShellScript "update-all-grammars.sh" ''
     set -euo pipefail
@@ -270,4 +426,5 @@ let
       > "$outputDir/default.nix"
   '';
 
-in update-all-grammars
+in
+update-all-grammars
diff --git a/pkgs/development/tools/rust/cargo-make/default.nix b/pkgs/development/tools/rust/cargo-make/default.nix
index 498b32858bb..da4345c0e44 100644
--- a/pkgs/development/tools/rust/cargo-make/default.nix
+++ b/pkgs/development/tools/rust/cargo-make/default.nix
@@ -13,11 +13,11 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-make";
-  version = "0.35.6";
+  version = "0.35.7";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-31GIjm2OtaMwf0nYmWVUsi3GBeik/QKvL8AdCyhjZy0=";
+    sha256 = "sha256-rMeaKzCGY9jRrw8GaGtgm1rg3FIdaX/P+bOZRAtAI/s=";
   };
 
   nativeBuildInputs = [ pkg-config ];
@@ -25,7 +25,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = [ openssl ]
     ++ lib.optionals stdenv.isDarwin [ Security SystemConfiguration libiconv ];
 
-  cargoSha256 = "sha256-GMniiGOxg97JCZGxxIr4Zup6b/Wzldy4/FLbJwFJPxY=";
+  cargoSha256 = "sha256-ZXQM2ij9Cpa5WCEHhcDc/tThfKZ7s1URmYsmqRg73m0=";
 
   # Some tests fail because they need network access.
   # However, Travis ensures a proper build.
diff --git a/pkgs/development/tools/rust/cargo-udeps/default.nix b/pkgs/development/tools/rust/cargo-udeps/default.nix
index 31416670dca..88e32f2efda 100644
--- a/pkgs/development/tools/rust/cargo-udeps/default.nix
+++ b/pkgs/development/tools/rust/cargo-udeps/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-udeps";
-  version = "0.1.24";
+  version = "0.1.25";
 
   src = fetchFromGitHub {
     owner = "est31";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-/A3OaJje8AT4zR91sLAYN6lsKiv2FbSBYAeuc79nSF0=";
+    sha256 = "sha256-GNQ8PTnkmf4m2QW1yIEKytk53RNJZa9Z0GUrW5UjIkk=";
   };
 
-  cargoSha256 = "sha256-1LXcuLmbW0ezLJG0sszQDZqa2cRaMMC4blNjmFg1Ltc=";
+  cargoSha256 = "sha256-MbD5lkmKzggdoSzCcArVzpdQRLnXT1y+C2EFSWUbaa4=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/development/tools/rust/rust-analyzer/default.nix b/pkgs/development/tools/rust/rust-analyzer/default.nix
index fdc91503ff5..d08f2acb9de 100644
--- a/pkgs/development/tools/rust/rust-analyzer/default.nix
+++ b/pkgs/development/tools/rust/rust-analyzer/default.nix
@@ -11,20 +11,23 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rust-analyzer-unwrapped";
-  version = "2021-11-29";
-  cargoSha256 = "sha256-UgYR0e3Pt3lcbkSDnizlwtwjnqTaqGlXRgR724U4rSU=";
+  version = "2021-12-13";
+  cargoSha256 = "sha256-VF4pwSl3Wei7KxyQFOPj7hVX/NG2zImRLv4iN+ijAs8=";
 
   src = fetchFromGitHub {
     owner = "rust-analyzer";
     repo = "rust-analyzer";
     rev = version;
-    sha256 = "sha256-vh7z8jupVxXPOko3sWUsOB7eji/7lKfwJ/CE3iw97Sw=";
+    sha256 = "sha256-xt7iDfIoaBhStgqsgttyOFF4NYPQ8jeVwDoYUwrvtrA=";
   };
 
   patches = [
     # Code format and git history check require more dependencies but don't really matter for packaging.
     # So just ignore them.
     ./ignore-git-and-rustfmt-tests.patch
+
+    # Remove when we have rustc >= 1.57.0.
+    ./no-1-57-map-while.patch
   ];
 
   buildAndTestSubdir = "crates/rust-analyzer";
diff --git a/pkgs/development/tools/rust/rust-analyzer/no-1-57-map-while.patch b/pkgs/development/tools/rust/rust-analyzer/no-1-57-map-while.patch
new file mode 100644
index 00000000000..6114f51831b
--- /dev/null
+++ b/pkgs/development/tools/rust/rust-analyzer/no-1-57-map-while.patch
@@ -0,0 +1,20 @@
+--- a/crates/ide_db/src/helpers.rs
++++ b/crates/ide_db/src/helpers.rs
+@@ -309,7 +309,7 @@ pub fn lint_eq_or_in_group(lint: &str, lint_is: &str) -> bool {
+ pub fn parse_tt_as_comma_sep_paths(input: ast::TokenTree) -> Option<Vec<ast::Path>> {
+     let r_paren = input.r_paren_token();
+     let tokens =
+-        input.syntax().children_with_tokens().skip(1).map_while(|it| match it.into_token() {
++        input.syntax().children_with_tokens().skip(1).map(|it| match it.into_token() {
+             // seeing a keyword means the attribute is unclosed so stop parsing here
+             Some(tok) if tok.kind().is_keyword() => None,
+             // don't include the right token tree parenthesis if it exists
+@@ -317,7 +317,7 @@ pub fn parse_tt_as_comma_sep_paths(input: ast::TokenTree) -> Option<Vec<ast::Pat
+             // only nodes that we can find are other TokenTrees, those are unexpected in this parse though
+             None => None,
+             Some(tok) => Some(tok),
+-        });
++        }).take_while(|tok| tok.is_some()).map(|tok| tok.unwrap());
+     let input_expressions = tokens.into_iter().group_by(|tok| tok.kind() == T![,]);
+     let paths = input_expressions
+         .into_iter()
diff --git a/pkgs/development/tools/rust/rust-analyzer/update.sh b/pkgs/development/tools/rust/rust-analyzer/update.sh
index add400e4d0e..920b36a5131 100755
--- a/pkgs/development/tools/rust/rust-analyzer/update.sh
+++ b/pkgs/development/tools/rust/rust-analyzer/update.sh
@@ -28,50 +28,8 @@ sed -e "s#version = \".*\"#version = \"$ver\"#" \
     -e "/fetchFromGitHub/,/}/ s#sha256 = \".*\"#sha256 = \"$sha256\"#" \
     -e "s#cargoSha256 = \".*\"#cargoSha256 = \"sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\"#" \
     --in-place ./default.nix
-node_src="$(nix-build "$nixpkgs" -A rust-analyzer.src --no-out-link)/editors/code"
-
-# Check vscode compatibility
-req_vscode_ver="$(jq '.engines.vscode' "$node_src/package.json" --raw-output)"
-req_vscode_ver="${req_vscode_ver#^}"
-cur_vscode_ver="$(nix-instantiate --eval --strict "$nixpkgs" -A vscode.version | tr -d '"')"
-if [[ "$(nix-instantiate --eval --strict -E "(builtins.compareVersions \"$req_vscode_ver\" \"$cur_vscode_ver\")")" -gt 0 ]]; then
-    echo "vscode $cur_vscode_ver is incompatible with the extension requiring ^$req_vscode_ver"
-    exit 1
-fi
 
 echo "Prebuilding for cargoSha256"
 cargo_sha256=$(nix-prefetch "{ sha256 }: (import $nixpkgs {}).rust-analyzer-unwrapped.cargoDeps.overrideAttrs (_: { outputHash = sha256; })")
 sed "s#cargoSha256 = \".*\"#cargoSha256 = \"$cargo_sha256\"#" \
     --in-place ./default.nix
-
-# Update vscode extension
-
-extension_ver=$(curl "https://github.com/rust-analyzer/rust-analyzer/releases/download/$ver/rust-analyzer.vsix" -L |
-    bsdtar -xf - --to-stdout extension/package.json | # Use bsdtar to extract vsix(zip).
-    jq --raw-output '.version')
-echo "Extension version: $extension_ver"
-
-build_deps="../../../../misc/vscode-extensions/rust-analyzer/build-deps"
-# We need devDependencies to build vsix.
-# `esbuild` is a binary package an is already in nixpkgs so we omit it here.
-jq '{ name, version: $ver, dependencies: (.dependencies + .devDependencies | del(.esbuild)) }' "$node_src/package.json" \
-    --arg ver "$extension_ver" \
-    >"$build_deps/package.json.new"
-
-old_deps="$(jq '.dependencies' "$build_deps"/package.json)"
-new_deps="$(jq '.dependencies' "$build_deps"/package.json.new)"
-if [[ "$old_deps" == "$new_deps" ]]; then
-    echo "package.json dependencies not changed, do simple version change"
-
-    sed -E '/^  "rust-analyzer-build-deps/,+3 s/version = ".*"/version = "'"$extension_ver"'"/' \
-        --in-place ../../../node-packages/node-packages.nix
-    mv "$build_deps"/package.json{.new,}
-
-else
-    echo "package.json dependencies changed, updating nodePackages"
-    mv "$build_deps"/package.json{.new,}
-
-    pushd "../../../node-packages"
-    ./generate.sh
-    popd
-fi
diff --git a/pkgs/development/tools/rust/rust-script/default.nix b/pkgs/development/tools/rust/rust-script/default.nix
index 947b4721b0a..2839c2287f8 100644
--- a/pkgs/development/tools/rust/rust-script/default.nix
+++ b/pkgs/development/tools/rust/rust-script/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rust-script";
-  version = "0.18.0";
+  version = "0.19.0";
 
   src = fetchFromGitHub {
     owner = "fornwall";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-B/xh0eYRJxjjIEXdxmLz6usQvo4v/HQK5VNnnjcDBjM=";
+    sha256 = "sha256-CYeTt6PzVGu62/GJB+gUlOXG2bs4RV0LWECF4CN3Uic=";
   };
 
-  cargoSha256 = "sha256-7qMrrs6K+mJVDHNkGQDb6abM18RyBPToseTNM7ogdQ0=";
+  cargoSha256 = "sha256-IUzaVeOTBAOo/jkDytk6qc7VatKX75l1yZy99iSIqyE=";
 
   # tests require network access
   doCheck = false;
diff --git a/pkgs/development/tools/scalafmt/default.nix b/pkgs/development/tools/scalafmt/default.nix
index bddcaf1cc8a..0b4f2f40548 100644
--- a/pkgs/development/tools/scalafmt/default.nix
+++ b/pkgs/development/tools/scalafmt/default.nix
@@ -2,7 +2,7 @@
 
 let
   baseName = "scalafmt";
-  version = "3.0.8";
+  version = "3.2.1";
   deps = stdenv.mkDerivation {
     name = "${baseName}-deps-${version}";
     buildCommand = ''
@@ -13,7 +13,7 @@ let
     '';
     outputHashMode = "recursive";
     outputHashAlgo = "sha256";
-    outputHash     = "VBU6Jg6Sq3RBy0ym5YbjLjvcfx/85f6wNMmkGVV0W88=";
+    outputHash     = "v1IODq88Wpjm7IxSKmD9Nub3r4XNP+jNT0A6ApX3Cas=";
   };
 in
 stdenv.mkDerivation {
diff --git a/pkgs/development/tools/slimerjs/default.nix b/pkgs/development/tools/slimerjs/default.nix
index 473f24b1b55..7ebe7dba851 100644
--- a/pkgs/development/tools/slimerjs/default.nix
+++ b/pkgs/development/tools/slimerjs/default.nix
@@ -1,33 +1,24 @@
-{lib, stdenv, fetchFromGitHub, zip, unzip, firefox, bash}:
-let
-  s = # Generated upstream information
-  rec {
-    baseName="slimerjs";
-    version="1.0.0";
-    name="${baseName}-${version}";
+{ lib, stdenv, fetchFromGitHub, zip, unzip, firefox, bash }:
+
+stdenv.mkDerivation rec {
+  pname = "slimerjs";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
     owner = "laurentj";
-    repo = baseName;
-    sha256="1w4sfrv520isbs7r1rlzl5y3idrpad7znw9fc92yz40jlwz7sxs4";
+    repo = "slimerjs";
+    sha256 = "sha256-RHd9PqcSkO9FYi5x+09TN7c4fKGf5pCPXjoCUXZ2mvA=";
     rev = version;
   };
-in
-stdenv.mkDerivation {
-  inherit (s) name version;
+
   buildInputs = [ zip ];
   nativeBuildInputs = [ unzip ];
-  #src = fetchurl {
-  #  inherit (s) url sha256;
-  #};
-  #src = fetchgit {
-  #  inherit (s) url sha256 rev;
-  #};
-  src = fetchFromGitHub {
-    inherit (s) owner repo rev sha256;
-  };
+
   preConfigure = ''
     test -d src && cd src
     test -f omni.ja || zip omni.ja -r */
   '';
+
   installPhase = ''
     mkdir -p "$out"/{bin,share/doc/slimerjs,lib/slimerjs}
     cp LICENSE README* "$out/share/doc/slimerjs"
@@ -38,11 +29,11 @@ stdenv.mkDerivation {
     chmod a+x "$out/bin/slimerjs"
     sed -e 's@MaxVersion=[3456][0-9][.]@MaxVersion=99.@' -i "$out/lib/slimerjs/application.ini"
   '';
-  meta = {
-    inherit (s) version;
+
+  meta = with lib; {
     description = "Gecko-based programmatically-driven browser";
-    license = lib.licenses.mpl20 ;
-    maintainers = [lib.maintainers.raskin];
-    platforms = lib.platforms.linux;
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/tools/slimerjs/default.upstream b/pkgs/development/tools/slimerjs/default.upstream
deleted file mode 100644
index f2d6b89e51b..00000000000
--- a/pkgs/development/tools/slimerjs/default.upstream
+++ /dev/null
@@ -1,2 +0,0 @@
-url http://slimerjs.org/download.html
-version_link '/slimerjs-[0-9.]+[.]zip$'
diff --git a/pkgs/development/tools/slimerjs/default.upstream.git b/pkgs/development/tools/slimerjs/default.upstream.git
deleted file mode 100644
index 3066d5de829..00000000000
--- a/pkgs/development/tools/slimerjs/default.upstream.git
+++ /dev/null
@@ -1,3 +0,0 @@
-url https://github.com/laurentj/slimerjs
-target default.nix
-GH_latest
diff --git a/pkgs/development/tools/treefmt/default.nix b/pkgs/development/tools/treefmt/default.nix
index 174f2273edf..bd297154cc3 100644
--- a/pkgs/development/tools/treefmt/default.nix
+++ b/pkgs/development/tools/treefmt/default.nix
@@ -1,16 +1,16 @@
 { lib, rustPlatform, fetchFromGitHub }:
 rustPlatform.buildRustPackage rec {
   pname = "treefmt";
-  version = "0.2.6";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "numtide";
     repo = "treefmt";
     rev = "v${version}";
-    sha256 = "sha256-hnrMy8iYoaeWxZlhO9L1kQW3OgL6jHL1MxJpbNFLHZk=";
+    sha256 = "sha256-PTT87Na4KpyN6a7T49vHHhSqSOF6JSWr5/jiys1Uzko=";
   };
 
-  cargoSha256 = "sha256-O7Ma6+Vniil5hIDd5JCWecTvkAjq7wMuuyfrzePDDq4=";
+  cargoSha256 = "sha256-Gvr6Zjd9Gvn2CyjNHlJaKPFYUViPezRwoDBeVelRlkU=";
 
   meta = {
     description = "one CLI to format the code tree";
diff --git a/pkgs/development/tools/vultr-cli/default.nix b/pkgs/development/tools/vultr-cli/default.nix
index 253189c648a..2a0d881a9d1 100644
--- a/pkgs/development/tools/vultr-cli/default.nix
+++ b/pkgs/development/tools/vultr-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "vultr-cli";
-  version = "2.11.2";
+  version = "2.11.3";
 
   src = fetchFromGitHub {
     owner = "vultr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-v5RbStmQX7D+i+oyekilLPsl6lta5rkJV4Uf0mjIF8Y=";
+    sha256 = "sha256-UI7D5bvfyGsNa6Gd1XuFu1VgiIQJ/b0g6DQlsJbaocI=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/development/tools/yq-go/default.nix b/pkgs/development/tools/yq-go/default.nix
index 47a8538d5b9..433aefb4123 100644
--- a/pkgs/development/tools/yq-go/default.nix
+++ b/pkgs/development/tools/yq-go/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "yq-go";
-  version = "4.16.1";
+  version = "4.16.2";
 
   src = fetchFromGitHub {
     owner = "mikefarah";
     repo = "yq";
     rev = "v${version}";
-    sha256 = "sha256-4o38f5ltTH6ea0na919GnJMao8w5rgkDWMp2mkoKwcY=";
+    sha256 = "sha256-qJZDFyBSiaS0cUcfEz1P+b5Z6Tb//KKWeYqNJpdOh9Q=";
   };
 
-  vendorSha256 = "sha256-PCDM1VbqUcAVXzCPWDZtCRLpRIu43sF1lGazAG2HZJ0=";
+  vendorSha256 = "sha256-6J+pHWiswDRxCFdRj/d+6+QLxEF207vTyfnPq5tP30o=";
 
   doCheck = false;
 
diff --git a/pkgs/development/web/cypress/default.nix b/pkgs/development/web/cypress/default.nix
index 7522052ea9a..c5ec9b95dce 100644
--- a/pkgs/development/web/cypress/default.nix
+++ b/pkgs/development/web/cypress/default.nix
@@ -17,11 +17,11 @@
 
 stdenv.mkDerivation rec {
   pname = "cypress";
-  version = "8.3.1";
+  version = "9.1.1";
 
   src = fetchzip {
     url = "https://cdn.cypress.io/desktop/${version}/linux-x64/cypress.zip";
-    sha256 = "sha256-aBnF3Ij7oTws+0qOHwIIioxy1sJslb02wn8eGyKFt/c=";
+    sha256 = "sha256-zJi4fNsj2MM7sv5zb3B3a03tmkhzsb9sTTqEhpd7z+w=";
   };
 
   # don't remove runtime deps
diff --git a/pkgs/development/web/deno/default.nix b/pkgs/development/web/deno/default.nix
index 0a2a0777017..0c4f2a35372 100644
--- a/pkgs/development/web/deno/default.nix
+++ b/pkgs/development/web/deno/default.nix
@@ -17,15 +17,15 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "deno";
-  version = "1.16.4";
+  version = "1.17.0";
 
   src = fetchFromGitHub {
     owner = "denoland";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-lEUEA8TAUCzTViGTSPz3Iw17BIIHr+oQXA0ldWe2T3w=";
+    sha256 = "sha256-fkgsMPSmJVp62sVKuuHOsOUczFfBoooKNEY3w5f9zbE=";
   };
-  cargoSha256 = "sha256-Y/eN15B3aiIrvhuGykB9sQRGRajEC7t84JQ2U0dHAzo=";
+  cargoSha256 = "sha256-wzQf5Wb0kxAg5sNxom9qltdkpJbNatA7IK4oVstQXME=";
 
   # Install completions post-install
   nativeBuildInputs = [ installShellFiles ];
@@ -43,6 +43,10 @@ rustPlatform.buildRustPackage rec {
   # Skipping until resolved
   doCheck = false;
 
+  preInstall = ''
+    find ./target -name libswc_common${stdenv.hostPlatform.extensions.sharedLibrary} -delete
+  '';
+
   postInstall = ''
     installShellCompletion --cmd deno \
       --bash <($out/bin/deno completions bash) \
diff --git a/pkgs/development/web/insomnia/default.nix b/pkgs/development/web/insomnia/default.nix
index 4529285ef52..041ceed5288 100644
--- a/pkgs/development/web/insomnia/default.nix
+++ b/pkgs/development/web/insomnia/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, makeWrapper, fetchurl, dpkg, alsa-lib, atk, cairo, cups, dbus, expat
-, fontconfig, freetype, gdk-pixbuf, glib, gnome2, pango, mesa, nspr, nss, gtk3, gtk2
+, fontconfig, freetype, gdk-pixbuf, glib, gnome2, pango, mesa, nspr, nss, gtk3
 , at-spi2-atk, gsettings-desktop-schemas, gobject-introspection, wrapGAppsHook
 , libX11, libXScrnSaver, libXcomposite, libXcursor, libXdamage, libXext
 , libXfixes, libXi, libXrandr, libXrender, libXtst, libxcb, nghttp2
@@ -12,16 +12,15 @@ let
     libudev0-shim
     nghttp2
     openssl
-    stdenv.cc.cc
   ];
 in stdenv.mkDerivation rec {
   pname = "insomnia";
-  version = "2021.6.0";
+  version = "2021.7.2";
 
   src = fetchurl {
     url =
       "https://github.com/Kong/insomnia/releases/download/core%40${version}/Insomnia.Core-${version}.deb";
-    sha256 = "sha256-YvAzO5oxeq7bnYHzKTXqRVjfJXnwrTr0DNrdWS3yrX4=";
+    sha256 = "sha256-HkQWW4h2+XT5Xi4oiIiMPnrRKw+GIyjGMQ5B1NrBARU=";
   };
 
   nativeBuildInputs =
@@ -41,7 +40,6 @@ in stdenv.mkDerivation rec {
     glib
     gnome2.GConf
     pango
-    gtk2
     gtk3
     gsettings-desktop-schemas
     libX11
@@ -59,7 +57,6 @@ in stdenv.mkDerivation rec {
     mesa # for libgbm
     nspr
     nss
-    stdenv.cc.cc
   ];
 
   dontBuild = true;
diff --git a/pkgs/development/web/nodejs/v12.nix b/pkgs/development/web/nodejs/v12.nix
index 54f077e7182..f69915ddfa6 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.22.7";
-    sha256 = "0sszg3k5jd26hymqhs5328kvnxsb3x78sg4gpna9lrvh92s26snc";
+    version = "12.22.8";
+    sha256 = "0g0ihjzbd02izhmb4jzkdsr5788982wy8q2b4a1h04q8l4fwp197";
     patches = lib.optional stdenv.isDarwin ./bypass-xcodebuild.diff;
   }
diff --git a/pkgs/development/web/nodejs/v17.nix b/pkgs/development/web/nodejs/v17.nix
index 38d5a12a712..62db8e9f87d 100644
--- a/pkgs/development/web/nodejs/v17.nix
+++ b/pkgs/development/web/nodejs/v17.nix
@@ -7,8 +7,8 @@ let
 in
 buildNodejs {
   inherit enableNpm;
-  version = "17.2.0";
-  sha256 = "16k5kqanfvsnickkrv0vz072qg4ddzrk4is56yvdg2f1brxwqirb";
+  version = "17.3.0";
+  sha256 = "00sx046xmh75va7jh810npphnz3yrixifjhlj0jqysal93kc9r74";
   patches = [
     ./disable-darwin-v8-system-instrumentation.patch
     # Fixes node incorrectly building vendored OpenSSL when we want system OpenSSL.
diff --git a/pkgs/development/web/twitter-bootstrap/default.nix b/pkgs/development/web/twitter-bootstrap/default.nix
index 13b1e7b95c4..a09dbc51128 100644
--- a/pkgs/development/web/twitter-bootstrap/default.nix
+++ b/pkgs/development/web/twitter-bootstrap/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bootstrap";
-  version = "5.1.0";
+  version = "5.1.3";
 
   src = fetchurl {
     url = "https://github.com/twbs/bootstrap/releases/download/v${version}/${pname}-${version}-dist.zip";
-    sha256 = "sha256-OVNCspdOM1BWDmV1LTaqtlc2UrEcxste95ouXoOtZLE=";
+    sha256 = "sha256-vewp21DsjR7My3AgIrgj3wozPhBYFMJksyG9UYuJxyE=";
   };
 
   nativeBuildInputs = [ unzip ];
diff --git a/pkgs/games/cataclysm-dda/stable.nix b/pkgs/games/cataclysm-dda/stable.nix
index 1429cdbf180..453f5ceacae 100644
--- a/pkgs/games/cataclysm-dda/stable.nix
+++ b/pkgs/games/cataclysm-dda/stable.nix
@@ -10,17 +10,17 @@ let
   };
 
   self = common.overrideAttrs (common: rec {
-    version = "0.F-2";
+    version = "0.F-3";
 
     src = fetchFromGitHub {
       owner = "CleverRaven";
       repo = "Cataclysm-DDA";
       rev = version;
-      sha256 = "sha256-8AZOrO/Wxui+LqAZo8hURktMTycecIgOONUJmE3M+vM=";
+      sha256 = "sha256-2su1uQaWl9WG41207dRvOTdVKcQsEz/y0uTi9JX52uI=";
     };
 
     makeFlags = common.makeFlags ++ [
-      # Makefile declares version as 0.F, even under 0.F-2
+      # Makefile declares version as 0.F, with no minor release number
       "VERSION=${version}"
     ];
 
diff --git a/pkgs/games/cdogs-sdl/default.nix b/pkgs/games/cdogs-sdl/default.nix
index c34c9efb167..2b072a44752 100644
--- a/pkgs/games/cdogs-sdl/default.nix
+++ b/pkgs/games/cdogs-sdl/default.nix
@@ -48,5 +48,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ nixinator ];
     platforms = platforms.unix;
+    broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/trunk/cdogs-sdl.x86_64-darwin
   };
 }
diff --git a/pkgs/games/endgame-singularity/default.nix b/pkgs/games/endgame-singularity/default.nix
index d6b15301872..e0cd581af82 100644
--- a/pkgs/games/endgame-singularity/default.nix
+++ b/pkgs/games/endgame-singularity/default.nix
@@ -42,7 +42,14 @@ python3.pkgs.buildPythonApplication rec {
       A simulation of a true AI. Go from computer to computer, pursued by the
       entire world. Keep hidden, and you might have a chance
     '';
-    license = lib.licenses.gpl2;
+    # License details are in LICENSE.txt
+    license = with lib.licenses; [
+      gpl2Plus # most of the code, some translations
+      mit # recursive_fix_pickle, polib
+      cc-by-sa-30 # data and artwork, some translations
+      free # earth images from NASA, some fonts
+      cc0 # cick0.wav
+    ];
     maintainers = with lib.maintainers; [ fgaz ];
   };
 }
diff --git a/pkgs/games/fishfight/default.nix b/pkgs/games/fishfight/default.nix
index 420d024d5f6..422901fd986 100644
--- a/pkgs/games/fishfight/default.nix
+++ b/pkgs/games/fishfight/default.nix
@@ -2,6 +2,7 @@
 , rustPlatform
 , fetchFromGitHub
 , stdenv
+, SDL2
 , alsa-lib
 , libGL
 , libX11
@@ -9,25 +10,28 @@
 , AudioToolbox
 , Cocoa
 , CoreAudio
-, CoreFoundation
-, IOKit
 , OpenGL
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "fishfight";
-  version = "0.1";
+  version = "0.3";
 
   src = fetchFromGitHub {
     owner = "fishfight";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0mbg9zshyg9hlbsk5npslbnwjf8fh6gxszi5hxks380z080cjxs2";
+    sha256 = "sha256-kLdk7zTICZ8iawNttTsWUVKGvh2zykXVsMqUyYoGrBs=";
   };
 
-  cargoSha256 = "sha256-fZXqJ6a2erAQSgAZRwmkor94eMryjiq3gbY102pJb9Q=";
+  # use system sdl2 instead of bundled sdl2
+  cargoPatches = [ ./use-system-sdl2.patch ];
 
-  buildInputs = lib.optionals stdenv.isLinux [
+  cargoSha256 = "sha256-KQiqUzdsVMIjDmmreihekrrFoXeyNzd6ZbqApwH8B4Q=";
+
+  buildInputs =  [
+    SDL2
+  ] ++ lib.optionals stdenv.isLinux [
     alsa-lib
     libGL
     libX11
@@ -36,15 +40,11 @@ rustPlatform.buildRustPackage rec {
     AudioToolbox
     Cocoa
     CoreAudio
-    CoreFoundation
-    IOKit
     OpenGL
   ];
 
   postPatch = ''
-    substituteInPlace assets/levels/levels.toml --replace assets $out/share/assets
-    substituteInPlace src/gui.rs --replace \"assets \"$out/share/assets
-    substituteInPlace src/main.rs --replace \"assets \"$out/share/assets
+    substituteInPlace src/main.rs --replace ./assets $out/share/assets
   '';
 
   postInstall = ''
@@ -57,6 +57,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://fishfight.org/";
     license = with licenses; [ mit /* or */ asl20 ];
     maintainers = with maintainers; [ figsoda ];
-    mainProgram = "fishgame";
   };
 }
diff --git a/pkgs/games/fishfight/use-system-sdl2.patch b/pkgs/games/fishfight/use-system-sdl2.patch
new file mode 100644
index 00000000000..fcae36ce68b
--- /dev/null
+++ b/pkgs/games/fishfight/use-system-sdl2.patch
@@ -0,0 +1,39 @@
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -96,15 +96,6 @@ version = "1.0.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+ 
+-[[package]]
+-name = "cmake"
+-version = "0.1.46"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b7b858541263efe664aead4a5209a4ae5c5d2811167d4ed4ee0944503f8d2089"
+-dependencies = [
+- "cc",
+-]
+-
+ [[package]]
+ name = "color_quant"
+ version = "1.1.0"
+@@ -605,7 +596,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "94cb479353c0603785c834e2307440d83d196bf255f204f7f6741358de8d6a2f"
+ dependencies = [
+  "cfg-if",
+- "cmake",
+  "libc",
+  "version-compare",
+ ]
+diff --git a/Cargo.toml b/Cargo.toml
+index d2af29e..a813f30 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -14,7 +14,7 @@ macroquad-profiler = "0.1"
+ 
+ ff-particles = { version = "0.1", features = ["serde"] }
+ 
+-fishsticks = { version = "0.2.0", features = ["bundled-sdl2"] }
++fishsticks = "0.2.0"
+ 
+ stunclient = { git = "https://github.com/not-fl3/rust-stunclient", default-features = false }
+ 
diff --git a/pkgs/games/gnonograms/default.nix b/pkgs/games/gnonograms/default.nix
index 7a696001a15..cfe1085ca27 100644
--- a/pkgs/games/gnonograms/default.nix
+++ b/pkgs/games/gnonograms/default.nix
@@ -13,17 +13,18 @@
 , gtk3
 , pantheon
 , libgee
+, libhandy
 }:
 
 stdenv.mkDerivation rec {
   pname = "gnonograms";
-  version = "1.4.5";
+  version = "2.0.0";
 
   src = fetchFromGitHub {
     owner = "jeremypw";
     repo = "gnonograms";
     rev = "v${version}";
-    sha256 = "1ly3inp6dvjrixdysz5hdfwlhbs49ks0lf8062z2iq6gaf8ivkb2";
+    sha256 = "sha256-2uXaybpCAm9cr0o7bqfhgD7mMNPwtv1X/PgnFnSDOl0=";
   };
 
   postPatch = ''
@@ -46,6 +47,7 @@ stdenv.mkDerivation rec {
     gtk3
     pantheon.granite
     libgee
+    libhandy
   ];
 
   meta = with lib; {
diff --git a/pkgs/games/gnuchess/default.nix b/pkgs/games/gnuchess/default.nix
index c150ba4ffee..3acf6a8aa62 100644
--- a/pkgs/games/gnuchess/default.nix
+++ b/pkgs/games/gnuchess/default.nix
@@ -1,23 +1,17 @@
-{lib, stdenv, fetchurl, flex, makeWrapper}:
-let
-  s = # Generated upstream information
-  rec {
-    baseName="gnuchess";
-    version="6.2.9";
-    name="${baseName}-${version}";
-    url="mirror://gnu/chess/${name}.tar.gz";
-    sha256="sha256-3fzCC911aQCpq2xCx9r5CiiTv38ZzjR0IM42uuvEGJA=";
+{ lib, stdenv, fetchurl, flex, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  pname = "gnuchess";
+  version = "6.2.9";
+
+  src = fetchurl {
+    url = "mirror://gnu/chess/gnuchess-${version}.tar.gz";
+    sha256 = "sha256-3fzCC911aQCpq2xCx9r5CiiTv38ZzjR0IM42uuvEGJA=";
   };
+
   buildInputs = [
     flex
   ];
-in
-stdenv.mkDerivation {
-  inherit (s) name version;
-  src = fetchurl {
-    inherit (s) url sha256;
-  };
-  inherit buildInputs;
   nativeBuildInputs = [ makeWrapper ];
 
   postInstall = ''
@@ -25,11 +19,10 @@ stdenv.mkDerivation {
     wrapProgram $out/bin/gnuchessu --set PATH "$out/bin"
   '';
 
-  meta = {
-    inherit (s) version;
+  meta = with lib; {
     description = "GNU Chess engine";
-    maintainers = [lib.maintainers.raskin];
-    platforms = lib.platforms.unix;
-    license = lib.licenses.gpl3Plus;
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.unix;
+    license = licenses.gpl3Plus;
   };
 }
diff --git a/pkgs/games/gnuchess/default.upstream b/pkgs/games/gnuchess/default.upstream
deleted file mode 100644
index f19dca51add..00000000000
--- a/pkgs/games/gnuchess/default.upstream
+++ /dev/null
@@ -1 +0,0 @@
-url https://ftp.gnu.org/gnu/chess/
diff --git a/pkgs/games/gotypist/default.nix b/pkgs/games/gotypist/default.nix
index 00fc3071818..d7c9c33d757 100644
--- a/pkgs/games/gotypist/default.nix
+++ b/pkgs/games/gotypist/default.nix
@@ -21,6 +21,6 @@ buildGoModule rec {
     '';
     homepage = "https://github.com/pb-/gotypist";
     license = licenses.mit;
-    maintainers = [ "Paul Baecher" ];
+    maintainers = with maintainers; [ pb- ];
   };
 }
diff --git a/pkgs/games/quakespasm/default.nix b/pkgs/games/quakespasm/default.nix
index 7dda3b40ae3..56d34ff93c1 100644
--- a/pkgs/games/quakespasm/default.nix
+++ b/pkgs/games/quakespasm/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "quakespasm";
-  version = "0.94.1";
+  version = "0.94.2";
 
   src = fetchurl {
     url = "mirror://sourceforge/quakespasm/quakespasm-${version}.tar.gz";
-    sha256 = "19grpvsk3ikjypx9j0gpfsx5wanrqxkgf8dwl9h6ab5c8wwmjcjp";
+    sha256 = "sha256-wIgtoJVZH14EKcVNqZdwV3a5jORptYkVMTW1UmvaHyo=";
   };
 
   sourceRoot = "${pname}-${version}/Quake";
diff --git a/pkgs/games/quakespasm/vulkan.nix b/pkgs/games/quakespasm/vulkan.nix
index a71f36f7237..2dc84155324 100644
--- a/pkgs/games/quakespasm/vulkan.nix
+++ b/pkgs/games/quakespasm/vulkan.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "vkquake";
-  version = "1.11.0";
+  version = "1.12.1";
 
   src = fetchFromGitHub {
     owner = "Novum";
     repo = "vkQuake";
     rev = version;
-    sha256 = "sha256-FbHqpBiTJWeJPBHUBTOIuXRoLttmDIpip5wUvuVw8YI=";
+    sha256 = "sha256-D6JtYhR+bkYYm4yuipNrsonziDGiDWICEohy4Mgdr+0=";
   };
 
   sourceRoot = "source/Quake";
diff --git a/pkgs/games/quantumminigolf/default.nix b/pkgs/games/quantumminigolf/default.nix
index 61e2e1c4eb3..26a327dd3f5 100644
--- a/pkgs/games/quantumminigolf/default.nix
+++ b/pkgs/games/quantumminigolf/default.nix
@@ -1,40 +1,38 @@
-{lib, stdenv, fetchurl, fftwSinglePrec, freetype, SDL, SDL_ttf}:
-let
-  s = # Generated upstream information
-  rec {
-    baseName="quantumminigolf";
-    version="1.1.1";
-    name="${baseName}-${version}";
-    hash="16av7fk0irhi5nd7y9h9vhb0kf0dk12p6976ai3f60m99qdd8wk3";
-    url="mirror://sourceforge/project/quantumminigolf/quantumminigolf/1.1.1/quantumminigolf-1.1.1.src.tar.gz";
-    sha256="16av7fk0irhi5nd7y9h9vhb0kf0dk12p6976ai3f60m99qdd8wk3";
+{ lib, stdenv, fetchurl, fftwSinglePrec, freetype, SDL, SDL_ttf }:
+
+stdenv.mkDerivation rec {
+  pname = "quantumminigolf";
+  version = "1.1.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/quantumminigolf/quantumminigolf/${version}/quantumminigolf-${version}.src.tar.gz";
+    sha256 = "sha256-Y3LUGk6pAuNGVOYkc0WYDbgJFtwJJn+aLRHmCKY7W5k=";
   };
+
   buildInputs = [
-    fftwSinglePrec freetype SDL SDL_ttf
+    fftwSinglePrec
+    freetype
+    SDL
+    SDL_ttf
   ];
-in
-stdenv.mkDerivation {
-  inherit (s) name version;
-  inherit buildInputs;
-  src = fetchurl {
-    inherit (s) url sha256;
-  };
+
   preBuild = ''
     export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${SDL.dev}/include/SDL -I${SDL_ttf}/include/SDL"
 
     sed -re 's@"(gfx|fonts|tracks)/@"'"$out"'/share/quantumminigolf/\1/@g' -i *.cpp
   '';
+
   installPhase = ''
     mkdir -p "$out"/{share/doc,share/quantumminigolf,bin}
     cp README THANKS LICENSE "$out/share/doc"
     cp -r fonts gfx tracks "$out/share/quantumminigolf"
     cp quantumminigolf "$out/bin"
   '';
-  meta = {
-    inherit (s) version;
+
+  meta = with lib; {
     description = "Quantum mechanics-based minigolf-like game";
-    license = lib.licenses.gpl2 ;
-    maintainers = [lib.maintainers.raskin];
-    platforms = lib.platforms.linux;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/games/quantumminigolf/default.upstream b/pkgs/games/quantumminigolf/default.upstream
deleted file mode 100644
index a994bb1a6cb..00000000000
--- a/pkgs/games/quantumminigolf/default.upstream
+++ /dev/null
@@ -1,4 +0,0 @@
-url https://sourceforge.net/projects/quantumminigolf/files/quantumminigolf/
-SF_version_dir
-version_link '[.]tar[.][^.]+/download$'
-SF_redirect
diff --git a/pkgs/games/shticker-book-unwritten/default.nix b/pkgs/games/shticker-book-unwritten/default.nix
index 7dbd5c257e8..aa02087a75a 100644
--- a/pkgs/games/shticker-book-unwritten/default.nix
+++ b/pkgs/games/shticker-book-unwritten/default.nix
@@ -1,4 +1,4 @@
-{ buildFHSUserEnv, callPackage, lib, stdenvNoCC }:
+{ buildFHSUserEnv, callPackage, lib }:
 let
 
   shticker-book-unwritten-unwrapped = callPackage ./unwrapped.nix { };
@@ -7,11 +7,12 @@ in buildFHSUserEnv {
   name = "shticker_book_unwritten";
   targetPkgs = pkgs: with pkgs; [
       alsa-lib
+      libglvnd
+      libpulseaudio
+      shticker-book-unwritten-unwrapped
       xorg.libX11
       xorg.libXcursor
       xorg.libXext
-      libglvnd
-      shticker-book-unwritten-unwrapped
   ];
   runScript = "shticker_book_unwritten";
 
diff --git a/pkgs/games/spring/default.nix b/pkgs/games/spring/default.nix
index b6e6505fd08..f8b05bd9709 100644
--- a/pkgs/games/spring/default.nix
+++ b/pkgs/games/spring/default.nix
@@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
     homepage = "https://springrts.com/";
     description = "A powerful real-time strategy (RTS) game engine";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ phreedom qknight domenkozar sorki ];
+    maintainers = with maintainers; [ qknight domenkozar sorki ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/games/spring/springlobby.nix b/pkgs/games/spring/springlobby.nix
index 009457a9dad..bf603e2f530 100644
--- a/pkgs/games/spring/springlobby.nix
+++ b/pkgs/games/spring/springlobby.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
     repositories.git = "git://github.com/springlobby/springlobby.git";
     description = "Cross-platform lobby client for the Spring RTS project";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ phreedom qknight domenkozar ];
+    maintainers = with maintainers; [ qknight domenkozar ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/games/starsector/default.nix b/pkgs/games/starsector/default.nix
index de1201e39c3..4aac0afb22b 100644
--- a/pkgs/games/starsector/default.nix
+++ b/pkgs/games/starsector/default.nix
@@ -12,11 +12,11 @@
 
 stdenv.mkDerivation rec {
   pname = "starsector";
-  version = "0.95a-RC15";
+  version = "0.95.1a-RC5";
 
   src = fetchzip {
     url = "https://s3.amazonaws.com/fractalsoftworks/starsector/starsector_linux-${version}.zip";
-    sha256 = "sha256-/5ij/079aOad7otXSFFcmVmiYQnMX/0RXGOr1j0rkGY=";
+    sha256 = "sha256-V8/WQPvPIrF3Tg7JVO+GfeYqWhkWWrnHSVcFXGQqDAA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/games/xboard/default.nix b/pkgs/games/xboard/default.nix
index 90c0f3707cd..663207bd23c 100644
--- a/pkgs/games/xboard/default.nix
+++ b/pkgs/games/xboard/default.nix
@@ -1,35 +1,57 @@
-{lib, stdenv, fetchurl, libX11, xorgproto, libXt, libXaw, libSM, libICE, libXmu
-, libXext, gnuchess, texinfo, libXpm, pkg-config, librsvg, cairo, pango
+{ lib
+, stdenv
+, fetchurl
+, libX11
+, xorgproto
+, libXt
+, libXaw
+, libSM
+, libICE
+, libXmu
+, libXext
+, gnuchess
+, texinfo
+, libXpm
+, pkg-config
+, librsvg
+, cairo
+, pango
 , gtk2
 }:
-let
-  s = # Generated upstream information
-  rec {
-    baseName="xboard";
-    version="4.9.1";
-    name="${baseName}-${version}";
-    hash="1mkh36xnnacnz9r00b5f9ld9309k32jv6mcavklbdnca8bl56bib";
-    url="https://ftp.gnu.org/gnu/xboard/xboard-4.9.1.tar.gz";
-    sha256="1mkh36xnnacnz9r00b5f9ld9309k32jv6mcavklbdnca8bl56bib";
+
+stdenv.mkDerivation rec {
+  pname = "xboard";
+  version = "4.9.1";
+
+  src = fetchurl {
+    url = "mirror://gnu/xboard/xboard-${version}.tar.gz";
+    sha256 = "sha256-Ky5T6EKK2bbo3IpVs6UYM4GRGk2uLABy+pYpa7sZcNY=";
   };
+
   buildInputs = [
-    libX11 xorgproto libXt libXaw libSM libICE libXmu
-    libXext gnuchess texinfo libXpm pkg-config librsvg
-    cairo pango gtk2
+    libX11
+    xorgproto
+    libXt
+    libXaw
+    libSM
+    libICE
+    libXmu
+    libXext
+    gnuchess
+    texinfo
+    libXpm
+    pkg-config
+    librsvg
+    cairo
+    pango
+    gtk2
   ];
-in
-stdenv.mkDerivation {
-  inherit (s) name version;
-  inherit buildInputs;
-  src = fetchurl {
-    inherit (s) url sha256;
-  };
-  meta = {
-    inherit (s) version;
+
+  meta = with lib; {
     description = "GUI for chess engines";
     homepage = "https://www.gnu.org/software/xboard/";
-    maintainers = [lib.maintainers.raskin];
-    platforms = lib.platforms.unix;
-    license = lib.licenses.gpl3Plus;
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.unix;
+    license = licenses.gpl3Plus;
   };
 }
diff --git a/pkgs/games/xboard/default.upstream b/pkgs/games/xboard/default.upstream
deleted file mode 100644
index 2e5af5d0872..00000000000
--- a/pkgs/games/xboard/default.upstream
+++ /dev/null
@@ -1 +0,0 @@
-url https://ftp.gnu.org/gnu/xboard/
diff --git a/pkgs/misc/arm-trusted-firmware/default.nix b/pkgs/misc/arm-trusted-firmware/default.nix
index 60ddd621a05..d079b3f61ca 100644
--- a/pkgs/misc/arm-trusted-firmware/default.nix
+++ b/pkgs/misc/arm-trusted-firmware/default.nix
@@ -6,7 +6,7 @@ let
             , platform ? null
             , extraMakeFlags ? []
             , extraMeta ? {}
-            , version ? "2.5"
+            , version ? "2.6"
             , ... } @ args:
            stdenv.mkDerivation ({
 
@@ -17,7 +17,7 @@ let
       owner = "ARM-software";
       repo = "arm-trusted-firmware";
       rev = "v${version}";
-      sha256 = "0w3blkqgmyb5bahlp04hmh8abrflbzy0qg83kmj1x9nv4mw66f3b";
+      sha256 = "sha256-qT9DdTvMcUrvRzgmVf2qmKB+Rb1WOB4p1rM+fsewGcg=";
     };
 
     depsBuildBuild = [ buildPackages.stdenv.cc ];
diff --git a/pkgs/misc/cups/drivers/mfcj470dwcupswrapper/default.nix b/pkgs/misc/cups/drivers/mfcj470dwcupswrapper/default.nix
index 2ff073591d0..dc54611d335 100644
--- a/pkgs/misc/cups/drivers/mfcj470dwcupswrapper/default.nix
+++ b/pkgs/misc/cups/drivers/mfcj470dwcupswrapper/default.nix
@@ -21,8 +21,7 @@ stdenv.mkDerivation rec {
     --replace /etc "$out/etc"
 
     substituteInPlace $WRAPPER \
-    --replace "\`cp " "\`cp -p " \
-    --replace "\`mv " "\`cp -p "
+    --replace "cp " "cp -p "
     '';
 
   buildPhase = ''
@@ -33,11 +32,18 @@ stdenv.mkDerivation rec {
 
   installPhase = ''
     TARGETFOLDER=$out/opt/brother/Printers/mfcj470dw/cupswrapper/
-    mkdir -p $out/opt/brother/Printers/mfcj470dw/cupswrapper/
+    PPDFOLDER=$out/share/cups/model/
+    FILTERFOLDER=$out/lib/cups/filter/
+
+    mkdir -p $TARGETFOLDER
+    mkdir -p $PPDFOLDER
+    mkdir -p $FILTERFOLDER
 
     cp brcupsconfpt1/brcupsconfpt1 $TARGETFOLDER
-    cp cupswrapper/cupswrappermfcj470dw $TARGETFOLDER/
-    cp PPD/brother_mfcj470dw_printer_en.ppd $TARGETFOLDER/
+    cp cupswrapper/cupswrappermfcj470dw $TARGETFOLDER
+    cp PPD/brother_mfcj470dw_printer_en.ppd $PPDFOLDER
+
+    ln -s ${mfcj470dwlpr}/lib/cups/filter/brother_lpdwrapper_mfcj470dw $FILTERFOLDER/
     '';
 
   cleanPhase = ''
diff --git a/pkgs/misc/cups/drivers/mfcl2740dwcupswrapper/default.nix b/pkgs/misc/cups/drivers/mfcl2740dwcupswrapper/default.nix
index a119c31517c..2cad0ceba55 100644
--- a/pkgs/misc/cups/drivers/mfcl2740dwcupswrapper/default.nix
+++ b/pkgs/misc/cups/drivers/mfcl2740dwcupswrapper/default.nix
@@ -40,6 +40,6 @@ stdenv.mkDerivation rec {
     homepage = "http://www.brother.com/";
     license = lib.licenses.gpl2;
     platforms = [ "x86_64-linux" "i686-linux" ];
-    maintainers = [ lib.maintainers.enzime ];
+    maintainers = [ lib.maintainers.Enzime ];
   };
 }
diff --git a/pkgs/misc/cups/drivers/mfcl2740dwlpr/default.nix b/pkgs/misc/cups/drivers/mfcl2740dwlpr/default.nix
index 38722a734a6..dc25dbb5a25 100644
--- a/pkgs/misc/cups/drivers/mfcl2740dwlpr/default.nix
+++ b/pkgs/misc/cups/drivers/mfcl2740dwlpr/default.nix
@@ -38,6 +38,6 @@ stdenv.mkDerivation rec {
     homepage = "http://www.brother.com/";
     license = lib.licenses.unfree;
     platforms = [ "x86_64-linux" "i686-linux" ];
-    maintainers = [ lib.maintainers.enzime ];
+    maintainers = [ lib.maintainers.Enzime ];
   };
 }
diff --git a/pkgs/misc/emulators/ares/default.nix b/pkgs/misc/emulators/ares/default.nix
new file mode 100644
index 00000000000..33a7858455d
--- /dev/null
+++ b/pkgs/misc/emulators/ares/default.nix
@@ -0,0 +1,84 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkg-config
+, alsa-lib
+, gtksourceview3
+, libXv
+, openal
+, libpulseaudio
+, libao
+, udev
+, SDL2
+}:
+
+stdenv.mkDerivation rec {
+  pname = "ares";
+  version = "126";
+
+  src = fetchFromGitHub {
+    owner = "ares-emulator";
+    repo = "ares";
+    rev = "v${version}";
+    sha256 = "1rj4vmz8lvpmfc6wni7222kagnw9f6jda9rcb6qky2kpizlp2d24";
+  };
+
+  parallel-rdp = fetchFromGitHub {
+    owner = "Themaister";
+    repo = "parallel-rdp-standalone";
+    rev = "0dcebe11ee79288441e40e145c8f340d81f52316";
+    sha256 = "1avp4wyfkhk5yfjqx5w3jbqghn2mq5la7k9248kjmnp9n9lip6w9";
+  };
+
+  patches = [
+    ./fix-ruby.patch
+  ];
+
+  enableParallelBuilding = true;
+  dontConfigure = true;
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    alsa-lib
+    gtksourceview3
+    libXv
+    openal
+    libpulseaudio
+    libao
+    udev
+    SDL2
+  ];
+
+  buildPhase = ''
+    runHook preBuild
+
+    rm -rf ares/n64/vulkan/parallel-rdp
+    ln -sf ${parallel-rdp} ares/n64/vulkan/parallel-rdp
+    make -C desktop-ui -j $NIX_BUILD_CORES openmp=true vulkan=true local=false hiro=gtk3
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/{bin,share/{applications,ares,pixmaps}}
+    cp desktop-ui/out/ares $out/bin
+    cp desktop-ui/resource/ares.desktop $out/share/applications
+    cp desktop-ui/resource/{ares{.ico,.png},font.png} $out/share/pixmaps
+    cp -r ares/{Shaders,System} $out/share/ares
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://ares.dev";
+    description = "Open-source multi-system emulator with a focus on accuracy and preservation";
+    license = licenses.isc;
+    maintainers = with maintainers; [ Madouura ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/misc/emulators/ares/fix-ruby.patch b/pkgs/misc/emulators/ares/fix-ruby.patch
new file mode 100644
index 00000000000..01bd57ebaad
--- /dev/null
+++ b/pkgs/misc/emulators/ares/fix-ruby.patch
@@ -0,0 +1,27 @@
+diff --git a/ruby/GNUmakefile b/ruby/GNUmakefile
+index e85a51701..7fca89e0f 100644
+--- a/ruby/GNUmakefile
++++ b/ruby/GNUmakefile
+@@ -8,19 +8,9 @@ ifeq ($(ruby),)
+     ruby += audio.openal
+     ruby += input.quartz #input.carbon
+   else ifeq ($(platform),linux)
+-    pkg_check1 = $(if $(shell test -e /usr/lib/lib$1.so && echo 1),$2)
+-    pkg_check2 = $(if $(shell test -e /usr/lib/$(shell uname -m)-linux-gnu/lib$1.so && echo 1),$2)
+-    pkg_check = $(call pkg_check1,$1,$2) $(call pkg_check2,$1,$2)
+-    ruby += video.glx video.glx2 video.xshm
+-    ruby += $(call pkg_check,Xv,video.xvideo)
+-    ruby += audio.oss audio.alsa
+-    ruby += $(call pkg_check,openal,audio.openal)
+-    ruby += $(call pkg_check,pulse,audio.pulseaudio)
+-    ruby += $(call pkg_check,pulse-simple,audio.pulseaudiosimple)
+-    ruby += $(call pkg_check,ao,audio.ao)
+-    ruby += input.xlib
+-    ruby += $(call pkg_check,udev,input.udev)
+-    ruby += $(call pkg_check,SDL2,input.sdl)
++    ruby += video.glx video.glx2 video.xshm video.xvideo
++    ruby += audio.oss audio.alsa audio.openal audio.pulseaudio audio.pulseaudiosimple audio.ao
++    ruby += input.xlib input.udev input.sdl
+   else ifeq ($(platform),bsd)
+     pkg_check = $(if $(shell test -e /usr/local/lib/lib$1.so && echo 1),$2)
+     ruby += video.glx video.glx2 video.xshm
diff --git a/pkgs/misc/emulators/duckstation/default.nix b/pkgs/misc/emulators/duckstation/default.nix
index 267da15400d..bbe4819246a 100644
--- a/pkgs/misc/emulators/duckstation/default.nix
+++ b/pkgs/misc/emulators/duckstation/default.nix
@@ -1,51 +1,59 @@
 { lib
 , mkDerivation
 , fetchFromGitHub
+, SDL2
 , cmake
+, curl
 , extra-cmake-modules
-, pkg-config
-, SDL2
-, qtbase
-, wrapQtAppsHook
-, qttools
-, ninja
 , gtk3
 , libevdev
-, curl
 , libpulseaudio
-, sndio
 , mesa
+, ninja
+, pkg-config
+, qtbase
+, qttools
+, sndio
 , vulkan-loader
 , wayland
+, wrapQtAppsHook
 }:
+
 mkDerivation rec {
   pname = "duckstation";
-  version = "unstable-2021-10-29";
+  version = "0.pre+date=2021-12-16";
 
   src = fetchFromGitHub {
     owner = "stenzek";
     repo = pname;
-    rev = "287b1e1abc98ef3f01d8530e0b428b58d8e77e96";
-    sha256 = "sha256-1s7oBdOOkK6a3DKCZ70dAilFzlzrURwhx+MRTmOPWJE=";
+    rev = "59cb7c03432f5f8d9f6283c71a34825d05e118c6";
+    sha256 = "sha256-vF3YEpicbwCtR6QW2huNk0+pJ7BBjn/x9/Ae1c00gN4=";
   };
 
-  nativeBuildInputs = [ cmake ninja pkg-config extra-cmake-modules wrapQtAppsHook qttools ];
+  nativeBuildInputs = [
+    cmake
+    extra-cmake-modules
+    ninja
+    pkg-config
+    qttools
+    wrapQtAppsHook
+  ];
 
   buildInputs = [
     SDL2
-    qtbase
+    curl
     gtk3
     libevdev
-    sndio
-    mesa
-    curl
     libpulseaudio
-    wayland
+    mesa
+    qtbase
+    sndio
     vulkan-loader
+    wayland
   ];
 
   cmakeFlags = [
-    "-DUSE_DRMKMS=ON" # Broken in combination with Wayland, https://github.com/stenzek/duckstation/issues/2630
+    "-DUSE_DRMKMS=ON"
     "-DUSE_WAYLAND=ON"
   ];
 
@@ -62,6 +70,7 @@ mkDerivation rec {
 
   installPhase = ''
     runHook preInstall
+
     mkdir -p $out/bin $out/share $out/share/pixmaps $out/share/applications
     rm bin/common-tests
 
@@ -70,6 +79,7 @@ mkDerivation rec {
 
     cp ../extras/icons/icon-256px.png $out/share/pixmaps/duckstation.png
     cp ../extras/linux-desktop-files/* $out/share/applications/
+
     runHook postInstall
   '';
 
@@ -84,14 +94,13 @@ mkDerivation rec {
     "--prefix LD_LIBRARY_PATH : ${vulkan-loader}/lib"
   ];
 
-  # TODO:
-  # - default sound backend (cubeb) does not work, but SDL does. Strangely, switching to cubeb while a game is running makes it work.
-
   meta = with lib; {
-    description = "PlayStation 1 emulator focusing on playability, speed and long-term maintainability";
     homepage = "https://github.com/stenzek/duckstation";
+    description = "Fast PlayStation 1 emulator for x86-64/AArch32/AArch64";
     license = licenses.gpl3Only;
+    maintainers = with maintainers; [ guibou AndersonTorres ];
     platforms = platforms.linux;
-    maintainers = [ maintainers.guibou ];
   };
 }
+# TODO: default sound backend (cubeb) does not work, but SDL does. Strangely,
+# switching to cubeb while a game is running makes it work.
diff --git a/pkgs/misc/emulators/mednaffe/default.nix b/pkgs/misc/emulators/mednaffe/default.nix
index e92836ae34d..c8363b8d604 100644
--- a/pkgs/misc/emulators/mednaffe/default.nix
+++ b/pkgs/misc/emulators/mednaffe/default.nix
@@ -4,8 +4,7 @@
 , autoreconfHook
 , pkg-config
 , mednafen
-, gtk2 ? null
-, gtk3 ? null
+, gtk3
 , wrapGAppsHook
 }:
 
@@ -21,16 +20,11 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config wrapGAppsHook ];
-  buildInputs = [ gtk2 gtk3 mednafen ];
-
-  configureFlags = [ (lib.enableFeature (gtk3 != null) "gtk3") ];
-
-  dontWrapGApps = true;
+  buildInputs = [ gtk3 mednafen ];
 
   postInstall = ''
     wrapProgram $out/bin/mednaffe \
-      --prefix PATH ':' "${mednafen}/bin" \
-      "''${gappsWrapperArgs[@]}"
+      --prefix PATH ':' "${mednafen}/bin"
    '';
 
   meta = with lib; {
diff --git a/pkgs/misc/emulators/mgba/default.nix b/pkgs/misc/emulators/mgba/default.nix
index a01e8a4a4da..f6b9c11ffe3 100644
--- a/pkgs/misc/emulators/mgba/default.nix
+++ b/pkgs/misc/emulators/mgba/default.nix
@@ -20,13 +20,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mgba";
-  version = "0.9.2";
+  version = "0.9.3";
 
   src = fetchFromGitHub {
     owner = "mgba-emu";
     repo = "mgba";
     rev = version;
-    hash = "sha256-A48PVUCekdRYel/BddPCeIcEDllOvcU7pk4i4P58dpo=";
+    hash = "sha256-0ZtoyyoD+YjplJlPFpZgIg5119j/6X8ZaSZP+UpX5K0=";
   };
 
   nativeBuildInputs = [
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
     pkg-config
     wrapQtAppsHook
   ];
+
   buildInputs = [
     SDL2
     libepoxy
@@ -78,10 +79,9 @@ stdenv.mkDerivation rec {
       runners, and a modern feature set for emulators that older emulators may
       not support.
     '';
-
     license = licenses.mpl20;
     maintainers = with maintainers; [ MP2E AndersonTorres ];
     platforms = platforms.linux;
   };
 }
-# TODO [ AndersonTorres ]: use desktopItem functions
+# TODO: use desktopItem functions
diff --git a/pkgs/misc/emulators/wine/sources.nix b/pkgs/misc/emulators/wine/sources.nix
index 167e881901b..41b019461a8 100644
--- a/pkgs/misc/emulators/wine/sources.nix
+++ b/pkgs/misc/emulators/wine/sources.nix
@@ -44,16 +44,16 @@ in rec {
 
   unstable = fetchurl rec {
     # NOTE: Don't forget to change the SHA256 for staging as well.
-    version = "6.22";
-    url = "https://dl.winehq.org/wine/source/6.x/wine-${version}.tar.xz";
-    sha256 = "sha256-gmBCoYGph5cyo9rLv4FnYF8wUpG/z6r16qDslSXXZO8=";
+    version = "7.0-rc2";
+    url = "https://dl.winehq.org/wine/source/7.0/wine-${version}.tar.xz";
+    sha256 = "sha256-D92OOa9fFdBd0wZbtRLz9oOhhJ3AtHcSZP0EaWyW7X0=";
     inherit (stable) gecko32 gecko64;
 
     ## see http://wiki.winehq.org/Mono
     mono = fetchurl rec {
-      version = "6.4.0";
+      version = "7.0.0";
       url = "https://dl.winehq.org/wine/wine-mono/${version}/wine-mono-${version}-x86.msi";
-      sha256 = "sha256-24uF87kQWQ9hrb+gAFqZXWE+KZocxz0AVT1w3IEBDjY=";
+      sha256 = "sha256-s35vyeWQ5YIkPcJdcqX8wzDDp5cN/cmKeoHSOEW6iQA=";
     };
 
     patches = [
@@ -65,7 +65,7 @@ in rec {
   staging = fetchFromGitHub rec {
     # https://github.com/wine-staging/wine-staging/releases
     inherit (unstable) version;
-    sha256 = "sha256-dGyaos6xITiAQdU65/PJQKRl5Rr5xBpgQhXii9iwb+E=";
+    sha256 = "sha256-UkwvKKRXyFjLfYbL8Ienpp5pxUzMQY1bEyAkoP7Xdz4=";
     owner = "wine-staging";
     repo = "wine-staging";
     rev = "v${version}";
diff --git a/pkgs/misc/logging/beats/6.x.nix b/pkgs/misc/logging/beats/6.x.nix
index 1808197498b..f5e31924791 100644
--- a/pkgs/misc/logging/beats/6.x.nix
+++ b/pkgs/misc/logging/beats/6.x.nix
@@ -8,7 +8,7 @@ let beat = package : extraArgs : buildGoPackage (rec {
         owner = "elastic";
         repo = "beats";
         rev = "v${version}";
-        sha256 = "0jkiz5dfdi9zsji04ipcmcj7pml9294v455y7s2c22k24gyzbaw8";
+        sha256 = "1vnw9clsc10cfpjf6vxvc6m507b2q17sgsl079iwqbp4v0286il7";
       };
 
       goPackagePath = "github.com/elastic/beats";
diff --git a/pkgs/misc/logging/beats/7.x.nix b/pkgs/misc/logging/beats/7.x.nix
index b8b82ed4b30..9f5e550d972 100644
--- a/pkgs/misc/logging/beats/7.x.nix
+++ b/pkgs/misc/logging/beats/7.x.nix
@@ -8,10 +8,10 @@ let beat = package: extraArgs: buildGoModule (rec {
     owner = "elastic";
     repo = "beats";
     rev = "v${version}";
-    sha256 = "0gjyzprgj9nskvlkm2bf125b7qn3608llz4kh1fyzsvrw6zb7sm8";
+    sha256 = "sha256-9Jl5Xo1iKdOY9ZE5JXKSL4ee+NdsN3KCY2dDYuxlzPI=";
   };
 
-  vendorSha256 = "04cwf96fh60ld3ndjzzssgirc9ssb53yq71j6ksx36m3y1x7fq9c";
+  vendorSha256 = "sha256-tyxyM7RsTHTVVxc9gagPsSvFRaWGTmobKzyv9RODXBk=";
 
   subPackages = [ package ];
 
@@ -24,7 +24,14 @@ let beat = package: extraArgs: buildGoModule (rec {
 } // extraArgs);
 in
 rec {
-  filebeat7 = beat "filebeat" { meta.description = "Lightweight shipper for logfiles"; };
+  filebeat7 = beat "filebeat" {
+    meta.description = "Lightweight shipper for logfiles";
+    buildInputs = [ systemd ];
+    tags = [ "withjournald" ];
+    postFixup = ''
+      patchelf --set-rpath ${lib.makeLibraryPath [ (lib.getLib systemd) ]} "$out/bin/filebeat"
+    '';
+  };
   heartbeat7 = beat "heartbeat" { meta.description = "Lightweight shipper for uptime monitoring"; };
   metricbeat7 = beat "metricbeat" {
     meta.description = "Lightweight shipper for metrics";
@@ -47,15 +54,4 @@ rec {
       PostgreSQL, Redis or Thrift and correlate the messages into transactions.
     '';
   };
-  journalbeat7 = beat "journalbeat" {
-    meta.description = ''
-      Journalbeat is an open source data collector to read and forward
-      journal entries from Linuxes with systemd.
-    '';
-    buildInputs = [ systemd.dev ];
-    postFixup = let libPath = lib.makeLibraryPath [ (lib.getLib systemd) ]; in
-      ''
-        patchelf --set-rpath ${libPath} "$out/bin/journalbeat"
-      '';
-  };
 }
diff --git a/pkgs/misc/openrussian-cli/default.nix b/pkgs/misc/openrussian-cli/default.nix
index ce9a9e49c4c..24c0b6bece7 100644
--- a/pkgs/misc/openrussian-cli/default.nix
+++ b/pkgs/misc/openrussian-cli/default.nix
@@ -25,12 +25,6 @@ stdenv.mkDerivation rec {
 
   dontConfigure = true;
 
-  # Disable check as it's too slow.
-  # doCheck = true;
-
-  #This is needed even though it's the default for some reason.
-  checkTarget = "check";
-
   # Can't use "make install" here
   installPhase = ''
     runHook preInstall
diff --git a/pkgs/misc/vim-plugins/deprecated.json b/pkgs/misc/vim-plugins/deprecated.json
index d25c35a9b21..b185aa7483d 100644
--- a/pkgs/misc/vim-plugins/deprecated.json
+++ b/pkgs/misc/vim-plugins/deprecated.json
@@ -1,6 +1,6 @@
 {
     "compe-tmux": {
-        "date": "2021-12-07",
+        "date": "2021-12-21",
         "new": "cmp-tmux"
     },
     "gist-vim": {
diff --git a/pkgs/misc/vim-plugins/generated.nix b/pkgs/misc/vim-plugins/generated.nix
index f609e3ea3f9..70fc75b3c51 100644
--- a/pkgs/misc/vim-plugins/generated.nix
+++ b/pkgs/misc/vim-plugins/generated.nix
@@ -41,12 +41,12 @@ final: prev:
 
   aerial-nvim = buildVimPluginFrom2Nix {
     pname = "aerial.nvim";
-    version = "2021-12-04";
+    version = "2021-12-17";
     src = fetchFromGitHub {
       owner = "stevearc";
       repo = "aerial.nvim";
-      rev = "24825561e22832d5a99365243d62a19b93892fb1";
-      sha256 = "0a6fh4m8zb303lmdvwlfxckzwynlr50g3x8driwshg7bkqbayx8m";
+      rev = "922155d70edf28249d9f8c6d1e4f8b53c4fe6396";
+      sha256 = "1q83dzhff1cylrgf42qml2mnh3lz3hlzvwcnna4xi2zbigqicc9i";
     };
     meta.homepage = "https://github.com/stevearc/aerial.nvim/";
   };
@@ -77,12 +77,12 @@ final: prev:
 
   ale = buildVimPluginFrom2Nix {
     pname = "ale";
-    version = "2021-12-09";
+    version = "2021-12-16";
     src = fetchFromGitHub {
       owner = "dense-analysis";
       repo = "ale";
-      rev = "b9744076a1603b37bc861e1aa885bbc052e0ed63";
-      sha256 = "1hwzsqva1hjsm21hf5ynd46gxbhgh327mynf5gcn178dbna0z8dz";
+      rev = "5b792c764196aeb45eb6025c6c1c9727084c2feb";
+      sha256 = "14pnk9g4wvwy450mlfd2g13fllhwmw6v869f3cxbpq18ddihhpi6";
     };
     meta.homepage = "https://github.com/dense-analysis/ale/";
   };
@@ -329,12 +329,12 @@ final: prev:
 
   better-escape-nvim = buildVimPluginFrom2Nix {
     pname = "better-escape.nvim";
-    version = "2021-10-18";
+    version = "2021-12-21";
     src = fetchFromGitHub {
       owner = "max397574";
       repo = "better-escape.nvim";
-      rev = "bbb8b0e3d1b1088a1db6b5ece776a41709929128";
-      sha256 = "1xiaywjy12rj25qdq5ys8ayrwlw9p9frpjzzagx1p6zgp03jpq63";
+      rev = "066a74d517a10e6ef08e5acb72d86eb3f00e6444";
+      sha256 = "0bkvkl2599jba5j3dgrigkfrn2p4rbilgpvgyp3zw9m06gqxsqin";
     };
     meta.homepage = "https://github.com/max397574/better-escape.nvim/";
   };
@@ -389,12 +389,12 @@ final: prev:
 
   bufdelete-nvim = buildVimPluginFrom2Nix {
     pname = "bufdelete.nvim";
-    version = "2021-09-27";
+    version = "2021-12-18";
     src = fetchFromGitHub {
       owner = "famiu";
       repo = "bufdelete.nvim";
-      rev = "456a08ff8dad82d52fdc439a44bfc8626f92cb0f";
-      sha256 = "1ybfnizdr14gixv19vqm8jh1lvw9aka26r7yizsfik3jc6rqrjnf";
+      rev = "1c59b784c53afaf7b9ca63186da99e5d46e3e429";
+      sha256 = "0zq261nv2jzhqqzaldr5l6dlriyy23zv8rsn3k7fg91q3vjawn4i";
     };
     meta.homepage = "https://github.com/famiu/bufdelete.nvim/";
   };
@@ -413,12 +413,12 @@ final: prev:
 
   bufferline-nvim = buildVimPluginFrom2Nix {
     pname = "bufferline.nvim";
-    version = "2021-11-15";
+    version = "2021-12-15";
     src = fetchFromGitHub {
       owner = "akinsho";
       repo = "bufferline.nvim";
-      rev = "463637a3ac86dcaacbcd47aa608f53aaad749696";
-      sha256 = "0nphn0ks8xqf0l8xklqn2fv2wvizzpg1x399x9yd916q4ck92588";
+      rev = "de66766716ab29414c7dd078d16b4773ab53a0bd";
+      sha256 = "0aixlx4yjl1mzj5rgsxxkvkrhivisp28ds5afbi8cizrg5r6l1cx";
     };
     meta.homepage = "https://github.com/akinsho/bufferline.nvim/";
   };
@@ -473,12 +473,12 @@ final: prev:
 
   chadtree = buildVimPluginFrom2Nix {
     pname = "chadtree";
-    version = "2021-12-10";
+    version = "2021-12-21";
     src = fetchFromGitHub {
       owner = "ms-jpq";
       repo = "chadtree";
-      rev = "1bc5452a7b5ed4b754f42c25490aecaf18071784";
-      sha256 = "1yqm47rl0a3mi5w3dbcm2pivfi99439zpdbgklhd4qdjl6w5z0ka";
+      rev = "52022913fe4446a2b649fb3ff9cfdf9def4b7b00";
+      sha256 = "1alr8xj01dqlvyjq0ay5c54w0lwgbqf32sd3d1qbjdf6fgi8x86y";
     };
     meta.homepage = "https://github.com/ms-jpq/chadtree/";
   };
@@ -581,12 +581,12 @@ final: prev:
 
   cmp-buffer = buildVimPluginFrom2Nix {
     pname = "cmp-buffer";
-    version = "2021-12-07";
+    version = "2021-12-19";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "cmp-buffer";
-      rev = "a0fe52489ff6e235d62407f8fa72aef80222040a";
-      sha256 = "0k2gsbnqp0ld6gr5xnb8qjdam2d34hp5xkzypsqvdhgxdgfip00m";
+      rev = "e26cdfb26f645cd4c6330b541b7e74ff69daa483";
+      sha256 = "0mssjxxdvnb798dpzax8abw04v1kd0gv5329pxcsck5vd76bhcv2";
     };
     meta.homepage = "https://github.com/hrsh7th/cmp-buffer/";
   };
@@ -713,12 +713,12 @@ final: prev:
 
   cmp-path = buildVimPluginFrom2Nix {
     pname = "cmp-path";
-    version = "2021-12-02";
+    version = "2021-12-20";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "cmp-path";
-      rev = "d83839ae510d18530c6d36b662a9e806d4dceb73";
-      sha256 = "0vpm0g65zziyv6cfagaknqs1ar5ldpjrkssqhy0yd3421708hq79";
+      rev = "81d88dfcafe26cc0cc856fc66f4677b20e6a9ffc";
+      sha256 = "1dq3wzvabxbvvb1gn25misxfrs5arv0087jfi54c2jlqv58g9gw7";
     };
     meta.homepage = "https://github.com/hrsh7th/cmp-path/";
   };
@@ -785,12 +785,12 @@ final: prev:
 
   cmp_luasnip = buildVimPluginFrom2Nix {
     pname = "cmp_luasnip";
-    version = "2021-12-04";
+    version = "2021-12-12";
     src = fetchFromGitHub {
       owner = "saadparwaiz1";
       repo = "cmp_luasnip";
-      rev = "75bf6434f175206cd219f9d2bbcae154a009346c";
-      sha256 = "0ax6wm6ymcw9ysy4c2vd9rdq91njr3bsg0xdd2l0c87951yawvlg";
+      rev = "7bd2612533db6863381193df83f9934b373b21e1";
+      sha256 = "1azlii2wvn4zsm6srac6db97jvwvpwi7vw3qb8aadg6aqdixwm4m";
     };
     meta.homepage = "https://github.com/saadparwaiz1/cmp_luasnip/";
   };
@@ -869,12 +869,12 @@ final: prev:
 
   coc-nvim = buildVimPluginFrom2Nix {
     pname = "coc.nvim";
-    version = "2021-09-05";
+    version = "2021-12-21";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc.nvim";
-      rev = "287c743c9f227fdf0e1db452bbb8ae3c5caffc36";
-      sha256 = "18qj2zi9p4zz8252m3kcbi6yx7v27sckr0b1bfymckijws9lrlf5";
+      rev = "37559aa90f9d149b8255dc06c28c8d7ba34b805e";
+      sha256 = "086hahg9xjddll7c2a1ydmhxn7gywx3v63bzfbi260mxi6rl4a2s";
     };
     meta.homepage = "https://github.com/neoclide/coc.nvim/";
   };
@@ -942,12 +942,12 @@ final: prev:
 
   comment-nvim = buildVimPluginFrom2Nix {
     pname = "comment.nvim";
-    version = "2021-12-08";
+    version = "2021-12-21";
     src = fetchFromGitHub {
       owner = "numtostr";
       repo = "comment.nvim";
-      rev = "58d489fb7f18c3652adf7e8e1fff9d3281a8fc6a";
-      sha256 = "0spgir5hdz404va258n07vkm1711kvvyfizqvygjywd0wz5awcsk";
+      rev = "9e80d5146013275277238c89bbcaf4164f4e5140";
+      sha256 = "1pxinsw4alrd299s3d7rsn9h0wppmgg36ywa891km27cjzplvrjr";
     };
     meta.homepage = "https://github.com/numtostr/comment.nvim/";
   };
@@ -1146,12 +1146,12 @@ final: prev:
 
   Coqtail = buildVimPluginFrom2Nix {
     pname = "Coqtail";
-    version = "2021-11-22";
+    version = "2021-12-16";
     src = fetchFromGitHub {
       owner = "whonore";
       repo = "Coqtail";
-      rev = "8fe30d125b7a6dfbff66714784f8996002a69fdf";
-      sha256 = "0j3116w6vrw6rzcw86jm3j6hp4pxq4hp3bjsqa7gb57qn7ly356m";
+      rev = "b1ec877f0840475ec5ef43647305f6fe77937357";
+      sha256 = "02hiislh66pwf2ifyaij4fdpgd0favm4iv9mnjbkcxz8acddx3xp";
     };
     meta.homepage = "https://github.com/whonore/Coqtail/";
   };
@@ -1182,12 +1182,12 @@ final: prev:
 
   crates-nvim = buildVimPluginFrom2Nix {
     pname = "crates.nvim";
-    version = "2021-12-04";
+    version = "2021-12-21";
     src = fetchFromGitHub {
       owner = "saecki";
       repo = "crates.nvim";
-      rev = "4800f99b81fa3a9b6b110d6f5c87aabf9d413a56";
-      sha256 = "12040gnk0zw7929vgb0sa3j8p51ir7gvbg7lmrm3qvykd6arsijg";
+      rev = "40f6c2abd2cc17c5579d56fecf62b461849d6302";
+      sha256 = "1nwzjbp8ld4gpjw4c94vq3hzck6lv3rb9cqyzqyvby98rvg3zra4";
     };
     meta.homepage = "https://github.com/saecki/crates.nvim/";
   };
@@ -1254,12 +1254,12 @@ final: prev:
 
   ctrlp-vim = buildVimPluginFrom2Nix {
     pname = "ctrlp.vim";
-    version = "2021-12-04";
+    version = "2021-12-11";
     src = fetchFromGitHub {
       owner = "ctrlpvim";
       repo = "ctrlp.vim";
-      rev = "5d798ad8ef9844e86dec7bb75c579674bf35cbd9";
-      sha256 = "1qjznw2jkw3s9a47q0y624v40h4cd0jzfxrckmy7kb0cgxpz9sa5";
+      rev = "fc153aabd54f9189e576c9bfb07bac09f36f2ccd";
+      sha256 = "115qj7zvs45agdvk7i429527hm9ygfgiwl523dy2f6aw508r2np5";
     };
     meta.homepage = "https://github.com/ctrlpvim/ctrlp.vim/";
   };
@@ -1314,12 +1314,12 @@ final: prev:
 
   defx-nvim = buildVimPluginFrom2Nix {
     pname = "defx.nvim";
-    version = "2021-12-06";
+    version = "2021-12-16";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "defx.nvim";
-      rev = "183e0d8a5f2a30edc4c46f06e1f1aae66b06e0fd";
-      sha256 = "03wh2kiilwc8iqn7nwm1hlwnp6skv7gklc6zacg3cjcv79hk4mya";
+      rev = "199459391e097d0ae88ea165fc847791589b7626";
+      sha256 = "0kwy91zk13j19py9cmr3rvza75s3ks33pf0hb3w77qvr9znrad51";
     };
     meta.homepage = "https://github.com/Shougo/defx.nvim/";
   };
@@ -1374,12 +1374,12 @@ final: prev:
 
   deol-nvim = buildVimPluginFrom2Nix {
     pname = "deol.nvim";
-    version = "2021-11-30";
+    version = "2021-12-12";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "deol.nvim";
-      rev = "e9db6ec1c53797eea0571f4374bee79bcca5db40";
-      sha256 = "0hlbr4dvh8irif6xa24dwj0l1wx8djfx72dq1wx4y16af4wgkkfv";
+      rev = "42a3f62153cb3f8ea5e7990d65b5f79b6b141b7e";
+      sha256 = "0lqikjj9260wikdm27r99rndrm4ffkfnymddbj3jzgnfh5gia4zd";
     };
     meta.homepage = "https://github.com/Shougo/deol.nvim/";
   };
@@ -1652,12 +1652,12 @@ final: prev:
 
   diffview-nvim = buildVimPluginFrom2Nix {
     pname = "diffview.nvim";
-    version = "2021-12-09";
+    version = "2021-12-17";
     src = fetchFromGitHub {
       owner = "sindrets";
       repo = "diffview.nvim";
-      rev = "a172dc5d1d788ff79f61c149543ea42e59717359";
-      sha256 = "02vqzbv4a12648z7rmlzn8bgl7z551zpgdv2pkknbrqkwpq4xz5x";
+      rev = "eef47458679a922ef101c1e4c07fb7b36d701385";
+      sha256 = "1k1zsxiq034x72w98117h5cakxxhxak7zq0gwlq812j4gqz8011h";
     };
     meta.homepage = "https://github.com/sindrets/diffview.nvim/";
   };
@@ -1724,12 +1724,12 @@ final: prev:
 
   edge = buildVimPluginFrom2Nix {
     pname = "edge";
-    version = "2021-11-30";
+    version = "2021-12-17";
     src = fetchFromGitHub {
       owner = "sainnhe";
       repo = "edge";
-      rev = "80be959e1840b0a49dda09775610cc3c366b8f3c";
-      sha256 = "136akfkblxc4myyb7l6gs8zszrgn2is8b0692v16xbql3i4d708n";
+      rev = "dfa64abfed4a5afde1ee11bfba2fbaaf7cc94fe1";
+      sha256 = "0ghp633jkcvx5r5d9s63ga5cfapsdx4c8x10gqp0ni9a5ldajbxr";
     };
     meta.homepage = "https://github.com/sainnhe/edge/";
   };
@@ -1749,12 +1749,12 @@ final: prev:
 
   editorconfig-nvim = buildVimPluginFrom2Nix {
     pname = "editorconfig.nvim";
-    version = "2021-11-24";
+    version = "2021-12-12";
     src = fetchFromGitHub {
       owner = "gpanders";
       repo = "editorconfig.nvim";
-      rev = "8ed706abab55f41658c109781185905acc8284fc";
-      sha256 = "162j0v2bkyxvb335pp40cdjvd1qghxdqs494dskdssxnj27y6c1s";
+      rev = "fd56950ca2427114f7d2e34aba312df3c2788cdb";
+      sha256 = "1hns2sahc6yy8k3fkbpyd94sm3ywfcz3hndmijz5b1qnr5xhcvf2";
     };
     meta.homepage = "https://github.com/gpanders/editorconfig.nvim/";
   };
@@ -1820,26 +1820,14 @@ final: prev:
     meta.homepage = "https://github.com/vim-scripts/emodeline/";
   };
 
-  ensime-vim = buildVimPluginFrom2Nix {
-    pname = "ensime-vim";
-    version = "2018-10-10";
-    src = fetchFromGitHub {
-      owner = "ensime";
-      repo = "ensime-vim";
-      rev = "caa734e84f002b25446c615706283a74edd4ecfe";
-      sha256 = "190qq8r2zs7xzmsag7ygk6dvpav3cnzlc40lc3fvwmkfwgci5zg0";
-    };
-    meta.homepage = "https://github.com/ensime/ensime-vim/";
-  };
-
   falcon = buildVimPluginFrom2Nix {
     pname = "falcon";
-    version = "2021-12-10";
+    version = "2021-12-19";
     src = fetchFromGitHub {
       owner = "fenetikm";
       repo = "falcon";
-      rev = "c5bda6fcee5960480ced77c6914c4e49a177016e";
-      sha256 = "1v4g8sbxplw9byfwblw5mpjlg0ipiz88d8n8k19yglbhcbgnf87a";
+      rev = "01cc57decb4086644b07ba100f22fed770c91428";
+      sha256 = "0qaj37z4npd3azj912330qq84srmgwacgs1ywyhzcpmfp96smkxk";
     };
     meta.homepage = "https://github.com/fenetikm/falcon/";
   };
@@ -1884,12 +1872,12 @@ final: prev:
     pname = "feline.nvim";
     version = "2021-10-15";
     src = fetchFromGitHub {
-      owner = "famiu";
+      owner = "feline-nvim";
       repo = "feline.nvim";
       rev = "4ef5e1516395eea731275e0f58b6bfba5c6ac9c1";
       sha256 = "12fci8gkbs3gf7cx68dpczkvsgy7bbax6f5fdl6fbjszpwr96lhw";
     };
-    meta.homepage = "https://github.com/famiu/feline.nvim/";
+    meta.homepage = "https://github.com/feline-nvim/feline.nvim/";
   };
 
   fennel-vim = buildVimPluginFrom2Nix {
@@ -2027,12 +2015,12 @@ final: prev:
 
   friendly-snippets = buildVimPluginFrom2Nix {
     pname = "friendly-snippets";
-    version = "2021-12-07";
+    version = "2021-12-17";
     src = fetchFromGitHub {
       owner = "rafamadriz";
       repo = "friendly-snippets";
-      rev = "4a9516c116f8d3a5766fcb8ac91b176979612d5d";
-      sha256 = "1ywlh5gqzlbqp387r7yggpbsa49qpa4sjjhhw2xnk06syp3lvdsg";
+      rev = "24481f883c980ed8c4c5c08bf8fcdd0fef57c16f";
+      sha256 = "1vdall0jf259icmy2qf8lg03xp48xddlcnr6amjzzi2rjw3migzh";
     };
     meta.homepage = "https://github.com/rafamadriz/friendly-snippets/";
   };
@@ -2231,12 +2219,12 @@ final: prev:
 
   git-worktree-nvim = buildVimPluginFrom2Nix {
     pname = "git-worktree.nvim";
-    version = "2021-11-30";
+    version = "2021-12-15";
     src = fetchFromGitHub {
       owner = "ThePrimeagen";
       repo = "git-worktree.nvim";
-      rev = "508a33853b9cc14c67cc042d2f4876d6db636b68";
-      sha256 = "0n1mn3fnmxddgj0j4041ia2fnnhsfknl4ks88llabg8k0kcxvzmi";
+      rev = "9eeb8eafbbbf159cfc45657af260f2789cd4a915";
+      sha256 = "16x7gp1y9s3mmpav21v21r7412fm3y8jhdwb0bb8n9nhaq1lpp53";
     };
     meta.homepage = "https://github.com/ThePrimeagen/git-worktree.nvim/";
   };
@@ -2267,12 +2255,12 @@ final: prev:
 
   gitsigns-nvim = buildVimPluginFrom2Nix {
     pname = "gitsigns.nvim";
-    version = "2021-12-10";
+    version = "2021-12-13";
     src = fetchFromGitHub {
       owner = "lewis6991";
       repo = "gitsigns.nvim";
-      rev = "aaf680472187798d5945e39179b540bd3bf80341";
-      sha256 = "0s339iqsl2fnsd1icgam41b0q409nya4sz2bf5nj469gsllcw3va";
+      rev = "a451f97117bd1ede582a6b9db61c387c48d880b6";
+      sha256 = "02hjrinkkhbyvsai18bcvp9v6i9jpllj2af5zi7gjwa8mahk8fak";
     };
     meta.homepage = "https://github.com/lewis6991/gitsigns.nvim/";
   };
@@ -2303,12 +2291,12 @@ final: prev:
 
   glow-nvim = buildVimPluginFrom2Nix {
     pname = "glow.nvim";
-    version = "2021-11-05";
+    version = "2021-12-14";
     src = fetchFromGitHub {
       owner = "ellisonleao";
       repo = "glow.nvim";
-      rev = "708d3f3aca0f4e6bc9a6b9188bc7b37a828b8fa7";
-      sha256 = "01a9n27h0gna73amhaxsyj607a948nvhjk5b55ramzz0iippvkp0";
+      rev = "d86281307ce2898d0fcd85ecb0865fc1dd2f2578";
+      sha256 = "03idi3x531q213m3172w405yq2gsif0a4dkxy8b0y3k9ipcpbczf";
     };
     meta.homepage = "https://github.com/ellisonleao/glow.nvim/";
   };
@@ -2339,12 +2327,12 @@ final: prev:
 
   goto-preview = buildVimPluginFrom2Nix {
     pname = "goto-preview";
-    version = "2021-11-29";
+    version = "2021-12-20";
     src = fetchFromGitHub {
       owner = "rmagatti";
       repo = "goto-preview";
-      rev = "308fb0fc4810ddd29209d2840cd92c68a5bd005e";
-      sha256 = "0nlww4f8v5w05qz44pw3hdapkfm22gp12733pp634r1hi6ga0kdj";
+      rev = "899a3649e51e7ce85673a884027d354c9a186bf8";
+      sha256 = "1jly0f1h5d5j4cvq3ljvvmxkykyrbgbwsq3w59bsf790l108j8y2";
     };
     meta.homepage = "https://github.com/rmagatti/goto-preview/";
   };
@@ -2375,12 +2363,12 @@ final: prev:
 
   gruvbox-community = buildVimPluginFrom2Nix {
     pname = "gruvbox-community";
-    version = "2021-10-10";
+    version = "2021-12-21";
     src = fetchFromGitHub {
       owner = "gruvbox-community";
       repo = "gruvbox";
-      rev = "961cc1850bd7d5657aa5789f81487d4d85747d2b";
-      sha256 = "1kvl264xmk6vk5kqp6d32lfxyb5rx320kc3fhmjzkyaa2p4k3j25";
+      rev = "1f8500f033813fcc6f41f0fe366e27faa163f2c2";
+      sha256 = "0vvmzwlq5in1pn73gzsn2bbj4x5n7w48a635yn2qpkslh4qhnq82";
     };
     meta.homepage = "https://github.com/gruvbox-community/gruvbox/";
   };
@@ -2399,24 +2387,24 @@ final: prev:
 
   gruvbox-material = buildVimPluginFrom2Nix {
     pname = "gruvbox-material";
-    version = "2021-11-30";
+    version = "2021-12-17";
     src = fetchFromGitHub {
       owner = "sainnhe";
       repo = "gruvbox-material";
-      rev = "fb27ccbd20cc1eda04e181f22c722977bdf9c934";
-      sha256 = "0hi99gjirhfcv3l8jay0ay3qk9w2mhv06y6afxvx0jk64wr8mr1q";
+      rev = "70bd495722e89d39ddb0d6dd353de119d415a9e4";
+      sha256 = "0jpcmb4kshjm866pmc8mzk6vccsy3rz691zsgm1f47wvbad24c17";
     };
     meta.homepage = "https://github.com/sainnhe/gruvbox-material/";
   };
 
   gruvbox-nvim = buildVimPluginFrom2Nix {
     pname = "gruvbox.nvim";
-    version = "2021-11-29";
+    version = "2021-12-17";
     src = fetchFromGitHub {
       owner = "ellisonleao";
       repo = "gruvbox.nvim";
-      rev = "8efd28ff057c24b8179e0ace9e12f57141a7f6b0";
-      sha256 = "0kqal8ddxam5hiczf6pakmx1dxk2zbf32l2hk27jcscj0q7npxc7";
+      rev = "b0a1c4bd71aa58e02809632fbc00fa6dce6d1213";
+      sha256 = "006r99is1x9k4z8y3gycrlczm964gl9gipri2qq7ihjnbsxbkjg3";
     };
     meta.homepage = "https://github.com/ellisonleao/gruvbox.nvim/";
   };
@@ -2808,12 +2796,12 @@ final: prev:
 
   jsonc-vim = buildVimPluginFrom2Nix {
     pname = "jsonc.vim";
-    version = "2020-11-24";
+    version = "2021-12-20";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "jsonc.vim";
-      rev = "63ffa5199a0e64d5ce0515256407f32dfbd67fc3";
-      sha256 = "047c2sc8q49axhi9416lzzpv5ykczc63dqd4xy56rfcfrvsi199j";
+      rev = "b87595ba7f3fa4bdcc8803a2ec72574719fc9fd6";
+      sha256 = "02bgqxi20lmq97s9nnsb1mmjp45fh5a9pbhbs6hl2zmb03spbvpi";
     };
     meta.homepage = "https://github.com/neoclide/jsonc.vim/";
   };
@@ -2928,24 +2916,24 @@ final: prev:
 
   LeaderF = buildVimPluginFrom2Nix {
     pname = "LeaderF";
-    version = "2021-12-06";
+    version = "2021-12-21";
     src = fetchFromGitHub {
       owner = "Yggdroot";
       repo = "LeaderF";
-      rev = "7a7a50d443f4eba81dec0e885f2662db5f492c3b";
-      sha256 = "05abpl8yy7s4xif5260cw50hgixn0w6j0ll3sjbfx0l3qjn58y8i";
+      rev = "5626a1f71bcc2dd7a74156f22c53734621c12433";
+      sha256 = "0xr76yf5wm4mggf5993m5sywim08dg3qsgx84xck5zcqiz84i3q9";
     };
     meta.homepage = "https://github.com/Yggdroot/LeaderF/";
   };
 
   lean-nvim = buildVimPluginFrom2Nix {
     pname = "lean.nvim";
-    version = "2021-12-07";
+    version = "2021-12-15";
     src = fetchFromGitHub {
       owner = "Julian";
       repo = "lean.nvim";
-      rev = "e554299cdaf90d26556b8d1deb1f51a97ed44dbb";
-      sha256 = "1mq2wsyy9csywr4xsbmhv1yajsvghngl0d20yix2633px4bqqxsi";
+      rev = "b74370552cfeb5da1bc3a2eef527cac33494c21e";
+      sha256 = "0i2warnzyvnjcgl9pcvnadpp53z83rvvxvqlbjgxdk3lrcqqffsl";
     };
     meta.homepage = "https://github.com/Julian/lean.nvim/";
   };
@@ -3084,12 +3072,12 @@ final: prev:
 
   lightspeed-nvim = buildVimPluginFrom2Nix {
     pname = "lightspeed.nvim";
-    version = "2021-12-08";
+    version = "2021-12-19";
     src = fetchFromGitHub {
       owner = "ggandor";
       repo = "lightspeed.nvim";
-      rev = "22eb8615f13e627f4b0440ebcd4381cab3df293e";
-      sha256 = "00iwf50dyi4f4rjl0dnyn0aakf92zzfwhx5vcr2jpyk685k01pfa";
+      rev = "b6ccf8207cc1384677a65a3527aed3020a08ec91";
+      sha256 = "10pxbhiy2mbz4cm0cxv6c6lnhad40rwdy7l9b354f86wlvvglbjn";
     };
     meta.homepage = "https://github.com/ggandor/lightspeed.nvim/";
   };
@@ -3132,12 +3120,12 @@ final: prev:
 
   lispdocs-nvim = buildVimPluginFrom2Nix {
     pname = "lispdocs.nvim";
-    version = "2021-10-19";
+    version = "2021-12-20";
     src = fetchFromGitHub {
       owner = "tami5";
       repo = "lispdocs.nvim";
-      rev = "44d8321843b499a966255270ac59be6148b74097";
-      sha256 = "0pqyfx4b1wsfw30b22ycfvfwbf8h6gw2s4f4hxkicj24ix9qwx6w";
+      rev = "0ba08a70c671570d6e55b76505bf3dbf52cdbe00";
+      sha256 = "1q0lfymk6808n0c1p73yng9nm9qzsycg4irsg2l8i3ijphgni5fj";
     };
     meta.homepage = "https://github.com/tami5/lispdocs.nvim/";
   };
@@ -3192,12 +3180,12 @@ final: prev:
 
   lsp_signature-nvim = buildVimPluginFrom2Nix {
     pname = "lsp_signature.nvim";
-    version = "2021-12-09";
+    version = "2021-12-21";
     src = fetchFromGitHub {
       owner = "ray-x";
       repo = "lsp_signature.nvim";
-      rev = "370002e470bd6e9c6f1c36bedf34637eb4fa9d4d";
-      sha256 = "00iwdsjys4zgkpxknd58igqh5yzggx850wv69gmpsaf54b88yfqj";
+      rev = "c8a2a4033cb1769c8f3f67bb3f2e0cb121a2b70a";
+      sha256 = "0md6jm42cr9vzkyiwrblyl92wyafl2i8cn3zxvyflhhm1rhkchgw";
     };
     meta.homepage = "https://github.com/ray-x/lsp_signature.nvim/";
   };
@@ -3240,24 +3228,24 @@ final: prev:
 
   lualine-nvim = buildVimPluginFrom2Nix {
     pname = "lualine.nvim";
-    version = "2021-12-10";
+    version = "2021-12-18";
     src = fetchFromGitHub {
       owner = "nvim-lualine";
       repo = "lualine.nvim";
-      rev = "3a17e2dbca8accbd3733b4fb076f01e00a456ba4";
-      sha256 = "1z2iwq8xzbqrvc14mq5kzgqm4xqcpca4xp9114p5pdhv155jyp70";
+      rev = "3a17c8f05aae1f148b8af595b46fea18b74d0573";
+      sha256 = "0yy3rp45y5h1zimpjjl2bzn859k8zb658zbr7mc5s1cf4w61pqjl";
     };
     meta.homepage = "https://github.com/nvim-lualine/lualine.nvim/";
   };
 
   luasnip = buildVimPluginFrom2Nix {
     pname = "luasnip";
-    version = "2021-12-09";
+    version = "2021-12-20";
     src = fetchFromGitHub {
       owner = "l3mon4d3";
       repo = "luasnip";
-      rev = "577045e9adf325e58f690f4d4b4a293f3dcec1b3";
-      sha256 = "130si2fm2sqwfs21jsb3d00w8bfbgf787p4wv90kkg07c23abqs7";
+      rev = "3e4da0cfea0a2f0b4749369bc7ed247c1412a854";
+      sha256 = "0x8br3dyslbm63krcbflrb8csvppxnwfdgi1407z9b5y38x5zypx";
     };
     meta.homepage = "https://github.com/l3mon4d3/luasnip/";
   };
@@ -3312,12 +3300,12 @@ final: prev:
 
   marks-nvim = buildVimPluginFrom2Nix {
     pname = "marks.nvim";
-    version = "2021-11-23";
+    version = "2021-12-14";
     src = fetchFromGitHub {
       owner = "chentau";
       repo = "marks.nvim";
-      rev = "555e8265989aa13249e76fd229226fb74101f905";
-      sha256 = "1m79bbdd9cnlc65bkr3qk8h717dhlr5mfvvrkwyh233rrz64mxl0";
+      rev = "54bc3f7bc4090457576dead244325b3e08c9f12f";
+      sha256 = "087yqgzcgjzj3z7j4f725q3qn4cn19w7p1ziirfz7ak1cx1br74g";
     };
     meta.homepage = "https://github.com/chentau/marks.nvim/";
   };
@@ -3372,12 +3360,12 @@ final: prev:
 
   minimap-vim = buildVimPluginFrom2Nix {
     pname = "minimap.vim";
-    version = "2021-12-09";
+    version = "2021-12-20";
     src = fetchFromGitHub {
       owner = "wfxr";
       repo = "minimap.vim";
-      rev = "9af90830a95b81ab7f9ef6927f586bfa322b7de8";
-      sha256 = "0b4gmigpjv61zzklpqdi2985ry38ip0rsjrlp5c1wnflj51iawv7";
+      rev = "9508d4bb96ec0ff951b41c9d49b5ac7414bb4e7a";
+      sha256 = "0y62ylqjv8q4hq6qf5cc82nzp0ncrpij8wnmnr9kppr5lmm6sf9p";
     };
     meta.homepage = "https://github.com/wfxr/minimap.vim/";
   };
@@ -3768,12 +3756,12 @@ final: prev:
 
   neorg = buildVimPluginFrom2Nix {
     pname = "neorg";
-    version = "2021-12-08";
+    version = "2021-12-21";
     src = fetchFromGitHub {
       owner = "nvim-neorg";
       repo = "neorg";
-      rev = "6581e22a9e3c17c48d02a8b3b600e29493a3ac02";
-      sha256 = "139lrcyzy1hr88qn2qhc99y6ky1k3jpv4wdc55y3phs8nvb3mrzc";
+      rev = "e35a2eee66a5906c778ad4f57f8a015bea1be977";
+      sha256 = "1vxdf8zp6kr1np4lg9khhfsjm7r1dyjggkbris3m7b2srmzpbxhz";
     };
     meta.homepage = "https://github.com/nvim-neorg/neorg/";
   };
@@ -3960,12 +3948,12 @@ final: prev:
 
   nightfox-nvim = buildVimPluginFrom2Nix {
     pname = "nightfox.nvim";
-    version = "2021-12-09";
+    version = "2021-12-17";
     src = fetchFromGitHub {
       owner = "EdenEast";
       repo = "nightfox.nvim";
-      rev = "8c60a6c7e79c06a8bfc1d498cbbe9672f1176189";
-      sha256 = "0r3ly7ml1l0c6vr3vjs8nxd138n4m351a9gv97ixbpwd3hx19lbr";
+      rev = "aaea945f89fdbee86de67339eaea05a16fa6912a";
+      sha256 = "0s37ygczbvcybqmfh1wq43q8v2pl1a42xasb7mzby94qbdjimq9f";
     };
     meta.homepage = "https://github.com/EdenEast/nightfox.nvim/";
   };
@@ -3984,12 +3972,12 @@ final: prev:
 
   nlua-nvim = buildVimPluginFrom2Nix {
     pname = "nlua.nvim";
-    version = "2021-06-15";
+    version = "2021-12-14";
     src = fetchFromGitHub {
       owner = "tjdevries";
       repo = "nlua.nvim";
-      rev = "a0722bd2f6fdf54f85aaf8dcd6a1032f64c83905";
-      sha256 = "1j3350hs5dhbksi7wbzaq5p2268544virj0hj41bs5iv078pjj45";
+      rev = "3603ee35ed928acd961847aeac30c92a3a048997";
+      sha256 = "0bdpplmgn0cvlgw37jn8qhl91qx4sjsyl88r1qzp6c0gjn0qfwi6";
     };
     meta.homepage = "https://github.com/tjdevries/nlua.nvim/";
   };
@@ -4056,24 +4044,24 @@ final: prev:
 
   nui-nvim = buildVimPluginFrom2Nix {
     pname = "nui.nvim";
-    version = "2021-12-10";
+    version = "2021-12-20";
     src = fetchFromGitHub {
       owner = "MunifTanjim";
       repo = "nui.nvim";
-      rev = "79d549bb8d8253da8c715b98dc1dc47cba057f46";
-      sha256 = "1zfgn2aav5df0j9f52c0pcm21j13hghiaw7yqb7byzyqjw7sp7p4";
+      rev = "5799279fc8da92b38291a0a42bdb64cd17c3b42f";
+      sha256 = "06rh2sk2md0kbjr9bdx6nndx181pvmxadfhkbd6dz6j8g0z9yp75";
     };
     meta.homepage = "https://github.com/MunifTanjim/nui.nvim/";
   };
 
   null-ls-nvim = buildVimPluginFrom2Nix {
     pname = "null-ls.nvim";
-    version = "2021-12-09";
+    version = "2021-12-21";
     src = fetchFromGitHub {
       owner = "jose-elias-alvarez";
       repo = "null-ls.nvim";
-      rev = "fb9e2a64ae8e43c2255025064cfee37dc7d6a752";
-      sha256 = "1m8rkay3vhm2gch1yrx6lsxsr3jqfnd7ycdy247g9743wnmqjvbs";
+      rev = "1c80377e0ab63f692540e75fba2a0c0c8d51de71";
+      sha256 = "1jmk8xhpiy9jn2qaplkw0ax6npgp45052rcyxz5cxz3b7zn04944";
     };
     meta.homepage = "https://github.com/jose-elias-alvarez/null-ls.nvim/";
   };
@@ -4116,12 +4104,12 @@ final: prev:
 
   nvim-autopairs = buildVimPluginFrom2Nix {
     pname = "nvim-autopairs";
-    version = "2021-12-08";
+    version = "2021-12-18";
     src = fetchFromGitHub {
       owner = "windwp";
       repo = "nvim-autopairs";
-      rev = "8b932b61803f1e71ffa2d61ee7826268b1710131";
-      sha256 = "082vfbnfpfp0dls5pg6fpzcg2syili3l0dwk50ng1337fj0z31rb";
+      rev = "94a4fa4b9ffec88ecd742fb077a66bf8cb9c4bf1";
+      sha256 = "138yqgwavi4j4pfz5xygkxpw81lh2qyl8d1mnnrk5igrfaz05hff";
     };
     meta.homepage = "https://github.com/windwp/nvim-autopairs/";
   };
@@ -4140,12 +4128,12 @@ final: prev:
 
   nvim-bqf = buildVimPluginFrom2Nix {
     pname = "nvim-bqf";
-    version = "2021-12-08";
+    version = "2021-12-21";
     src = fetchFromGitHub {
       owner = "kevinhwang91";
       repo = "nvim-bqf";
-      rev = "7bf95a470da0a522b99c2af83c9be1f20ccd97d7";
-      sha256 = "0c7mix97h2ciqqiiamx9022y3767k1nslx4q0cd3vk9rrsxv9bfb";
+      rev = "9e2c95ae530b71bd99cfeb88d108101b0db02a5c";
+      sha256 = "16wa7nmh7ahxllbffak0jshkkcx2n3lywgnx7vazwfjndfyw7vjz";
     };
     meta.homepage = "https://github.com/kevinhwang91/nvim-bqf/";
   };
@@ -4176,24 +4164,24 @@ final: prev:
 
   nvim-cmp = buildVimPluginFrom2Nix {
     pname = "nvim-cmp";
-    version = "2021-12-07";
+    version = "2021-12-21";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "nvim-cmp";
-      rev = "af07ff9b7973e95eff9e0275e13fe0350281208b";
-      sha256 = "08rdchki0g25l6myxql5im8k15vzjmqaws0hzjp56q45vvw2drzk";
+      rev = "4a19645374b3c10538bd363e92099d94221efaea";
+      sha256 = "1x9k8wx9y7kdqnf13c2vgzq5cksdgps2b531d28bxwa88z32yddc";
     };
     meta.homepage = "https://github.com/hrsh7th/nvim-cmp/";
   };
 
   nvim-code-action-menu = buildVimPluginFrom2Nix {
     pname = "nvim-code-action-menu";
-    version = "2021-11-16";
+    version = "2021-12-19";
     src = fetchFromGitHub {
       owner = "weilbith";
       repo = "nvim-code-action-menu";
-      rev = "d3d059082eff3eb081167f8a232b1bde54bb2bdb";
-      sha256 = "0d7imklcz39ir53nr5kr0s826yqrwhrmr5p9iabs07hshyq3khgx";
+      rev = "796d45f0ac89b9e5b6d41fb2c1fada25c1aba870";
+      sha256 = "1aadind1zxca5grs9jsawqsvkn9ijvxiqdw9v9jsq861xihsw9wl";
     };
     meta.homepage = "https://github.com/weilbith/nvim-code-action-menu/";
   };
@@ -4248,12 +4236,12 @@ final: prev:
 
   nvim-dap = buildVimPluginFrom2Nix {
     pname = "nvim-dap";
-    version = "2021-12-10";
+    version = "2021-12-12";
     src = fetchFromGitHub {
       owner = "mfussenegger";
       repo = "nvim-dap";
-      rev = "3b3027e0ca98775000e1ba727d8f292e821f9f03";
-      sha256 = "00df1ji4lyix0y1l22gilnqah6cq3vzizwqz3kp484irgn1hclxg";
+      rev = "9b8c27d6dcc21b69834fe9c2d344e49030783390";
+      sha256 = "1x4wl4594kfjvq8s6bb3s136z0a10jkak7jsb40vn55kpmpmrd7p";
     };
     meta.homepage = "https://github.com/mfussenegger/nvim-dap/";
   };
@@ -4294,6 +4282,30 @@ final: prev:
     meta.homepage = "https://github.com/allendang/nvim-expand-expr/";
   };
 
+  nvim-fzf = buildVimPluginFrom2Nix {
+    pname = "nvim-fzf";
+    version = "2021-10-25";
+    src = fetchFromGitHub {
+      owner = "vijaymarupudi";
+      repo = "nvim-fzf";
+      rev = "7cc3670b00f4d6e0968289f8b3bee7481cab3e73";
+      sha256 = "1flp9y54fr94gb96x8nrvw2sx61rwwi2rzmjmipa9crl0ckj14pb";
+    };
+    meta.homepage = "https://github.com/vijaymarupudi/nvim-fzf/";
+  };
+
+  nvim-fzf-commands = buildVimPluginFrom2Nix {
+    pname = "nvim-fzf-commands";
+    version = "2021-05-31";
+    src = fetchFromGitHub {
+      owner = "vijaymarupudi";
+      repo = "nvim-fzf-commands";
+      rev = "c6188c8618ca6b579af37cbc242414e1016bcd45";
+      sha256 = "0nn04gpz3n0jqb9kyxbmipkixzp1lk2f67knxqzzzlxm27m839fy";
+    };
+    meta.homepage = "https://github.com/vijaymarupudi/nvim-fzf-commands/";
+  };
+
   nvim-gdb = buildVimPluginFrom2Nix {
     pname = "nvim-gdb";
     version = "2021-12-09";
@@ -4332,12 +4344,12 @@ final: prev:
 
   nvim-hlslens = buildVimPluginFrom2Nix {
     pname = "nvim-hlslens";
-    version = "2021-12-10";
+    version = "2021-12-15";
     src = fetchFromGitHub {
       owner = "kevinhwang91";
       repo = "nvim-hlslens";
-      rev = "7722f58442be2df3d1bd200297ca0a32bbc99659";
-      sha256 = "09sjdmafh5zljw29g5mmdwdnpppv35a593yrds4jqw8a7p8j01v3";
+      rev = "8119b7b846a21e87b2d6c2168f57d79540b2d304";
+      sha256 = "0mjakd4d4w680qn82s59352w275k40nimxs2g2x0b0gzqlk3wlwg";
     };
     meta.homepage = "https://github.com/kevinhwang91/nvim-hlslens/";
   };
@@ -4356,12 +4368,12 @@ final: prev:
 
   nvim-jdtls = buildVimPluginFrom2Nix {
     pname = "nvim-jdtls";
-    version = "2021-12-07";
+    version = "2021-12-12";
     src = fetchFromGitHub {
       owner = "mfussenegger";
       repo = "nvim-jdtls";
-      rev = "f9aeca2acae29daf28038e091cbacb57dfbc7545";
-      sha256 = "1z8qaql6zg9dy82mfpdmss0qc7cmn0m8hib67ia99sc3dxvkam5x";
+      rev = "47d7a9caec7338a0d038031812c4734d0c306b59";
+      sha256 = "1867cara40sjz8ph32i3kl61s8z8fbj2nib73q1hppa3lxbff9k5";
     };
     meta.homepage = "https://github.com/mfussenegger/nvim-jdtls/";
   };
@@ -4392,36 +4404,36 @@ final: prev:
 
   nvim-lint = buildVimPluginFrom2Nix {
     pname = "nvim-lint";
-    version = "2021-12-04";
+    version = "2021-12-13";
     src = fetchFromGitHub {
       owner = "mfussenegger";
       repo = "nvim-lint";
-      rev = "fe160818db1b0a11302c8715f3a397ebfbd5e06a";
-      sha256 = "1fhnn8llbifd2fs67ggqx3ai8ks6v61j9a0xmf5v1fl1vdhvn11y";
+      rev = "4393540dbf7e881cb8fe572a8540284a6ae13201";
+      sha256 = "0zxvn6jcj3jh4znznvypgn2kngl7hj6qln6nv25x35gadrplvf2r";
     };
     meta.homepage = "https://github.com/mfussenegger/nvim-lint/";
   };
 
   nvim-lsp-ts-utils = buildVimPluginFrom2Nix {
     pname = "nvim-lsp-ts-utils";
-    version = "2021-12-05";
+    version = "2021-12-16";
     src = fetchFromGitHub {
       owner = "jose-elias-alvarez";
       repo = "nvim-lsp-ts-utils";
-      rev = "e02284705399b0c8ca7d5220ad5381baa124a0ce";
-      sha256 = "15f4458x8kw7irrj5ss5m0y6zjfw24428x3cxw2nm3yk0i8r7j73";
+      rev = "083c918f8a53c69361954e9d879113676e30c2c8";
+      sha256 = "1kpps6qpyrxnr497ynj89czgi5xh7pkblc6rggmg542zjmsnbr7z";
     };
     meta.homepage = "https://github.com/jose-elias-alvarez/nvim-lsp-ts-utils/";
   };
 
   nvim-lspconfig = buildVimPluginFrom2Nix {
     pname = "nvim-lspconfig";
-    version = "2021-12-10";
+    version = "2021-12-20";
     src = fetchFromGitHub {
       owner = "neovim";
       repo = "nvim-lspconfig";
-      rev = "9e18d297f8deb90a398460a62c7c551f9e0b834c";
-      sha256 = "08qahx7q494dnw82vp810i478idc7as7pyspr7f6rpxd7ljjc9w6";
+      rev = "c018b1e92e66b3429a2f167d59211846774f1e3b";
+      sha256 = "05zrcmya04261h4jszn5jqckxb5pm662hb3cqb4fn3nsh9kva5h9";
     };
     meta.homepage = "https://github.com/neovim/nvim-lspconfig/";
   };
@@ -4440,24 +4452,24 @@ final: prev:
 
   nvim-metals = buildVimPluginFrom2Nix {
     pname = "nvim-metals";
-    version = "2021-12-10";
+    version = "2021-12-17";
     src = fetchFromGitHub {
       owner = "scalameta";
       repo = "nvim-metals";
-      rev = "fb13e2b8276f2aaf9d48d588b13dfd43ae7028b4";
-      sha256 = "1v2kbwqr48fminb89jvpvjiaz37w4ki9cm3zpnw1q84z5k4gak1g";
+      rev = "2de6be8c334989e160540ab5fe35d4d34741ffed";
+      sha256 = "1vj2yxbavx30rqlx61vmz8dlr13as5jfv48098rlnch2wg1lh22b";
     };
     meta.homepage = "https://github.com/scalameta/nvim-metals/";
   };
 
   nvim-neoclip-lua = buildVimPluginFrom2Nix {
     pname = "nvim-neoclip.lua";
-    version = "2021-11-06";
+    version = "2021-12-20";
     src = fetchFromGitHub {
       owner = "AckslD";
       repo = "nvim-neoclip.lua";
-      rev = "cb4eff8bb7bb4bbb3d1629178a7dc62322773e05";
-      sha256 = "1szwg804gajq84icl39gsmbqkaxh3yffdb50wh0pcgj86b4w5hda";
+      rev = "4b9c7c54d3f132ea39cac7a31143bc730f962453";
+      sha256 = "07gwp7bcpnpkir8lmcsxscyv41dac9ph5fdavz1xq5xr686c0m6k";
     };
     meta.homepage = "https://github.com/AckslD/nvim-neoclip.lua/";
   };
@@ -4476,12 +4488,12 @@ final: prev:
 
   nvim-notify = buildVimPluginFrom2Nix {
     pname = "nvim-notify";
-    version = "2021-12-04";
+    version = "2021-12-16";
     src = fetchFromGitHub {
       owner = "rcarriga";
       repo = "nvim-notify";
-      rev = "ef027e34b618eac42fb0111c1db670ba01793039";
-      sha256 = "07fihx2arp0ivzkh4jqpyk0l6yr5pajnmb20a1mvbakh3j99471w";
+      rev = "243811198d3a937be03535bbe899446f235dda75";
+      sha256 = "1c1vlialppamm4r9n4g33s3cy18nyg4r43w8rkqk9b8kcip1x7j7";
     };
     meta.homepage = "https://github.com/rcarriga/nvim-notify/";
   };
@@ -4500,12 +4512,12 @@ final: prev:
 
   nvim-scrollview = buildVimPluginFrom2Nix {
     pname = "nvim-scrollview";
-    version = "2021-12-06";
+    version = "2021-12-16";
     src = fetchFromGitHub {
       owner = "dstein64";
       repo = "nvim-scrollview";
-      rev = "e2a9472b1f91360aea76e242b149dc7dc6b21329";
-      sha256 = "0brs6fz3mr39aby35xjpk14jr6fhj18j62i602piy41blcikm8z3";
+      rev = "5f35322499bc789b44d19f35ee4c23fbed5a3a89";
+      sha256 = "1nc3czp7grb9db52d2cvj81pqipk0x4918560v11b9g2kmvp34g2";
     };
     meta.homepage = "https://github.com/dstein64/nvim-scrollview/";
   };
@@ -4524,12 +4536,12 @@ final: prev:
 
   nvim-spectre = buildVimPluginFrom2Nix {
     pname = "nvim-spectre";
-    version = "2021-11-14";
+    version = "2021-12-11";
     src = fetchFromGitHub {
       owner = "nvim-pack";
       repo = "nvim-spectre";
-      rev = "b630e04fa176ffb4e8c188b651561973a5ace077";
-      sha256 = "1x0ndsgywkjb51y3zqhaxkrv9g7qjra6is3cxgiszl18d42g7nrd";
+      rev = "e2510d32dc80d6b5eea4df057762bbc6b2482e05";
+      sha256 = "1606wf7yhmhaksg45dz043apgxqhvkchsrj275qa6j80r31j7da6";
     };
     meta.homepage = "https://github.com/nvim-pack/nvim-spectre/";
   };
@@ -4548,24 +4560,24 @@ final: prev:
 
   nvim-tree-lua = buildVimPluginFrom2Nix {
     pname = "nvim-tree.lua";
-    version = "2021-12-05";
+    version = "2021-12-16";
     src = fetchFromGitHub {
       owner = "kyazdani42";
       repo = "nvim-tree.lua";
-      rev = "2e33b1654384921ec1cc9656a2018744f3f1ce81";
-      sha256 = "14bbcr49hxv4s211idiblc2ffg9a313gajsh5fr382xgvqk9jn2l";
+      rev = "0aec64d56c9448a039408228d410a01c41125d48";
+      sha256 = "0mj8d37i4g1wna1cjzzay2ck2nx9h9xw78vv5kv9mp1j3dmm9ayh";
     };
     meta.homepage = "https://github.com/kyazdani42/nvim-tree.lua/";
   };
 
   nvim-treesitter = buildVimPluginFrom2Nix {
     pname = "nvim-treesitter";
-    version = "2021-12-06";
+    version = "2021-12-21";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter";
-      rev = "1d66657e6d0f1f8f79ddc48ff1dac9788694cc2d";
-      sha256 = "1xv3x2w93xiaq8pxq0nn4l3rn3lvflrn17mzb567666zl3v9d8h3";
+      rev = "6c5f4b1b49aa2e6f948fb58fb9df82954bebf488";
+      sha256 = "1jaljk7rl7rrn1n61yvi1spb520fmpb8ihjr2mhcvprjhc3n84kq";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter/";
   };
@@ -4596,36 +4608,36 @@ final: prev:
 
   nvim-treesitter-refactor = buildVimPluginFrom2Nix {
     pname = "nvim-treesitter-refactor";
-    version = "2021-07-04";
+    version = "2021-12-18";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter-refactor";
-      rev = "505e58a8b04596a073b326157490706ee63c3b81";
-      sha256 = "0z42rpnig6iq73d3mjfgadvqa03k02f4c89j5dp9dhpnrjja8nha";
+      rev = "a21ed4d294d2da5472ce5b70385d7871c4518a1e";
+      sha256 = "1hhl6gqq56q9lfgy581cwbhyiyqji4adbmhxmhwn7d5x0lv6bv24";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter-refactor/";
   };
 
   nvim-treesitter-textobjects = buildVimPluginFrom2Nix {
     pname = "nvim-treesitter-textobjects";
-    version = "2021-12-07";
+    version = "2021-12-21";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter-textobjects";
-      rev = "11fdf5865290d7f5bec253790a1fe235cccb9f75";
-      sha256 = "0si26vx85v76pmflxz93zj675p2ywwp38xh9h4nhkky474vgifmd";
+      rev = "f51c3feb5abe1dea556c9076b8a8928d3bf56790";
+      sha256 = "1m0gpnhd8pc1np5acs2vvd3my5s7pgvx3bvlqr8yip7aibl4ls0g";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter-textobjects/";
   };
 
   nvim-ts-context-commentstring = buildVimPluginFrom2Nix {
     pname = "nvim-ts-context-commentstring";
-    version = "2021-11-20";
+    version = "2021-12-13";
     src = fetchFromGitHub {
       owner = "joosepalviste";
       repo = "nvim-ts-context-commentstring";
-      rev = "9f5e422e1030e7073e593ad32c5354aa0bcb0176";
-      sha256 = "1a8507mxxpc22hqp34bcqxqbjj6y2i22y7nrbkajn249pviwbpam";
+      rev = "097df33c9ef5bbd3828105e4bee99965b758dc3f";
+      sha256 = "1q6n98kfhi4ra2rgijv32z0m63r6waih8j8zdy0g4ffk4ycqxsf0";
     };
     meta.homepage = "https://github.com/joosepalviste/nvim-ts-context-commentstring/";
   };
@@ -4644,12 +4656,12 @@ final: prev:
 
   nvim-web-devicons = buildVimPluginFrom2Nix {
     pname = "nvim-web-devicons";
-    version = "2021-12-06";
+    version = "2021-12-20";
     src = fetchFromGitHub {
       owner = "kyazdani42";
       repo = "nvim-web-devicons";
-      rev = "344331467509802e1af200f08ec3da278be5cbba";
-      sha256 = "13lxngcsi4crkjajgjf47nwgf7s6makqqahw1m95ygs2wqc28rkf";
+      rev = "ac71ca88b1136e1ecb2aefef4948130f31aa40d1";
+      sha256 = "1fgl4cyichzlrl6dc2mp362kncc4aiy10svzzcqad168aj2x8rhd";
     };
     meta.homepage = "https://github.com/kyazdani42/nvim-web-devicons/";
   };
@@ -4800,24 +4812,24 @@ final: prev:
 
   orgmode = buildVimPluginFrom2Nix {
     pname = "orgmode";
-    version = "2021-12-10";
+    version = "2021-12-18";
     src = fetchFromGitHub {
       owner = "nvim-orgmode";
       repo = "orgmode";
-      rev = "80f07229fddf34e477d9038d13d00bd4055c2161";
-      sha256 = "1wv6w3dqga4gs8sng87nvwwd215m463gyk065pasab9hjs2k8p82";
+      rev = "8e3edfa5066db396a2f51f2e90f56c5914b00840";
+      sha256 = "07l5x98fxzccapmi9zca332h76gj8x4g0nkq6bb8zzz05ylczfwy";
     };
     meta.homepage = "https://github.com/nvim-orgmode/orgmode/";
   };
 
   package-info-nvim = buildVimPluginFrom2Nix {
     pname = "package-info.nvim";
-    version = "2021-11-24";
+    version = "2021-12-11";
     src = fetchFromGitHub {
       owner = "vuki656";
       repo = "package-info.nvim";
-      rev = "0aa492654defa71134b67ce671fafdb7f6dbd866";
-      sha256 = "14sa6p6kr61rfcqcpavama1z0312rsqmh1yr4c8z7cfv2shi1wb3";
+      rev = "fad6afade384ccadcfd0e08f07a022eee6eaae28";
+      sha256 = "0nk3v1m0asn0z5gxszsgi6mv81vvd301pfcsqklkm23cryl4zwd4";
     };
     meta.homepage = "https://github.com/vuki656/package-info.nvim/";
   };
@@ -4894,6 +4906,18 @@ final: prev:
     meta.homepage = "https://github.com/andsild/peskcolor.vim/";
   };
 
+  pgsql-vim = buildVimPluginFrom2Nix {
+    pname = "pgsql.vim";
+    version = "2021-12-03";
+    src = fetchFromGitHub {
+      owner = "lifepillar";
+      repo = "pgsql.vim";
+      rev = "b4518baca45a556ab8b1ad6daee78f8d4744f635";
+      sha256 = "0jzzbsg73p6p0fjivix5bn8h6n1rz759bq8z1ilj2m6wz14c1ilm";
+    };
+    meta.homepage = "https://github.com/lifepillar/pgsql.vim/";
+  };
+
   pig-vim = buildVimPluginFrom2Nix {
     pname = "pig.vim";
     version = "2017-06-08";
@@ -4932,12 +4956,12 @@ final: prev:
 
   plenary-nvim = buildVimPluginFrom2Nix {
     pname = "plenary.nvim";
-    version = "2021-12-07";
+    version = "2021-12-15";
     src = fetchFromGitHub {
       owner = "nvim-lua";
       repo = "plenary.nvim";
-      rev = "e6267f79481064eee53950571f53cbaafb08417d";
-      sha256 = "027c7qckg231gia5wmjk6p4ymvbfrsgws4rj4r2yp0vqq3i2xjvk";
+      rev = "a672e11c816d4a91ef01253ba1a2567d20e08e55";
+      sha256 = "1kqzspclkx7mpcpm2xb0fvzhv02wj7vms7xh9fjh64hvg2r2q21v";
     };
     meta.homepage = "https://github.com/nvim-lua/plenary.nvim/";
   };
@@ -5174,16 +5198,28 @@ final: prev:
 
   ranger-vim = buildVimPluginFrom2Nix {
     pname = "ranger.vim";
-    version = "2021-04-25";
+    version = "2021-12-13";
     src = fetchFromGitHub {
       owner = "rafaqz";
       repo = "ranger.vim";
-      rev = "aa2394bd429e98303f2273011f0429ce92105960";
-      sha256 = "0kfhzamryaxhzrwg2rqipcbrnfxnjrfk2bk4f0z27a2hk6c0r7b9";
+      rev = "527c7c5371667f7848da91c2abc75c3998cbf1a0";
+      sha256 = "1rfzv6lxbhfk4xwdmhpc9b0xamfa2lrzc1xi630v1hakscjdjcm1";
     };
     meta.homepage = "https://github.com/rafaqz/ranger.vim/";
   };
 
+  rcshell-vim = buildVimPluginFrom2Nix {
+    pname = "rcshell.vim";
+    version = "2014-12-29";
+    src = fetchFromGitHub {
+      owner = "vim-scripts";
+      repo = "rcshell.vim";
+      rev = "6b307c6e6e6948fbb27146b0f41b5fb2ddf8e1a8";
+      sha256 = "0dj6gjq213ljshnncal3ywzv8ply2lzqmvpzaf7vdsd6r6vss3ch";
+    };
+    meta.homepage = "https://github.com/vim-scripts/rcshell.vim/";
+  };
+
   readline-vim = buildVimPluginFrom2Nix {
     pname = "readline.vim";
     version = "2019-12-28";
@@ -5210,24 +5246,24 @@ final: prev:
 
   refactoring-nvim = buildVimPluginFrom2Nix {
     pname = "refactoring.nvim";
-    version = "2021-12-08";
+    version = "2021-12-21";
     src = fetchFromGitHub {
       owner = "theprimeagen";
       repo = "refactoring.nvim";
-      rev = "315113eddc4dbbe32cdeeb9c7401bd6c9f092f92";
-      sha256 = "046wdarb5xdjjfrpv7b7618cnxsl9nmnbshz4m7m9yhp24kngf7g";
+      rev = "22a46b0e27e62cad61e1dabb106197575470ef85";
+      sha256 = "0c1ihgwf1kvcsq20k5y6nk2mxs99c4la0l5b06pi5k316zkd45gc";
     };
     meta.homepage = "https://github.com/theprimeagen/refactoring.nvim/";
   };
 
   registers-nvim = buildVimPluginFrom2Nix {
     pname = "registers.nvim";
-    version = "2021-10-22";
+    version = "2021-12-19";
     src = fetchFromGitHub {
       owner = "tversteeg";
       repo = "registers.nvim";
-      rev = "4d1f3525c6f9be4297e99e6aed515af3677d7241";
-      sha256 = "1lw8nwa8z8d8r1i9wg0mm4qdfv17ijzw7iadg2n980dkl6clh1ag";
+      rev = "fc1778fd8d847c2510763e69d5631fac382fd31d";
+      sha256 = "11mk4ypwcy7r026nbb9b0pdzj7bc4z2saysv9mv4xbramgdzbnm6";
     };
     meta.homepage = "https://github.com/tversteeg/registers.nvim/";
   };
@@ -5270,12 +5306,12 @@ final: prev:
 
   rnvimr = buildVimPluginFrom2Nix {
     pname = "rnvimr";
-    version = "2021-12-03";
+    version = "2021-12-21";
     src = fetchFromGitHub {
       owner = "kevinhwang91";
       repo = "rnvimr";
-      rev = "3d02dc4a4b78a771a944e62af70f9931e9412763";
-      sha256 = "0650sx14mp05lcxh5saa906nf81xl2ch5ihl8sscy8niadykj47b";
+      rev = "f1f16e9b6e2f702990cc1eebbf6417eb451e417e";
+      sha256 = "1bvdp6h81i2mfiyyk2yf2qr9d1aln37kvb9vjk0bfbhiilndfx9r";
     };
     meta.homepage = "https://github.com/kevinhwang91/rnvimr/";
   };
@@ -5378,12 +5414,12 @@ final: prev:
 
   SchemaStore-nvim = buildVimPluginFrom2Nix {
     pname = "SchemaStore.nvim";
-    version = "2021-12-09";
+    version = "2021-12-20";
     src = fetchFromGitHub {
       owner = "b0o";
       repo = "SchemaStore.nvim";
-      rev = "0818b348f03c2bd02ae3759d57cef22d787554e5";
-      sha256 = "0dsv4sarfp05xvixxbsgl1jq9n0arb5fxlp5gryfv5046yf24g7h";
+      rev = "ad1586c3b9253c42275085161f4d075dd4d18715";
+      sha256 = "0873y2n8wh66f138cq5cba1krcrij03w5mn1qzabb84yjqxk4x83";
     };
     meta.homepage = "https://github.com/b0o/SchemaStore.nvim/";
   };
@@ -5595,12 +5631,12 @@ final: prev:
 
   sonokai = buildVimPluginFrom2Nix {
     pname = "sonokai";
-    version = "2021-11-30";
+    version = "2021-12-17";
     src = fetchFromGitHub {
       owner = "sainnhe";
       repo = "sonokai";
-      rev = "563280b529405e86464ce0554872f7dc6b6c3f92";
-      sha256 = "0syhr5a8jmzv1bv9zpmbqzblpgva6cxgnxkifpd9xvsy63dd0q96";
+      rev = "5488b3881c3348689a6ef842653b9061a503a36f";
+      sha256 = "09l4n0cna4nz03andwmwvz0316vqzkngsk8qhxbm7zn0xra1y9cl";
     };
     meta.homepage = "https://github.com/sainnhe/sonokai/";
   };
@@ -5716,12 +5752,12 @@ final: prev:
 
   sqlite-lua = buildVimPluginFrom2Nix {
     pname = "sqlite.lua";
-    version = "2021-09-29";
+    version = "2021-12-20";
     src = fetchFromGitHub {
       owner = "tami5";
       repo = "sqlite.lua";
-      rev = "b86857771be23e8a64562518a889b9b568571d79";
-      sha256 = "0wx96x4bjg5mrz28z0hilhqgdzj3jvjwaxirfcd7vdwd4g6bxpml";
+      rev = "3855b4ae6f20b73f8694f48b82ccc73a99d45b39";
+      sha256 = "1ymzmlkh0hhhvsgbzim91yr9ga8j1dgmfi2mmwpnhvvmf2ycr5xz";
     };
     meta.homepage = "https://github.com/tami5/sqlite.lua/";
   };
@@ -5752,12 +5788,12 @@ final: prev:
 
   stabilize-nvim = buildVimPluginFrom2Nix {
     pname = "stabilize.nvim";
-    version = "2021-12-03";
+    version = "2021-12-20";
     src = fetchFromGitHub {
       owner = "luukvbaal";
       repo = "stabilize.nvim";
-      rev = "191d102fd48d9067c5be267b72da4ac28051dc12";
-      sha256 = "11vz8dwpr32yd3bmkqdhlxk4dy6k5vci7phmfh57ag8vh902fpza";
+      rev = "e97de689cbebb5a58603905db7f09107d86a147b";
+      sha256 = "15d2y9c928n8khpqr1p7y7g3yi10g2kgw8m89h1liarhfqlk2s8k";
     };
     meta.homepage = "https://github.com/luukvbaal/stabilize.nvim/";
   };
@@ -5872,12 +5908,12 @@ final: prev:
 
   tabline-nvim = buildVimPluginFrom2Nix {
     pname = "tabline.nvim";
-    version = "2021-11-10";
+    version = "2021-12-15";
     src = fetchFromGitHub {
       owner = "kdheepak";
       repo = "tabline.nvim";
-      rev = "3bac71db4e99b5af9a5fbfd1d134031aea4f01ab";
-      sha256 = "1fzmcfvp7bxskmb18885pmnyyfcir7z20zgz7ffw98rq97rdf02r";
+      rev = "08022d401cb158ff949c3e00ce46c7a9d7d11357";
+      sha256 = "0c9hqi5a6xbbb4xk8smaw019g484wkigswm05ayfnk7xb0bg7drl";
     };
     meta.homepage = "https://github.com/kdheepak/tabline.nvim/";
   };
@@ -6029,12 +6065,12 @@ final: prev:
 
   telescope-coc-nvim = buildVimPluginFrom2Nix {
     pname = "telescope-coc.nvim";
-    version = "2021-10-13";
+    version = "2021-12-15";
     src = fetchFromGitHub {
       owner = "fannheyward";
       repo = "telescope-coc.nvim";
-      rev = "fc72e26b7a47e99e8ccdc21d76fd2ebc18fd34e2";
-      sha256 = "0f41f85m8s8smbqin9cflzkvd9cyknjps8hix566cfvx3qsx0ib7";
+      rev = "3f34f0c3ce29b0d738924f9bd15a68333dd35d45";
+      sha256 = "0hsm2zrnh0d7682jvd16lp7864w6mb76kxc8i0hzxk2m34qxpwx7";
     };
     meta.homepage = "https://github.com/fannheyward/telescope-coc.nvim/";
   };
@@ -6162,12 +6198,12 @@ final: prev:
 
   telescope-nvim = buildVimPluginFrom2Nix {
     pname = "telescope.nvim";
-    version = "2021-12-10";
+    version = "2021-12-19";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope.nvim";
-      rev = "5f37fbfa837dfee7ecd30f388b271f4a71c0a9e0";
-      sha256 = "06n99ca448vm3v2cghr6v65s1s9qhg8k28m6pa3k9nplbhxjd8r1";
+      rev = "9aaaa0c5f3eb665b51bbcafda084de4b0952fef0";
+      sha256 = "12gl563vc70grq0h583cnfnjsnj121s0a00ddgjxncrg69mssy0x";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope.nvim/";
   };
@@ -6244,6 +6280,18 @@ final: prev:
     meta.homepage = "https://github.com/itchyny/thumbnail.vim/";
   };
 
+  timestamp-vim = buildVimPluginFrom2Nix {
+    pname = "timestamp.vim";
+    version = "2010-11-06";
+    src = fetchFromGitHub {
+      owner = "vim-scripts";
+      repo = "timestamp.vim";
+      rev = "0437f9bddd4e699e8e9de176daacec234d42b56c";
+      sha256 = "1dvssbmz7xm4p83jmsqalkshbrk67cacsjvxjpnlw870zf2hqc8p";
+    };
+    meta.homepage = "https://github.com/vim-scripts/timestamp.vim/";
+  };
+
   tlib_vim = buildVimPluginFrom2Nix {
     pname = "tlib_vim";
     version = "2021-07-17";
@@ -6282,12 +6330,12 @@ final: prev:
 
   todo-comments-nvim = buildVimPluginFrom2Nix {
     pname = "todo-comments.nvim";
-    version = "2021-12-04";
+    version = "2021-12-11";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "todo-comments.nvim";
-      rev = "6570fd271d17fec1966522f3a19cc6f4c88824c4";
-      sha256 = "0bn5fkj0m0nxypkn4yyz828x9p926n24r2pw6yffafiwsh66pi6n";
+      rev = "672cd22bd15928434374ac52d0cf38dd250231df";
+      sha256 = "10cydwr1gwjm8d2isij3nshyicxdjsaf47ijbmfrzl64rscmm9yp";
     };
     meta.homepage = "https://github.com/folke/todo-comments.nvim/";
   };
@@ -6319,12 +6367,12 @@ final: prev:
 
   tokyonight-nvim = buildVimPluginFrom2Nix {
     pname = "tokyonight.nvim";
-    version = "2021-12-04";
+    version = "2021-12-17";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "tokyonight.nvim";
-      rev = "b3a829d2ba6344b5364fda71b5b7501f707d1bdf";
-      sha256 = "0n8ix7sh092fw0fw49sfli91ma51acxp4kk908bxyv2kbc82ckcz";
+      rev = "d5619991367bda99e0a0f44fd07e7925c774c9ca";
+      sha256 = "18qxvg2chwjf6rz3v0lbj3p4cbfzys3c72pmbm3iss9qfkk40661";
     };
     meta.homepage = "https://github.com/folke/tokyonight.nvim/";
   };
@@ -6367,12 +6415,12 @@ final: prev:
 
   trouble-nvim = buildVimPluginFrom2Nix {
     pname = "trouble.nvim";
-    version = "2021-12-10";
+    version = "2021-12-15";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "trouble.nvim";
-      rev = "b5353ddcd09bd7e93d6f934149d25792d455a8fb";
-      sha256 = "1m4hpsljykyvr943cx4gwyph6w12whhvgk33pvbpy6saqy1zmi2l";
+      rev = "aae12e7b23b3a2b8337ec5b1d6b7b4317aa3929b";
+      sha256 = "10wcpyb5ag72063b16n8jibxz5f0q6c5vvjpnxq9gv320b0sd07a";
     };
     meta.homepage = "https://github.com/folke/trouble.nvim/";
   };
@@ -6547,12 +6595,12 @@ final: prev:
 
   vifm-vim = buildVimPluginFrom2Nix {
     pname = "vifm.vim";
-    version = "2021-12-01";
+    version = "2021-12-16";
     src = fetchFromGitHub {
       owner = "vifm";
       repo = "vifm.vim";
-      rev = "a737e93a97254681473313a606c66cc810291a87";
-      sha256 = "0b59rhngw1xwv0pccwsql7gyrmj55b7c4bkighqkk3kd0mbqy4qh";
+      rev = "8139a59e6153d63a761aeae29461ccfc95e2539c";
+      sha256 = "12vaw3g9axisms8v411mdjiw7gydrcbmhw0pvi2bipq6rvpaisgb";
     };
     meta.homepage = "https://github.com/vifm/vifm.vim/";
   };
@@ -6811,12 +6859,12 @@ final: prev:
 
   vim-airline = buildVimPluginFrom2Nix {
     pname = "vim-airline";
-    version = "2021-12-08";
+    version = "2021-12-21";
     src = fetchFromGitHub {
       owner = "vim-airline";
       repo = "vim-airline";
-      rev = "bf5d785932b5bdedcb747311a8536931dd5241cc";
-      sha256 = "0sacswh62nzng2h40iqz51l9w2x4qc4j28vj4832zj87p0hgz4v1";
+      rev = "77d651ef1331797ee4af0b8249e54a9d9d1a18e9";
+      sha256 = "0wzhpmflp6gqwng5daw05v5ncfrknwq1hpl25jkg6d56rm37kq0c";
     };
     meta.homepage = "https://github.com/vim-airline/vim-airline/";
   };
@@ -6907,12 +6955,12 @@ final: prev:
 
   vim-argwrap = buildVimPluginFrom2Nix {
     pname = "vim-argwrap";
-    version = "2021-06-11";
+    version = "2021-12-16";
     src = fetchFromGitHub {
       owner = "FooSoft";
       repo = "vim-argwrap";
-      rev = "f1c1d2b0c763ed77f9b9f2515ffff99a72c6a757";
-      sha256 = "03mnvb9sb1angzyyhm7d708yzb26bnrqv1x7dy67r1b6rflvv4wz";
+      rev = "c5de0769d8c00817d42ed6f1b2e7ea4cca2cbc8d";
+      sha256 = "1qp21k9dlgh5gvd4x393xkalzfj36rchn17rg9jy3gij88p2xmbn";
     };
     meta.homepage = "https://github.com/FooSoft/vim-argwrap/";
   };
@@ -6929,6 +6977,18 @@ final: prev:
     meta.homepage = "https://github.com/haya14busa/vim-asterisk/";
   };
 
+  vim-asymptote = buildVimPluginFrom2Nix {
+    pname = "vim-asymptote";
+    version = "2014-06-26";
+    src = fetchFromGitHub {
+      owner = "hura";
+      repo = "vim-asymptote";
+      rev = "2c59b7d173bf3837c1378e60b0c51d911cdbe15c";
+      sha256 = "0j4hrirssgnh37crl3yvy2vxf7wigdir860z1qvn1m72hld8n32y";
+    };
+    meta.homepage = "https://github.com/hura/vim-asymptote/";
+  };
+
   vim-auto-save = buildVimPluginFrom2Nix {
     pname = "vim-auto-save";
     version = "2021-10-15";
@@ -7147,12 +7207,12 @@ final: prev:
 
   vim-clap = buildVimPluginFrom2Nix {
     pname = "vim-clap";
-    version = "2021-12-02";
+    version = "2021-12-12";
     src = fetchFromGitHub {
       owner = "liuchengxu";
       repo = "vim-clap";
-      rev = "39006bd54273f55dc120a95b6c2299d5acb20652";
-      sha256 = "17arly3kpy78vsnjlanx4c6jnwkgkg3wix35ngw981bv06lcdyvx";
+      rev = "7b36b2599d7241b5918e92de231bd4e78bcaadef";
+      sha256 = "0kz2xm5qnicszvzap0b64jj9j7p2w6zmwcgk428043c2x0657sfz";
     };
     meta.homepage = "https://github.com/liuchengxu/vim-clap/";
   };
@@ -7207,12 +7267,12 @@ final: prev:
 
   vim-code-dark = buildVimPluginFrom2Nix {
     pname = "vim-code-dark";
-    version = "2021-04-09";
+    version = "2021-12-17";
     src = fetchFromGitHub {
       owner = "tomasiser";
       repo = "vim-code-dark";
-      rev = "670fed53a2ae67542a78ef7b642f4aca6b6326dc";
-      sha256 = "0zdhhv3h8lzba8dpv0amc5abpkzayp6gbjw6qv712p638zyr99vw";
+      rev = "7fe0dc672b20ef62962494560a0bc656fb237346";
+      sha256 = "1i9sgxdw6mjv81gmzk17fy3caizr8dhdygjcpqzz5p56njywwags";
     };
     meta.homepage = "https://github.com/tomasiser/vim-code-dark/";
   };
@@ -7363,12 +7423,12 @@ final: prev:
 
   vim-css-color = buildVimPluginFrom2Nix {
     pname = "vim-css-color";
-    version = "2021-05-30";
+    version = "2021-12-18";
     src = fetchFromGitHub {
       owner = "ap";
       repo = "vim-css-color";
-      rev = "7337c35588e9027b516f80f03c3b9621a271e168";
-      sha256 = "05np2fr8q8r8n5mlspjywibl7hx54liy77wxvjya7n2p085n49ks";
+      rev = "26ff274c20ef3929697ab31bbdeea5b42f890287";
+      sha256 = "19akvm6vks2k9bkcvzzqny9lwykw5kdjqlzv58xpb3jk70c1p4h6";
     };
     meta.homepage = "https://github.com/ap/vim-css-color/";
   };
@@ -7423,12 +7483,12 @@ final: prev:
 
   vim-dadbod-completion = buildVimPluginFrom2Nix {
     pname = "vim-dadbod-completion";
-    version = "2021-11-20";
+    version = "2021-12-21";
     src = fetchFromGitHub {
       owner = "kristijanhusak";
       repo = "vim-dadbod-completion";
-      rev = "44832073ea3bd38a79b2bb639485b0f0e6d63a30";
-      sha256 = "0nz41b9r37lr19j2zbfj0j5992zwirbr3h11h94q7vrjk393kp3g";
+      rev = "10064d526001d98b6454235644e3e586b566f26d";
+      sha256 = "07vlg4w9x0xs4xag02pyxram94mvizipwya7p6vg7s3rznj0bipd";
     };
     meta.homepage = "https://github.com/kristijanhusak/vim-dadbod-completion/";
   };
@@ -7483,12 +7543,12 @@ final: prev:
 
   vim-devicons = buildVimPluginFrom2Nix {
     pname = "vim-devicons";
-    version = "2021-12-10";
+    version = "2021-12-18";
     src = fetchFromGitHub {
       owner = "ryanoasis";
       repo = "vim-devicons";
-      rev = "0a0035d84d9c9c6a0294744074c5801048447658";
-      sha256 = "0129zfjgs4sj9nxwxmkl5b24z1zrj0fkscpm69avrjj2dk70i8nz";
+      rev = "9252538fedd6bed5c7eff20ee6f9593676e2fed4";
+      sha256 = "0r2shfwb9i62mxl254wc9zcq3z1nf72snd0ar8sxjll5iklnzw1k";
     };
     meta.homepage = "https://github.com/ryanoasis/vim-devicons/";
   };
@@ -7543,12 +7603,12 @@ final: prev:
 
   vim-dispatch = buildVimPluginFrom2Nix {
     pname = "vim-dispatch";
-    version = "2021-12-02";
+    version = "2021-12-18";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-dispatch";
-      rev = "3505862b3898be5db3c78ba1b92c703349478d68";
-      sha256 = "0y9fbjrrghzlwxlgkz7zn13bd9p3p2nix5b7fflhkmg1iwb7amfv";
+      rev = "a58eaaa41f895fb729a36740a91608ed47706636";
+      sha256 = "1hq8jvmlzpbpayjn94y9ikh3442p7hzcc1qxi9y90m5m3kbddv5b";
     };
     meta.homepage = "https://github.com/tpope/vim-dispatch/";
   };
@@ -7891,12 +7951,12 @@ final: prev:
 
   vim-flog = buildVimPluginFrom2Nix {
     pname = "vim-flog";
-    version = "2021-10-16";
+    version = "2021-12-19";
     src = fetchFromGitHub {
       owner = "rbong";
       repo = "vim-flog";
-      rev = "d8e62cea4c57c9284a0d6bc92140deb1a7034a1d";
-      sha256 = "0a5yh0w143lvg934pwsln2n34zh7x2d6bxfp9cmw897nl6qlzrdj";
+      rev = "fcd459aba62fa1b1bda8338ac7686c7541fb10ae";
+      sha256 = "0626jbf4cnfshwbwzm3qhhhbvzqb5vf46nwk6igjaiay96bxj3c3";
     };
     meta.homepage = "https://github.com/rbong/vim-flog/";
   };
@@ -8251,12 +8311,12 @@ final: prev:
 
   vim-helm = buildVimPluginFrom2Nix {
     pname = "vim-helm";
-    version = "2021-11-26";
+    version = "2021-12-13";
     src = fetchFromGitHub {
       owner = "towolf";
       repo = "vim-helm";
-      rev = "b4710cda777c605c884a99d5abc1c2ef714e20a6";
-      sha256 = "0xyljfbgqyjhvpw0dhkga86qprgc8n0p38ql6pnh8nfyq1xlzf4a";
+      rev = "9c65dc6ad9b0be6b11514d9d25fe828c2299b484";
+      sha256 = "0hl48dabgssybgkbs6xr27ipsmjdk6i7fa5ynhn12c9bdbs2fnxv";
     };
     meta.homepage = "https://github.com/towolf/vim-helm/";
   };
@@ -8396,12 +8456,12 @@ final: prev:
 
   vim-illuminate = buildVimPluginFrom2Nix {
     pname = "vim-illuminate";
-    version = "2021-11-14";
+    version = "2021-12-21";
     src = fetchFromGitHub {
       owner = "RRethy";
       repo = "vim-illuminate";
-      rev = "2beae0581caa66cf8c09fad7c7c557f92d49d2bd";
-      sha256 = "1qrc789a3aps99x89hiwwrmnxm5hm1qsjp8xjhhls6jk8scqq2qv";
+      rev = "8e68a8c75eee7fbfb5e94d779979fa41713ec8b2";
+      sha256 = "10gl1gj5apmn2yjr4fdm51n0wxgkx951d7hz7zfd0xhxyvsmp8dj";
     };
     meta.homepage = "https://github.com/RRethy/vim-illuminate/";
   };
@@ -8444,12 +8504,12 @@ final: prev:
 
   vim-indexed-search = buildVimPluginFrom2Nix {
     pname = "vim-indexed-search";
-    version = "2019-07-04";
+    version = "2021-12-13";
     src = fetchFromGitHub {
       owner = "henrik";
       repo = "vim-indexed-search";
-      rev = "5af020bba084b699d0453f242d7d76711d64b1e3";
-      sha256 = "0cq265yqksh7jqazxn7qxr7bclrk2pq7py4c29wspsvbi0m3m8rc";
+      rev = "763fdd0eb818ad441433aa04d00eabfda579476c";
+      sha256 = "09469n772gcakgwiszn6fd1gb64dma1sqib3c4raspfzjiynr79z";
     };
     meta.homepage = "https://github.com/henrik/vim-indexed-search/";
   };
@@ -8817,12 +8877,12 @@ final: prev:
 
   vim-lsp = buildVimPluginFrom2Nix {
     pname = "vim-lsp";
-    version = "2021-11-30";
+    version = "2021-12-21";
     src = fetchFromGitHub {
       owner = "prabirshrestha";
       repo = "vim-lsp";
-      rev = "a91419ea0ace6f791a43e0697946599fe7a9ae60";
-      sha256 = "0rs3f8nfw8qyhl61y56qv7k96l0wprybx56bdbhqpjzan0ir3ci6";
+      rev = "69e6340c48571cc813c52d6acc2057b8aea6e742";
+      sha256 = "0f8sg66l579lyq1apbksr22a9h9hdv94nvs2d36sb2c2f8im3g6k";
     };
     meta.homepage = "https://github.com/prabirshrestha/vim-lsp/";
   };
@@ -9010,12 +9070,12 @@ final: prev:
 
   vim-move = buildVimPluginFrom2Nix {
     pname = "vim-move";
-    version = "2021-07-09";
+    version = "2021-12-14";
     src = fetchFromGitHub {
       owner = "matze";
       repo = "vim-move";
-      rev = "6442747a3d3084e3c1214388192b8308fcf391b8";
-      sha256 = "1acmaabzqc01gvnxs8jfpiwmgyrd4d20p3lm3g2xsg5zv1l67hbf";
+      rev = "d4fbf3b9d794d20a36aef729ecdfa56ce097986e";
+      sha256 = "0dkn6ssqhxdp52cg1hk104n3d3fac48yklmnx6sl7i7lx8hpjshc";
     };
     meta.homepage = "https://github.com/matze/vim-move/";
   };
@@ -9056,6 +9116,18 @@ final: prev:
     meta.homepage = "https://github.com/simnalamburt/vim-mundo/";
   };
 
+  vim-mustache-handlebars = buildVimPluginFrom2Nix {
+    pname = "vim-mustache-handlebars";
+    version = "2021-11-30";
+    src = fetchFromGitHub {
+      owner = "mustache";
+      repo = "vim-mustache-handlebars";
+      rev = "0153fe03a919add2d6cf2d41b2d5b6e1188bc0e0";
+      sha256 = "0dnafs9bcfm539plx5hq6nzq6k8li3xbkizdhv71cpmfcbw2srln";
+    };
+    meta.homepage = "https://github.com/mustache/vim-mustache-handlebars/";
+  };
+
   vim-nerdtree-syntax-highlight = buildVimPluginFrom2Nix {
     pname = "vim-nerdtree-syntax-highlight";
     version = "2021-01-11";
@@ -9478,12 +9550,12 @@ final: prev:
 
   vim-polyglot = buildVimPluginFrom2Nix {
     pname = "vim-polyglot";
-    version = "2021-11-21";
+    version = "2021-12-21";
     src = fetchFromGitHub {
       owner = "sheerun";
       repo = "vim-polyglot";
-      rev = "918610d427503c5c7b380eae4a954bd8cb427db5";
-      sha256 = "0ly1wwm97x6a2v1x7da4bh8xrcksapb8xyyxih7kmvwk7xn3wrqr";
+      rev = "cb80947143fe342797bcf571b6190c86b3c07700";
+      sha256 = "0inim34psrkndsr93q1ax8xpg9hcjfchfn7dp84hc629bc2ziv13";
     };
     meta.homepage = "https://github.com/sheerun/vim-polyglot/";
   };
@@ -9562,12 +9634,12 @@ final: prev:
 
   vim-prosession = buildVimPluginFrom2Nix {
     pname = "vim-prosession";
-    version = "2021-12-01";
+    version = "2021-12-10";
     src = fetchFromGitHub {
       owner = "dhruvasagar";
       repo = "vim-prosession";
-      rev = "13ee508149743d8c2ac1372a575f94279eb1752a";
-      sha256 = "1w1g47xh7jk6xk44ldy7ig38b7cwbwvh6h4ya6x0gxq938g3fa9l";
+      rev = "47709f9671f23fb9a6b16d3b5ac29628358f9f40";
+      sha256 = "0za6m05g2rp242pp2g9gm6wgi6p7whdq6nnc7vrkvrhjkvq6b6zj";
     };
     meta.homepage = "https://github.com/dhruvasagar/vim-prosession/";
   };
@@ -9718,12 +9790,12 @@ final: prev:
 
   vim-rails = buildVimPluginFrom2Nix {
     pname = "vim-rails";
-    version = "2021-11-20";
+    version = "2021-12-19";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-rails";
-      rev = "582c4f6cf310b2b3044c366c726a90c0010fc45d";
-      sha256 = "04cw3v1havjw9cak5hwnihg7mca265iy3i4cx3jw064yragzapb3";
+      rev = "3bac0233a49d2a00805c66bf17d3e2ea114b05d1";
+      sha256 = "0grk2jz655kmjdnhb19d2lhqi1xirl5g4577harw22ck1c7kdjvj";
     };
     meta.homepage = "https://github.com/tpope/vim-rails/";
   };
@@ -9826,12 +9898,12 @@ final: prev:
 
   vim-salve = buildVimPluginFrom2Nix {
     pname = "vim-salve";
-    version = "2020-09-22";
+    version = "2021-12-19";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-salve";
-      rev = "5958a99c4ac783cec668380917ac1f62b27466fe";
-      sha256 = "1vs2rfhcxm9v4ndnsx85b1i29h67qv748k3nvdxc145v1hjcnapm";
+      rev = "1a581fa047592d0bd430cda2f3ff8ec77345a2b2";
+      sha256 = "0q8dhlizilgvfr45s33j4nax74xns2lm4iq61nyy3899s6fhfjw5";
     };
     meta.homepage = "https://github.com/tpope/vim-salve/";
   };
@@ -9994,24 +10066,24 @@ final: prev:
 
   vim-sleuth = buildVimPluginFrom2Nix {
     pname = "vim-sleuth";
-    version = "2021-12-10";
+    version = "2021-12-20";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-sleuth";
-      rev = "576473ab60e0f90f608ac97c65882728d6579deb";
-      sha256 = "03msmflb5slp6ylr3wfdk9x5ncslqrdna094ziym5gwr8lvrja24";
+      rev = "769ade8741a3d39d0902d23737ca0ce8bdb93020";
+      sha256 = "08q9l1va932jcfyflvkbal7fba8mfm88rxnmhrr6y0bs2awj1l0a";
     };
     meta.homepage = "https://github.com/tpope/vim-sleuth/";
   };
 
   vim-slime = buildVimPluginFrom2Nix {
     pname = "vim-slime";
-    version = "2021-11-03";
+    version = "2021-12-19";
     src = fetchFromGitHub {
       owner = "jpalardy";
       repo = "vim-slime";
-      rev = "e80be3ba286ea83fe39d2261cdc74ed2ca5e951a";
-      sha256 = "1qgrmsjcrfnkjh4an6m08x9anh2kjn4bx9mckr26mgskrglxykp9";
+      rev = "3d3e5fac8c15719f2117923134ce51f6ae269d3f";
+      sha256 = "1iqnwhpc0p3mjji99m710bqwfk5ymxnc6jg3rv4qbrlz784nc1mm";
     };
     meta.homepage = "https://github.com/jpalardy/vim-slime/";
   };
@@ -10090,12 +10162,12 @@ final: prev:
 
   vim-snippets = buildVimPluginFrom2Nix {
     pname = "vim-snippets";
-    version = "2021-11-06";
+    version = "2021-12-18";
     src = fetchFromGitHub {
       owner = "honza";
       repo = "vim-snippets";
-      rev = "43ed873ba09ac2d71992e773c68c75c6b85686c7";
-      sha256 = "02mdlicjzqqy40rsi8kkkix5ldj0fhbbbckr0yz4srnbw3wznsa8";
+      rev = "e2156cda628fe065be64e96347594c1d20812aea";
+      sha256 = "1c7228zvlhcgc2lgv6752mxcq1aghi9bnanwqv70rfsaj8yr2qv7";
     };
     meta.homepage = "https://github.com/honza/vim-snippets/";
   };
@@ -10174,12 +10246,12 @@ final: prev:
 
   vim-startuptime = buildVimPluginFrom2Nix {
     pname = "vim-startuptime";
-    version = "2021-12-04";
+    version = "2021-12-19";
     src = fetchFromGitHub {
       owner = "dstein64";
       repo = "vim-startuptime";
-      rev = "89c81d1d3bc3ef14e09575a3967b66e0a3e4c458";
-      sha256 = "0w3yijmb66ni2kf49g88jw1m70m14d063bs4qkaxhn8xl2wn06n5";
+      rev = "8a5e182f491ba7e4aca86c88face10c80ac2bf7e";
+      sha256 = "1mgx4cncqmx390lz65kl8majnh55hyl2k26vc5w6kwh7806i5yla";
     };
     meta.homepage = "https://github.com/dstein64/vim-startuptime/";
   };
@@ -10331,12 +10403,12 @@ final: prev:
 
   vim-test = buildVimPluginFrom2Nix {
     pname = "vim-test";
-    version = "2021-12-07";
+    version = "2021-12-21";
     src = fetchFromGitHub {
       owner = "vim-test";
       repo = "vim-test";
-      rev = "5c3ad7c6427e0ffe7dd6817ba4b75828a5a312c5";
-      sha256 = "1wyrfw70zvnhvwh30dpngld83snsmmgl6frn03l6xc2bz2994dnf";
+      rev = "2d240b96221a8ef2cf2ed9db59f14c5871df80f0";
+      sha256 = "1yc4mjhx2vv6ybpn9yblg4zfv7cmf2glsvvr1a5wsq0w0mn3yv69";
     };
     meta.homepage = "https://github.com/vim-test/vim-test/";
   };
@@ -10511,12 +10583,12 @@ final: prev:
 
   vim-tpipeline = buildVimPluginFrom2Nix {
     pname = "vim-tpipeline";
-    version = "2021-12-02";
+    version = "2021-12-11";
     src = fetchFromGitHub {
       owner = "vimpostor";
       repo = "vim-tpipeline";
-      rev = "7e4e7dd133f4be0cf19ad3ce0b83d95da04b2690";
-      sha256 = "12hsi5iyykhz77fs4hcd8f5vh5zcfhh5rav3ajm3avm9pjd9515q";
+      rev = "274e3e34375d8e76db1fa68c5aae19273ad8be13";
+      sha256 = "1h5fvs9vg3p204605v8a0y4hx6c1rbmn8wgn2654v97f3h1cm51y";
     };
     meta.homepage = "https://github.com/vimpostor/vim-tpipeline/";
   };
@@ -10571,12 +10643,12 @@ final: prev:
 
   vim-ultest = buildVimPluginFrom2Nix {
     pname = "vim-ultest";
-    version = "2021-12-04";
+    version = "2021-12-16";
     src = fetchFromGitHub {
       owner = "rcarriga";
       repo = "vim-ultest";
-      rev = "1b010c6214c51d37bd37ebd8ecd6602e3c4954f5";
-      sha256 = "0vyiz94jkvn5krcqp8c7yzqc5m0ygcj8rmymjbbi3q8cxnx1ls4d";
+      rev = "04024e7568f4b341e858c6f65b532b554e92e2f1";
+      sha256 = "1h8wfk6pzlfrn368xs0m4sl6g6wkrd0bxpa4nrjr1lr100ia2gp5";
     };
     meta.homepage = "https://github.com/rcarriga/vim-ultest/";
   };
@@ -10667,24 +10739,24 @@ final: prev:
 
   vim-vsnip = buildVimPluginFrom2Nix {
     pname = "vim-vsnip";
-    version = "2021-11-22";
+    version = "2021-12-16";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "vim-vsnip";
-      rev = "30449e9c19c73f64f4c87c29c426318f5519c314";
-      sha256 = "038r81kms8d0hjz4gh5dsfrwlkxxvc93vmq5ipd57v0zcxyr9l5f";
+      rev = "fd13f3fb09823cdefb2c9bebb614a13afd1920cc";
+      sha256 = "0npflxwclwcs72wk8kgsccqfh5783hvmxzirz3qf8yznllj8k8rs";
     };
     meta.homepage = "https://github.com/hrsh7th/vim-vsnip/";
   };
 
   vim-vsnip-integ = buildVimPluginFrom2Nix {
     pname = "vim-vsnip-integ";
-    version = "2021-10-06";
+    version = "2021-12-13";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "vim-vsnip-integ";
-      rev = "8db26e85c12a382db6c34487de2e1512dd7516f5";
-      sha256 = "1rlaglccvgpaj89lfn41ygykdizlis4wwrw92qxb9raz2a0z9idh";
+      rev = "685b570acf24b37eaf6176180b81fabcb5e6ccc2";
+      sha256 = "0d2s9pfj5961z2n0rh44ibqk4923ynp23g28wfg0ga70fx8iqyxl";
     };
     meta.homepage = "https://github.com/hrsh7th/vim-vsnip-integ/";
   };
@@ -10703,12 +10775,12 @@ final: prev:
 
   vim-wakatime = buildVimPluginFrom2Nix {
     pname = "vim-wakatime";
-    version = "2021-12-10";
+    version = "2021-12-13";
     src = fetchFromGitHub {
       owner = "wakatime";
       repo = "vim-wakatime";
-      rev = "5e9226903ded8b6d8af5f145b79d4d27ff0cde17";
-      sha256 = "07p982b6hh5mm9b4jy52v5f00mxgrs76p0hp65i3v62rcfhah2ii";
+      rev = "85e95ac35633b6b38222773a37230ade262e1a3e";
+      sha256 = "0n85v6a1zkq2psmv35b55pylq93cm0y213xrpf0afn85h0bdvv3q";
     };
     meta.homepage = "https://github.com/wakatime/vim-wakatime/";
   };
@@ -10991,12 +11063,12 @@ final: prev:
 
   vimspector = buildVimPluginFrom2Nix {
     pname = "vimspector";
-    version = "2021-12-08";
+    version = "2021-12-21";
     src = fetchFromGitHub {
       owner = "puremourning";
       repo = "vimspector";
-      rev = "8b6bf0024cea34dd7f04b2908db82c0aa7e2616a";
-      sha256 = "0akrngbp95vppvbwh8aj0yggjsw02080fldv7bw02raz42zcaq7w";
+      rev = "9e833b22a7aee667e92fb578130fa617369d5b23";
+      sha256 = "1r0m54h1f277ldjxh9qz87w2wrjvsmy6hfp0sbz77gzvkighqg9l";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/puremourning/vimspector/";
@@ -11004,12 +11076,12 @@ final: prev:
 
   vimtex = buildVimPluginFrom2Nix {
     pname = "vimtex";
-    version = "2021-12-09";
+    version = "2021-12-19";
     src = fetchFromGitHub {
       owner = "lervag";
       repo = "vimtex";
-      rev = "c72d34bfca5972c36bb72c39098c62ea213d73ae";
-      sha256 = "12246hvn6czrp8pczz65pfgp54dvj0rp5mm7smldqqlnlw4saia9";
+      rev = "3cd379482b3d680ddb5b13c484c5d6c4b5d5a028";
+      sha256 = "1ra9vdd03v6xpflcmlhrmahxqhrqqxyl76mhyn7yyny3hz6632m3";
     };
     meta.homepage = "https://github.com/lervag/vimtex/";
   };
@@ -11112,12 +11184,12 @@ final: prev:
 
   which-key-nvim = buildVimPluginFrom2Nix {
     pname = "which-key.nvim";
-    version = "2021-12-08";
+    version = "2021-12-17";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "which-key.nvim";
-      rev = "0fd9de78fe09215e1b7c6173ff1b0b90c8ed6ec4";
-      sha256 = "1hd1f59jbcs9ryxkwfqz8k651xsax7mismbqiprx3g9b7agy2a1z";
+      rev = "312c386ee0eafc925c27869d2be9c11ebdb807eb";
+      sha256 = "0v5lra7bhpna7fmch6h4r6cx7z5rr3kbp1b2c0np4k28znva3l2g";
     };
     meta.homepage = "https://github.com/folke/which-key.nvim/";
   };
@@ -11245,12 +11317,12 @@ final: prev:
 
   YouCompleteMe = buildVimPluginFrom2Nix {
     pname = "YouCompleteMe";
-    version = "2021-12-04";
+    version = "2021-12-13";
     src = fetchFromGitHub {
       owner = "ycm-core";
       repo = "YouCompleteMe";
-      rev = "ab28bd7ac96eb0e16aca0e55208b096f2c06360d";
-      sha256 = "0nlmw67fl1gch7d5kh0zrbrhr9894pd0b1vi5v7grvbzhv6k0wwj";
+      rev = "3c5a06301ed0f68d798c9df5aafa9a15bff1940f";
+      sha256 = "085pzcib06236vn78slhcg8n4iiirf0aqn777afdxp2zrsqnmlzr";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/ycm-core/YouCompleteMe/";
@@ -11306,12 +11378,12 @@ final: prev:
 
   zig-vim = buildVimPluginFrom2Nix {
     pname = "zig.vim";
-    version = "2021-10-14";
+    version = "2021-12-16";
     src = fetchFromGitHub {
       owner = "ziglang";
       repo = "zig.vim";
-      rev = "0adf3a1407bdf60a6c1446fb6a9a05c9823e4290";
-      sha256 = "0sdjznbzwj180g1jgn6rizbq2dq2clpcj1rj1xb3m127w4rgqhyj";
+      rev = "045bb41776280df1adaa2d63c7166684bf631a00";
+      sha256 = "1d4l6x9rwfxr9a2yfhq4ywhm72sky35ki0mr3hq7xy6xj5lpwgq7";
     };
     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 88c89f0e96c..7188186e7e5 100644
--- a/pkgs/misc/vim-plugins/overrides.nix
+++ b/pkgs/misc/vim-plugins/overrides.nix
@@ -227,11 +227,6 @@ self: super: {
     '';
   });
 
-  ensime-vim = super.ensime-vim.overrideAttrs (old: {
-    passthru.python3Dependencies = ps: with ps; [ sexpdata websocket-client ];
-    dependencies = with self; [ vimproc-vim vimshell-vim self.self forms ];
-  });
-
   fcitx-vim = super.fcitx-vim.overrideAttrs (old: {
     passthru.python3Dependencies = ps: with ps; [ dbus-python ];
     meta = {
@@ -748,7 +743,7 @@ self: super: {
             libiconv
           ];
 
-          cargoSha256 = "sha256-zYm+7qAvhVGa/afddHhI2aQxmiLOkus5PHZBDP9S/Qg=";
+          cargoSha256 = "sha256-iE0L4pSKPf8lf76DuSTnU7LfNUgy1O06IgxracsLpFA=";
         };
       in
       ''
diff --git a/pkgs/misc/vim-plugins/vim-plugin-names b/pkgs/misc/vim-plugins/vim-plugin-names
index a1230ed3c8c..24ac08d7639 100644
--- a/pkgs/misc/vim-plugins/vim-plugin-names
+++ b/pkgs/misc/vim-plugins/vim-plugin-names
@@ -17,7 +17,7 @@ alvarosevilla95/luatab.nvim
 alx741/vim-hindent
 alx741/vim-stylishask
 amiorin/ctrlp-z
-andersevenrud/compe-tmux@cmp
+andersevenrud/cmp-tmux@cmp
 andrep/vimacs
 andreshazard/vim-logreview
 AndrewRadev/sideways.vim
@@ -147,7 +147,6 @@ embark-theme/vim as embark-vim
 embear/vim-localvimrc
 enomsg/vim-haskellConcealPlus
 enricobacis/vim-airline-clock
-ensime/ensime-vim
 ervandew/supertab
 esneider/YUNOcommit.vim
 euclidianAce/BetterLua.vim
@@ -155,12 +154,12 @@ euclio/vim-markdown-composer
 f-person/git-blame.nvim
 f3fora/cmp-spell
 famiu/bufdelete.nvim
-famiu/feline.nvim
 fannheyward/telescope-coc.nvim
 farmergreg/vim-lastplace
 fatih/vim-go
 fcpg/vim-osc52
 FelikZ/ctrlp-py-matcher
+feline-nvim/feline.nvim
 fenetikm/falcon
 fhill2/floating.nvim
 fiatjaf/neuron.vim
@@ -248,6 +247,7 @@ hrsh7th/vim-vsnip
 hrsh7th/vim-vsnip-integ
 hsanson/vim-android
 hsitz/VimOrganizer
+hura/vim-asymptote
 iamcco/coc-spell-checker
 iamcco/markdown-preview.nvim
 ianks/vim-tsx
@@ -393,6 +393,7 @@ lewis6991/gitsigns.nvim
 lf-lang/lingua-franca.vim
 lfe-support/vim-lfe
 lfilho/cosco.vim
+lifepillar/pgsql.vim
 lifepillar/vim-gruvbox8
 lifepillar/vim-mucomplete
 lighttiger2505/deoplete-vim-lsp
@@ -486,7 +487,8 @@ motus/pig.vim
 mpickering/hlint-refactor-vim
 ms-jpq/chadtree@chad
 mtikekar/vim-bsv
-MunifTanjim/nui.nvim
+MunifTanjim/nui.nvim@main
+mustache/vim-mustache-handlebars
 mzlogin/vim-markdown-toc
 mzlogin/vim-smali
 nacro90/numb.nvim
@@ -848,6 +850,8 @@ Valodim/deoplete-notmuch
 vhda/verilog_systemverilog.vim
 vifm/vifm.vim
 vigoux/LanguageTool.nvim
+vijaymarupudi/nvim-fzf
+vijaymarupudi/nvim-fzf-commands
 vim-airline/vim-airline
 vim-airline/vim-airline-themes
 vim-autoformat/vim-autoformat
@@ -878,11 +882,13 @@ vim-scripts/mayansmoke
 vim-scripts/PreserveNoEOL
 vim-scripts/prev_indent
 vim-scripts/random.vim
+vim-scripts/rcshell.vim
 vim-scripts/Rename
 vim-scripts/ReplaceWithRegister
 vim-scripts/ShowMultiBase
 vim-scripts/tabmerge
 vim-scripts/taglist.vim
+vim-scripts/timestamp.vim
 vim-scripts/utl.vim
 vim-scripts/vis
 vim-scripts/wombat256.vim
diff --git a/pkgs/misc/vscode-extensions/default.nix b/pkgs/misc/vscode-extensions/default.nix
index e3f971923e8..45ecb7e3b02 100644
--- a/pkgs/misc/vscode-extensions/default.nix
+++ b/pkgs/misc/vscode-extensions/default.nix
@@ -135,8 +135,8 @@ let
           mktplcRef = {
             publisher = "antfu";
             name = "slidev";
-            version = "0.3.2";
-            sha256 = "sha256-vzmByEiKZIkd707Bs4RGQrMII5sghYlkQI6aAJOHFcY=";
+            version = "0.3.3";
+            sha256 = "0pqiwcvn5c8kwqlmz4ribwwra69gbiqvz41ig4fh29hkyh078rfk";
           };
           meta = with lib; {
             license = licenses.mit;
@@ -363,8 +363,8 @@ let
         mktplcRef = {
           name = "bracket-pair-colorizer-2";
           publisher = "CoenraadS";
-          version = "0.2.1";
-          sha256 = "0bfvzs4ac537zqhnqaa38jf4lhiy1fmqcv6lq89nnx8k963380z7";
+          version = "0.2.2";
+          sha256 = "0zcbs7h801agfs2cggk1cz8m8j0i2ypmgznkgw17lcx3zisll9ad";
         };
         meta = with lib; {
           license = licenses.mit;
@@ -529,8 +529,8 @@ let
         mktplcRef = {
           name = "gitlens";
           publisher = "eamodio";
-          version = "11.6.0";
-          sha256 = "sha256-JxCNE/IL/v94xWmhebsRZo1Gw+nSSpDgZ41ZGongGVI=";
+          version = "11.7.0";
+          sha256 = "0apjjlfdwljqih394ggz2d8m599pyyjrb0b4cfcz83601b7hk3x6";
         };
         meta = with lib; {
           changelog = "https://marketplace.visualstudio.com/items/eamodio.gitlens/changelog";
@@ -617,8 +617,8 @@ let
         mktplcRef = {
           name = "prettier-vscode";
           publisher = "esbenp";
-          version = "8.0.1";
-          sha256 = "017lqpmzjxq5f1zr49akcm9gfki0qq8v7pj7gks6a3szjdx16mnl";
+          version = "9.0.0";
+          sha256 = "1nak1hg46wxkl0kb0zhc343kq2f4nd5q1fqscb29jybd4qdb8lgn";
         };
       };
 
@@ -792,8 +792,8 @@ let
           mktplcRef = {
             publisher = "github";
             name = "copilot";
-            version = "1.4.2678";
-            sha256 = "sha256-NryXLuMIZJngp2dBsGbNhBiblEthckw1Zk2vqMXIzFM=";
+            version = "1.7.4421";
+            sha256 = "1wvzf8rq8ligj079f1m74zzna2mfmhcbgvvrsw6w0wxw9x8fn4wy";
           };
           meta = { license = lib.licenses.unfree; };
         };
@@ -819,8 +819,8 @@ let
           mktplcRef = {
             name = "vscode-pull-request-github";
             publisher = "github";
-            version = "0.22.0";
-            sha256 = "13p3z86vkra26npp5a78pxdwa4z6jqjzsd38arhgdnjgwmi6bnrw";
+            version = "0.35.2021122109";
+            sha256 = "1n7vjwxm92ibwhgn2n57p54dqpi0vvyllmcgjxilgnr14irg5457";
           };
           meta = { license = lib.licenses.mit; };
         };
@@ -950,8 +950,8 @@ let
         mktplcRef = {
           publisher = "influxdata";
           name = "flux";
-          version = "0.6.5";
-          sha256 = "sha256-rKkZ7Sg8buryFtbIuKsrf3V3Rf7PP8hnbEIRFf4FvSM=";
+          version = "0.6.13";
+          sha256 = "0myl7rppzcz7hxy9zjs81vs9p66lnbfcrdr6s5qb4i6929gmywfy";
         };
         meta = with lib; {
           license = licenses.mit;
@@ -1192,6 +1192,18 @@ let
 
       ms-toolsai.jupyter = callPackage ./ms-toolsai-jupyter {};
 
+      ms-toolsai.jupyter-renderers = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "jupyter-renderers";
+          publisher = "ms-toolsai";
+          version = "1.0.4";
+          sha256 = "sha256-aKWu0Gp0f28DCv2akF/G8UDaGfTN410CcH8CAmW7mgU=";
+        };
+        meta = {
+          license = lib.licenses.mit;
+        };
+      };
+
       mvllow.rose-pine = buildVscodeMarketplaceExtension {
         mktplcRef = {
           publisher = "mvllow";
@@ -1613,13 +1625,13 @@ let
         mktplcRef = {
           name = "vscode-ltex";
           publisher = "valentjn";
-          version = "13.0.0";
+          version = "13.1.0";
         };
 
         vsix = fetchurl {
            name = "${mktplcRef.publisher}-${mktplcRef.name}.zip";
            url = "https://github.com/valentjn/vscode-ltex/releases/download/${mktplcRef.version}/vscode-ltex-${mktplcRef.version}-offline-linux-x64.vsix";
-           sha256 = "6db4846dee4e394f7bcfb7e29520d45d6bc1534482ba73cf40cd5edf3f6ec266";
+           sha256 = "1nlrijjwc35n1xgb5lgnr4yvlgfcxd0vdj93ip8lv2xi8x1ni5f6";
         };
 
         nativeBuildInputs = [ jq moreutils ];
diff --git a/pkgs/misc/vscode-extensions/rust-analyzer/default.nix b/pkgs/misc/vscode-extensions/rust-analyzer/default.nix
index 668d8776780..0580fc7d56a 100644
--- a/pkgs/misc/vscode-extensions/rust-analyzer/default.nix
+++ b/pkgs/misc/vscode-extensions/rust-analyzer/default.nix
@@ -1,5 +1,5 @@
-# Update script: pkgs/development/tools/rust/rust-analyzer/update.sh
 { lib
+, fetchFromGitHub
 , vscode-utils
 , jq
 , rust-analyzer
@@ -15,14 +15,26 @@ let
   pname = "rust-analyzer";
   publisher = "matklad";
 
+  # Use the plugin version as in vscode marketplace, updated by update script.
+  inherit (vsix) version;
+
+  releaseTag = "2021-11-29";
+
+  src = fetchFromGitHub {
+    owner = "rust-analyzer";
+    repo = "rust-analyzer";
+    rev = releaseTag;
+    sha256 = "sha256-vh7z8jupVxXPOko3sWUsOB7eji/7lKfwJ/CE3iw97Sw=";
+  };
+
   build-deps = nodePackages."rust-analyzer-build-deps-../../misc/vscode-extensions/rust-analyzer/build-deps";
   # FIXME: Making a new derivation to link `node_modules` and run `npm run package`
   # will cause a build failure.
   vsix = build-deps.override {
-    src = "${rust-analyzer.src}/editors/code";
+    src = "${src}/editors/code";
     outputs = [ "vsix" "out" ];
 
-    releaseTag = rust-analyzer.version;
+    inherit releaseTag;
 
     nativeBuildInputs = [
       jq moreutils esbuild
@@ -46,9 +58,6 @@ let
     '';
   };
 
-  # Use the plugin version as in vscode marketplace, updated by update script.
-  inherit (vsix) version;
-
 in
 vscode-utils.buildVscodeExtension {
   inherit version vsix;
@@ -68,7 +77,7 @@ vscode-utils.buildVscodeExtension {
     description = "An alternative rust language server to the RLS";
     homepage = "https://github.com/rust-analyzer/rust-analyzer";
     license = with licenses; [ mit asl20 ];
-    maintainers = with maintainers; [ oxalica ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/misc/vscode-extensions/terraform/default.nix b/pkgs/misc/vscode-extensions/terraform/default.nix
index 66d23e49116..3ab0f893c1a 100644
--- a/pkgs/misc/vscode-extensions/terraform/default.nix
+++ b/pkgs/misc/vscode-extensions/terraform/default.nix
@@ -3,8 +3,8 @@ vscode-utils.buildVscodeMarketplaceExtension rec {
   mktplcRef = {
     name = "terraform";
     publisher = "hashicorp";
-    version = "2.16.0";
-    sha256 = "0ya0xmmn4rmbvh8mxz466msbb3y2xqi4bg9dgymy2wq8cwzbn81b";
+    version = "2.17.0";
+    sha256 = "sha256-IZlw1lYibbBw3rcSiWEKP8rObxnMCE1ppogwmigNgwE=";
   };
 
   patches = [ ./fix-terraform-ls.patch ];
diff --git a/pkgs/misc/vscode-extensions/terraform/fix-terraform-ls.patch b/pkgs/misc/vscode-extensions/terraform/fix-terraform-ls.patch
index e20c29a74b5..e2dcd0b70aa 100644
--- a/pkgs/misc/vscode-extensions/terraform/fix-terraform-ls.patch
+++ b/pkgs/misc/vscode-extensions/terraform/fix-terraform-ls.patch
@@ -1,8 +1,8 @@
 diff --git a/out/serverPath.js b/out/serverPath.js
-index d25f5d4..289f0dd 100644
+index fafa915..2e6d376 100644
 --- a/out/serverPath.js
 +++ b/out/serverPath.js
-@@ -8,7 +8,13 @@ exports.CUSTOM_BIN_PATH_OPTION_NAME = 'languageServer.pathToBinary';
+@@ -18,7 +18,13 @@ exports.CUSTOM_BIN_PATH_OPTION_NAME = 'languageServer.pathToBinary';
  class ServerPath {
      constructor(context) {
          this.context = context;
diff --git a/pkgs/os-specific/linux/apparmor/default.nix b/pkgs/os-specific/linux/apparmor/default.nix
index 38b08eb7709..8e95c44f95c 100644
--- a/pkgs/os-specific/linux/apparmor/default.nix
+++ b/pkgs/os-specific/linux/apparmor/default.nix
@@ -27,7 +27,7 @@ let
     homepage = "https://apparmor.net/";
     description = "A mandatory access control system - ${component}";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ joachifm julm phreedom thoughtpolice ];
+    maintainers = with maintainers; [ joachifm julm thoughtpolice ];
     platforms = platforms.linux;
   };
 
diff --git a/pkgs/os-specific/linux/asus-ec-sensors/default.nix b/pkgs/os-specific/linux/asus-ec-sensors/default.nix
new file mode 100644
index 00000000000..f046ec206ab
--- /dev/null
+++ b/pkgs/os-specific/linux/asus-ec-sensors/default.nix
@@ -0,0 +1,34 @@
+{ lib, stdenv, fetchFromGitHub, kernel }:
+
+stdenv.mkDerivation rec {
+  name = "asus-ec-sensors-${version}-${kernel.version}";
+  version = "unstable-2021-12-16";
+
+  src = fetchFromGitHub {
+    owner = "zeule";
+    repo = "asus-ec-sensors";
+    rev = "3621741c4ecb93216d546942707a9c413e971787";
+    sha256 = "0akdga2854q3w0pyi0jywa6cxr32541ifz0ka1hgn6j4czk39kyn";
+  };
+
+  hardeningDisable = [ "pic" ];
+
+  nativeBuildInputs = kernel.moduleBuildDependencies;
+
+  makeFlags = [
+    "KERNELRELEASE=${kernel.modDirVersion}"
+    "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}"
+  ];
+
+  installPhase = ''
+    install asus-ec-sensors.ko -Dm444 -t ${placeholder "out"}/lib/modules/${kernel.modDirVersion}/kernel/drivers/hwmon
+  '';
+
+  meta = with lib; {
+    description = "Linux HWMON sensors driver for ASUS motherboards to read sensor data from the embedded controller";
+    homepage = "https://github.com/zeule/asus-ec-sensors";
+    license = licenses.gpl2;
+    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ nickhu ];
+  };
+}
diff --git a/pkgs/os-specific/linux/broadcom-sta/default.nix b/pkgs/os-specific/linux/broadcom-sta/default.nix
index 527d2253e5b..5d86c2311f1 100644
--- a/pkgs/os-specific/linux/broadcom-sta/default.nix
+++ b/pkgs/os-specific/linux/broadcom-sta/default.nix
@@ -63,7 +63,7 @@ stdenv.mkDerivation {
     description = "Kernel module driver for some Broadcom's wireless cards";
     homepage = "http://www.broadcom.com/support/802.11/linux_sta.php";
     license = lib.licenses.unfreeRedistributable;
-    maintainers = with lib.maintainers; [ phreedom ];
+    maintainers = with lib.maintainers; [ ];
     platforms = lib.platforms.linux;
   };
 }
diff --git a/pkgs/os-specific/linux/conspy/default.nix b/pkgs/os-specific/linux/conspy/default.nix
index 480962024f7..12e7f798e79 100644
--- a/pkgs/os-specific/linux/conspy/default.nix
+++ b/pkgs/os-specific/linux/conspy/default.nix
@@ -1,25 +1,21 @@
-{lib, stdenv, fetchurl, autoconf, automake, ncurses}:
-let
-  s = # Generated upstream information
-  rec {
-    baseName="conspy";
-    version="1.16";
-    name="${baseName}-${version}";
-    hash="02andak806vd04bgjlr0y0d2ddx7cazyf8nvca80vlh8x94gcppf";
-    url="mirror://sourceforge/project/conspy/conspy-1.16-1/conspy-1.16.tar.gz";
-    sha256="02andak806vd04bgjlr0y0d2ddx7cazyf8nvca80vlh8x94gcppf";
-  };
-  buildInputs = [
-    autoconf automake ncurses
-  ];
-in
-stdenv.mkDerivation {
-  inherit (s) name version;
-  inherit buildInputs;
+{ lib, stdenv, fetchurl, autoconf, automake, ncurses }:
+
+stdenv.mkDerivation rec {
+  pname = "conspy";
+  version = "1.16";
+
   src = fetchurl {
-    inherit (s) url sha256;
+    url = "mirror://sourceforge/project/conspy/conspy-${version}-1/conspy-${version}.tar.gz";
+    sha256 = "02andak806vd04bgjlr0y0d2ddx7cazyf8nvca80vlh8x94gcppf";
     curlOpts = " -A application/octet-stream ";
   };
+
+  buildInputs = [
+    autoconf
+    automake
+    ncurses
+  ];
+
   preConfigure = ''
     touch NEWS
     echo "EPL 1.0" > COPYING
@@ -27,11 +23,11 @@ stdenv.mkDerivation {
     automake --add-missing
     autoconf
   '';
-  meta = {
-    inherit (s) version;
+
+  meta = with lib; {
     description = "Linux text console viewer";
-    license = lib.licenses.epl10 ;
-    maintainers = [lib.maintainers.raskin];
-    platforms = lib.platforms.linux;
+    license = licenses.epl10;
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/os-specific/linux/conspy/default.upstream b/pkgs/os-specific/linux/conspy/default.upstream
deleted file mode 100644
index 3f9ff3e4a82..00000000000
--- a/pkgs/os-specific/linux/conspy/default.upstream
+++ /dev/null
@@ -1,5 +0,0 @@
-url https://sourceforge.net/projects/conspy/files/
-version_link 'conspy-[-0-9.]+/$'
-version_link '[-0-9.]+[.]tar[.][a-z0-9]+/download$'
-SF_redirect
-version '.*-([-0-9.]+)[.]tar[.].*' '\1'
diff --git a/pkgs/os-specific/linux/cpustat/default.nix b/pkgs/os-specific/linux/cpustat/default.nix
index 23ed2b07c96..c37c191d8c5 100644
--- a/pkgs/os-specific/linux/cpustat/default.nix
+++ b/pkgs/os-specific/linux/cpustat/default.nix
@@ -1,12 +1,14 @@
-{ stdenv, lib, fetchurl, ncurses }:
+{ stdenv, lib, fetchFromGitHub, ncurses }:
 
 stdenv.mkDerivation rec {
   pname = "cpustat";
-  version = "0.02.09";
+  version = "0.02.17";
 
-  src = fetchurl {
-    url = "https://kernel.ubuntu.com/~cking/tarballs/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "12xahv65yrhs5r830clkl1qnwg3dnrk5qn3zsznzbv1iy2f3cj7y";
+  src = fetchFromGitHub {
+    owner = "ColinIanKing";
+    repo = pname;
+    rev = "V${version}";
+    hash = "sha256-4HDXRtklzQSsywCGCTKdz6AtZta9R1mx7qkT7skX6Kc=";
   };
 
   buildInputs = [ ncurses ];
@@ -14,11 +16,12 @@ stdenv.mkDerivation rec {
   installFlags = [
     "BINDIR=${placeholder "out"}/bin"
     "MANDIR=${placeholder "out"}/share/man/man8"
+    "BASHDIR=${placeholder "out"}/share/bash-completion/completions"
   ];
 
   meta = with lib; {
     description = "CPU usage monitoring tool";
-    homepage = "https://kernel.ubuntu.com/~cking/cpustat/";
+    homepage = "https://github.com/ColinIanKing/cpustat";
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ dtzWill ];
diff --git a/pkgs/os-specific/linux/eventstat/default.nix b/pkgs/os-specific/linux/eventstat/default.nix
index 55b00ab8719..9a2c20ca38a 100644
--- a/pkgs/os-specific/linux/eventstat/default.nix
+++ b/pkgs/os-specific/linux/eventstat/default.nix
@@ -1,20 +1,26 @@
-{ stdenv, lib, fetchzip, ncurses }:
+{ stdenv, lib, fetchFromGitHub, ncurses }:
 
 stdenv.mkDerivation rec {
   pname = "eventstat";
-  version = "0.04.12";
-  src = fetchzip {
-    url = "https://kernel.ubuntu.com/~cking/tarballs/eventstat/eventstat-${version}.tar.gz";
-    sha256 = "sha256-XBSs/jZodCpI9BHgAF8+bE23gRCr2uebYiMJxxB8T5E=";
+  version = "0.04.13";
+
+  src = fetchFromGitHub {
+    owner = "ColinIanKing";
+    repo = pname;
+    rev = "V${version}";
+    hash = "sha256-psamt9omhakiO3Kx2EzofPL2VAsva7XKQTZmn6zKefA=";
   };
+
   buildInputs = [ ncurses ];
-  installFlags = [ "DESTDIR=$(out)" ];
-  postInstall = ''
-    mv $out/usr/* $out
-    rm -r $out/usr
-  '';
+  installFlags = [
+    "BINDIR=${placeholder "out"}/bin"
+    "MANDIR=${placeholder "out"}/share/man/man8"
+    "BASHDIR=${placeholder "out"}/share/bash-completion/completions"
+  ];
+
   meta = with lib; {
     description = "Simple monitoring of system events";
+    homepage = "https://github.com/ColinIanKing/eventstat";
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ cstrahan ];
diff --git a/pkgs/os-specific/linux/firmware/sof-firmware/default.nix b/pkgs/os-specific/linux/firmware/sof-firmware/default.nix
index d24089fa932..a5910a21005 100644
--- a/pkgs/os-specific/linux/firmware/sof-firmware/default.nix
+++ b/pkgs/os-specific/linux/firmware/sof-firmware/default.nix
@@ -5,13 +5,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "sof-firmware";
-  version = "1.9.2";
+  version = "1.9.3";
 
   src = fetchFromGitHub {
     owner = "thesofproject";
     repo = "sof-bin";
     rev = "v${version}";
-    sha256 = "sha256-aEoLlP34rorllCdTneATlCHnmhJD/VABV9Uv4dDmShA=";
+    sha256 = "sha256-mQGwc0nwjku9ZxcFy8H4QiBLETkAeyqYvFzBHtK8/DY=";
   };
 
   dontFixup = true; # binaries must not be stripped or patchelfed
diff --git a/pkgs/os-specific/linux/forkstat/default.nix b/pkgs/os-specific/linux/forkstat/default.nix
index 09c9c660285..1c3f3342e08 100644
--- a/pkgs/os-specific/linux/forkstat/default.nix
+++ b/pkgs/os-specific/linux/forkstat/default.nix
@@ -1,20 +1,25 @@
-{ stdenv, lib, fetchurl }:
+{ stdenv, lib, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
   pname = "forkstat";
-  version = "0.02.16";
-  src = fetchurl {
-    url = "https://kernel.ubuntu.com/~cking/tarballs/forkstat/forkstat-${version}.tar.xz";
-    sha256 = "1rrzvlws9725dy2jq5k4zfv669ngrb2klhla6wvir8nwh53jms4w";
+  version = "0.02.17";
+
+  src = fetchFromGitHub {
+    owner = "ColinIanKing";
+    repo = pname;
+    rev = "V${version}";
+    hash = "sha256-Rw1Xwst0+seksTLL+v3IUEojGjwCERwF89xkk70npUU=";
   };
-  installFlags = [ "DESTDIR=$(out)" ];
-  postInstall = ''
-    mv $out/usr/* $out
-    rm -r $out/usr
-  '';
+
+  installFlags = [
+    "BINDIR=${placeholder "out"}/bin"
+    "MANDIR=${placeholder "out"}/share/man/man8"
+    "BASHDIR=${placeholder "out"}/share/bash-completion/completions"
+  ];
+
   meta = with lib; {
     description = "Process fork/exec/exit monitoring tool";
-    homepage = "https://kernel.ubuntu.com/~cking/forkstat/";
+    homepage = "https://github.com/ColinIanKing/forkstat";
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ womfoo ];
diff --git a/pkgs/os-specific/linux/forktty/default.nix b/pkgs/os-specific/linux/forktty/default.nix
index c2e49399582..f060557cdec 100644
--- a/pkgs/os-specific/linux/forktty/default.nix
+++ b/pkgs/os-specific/linux/forktty/default.nix
@@ -1,36 +1,29 @@
-{lib, stdenv, fetchurl}:
-let
-  s = # Generated upstream information
-  rec {
-    baseName="forktty";
-    version="1.3";
-    name="${baseName}-${version}";
-    hash="0nd55zdqly6nl98k9lc7j751x86cw9hayx1qn0725f22r1x3j5zb";
-    url="http://sunsite.unc.edu/pub/linux/utils/terminal/forktty-1.3.tgz";
-    sha256="0nd55zdqly6nl98k9lc7j751x86cw9hayx1qn0725f22r1x3j5zb";
-  };
-  buildInputs = [
-  ];
-in
-stdenv.mkDerivation {
-  inherit (s) name version;
-  inherit buildInputs;
+{ lib, stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  pname = "forktty";
+  version = "1.3";
+
   src = fetchurl {
-    inherit (s) url sha256;
+    url = "http://sunsite.unc.edu/pub/linux/utils/terminal/forktty-${version}.tgz";
+    sha256 = "sha256-6xc5eshCuCIOsDh0r2DizKAeypGH0TRRotZ4itsvpVk=";
   };
+
   preBuild = ''
     sed -e s@/usr/bin/ginstall@install@g -i Makefile
   '';
+
   preInstall = ''
     mkdir -p "$out/bin"
     mkdir -p "$out/share/man/man8"
   '';
+
   makeFlags = [ "prefix=$(out)" "manprefix=$(out)/share/" ];
-  meta = {
-    inherit (s) version;
+
+  meta = with lib; {
     description = "Tool to detach from controlling TTY and attach to another";
-    license = lib.licenses.gpl2 ;
-    maintainers = [lib.maintainers.raskin];
-    platforms = lib.platforms.linux;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/os-specific/linux/forktty/default.upstream b/pkgs/os-specific/linux/forktty/default.upstream
deleted file mode 100644
index 45cb775a0ae..00000000000
--- a/pkgs/os-specific/linux/forktty/default.upstream
+++ /dev/null
@@ -1,2 +0,0 @@
-url http://sunsite.unc.edu/pub/linux/utils/terminal/
-version_link 'forktty.*tgz'
diff --git a/pkgs/os-specific/linux/fscrypt/default.nix b/pkgs/os-specific/linux/fscrypt/default.nix
index 7528fae6bdd..226c6e1c72a 100644
--- a/pkgs/os-specific/linux/fscrypt/default.nix
+++ b/pkgs/os-specific/linux/fscrypt/default.nix
@@ -4,13 +4,13 @@
 
 buildGoModule rec {
   pname = "fscrypt";
-  version = "0.3.0";
+  version = "0.3.1";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "fscrypt";
     rev = "v${version}";
-    sha256 = "1zdadi9f7wj6kgmmk9zlkpdm1lb3gfiscg9gkqqdql2si7y6g2nq";
+    sha256 = "0gi91vm0ai4vjzj6cfnjsfy8kbfxjiq2n7jnbhf5470qbx49qixr";
   };
 
   postPatch = ''
@@ -19,7 +19,7 @@ buildGoModule rec {
       --replace "/usr/local" "$out"
   '';
 
-  vendorSha256 = "0yak221mlyfacvlsaq9g3xiyk94n94vqgkbaji8d21pi8hhr38m6";
+  vendorSha256 = "1gw3q2pn8v6n9wkl5881rbxglislnr98a9gjqnqm894gnz7hfdzb";
 
   doCheck = false;
 
diff --git a/pkgs/os-specific/linux/greetd/default.nix b/pkgs/os-specific/linux/greetd/default.nix
index 6f305c5d6eb..cfde703cd67 100644
--- a/pkgs/os-specific/linux/greetd/default.nix
+++ b/pkgs/os-specific/linux/greetd/default.nix
@@ -8,16 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "greetd";
-  version = "0.7.0";
+  version = "0.8.0";
 
   src = fetchFromSourcehut {
     owner = "~kennylevinsen";
     repo = pname;
     rev = version;
-    sha256 = "b+S3fuJ8gjnSQzLHl3Bs9iO/Un2ynggAplz01GjJvFI=";
+    sha256 = "sha256-20D6HanUeAc0S9czkNJFmhsrfEqodpafkHsmwKccrHQ=";
   };
 
-  cargoHash = "sha256-YSC7osyBPwx+lo7P1ftI72mRWeQlDc2srRPzTFqVTxM=";
+  cargoHash = "sha256-8nMQ81Y0DnPs9WmxNASlcjTEVw5lh+nZtZ7vmmBCu2g=";
 
   nativeBuildInputs = [
     scdoc
diff --git a/pkgs/os-specific/linux/health-check/default.nix b/pkgs/os-specific/linux/health-check/default.nix
index 694d4565d96..e876808b461 100644
--- a/pkgs/os-specific/linux/health-check/default.nix
+++ b/pkgs/os-specific/linux/health-check/default.nix
@@ -1,12 +1,14 @@
-{ stdenv, lib, fetchurl, json_c, libbsd }:
+{ stdenv, lib, fetchFromGitHub, json_c, libbsd }:
 
 stdenv.mkDerivation rec {
   pname = "health-check";
-  version = "0.03.05";
+  version = "0.03.10";
 
-  src = fetchurl {
-    url = "https://kernel.ubuntu.com/~cking/tarballs/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "1qxmkdl4pa043yg4kq5ffapm0c2cmm64h3v2c3xhnx0ad5pbhy5z";
+  src = fetchFromGitHub {
+    owner = "ColinIanKing";
+    repo = pname;
+    rev = "V${version}";
+    hash = "sha256-1dm7tl7DHv1CzuLe1/UewDSUOanO0hN+STkPrAHcZmI=";
   };
 
   buildInputs = [ json_c libbsd ];
@@ -16,11 +18,12 @@ stdenv.mkDerivation rec {
   installFlags = [
     "BINDIR=${placeholder "out"}/bin"
     "MANDIR=${placeholder "out"}/share/man/man8"
+    "BASHDIR=${placeholder "out"}/share/bash-completion/completions"
   ];
 
   meta = with lib; {
     description = "Process monitoring tool";
-    homepage = "https://kernel.ubuntu.com/~cking/health-check/";
+    homepage = "https://github.com/ColinIanKing/health-check";
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ dtzWill ];
diff --git a/pkgs/os-specific/linux/hostapd/default.nix b/pkgs/os-specific/linux/hostapd/default.nix
index 5d4edc4f7e7..268e178aad0 100644
--- a/pkgs/os-specific/linux/hostapd/default.nix
+++ b/pkgs/os-specific/linux/hostapd/default.nix
@@ -106,7 +106,7 @@ stdenv.mkDerivation rec {
     repositories.git = "git://w1.fi/hostap.git";
     description = "A user space daemon for access point and authentication servers";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ phreedom ninjatrappeur hexa ];
+    maintainers = with maintainers; [ ninjatrappeur hexa ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/os-specific/linux/kernel/hardened/patches.json b/pkgs/os-specific/linux/kernel/hardened/patches.json
index faeff2148e1..1242aa8eba5 100644
--- a/pkgs/os-specific/linux/kernel/hardened/patches.json
+++ b/pkgs/os-specific/linux/kernel/hardened/patches.json
@@ -2,51 +2,51 @@
     "4.14": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-4.14.257-hardened1.patch",
-            "sha256": "1jqd7drkjpfs9ajkvz0m0l6p0hp74ffchffcrkivqqc99cgzi666",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.14.257-hardened1/linux-hardened-4.14.257-hardened1.patch"
+            "name": "linux-hardened-4.14.258-hardened1.patch",
+            "sha256": "0rni42mbvyw0f9032i6bkgcwnzfw472vimd5l1q7rp52m63z6vbk",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.14.258-hardened1/linux-hardened-4.14.258-hardened1.patch"
         },
-        "sha256": "0jnw02jphvm9zcviwwymxyhq8kd0bk0v1827ninnv6bdy3140izv",
-        "version": "4.14.257"
+        "sha256": "162bzhm0k8kipgk0ma745rjcl33rqhpwxdfdz3q6rkp48b82kbvi",
+        "version": "4.14.258"
     },
     "4.19": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-4.19.220-hardened1.patch",
-            "sha256": "0i2vcwcan23h6vq9xy2fpi95saw6cgk2l2sfmy7xspkff1avhnns",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.19.220-hardened1/linux-hardened-4.19.220-hardened1.patch"
+            "name": "linux-hardened-4.19.221-hardened1.patch",
+            "sha256": "0lw4lysiv5h1vlkwlz2z1kv78wsszj1xc383i2qkzfsb4l9vsm7h",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.19.221-hardened1/linux-hardened-4.19.221-hardened1.patch"
         },
-        "sha256": "0q5hrh6q2f2r97nff136db7367p3hn0la2gl7q4knms3g8fis1jq",
-        "version": "4.19.220"
+        "sha256": "1yg1cibyn53gpjnxfgj2qxxi8k3l7gv1ri6kywvp6sk5bygx8jd3",
+        "version": "4.19.221"
     },
     "5.10": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-5.10.84-hardened1.patch",
-            "sha256": "1hl213iwf3gv81w68win2z4zwbkq6vxpg3dwy9h8md3kdm9pnhzr",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.10.84-hardened1/linux-hardened-5.10.84-hardened1.patch"
+            "name": "linux-hardened-5.10.87-hardened1.patch",
+            "sha256": "1r1vyf9wy49s7pfskxlng17n0khi1dpxg5cm4yfnbbq0gdisnh1f",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.10.87-hardened1/linux-hardened-5.10.87-hardened1.patch"
         },
-        "sha256": "0g935v0khv0i2qlrwr656hxl28m6zlbclc9rv15nq46xf8fjg5kf",
-        "version": "5.10.84"
+        "sha256": "0jz6xhph7x0x11cjmypaw5gh8z4d53dcgx2gmg7k6d06ydq8n4h3",
+        "version": "5.10.87"
     },
     "5.15": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-5.15.7-hardened1.patch",
-            "sha256": "0s3lh59lgl5ki5wvpigiv0n3psa9k0aq058aiyxykaw36qdwahy6",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.15.7-hardened1/linux-hardened-5.15.7-hardened1.patch"
+            "name": "linux-hardened-5.15.10-hardened1.patch",
+            "sha256": "1fn37pg10w1m4cr4g0ibs5fvqs1yx3y776daxv836naffl1001fm",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.15.10-hardened1/linux-hardened-5.15.10-hardened1.patch"
         },
-        "sha256": "1caxpqmik6gkhk3437pcgfq6vvlbs962hylgbh64iizd76l5142x",
-        "version": "5.15.7"
+        "sha256": "0jsv8lialjwp91qg9c9rh8rhn49a70ryyhzl19bxq3fhz1fwyks8",
+        "version": "5.15.10"
     },
     "5.4": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-5.4.164-hardened1.patch",
-            "sha256": "1kynk3979jx7b03gkan7b92vf3719wvkdzn5dmdrliy1g5pzx87k",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.4.164-hardened1/linux-hardened-5.4.164-hardened1.patch"
+            "name": "linux-hardened-5.4.167-hardened1.patch",
+            "sha256": "03mj8nncfpqf5j6l66239saxv251rh5infhl0jjyx1znhfzavg0p",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.4.167-hardened1/linux-hardened-5.4.167-hardened1.patch"
         },
-        "sha256": "0142nic300xjdz9s6w1cp6cyhk2c2wpks9wxzqca6jz4da7k0l9r",
-        "version": "5.4.164"
+        "sha256": "19x5f3s5f4nqzjb61g22rs0hnmk43q4b7sm7mc4j1q3y44b33r5l",
+        "version": "5.4.167"
     }
 }
diff --git a/pkgs/os-specific/linux/kernel/linux-4.14.nix b/pkgs/os-specific/linux/kernel/linux-4.14.nix
index 1fd9c6f6bbb..3d306725075 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 lib;
 
 buildLinux (args // rec {
-  version = "4.14.257";
+  version = "4.14.258";
 
   # 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 = "0jnw02jphvm9zcviwwymxyhq8kd0bk0v1827ninnv6bdy3140izv";
+    sha256 = "162bzhm0k8kipgk0ma745rjcl33rqhpwxdfdz3q6rkp48b82kbvi";
   };
 } // (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 1b649138911..c1247c995aa 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 lib;
 
 buildLinux (args // rec {
-  version = "4.19.220";
+  version = "4.19.221";
 
   # 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 = "0q5hrh6q2f2r97nff136db7367p3hn0la2gl7q4knms3g8fis1jq";
+    sha256 = "1yg1cibyn53gpjnxfgj2qxxi8k3l7gv1ri6kywvp6sk5bygx8jd3";
   };
 } // (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 ef4448021a2..a3c1bb1131d 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.4.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.4.nix
@@ -1,12 +1,12 @@
 { buildPackages, fetchurl, perl, buildLinux, nixosTests, stdenv, ... } @ args:
 
 buildLinux (args // rec {
-  version = "4.4.294";
+  version = "4.4.295";
   extraMeta.branch = "4.4";
   extraMeta.broken = stdenv.isAarch64;
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "0k0h5m1ng2049d5ggrq4q81vgsfmdpkqla73vg2a3bf2v6ycjmc7";
+    sha256 = "1h3i2lgm2sy325f58jildip7m6sb4hr2n9pm3gc3h2gash65kc2r";
   };
 } // (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 2b1b53adb01..f9c9226831e 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.9.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.9.nix
@@ -1,12 +1,12 @@
 { buildPackages, fetchurl, perl, buildLinux, nixosTests, stdenv, ... } @ args:
 
 buildLinux (args // rec {
-  version = "4.9.292";
+  version = "4.9.293";
   extraMeta.branch = "4.9";
   extraMeta.broken = stdenv.isAarch64;
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "0y3b6qqv6vrh2p5wwv5bicvbqrvxf1y5xm4myy5pk6yp2igws3kd";
+    sha256 = "0l64rz6ly5ls23lqq0cv98xb4z2mimp2jrsjrs6kq3zm4k2mm4gs";
   };
 } // (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 43b0d7d1a32..908b863d145 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 lib;
 
 buildLinux (args // rec {
-  version = "5.10.84";
+  version = "5.10.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 = "0g935v0khv0i2qlrwr656hxl28m6zlbclc9rv15nq46xf8fjg5kf";
+    sha256 = "0jz6xhph7x0x11cjmypaw5gh8z4d53dcgx2gmg7k6d06ydq8n4h3";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-5.15.nix b/pkgs/os-specific/linux/kernel/linux-5.15.nix
index 603182325bb..38405032e0d 100644
--- a/pkgs/os-specific/linux/kernel/linux-5.15.nix
+++ b/pkgs/os-specific/linux/kernel/linux-5.15.nix
@@ -3,7 +3,7 @@
 with lib;
 
 buildLinux (args // rec {
-  version = "5.15.7";
+  version = "5.15.10";
 
   # 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 = "1caxpqmik6gkhk3437pcgfq6vvlbs962hylgbh64iizd76l5142x";
+    sha256 = "0jsv8lialjwp91qg9c9rh8rhn49a70ryyhzl19bxq3fhz1fwyks8";
   };
 } // (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 9587229daa6..13072865718 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 lib;
 
 buildLinux (args // rec {
-  version = "5.4.164";
+  version = "5.4.167";
 
   # 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 = "0142nic300xjdz9s6w1cp6cyhk2c2wpks9wxzqca6jz4da7k0l9r";
+    sha256 = "19x5f3s5f4nqzjb61g22rs0hnmk43q4b7sm7mc4j1q3y44b33r5l";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-zen.nix b/pkgs/os-specific/linux/kernel/linux-zen.nix
index 508180f298f..e349c3073b6 100644
--- a/pkgs/os-specific/linux/kernel/linux-zen.nix
+++ b/pkgs/os-specific/linux/kernel/linux-zen.nix
@@ -2,7 +2,7 @@
 
 let
   # having the full version string here makes it easier to update
-  modDirVersion = "5.15.6-zen2";
+  modDirVersion = "5.15.8-zen1";
   parts = lib.splitString "-" modDirVersion;
   version = lib.elemAt parts 0;
   suffix = lib.elemAt parts 1;
@@ -19,7 +19,7 @@ buildLinux (args // {
     owner = "zen-kernel";
     repo = "zen-kernel";
     rev = "v${modDirVersion}";
-    sha256 = "sha256-lakNE+Ac3AHfD6e9haXkwQL134UNduk8o8UNtyAQ4U0=";
+    sha256 = "sha256-vuMgxdGjTpR4iVVm1y28Hj3CdfpwGLnTpyZEnz3jd1U=";
   };
 
   structuredExtraConfig = with lib.kernel; {
diff --git a/pkgs/os-specific/linux/libsepol/default.nix b/pkgs/os-specific/linux/libsepol/default.nix
index c1df217944c..5fa51ac2238 100644
--- a/pkgs/os-specific/linux/libsepol/default.nix
+++ b/pkgs/os-specific/linux/libsepol/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
     description = "SELinux binary policy manipulation library";
     homepage = "http://userspace.selinuxproject.org";
     platforms = platforms.linux;
-    maintainers = [ maintainers.phreedom ];
+    maintainers = [ ];
     license = lib.licenses.gpl2Plus;
   };
 }
diff --git a/pkgs/os-specific/linux/liquidtux/default.nix b/pkgs/os-specific/linux/liquidtux/default.nix
new file mode 100644
index 00000000000..a306135f73b
--- /dev/null
+++ b/pkgs/os-specific/linux/liquidtux/default.nix
@@ -0,0 +1,33 @@
+{ lib, stdenv, fetchFromGitHub, kernel }:
+
+stdenv.mkDerivation rec {
+  name = "liquidtux-${version}-${kernel.version}";
+  version = "unstable-2021-12-16";
+
+  src = fetchFromGitHub {
+    owner = "liquidctl";
+    repo = "liquidtux";
+    rev = "342defc0e22ea58f8ab2ab0f191ad3fd302c44cb";
+    sha256 = "12rc3vzfq8vnq9x9ca6swk5ag0xkpgkzmga8ga7q80mah9kxbaax";
+  };
+
+  hardeningDisable = [ "pic" ];
+
+  nativeBuildInputs = kernel.moduleBuildDependencies;
+
+  makeFlags = [
+    "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
+  ];
+
+  installPhase = ''
+    install nzxt-grid3.ko nzxt-kraken2.ko nzxt-kraken3.ko nzxt-smart2.ko -Dm444 -t ${placeholder "out"}/lib/modules/${kernel.modDirVersion}/kernel/drivers/hwmon
+  '';
+
+  meta = with lib; {
+    description = "Linux kernel hwmon drivers for AIO liquid coolers and other devices";
+    homepage = "https://github.com/liquidctl/liquidtux";
+    license = licenses.gpl2;
+    platforms = [ "x86_64-linux" "i686-linux" ];
+    maintainers = with maintainers; [ nickhu ];
+  };
+}
diff --git a/pkgs/os-specific/linux/nvidia-x11/default.nix b/pkgs/os-specific/linux/nvidia-x11/default.nix
index 98ab557cc11..2af6db7faf3 100644
--- a/pkgs/os-specific/linux/nvidia-x11/default.nix
+++ b/pkgs/os-specific/linux/nvidia-x11/default.nix
@@ -19,10 +19,10 @@ rec {
   # Policy: use the highest stable version as the default (on our master).
   stable = if stdenv.hostPlatform.system == "x86_64-linux"
     then generic {
-      version = "495.44";
-      sha256_64bit = "0j4agxfdswadxkd9hz9j5cq4q3jmhwdnvqclxxkhl5jvh5knm1zi";
-      settingsSha256 = "0v8gqbhjsjjsc83cqacikj9bvs10bq6i34ca8l07zvsf8hfr2ziz";
-      persistencedSha256 = "19rv7vskv61q4gh59nyrfyqyqi565wzjbcfddp8wfvng4dcy18ld";
+      version = "495.46";
+      sha256_64bit = "2Dt30X2gxUZnqlsT1uqVpcUTBCV7Hs8vjUo7WuMcYvU=";
+      settingsSha256 = "vbcZYn+UBBGwjfrJ6SyXt3+JLBeNcXK4h8mjj7qxZPk=";
+      persistencedSha256 = "ieYqkVxe26cLw1LUgBsFSSowAyfZkTcItIzQCestCXI=";
     }
     else legacy_390;
 
@@ -54,10 +54,10 @@ rec {
 
   # Last one supporting Kepler architecture
   legacy_470 = generic {
-      version = "470.86";
-      sha256_64bit = "sha256:0krwcxc0j19vjnk8sv6mx1lin2rm8hcfhc2hg266846jvcws1dsg";
-      settingsSha256 = "sha256:1lnj5hwmfkzs664fxlhljqy323394s1i7qzlpsjyrpm07sa93bky";
-      persistencedSha256 = "sha256:0apj764zc81ayb8nm9bf7cdicfinarv0gfijy2dxynbwz2xdlyvq";
+      version = "470.94";
+      sha256_64bit = "lYWqKTMOutm98izjyiusICbIWpoy8D18WfcUp3mFAOs=";
+      settingsSha256 = "blJNKuFu/Th/ceexkKhTH/eYk8miUlTT+ESrcIyJNn0=";
+      persistencedSha256 = "xnccQ/EgafwnReBlk5Y7iClAj4hwXyFq9gUmwqyEuwE=";
   };
 
   # Last one supporting x86
diff --git a/pkgs/os-specific/linux/power-calibrate/default.nix b/pkgs/os-specific/linux/power-calibrate/default.nix
index d62990ed4ff..884b2d0e01c 100644
--- a/pkgs/os-specific/linux/power-calibrate/default.nix
+++ b/pkgs/os-specific/linux/power-calibrate/default.nix
@@ -1,22 +1,25 @@
-{ stdenv, lib, fetchurl }:
+{ stdenv, lib, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
   pname = "power-calibrate";
-  version = "0.01.29";
+  version = "0.01.34";
 
-  src = fetchurl {
-    url = "https://kernel.ubuntu.com/~cking/tarballs/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "1v8wvhjqglkvk9cl2b48lkcwhbc6nsdi3hjd7sap4hyvd6703pgs";
+  src = fetchFromGitHub {
+    owner = "ColinIanKing";
+    repo = pname;
+    rev = "V${version}";
+    hash = "sha256-T2fCTE+snNt1ylOpVR0JfT2x0lWrgItpfjtUx/zjaQw=";
   };
 
   installFlags = [
     "BINDIR=${placeholder "out"}/bin"
     "MANDIR=${placeholder "out"}/share/man/man8"
+    "BASHDIR=${placeholder "out"}/share/bash-completion/completions"
   ];
 
   meta = with lib; {
     description = "Tool to calibrate power consumption";
-    homepage = "https://kernel.ubuntu.com/~cking/power-calibrate/";
+    homepage = "https://github.com/ColinIanKing/power-calibrate";
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ dtzWill ];
diff --git a/pkgs/os-specific/linux/powerstat/default.nix b/pkgs/os-specific/linux/powerstat/default.nix
index f80b7425cd4..86f2e124ed2 100644
--- a/pkgs/os-specific/linux/powerstat/default.nix
+++ b/pkgs/os-specific/linux/powerstat/default.nix
@@ -1,24 +1,25 @@
-{ stdenv, lib, fetchurl }:
+{ stdenv, lib, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
   pname = "powerstat";
-  version = "0.02.25";
+  version = "0.02.27";
 
-  src = fetchurl {
-    url = "https://kernel.ubuntu.com/~cking/tarballs/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-C6MCOXnElDI69QkLKd2X2SLved8cRCN0Q6BhUvvqsTY=";
+  src = fetchFromGitHub {
+    owner = "ColinIanKing";
+    repo = pname;
+    rev = "V${version}";
+    hash = "sha256-P6DhsHnB+ak35JpUfD8Q8XbgMhI1QKKe31B8uMT2ZcY=";
   };
 
-  installFlags = [ "DESTDIR=${placeholder "out"}" ];
-
-  postInstall = ''
-    mv $out/usr/* $out
-    rm -r $out/usr
-  '';
+  installFlags = [
+    "BINDIR=${placeholder "out"}/bin"
+    "MANDIR=${placeholder "out"}/share/man/man8"
+    "BASHDIR=${placeholder "out"}/share/bash-completion/completions"
+  ];
 
   meta = with lib; {
     description = "Laptop power measuring tool";
-    homepage = "https://kernel.ubuntu.com/~cking/powerstat/";
+    homepage = "https://github.com/ColinIanKing/powerstat";
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ womfoo ];
diff --git a/pkgs/os-specific/linux/sgx/psw/default.nix b/pkgs/os-specific/linux/sgx/psw/default.nix
index e449c99b077..b418d5c1822 100644
--- a/pkgs/os-specific/linux/sgx/psw/default.nix
+++ b/pkgs/os-specific/linux/sgx/psw/default.nix
@@ -25,14 +25,14 @@ stdenv.mkDerivation rec {
     let
       ae.prebuilt = fetchurl {
         url = "https://download.01.org/intel-sgx/sgx-linux/${versionTag}/prebuilt_ae_${versionTag}.tar.gz";
-        hash = "sha256-nGKZEpT2Mx0DLgqjv9qbZqBt1pQaSHcnA0K6nHma3sk";
+        hash = "sha256-JriA9UGYFkAPuCtRizk8RMM1YOYGR/eO9ILnx47A40s=";
       };
       dcap = rec {
-        version = "1.11";
+        version = "1.12.1";
         filename = "prebuilt_dcap_${version}.tar.gz";
         prebuilt = fetchurl {
           url = "https://download.01.org/intel-sgx/sgx-dcap/${version}/linux/${filename}";
-          hash = "sha256-ShGScS4yNLki04RNPxxLvqzGmy4U1L0gVETvfAo8w9M=";
+          hash = "sha256-V/XHva9Sq3P36xSW+Sd0G6Dnk4H0ANO1Ns/u+FI1eGI=";
         };
       };
     in
diff --git a/pkgs/os-specific/linux/sgx/sdk/default.nix b/pkgs/os-specific/linux/sgx/sdk/default.nix
index e08511272af..18876f927e8 100644
--- a/pkgs/os-specific/linux/sgx/sdk/default.nix
+++ b/pkgs/os-specific/linux/sgx/sdk/default.nix
@@ -1,7 +1,8 @@
 { lib
 , stdenv
-, fetchzip
 , fetchFromGitHub
+, fetchpatch
+, fetchzip
 , callPackage
 , autoconf
 , automake
@@ -25,40 +26,33 @@
 }:
 stdenv.mkDerivation rec {
   pname = "sgx-sdk";
-  version = "2.14.100.2";
-
-  versionTag = lib.concatStringsSep "." (lib.take 2 (lib.splitVersion version));
+  # Version as given in se_version.h
+  version = "2.15.101.1";
+  # Version as used in the Git tag
+  versionTag = "2.15.1";
 
   src = fetchFromGitHub {
     owner = "intel";
     repo = "linux-sgx";
     rev = "sgx_${versionTag}";
-    hash = "sha256-D/QZWBUe1gRbbjWnV10b7IPoM3utefAsOEKnQuasIrM=";
+    hash = "sha256-e11COTR5eDPMB81aPRKatvIkAOeX+OZgnvn2utiv78M=";
     fetchSubmodules = true;
   };
 
-  postUnpack =
-    let
-      optlibName = "optimized_libs_${versionTag}.tar.gz";
-      optimizedLibs = fetchzip {
-        url = "https://download.01.org/intel-sgx/sgx-linux/${versionTag}/${optlibName}";
-        hash = "sha256-FjNhNV9+KDMvBYdWXZbua6qYOc3Z1/jtcF4j52TSxQY=";
-        stripRoot = false;
-      };
-      sgxIPPCryptoHeader = "${optimizedLibs}/external/ippcp_internal/inc/sgx_ippcp.h";
-    in
-    ''
-      # Make sure this is the right version of linux-sgx
-      grep -q '"${version}"' "$src/common/inc/internal/se_version.h" \
-        || (echo "Could not find expected version ${version} in linux-sgx source" >&2 && exit 1)
-
-      # Make sure we use the correct version to build IPP Crypto
-      grep -q 'optlib_name=${optlibName}' "$src/download_prebuilt.sh" \
-        || (echo "Could not find expected optimized libs ${optlibName} in linux-sgx source" >&2 && exit 1)
+  postUnpack = ''
+    # Make sure this is the right version of linux-sgx
+    grep -q '"${version}"' "$src/common/inc/internal/se_version.h" \
+      || (echo "Could not find expected version ${version} in linux-sgx source" >&2 && exit 1)
+  '';
 
-      # Add missing sgx_ippcp.h: https://github.com/intel/linux-sgx/pull/752
-      ln -s ${sgxIPPCryptoHeader} "$sourceRoot/external/ippcp_internal/inc/sgx_ippcp.h"
-    '';
+  patches = [
+    # Commit to add missing sgx_ippcp.h not yet part of this release
+    (fetchpatch {
+      name = "add-missing-sgx_ippcp-header.patch";
+      url = "https://github.com/intel/linux-sgx/commit/51d1087b707a47e18588da7bae23e5f686d44be6.patch";
+      sha256 = "sha256-RZC14H1oEuGp0zn8CySDPy1KNqP/POqb+KMYoQt2A7M=";
+    })
+  ];
 
   postPatch = ''
     # https://github.com/intel/linux-sgx/pull/730
@@ -121,7 +115,7 @@ stdenv.mkDerivation rec {
 
       pushd 'external/ippcp_internal'
 
-      install ${ipp-crypto-no_mitigation}/include/* inc/
+      cp -r ${ipp-crypto-no_mitigation}/include/. inc/
 
       install -D -m a+rw ${ipp-crypto-no_mitigation}/lib/intel64/libippcp.a \
         lib/linux/intel64/no_mitigation/libippcp.a
@@ -131,7 +125,7 @@ stdenv.mkDerivation rec {
         lib/linux/intel64/cve_2020_0551_cf/libippcp.a
 
       rm inc/ippcp.h
-      patch ${ipp-crypto-no_mitigation}/include/ippcp.h -i inc/ippcp20u3.patch -o inc/ippcp.h
+      patch ${ipp-crypto-no_mitigation}/include/ippcp.h -i inc/ippcp21u3.patch -o inc/ippcp.h
 
       install -D ${ipp-crypto-no_mitigation.src}/LICENSE license/LICENSE
 
@@ -227,8 +221,7 @@ stdenv.mkDerivation rec {
       --replace '/opt/intel/sgxsdk' "$out"
     for file in $out/share/SampleCode/*/Makefile; do
       substituteInPlace $file \
-        --replace '/opt/intel/sgxsdk' "$out" \
-        --replace '$(SGX_SDK)/buildenv.mk' "$out/share/bin/buildenv.mk"
+        --replace '/opt/intel/sgxsdk' "$out"
     done
 
     header "Fixing BINUTILS_DIR in buildenv.mk"
diff --git a/pkgs/os-specific/linux/sgx/sdk/ipp-crypto.nix b/pkgs/os-specific/linux/sgx/sdk/ipp-crypto.nix
index ac5fd2ad1cc..85fcfc9c554 100644
--- a/pkgs/os-specific/linux/sgx/sdk/ipp-crypto.nix
+++ b/pkgs/os-specific/linux/sgx/sdk/ipp-crypto.nix
@@ -2,23 +2,35 @@
 , stdenv
 , fetchFromGitHub
 , cmake
-, python3
 , nasm
+, openssl
+, python3
 , extraCmakeFlags ? [ ]
 }:
 
 stdenv.mkDerivation rec {
   pname = "ipp-crypto";
-  version = "2020_update3";
+  version = "2021.3";
 
   src = fetchFromGitHub {
     owner = "intel";
     repo = "ipp-crypto";
-    rev = "ipp-crypto_${version}";
-    sha256 = "02vlda6mlhbd12ljzdf65klpx4kmx1ylch9w3yllsiya4hwqzy4b";
+    rev = "ippcp_${version}";
+    hash = "sha256-QEJXvQ//zhQqibFxXwPMdS1MHewgyb24LRmkycVSGrM=";
   };
 
+  # Fix typo: https://github.com/intel/ipp-crypto/pull/33
+  postPatch = ''
+    substituteInPlace sources/cmake/ippcp-gen-config.cmake \
+      --replace 'ippcpo-config.cmake' 'ippcp-config.cmake'
+  '';
+
   cmakeFlags = [ "-DARCH=intel64" ] ++ extraCmakeFlags;
 
-  nativeBuildInputs = [ cmake python3 nasm ];
+  nativeBuildInputs = [
+    cmake
+    nasm
+    openssl
+    python3
+  ];
 }
diff --git a/pkgs/os-specific/linux/sgx/sdk/samples.nix b/pkgs/os-specific/linux/sgx/sdk/samples.nix
index 82dbc24568e..21b31f82447 100644
--- a/pkgs/os-specific/linux/sgx/sdk/samples.nix
+++ b/pkgs/os-specific/linux/sgx/sdk/samples.nix
@@ -12,7 +12,11 @@ let
     buildInputs = [
       sgx-sdk
     ];
-    enableParallelBuilding = true;
+
+    # The samples don't have proper support for parallel building
+    # causing them to fail randomly.
+    enableParallelBuilding = false;
+
     buildFlags = [
       "SGX_MODE=SIM"
     ];
@@ -44,6 +48,7 @@ in
     # Requires interaction
     doInstallCheck = false;
   });
+  protobufSGXDemo = buildSample "ProtobufSGXDemo";
   remoteAttestation = (buildSample "RemoteAttestation").overrideAttrs (oldAttrs: {
     dontFixup = true;
     installCheckPhase = ''
@@ -52,6 +57,7 @@ in
   });
   sampleEnclave = buildSample "SampleEnclave";
   sampleEnclavePCL = buildSample "SampleEnclavePCL";
+  sampleEnclaveGMIPP = buildSample "SampleEnclaveGMIPP";
   sealUnseal = buildSample "SealUnseal";
   switchless = buildSample "Switchless";
 }
diff --git a/pkgs/os-specific/linux/smemstat/default.nix b/pkgs/os-specific/linux/smemstat/default.nix
index f95532ada3c..5d78a3b3023 100644
--- a/pkgs/os-specific/linux/smemstat/default.nix
+++ b/pkgs/os-specific/linux/smemstat/default.nix
@@ -1,27 +1,23 @@
-{ stdenv, lib, fetchurl, fetchpatch, ncurses }:
+{ stdenv, lib, fetchFromGitHub, ncurses }:
 
 stdenv.mkDerivation rec {
   pname = "smemstat";
-  version = "0.02.10";
-  src = fetchurl {
-    url = "https://kernel.ubuntu.com/~cking/tarballs/smemstat/smemstat-${version}.tar.xz";
-    sha256 = "sha256-Vrs1jOg5yHdEffVo769aaxSawo4iZtGrFJ65Nu+RhcU=";
+  version = "0.02.11";
+
+  src = fetchFromGitHub {
+    owner = "ColinIanKing";
+    repo = pname;
+    rev = "V${version}";
+    hash = "sha256-RvHBrcyNB/zqxEY27twgMsjHNg8kzJryqnIAM7+vpg8=";
   };
-  patches = [
-    # Pull patch pending upstream inclusion to support ncurses-6.3:
-    #  https://github.com/ColinIanKing/smemstat/pull/1
-    (fetchpatch {
-      name = "ncurses-6.3.patch";
-      url = "https://github.com/ColinIanKing/smemstat/commit/95119558d1679295c9f9f7f618ddbe212674a4bf.patch";
-      sha256 = "sha256-Cl3Y0HIy1nXqBux6+AXoPuKJatSv3Z0X/4bD+MNjkAQ=";
-    })
-  ];
+
   buildInputs = [ ncurses ];
-  installFlags = [ "DESTDIR=$(out)" ];
-  postInstall = ''
-    mv $out/usr/* $out
-    rm -r $out/usr
-  '';
+  installFlags = [
+    "BINDIR=${placeholder "out"}/bin"
+    "MANDIR=${placeholder "out"}/share/man/man8"
+    "BASHDIR=${placeholder "out"}/share/bash-completion/completions"
+  ];
+
   meta = with lib; {
     description = "Memory usage monitoring tool";
     homepage = "https://github.com/ColinIanKing/smemstat";
diff --git a/pkgs/os-specific/linux/sssd/default.nix b/pkgs/os-specific/linux/sssd/default.nix
index 4a05d89ac80..d0ff53fb96b 100644
--- a/pkgs/os-specific/linux/sssd/default.nix
+++ b/pkgs/os-specific/linux/sssd/default.nix
@@ -1,10 +1,11 @@
 { lib, stdenv, fetchFromGitHub, autoreconfHook, glibc, augeas, dnsutils, c-ares, curl,
   cyrus_sasl, ding-libs, libnl, libunistring, nss, samba, nfs-utils, doxygen,
-  python, python3, pam, popt, talloc, tdb, tevent, pkg-config, ldb, openldap,
+  python3, pam, popt, talloc, tdb, tevent, pkg-config, ldb, openldap,
   pcre2, libkrb5, cifs-utils, glib, keyutils, dbus, fakeroot, libxslt, libxml2,
-  libuuid, ldap, systemd, nspr, check, cmocka, uid_wrapper, p11-kit,
+  libuuid, systemd, nspr, check, cmocka, uid_wrapper, p11-kit,
   nss_wrapper, ncurses, Po4a, http-parser, jansson,
   docbook_xsl, docbook_xml_dtd_44,
+  nixosTests,
   withSudo ? false }:
 
 let
@@ -12,13 +13,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "sssd";
-  version = "2.6.0";
+  version = "2.6.1";
 
   src = fetchFromGitHub {
     owner = "SSSD";
     repo = pname;
     rev = version;
-    sha256 = "1ik0x0b7s38d7n0aqhl31r0asxw6qcdb31hx9qydk87yg3n6rziv";
+    sha256 = "sha256-AcfNm/0VpjD+Aa1ZUwI2EI/i0s06rxQCfabv3a/AM38=";
   };
 
   postPatch = ''
@@ -30,7 +31,7 @@ stdenv.mkDerivation rec {
 
   preConfigure = ''
     export SGML_CATALOG_FILES="${docbookFiles}"
-    export PYTHONPATH=${ldap}/lib/python2.7/site-packages
+    export PYTHONPATH=$(find ${python3.pkgs.ldap} -type d -name site-packages)
     export PATH=$PATH:${openldap}/libexec
 
     configureFlagsArray=(
@@ -40,7 +41,6 @@ stdenv.mkDerivation rec {
       --enable-pammoddir=$out/lib/security
       --with-os=fedora
       --with-pid-path=/run
-      --with-python2-bindings
       --with-python3-bindings
       --with-syslog=journald
       --without-selinux
@@ -56,10 +56,10 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
   nativeBuildInputs = [ autoreconfHook pkg-config doxygen ];
   buildInputs = [ augeas dnsutils c-ares curl cyrus_sasl ding-libs libnl libunistring nss
-                  samba nfs-utils p11-kit python python3 popt
+                  samba nfs-utils p11-kit python3 popt
                   talloc tdb tevent ldb pam openldap pcre2 libkrb5
                   cifs-utils glib keyutils dbus fakeroot libxslt libxml2
-                  libuuid ldap systemd nspr check cmocka uid_wrapper
+                  libuuid python3.pkgs.ldap systemd nspr check cmocka uid_wrapper
                   nss_wrapper ncurses Po4a http-parser jansson ];
 
   makeFlags = [
@@ -88,6 +88,8 @@ stdenv.mkDerivation rec {
     find "$out" -depth -type d -exec rmdir --ignore-fail-on-non-empty {} \;
   '';
 
+  passthru.tests = { inherit (nixosTests) sssd sssd-ldap; };
+
   meta = with lib; {
     description = "System Security Services Daemon";
     homepage = "https://sssd.io/";
diff --git a/pkgs/os-specific/linux/sysdig/default.nix b/pkgs/os-specific/linux/sysdig/default.nix
index 2c51e8c36d8..39c07f48a29 100644
--- a/pkgs/os-specific/linux/sysdig/default.nix
+++ b/pkgs/os-specific/linux/sysdig/default.nix
@@ -1,39 +1,42 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, kernel, installShellFiles
+{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, kernel, installShellFiles, pkg-config
 , luajit, ncurses, perl, jsoncpp, libb64, openssl, curl, jq, gcc, elfutils, tbb, protobuf, grpc
 }:
 
 with lib;
+let
+  # Compare with https://github.com/draios/sysdig/blob/dev/cmake/modules/falcosecurity-libs.cmake
+  libsRev = "2160111cd088aea9ae2235d3385ecb0b1ab6623c";
+  libsSha256 = "sha256-TOuxXtrxujyAjzAtlX3/eCfM16mwxnmZ6Wg44SG0dTs=";
+in
 stdenv.mkDerivation rec {
   pname = "sysdig";
-  version = "0.27.1";
+  version = "0.28.0";
 
   src = fetchFromGitHub {
     owner = "draios";
     repo = "sysdig";
     rev = version;
-    sha256 = "sha256-lYjMvxMIReANNwMr62u881Nugrs9piOaN3EmrvGzRns=";
+    sha256 = "sha256-oE3vCmOw+gcmvGqj7Xk5injpNC/YThckJMNg5XRFhME=";
   };
 
-  patches = [
-    # Fix pending upstream inclusion for ncurses-6.3 support:
-    #  https://github.com/draios/sysdig/pull/1810
-    (fetchpatch {
-      name = "ncurses-6.3.patch";
-      url = "https://github.com/draios/sysdig/commit/1e37fffe0337b8f8f8e0b5345db2f8631851c209.patch";
-      sha256 = "sha256-T+yC6iXQ3MY+ub0c+Hv+cC18PV8YlAOKB6YB1Hdm7Yc=";
-      # change 'a/userspace/sinspui' for 'a/userspace/libsinsp' to follow upstream rename.
-      stripLen = 3;
-      extraPrefix = "userspace/libsinsp/";
-    })
-  ];
-
-  nativeBuildInputs = [ cmake perl installShellFiles ];
+  nativeBuildInputs = [ cmake perl installShellFiles pkg-config ];
   buildInputs = [
     luajit ncurses jsoncpp libb64 openssl curl jq gcc elfutils tbb protobuf grpc
   ] ++ optionals (kernel != null) kernel.moduleBuildDependencies;
 
   hardeningDisable = [ "pic" ];
 
+  postUnpack = ''
+    cp -r ${fetchFromGitHub {
+      owner = "falcosecurity";
+      repo = "libs";
+      rev = libsRev;
+      sha256 = libsSha256;
+    }} libs
+    chmod -R +w libs
+    cmakeFlagsArray+=("-DFALCOSECURITY_LIBS_SOURCE_DIR=$(pwd)/libs")
+  '';
+
   cmakeFlags = [
     "-DUSE_BUNDLED_DEPS=OFF"
     "-DSYSDIG_VERSION=${version}"
@@ -45,9 +48,8 @@ stdenv.mkDerivation rec {
 
   preConfigure = ''
     cmakeFlagsArray+=(-DCMAKE_EXE_LINKER_FLAGS="-ltbb -lcurl -labsl_synchronization")
-
-    export INSTALL_MOD_PATH="$out"
   '' + optionalString (kernel != null) ''
+    export INSTALL_MOD_PATH="$out"
     export KERNELDIR="${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
   '';
 
@@ -64,12 +66,12 @@ stdenv.mkDerivation rec {
       kernel_dev=${kernel.dev}
       kernel_dev=''${kernel_dev#/nix/store/}
       kernel_dev=''${kernel_dev%%-linux*dev*}
-      if test -f "$out/lib/modules/${kernel.modDirVersion}/extra/sysdig-probe.ko"; then
-          sed -i "s#$kernel_dev#................................#g" $out/lib/modules/${kernel.modDirVersion}/extra/sysdig-probe.ko
+      if test -f "$out/lib/modules/${kernel.modDirVersion}/extra/scap.ko"; then
+          sed -i "s#$kernel_dev#................................#g" $out/lib/modules/${kernel.modDirVersion}/extra/scap.ko
       else
-          xz -d $out/lib/modules/${kernel.modDirVersion}/extra/sysdig-probe.ko.xz
-          sed -i "s#$kernel_dev#................................#g" $out/lib/modules/${kernel.modDirVersion}/extra/sysdig-probe.ko
-          xz $out/lib/modules/${kernel.modDirVersion}/extra/sysdig-probe.ko
+          xz -d $out/lib/modules/${kernel.modDirVersion}/extra/scap.ko.xz
+          sed -i "s#$kernel_dev#................................#g" $out/lib/modules/${kernel.modDirVersion}/extra/scap.ko
+          xz $out/lib/modules/${kernel.modDirVersion}/extra/scap.ko
       fi
     '';
 
diff --git a/pkgs/os-specific/linux/zfs/default.nix b/pkgs/os-specific/linux/zfs/default.nix
index 29e7f3e9b94..7341240f95a 100644
--- a/pkgs/os-specific/linux/zfs/default.nix
+++ b/pkgs/os-specific/linux/zfs/default.nix
@@ -16,7 +16,7 @@
 , enablePython ? true
 
 # for determining the latest compatible linuxPackages
-, linuxPackages_5_10 ? pkgs.linuxKernel.packages.linux_5_10
+, linuxPackages_5_15 ? pkgs.linuxKernel.packages.linux_5_15
 }:
 
 with lib;
@@ -46,7 +46,7 @@ let
       name = "zfs-${configFile}-${version}${optionalString buildKernel "-${kernel.version}"}";
 
       src = fetchFromGitHub {
-        owner = "zfsonlinux";
+        owner = "openzfs";
         repo = "zfs";
         inherit rev sha256;
       };
@@ -215,28 +215,28 @@ in {
   # to be adapted
   zfsStable = common {
     # check the release notes for compatible kernels
-    kernelCompatible = kernel.kernelAtLeast "3.10" && kernel.kernelOlder "5.15";
-    latestCompatibleLinuxPackages = linuxPackages_5_10;
+    kernelCompatible = kernel.kernelAtLeast "3.10" && kernel.kernelOlder "5.16";
+    latestCompatibleLinuxPackages = linuxPackages_5_15;
 
     # this package should point to the latest release.
-    version = "2.1.1";
+    version = "2.1.2";
 
-    sha256 = "sha256-UUuJa5w/GsEvsgH/BnXFsP/dsOt9wwmPqKzDxLPrhiY=";
+    sha256 = "sha256-7oSFZlmjCr+egImIVf429GrFOKn3L3r4SMnK3LHHmL8=";
   };
 
   zfsUnstable = common {
     # check the release notes for compatible kernels
-    kernelCompatible = kernel.kernelAtLeast "3.10" && kernel.kernelOlder "5.15";
-    latestCompatibleLinuxPackages = linuxPackages_5_10;
+    kernelCompatible = kernel.kernelAtLeast "3.10" && kernel.kernelOlder "5.16";
+    latestCompatibleLinuxPackages = linuxPackages_5_15;
 
     # this package should point to a version / git revision compatible with the latest kernel release
     # IMPORTANT: Always use a tagged release candidate or commits from the
     # zfs-<version>-staging branch, because this is tested by the OpenZFS
     # maintainers.
-    version = "2.1.1";
+    version = "2.1.2";
     # rev = "0000000000000000000000000000000000000000";
 
-    sha256 = "sha256-UUuJa5w/GsEvsgH/BnXFsP/dsOt9wwmPqKzDxLPrhiY=";
+    sha256 = "sha256-7oSFZlmjCr+egImIVf429GrFOKn3L3r4SMnK3LHHmL8=";
 
     isUnstable = true;
   };
diff --git a/pkgs/servers/calibre-web/default.nix b/pkgs/servers/calibre-web/default.nix
index a4d08dae2c0..8b8e93bc27a 100644
--- a/pkgs/servers/calibre-web/default.nix
+++ b/pkgs/servers/calibre-web/default.nix
@@ -7,23 +7,15 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "calibre-web";
-  version = "0.6.13";
+  version = "0.6.14";
 
   src = fetchFromGitHub {
     owner = "janeczku";
     repo = "calibre-web";
     rev = version;
-    sha256 = "sha256-zU7ujvFPi4UaaEglIK3YX3TJxBME35NEKKblnJRt0tM=";
+    sha256 = "sha256-rR5pUB3A0WNQxq7ZJ6ykua7hMlzs49aMmVbBUOkOVfA=";
   };
 
-  prePatch = ''
-    substituteInPlace setup.cfg \
-      --replace "requests>=2.11.1,<2.25.0" "requests" \
-      --replace "cps = calibreweb:main" "calibre-web = calibreweb:main" \
-      --replace "PyPDF3>=1.0.0,<1.0.4" "PyPDF3>=1.0.0" \
-      --replace "unidecode>=0.04.19,<1.3.0" "unidecode>=0.04.19"
-  '';
-
   patches = [
     # default-logger.patch switches default logger to /dev/stdout. Otherwise calibre-web tries to open a file relative
     # to its location, which can't be done as the store is read-only. Log file location can later be configured using UI
@@ -42,6 +34,13 @@ python3.pkgs.buildPythonApplication rec {
     mkdir -p src/calibreweb
     mv cps.py src/calibreweb/__init__.py
     mv cps src/calibreweb
+
+    substituteInPlace setup.cfg \
+      --replace "requests>=2.11.1,<2.25.0" "requests" \
+      --replace "cps = calibreweb:main" "calibre-web = calibreweb:main" \
+      --replace "PyPDF3>=1.0.0,<1.0.4" "PyPDF3>=1.0.0" \
+      --replace "unidecode>=0.04.19,<1.3.0" "unidecode>=0.04.19" \
+      --replace "flask-wtf>=0.14.2,<0.16.0" "flask-wtf>=0.14.2"
   '';
 
   # Upstream repo doesn't provide any tests.
@@ -52,6 +51,7 @@ python3.pkgs.buildPythonApplication rec {
     flask-babel
     flask_login
     flask_principal
+    flask_wtf
     iso-639
     lxml
     pypdf3
diff --git a/pkgs/servers/dns/knot-dns/default.nix b/pkgs/servers/dns/knot-dns/default.nix
index 2c731b4f1ff..1938e9c02b6 100644
--- a/pkgs/servers/dns/knot-dns/default.nix
+++ b/pkgs/servers/dns/knot-dns/default.nix
@@ -1,15 +1,15 @@
 { lib, stdenv, fetchurl, pkg-config, gnutls, liburcu, lmdb, libcap_ng, libidn2, libunistring
 , systemd, nettle, libedit, zlib, libiconv, libintl, libmaxminddb, libbpf, nghttp2, libmnl
-, autoreconfHook, nixosTests
+, autoreconfHook, nixosTests, knot-resolver
 }:
 
 stdenv.mkDerivation rec {
   pname = "knot-dns";
-  version = "3.1.4";
+  version = "3.1.5";
 
   src = fetchurl {
     url = "https://secure.nic.cz/files/knot-dns/knot-${version}.tar.xz";
-    sha256 = "05ebca053b4ce62205a095b6885ed1a1167c629ccac2b3c8dcc431bd2deedf70";
+    sha256 = "2da6e50b0662297d55f80e349568224e07fe88cad20bee1d2e22f54bb32da064";
   };
 
   outputs = [ "bin" "out" "dev" ];
@@ -53,7 +53,11 @@ stdenv.mkDerivation rec {
     rm -r "$out"/lib/*.la
   '';
 
-  passthru.tests = { inherit (nixosTests) knot; };
+  passthru.tests = {
+    inherit knot-resolver;
+  } // lib.optionalAttrs stdenv.isLinux {
+    inherit (nixosTests) knot;
+  };
 
   meta = with lib; {
     description = "Authoritative-only DNS server from .cz domain registry";
diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix
index b990786091a..4ac35577682 100644
--- a/pkgs/servers/home-assistant/component-packages.nix
+++ b/pkgs/servers/home-assistant/component-packages.nix
@@ -2,7 +2,7 @@
 # Do not edit!
 
 {
-  version = "2021.12.1";
+  version = "2021.12.2";
   components = {
     "abode" = ps: with ps; [ abodepy ];
     "accuweather" = ps: with ps; [ accuweather ];
@@ -683,7 +683,7 @@
     "qld_bushfire" = ps: with ps; [ georss-qld-bushfire-alert-client ];
     "qnap" = ps: with ps; [ ]; # missing inputs: qnapstats
     "qrcode" = ps: with ps; [ pillow ]; # missing inputs: pyzbar
-    "quantum_gateway" = ps: with ps; [ ]; # missing inputs: quantum-gateway
+    "quantum_gateway" = ps: with ps; [ quantum-gateway ];
     "qvr_pro" = ps: with ps; [ ]; # missing inputs: pyqvrpro
     "qwikswitch" = ps: with ps; [ ]; # missing inputs: pyqwikswitch
     "rachio" = ps: with ps; [ pyturbojpeg aiohttp-cors hass-nabucasa rachiopy ];
diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix
index 8c3ac00f893..4c34e5a7fc4 100644
--- a/pkgs/servers/home-assistant/default.nix
+++ b/pkgs/servers/home-assistant/default.nix
@@ -252,7 +252,7 @@ let
   extraBuildInputs = extraPackages py.pkgs;
 
   # Don't forget to run parse-requirements.py after updating
-  hassVersion = "2021.12.1";
+  hassVersion = "2021.12.2";
 
 in with py.pkgs; buildPythonApplication rec {
   pname = "homeassistant";
@@ -269,7 +269,7 @@ in with py.pkgs; buildPythonApplication rec {
     owner = "home-assistant";
     repo = "core";
     rev = version;
-    hash = "sha256:11qlalfzykbq5ydn2cagkqcbvdjkmjcdpp6lgiys9lyrw1rxycnb";
+    hash = "sha256:0rb6kwvrjq258qv8xh4qbpw3n91bb263dcqp3f1dg45n8mbcdr60";
   };
 
   # 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 f5e2d3ceb61..b7090d01fc3 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 = "20211212.0";
+  version = "20211215.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-cYh8xBUS8rb2koNAq8JwWtrOHSF1jC5v0lq+W1SwiXI=";
+    sha256 = "sha256-G2w+L+tQi47JOygYZ1+VtC96FBPet5klkW0LUeaxWBY=";
   };
 
   # there is nothing to strip in this package
diff --git a/pkgs/servers/http/apache-modules/mod_itk/default.nix b/pkgs/servers/http/apache-modules/mod_itk/default.nix
new file mode 100644
index 00000000000..a36a030899a
--- /dev/null
+++ b/pkgs/servers/http/apache-modules/mod_itk/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, stdenv
+, fetchurl
+, pkg-config
+, mod_ca
+, apr
+, aprutil
+, apacheHttpd
+}:
+
+stdenv.mkDerivation rec {
+  pname = "mod_itk";
+  version = "2.4.7-04";
+
+  src = fetchurl {
+    url = "http://mpm-itk.sesse.net/mpm-itk-${version}.tar.gz";
+    sha256 = "sha256:1kzgd1332pgpxf489kr0vdwsaik0y8wp3q282d4wa5jlk7l877v0";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ mod_ca apr aprutil apacheHttpd ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/modules
+    ${apacheHttpd.dev}/bin/apxs -S LIBEXECDIR=$out/modules -i mpm_itk.la
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "an MPM (Multi-Processing Module) for the Apache web server.";
+    maintainers = [ maintainers.zupo ];
+    homepage = "http://mpm-itk.sesse.net/";
+    license = licenses.asl20;
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/servers/http/envoy/default.nix b/pkgs/servers/http/envoy/default.nix
index d26782560a4..c81d79dbb24 100644
--- a/pkgs/servers/http/envoy/default.nix
+++ b/pkgs/servers/http/envoy/default.nix
@@ -17,8 +17,8 @@ let
     # However, the version string is more useful for end-users.
     # These are contained in a attrset of their own to make it obvious that
     # people should update both.
-    version = "1.17.3";
-    commit = "46bf743b97d0d3f01ff437b2f10cc0bd9cdfe6e4";
+    version = "1.19.1";
+    commit = "a2a1e3eed4214a38608ec223859fcfa8fb679b14";
   };
 in
 buildBazelPackage rec {
@@ -28,7 +28,7 @@ buildBazelPackage rec {
     owner = "envoyproxy";
     repo = "envoy";
     rev = srcVer.commit;
-    hash = "sha256:09zzr4h3zjsb2rkxrvlazpx0jy33yn9j65ilxiqbvv0ckaralqfc";
+    hash = "sha256:1v1hv4blrppnhllsxd9d3k2wl6nhd59r4ydljy389na3bb41jwf9";
 
     extraPostFetch = ''
       chmod -R +w $out
@@ -58,7 +58,7 @@ buildBazelPackage rec {
   ];
 
   fetchAttrs = {
-    sha256 = "sha256:1cy2b73x8jzczq9z9c1kl7zrg5iasvsakb50zxn4mswpmajkbj5h";
+    sha256 = "sha256:0vnl0gq6nhvyzz39jg1bvvna0xyhxalg71bp1jbxib7ql026004r";
     dontUseCmakeConfigure = true;
     dontUseGnConfigure = true;
     preInstall = ''
@@ -75,12 +75,6 @@ buildBazelPackage rec {
         $bazelOut/external/local_config_sh/BUILD
       rm -r $bazelOut/external/go_sdk
 
-      # Replace some wheels which are only used for tests with empty files;
-      # they're nondeterministically built and packed.
-      >$bazelOut/external/config_validation_pip3/PyYAML-5.3.1-cp38-cp38-linux_x86_64.whl
-      >$bazelOut/external/protodoc_pip3/PyYAML-5.3.1-cp38-cp38-linux_x86_64.whl
-      >$bazelOut/external/thrift_pip3/thrift-0.13.0-cp38-cp38-linux_x86_64.whl
-
       # Remove Unix timestamps from go cache.
       rm -rf $bazelOut/external/bazel_gazelle_go_repository_cache/{gocache,pkg/mod/cache,pkg/sumdb}
     '';
diff --git a/pkgs/servers/http/pomerium/default.nix b/pkgs/servers/http/pomerium/default.nix
index 7b28200b284..cbf2fe19435 100644
--- a/pkgs/servers/http/pomerium/default.nix
+++ b/pkgs/servers/http/pomerium/default.nix
@@ -7,19 +7,19 @@
 }:
 
 let
-  inherit (lib) concatStringsSep mapAttrsToList;
+  inherit (lib) concatStringsSep concatMap id mapAttrsToList;
 in
 buildGoModule rec {
   pname = "pomerium";
-  version = "0.14.7";
+  version = "0.15.7";
   src = fetchFromGitHub {
     owner = "pomerium";
     repo = "pomerium";
     rev = "v${version}";
-    hash = "sha256:1jb96jk5qmary4fi1z9zwmppdyskj0qb6qii8s8mwazjjxqj1z2s";
+    hash = "sha256:0adlk4ylny1z43x1dw3ny0s1932vhb61hpf5wdz4r65y8k9qyfgr";
   };
 
-  vendorSha256 = "sha256:1daabi9qc9nx8bafn26iw6rv4vx2xpd0nnk06265aqaksx26db0s";
+  vendorSha256 = "sha256:1fszfbra84pcs8v1h2kf7iy603vf9v2ysg6il76aqmqrxmb1p7nv";
   subPackages = [
     "cmd/pomerium"
     "cmd/pomerium-cli"
@@ -28,38 +28,49 @@ buildGoModule rec {
   ldflags = let
     # Set a variety of useful meta variables for stamping the build with.
     setVars = {
-      Version = "v${version}";
-      BuildMeta = "nixpkgs";
-      ProjectName = "pomerium";
-      ProjectURL = "github.com/pomerium/pomerium";
+      "github.com/pomerium/pomerium/internal/version" = {
+        Version = "v${version}";
+        BuildMeta = "nixpkgs";
+        ProjectName = "pomerium";
+        ProjectURL = "github.com/pomerium/pomerium";
+      };
+      "github.com/pomerium/pomerium/internal/envoy" = {
+        OverrideEnvoyPath = "${envoy}/bin/envoy";
+      };
     };
-    varFlags = concatStringsSep " " (mapAttrsToList (name: value: "-X github.com/pomerium/pomerium/internal/version.${name}=${value}") setVars);
+    concatStringsSpace = list: concatStringsSep " " list;
+    mapAttrsToFlatList = fn: list: concatMap id (mapAttrsToList fn list);
+    varFlags = concatStringsSpace (
+      mapAttrsToFlatList (package: packageVars:
+        mapAttrsToList (variable: value:
+          "-X ${package}.${variable}=${value}"
+        ) packageVars
+      ) setVars);
   in [
     "${varFlags}"
   ];
 
-  nativeBuildInputs = [
-    zip
-  ];
+  preBuild = ''
+    # Replace embedded envoy with nothing.
+    # We set OverrideEnvoyPath above, so rawBinary should never get looked at
+    # but we still need to set a checksum/version.
+    rm internal/envoy/files/files_{darwin,linux}*.go
+    cat <<EOF >internal/envoy/files/files_generic.go
+    package files
 
-  # Pomerium expects to have envoy append to it in a zip.
-  # We use a store-only (-0) zip, so that the Nix scanner can find any store references we had in the envoy binary.
-  postBuild = ''
-    # Append Envoy
-    pushd $NIX_BUILD_TOP
-    mkdir -p envoy
-    cd envoy
-    cp ${envoy}/bin/envoy envoy
-    zip -0 envoy.zip envoy
-    popd
+    import _ "embed" // embed
 
-    mv $GOPATH/bin/pomerium $GOPATH/bin/pomerium.old
-    cat $GOPATH/bin/pomerium.old $NIX_BUILD_TOP/envoy/envoy.zip >$GOPATH/bin/pomerium
-    zip --adjust-sfx $GOPATH/bin/pomerium
-  '';
+    var rawBinary []byte
 
-  # We also need to set dontStrip to avoid having the envoy ZIP stripped off the end.
-  dontStrip = true;
+    //go:embed envoy.sha256
+    var rawChecksum string
+
+    //go:embed envoy.version
+    var rawVersion string
+    EOF
+    sha256sum '${envoy}/bin/envoy' > internal/envoy/files/envoy.sha256
+    echo '${envoy.version}' > internal/envoy/files/envoy.version
+  '';
 
   installPhase = ''
     install -Dm0755 $GOPATH/bin/pomerium $out/bin/pomerium
diff --git a/pkgs/servers/jetbrains/youtrack.nix b/pkgs/servers/jetbrains/youtrack.nix
index ac144f16606..07de22e41ac 100644
--- a/pkgs/servers/jetbrains/youtrack.nix
+++ b/pkgs/servers/jetbrains/youtrack.nix
@@ -1,12 +1,12 @@
-{ lib, stdenv, fetchurl, makeWrapper, jdk11, gawk }:
+{ lib, stdenv, fetchurl, makeWrapper, jdk17, gawk }:
 
 stdenv.mkDerivation rec {
   pname = "youtrack";
-  version = "2021.1.13597";
+  version = "2021.4.35970";
 
   jar = fetchurl {
     url = "https://download.jetbrains.com/charisma/${pname}-${version}.jar";
-    sha256 = "0lc0ra95ix5bs1spfjnx5akh8jm754v8lc3yja8dc438zi221qhh";
+    sha256 = "sha256-HB515TS0XXEAiT463nVHP/naeoF7nmeB+6EK0NJ+5c0=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -15,10 +15,10 @@ stdenv.mkDerivation rec {
 
   installPhase = ''
     runHook preInstall
-    makeWrapper ${jdk11}/bin/java $out/bin/youtrack \
+    makeWrapper ${jdk17}/bin/java $out/bin/youtrack \
       --add-flags "\$YOUTRACK_JVM_OPTS -jar $jar" \
       --prefix PATH : "${lib.makeBinPath [ gawk ]}" \
-      --set JRE_HOME ${jdk11}
+      --set JRE_HOME ${jdk17}
     runHook postInstall
   '';
 
diff --git a/pkgs/servers/klipper/default.nix b/pkgs/servers/klipper/default.nix
index ebd8d26de12..88671f6e916 100644
--- a/pkgs/servers/klipper/default.nix
+++ b/pkgs/servers/klipper/default.nix
@@ -6,13 +6,13 @@
 }:
 stdenv.mkDerivation rec {
   pname = "klipper";
-  version = "unstable-2021-11-10";
+  version = "unstable-2021-12-02";
 
   src = fetchFromGitHub {
     owner = "KevinOConnor";
     repo = "klipper";
-    rev = "c179db3d4331db9d85c7acfdaa1e96e295d277ba";
-    sha256 = "sha256-/fFbhKiSQq9E9iucinTgUTyOtfDKCMgvzebHjfOaJ+M=";
+    rev = "051133f81c9b9b9fff6df6716038f8c0b7105c69";
+    sha256 = "sha256-Exc8Q+D/2OQkan/qY10jxiH+tVSWW6biN9auejWpsGk=";
   };
 
   sourceRoot = "source/klippy";
diff --git a/pkgs/servers/matrix-synapse/0001-setup-add-homeserver-as-console-script.patch b/pkgs/servers/matrix-synapse/0001-setup-add-homeserver-as-console-script.patch
deleted file mode 100644
index 2a83c5fcf6d..00000000000
--- a/pkgs/servers/matrix-synapse/0001-setup-add-homeserver-as-console-script.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 36ffbb7ad2c535180cae473b470a43f9db4fbdcd Mon Sep 17 00:00:00 2001
-From: Maximilian Bosch <maximilian@mbosch.me>
-Date: Mon, 16 Aug 2021 13:27:28 +0200
-Subject: [PATCH 1/2] setup: add homeserver as console script
-
-With this change, it will be added to `$out/bin` in `nixpkgs` directly.
-This became necessary since our old workaround, calling it as script,
-doesn't work anymore since the shebangs were removed[1].
-
-[1] https://github.com/matrix-org/synapse/pull/10415
----
- setup.py | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/setup.py b/setup.py
-index c47856351..27f1d842c 100755
---- a/setup.py
-+++ b/setup.py
-@@ -133,6 +133,11 @@ setup(
-     long_description=long_description,
-     long_description_content_type="text/x-rst",
-     python_requires="~=3.6",
-+    entry_points={
-+        'console_scripts': [
-+            'homeserver = synapse.app.homeserver:main'
-+        ]
-+    },
-     classifiers=[
-         "Development Status :: 5 - Production/Stable",
-         "Topic :: Communications :: Chat",
--- 
-2.31.1
-
diff --git a/pkgs/servers/matrix-synapse/0002-Expose-generic-worker-as-binary-under-NixOS.patch b/pkgs/servers/matrix-synapse/0002-Expose-generic-worker-as-binary-under-NixOS.patch
deleted file mode 100644
index 11dd53c9ad3..00000000000
--- a/pkgs/servers/matrix-synapse/0002-Expose-generic-worker-as-binary-under-NixOS.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 3089758015c64cc1e6788793c4fe40a0e1783457 Mon Sep 17 00:00:00 2001
-From: Maximilian Bosch <maximilian@mbosch.me>
-Date: Tue, 5 Oct 2021 22:33:12 +0200
-Subject: [PATCH 2/2] Expose generic worker as binary under NixOS
-
----
- setup.py                      | 3 ++-
- synapse/app/generic_worker.py | 6 +++++-
- 2 files changed, 7 insertions(+), 2 deletions(-)
-
-diff --git a/setup.py b/setup.py
-index 27f1d842c..6383aed6f 100755
---- a/setup.py
-+++ b/setup.py
-@@ -135,7 +135,8 @@ setup(
-     python_requires="~=3.6",
-     entry_points={
-         'console_scripts': [
--            'homeserver = synapse.app.homeserver:main'
-+            'homeserver = synapse.app.homeserver:main',
-+            'worker = synapse.app.generic_worker:main'
-         ]
-     },
-     classifiers=[
-diff --git a/synapse/app/generic_worker.py b/synapse/app/generic_worker.py
-index 3b7131af8..c77a6a95c 100644
---- a/synapse/app/generic_worker.py
-+++ b/synapse/app/generic_worker.py
-@@ -491,6 +491,10 @@ def start(config_options):
-     _base.start_worker_reactor("synapse-generic-worker", config)
- 
- 
--if __name__ == "__main__":
-+def main():
-     with LoggingContext("main"):
-         start(sys.argv[1:])
-+
-+
-+if __name__ == "__main__":
-+    main()
--- 
-2.31.1
-
diff --git a/pkgs/servers/matrix-synapse/default.nix b/pkgs/servers/matrix-synapse/default.nix
index 37ca8d23574..32f79ebe14c 100644
--- a/pkgs/servers/matrix-synapse/default.nix
+++ b/pkgs/servers/matrix-synapse/default.nix
@@ -11,18 +11,13 @@ in
 with python3.pkgs;
 buildPythonApplication rec {
   pname = "matrix-synapse";
-  version = "1.48.0";
+  version = "1.49.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-G09VbfC9mZ0+shLHRNutR91URewvLW4l4lQaVrsZYaQ=";
+    sha256 = "sha256-vvLcRy2qt/qOgKkQpj2eHP4691OX0AW58dD3EecluZM=";
   };
 
-  patches = [
-    ./0001-setup-add-homeserver-as-console-script.patch
-    ./0002-Expose-generic-worker-as-binary-under-NixOS.patch
-  ];
-
   buildInputs = [ openssl ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/servers/matrix-synapse/tools/rust-synapse-compress-state.nix b/pkgs/servers/matrix-synapse/tools/rust-synapse-compress-state.nix
index c81058b47b0..3734d7c602d 100644
--- a/pkgs/servers/matrix-synapse/tools/rust-synapse-compress-state.nix
+++ b/pkgs/servers/matrix-synapse/tools/rust-synapse-compress-state.nix
@@ -1,17 +1,25 @@
-{ lib, rustPlatform, fetchFromGitHub }:
+{ lib, rustPlatform, python3, fetchFromGitHub, pkg-config, openssl }:
 
 rustPlatform.buildRustPackage rec {
   pname = "rust-synapse-compress-state";
-  version = "0.1.0";
+  version = "0.1.2";
 
   src = fetchFromGitHub {
     owner = "matrix-org";
     repo = pname;
     rev = "v${version}";
-    sha256 = "15jvkpbq6pgdc91wnni8fj435yqlwqgx3bb0vqjgsdyxs5lzalfh";
+    sha256 = "sha256-uL7uoJPvZoTbrmEFY7jiBphvjWSRpH9pyk3x7s3Yvrs=";
   };
 
-  cargoSha256 = "173nylp9xj88cm42yggj41iqvgb25s3awhf1dqssy8f1zyw2cf3d";
+  cargoSha256 = "sha256-3w5RyVrpCnetXnxnzgVl94kUZa+1i9bU2O8vp7sb3lY=";
+
+  cargoBuildFlags = [
+    "--all"
+  ];
+
+  nativeBuildInputs = [ python3 pkg-config ];
+
+  buildInputs = [ openssl ];
 
   meta = with lib; {
     description = "A tool to compress some state in a Synapse instance's database";
diff --git a/pkgs/servers/mattermost/default.nix b/pkgs/servers/mattermost/default.nix
index 4bf4a41234c..889eff17a73 100644
--- a/pkgs/servers/mattermost/default.nix
+++ b/pkgs/servers/mattermost/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, fetchFromGitHub, buildGoModule, buildEnv }:
 
 let
-  version = "5.37.2";
+  version = "5.37.5";
 
   mattermost-server = buildGoModule rec {
     pname = "mattermost-server";
@@ -11,7 +11,7 @@ let
       owner = "mattermost";
       repo = pname;
       rev = "v${version}";
-      sha256 = "sha256-kO5wSj/ApPhS2k9a9VjS3Qk55azNZeiFmevAxSkdGe0=";
+      sha256 = "sha256-ddK7gxWl1arCtW2vqmon28AAeyZQPYlbGj3QtOlqtiU=";
     };
 
     vendorSha256 = null;
@@ -29,7 +29,7 @@ let
 
     src = fetchurl {
       url = "https://releases.mattermost.com/${version}/mattermost-${version}-linux-amd64.tar.gz";
-      sha256 = "sha256-BzQVkOPo/f6O2ncQ0taS3cZkglOL+D+zBcfNYrpMgTM=";
+      sha256 = "sha256-G6L8Ct6PtARg2LKxcoFyg9vrDJXIKGByxovquMc6p00=";
     };
 
     installPhase = ''
diff --git a/pkgs/servers/mautrix-whatsapp/default.nix b/pkgs/servers/mautrix-whatsapp/default.nix
index 5a84b879001..42f7f5938fd 100644
--- a/pkgs/servers/mautrix-whatsapp/default.nix
+++ b/pkgs/servers/mautrix-whatsapp/default.nix
@@ -2,18 +2,18 @@
 
 buildGo117Module rec {
   pname = "mautrix-whatsapp";
-  version = "0.2.1";
+  version = "0.2.2";
 
   src = fetchFromGitHub {
     owner = "mautrix";
     repo = "whatsapp";
     rev = "v${version}";
-    sha256 = "sha256-gCbZGlZDwHw+OAlTx3rHlbd4Ntw+RaCEDTiP/1q0oJs=";
+    sha256 = "sha256-W+5DtCp7P/0azfusv+Nt3G9VcWKPUxVJmNwSfPjxjbw=";
   };
 
   buildInputs = [ olm ];
 
-  vendorSha256 = "sha256-4KDLL9FY3DrkGBDlu6G8Fp7XJfXjwLTELspyW+FBGfo=";
+  vendorSha256 = "sha256-Fr7yVTl8PIdr+SxXhUKG9DS18762HqL9ap6sUM3ziCQ=";
 
   doCheck = false;
 
diff --git a/pkgs/servers/mediatomb/default.nix b/pkgs/servers/mediatomb/default.nix
index 6294f9df2bd..aa1304bf892 100644
--- a/pkgs/servers/mediatomb/default.nix
+++ b/pkgs/servers/mediatomb/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     repositories.git = "git://mediatomb.git.sourceforge.net/gitroot/mediatomb/mediatomb";
     description = "UPnP MediaServer with a web user interface";
     license = licenses.gpl2;
-    maintainers = [ maintainers.phreedom ];
+    maintainers = [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/servers/miniflux/default.nix b/pkgs/servers/miniflux/default.nix
index a550ba9ae82..71f3e532da5 100644
--- a/pkgs/servers/miniflux/default.nix
+++ b/pkgs/servers/miniflux/default.nix
@@ -2,19 +2,19 @@
 
 let
   pname = "miniflux";
-  version = "2.0.33";
+  version = "2.0.34";
 
 in buildGoModule {
   inherit pname version;
 
   src = fetchFromGitHub {
     owner = pname;
-    repo = pname;
+    repo = "v2";
     rev = version;
-    sha256 = "0vcfpy71gdvd0z20v6d36l3yvmnm4nmfplivw9yjzv8kbnf9mabc";
+    sha256 = "sha256-6fXmi0q6J1XyxEtOuKO8efkwLrfkMiqeKTHZPuoKYAs=";
   };
 
-  vendorSha256 = "1j4jskcply9mxz9bggw1c6368k22rga6f3f6mgs1pklz5v7r7n2j";
+  vendorSha256 = "sha256-P8ukjBrkPZ0n8HtfyEf2pG3DAXl7D10Ib+dmtwI4KqI=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/servers/monitoring/grafana/default.nix b/pkgs/servers/monitoring/grafana/default.nix
index 23a7ae85cfe..32f31a686a6 100644
--- a/pkgs/servers/monitoring/grafana/default.nix
+++ b/pkgs/servers/monitoring/grafana/default.nix
@@ -2,7 +2,7 @@
 
 buildGo117Module rec {
   pname = "grafana";
-  version = "8.3.2";
+  version = "8.3.3";
 
   excludedPackages = "\\(alert_webhook_listener\\|clean-swagger\\|release_publisher\\|slow_proxy\\|slow_proxy_mac\\|macaron\\)";
 
@@ -10,15 +10,15 @@ buildGo117Module rec {
     rev = "v${version}";
     owner = "grafana";
     repo = "grafana";
-    sha256 = "sha256-oPCeK9SHRpShAjLK3l8yMIwcrGvoUNjaeNNWZBjCIas=";
+    sha256 = "sha256-kfeYAEwHal5bfCmNe2l5iBLM4D3eYFaVtVhXdN90o+I=";
   };
 
   srcStatic = fetchurl {
     url = "https://dl.grafana.com/oss/release/grafana-${version}.linux-amd64.tar.gz";
-    sha256 = "sha256-EA+SxQqmEvITBSxVWU5Ytot9pkG3UcXxRAA9cEcw0Yk=";
+    sha256 = "sha256-iUKMUg4AS8ufr3YY3UyB/2JJYGTL8urT4bnbz0dsbxg=";
   };
 
-  vendorSha256 = "sha256-aS9yz0JODZtichaIkiBJLiMjbjGY93eSYwuactbRqOY=";
+  vendorSha256 = "sha256-FHVlCL4ZyHO7Ebi31K1wXcMiN6hiQjVz+5jkJx8R7jc=";
 
   nativeBuildInputs = [ wire ];
 
@@ -62,6 +62,8 @@ buildGo117Module rec {
     tar -xvf $srcStatic
     mkdir -p $out/share/grafana
     mv grafana-*/{public,conf,tools} $out/share/grafana/
+
+    cp ./conf/defaults.ini $out/share/grafana/conf/
   '';
 
   passthru.tests = { inherit (nixosTests) grafana; };
diff --git a/pkgs/servers/monitoring/prometheus/fastly-exporter.nix b/pkgs/servers/monitoring/prometheus/fastly-exporter.nix
index cffdca4083c..f97fc84aa2b 100644
--- a/pkgs/servers/monitoring/prometheus/fastly-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/fastly-exporter.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "fastly-exporter";
-  version = "6.1.0";
+  version = "7.0.1";
 
   src = fetchFromGitHub {
     owner = "peterbourgon";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0my0pcxix5rk73m5ciz513nwmjcm7vjs6r8wg3vddm0xixv7zq94";
+    sha256 = "sha256-KL+UfYuHtfQ9sKad7Q1KqIK4CFzDsIWvgG1YO1ZbUQc=";
   };
 
-  vendorSha256 = "1w9asky8h8l5gc0c6cv89m38qw50hyhma8qbsw3zirplhk9mb3r2";
+  vendorSha256 = "sha256-yE7yvnyDfrrFdBmBBYe2gBU7b4gOWl5kfqkoblE51EQ=";
 
   meta = with lib; {
     description = "Prometheus exporter for the Fastly Real-time Analytics API";
diff --git a/pkgs/servers/monitoring/prometheus/mikrotik-exporter.nix b/pkgs/servers/monitoring/prometheus/mikrotik-exporter.nix
index 37f9b0c4e06..6f9e78799a0 100644
--- a/pkgs/servers/monitoring/prometheus/mikrotik-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/mikrotik-exporter.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "mikrotik-exporter-unstable";
-  version = "2020-02-10";
+  version = "2021-08-10";
 
   src = fetchFromGitHub {
     owner = "nshttpd";
     repo = "mikrotik-exporter";
-    sha256 = "193zh06rqp9ybsnkxwmv7l4p2h2xisw4f01jjirshsb784j44bh6";
-    rev = "3b33400d24abcfdc07dc31c15ca5ba7b82de444f";
+    sha256 = "1vqn1f159g0l76021gifbxpjf7zjhrj807qqqn51h5413lbi6r66";
+    rev = "4bfa7adfef500ff621a677adfab1f7010af920d1";
   };
 
-  vendorSha256 = "0i5x4d3ra0s41knmybbg8gnjxgraxkid6y3gfkjwa65xcbp7hr7q";
+  vendorSha256 = "0b244z3hly5726vwkr7vhdzzm2fi38cv1qh7nvfp3vpsxnii04md";
 
   doCheck = false;
 
diff --git a/pkgs/servers/monitoring/zabbix/agent.nix b/pkgs/servers/monitoring/zabbix/agent.nix
index e4516f652b9..269a8c6ba66 100644
--- a/pkgs/servers/monitoring/zabbix/agent.nix
+++ b/pkgs/servers/monitoring/zabbix/agent.nix
@@ -19,6 +19,7 @@ import ./versions.nix ({ version, sha256 }:
 
     configureFlags = [
       "--enable-agent"
+      "--enable-ipv6"
       "--with-iconv"
       "--with-libpcre"
       "--with-openssl=${openssl.dev}"
diff --git a/pkgs/servers/monitoring/zabbix/agent2.nix b/pkgs/servers/monitoring/zabbix/agent2.nix
index 74b23c0bbd2..b4463bf05e5 100644
--- a/pkgs/servers/monitoring/zabbix/agent2.nix
+++ b/pkgs/servers/monitoring/zabbix/agent2.nix
@@ -33,6 +33,7 @@ import ./versions.nix ({ version, sha256 }:
       ./configure \
         --prefix=${placeholder "out"} \
         --enable-agent2 \
+        --enable-ipv6 \
         --with-iconv \
         --with-libpcre \
         --with-openssl=${openssl.dev}
diff --git a/pkgs/servers/monitoring/zabbix/proxy.nix b/pkgs/servers/monitoring/zabbix/proxy.nix
index 067d8883324..b52015e1c3d 100644
--- a/pkgs/servers/monitoring/zabbix/proxy.nix
+++ b/pkgs/servers/monitoring/zabbix/proxy.nix
@@ -41,6 +41,7 @@ in
       ++ optional postgresqlSupport postgresql;
 
       configureFlags = [
+        "--enable-ipv6"
         "--enable-proxy"
         "--with-iconv"
         "--with-libevent"
diff --git a/pkgs/servers/monitoring/zabbix/server.nix b/pkgs/servers/monitoring/zabbix/server.nix
index 474cf82f7c1..9249e3852e9 100644
--- a/pkgs/servers/monitoring/zabbix/server.nix
+++ b/pkgs/servers/monitoring/zabbix/server.nix
@@ -46,6 +46,7 @@ in
       ++ optional ipmiSupport openipmi;
 
       configureFlags = [
+        "--enable-ipv6"
         "--enable-server"
         "--with-iconv"
         "--with-libcurl"
diff --git a/pkgs/servers/nitter/default.nix b/pkgs/servers/nitter/default.nix
index 7abd3e865fc..9d460e3140b 100644
--- a/pkgs/servers/nitter/default.nix
+++ b/pkgs/servers/nitter/default.nix
@@ -45,7 +45,6 @@ nimPackages.buildNimPackage rec {
     homepage = "https://github.com/zedeus/nitter";
     maintainers = with maintainers; [ erdnaxe ];
     license = licenses.agpl3Only;
-    platforms = [ "x86_64-linux" ];
     mainProgram = "nitter";
   };
 }
diff --git a/pkgs/servers/nosql/influxdb2/cli.nix b/pkgs/servers/nosql/influxdb2/cli.nix
new file mode 100644
index 00000000000..573835a2dd8
--- /dev/null
+++ b/pkgs/servers/nosql/influxdb2/cli.nix
@@ -0,0 +1,33 @@
+{ buildGoModule
+, buildGoPackage
+, fetchFromGitHub
+, lib
+}:
+
+let
+  version = "2.2.1";
+
+  src = fetchFromGitHub {
+    owner = "influxdata";
+    repo = "influx-cli";
+    rev = "v${version}";
+    sha256 = "sha256-9FUchI93xLpQwtpbr5S3GfVrApHaemwbnRPIfAWmG6Y=";
+  };
+
+in buildGoModule {
+  pname = "influx-cli";
+  version = version;
+  src = src;
+
+  vendorSha256 = "sha256-Boz1G8g0fjjlflxZh4V8sd/v0bE9Oy3DpqywOpKxjd0=";
+  subPackages = [ "cmd/influx" ];
+
+  ldflags = [ "-X main.commit=v${version}" "-X main.version=${version}" ];
+
+  meta = with lib; {
+    description = "CLI for managing resources in InfluxDB v2";
+    license = licenses.mit;
+    homepage = "https://influxdata.com/";
+    maintainers = with maintainers; [ abbradar danderson ];
+  };
+}
diff --git a/pkgs/servers/nosql/influxdb2/combined.nix b/pkgs/servers/nosql/influxdb2/combined.nix
new file mode 100644
index 00000000000..285c94d0158
--- /dev/null
+++ b/pkgs/servers/nosql/influxdb2/combined.nix
@@ -0,0 +1,12 @@
+{
+  buildEnv,
+  influxdb2-server,
+  influxdb2-cli,
+}:
+buildEnv {
+  name = "influxdb2";
+  paths = [
+    influxdb2-server
+    influxdb2-cli
+  ];
+}
diff --git a/pkgs/servers/nosql/influxdb2/default.nix b/pkgs/servers/nosql/influxdb2/default.nix
index f786171d709..3aee5977850 100644
--- a/pkgs/servers/nosql/influxdb2/default.nix
+++ b/pkgs/servers/nosql/influxdb2/default.nix
@@ -1,35 +1,31 @@
 { buildGoModule
-, buildGoPackage
 , fetchFromGitHub
 , fetchurl
 , go-bindata
 , lib
 , llvmPackages
+, perl
 , pkg-config
 , rustPlatform
 , stdenv
 , libiconv
 }:
 
-# Note for maintainers: use ./update-influxdb2.sh to update the Yarn
-# dependencies nix expression.
-
 let
-  version = "2.0.8";
-  shorthash = "e91d41810f"; # git rev-parse HEAD with 2.0.8 checked out
-  libflux_version = "0.124.0";
+  version = "2.1.1";
+  ui_version = "2.1.2";
+  libflux_version = "0.139.0";
 
   src = fetchFromGitHub {
     owner = "influxdata";
     repo = "influxdb";
     rev = "v${version}";
-    sha256 = "0hbinnja13xr9ziyynjsnsbrxmyrvag7xdgfwq2ya28g07lw5wgq";
+    sha256 = "sha256-wf01DhB1ampZuWPkHUEOf3KJK4GjeOAPL3LG2+g4NGY=";
   };
 
   ui = fetchurl {
-    url = "https://github.com/influxdata/ui/releases/download/OSS-v${version}/build.tar.gz";
-    # https://github.com/influxdata/ui/releases/download/OSS-v${version}/sha256.txt
-    sha256 = "94965ae999a1098c26128141fbb849be3da9a723d509118eb6e0db4384ee01fc";
+    url = "https://github.com/influxdata/ui/releases/download/OSS-${ui_version}/build.tar.gz";
+    sha256 = "sha256-fXjShNJfKN/ZQNQHoX9/Ou4XBrXavCN+rcO+8AMc5Ug=";
   };
 
   flux = rustPlatform.buildRustPackage {
@@ -39,10 +35,10 @@ let
       owner = "influxdata";
       repo = "flux";
       rev = "v${libflux_version}";
-      sha256 = "1g1qilfzxqbbjbfvgkf7k7spcnhzvlmrqacpqdl05418ywkp3v29";
+      sha256 = "sha256-cELeWZXGVLFoPYfBoBP8NeLBVFIb5o+lWyto42BLyXY=";
     };
     sourceRoot = "source/libflux";
-    cargoSha256 = "0farcjwnwwgfvcgbs5r6vsdrsiwq2mp82sjxkqb1pzqfls4ixcxj";
+    cargoSha256 = "sha256-wFgawxgqZqoPnOXJD3r5t2n7Y2bTAkBbBxeBtFEF7N4=";
     nativeBuildInputs = [ llvmPackages.libclang ];
     buildInputs = lib.optional stdenv.isDarwin libiconv;
     LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib";
@@ -63,6 +59,7 @@ let
       install_name_tool -id $out/lib/libflux.dylib $out/lib/libflux.dylib
     '';
   };
+
 in buildGoModule {
   pname = "influxdb";
   version = version;
@@ -70,34 +67,42 @@ in buildGoModule {
 
   nativeBuildInputs = [ go-bindata pkg-config ];
 
-  vendorSha256 = "1kar88vlm6px7smlnajpyf8qx6d481xk979qafpfb1xy8931781m";
-  subPackages = [ "cmd/influxd" "cmd/influx" ];
+  vendorSha256 = "sha256-GVLAzVJzSsC10ZWDZPP8upydwZG21E+zQ6sMKm1lCY0=";
+  subPackages = [ "cmd/influxd" "cmd/telemetryd" ];
 
   PKG_CONFIG_PATH = "${flux}/pkgconfig";
-  # We have to run a bunch of go:generate commands to embed the UI
-  # assets into the source code. Ideally we'd run `make generate`, but
-  # that ends up running a ton of non-hermetic stuff. Instead, we find
-  # the relevant go:generate directives, and run them by hand without
-  # breaking hermeticity.
+  # Check that libflux and the UI are at the right version, and embed
+  # the UI assets into the Go source tree.
   preBuild = ''
-    tar -xzf ${ui} -C static/data
+    (
+      flux_ver=$(grep github.com/influxdata/flux go.mod | awk '{print $2}')
+      if [ "$flux_ver" != "v${libflux_version}" ]; then
+        echo "go.mod wants libflux $flux_ver, but nix derivation provides ${libflux_version}"
+        exit 1
+      fi
 
-    grep -RI -e 'go:generate.*go-bindata' | cut -f1 -d: | while read -r filename; do
-      sed -i -e 's/go:generate.*go-bindata/go:generate go-bindata/' $filename
-      pushd $(dirname $filename)
-      go generate
-      popd
-    done
+      ui_ver=$(grep influxdata/ui/releases scripts/fetch-ui-assets.sh | ${perl}/bin/perl -pe 's#.*/OSS-([^/]+)/.*#$1#')
+      if [ "$ui_ver" != "${ui_version}" ]; then
+        echo "scripts/fetch-ui-assets.sh wants UI $ui_ver, but nix derivation provides ${ui_version}"
+        exit 1
+      fi
+    )
+
+    mkdir -p static/data
+    tar -xzf ${ui} -C static/data
+    pushd static
+    go generate
+    popd
   '';
 
   tags = [ "assets" ];
 
-  ldflags = [ "-X main.commit=${shorthash}" "-X main.version=${version}" ];
+  ldflags = [ "-X main.commit=v${version}" "-X main.version=${version}" ];
 
   meta = with lib; {
     description = "An open-source distributed time series database";
     license = licenses.mit;
     homepage = "https://influxdata.com/";
-    maintainers = with maintainers; [ danderson ];
+    maintainers = with maintainers; [ abbradar danderson ];
   };
 }
diff --git a/pkgs/servers/nosql/influxdb2/influx-ui-package.json b/pkgs/servers/nosql/influxdb2/influx-ui-package.json
deleted file mode 100644
index 1a3840f1548..00000000000
--- a/pkgs/servers/nosql/influxdb2/influx-ui-package.json
+++ /dev/null
@@ -1,201 +0,0 @@
-{
-  "name": "influxdb-ui",
-  "version": "2.0.5",
-  "private": false,
-  "license": "MIT",
-  "description": "",
-  "repository": {
-    "type": "git",
-    "url": "github:influxdata/ui"
-  },
-  "engines": {
-    "node": ">=10.5.0",
-    "yarn": ">=1.16.0"
-  },
-  "alias": {
-    "src": "./src"
-  },
-  "scripts": {
-    "start": "yarn install && yarn generate && cross-env TS_NODE_PROJECT=\"webpack.tsconfig.json\" && yarn run build:vendor && yarn run start:dev",
-    "start:cloud": "yarn install && yarn generate && cross-env TS_NODE_PROJECT=\"webpack.tsconfig.json\" && yarn run build:vendor && yarn run start:dev-cloud",
-    "start:dev": "webpack-dev-server --config ./webpack.dev.ts --progress false",
-    "start:dev-cloud": "cross-env CLOUD_LOGOUT_URL=http://localhost:8080/api/v2/signout CLOUD_URL=http://localhost:4000 webpack-dev-server --config ./webpack.dev.ts",
-    "start:docker": "yarn generate && yarn build:vendor && yarn run start:dev",
-    "build": "yarn install --silent && yarn build:ci",
-    "build:ci": "yarn generate && yarn build:vendor && webpack --config webpack.prod.ts --bail",
-    "build:vendor": "webpack --config webpack.vendor.ts",
-    "clean": "rm -rf ./build && rm -rf ./.cache && rm -rf node_modules && rm -rf cypress/screenshots && rm -rf cypress/videos && rm -f junit-results/* ",
-    "test": "jest --maxWorkers=2",
-    "test:watch": "jest --watch --verbose false",
-    "test:update": "jest --updateSnapshot",
-    "test:debug": "node --inspect-brk $(npm bin)/jest --runInBand --watch --verbose false",
-    "test:e2e": "CYPRESS_baseUrl=http://localhost:8086 cypress run --browser chrome --reporter junit --reporter-options 'mochaFile=junit-results/test-output-[hash].xml'",
-    "test:e2e:report": "junit-viewer --results=junit-results --save-file=cypress/site/junit-report.html",
-    "test:e2e:clean": "rm junit-results/*.xml",
-    "test:e2e:all": "yarn test:e2e:clean && yarn test:e2e; yarn test:e2e:report;",
-    "test:circleci": "yarn run test:ci --maxWorkers=2",
-    "test:ci": "JEST_JUNIT_OUTPUT_DIR=\"./coverage\" jest --ci --coverage",
-    "lint": "yarn tsc && yarn prettier && yarn eslint",
-    "eslint": "eslint '{src,cypress}/**/*.{ts,tsx}'",
-    "eslint:circleci": "eslint",
-    "eslint:fix": "eslint --fix '{src,cypress}/**/*.{ts,tsx}'",
-    "prettier": "prettier --config .prettierrc.json --check '{src,cypress}/**/*.{ts,tsx}'",
-    "prettier:circleci": "prettier --config .prettierrc.json --check",
-    "prettier:fix": "prettier --config .prettierrc.json --write '{src,cypress}/**/*.{ts,tsx}'",
-    "tsc": "tsc -p ./tsconfig.json --noEmit --pretty --skipLibCheck",
-    "tsc:cypress": "tsc -p ./cypress/tsconfig.json --noEmit --pretty --skipLibCheck",
-    "cy": "CYPRESS_baseUrl=http://localhost:8086 cypress open",
-    "cy:dev": "CYPRESS_baseUrl=http://localhost:8080 cypress open",
-    "generate": "oats ../http/swagger.yml > ./src/client/generatedRoutes.ts"
-  },
-  "author": "",
-  "devDependencies": {
-    "@babel/core": "^7.5.5",
-    "@babel/preset-env": "^7.5.5",
-    "@influxdata/oats": "0.5.0",
-    "@testing-library/react": "^10.2.1",
-    "@types/chroma-js": "^1.3.4",
-    "@types/codemirror": "^0.0.56",
-    "@types/d3-color": "^1.2.1",
-    "@types/d3-scale": "^2.0.1",
-    "@types/enzyme": "^3.1.14",
-    "@types/history": "4.7.6",
-    "@types/jest": "^23.3.2",
-    "@types/lodash": "^4.14.116",
-    "@types/memoize-one": "^4.0.2",
-    "@types/node": "^12.6.8",
-    "@types/papaparse": "^4.5.9",
-    "@types/prop-types": "^15.5.2",
-    "@types/qs": "^6.5.1",
-    "@types/react": "^16.8.3",
-    "@types/react-datepicker": "^2.8.1",
-    "@types/react-dom": "^16.8.1",
-    "@types/react-grid-layout": "^0.16.5",
-    "@types/react-redux": "^7.1.9",
-    "@types/react-router-dom": "^5.1.5",
-    "@types/react-virtualized": "^9.18.3",
-    "@types/text-encoding": "^0.0.32",
-    "@types/uuid": "^3.4.3",
-    "@types/webpack": "^4.4.35",
-    "@types/webpack-env": "^1.15.2",
-    "@typescript-eslint/eslint-plugin": "^2.6.0",
-    "@typescript-eslint/parser": "^2.6.0",
-    "acorn": "^6.0.6",
-    "ajv": "^6.7.0",
-    "autoprefixer": "^6.3.1",
-    "babel-loader": "^8.0.6",
-    "clean-webpack-plugin": "^3.0.0",
-    "cross-env": "^5.2.0",
-    "css-loader": "^3.1.0",
-    "cypress": "4.12.1",
-    "cypress-file-upload": "^4.0.7",
-    "cypress-pipe": "^1.5.0",
-    "cypress-plugin-tab": "^1.0.5",
-    "enzyme": "^3.6.0",
-    "enzyme-adapter-react-16": "^1.6.0",
-    "enzyme-to-json": "^3.3.4",
-    "eslint": "^6.6.0",
-    "eslint-config-prettier": "^6.5.0",
-    "eslint-plugin-jest": "^23.0.2",
-    "eslint-plugin-react": "^7.16.0",
-    "eslint-plugin-react-hooks": "^4.0.5",
-    "express": "^4.14.0",
-    "file-loader": "^4.1.0",
-    "fork-ts-checker-webpack-plugin": "^1.4.3",
-    "html-webpack-plugin": "^3.2.0",
-    "http-proxy-middleware": "^0.18.0",
-    "identity-obj-proxy": "^3.0.0",
-    "jest": "^24.8.0",
-    "jest-fetch-mock": "^3.0.3",
-    "jest-junit": "^10.0.0",
-    "jsdom": "^9.0.0",
-    "junit-viewer": "^4.11.1",
-    "mini-css-extract-plugin": "^0.8.0",
-    "mocha": "^5.2.0",
-    "mocha-junit-reporter": "^1.18.0",
-    "mutation-observer": "^1.0.3",
-    "optimize-css-assets-webpack-plugin": "^5.0.3",
-    "prettier": "^1.19.1",
-    "raw-loader": "^4.0.1",
-    "sass": "^1.22.7",
-    "sass-loader": "^7.1.0",
-    "source-map-loader": "^0.2.4",
-    "style-loader": "^0.23.1",
-    "terser-webpack-plugin": "2.2.1",
-    "ts-jest": "^24.0.0",
-    "ts-loader": "^5.3.3",
-    "ts-node": "^8.3.0",
-    "tslib": "^1.9.0",
-    "typescript": "3.8.3",
-    "webpack": "^4.41.4",
-    "webpack-cli": "^3.3.10",
-    "webpack-dev-server": "^3.7.2",
-    "webpack-merge": "^4.2.1"
-  },
-  "dependencies": {
-    "@influxdata/clockface": "2.3.4",
-    "@influxdata/flux": "^0.5.1",
-    "@influxdata/flux-lsp-browser": "^0.5.41",
-    "@influxdata/giraffe": "0.29.0",
-    "@influxdata/influx": "0.5.5",
-    "@influxdata/influxdb-templates": "0.9.0",
-    "@influxdata/react-custom-scrollbars": "4.3.8",
-    "abortcontroller-polyfill": "^1.3.0",
-    "auth0-js": "^9.12.2",
-    "axios": "^0.19.0",
-    "babel-polyfill": "^6.26.0",
-    "bignumber.js": "^4.0.2",
-    "calculate-size": "^1.1.1",
-    "chroma-js": "^1.3.6",
-    "classnames": "^2.2.3",
-    "codemirror": "^5.36.0",
-    "connected-react-router": "^6.8.0",
-    "d3-format": "^1.3.2",
-    "d3-scale": "^2.1.0",
-    "fast.js": "^0.1.1",
-    "history": "^4.7.2",
-    "honeybadger-js": "^1.0.2",
-    "immer": "^1.9.3",
-    "immutable": "^3.8.1",
-    "intersection-observer": "^0.7.0",
-    "jsonlint-mod": "^1.7.5",
-    "lodash": "^4.3.0",
-    "memoize-one": "^4.0.2",
-    "moment": "^2.13.0",
-    "monaco-editor": "^0.19.2",
-    "monaco-editor-textmate": "^2.2.1",
-    "monaco-editor-webpack-plugin": "^1.8.2",
-    "monaco-languageclient": "^0.11.0",
-    "monaco-textmate": "^3.0.1",
-    "normalizr": "^3.4.1",
-    "onigasm": "^2.2.4",
-    "papaparse": "^5.2.0",
-    "prop-types": "^15.6.1",
-    "qs": "^6.5.2",
-    "react": "^16.11.0",
-    "react-codemirror2": "^4.2.1",
-    "react-copy-to-clipboard": "^5.0.1",
-    "react-datepicker": "^2.1.0",
-    "react-dimensions": "^1.2.0",
-    "react-dnd": "^9.3.2",
-    "react-dnd-html5-backend": "^9.3.2",
-    "react-dom": "^16.8.2",
-    "react-grid-layout": "^0.16.6",
-    "react-loadable": "^5.5.0",
-    "react-markdown": "^4.0.3",
-    "react-monaco-editor": "^0.33.0",
-    "react-redux": "^7.2.0",
-    "react-router-dom": "^5.2.0",
-    "react-scrollbars-custom": "^4.0.0-alpha.8",
-    "react-virtualized": "^9.18.5",
-    "redux": "^4.0.0",
-    "redux-auth-wrapper": "^1.0.0",
-    "redux-thunk": "^2.3.0",
-    "reselect": "^4.0.0",
-    "rome": "^2.1.22",
-    "seamless-immutable": "^7.1.3",
-    "use-persisted-state": "^0.3.0",
-    "uuid": "^3.2.1",
-    "webpack-bundle-analyzer": "^3.6.0"
-  }
-}
diff --git a/pkgs/servers/nosql/influxdb2/influx-ui-yarndeps.nix b/pkgs/servers/nosql/influxdb2/influx-ui-yarndeps.nix
deleted file mode 100644
index bc92013b147..00000000000
--- a/pkgs/servers/nosql/influxdb2/influx-ui-yarndeps.nix
+++ /dev/null
@@ -1,13389 +0,0 @@
-{ fetchurl, fetchgit, linkFarm, runCommand, gnutar }: rec {
-  offline_cache = linkFarm "offline" packages;
-  packages = [
-    {
-      name = "_babel_code_frame___code_frame_7.5.5.tgz";
-      path = fetchurl {
-        name = "_babel_code_frame___code_frame_7.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz";
-        sha1 = "bc0782f6d69f7b7d49531219699b988f669a8f9d";
-      };
-    }
-    {
-      name = "_babel_core___core_7.5.5.tgz";
-      path = fetchurl {
-        name = "_babel_core___core_7.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/core/-/core-7.5.5.tgz";
-        sha1 = "17b2686ef0d6bc58f963dddd68ab669755582c30";
-      };
-    }
-    {
-      name = "_babel_generator___generator_7.5.5.tgz";
-      path = fetchurl {
-        name = "_babel_generator___generator_7.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.5.5.tgz";
-        sha1 = "873a7f936a3c89491b43536d12245b626664e3cf";
-      };
-    }
-    {
-      name = "_babel_helper_annotate_as_pure___helper_annotate_as_pure_7.0.0.tgz";
-      path = fetchurl {
-        name = "_babel_helper_annotate_as_pure___helper_annotate_as_pure_7.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz";
-        sha1 = "323d39dd0b50e10c7c06ca7d7638e6864d8c5c32";
-      };
-    }
-    {
-      name = "_babel_helper_builder_binary_assignment_operator_visitor___helper_builder_binary_assignment_operator_visitor_7.1.0.tgz";
-      path = fetchurl {
-        name = "_babel_helper_builder_binary_assignment_operator_visitor___helper_builder_binary_assignment_operator_visitor_7.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz";
-        sha1 = "6b69628dfe4087798e0c4ed98e3d4a6b2fbd2f5f";
-      };
-    }
-    {
-      name = "_babel_helper_call_delegate___helper_call_delegate_7.4.4.tgz";
-      path = fetchurl {
-        name = "_babel_helper_call_delegate___helper_call_delegate_7.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz";
-        sha1 = "87c1f8ca19ad552a736a7a27b1c1fcf8b1ff1f43";
-      };
-    }
-    {
-      name = "_babel_helper_define_map___helper_define_map_7.5.5.tgz";
-      path = fetchurl {
-        name = "_babel_helper_define_map___helper_define_map_7.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.5.5.tgz";
-        sha1 = "3dec32c2046f37e09b28c93eb0b103fd2a25d369";
-      };
-    }
-    {
-      name = "_babel_helper_explode_assignable_expression___helper_explode_assignable_expression_7.1.0.tgz";
-      path = fetchurl {
-        name = "_babel_helper_explode_assignable_expression___helper_explode_assignable_expression_7.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz";
-        sha1 = "537fa13f6f1674df745b0c00ec8fe4e99681c8f6";
-      };
-    }
-    {
-      name = "_babel_helper_function_name___helper_function_name_7.1.0.tgz";
-      path = fetchurl {
-        name = "_babel_helper_function_name___helper_function_name_7.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz";
-        sha1 = "a0ceb01685f73355d4360c1247f582bfafc8ff53";
-      };
-    }
-    {
-      name = "_babel_helper_get_function_arity___helper_get_function_arity_7.0.0.tgz";
-      path = fetchurl {
-        name = "_babel_helper_get_function_arity___helper_get_function_arity_7.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz";
-        sha1 = "83572d4320e2a4657263734113c42868b64e49c3";
-      };
-    }
-    {
-      name = "_babel_helper_hoist_variables___helper_hoist_variables_7.4.4.tgz";
-      path = fetchurl {
-        name = "_babel_helper_hoist_variables___helper_hoist_variables_7.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz";
-        sha1 = "0298b5f25c8c09c53102d52ac4a98f773eb2850a";
-      };
-    }
-    {
-      name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.5.5.tgz";
-      path = fetchurl {
-        name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz";
-        sha1 = "1fb5b8ec4453a93c439ee9fe3aeea4a84b76b590";
-      };
-    }
-    {
-      name = "_babel_helper_module_imports___helper_module_imports_7.0.0.tgz";
-      path = fetchurl {
-        name = "_babel_helper_module_imports___helper_module_imports_7.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz";
-        sha1 = "96081b7111e486da4d2cd971ad1a4fe216cc2e3d";
-      };
-    }
-    {
-      name = "_babel_helper_module_transforms___helper_module_transforms_7.2.2.tgz";
-      path = fetchurl {
-        name = "_babel_helper_module_transforms___helper_module_transforms_7.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.2.2.tgz";
-        sha1 = "ab2f8e8d231409f8370c883d20c335190284b963";
-      };
-    }
-    {
-      name = "_babel_helper_module_transforms___helper_module_transforms_7.5.5.tgz";
-      path = fetchurl {
-        name = "_babel_helper_module_transforms___helper_module_transforms_7.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz";
-        sha1 = "f84ff8a09038dcbca1fd4355661a500937165b4a";
-      };
-    }
-    {
-      name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.0.0.tgz";
-      path = fetchurl {
-        name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz";
-        sha1 = "a2920c5702b073c15de51106200aa8cad20497d5";
-      };
-    }
-    {
-      name = "_babel_helper_plugin_utils___helper_plugin_utils_7.0.0.tgz";
-      path = fetchurl {
-        name = "_babel_helper_plugin_utils___helper_plugin_utils_7.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz";
-        sha1 = "bbb3fbee98661c569034237cc03967ba99b4f250";
-      };
-    }
-    {
-      name = "_babel_helper_regex___helper_regex_7.0.0.tgz";
-      path = fetchurl {
-        name = "_babel_helper_regex___helper_regex_7.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.0.0.tgz";
-        sha1 = "2c1718923b57f9bbe64705ffe5640ac64d9bdb27";
-      };
-    }
-    {
-      name = "_babel_helper_regex___helper_regex_7.5.5.tgz";
-      path = fetchurl {
-        name = "_babel_helper_regex___helper_regex_7.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.5.5.tgz";
-        sha1 = "0aa6824f7100a2e0e89c1527c23936c152cab351";
-      };
-    }
-    {
-      name = "_babel_helper_remap_async_to_generator___helper_remap_async_to_generator_7.1.0.tgz";
-      path = fetchurl {
-        name = "_babel_helper_remap_async_to_generator___helper_remap_async_to_generator_7.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz";
-        sha1 = "361d80821b6f38da75bd3f0785ece20a88c5fe7f";
-      };
-    }
-    {
-      name = "_babel_helper_replace_supers___helper_replace_supers_7.5.5.tgz";
-      path = fetchurl {
-        name = "_babel_helper_replace_supers___helper_replace_supers_7.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz";
-        sha1 = "f84ce43df031222d2bad068d2626cb5799c34bc2";
-      };
-    }
-    {
-      name = "_babel_helper_simple_access___helper_simple_access_7.1.0.tgz";
-      path = fetchurl {
-        name = "_babel_helper_simple_access___helper_simple_access_7.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz";
-        sha1 = "65eeb954c8c245beaa4e859da6188f39d71e585c";
-      };
-    }
-    {
-      name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.4.4.tgz";
-      path = fetchurl {
-        name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz";
-        sha1 = "ff94894a340be78f53f06af038b205c49d993677";
-      };
-    }
-    {
-      name = "_babel_helper_wrap_function___helper_wrap_function_7.2.0.tgz";
-      path = fetchurl {
-        name = "_babel_helper_wrap_function___helper_wrap_function_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz";
-        sha1 = "c4e0012445769e2815b55296ead43a958549f6fa";
-      };
-    }
-    {
-      name = "_babel_helpers___helpers_7.5.5.tgz";
-      path = fetchurl {
-        name = "_babel_helpers___helpers_7.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.5.5.tgz";
-        sha1 = "63908d2a73942229d1e6685bc2a0e730dde3b75e";
-      };
-    }
-    {
-      name = "_babel_highlight___highlight_7.5.0.tgz";
-      path = fetchurl {
-        name = "_babel_highlight___highlight_7.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz";
-        sha1 = "56d11312bd9248fa619591d02472be6e8cb32540";
-      };
-    }
-    {
-      name = "_babel_parser___parser_7.5.5.tgz";
-      path = fetchurl {
-        name = "_babel_parser___parser_7.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.5.5.tgz";
-        sha1 = "02f077ac8817d3df4a832ef59de67565e71cca4b";
-      };
-    }
-    {
-      name = "_babel_plugin_proposal_async_generator_functions___plugin_proposal_async_generator_functions_7.2.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_proposal_async_generator_functions___plugin_proposal_async_generator_functions_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz";
-        sha1 = "b289b306669dce4ad20b0252889a15768c9d417e";
-      };
-    }
-    {
-      name = "_babel_plugin_proposal_dynamic_import___plugin_proposal_dynamic_import_7.5.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_proposal_dynamic_import___plugin_proposal_dynamic_import_7.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.5.0.tgz";
-        sha1 = "e532202db4838723691b10a67b8ce509e397c506";
-      };
-    }
-    {
-      name = "_babel_plugin_proposal_json_strings___plugin_proposal_json_strings_7.2.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_proposal_json_strings___plugin_proposal_json_strings_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz";
-        sha1 = "568ecc446c6148ae6b267f02551130891e29f317";
-      };
-    }
-    {
-      name = "_babel_plugin_proposal_object_rest_spread___plugin_proposal_object_rest_spread_7.5.5.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_proposal_object_rest_spread___plugin_proposal_object_rest_spread_7.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.5.5.tgz";
-        sha1 = "61939744f71ba76a3ae46b5eea18a54c16d22e58";
-      };
-    }
-    {
-      name = "_babel_plugin_proposal_optional_catch_binding___plugin_proposal_optional_catch_binding_7.2.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_proposal_optional_catch_binding___plugin_proposal_optional_catch_binding_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz";
-        sha1 = "135d81edb68a081e55e56ec48541ece8065c38f5";
-      };
-    }
-    {
-      name = "_babel_plugin_proposal_unicode_property_regex___plugin_proposal_unicode_property_regex_7.4.4.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_proposal_unicode_property_regex___plugin_proposal_unicode_property_regex_7.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.4.tgz";
-        sha1 = "501ffd9826c0b91da22690720722ac7cb1ca9c78";
-      };
-    }
-    {
-      name = "_babel_plugin_syntax_async_generators___plugin_syntax_async_generators_7.2.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_syntax_async_generators___plugin_syntax_async_generators_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz";
-        sha1 = "69e1f0db34c6f5a0cf7e2b3323bf159a76c8cb7f";
-      };
-    }
-    {
-      name = "_babel_plugin_syntax_dynamic_import___plugin_syntax_dynamic_import_7.2.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_syntax_dynamic_import___plugin_syntax_dynamic_import_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz";
-        sha1 = "69c159ffaf4998122161ad8ebc5e6d1f55df8612";
-      };
-    }
-    {
-      name = "_babel_plugin_syntax_json_strings___plugin_syntax_json_strings_7.2.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_syntax_json_strings___plugin_syntax_json_strings_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz";
-        sha1 = "72bd13f6ffe1d25938129d2a186b11fd62951470";
-      };
-    }
-    {
-      name = "_babel_plugin_syntax_object_rest_spread___plugin_syntax_object_rest_spread_7.2.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_syntax_object_rest_spread___plugin_syntax_object_rest_spread_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz";
-        sha1 = "3b7a3e733510c57e820b9142a6579ac8b0dfad2e";
-      };
-    }
-    {
-      name = "_babel_plugin_syntax_optional_catch_binding___plugin_syntax_optional_catch_binding_7.2.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_syntax_optional_catch_binding___plugin_syntax_optional_catch_binding_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz";
-        sha1 = "a94013d6eda8908dfe6a477e7f9eda85656ecf5c";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_arrow_functions___plugin_transform_arrow_functions_7.2.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_arrow_functions___plugin_transform_arrow_functions_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz";
-        sha1 = "9aeafbe4d6ffc6563bf8f8372091628f00779550";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_async_to_generator___plugin_transform_async_to_generator_7.5.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_async_to_generator___plugin_transform_async_to_generator_7.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.5.0.tgz";
-        sha1 = "89a3848a0166623b5bc481164b5936ab947e887e";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_block_scoped_functions___plugin_transform_block_scoped_functions_7.2.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_block_scoped_functions___plugin_transform_block_scoped_functions_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz";
-        sha1 = "5d3cc11e8d5ddd752aa64c9148d0db6cb79fd190";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_block_scoping___plugin_transform_block_scoping_7.5.5.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_block_scoping___plugin_transform_block_scoping_7.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.5.5.tgz";
-        sha1 = "a35f395e5402822f10d2119f6f8e045e3639a2ce";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_classes___plugin_transform_classes_7.5.5.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_classes___plugin_transform_classes_7.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.5.5.tgz";
-        sha1 = "d094299d9bd680a14a2a0edae38305ad60fb4de9";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_computed_properties___plugin_transform_computed_properties_7.2.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_computed_properties___plugin_transform_computed_properties_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz";
-        sha1 = "83a7df6a658865b1c8f641d510c6f3af220216da";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_destructuring___plugin_transform_destructuring_7.5.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_destructuring___plugin_transform_destructuring_7.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.5.0.tgz";
-        sha1 = "f6c09fdfe3f94516ff074fe877db7bc9ef05855a";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_dotall_regex___plugin_transform_dotall_regex_7.4.4.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_dotall_regex___plugin_transform_dotall_regex_7.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.4.4.tgz";
-        sha1 = "361a148bc951444312c69446d76ed1ea8e4450c3";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_duplicate_keys___plugin_transform_duplicate_keys_7.5.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_duplicate_keys___plugin_transform_duplicate_keys_7.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.5.0.tgz";
-        sha1 = "c5dbf5106bf84cdf691222c0974c12b1df931853";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_exponentiation_operator___plugin_transform_exponentiation_operator_7.2.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_exponentiation_operator___plugin_transform_exponentiation_operator_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz";
-        sha1 = "a63868289e5b4007f7054d46491af51435766008";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_for_of___plugin_transform_for_of_7.4.4.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_for_of___plugin_transform_for_of_7.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz";
-        sha1 = "0267fc735e24c808ba173866c6c4d1440fc3c556";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_function_name___plugin_transform_function_name_7.4.4.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_function_name___plugin_transform_function_name_7.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz";
-        sha1 = "e1436116abb0610c2259094848754ac5230922ad";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_literals___plugin_transform_literals_7.2.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_literals___plugin_transform_literals_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz";
-        sha1 = "690353e81f9267dad4fd8cfd77eafa86aba53ea1";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_member_expression_literals___plugin_transform_member_expression_literals_7.2.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_member_expression_literals___plugin_transform_member_expression_literals_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.2.0.tgz";
-        sha1 = "fa10aa5c58a2cb6afcf2c9ffa8cb4d8b3d489a2d";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_modules_amd___plugin_transform_modules_amd_7.5.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_modules_amd___plugin_transform_modules_amd_7.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.5.0.tgz";
-        sha1 = "ef00435d46da0a5961aa728a1d2ecff063e4fb91";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_modules_commonjs___plugin_transform_modules_commonjs_7.5.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_modules_commonjs___plugin_transform_modules_commonjs_7.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.5.0.tgz";
-        sha1 = "425127e6045231360858eeaa47a71d75eded7a74";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_modules_systemjs___plugin_transform_modules_systemjs_7.5.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_modules_systemjs___plugin_transform_modules_systemjs_7.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.5.0.tgz";
-        sha1 = "e75266a13ef94202db2a0620977756f51d52d249";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_modules_umd___plugin_transform_modules_umd_7.2.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_modules_umd___plugin_transform_modules_umd_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz";
-        sha1 = "7678ce75169f0877b8eb2235538c074268dd01ae";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_named_capturing_groups_regex___plugin_transform_named_capturing_groups_regex_7.4.5.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_named_capturing_groups_regex___plugin_transform_named_capturing_groups_regex_7.4.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.4.5.tgz";
-        sha1 = "9d269fd28a370258199b4294736813a60bbdd106";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_new_target___plugin_transform_new_target_7.4.4.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_new_target___plugin_transform_new_target_7.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz";
-        sha1 = "18d120438b0cc9ee95a47f2c72bc9768fbed60a5";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_object_super___plugin_transform_object_super_7.5.5.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_object_super___plugin_transform_object_super_7.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz";
-        sha1 = "c70021df834073c65eb613b8679cc4a381d1a9f9";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_parameters___plugin_transform_parameters_7.4.4.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_parameters___plugin_transform_parameters_7.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz";
-        sha1 = "7556cf03f318bd2719fe4c922d2d808be5571e16";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_property_literals___plugin_transform_property_literals_7.2.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_property_literals___plugin_transform_property_literals_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz";
-        sha1 = "03e33f653f5b25c4eb572c98b9485055b389e905";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_regenerator___plugin_transform_regenerator_7.4.5.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_regenerator___plugin_transform_regenerator_7.4.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz";
-        sha1 = "629dc82512c55cee01341fb27bdfcb210354680f";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_reserved_words___plugin_transform_reserved_words_7.2.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_reserved_words___plugin_transform_reserved_words_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.2.0.tgz";
-        sha1 = "4792af87c998a49367597d07fedf02636d2e1634";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_shorthand_properties___plugin_transform_shorthand_properties_7.2.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_shorthand_properties___plugin_transform_shorthand_properties_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz";
-        sha1 = "6333aee2f8d6ee7e28615457298934a3b46198f0";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_spread___plugin_transform_spread_7.2.2.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_spread___plugin_transform_spread_7.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz";
-        sha1 = "3103a9abe22f742b6d406ecd3cd49b774919b406";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_sticky_regex___plugin_transform_sticky_regex_7.2.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_sticky_regex___plugin_transform_sticky_regex_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz";
-        sha1 = "a1e454b5995560a9c1e0d537dfc15061fd2687e1";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_template_literals___plugin_transform_template_literals_7.4.4.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_template_literals___plugin_transform_template_literals_7.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz";
-        sha1 = "9d28fea7bbce637fb7612a0750989d8321d4bcb0";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_typeof_symbol___plugin_transform_typeof_symbol_7.2.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_typeof_symbol___plugin_transform_typeof_symbol_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz";
-        sha1 = "117d2bcec2fbf64b4b59d1f9819894682d29f2b2";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_unicode_regex___plugin_transform_unicode_regex_7.4.4.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_unicode_regex___plugin_transform_unicode_regex_7.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.4.4.tgz";
-        sha1 = "ab4634bb4f14d36728bf5978322b35587787970f";
-      };
-    }
-    {
-      name = "_babel_preset_env___preset_env_7.5.5.tgz";
-      path = fetchurl {
-        name = "_babel_preset_env___preset_env_7.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.5.5.tgz";
-        sha1 = "bc470b53acaa48df4b8db24a570d6da1fef53c9a";
-      };
-    }
-    {
-      name = "_babel_runtime_corejs3___runtime_corejs3_7.10.2.tgz";
-      path = fetchurl {
-        name = "_babel_runtime_corejs3___runtime_corejs3_7.10.2.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.10.2.tgz";
-        sha1 = "3511797ddf9a3d6f3ce46b99cc835184817eaa4e";
-      };
-    }
-    {
-      name = "_babel_runtime___runtime_7.7.7.tgz";
-      path = fetchurl {
-        name = "_babel_runtime___runtime_7.7.7.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.7.7.tgz";
-        sha1 = "194769ca8d6d7790ec23605af9ee3e42a0aa79cf";
-      };
-    }
-    {
-      name = "_babel_runtime___runtime_7.10.2.tgz";
-      path = fetchurl {
-        name = "_babel_runtime___runtime_7.10.2.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.10.2.tgz";
-        sha1 = "d103f21f2602497d38348a32e008637d506db839";
-      };
-    }
-    {
-      name = "_babel_runtime___runtime_7.10.4.tgz";
-      path = fetchurl {
-        name = "_babel_runtime___runtime_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.10.4.tgz";
-        sha1 = "a6724f1a6b8d2f6ea5236dbfe58c7d7ea9c5eb99";
-      };
-    }
-    {
-      name = "_babel_template___template_7.4.4.tgz";
-      path = fetchurl {
-        name = "_babel_template___template_7.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/template/-/template-7.4.4.tgz";
-        sha1 = "f4b88d1225689a08f5bc3a17483545be9e4ed237";
-      };
-    }
-    {
-      name = "_babel_traverse___traverse_7.5.5.tgz";
-      path = fetchurl {
-        name = "_babel_traverse___traverse_7.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.5.5.tgz";
-        sha1 = "f664f8f368ed32988cd648da9f72d5ca70f165bb";
-      };
-    }
-    {
-      name = "_babel_types___types_7.5.5.tgz";
-      path = fetchurl {
-        name = "_babel_types___types_7.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/types/-/types-7.5.5.tgz";
-        sha1 = "97b9f728e182785909aa4ab56264f090a028d18a";
-      };
-    }
-    {
-      name = "_babel_types___types_7.2.2.tgz";
-      path = fetchurl {
-        name = "_babel_types___types_7.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/types/-/types-7.2.2.tgz";
-        sha1 = "44e10fc24e33af524488b716cdaee5360ea8ed1e";
-      };
-    }
-    {
-      name = "_cnakazawa_watch___watch_1.0.3.tgz";
-      path = fetchurl {
-        name = "_cnakazawa_watch___watch_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.3.tgz";
-        sha1 = "099139eaec7ebf07a27c1786a3ff64f39464d2ef";
-      };
-    }
-    {
-      name = "_cypress_listr_verbose_renderer___listr_verbose_renderer_0.4.1.tgz";
-      path = fetchurl {
-        name = "_cypress_listr_verbose_renderer___listr_verbose_renderer_0.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/@cypress/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz";
-        sha1 = "a77492f4b11dcc7c446a34b3e28721afd33c642a";
-      };
-    }
-    {
-      name = "_cypress_request___request_2.88.5.tgz";
-      path = fetchurl {
-        name = "_cypress_request___request_2.88.5.tgz";
-        url  = "https://registry.yarnpkg.com/@cypress/request/-/request-2.88.5.tgz";
-        sha1 = "8d7ecd17b53a849cfd5ab06d5abe7d84976375d7";
-      };
-    }
-    {
-      name = "_cypress_xvfb___xvfb_1.2.4.tgz";
-      path = fetchurl {
-        name = "_cypress_xvfb___xvfb_1.2.4.tgz";
-        url  = "https://registry.yarnpkg.com/@cypress/xvfb/-/xvfb-1.2.4.tgz";
-        sha1 = "2daf42e8275b39f4aa53c14214e557bd14e7748a";
-      };
-    }
-    {
-      name = "_influxdata_clockface___clockface_2.3.4.tgz";
-      path = fetchurl {
-        name = "_influxdata_clockface___clockface_2.3.4.tgz";
-        url  = "https://registry.yarnpkg.com/@influxdata/clockface/-/clockface-2.3.4.tgz";
-        sha1 = "9c496601253e1d49cbeae29a7b9cfb54862785f6";
-      };
-    }
-    {
-      name = "_influxdata_flux_lsp_browser___flux_lsp_browser_0.5.41.tgz";
-      path = fetchurl {
-        name = "_influxdata_flux_lsp_browser___flux_lsp_browser_0.5.41.tgz";
-        url  = "https://registry.yarnpkg.com/@influxdata/flux-lsp-browser/-/flux-lsp-browser-0.5.41.tgz";
-        sha1 = "abf6c5ad253317f34a9217ecfd250d78fe625a83";
-      };
-    }
-    {
-      name = "_influxdata_flux___flux_0.5.1.tgz";
-      path = fetchurl {
-        name = "_influxdata_flux___flux_0.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/@influxdata/flux/-/flux-0.5.1.tgz";
-        sha1 = "e39e7a7af9163fc9494422c8fed77f3ae1b68f56";
-      };
-    }
-    {
-      name = "_influxdata_giraffe___giraffe_0.29.0.tgz";
-      path = fetchurl {
-        name = "_influxdata_giraffe___giraffe_0.29.0.tgz";
-        url  = "https://registry.yarnpkg.com/@influxdata/giraffe/-/giraffe-0.29.0.tgz";
-        sha1 = "0a6a3216b910ae3a1d834d682003f3894d7bc5d6";
-      };
-    }
-    {
-      name = "_influxdata_influx___influx_0.5.5.tgz";
-      path = fetchurl {
-        name = "_influxdata_influx___influx_0.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/@influxdata/influx/-/influx-0.5.5.tgz";
-        sha1 = "ff30862ba3837df8e6e237634e7c844a00c03c08";
-      };
-    }
-    {
-      name = "_influxdata_influxdb_templates___influxdb_templates_0.9.0.tgz";
-      path = fetchurl {
-        name = "_influxdata_influxdb_templates___influxdb_templates_0.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/@influxdata/influxdb-templates/-/influxdb-templates-0.9.0.tgz";
-        sha1 = "d4b1f727c8949147d2ade63f5754425a0d1a0e9d";
-      };
-    }
-    {
-      name = "_influxdata_oats___oats_0.5.0.tgz";
-      path = fetchurl {
-        name = "_influxdata_oats___oats_0.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/@influxdata/oats/-/oats-0.5.0.tgz";
-        sha1 = "0fdd308524fa407303ffa6a3d60fe959777dcfcb";
-      };
-    }
-    {
-      name = "_influxdata_react_custom_scrollbars___react_custom_scrollbars_4.3.8.tgz";
-      path = fetchurl {
-        name = "_influxdata_react_custom_scrollbars___react_custom_scrollbars_4.3.8.tgz";
-        url  = "https://registry.yarnpkg.com/@influxdata/react-custom-scrollbars/-/react-custom-scrollbars-4.3.8.tgz";
-        sha1 = "0e2a570860b0d9d8ef134069fe7e16e76e6765d9";
-      };
-    }
-    {
-      name = "_jest_console___console_24.7.1.tgz";
-      path = fetchurl {
-        name = "_jest_console___console_24.7.1.tgz";
-        url  = "https://registry.yarnpkg.com/@jest/console/-/console-24.7.1.tgz";
-        sha1 = "32a9e42535a97aedfe037e725bd67e954b459545";
-      };
-    }
-    {
-      name = "_jest_core___core_24.8.0.tgz";
-      path = fetchurl {
-        name = "_jest_core___core_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/@jest/core/-/core-24.8.0.tgz";
-        sha1 = "fbbdcd42a41d0d39cddbc9f520c8bab0c33eed5b";
-      };
-    }
-    {
-      name = "_jest_environment___environment_24.8.0.tgz";
-      path = fetchurl {
-        name = "_jest_environment___environment_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/@jest/environment/-/environment-24.8.0.tgz";
-        sha1 = "0342261383c776bdd652168f68065ef144af0eac";
-      };
-    }
-    {
-      name = "_jest_fake_timers___fake_timers_24.8.0.tgz";
-      path = fetchurl {
-        name = "_jest_fake_timers___fake_timers_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.8.0.tgz";
-        sha1 = "2e5b80a4f78f284bcb4bd5714b8e10dd36a8d3d1";
-      };
-    }
-    {
-      name = "_jest_reporters___reporters_24.8.0.tgz";
-      path = fetchurl {
-        name = "_jest_reporters___reporters_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.8.0.tgz";
-        sha1 = "075169cd029bddec54b8f2c0fc489fd0b9e05729";
-      };
-    }
-    {
-      name = "_jest_source_map___source_map_24.3.0.tgz";
-      path = fetchurl {
-        name = "_jest_source_map___source_map_24.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/@jest/source-map/-/source-map-24.3.0.tgz";
-        sha1 = "563be3aa4d224caf65ff77edc95cd1ca4da67f28";
-      };
-    }
-    {
-      name = "_jest_test_result___test_result_24.8.0.tgz";
-      path = fetchurl {
-        name = "_jest_test_result___test_result_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.8.0.tgz";
-        sha1 = "7675d0aaf9d2484caa65e048d9b467d160f8e9d3";
-      };
-    }
-    {
-      name = "_jest_test_sequencer___test_sequencer_24.8.0.tgz";
-      path = fetchurl {
-        name = "_jest_test_sequencer___test_sequencer_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-24.8.0.tgz";
-        sha1 = "2f993bcf6ef5eb4e65e8233a95a3320248cf994b";
-      };
-    }
-    {
-      name = "_jest_transform___transform_24.8.0.tgz";
-      path = fetchurl {
-        name = "_jest_transform___transform_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/@jest/transform/-/transform-24.8.0.tgz";
-        sha1 = "628fb99dce4f9d254c6fd9341e3eea262e06fef5";
-      };
-    }
-    {
-      name = "_jest_types___types_24.8.0.tgz";
-      path = fetchurl {
-        name = "_jest_types___types_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/@jest/types/-/types-24.8.0.tgz";
-        sha1 = "f31e25948c58f0abd8c845ae26fcea1491dea7ad";
-      };
-    }
-    {
-      name = "_jest_types___types_24.9.0.tgz";
-      path = fetchurl {
-        name = "_jest_types___types_24.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/@jest/types/-/types-24.9.0.tgz";
-        sha1 = "63cb26cb7500d069e5a389441a7c6ab5e909fc59";
-      };
-    }
-    {
-      name = "_jest_types___types_25.5.0.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 = "_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 = "_testing_library_dom___dom_7.11.0.tgz";
-      path = fetchurl {
-        name = "_testing_library_dom___dom_7.11.0.tgz";
-        url  = "https://registry.yarnpkg.com/@testing-library/dom/-/dom-7.11.0.tgz";
-        sha1 = "db8678bc55aef7cd6091d1510e8d0949d77d79fd";
-      };
-    }
-    {
-      name = "_testing_library_react___react_10.2.1.tgz";
-      path = fetchurl {
-        name = "_testing_library_react___react_10.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/@testing-library/react/-/react-10.2.1.tgz";
-        sha1 = "f0c5ac9072ad54c29672150943f35d6617263f26";
-      };
-    }
-    {
-      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_asap___asap_2.0.0.tgz";
-      path = fetchurl {
-        name = "_types_asap___asap_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/@types/asap/-/asap-2.0.0.tgz";
-        sha1 = "d529e9608c83499a62ae08c871c5e62271aa2963";
-      };
-    }
-    {
-      name = "_types_babel__core___babel__core_7.1.2.tgz";
-      path = fetchurl {
-        name = "_types_babel__core___babel__core_7.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.2.tgz";
-        sha1 = "608c74f55928033fce18b99b213c16be4b3d114f";
-      };
-    }
-    {
-      name = "_types_babel__generator___babel__generator_7.0.2.tgz";
-      path = fetchurl {
-        name = "_types_babel__generator___babel__generator_7.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.0.2.tgz";
-        sha1 = "d2112a6b21fad600d7674274293c85dce0cb47fc";
-      };
-    }
-    {
-      name = "_types_babel__template___babel__template_7.0.2.tgz";
-      path = fetchurl {
-        name = "_types_babel__template___babel__template_7.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.0.2.tgz";
-        sha1 = "4ff63d6b52eddac1de7b975a5223ed32ecea9307";
-      };
-    }
-    {
-      name = "_types_babel__traverse___babel__traverse_7.0.7.tgz";
-      path = fetchurl {
-        name = "_types_babel__traverse___babel__traverse_7.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.7.tgz";
-        sha1 = "2496e9ff56196cc1429c72034e07eab6121b6f3f";
-      };
-    }
-    {
-      name = "_types_cheerio___cheerio_0.22.9.tgz";
-      path = fetchurl {
-        name = "_types_cheerio___cheerio_0.22.9.tgz";
-        url  = "https://registry.yarnpkg.com/@types/cheerio/-/cheerio-0.22.9.tgz";
-        sha1 = "b5990152604c2ada749b7f88cab3476f21f39d7b";
-      };
-    }
-    {
-      name = "_types_chroma_js___chroma_js_1.4.0.tgz";
-      path = fetchurl {
-        name = "_types_chroma_js___chroma_js_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/@types/chroma-js/-/chroma-js-1.4.0.tgz";
-        sha1 = "1d215474b54e227bd0204572c0483b98593eabd0";
-      };
-    }
-    {
-      name = "_types_codemirror___codemirror_0.0.56.tgz";
-      path = fetchurl {
-        name = "_types_codemirror___codemirror_0.0.56.tgz";
-        url  = "https://registry.yarnpkg.com/@types/codemirror/-/codemirror-0.0.56.tgz";
-        sha1 = "1fcf68df0d0a49791d843dadda7d94891ac88669";
-      };
-    }
-    {
-      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_d3_color___d3_color_1.2.1.tgz";
-      path = fetchurl {
-        name = "_types_d3_color___d3_color_1.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/d3-color/-/d3-color-1.2.1.tgz";
-        sha1 = "26141c3c554e320edd40726b793570a3ae57397e";
-      };
-    }
-    {
-      name = "_types_d3_scale___d3_scale_2.0.2.tgz";
-      path = fetchurl {
-        name = "_types_d3_scale___d3_scale_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/@types/d3-scale/-/d3-scale-2.0.2.tgz";
-        sha1 = "61145948aa1a52ab31384766cd013308699112b3";
-      };
-    }
-    {
-      name = "_types_d3_time___d3_time_1.0.9.tgz";
-      path = fetchurl {
-        name = "_types_d3_time___d3_time_1.0.9.tgz";
-        url  = "https://registry.yarnpkg.com/@types/d3-time/-/d3-time-1.0.9.tgz";
-        sha1 = "c2cf05a3cd51f810b8d8a9bbca0c74030d4e535e";
-      };
-    }
-    {
-      name = "_types_enzyme___enzyme_3.1.14.tgz";
-      path = fetchurl {
-        name = "_types_enzyme___enzyme_3.1.14.tgz";
-        url  = "https://registry.yarnpkg.com/@types/enzyme/-/enzyme-3.1.14.tgz";
-        sha1 = "379c26205f6e0e272f3a51d6bbdd50071a9d03a6";
-      };
-    }
-    {
-      name = "_types_eslint_visitor_keys___eslint_visitor_keys_1.0.0.tgz";
-      path = fetchurl {
-        name = "_types_eslint_visitor_keys___eslint_visitor_keys_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz";
-        sha1 = "1ee30d79544ca84d68d4b3cdb0af4f205663dd2d";
-      };
-    }
-    {
-      name = "_types_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_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_history___history_4.7.6.tgz";
-      path = fetchurl {
-        name = "_types_history___history_4.7.6.tgz";
-        url  = "https://registry.yarnpkg.com/@types/history/-/history-4.7.6.tgz";
-        sha1 = "ed8fc802c45b8e8f54419c2d054e55c9ea344356";
-      };
-    }
-    {
-      name = "_types_hoist_non_react_statics___hoist_non_react_statics_3.3.1.tgz";
-      path = fetchurl {
-        name = "_types_hoist_non_react_statics___hoist_non_react_statics_3.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz";
-        sha1 = "1124aafe5118cb591977aeb1ceaaed1070eb039f";
-      };
-    }
-    {
-      name = "_types_invariant___invariant_2.2.33.tgz";
-      path = fetchurl {
-        name = "_types_invariant___invariant_2.2.33.tgz";
-        url  = "https://registry.yarnpkg.com/@types/invariant/-/invariant-2.2.33.tgz";
-        sha1 = "ec5eec29c63bf5e4ca164e9feb3ef7337cdcbadb";
-      };
-    }
-    {
-      name = "_types_istanbul_lib_coverage___istanbul_lib_coverage_2.0.1.tgz";
-      path = fetchurl {
-        name = "_types_istanbul_lib_coverage___istanbul_lib_coverage_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz";
-        sha1 = "42995b446db9a48a11a07ec083499a860e9138ff";
-      };
-    }
-    {
-      name = "_types_istanbul_lib_report___istanbul_lib_report_1.1.1.tgz";
-      path = fetchurl {
-        name = "_types_istanbul_lib_report___istanbul_lib_report_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz";
-        sha1 = "e5471e7fa33c61358dd38426189c037a58433b8c";
-      };
-    }
-    {
-      name = "_types_istanbul_reports___istanbul_reports_1.1.1.tgz";
-      path = fetchurl {
-        name = "_types_istanbul_reports___istanbul_reports_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz";
-        sha1 = "7a8cbf6a406f36c8add871625b278eaf0b0d255a";
-      };
-    }
-    {
-      name = "_types_jest___jest_23.3.3.tgz";
-      path = fetchurl {
-        name = "_types_jest___jest_23.3.3.tgz";
-        url  = "https://registry.yarnpkg.com/@types/jest/-/jest-23.3.3.tgz";
-        sha1 = "246ebcc52771d2327bb8e37aa971b412d9dc4237";
-      };
-    }
-    {
-      name = "_types_json_schema___json_schema_7.0.3.tgz";
-      path = fetchurl {
-        name = "_types_json_schema___json_schema_7.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.3.tgz";
-        sha1 = "bdfd69d61e464dcc81b25159c270d75a73c1a636";
-      };
-    }
-    {
-      name = "_types_json_schema___json_schema_7.0.5.tgz";
-      path = fetchurl {
-        name = "_types_json_schema___json_schema_7.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.5.tgz";
-        sha1 = "dcce4430e64b443ba8945f0290fb564ad5bac6dd";
-      };
-    }
-    {
-      name = "_types_lodash___lodash_4.14.116.tgz";
-      path = fetchurl {
-        name = "_types_lodash___lodash_4.14.116.tgz";
-        url  = "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.116.tgz";
-        sha1 = "5ccf215653e3e8c786a58390751033a9adca0eb9";
-      };
-    }
-    {
-      name = "_types_memoize_one___memoize_one_4.1.0.tgz";
-      path = fetchurl {
-        name = "_types_memoize_one___memoize_one_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/@types/memoize-one/-/memoize-one-4.1.0.tgz";
-        sha1 = "62119f26055b3193ae43ca1882c5b29b88b71ece";
-      };
-    }
-    {
-      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.9.2.tgz";
-      path = fetchurl {
-        name = "_types_node___node_13.9.2.tgz";
-        url  = "https://registry.yarnpkg.com/@types/node/-/node-13.9.2.tgz";
-        sha1 = "ace1880c03594cc3e80206d96847157d8e7fa349";
-      };
-    }
-    {
-      name = "_types_node___node_12.6.8.tgz";
-      path = fetchurl {
-        name = "_types_node___node_12.6.8.tgz";
-        url  = "https://registry.yarnpkg.com/@types/node/-/node-12.6.8.tgz";
-        sha1 = "e469b4bf9d1c9832aee4907ba8a051494357c12c";
-      };
-    }
-    {
-      name = "_types_papaparse___papaparse_4.5.9.tgz";
-      path = fetchurl {
-        name = "_types_papaparse___papaparse_4.5.9.tgz";
-        url  = "https://registry.yarnpkg.com/@types/papaparse/-/papaparse-4.5.9.tgz";
-        sha1 = "ff887bd362f57cd0c87320d2de38ac232bb55e81";
-      };
-    }
-    {
-      name = "_types_prop_types___prop_types_15.5.6.tgz";
-      path = fetchurl {
-        name = "_types_prop_types___prop_types_15.5.6.tgz";
-        url  = "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.5.6.tgz";
-        sha1 = "9c03d3fed70a8d517c191b7734da2879b50ca26c";
-      };
-    }
-    {
-      name = "_types_q___q_1.5.2.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.5.1.tgz";
-      path = fetchurl {
-        name = "_types_qs___qs_6.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/qs/-/qs-6.5.1.tgz";
-        sha1 = "a38f69c62528d56ba7bd1f91335a8004988d72f7";
-      };
-    }
-    {
-      name = "_types_react_datepicker___react_datepicker_2.8.1.tgz";
-      path = fetchurl {
-        name = "_types_react_datepicker___react_datepicker_2.8.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/react-datepicker/-/react-datepicker-2.8.1.tgz";
-        sha1 = "37b52655695c2494810e7258528aace79f6a2a46";
-      };
-    }
-    {
-      name = "_types_react_dom___react_dom_16.8.2.tgz";
-      path = fetchurl {
-        name = "_types_react_dom___react_dom_16.8.2.tgz";
-        url  = "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.8.2.tgz";
-        sha1 = "9bd7d33f908b243ff0692846ef36c81d4941ad12";
-      };
-    }
-    {
-      name = "_types_react_grid_layout___react_grid_layout_0.16.5.tgz";
-      path = fetchurl {
-        name = "_types_react_grid_layout___react_grid_layout_0.16.5.tgz";
-        url  = "https://registry.yarnpkg.com/@types/react-grid-layout/-/react-grid-layout-0.16.5.tgz";
-        sha1 = "ee23e1f9a0f2d00fc0bf91a5ad12b5c9c6b548df";
-      };
-    }
-    {
-      name = "_types_react_redux___react_redux_7.1.9.tgz";
-      path = fetchurl {
-        name = "_types_react_redux___react_redux_7.1.9.tgz";
-        url  = "https://registry.yarnpkg.com/@types/react-redux/-/react-redux-7.1.9.tgz";
-        sha1 = "280c13565c9f13ceb727ec21e767abe0e9b4aec3";
-      };
-    }
-    {
-      name = "_types_react_router_dom___react_router_dom_5.1.5.tgz";
-      path = fetchurl {
-        name = "_types_react_router_dom___react_router_dom_5.1.5.tgz";
-        url  = "https://registry.yarnpkg.com/@types/react-router-dom/-/react-router-dom-5.1.5.tgz";
-        sha1 = "7c334a2ea785dbad2b2dcdd83d2cf3d9973da090";
-      };
-    }
-    {
-      name = "_types_react_router___react_router_5.1.8.tgz";
-      path = fetchurl {
-        name = "_types_react_router___react_router_5.1.8.tgz";
-        url  = "https://registry.yarnpkg.com/@types/react-router/-/react-router-5.1.8.tgz";
-        sha1 = "4614e5ba7559657438e17766bb95ef6ed6acc3fa";
-      };
-    }
-    {
-      name = "_types_react_virtualized___react_virtualized_9.18.7.tgz";
-      path = fetchurl {
-        name = "_types_react_virtualized___react_virtualized_9.18.7.tgz";
-        url  = "https://registry.yarnpkg.com/@types/react-virtualized/-/react-virtualized-9.18.7.tgz";
-        sha1 = "8703d8904236819facff90b8b320f29233160c90";
-      };
-    }
-    {
-      name = "_types_react___react_16.8.3.tgz";
-      path = fetchurl {
-        name = "_types_react___react_16.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@types/react/-/react-16.8.3.tgz";
-        sha1 = "7b67956f682bea30a5a09b3242c0784ff196c848";
-      };
-    }
-    {
-      name = "_types_react___react_16.9.11.tgz";
-      path = fetchurl {
-        name = "_types_react___react_16.9.11.tgz";
-        url  = "https://registry.yarnpkg.com/@types/react/-/react-16.9.11.tgz";
-        sha1 = "70e0b7ad79058a7842f25ccf2999807076ada120";
-      };
-    }
-    {
-      name = "_types_shallowequal___shallowequal_1.1.1.tgz";
-      path = fetchurl {
-        name = "_types_shallowequal___shallowequal_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/shallowequal/-/shallowequal-1.1.1.tgz";
-        sha1 = "aad262bb3f2b1257d94c71d545268d592575c9b1";
-      };
-    }
-    {
-      name = "_types_sinonjs__fake_timers___sinonjs__fake_timers_6.0.1.tgz";
-      path = fetchurl {
-        name = "_types_sinonjs__fake_timers___sinonjs__fake_timers_6.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.1.tgz";
-        sha1 = "681df970358c82836b42f989188d133e218c458e";
-      };
-    }
-    {
-      name = "_types_sizzle___sizzle_2.3.2.tgz";
-      path = fetchurl {
-        name = "_types_sizzle___sizzle_2.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.2.tgz";
-        sha1 = "a811b8c18e2babab7d542b3365887ae2e4d9de47";
-      };
-    }
-    {
-      name = "_types_stack_utils___stack_utils_1.0.1.tgz";
-      path = fetchurl {
-        name = "_types_stack_utils___stack_utils_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz";
-        sha1 = "0a851d3bd96498fa25c33ab7278ed3bd65f06c3e";
-      };
-    }
-    {
-      name = "_types_tapable___tapable_1.0.4.tgz";
-      path = fetchurl {
-        name = "_types_tapable___tapable_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.4.tgz";
-        sha1 = "b4ffc7dc97b498c969b360a41eee247f82616370";
-      };
-    }
-    {
-      name = "_types_text_encoding___text_encoding_0.0.32.tgz";
-      path = fetchurl {
-        name = "_types_text_encoding___text_encoding_0.0.32.tgz";
-        url  = "https://registry.yarnpkg.com/@types/text-encoding/-/text-encoding-0.0.32.tgz";
-        sha1 = "52289b320a406850b14f08f48b475ca021218048";
-      };
-    }
-    {
-      name = "_types_uglify_js___uglify_js_3.0.4.tgz";
-      path = fetchurl {
-        name = "_types_uglify_js___uglify_js_3.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.0.4.tgz";
-        sha1 = "96beae23df6f561862a830b4288a49e86baac082";
-      };
-    }
-    {
-      name = "_types_uuid___uuid_3.4.4.tgz";
-      path = fetchurl {
-        name = "_types_uuid___uuid_3.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/@types/uuid/-/uuid-3.4.4.tgz";
-        sha1 = "7af69360fa65ef0decb41fd150bf4ca5c0cefdf5";
-      };
-    }
-    {
-      name = "_types_webpack_env___webpack_env_1.15.2.tgz";
-      path = fetchurl {
-        name = "_types_webpack_env___webpack_env_1.15.2.tgz";
-        url  = "https://registry.yarnpkg.com/@types/webpack-env/-/webpack-env-1.15.2.tgz";
-        sha1 = "927997342bb9f4a5185a86e6579a0a18afc33b0a";
-      };
-    }
-    {
-      name = "_types_webpack___webpack_4.4.35.tgz";
-      path = fetchurl {
-        name = "_types_webpack___webpack_4.4.35.tgz";
-        url  = "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.4.35.tgz";
-        sha1 = "b7088eb2d471d5645e5503d272783cafa753583b";
-      };
-    }
-    {
-      name = "_types_yargs_parser___yargs_parser_13.1.0.tgz";
-      path = fetchurl {
-        name = "_types_yargs_parser___yargs_parser_13.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-13.1.0.tgz";
-        sha1 = "c563aa192f39350a1d18da36c5a8da382bbd8228";
-      };
-    }
-    {
-      name = "_types_yargs___yargs_12.0.12.tgz";
-      path = fetchurl {
-        name = "_types_yargs___yargs_12.0.12.tgz";
-        url  = "https://registry.yarnpkg.com/@types/yargs/-/yargs-12.0.12.tgz";
-        sha1 = "45dd1d0638e8c8f153e87d296907659296873916";
-      };
-    }
-    {
-      name = "_types_yargs___yargs_13.0.3.tgz";
-      path = fetchurl {
-        name = "_types_yargs___yargs_13.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.3.tgz";
-        sha1 = "76482af3981d4412d65371a318f992d33464a380";
-      };
-    }
-    {
-      name = "_types_yargs___yargs_15.0.5.tgz";
-      path = fetchurl {
-        name = "_types_yargs___yargs_15.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.5.tgz";
-        sha1 = "947e9a6561483bdee9adffc983e91a6902af8b79";
-      };
-    }
-    {
-      name = "_typescript_eslint_eslint_plugin___eslint_plugin_2.6.0.tgz";
-      path = fetchurl {
-        name = "_typescript_eslint_eslint_plugin___eslint_plugin_2.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.6.0.tgz";
-        sha1 = "e82ed43fc4527b21bfe35c20a2d6e4ed49fc7957";
-      };
-    }
-    {
-      name = "_typescript_eslint_experimental_utils___experimental_utils_2.6.0.tgz";
-      path = fetchurl {
-        name = "_typescript_eslint_experimental_utils___experimental_utils_2.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.6.0.tgz";
-        sha1 = "ed70bef72822bff54031ff0615fc888b9e2b6e8a";
-      };
-    }
-    {
-      name = "_typescript_eslint_parser___parser_2.6.0.tgz";
-      path = fetchurl {
-        name = "_typescript_eslint_parser___parser_2.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.6.0.tgz";
-        sha1 = "5106295c6a7056287b4719e24aae8d6293d5af49";
-      };
-    }
-    {
-      name = "_typescript_eslint_typescript_estree___typescript_estree_2.6.0.tgz";
-      path = fetchurl {
-        name = "_typescript_eslint_typescript_estree___typescript_estree_2.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.6.0.tgz";
-        sha1 = "d3e9d8e001492e2b9124c4d4bd4e7f03c0fd7254";
-      };
-    }
-    {
-      name = "_use_it_event_listener___event_listener_0.1.3.tgz";
-      path = fetchurl {
-        name = "_use_it_event_listener___event_listener_0.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/@use-it/event-listener/-/event-listener-0.1.3.tgz";
-        sha1 = "a9920b2819d211cf55e68e830997546eec6886d3";
-      };
-    }
-    {
-      name = "_webassemblyjs_ast___ast_1.8.5.tgz";
-      path = fetchurl {
-        name = "_webassemblyjs_ast___ast_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.5.tgz";
-        sha1 = "51b1c5fe6576a34953bf4b253df9f0d490d9e359";
-      };
-    }
-    {
-      name = "_webassemblyjs_floating_point_hex_parser___floating_point_hex_parser_1.8.5.tgz";
-      path = fetchurl {
-        name = "_webassemblyjs_floating_point_hex_parser___floating_point_hex_parser_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz";
-        sha1 = "1ba926a2923613edce496fd5b02e8ce8a5f49721";
-      };
-    }
-    {
-      name = "_webassemblyjs_helper_api_error___helper_api_error_1.8.5.tgz";
-      path = fetchurl {
-        name = "_webassemblyjs_helper_api_error___helper_api_error_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz";
-        sha1 = "c49dad22f645227c5edb610bdb9697f1aab721f7";
-      };
-    }
-    {
-      name = "_webassemblyjs_helper_buffer___helper_buffer_1.8.5.tgz";
-      path = fetchurl {
-        name = "_webassemblyjs_helper_buffer___helper_buffer_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz";
-        sha1 = "fea93e429863dd5e4338555f42292385a653f204";
-      };
-    }
-    {
-      name = "_webassemblyjs_helper_code_frame___helper_code_frame_1.8.5.tgz";
-      path = fetchurl {
-        name = "_webassemblyjs_helper_code_frame___helper_code_frame_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz";
-        sha1 = "9a740ff48e3faa3022b1dff54423df9aa293c25e";
-      };
-    }
-    {
-      name = "_webassemblyjs_helper_fsm___helper_fsm_1.8.5.tgz";
-      path = fetchurl {
-        name = "_webassemblyjs_helper_fsm___helper_fsm_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz";
-        sha1 = "ba0b7d3b3f7e4733da6059c9332275d860702452";
-      };
-    }
-    {
-      name = "_webassemblyjs_helper_module_context___helper_module_context_1.8.5.tgz";
-      path = fetchurl {
-        name = "_webassemblyjs_helper_module_context___helper_module_context_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz";
-        sha1 = "def4b9927b0101dc8cbbd8d1edb5b7b9c82eb245";
-      };
-    }
-    {
-      name = "_webassemblyjs_helper_wasm_bytecode___helper_wasm_bytecode_1.8.5.tgz";
-      path = fetchurl {
-        name = "_webassemblyjs_helper_wasm_bytecode___helper_wasm_bytecode_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz";
-        sha1 = "537a750eddf5c1e932f3744206551c91c1b93e61";
-      };
-    }
-    {
-      name = "_webassemblyjs_helper_wasm_section___helper_wasm_section_1.8.5.tgz";
-      path = fetchurl {
-        name = "_webassemblyjs_helper_wasm_section___helper_wasm_section_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz";
-        sha1 = "74ca6a6bcbe19e50a3b6b462847e69503e6bfcbf";
-      };
-    }
-    {
-      name = "_webassemblyjs_ieee754___ieee754_1.8.5.tgz";
-      path = fetchurl {
-        name = "_webassemblyjs_ieee754___ieee754_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz";
-        sha1 = "712329dbef240f36bf57bd2f7b8fb9bf4154421e";
-      };
-    }
-    {
-      name = "_webassemblyjs_leb128___leb128_1.8.5.tgz";
-      path = fetchurl {
-        name = "_webassemblyjs_leb128___leb128_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.8.5.tgz";
-        sha1 = "044edeb34ea679f3e04cd4fd9824d5e35767ae10";
-      };
-    }
-    {
-      name = "_webassemblyjs_utf8___utf8_1.8.5.tgz";
-      path = fetchurl {
-        name = "_webassemblyjs_utf8___utf8_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.8.5.tgz";
-        sha1 = "a8bf3b5d8ffe986c7c1e373ccbdc2a0915f0cedc";
-      };
-    }
-    {
-      name = "_webassemblyjs_wasm_edit___wasm_edit_1.8.5.tgz";
-      path = fetchurl {
-        name = "_webassemblyjs_wasm_edit___wasm_edit_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz";
-        sha1 = "962da12aa5acc1c131c81c4232991c82ce56e01a";
-      };
-    }
-    {
-      name = "_webassemblyjs_wasm_gen___wasm_gen_1.8.5.tgz";
-      path = fetchurl {
-        name = "_webassemblyjs_wasm_gen___wasm_gen_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz";
-        sha1 = "54840766c2c1002eb64ed1abe720aded714f98bc";
-      };
-    }
-    {
-      name = "_webassemblyjs_wasm_opt___wasm_opt_1.8.5.tgz";
-      path = fetchurl {
-        name = "_webassemblyjs_wasm_opt___wasm_opt_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz";
-        sha1 = "b24d9f6ba50394af1349f510afa8ffcb8a63d264";
-      };
-    }
-    {
-      name = "_webassemblyjs_wasm_parser___wasm_parser_1.8.5.tgz";
-      path = fetchurl {
-        name = "_webassemblyjs_wasm_parser___wasm_parser_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz";
-        sha1 = "21576f0ec88b91427357b8536383668ef7c66b8d";
-      };
-    }
-    {
-      name = "_webassemblyjs_wast_parser___wast_parser_1.8.5.tgz";
-      path = fetchurl {
-        name = "_webassemblyjs_wast_parser___wast_parser_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz";
-        sha1 = "e10eecd542d0e7bd394f6827c49f3df6d4eefb8c";
-      };
-    }
-    {
-      name = "_webassemblyjs_wast_printer___wast_printer_1.8.5.tgz";
-      path = fetchurl {
-        name = "_webassemblyjs_wast_printer___wast_printer_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz";
-        sha1 = "114bbc481fd10ca0e23b3560fa812748b0bae5bc";
-      };
-    }
-    {
-      name = "_xtuc_ieee754___ieee754_1.2.0.tgz";
-      path = fetchurl {
-        name = "_xtuc_ieee754___ieee754_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz";
-        sha1 = "eef014a3145ae477a1cbc00cd1e552336dceb790";
-      };
-    }
-    {
-      name = "_xtuc_long___long_4.2.2.tgz";
-      path = fetchurl {
-        name = "_xtuc_long___long_4.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz";
-        sha1 = "d291c6a4e97989b5c61d9acf396ae4fe133a718d";
-      };
-    }
-    {
-      name = "JSV___JSV_4.0.2.tgz";
-      path = fetchurl {
-        name = "JSV___JSV_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/JSV/-/JSV-4.0.2.tgz";
-        sha1 = "d077f6825571f82132f9dffaed587b4029feff57";
-      };
-    }
-    {
-      name = "abab___abab_1.0.4.tgz";
-      path = fetchurl {
-        name = "abab___abab_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/abab/-/abab-1.0.4.tgz";
-        sha1 = "5faad9c2c07f60dd76770f71cf025b62a63cfd4e";
-      };
-    }
-    {
-      name = "abab___abab_2.0.0.tgz";
-      path = fetchurl {
-        name = "abab___abab_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/abab/-/abab-2.0.0.tgz";
-        sha1 = "aba0ab4c5eee2d4c79d3487d85450fb2376ebb0f";
-      };
-    }
-    {
-      name = "abortcontroller_polyfill___abortcontroller_polyfill_1.3.0.tgz";
-      path = fetchurl {
-        name = "abortcontroller_polyfill___abortcontroller_polyfill_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/abortcontroller-polyfill/-/abortcontroller-polyfill-1.3.0.tgz";
-        sha1 = "de69af32ae926c210b7efbcc29bf644ee4838b00";
-      };
-    }
-    {
-      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 = "acorn_globals___acorn_globals_3.1.0.tgz";
-      path = fetchurl {
-        name = "acorn_globals___acorn_globals_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-3.1.0.tgz";
-        sha1 = "fd8270f71fbb4996b004fa880ee5d46573a731bf";
-      };
-    }
-    {
-      name = "acorn_globals___acorn_globals_4.3.2.tgz";
-      path = fetchurl {
-        name = "acorn_globals___acorn_globals_4.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.2.tgz";
-        sha1 = "4e2c2313a597fd589720395f6354b41cd5ec8006";
-      };
-    }
-    {
-      name = "acorn_jsx___acorn_jsx_5.1.0.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_walk___acorn_walk_6.2.0.tgz";
-      path = fetchurl {
-        name = "acorn_walk___acorn_walk_6.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz";
-        sha1 = "123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c";
-      };
-    }
-    {
-      name = "acorn___acorn_4.0.13.tgz";
-      path = fetchurl {
-        name = "acorn___acorn_4.0.13.tgz";
-        url  = "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz";
-        sha1 = "105495ae5361d697bd195c825192e1ad7f253787";
-      };
-    }
-    {
-      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.2.1.tgz";
-      path = fetchurl {
-        name = "acorn___acorn_6.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/acorn/-/acorn-6.2.1.tgz";
-        sha1 = "3ed8422d6dec09e6121cc7a843ca86a330a86b51";
-      };
-    }
-    {
-      name = "acorn___acorn_6.0.6.tgz";
-      path = fetchurl {
-        name = "acorn___acorn_6.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/acorn/-/acorn-6.0.6.tgz";
-        sha1 = "cd75181670d5b99bdb1b1c993941d3a239ab1f56";
-      };
-    }
-    {
-      name = "acorn___acorn_6.3.0.tgz";
-      path = fetchurl {
-        name = "acorn___acorn_6.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/acorn/-/acorn-6.3.0.tgz";
-        sha1 = "0087509119ffa4fc0a0041d1e93a417e68cb856e";
-      };
-    }
-    {
-      name = "acorn___acorn_6.4.1.tgz";
-      path = fetchurl {
-        name = "acorn___acorn_6.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz";
-        sha1 = "531e58ba3f51b9dacb9a6646ca4debf5b14ca474";
-      };
-    }
-    {
-      name = "acorn___acorn_7.1.0.tgz";
-      path = fetchurl {
-        name = "acorn___acorn_7.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/acorn/-/acorn-7.1.0.tgz";
-        sha1 = "949d36f2c292535da602283586c2477c57eb2d6c";
-      };
-    }
-    {
-      name = "add_px_to_style___add_px_to_style_1.0.0.tgz";
-      path = fetchurl {
-        name = "add_px_to_style___add_px_to_style_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/add-px-to-style/-/add-px-to-style-1.0.0.tgz";
-        sha1 = "d0c135441fa8014a8137904531096f67f28f263a";
-      };
-    }
-    {
-      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_errors___ajv_errors_1.0.1.tgz";
-      path = fetchurl {
-        name = "ajv_errors___ajv_errors_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz";
-        sha1 = "f35986aceb91afadec4102fbd85014950cefa64d";
-      };
-    }
-    {
-      name = "ajv_keywords___ajv_keywords_3.4.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___ajv_6.12.0.tgz";
-      path = fetchurl {
-        name = "ajv___ajv_6.12.0.tgz";
-        url  = "https://registry.yarnpkg.com/ajv/-/ajv-6.12.0.tgz";
-        sha1 = "06d60b96d87b8454a5adaba86e7854da629db4b7";
-      };
-    }
-    {
-      name = "ajv___ajv_6.10.2.tgz";
-      path = fetchurl {
-        name = "ajv___ajv_6.10.2.tgz";
-        url  = "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz";
-        sha1 = "d3cea04d6b017b2894ad69040fec8b623eb4bd52";
-      };
-    }
-    {
-      name = "ajv___ajv_6.12.2.tgz";
-      path = fetchurl {
-        name = "ajv___ajv_6.12.2.tgz";
-        url  = "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz";
-        sha1 = "c629c5eced17baf314437918d2da88c99d5958cd";
-      };
-    }
-    {
-      name = "ajv___ajv_6.7.0.tgz";
-      path = fetchurl {
-        name = "ajv___ajv_6.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/ajv/-/ajv-6.7.0.tgz";
-        sha1 = "e3ce7bb372d6577bb1839f1dfdfcbf5ad2948d96";
-      };
-    }
-    {
-      name = "ajv___ajv_6.9.1.tgz";
-      path = fetchurl {
-        name = "ajv___ajv_6.9.1.tgz";
-        url  = "https://registry.yarnpkg.com/ajv/-/ajv-6.9.1.tgz";
-        sha1 = "a4d3683d74abc5670e75f0b16520f70a20ea8dc1";
-      };
-    }
-    {
-      name = "align_text___align_text_0.1.4.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 = "ally.js___ally.js_1.4.1.tgz";
-      path = fetchurl {
-        name = "ally.js___ally.js_1.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/ally.js/-/ally.js-1.4.1.tgz";
-        sha1 = "9fb7e6ba58efac4ee9131cb29aa9ee3b540bcf1e";
-      };
-    }
-    {
-      name = "alphanum_sort___alphanum_sort_1.0.2.tgz";
-      path = fetchurl {
-        name = "alphanum_sort___alphanum_sort_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz";
-        sha1 = "97a1119649b211ad33691d9f9f486a8ec9fbe0a3";
-      };
-    }
-    {
-      name = "amdefine___amdefine_1.0.1.tgz";
-      path = fetchurl {
-        name = "amdefine___amdefine_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz";
-        sha1 = "4a5282ac164729e93619bcfd3ad151f817ce91f5";
-      };
-    }
-    {
-      name = "ansi_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";
-        url  = "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz";
-        sha1 = "8780b98ff9dbf5638152d1f1fe5c1d7b4442976b";
-      };
-    }
-    {
-      name = "ansi_escapes___ansi_escapes_4.2.1.tgz";
-      path = fetchurl {
-        name = "ansi_escapes___ansi_escapes_4.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.2.1.tgz";
-        sha1 = "4dccdb846c3eee10f6d64dea66273eab90c37228";
-      };
-    }
-    {
-      name = "ansi_html___ansi_html_0.0.7.tgz";
-      path = fetchurl {
-        name = "ansi_html___ansi_html_0.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz";
-        sha1 = "813584021962a9e9e6fd039f940d12f56ca7859e";
-      };
-    }
-    {
-      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_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 = "anymatch___anymatch_2.0.0.tgz";
-      path = fetchurl {
-        name = "anymatch___anymatch_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz";
-        sha1 = "bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb";
-      };
-    }
-    {
-      name = "anymatch___anymatch_3.0.3.tgz";
-      path = fetchurl {
-        name = "anymatch___anymatch_3.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/anymatch/-/anymatch-3.0.3.tgz";
-        sha1 = "2fb624fe0e84bccab00afee3d0006ed310f22f09";
-      };
-    }
-    {
-      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 = "arch___arch_2.1.2.tgz";
-      path = fetchurl {
-        name = "arch___arch_2.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/arch/-/arch-2.1.2.tgz";
-        sha1 = "0c52bbe7344bb4fa260c443d2cbad9c00ff2f0bf";
-      };
-    }
-    {
-      name = "arg___arg_4.1.1.tgz";
-      path = fetchurl {
-        name = "arg___arg_4.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/arg/-/arg-4.1.1.tgz";
-        sha1 = "485f8e7c390ce4c5f78257dbea80d4be11feda4c";
-      };
-    }
-    {
-      name = "argparse___argparse_1.0.10.tgz";
-      path = fetchurl {
-        name = "argparse___argparse_1.0.10.tgz";
-        url  = "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz";
-        sha1 = "bcd6791ea5ae09725e17e5ad988134cd40b3d911";
-      };
-    }
-    {
-      name = "aria_query___aria_query_4.0.2.tgz";
-      path = fetchurl {
-        name = "aria_query___aria_query_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/aria-query/-/aria-query-4.0.2.tgz";
-        sha1 = "250687b4ccde1ab86d127da0432ae3552fc7b145";
-      };
-    }
-    {
-      name = "arr_diff___arr_diff_4.0.0.tgz";
-      path = fetchurl {
-        name = "arr_diff___arr_diff_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz";
-        sha1 = "d6461074febfec71e7e15235761a329a5dc7c520";
-      };
-    }
-    {
-      name = "arr_flatten___arr_flatten_1.1.0.tgz";
-      path = fetchurl {
-        name = "arr_flatten___arr_flatten_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz";
-        sha1 = "36048bbff4e7b47e136644316c99669ea5ae91f1";
-      };
-    }
-    {
-      name = "arr_union___arr_union_3.1.0.tgz";
-      path = fetchurl {
-        name = "arr_union___arr_union_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz";
-        sha1 = "e39b09aea9def866a8f206e288af63919bae39c4";
-      };
-    }
-    {
-      name = "array_equal___array_equal_1.0.0.tgz";
-      path = fetchurl {
-        name = "array_equal___array_equal_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz";
-        sha1 = "8c2a5ef2472fd9ea742b04c77a75093ba2757c93";
-      };
-    }
-    {
-      name = "array_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_flatten___array_flatten_2.1.2.tgz";
-      path = fetchurl {
-        name = "array_flatten___array_flatten_2.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz";
-        sha1 = "24ef80a28c1a893617e2149b0c6d0d788293b099";
-      };
-    }
-    {
-      name = "array_includes___array_includes_3.0.3.tgz";
-      path = fetchurl {
-        name = "array_includes___array_includes_3.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz";
-        sha1 = "184b48f62d92d7452bb31b323165c7f8bd02266d";
-      };
-    }
-    {
-      name = "array_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";
-      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_unique___array_unique_0.3.2.tgz";
-      path = fetchurl {
-        name = "array_unique___array_unique_0.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz";
-        sha1 = "a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428";
-      };
-    }
-    {
-      name = "array.prototype.flat___array.prototype.flat_1.2.1.tgz";
-      path = fetchurl {
-        name = "array.prototype.flat___array.prototype.flat_1.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.1.tgz";
-        sha1 = "812db8f02cad24d3fab65dd67eabe3b8903494a4";
-      };
-    }
-    {
-      name = "asap___asap_2.0.6.tgz";
-      path = fetchurl {
-        name = "asap___asap_2.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz";
-        sha1 = "e50347611d7e690943208bbdafebcbc2fb866d46";
-      };
-    }
-    {
-      name = "asn1.js___asn1.js_4.10.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___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 = "assert___assert_1.5.0.tgz";
-      path = fetchurl {
-        name = "assert___assert_1.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz";
-        sha1 = "55c109aaf6e0aefdb3dc4b71240c70bf574b18eb";
-      };
-    }
-    {
-      name = "assign_symbols___assign_symbols_1.0.0.tgz";
-      path = fetchurl {
-        name = "assign_symbols___assign_symbols_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz";
-        sha1 = "59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367";
-      };
-    }
-    {
-      name = "astral_regex___astral_regex_1.0.0.tgz";
-      path = fetchurl {
-        name = "astral_regex___astral_regex_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz";
-        sha1 = "6c8c3fb827dd43ee3918f27b82782ab7658a6fd9";
-      };
-    }
-    {
-      name = "async_each___async_each_1.0.3.tgz";
-      path = fetchurl {
-        name = "async_each___async_each_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz";
-        sha1 = "b727dbf87d7651602f06f4d4ac387f47d91b0cbf";
-      };
-    }
-    {
-      name = "async_limiter___async_limiter_1.0.0.tgz";
-      path = fetchurl {
-        name = "async_limiter___async_limiter_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz";
-        sha1 = "78faed8c3d074ab81f22b4e985d79e8738f720f8";
-      };
-    }
-    {
-      name = "async___async_2.6.3.tgz";
-      path = fetchurl {
-        name = "async___async_2.6.3.tgz";
-        url  = "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz";
-        sha1 = "d72625e2344a3656e3a3ad4fa749fa83299d82ff";
-      };
-    }
-    {
-      name = "async___async_3.2.0.tgz";
-      path = fetchurl {
-        name = "async___async_3.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz";
-        sha1 = "b3a2685c5ebb641d3de02d161002c60fc9f85720";
-      };
-    }
-    {
-      name = "async___async_0.2.10.tgz";
-      path = fetchurl {
-        name = "async___async_0.2.10.tgz";
-        url  = "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz";
-        sha1 = "b6bbe0b0674b9d719708ca38de8c237cb526c3d1";
-      };
-    }
-    {
-      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 = "atoa___atoa_1.0.0.tgz";
-      path = fetchurl {
-        name = "atoa___atoa_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/atoa/-/atoa-1.0.0.tgz";
-        sha1 = "0cc0e91a480e738f923ebc103676471779b34a49";
-      };
-    }
-    {
-      name = "atob___atob_2.1.2.tgz";
-      path = fetchurl {
-        name = "atob___atob_2.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz";
-        sha1 = "6d9517eb9e030d2436666651e86bd9f6f13533c9";
-      };
-    }
-    {
-      name = "auth0_js___auth0_js_9.12.2.tgz";
-      path = fetchurl {
-        name = "auth0_js___auth0_js_9.12.2.tgz";
-        url  = "https://registry.yarnpkg.com/auth0-js/-/auth0-js-9.12.2.tgz";
-        sha1 = "8227259a94e8a47eecf8d7a630d99669049833a6";
-      };
-    }
-    {
-      name = "autoprefixer___autoprefixer_6.7.7.tgz";
-      path = fetchurl {
-        name = "autoprefixer___autoprefixer_6.7.7.tgz";
-        url  = "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.7.tgz";
-        sha1 = "1dbd1c835658e35ce3f9984099db00585c782014";
-      };
-    }
-    {
-      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.8.0.tgz";
-      path = fetchurl {
-        name = "aws4___aws4_1.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz";
-        sha1 = "f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f";
-      };
-    }
-    {
-      name = "axios___axios_0.19.0.tgz";
-      path = fetchurl {
-        name = "axios___axios_0.19.0.tgz";
-        url  = "https://registry.yarnpkg.com/axios/-/axios-0.19.0.tgz";
-        sha1 = "8e09bff3d9122e133f7b8101c8fbdd00ed3d2ab8";
-      };
-    }
-    {
-      name = "babel_code_frame___babel_code_frame_6.26.0.tgz";
-      path = fetchurl {
-        name = "babel_code_frame___babel_code_frame_6.26.0.tgz";
-        url  = "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz";
-        sha1 = "63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b";
-      };
-    }
-    {
-      name = "babel_jest___babel_jest_24.8.0.tgz";
-      path = fetchurl {
-        name = "babel_jest___babel_jest_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.8.0.tgz";
-        sha1 = "5c15ff2b28e20b0f45df43fe6b7f2aae93dba589";
-      };
-    }
-    {
-      name = "babel_loader___babel_loader_8.0.6.tgz";
-      path = fetchurl {
-        name = "babel_loader___babel_loader_8.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.6.tgz";
-        sha1 = "e33bdb6f362b03f4bb141a0c21ab87c501b70dfb";
-      };
-    }
-    {
-      name = "babel_plugin_dynamic_import_node___babel_plugin_dynamic_import_node_2.3.0.tgz";
-      path = fetchurl {
-        name = "babel_plugin_dynamic_import_node___babel_plugin_dynamic_import_node_2.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz";
-        sha1 = "f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f";
-      };
-    }
-    {
-      name = "babel_plugin_istanbul___babel_plugin_istanbul_5.2.0.tgz";
-      path = fetchurl {
-        name = "babel_plugin_istanbul___babel_plugin_istanbul_5.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz";
-        sha1 = "df4ade83d897a92df069c4d9a25cf2671293c854";
-      };
-    }
-    {
-      name = "babel_plugin_jest_hoist___babel_plugin_jest_hoist_24.6.0.tgz";
-      path = fetchurl {
-        name = "babel_plugin_jest_hoist___babel_plugin_jest_hoist_24.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.6.0.tgz";
-        sha1 = "f7f7f7ad150ee96d7a5e8e2c5da8319579e78019";
-      };
-    }
-    {
-      name = "babel_polyfill___babel_polyfill_6.26.0.tgz";
-      path = fetchurl {
-        name = "babel_polyfill___babel_polyfill_6.26.0.tgz";
-        url  = "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz";
-        sha1 = "379937abc67d7895970adc621f284cd966cf2153";
-      };
-    }
-    {
-      name = "babel_preset_jest___babel_preset_jest_24.6.0.tgz";
-      path = fetchurl {
-        name = "babel_preset_jest___babel_preset_jest_24.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.6.0.tgz";
-        sha1 = "66f06136eefce87797539c0d63f1769cc3915984";
-      };
-    }
-    {
-      name = "babel_runtime___babel_runtime_6.26.0.tgz";
-      path = fetchurl {
-        name = "babel_runtime___babel_runtime_6.26.0.tgz";
-        url  = "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz";
-        sha1 = "965c7058668e82b55d7bfe04ff2337bc8b5647fe";
-      };
-    }
-    {
-      name = "bail___bail_1.0.3.tgz";
-      path = fetchurl {
-        name = "bail___bail_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/bail/-/bail-1.0.3.tgz";
-        sha1 = "63cfb9ddbac829b02a3128cd53224be78e6c21a3";
-      };
-    }
-    {
-      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 = "base___base_0.11.2.tgz";
-      path = fetchurl {
-        name = "base___base_0.11.2.tgz";
-        url  = "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz";
-        sha1 = "7bde5ced145b6d551a90db87f83c558b4eb48a8f";
-      };
-    }
-    {
-      name = "batch___batch_0.6.1.tgz";
-      path = fetchurl {
-        name = "batch___batch_0.6.1.tgz";
-        url  = "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz";
-        sha1 = "dc34314f4e679318093fc760272525f94bf25c16";
-      };
-    }
-    {
-      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 = "bfj___bfj_6.1.2.tgz";
-      path = fetchurl {
-        name = "bfj___bfj_6.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/bfj/-/bfj-6.1.2.tgz";
-        sha1 = "325c861a822bcb358a41c78a33b8e6e2086dde7f";
-      };
-    }
-    {
-      name = "big.js___big.js_3.2.0.tgz";
-      path = fetchurl {
-        name = "big.js___big.js_3.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz";
-        sha1 = "a5fc298b81b9e0dca2e458824784b65c52ba588e";
-      };
-    }
-    {
-      name = "big.js___big.js_5.2.2.tgz";
-      path = fetchurl {
-        name = "big.js___big.js_5.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz";
-        sha1 = "65f0af382f578bcdc742bd9c281e9cb2d7768328";
-      };
-    }
-    {
-      name = "bignumber.js___bignumber.js_4.1.0.tgz";
-      path = fetchurl {
-        name = "bignumber.js___bignumber.js_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-4.1.0.tgz";
-        sha1 = "db6f14067c140bd46624815a7916c92d9b6c24b1";
-      };
-    }
-    {
-      name = "binary_extensions___binary_extensions_1.13.1.tgz";
-      path = fetchurl {
-        name = "binary_extensions___binary_extensions_1.13.1.tgz";
-        url  = "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz";
-        sha1 = "598afe54755b2868a5330d2aff9d4ebb53209b65";
-      };
-    }
-    {
-      name = "binary_extensions___binary_extensions_2.0.0.tgz";
-      path = fetchurl {
-        name = "binary_extensions___binary_extensions_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz";
-        sha1 = "23c0df14f6a88077f5f986c0d167ec03c3d5537c";
-      };
-    }
-    {
-      name = "bindings___bindings_1.5.0.tgz";
-      path = fetchurl {
-        name = "bindings___bindings_1.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz";
-        sha1 = "10353c9e945334bc0511a6d90b38fbc7c9c504df";
-      };
-    }
-    {
-      name = "bluebird___bluebird_3.7.2.tgz";
-      path = fetchurl {
-        name = "bluebird___bluebird_3.7.2.tgz";
-        url  = "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz";
-        sha1 = "9f229c15be272454ffa973ace0dbee79a1b0c36f";
-      };
-    }
-    {
-      name = "bn.js___bn.js_4.11.8.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 = "body_parser___body_parser_1.18.2.tgz";
-      path = fetchurl {
-        name = "body_parser___body_parser_1.18.2.tgz";
-        url  = "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz";
-        sha1 = "87678a19d84b47d859b83199bd59bce222b10454";
-      };
-    }
-    {
-      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 = "bonjour___bonjour_3.5.0.tgz";
-      path = fetchurl {
-        name = "bonjour___bonjour_3.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz";
-        sha1 = "8e890a183d8ee9a2393b3844c691a42bcf7bc9f5";
-      };
-    }
-    {
-      name = "boolbase___boolbase_1.0.0.tgz";
-      path = fetchurl {
-        name = "boolbase___boolbase_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz";
-        sha1 = "68dff5fbe60c51eb37725ea9e3ed310dcc1e776e";
-      };
-    }
-    {
-      name = "brace_expansion___brace_expansion_1.1.11.tgz";
-      path = fetchurl {
-        name = "brace_expansion___brace_expansion_1.1.11.tgz";
-        url  = "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz";
-        sha1 = "3c7fcbf529d87226f3d2f52b966ff5271eb441dd";
-      };
-    }
-    {
-      name = "braces___braces_2.3.2.tgz";
-      path = fetchurl {
-        name = "braces___braces_2.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz";
-        sha1 = "5979fd3f14cd531565e5fa2df1abfff1dfaee729";
-      };
-    }
-    {
-      name = "braces___braces_3.0.2.tgz";
-      path = fetchurl {
-        name = "braces___braces_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz";
-        sha1 = "3454e1a462ee8d599e236df336cd9ea4f8afe107";
-      };
-    }
-    {
-      name = "brorand___brorand_1.1.0.tgz";
-      path = fetchurl {
-        name = "brorand___brorand_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz";
-        sha1 = "12c25efe40a45e3c323eb8675a0a0ce57b22371f";
-      };
-    }
-    {
-      name = "browser_process_hrtime___browser_process_hrtime_0.1.3.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_resolve___browser_resolve_1.11.3.tgz";
-      path = fetchurl {
-        name = "browser_resolve___browser_resolve_1.11.3.tgz";
-        url  = "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz";
-        sha1 = "9b7cbb3d0f510e4cb86bdbd796124d28b5890af6";
-      };
-    }
-    {
-      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 = "browserify_aes___browserify_aes_1.2.0.tgz";
-      path = fetchurl {
-        name = "browserify_aes___browserify_aes_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz";
-        sha1 = "326734642f403dabc3003209853bb70ad428ef48";
-      };
-    }
-    {
-      name = "browserify_cipher___browserify_cipher_1.0.1.tgz";
-      path = fetchurl {
-        name = "browserify_cipher___browserify_cipher_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz";
-        sha1 = "8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0";
-      };
-    }
-    {
-      name = "browserify_des___browserify_des_1.0.2.tgz";
-      path = fetchurl {
-        name = "browserify_des___browserify_des_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz";
-        sha1 = "3af4f1f59839403572f1c66204375f7a7f703e9c";
-      };
-    }
-    {
-      name = "browserify_rsa___browserify_rsa_4.0.1.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_sign___browserify_sign_4.0.4.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_zlib___browserify_zlib_0.2.0.tgz";
-      path = fetchurl {
-        name = "browserify_zlib___browserify_zlib_0.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz";
-        sha1 = "2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f";
-      };
-    }
-    {
-      name = "browserslist___browserslist_1.7.7.tgz";
-      path = fetchurl {
-        name = "browserslist___browserslist_1.7.7.tgz";
-        url  = "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz";
-        sha1 = "0bd76704258be829b2398bb50e4b62d1a166b0b9";
-      };
-    }
-    {
-      name = "browserslist___browserslist_4.3.7.tgz";
-      path = fetchurl {
-        name = "browserslist___browserslist_4.3.7.tgz";
-        url  = "https://registry.yarnpkg.com/browserslist/-/browserslist-4.3.7.tgz";
-        sha1 = "f1de479a6466ea47a0a26dcc725e7504817e624a";
-      };
-    }
-    {
-      name = "browserslist___browserslist_4.6.6.tgz";
-      path = fetchurl {
-        name = "browserslist___browserslist_4.6.6.tgz";
-        url  = "https://registry.yarnpkg.com/browserslist/-/browserslist-4.6.6.tgz";
-        sha1 = "6e4bf467cde520bc9dbdf3747dafa03531cec453";
-      };
-    }
-    {
-      name = "bs_logger___bs_logger_0.2.6.tgz";
-      path = fetchurl {
-        name = "bs_logger___bs_logger_0.2.6.tgz";
-        url  = "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz";
-        sha1 = "eb7d365307a72cf974cc6cda76b68354ad336bd8";
-      };
-    }
-    {
-      name = "bser___bser_2.1.0.tgz";
-      path = fetchurl {
-        name = "bser___bser_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/bser/-/bser-2.1.0.tgz";
-        sha1 = "65fc784bf7f87c009b973c12db6546902fa9c7b5";
-      };
-    }
-    {
-      name = "buffer_crc32___buffer_crc32_0.2.13.tgz";
-      path = fetchurl {
-        name = "buffer_crc32___buffer_crc32_0.2.13.tgz";
-        url  = "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz";
-        sha1 = "0d333e3f00eac50aa1454abd30ef8c2a5d9a7242";
-      };
-    }
-    {
-      name = "buffer_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_indexof___buffer_indexof_1.1.1.tgz";
-      path = fetchurl {
-        name = "buffer_indexof___buffer_indexof_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz";
-        sha1 = "52fabcc6a606d1a00302802648ef68f639da268c";
-      };
-    }
-    {
-      name = "buffer_xor___buffer_xor_1.0.3.tgz";
-      path = fetchurl {
-        name = "buffer_xor___buffer_xor_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz";
-        sha1 = "26e61ed1422fb70dd42e6e36729ed51d855fe8d9";
-      };
-    }
-    {
-      name = "buffer___buffer_4.9.2.tgz";
-      path = fetchurl {
-        name = "buffer___buffer_4.9.2.tgz";
-        url  = "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz";
-        sha1 = "230ead344002988644841ab0244af8c44bbe3ef8";
-      };
-    }
-    {
-      name = "builtin_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 = "builtin_status_codes___builtin_status_codes_3.0.0.tgz";
-      path = fetchurl {
-        name = "builtin_status_codes___builtin_status_codes_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz";
-        sha1 = "85982878e21b98e1c66425e03d0174788f569ee8";
-      };
-    }
-    {
-      name = "bullseye___bullseye_1.4.6.tgz";
-      path = fetchurl {
-        name = "bullseye___bullseye_1.4.6.tgz";
-        url  = "https://registry.yarnpkg.com/bullseye/-/bullseye-1.4.6.tgz";
-        sha1 = "b73f606f7b4273be80ac65acd75295d62606fe24";
-      };
-    }
-    {
-      name = "bytes___bytes_3.0.0.tgz";
-      path = fetchurl {
-        name = "bytes___bytes_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz";
-        sha1 = "d32815404d689699f85a4ea4fa8755dd13a96048";
-      };
-    }
-    {
-      name = "bytes___bytes_3.1.0.tgz";
-      path = fetchurl {
-        name = "bytes___bytes_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz";
-        sha1 = "f6cf7933a360e0588fa9fde85651cdc7f805d1f6";
-      };
-    }
-    {
-      name = "cacache___cacache_12.0.3.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_13.0.1.tgz";
-      path = fetchurl {
-        name = "cacache___cacache_13.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/cacache/-/cacache-13.0.1.tgz";
-        sha1 = "a8000c21697089082f85287a1aec6e382024a71c";
-      };
-    }
-    {
-      name = "cache_base___cache_base_1.0.1.tgz";
-      path = fetchurl {
-        name = "cache_base___cache_base_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz";
-        sha1 = "0a7f46416831c8b662ee36fe4e7c59d76f666ab2";
-      };
-    }
-    {
-      name = "cachedir___cachedir_2.3.0.tgz";
-      path = fetchurl {
-        name = "cachedir___cachedir_2.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/cachedir/-/cachedir-2.3.0.tgz";
-        sha1 = "0c75892a052198f0b21c7c1804d8331edfcae0e8";
-      };
-    }
-    {
-      name = "calculate_size___calculate_size_1.1.1.tgz";
-      path = fetchurl {
-        name = "calculate_size___calculate_size_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/calculate-size/-/calculate-size-1.1.1.tgz";
-        sha1 = "ae7caa1c7795f82c4f035dc7be270e3581dae3ee";
-      };
-    }
-    {
-      name = "call_me_maybe___call_me_maybe_1.0.1.tgz";
-      path = fetchurl {
-        name = "call_me_maybe___call_me_maybe_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz";
-        sha1 = "26d208ea89e37b5cbde60250a15f031c16a4d66b";
-      };
-    }
-    {
-      name = "caller_callsite___caller_callsite_2.0.0.tgz";
-      path = fetchurl {
-        name = "caller_callsite___caller_callsite_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz";
-        sha1 = "847e0fce0a223750a9a027c54b33731ad3154134";
-      };
-    }
-    {
-      name = "caller_path___caller_path_2.0.0.tgz";
-      path = fetchurl {
-        name = "caller_path___caller_path_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz";
-        sha1 = "468f83044e369ab2010fac5f06ceee15bb2cb1f4";
-      };
-    }
-    {
-      name = "callsites___callsites_2.0.0.tgz";
-      path = fetchurl {
-        name = "callsites___callsites_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz";
-        sha1 = "06eb84f00eea413da86affefacbffb36093b3c50";
-      };
-    }
-    {
-      name = "callsites___callsites_3.1.0.tgz";
-      path = fetchurl {
-        name = "callsites___callsites_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz";
-        sha1 = "b3630abd8943432f54b3f0519238e33cd7df2f73";
-      };
-    }
-    {
-      name = "camel_case___camel_case_3.0.0.tgz";
-      path = fetchurl {
-        name = "camel_case___camel_case_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz";
-        sha1 = "ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73";
-      };
-    }
-    {
-      name = "camelcase___camelcase_1.2.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 = "camelcase___camelcase_4.1.0.tgz";
-      path = fetchurl {
-        name = "camelcase___camelcase_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz";
-        sha1 = "d545635be1e33c542649c69173e5de6acfae34dd";
-      };
-    }
-    {
-      name = "camelcase___camelcase_5.3.1.tgz";
-      path = fetchurl {
-        name = "camelcase___camelcase_5.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz";
-        sha1 = "e3c9b31569e106811df242f715725a1f4c494320";
-      };
-    }
-    {
-      name = "caniuse_api___caniuse_api_3.0.0.tgz";
-      path = fetchurl {
-        name = "caniuse_api___caniuse_api_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz";
-        sha1 = "5e4d90e2274961d46291997df599e3ed008ee4c0";
-      };
-    }
-    {
-      name = "caniuse_db___caniuse_db_1.0.30000890.tgz";
-      path = fetchurl {
-        name = "caniuse_db___caniuse_db_1.0.30000890.tgz";
-        url  = "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000890.tgz";
-        sha1 = "b406595db8b631975b8dc5fa174f32925c23778b";
-      };
-    }
-    {
-      name = "caniuse_lite___caniuse_lite_1.0.30000926.tgz";
-      path = fetchurl {
-        name = "caniuse_lite___caniuse_lite_1.0.30000926.tgz";
-        url  = "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000926.tgz";
-        sha1 = "4361a99d818ca6e521dbe89a732de62a194a789c";
-      };
-    }
-    {
-      name = "caniuse_lite___caniuse_lite_1.0.30000984.tgz";
-      path = fetchurl {
-        name = "caniuse_lite___caniuse_lite_1.0.30000984.tgz";
-        url  = "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000984.tgz";
-        sha1 = "dc96c3c469e9bcfc6ad5bdd24c77ec918ea76fe0";
-      };
-    }
-    {
-      name = "capture_exit___capture_exit_2.0.0.tgz";
-      path = fetchurl {
-        name = "capture_exit___capture_exit_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz";
-        sha1 = "fb953bfaebeb781f62898239dabb426d08a509a4";
-      };
-    }
-    {
-      name = "caseless___caseless_0.12.0.tgz";
-      path = fetchurl {
-        name = "caseless___caseless_0.12.0.tgz";
-        url  = "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz";
-        sha1 = "1b681c21ff84033c826543090689420d187151dc";
-      };
-    }
-    {
-      name = "center_align___center_align_0.1.3.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 = "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_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.1.tgz";
-      path = fetchurl {
-        name = "chalk___chalk_2.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz";
-        sha1 = "18c49ab16a037b6eb0152cc83e3471338215b66e";
-      };
-    }
-    {
-      name = "chalk___chalk_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 = "character_entities_legacy___character_entities_legacy_1.1.2.tgz";
-      path = fetchurl {
-        name = "character_entities_legacy___character_entities_legacy_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.2.tgz";
-        sha1 = "7c6defb81648498222c9855309953d05f4d63a9c";
-      };
-    }
-    {
-      name = "character_entities___character_entities_1.2.2.tgz";
-      path = fetchurl {
-        name = "character_entities___character_entities_1.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.2.tgz";
-        sha1 = "58c8f371c0774ef0ba9b2aca5f00d8f100e6e363";
-      };
-    }
-    {
-      name = "character_reference_invalid___character_reference_invalid_1.1.2.tgz";
-      path = fetchurl {
-        name = "character_reference_invalid___character_reference_invalid_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.2.tgz";
-        sha1 = "21e421ad3d84055952dab4a43a04e73cd425d3ed";
-      };
-    }
-    {
-      name = "chardet___chardet_0.7.0.tgz";
-      path = fetchurl {
-        name = "chardet___chardet_0.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz";
-        sha1 = "90094849f0937f2eedc2425d0d28a9e5f0cbad9e";
-      };
-    }
-    {
-      name = "charenc___charenc_0.0.2.tgz";
-      path = fetchurl {
-        name = "charenc___charenc_0.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz";
-        sha1 = "c0a1d2f3a7092e03774bfa83f14c0fc5790a8667";
-      };
-    }
-    {
-      name = "check_more_types___check_more_types_2.24.0.tgz";
-      path = fetchurl {
-        name = "check_more_types___check_more_types_2.24.0.tgz";
-        url  = "https://registry.yarnpkg.com/check-more-types/-/check-more-types-2.24.0.tgz";
-        sha1 = "1420ffb10fd444dcfc79b43891bbfffd32a84600";
-      };
-    }
-    {
-      name = "check_types___check_types_8.0.3.tgz";
-      path = fetchurl {
-        name = "check_types___check_types_8.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/check-types/-/check-types-8.0.3.tgz";
-        sha1 = "3356cca19c889544f2d7a95ed49ce508a0ecf552";
-      };
-    }
-    {
-      name = "cheerio___cheerio_1.0.0_rc.2.tgz";
-      path = fetchurl {
-        name = "cheerio___cheerio_1.0.0_rc.2.tgz";
-        url  = "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.2.tgz";
-        sha1 = "4b9f53a81b27e4d5dac31c0ffd0cfa03cc6830db";
-      };
-    }
-    {
-      name = "chokidar___chokidar_3.0.2.tgz";
-      path = fetchurl {
-        name = "chokidar___chokidar_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/chokidar/-/chokidar-3.0.2.tgz";
-        sha1 = "0d1cd6d04eb2df0327446188cd13736a3367d681";
-      };
-    }
-    {
-      name = "chokidar___chokidar_2.1.8.tgz";
-      path = fetchurl {
-        name = "chokidar___chokidar_2.1.8.tgz";
-        url  = "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz";
-        sha1 = "804b3a7b6a99358c3c5c61e71d8728f041cff917";
-      };
-    }
-    {
-      name = "chokidar___chokidar_2.1.6.tgz";
-      path = fetchurl {
-        name = "chokidar___chokidar_2.1.6.tgz";
-        url  = "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.6.tgz";
-        sha1 = "b6cad653a929e244ce8a834244164d241fa954c5";
-      };
-    }
-    {
-      name = "chownr___chownr_1.1.4.tgz";
-      path = fetchurl {
-        name = "chownr___chownr_1.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz";
-        sha1 = "6fc9d7b42d32a583596337666e7d08084da2cc6b";
-      };
-    }
-    {
-      name = "chownr___chownr_1.1.3.tgz";
-      path = fetchurl {
-        name = "chownr___chownr_1.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/chownr/-/chownr-1.1.3.tgz";
-        sha1 = "42d837d5239688d55f303003a508230fa6727142";
-      };
-    }
-    {
-      name = "chroma_js___chroma_js_1.4.0.tgz";
-      path = fetchurl {
-        name = "chroma_js___chroma_js_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/chroma-js/-/chroma-js-1.4.0.tgz";
-        sha1 = "695c52e7c97617e5f687db31913503d410481ae4";
-      };
-    }
-    {
-      name = "chrome_trace_event___chrome_trace_event_1.0.2.tgz";
-      path = fetchurl {
-        name = "chrome_trace_event___chrome_trace_event_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz";
-        sha1 = "234090ee97c7d4ad1a2c4beae27505deffc608a4";
-      };
-    }
-    {
-      name = "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 = "cipher_base___cipher_base_1.0.4.tgz";
-      path = fetchurl {
-        name = "cipher_base___cipher_base_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz";
-        sha1 = "8760e4ecc272f4c363532f926d874aae2c1397de";
-      };
-    }
-    {
-      name = "class_utils___class_utils_0.3.6.tgz";
-      path = fetchurl {
-        name = "class_utils___class_utils_0.3.6.tgz";
-        url  = "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz";
-        sha1 = "f93369ae8b9a7ce02fd41faad0ca83033190c463";
-      };
-    }
-    {
-      name = "classnames___classnames_2.2.6.tgz";
-      path = fetchurl {
-        name = "classnames___classnames_2.2.6.tgz";
-        url  = "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz";
-        sha1 = "43935bffdd291f326dad0a205309b38d00f650ce";
-      };
-    }
-    {
-      name = "clean_css___clean_css_4.2.1.tgz";
-      path = fetchurl {
-        name = "clean_css___clean_css_4.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.1.tgz";
-        sha1 = "2d411ef76b8569b6d0c84068dabe85b0aa5e5c17";
-      };
-    }
-    {
-      name = "clean_css___clean_css_3.4.28.tgz";
-      path = fetchurl {
-        name = "clean_css___clean_css_3.4.28.tgz";
-        url  = "https://registry.yarnpkg.com/clean-css/-/clean-css-3.4.28.tgz";
-        sha1 = "bf1945e82fc808f55695e6ddeaec01400efd03ff";
-      };
-    }
-    {
-      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 = "clean_webpack_plugin___clean_webpack_plugin_3.0.0.tgz";
-      path = fetchurl {
-        name = "clean_webpack_plugin___clean_webpack_plugin_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/clean-webpack-plugin/-/clean-webpack-plugin-3.0.0.tgz";
-        sha1 = "a99d8ec34c1c628a4541567aa7b457446460c62b";
-      };
-    }
-    {
-      name = "cli_cursor___cli_cursor_1.0.2.tgz";
-      path = fetchurl {
-        name = "cli_cursor___cli_cursor_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz";
-        sha1 = "64da3f7d56a54412e59794bd62dc35295e8f2987";
-      };
-    }
-    {
-      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_cursor___cli_cursor_3.1.0.tgz";
-      path = fetchurl {
-        name = "cli_cursor___cli_cursor_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz";
-        sha1 = "264305a7ae490d1d03bf0c9ba7c925d1753af307";
-      };
-    }
-    {
-      name = "cli_table3___cli_table3_0.5.1.tgz";
-      path = fetchurl {
-        name = "cli_table3___cli_table3_0.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.5.1.tgz";
-        sha1 = "0252372d94dfc40dbd8df06005f48f31f656f202";
-      };
-    }
-    {
-      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 = "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 = "cliui___cliui_2.1.0.tgz";
-      path = fetchurl {
-        name = "cliui___cliui_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz";
-        sha1 = "4b475760ff80264c762c3a1719032e91c7fea0d1";
-      };
-    }
-    {
-      name = "cliui___cliui_4.1.0.tgz";
-      path = fetchurl {
-        name = "cliui___cliui_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz";
-        sha1 = "348422dbe82d800b3022eef4f6ac10bf2e4d1b49";
-      };
-    }
-    {
-      name = "cliui___cliui_5.0.0.tgz";
-      path = fetchurl {
-        name = "cliui___cliui_5.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz";
-        sha1 = "deefcfdb2e800784aa34f46fa08e06851c7bbbc5";
-      };
-    }
-    {
-      name = "clone_deep___clone_deep_2.0.2.tgz";
-      path = fetchurl {
-        name = "clone_deep___clone_deep_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/clone-deep/-/clone-deep-2.0.2.tgz";
-        sha1 = "00db3a1e173656730d1188c3d6aced6d7ea97713";
-      };
-    }
-    {
-      name = "cnbuilder___cnbuilder_1.0.8.tgz";
-      path = fetchurl {
-        name = "cnbuilder___cnbuilder_1.0.8.tgz";
-        url  = "https://registry.yarnpkg.com/cnbuilder/-/cnbuilder-1.0.8.tgz";
-        sha1 = "2b5a700e4d541085df31709b5678c786d29967da";
-      };
-    }
-    {
-      name = "co___co_4.6.0.tgz";
-      path = fetchurl {
-        name = "co___co_4.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz";
-        sha1 = "6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184";
-      };
-    }
-    {
-      name = "coa___coa_2.0.2.tgz";
-      path = fetchurl {
-        name = "coa___coa_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz";
-        sha1 = "43f6c21151b4ef2bf57187db0d73de229e3e7ec3";
-      };
-    }
-    {
-      name = "code_point_at___code_point_at_1.1.0.tgz";
-      path = fetchurl {
-        name = "code_point_at___code_point_at_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz";
-        sha1 = "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77";
-      };
-    }
-    {
-      name = "codemirror___codemirror_5.40.2.tgz";
-      path = fetchurl {
-        name = "codemirror___codemirror_5.40.2.tgz";
-        url  = "https://registry.yarnpkg.com/codemirror/-/codemirror-5.40.2.tgz";
-        sha1 = "f4a41fee2d84e679543591b3680af259d903330b";
-      };
-    }
-    {
-      name = "collapse_white_space___collapse_white_space_1.0.4.tgz";
-      path = fetchurl {
-        name = "collapse_white_space___collapse_white_space_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.4.tgz";
-        sha1 = "ce05cf49e54c3277ae573036a26851ba430a0091";
-      };
-    }
-    {
-      name = "collection_visit___collection_visit_1.0.0.tgz";
-      path = fetchurl {
-        name = "collection_visit___collection_visit_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz";
-        sha1 = "4bc0373c164bc3291b4d368c829cf1a80a59dca0";
-      };
-    }
-    {
-      name = "color_convert___color_convert_1.9.3.tgz";
-      path = fetchurl {
-        name = "color_convert___color_convert_1.9.3.tgz";
-        url  = "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz";
-        sha1 = "bb71850690e1f136567de629d2d5471deda4c1e8";
-      };
-    }
-    {
-      name = "color_convert___color_convert_2.0.1.tgz";
-      path = fetchurl {
-        name = "color_convert___color_convert_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz";
-        sha1 = "72d3a68d598c9bdb3af2ad1e84f21d896abd4de3";
-      };
-    }
-    {
-      name = "color_name___color_name_1.1.3.tgz";
-      path = fetchurl {
-        name = "color_name___color_name_1.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz";
-        sha1 = "a7d0558bd89c42f795dd42328f740831ca53bc25";
-      };
-    }
-    {
-      name = "color_name___color_name_1.1.4.tgz";
-      path = fetchurl {
-        name = "color_name___color_name_1.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz";
-        sha1 = "c2a09a87acbde69543de6f63fa3995c826c536a2";
-      };
-    }
-    {
-      name = "color_string___color_string_1.5.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.1.1.tgz";
-      path = fetchurl {
-        name = "color___color_3.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/color/-/color-3.1.1.tgz";
-        sha1 = "7abf5c0d38e89378284e873c207ae2172dcc8a61";
-      };
-    }
-    {
-      name = "colors___colors_0.5.1.tgz";
-      path = fetchurl {
-        name = "colors___colors_0.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/colors/-/colors-0.5.1.tgz";
-        sha1 = "7d0023eaeb154e8ee9fce75dcb923d0ed1667774";
-      };
-    }
-    {
-      name = "colors___colors_1.1.2.tgz";
-      path = fetchurl {
-        name = "colors___colors_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz";
-        sha1 = "168a4701756b6a7f51a12ce0c97bfa28c084ed63";
-      };
-    }
-    {
-      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.15.1.tgz";
-      path = fetchurl {
-        name = "commander___commander_2.15.1.tgz";
-        url  = "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz";
-        sha1 = "df46e867d0fc2aec66a34662b406a9ccafff5b0f";
-      };
-    }
-    {
-      name = "commander___commander_2.17.1.tgz";
-      path = fetchurl {
-        name = "commander___commander_2.17.1.tgz";
-        url  = "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz";
-        sha1 = "bd77ab7de6de94205ceacc72f1716d29f20a77bf";
-      };
-    }
-    {
-      name = "commander___commander_2.8.1.tgz";
-      path = fetchurl {
-        name = "commander___commander_2.8.1.tgz";
-        url  = "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz";
-        sha1 = "06be367febfda0c330aa1e2a072d3dc9762425d4";
-      };
-    }
-    {
-      name = "commander___commander_2.20.3.tgz";
-      path = fetchurl {
-        name = "commander___commander_2.20.3.tgz";
-        url  = "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz";
-        sha1 = "fd485e84c03eb4881c20722ba48035e8531aeb33";
-      };
-    }
-    {
-      name = "commander___commander_2.20.0.tgz";
-      path = fetchurl {
-        name = "commander___commander_2.20.0.tgz";
-        url  = "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz";
-        sha1 = "d58bb2b5c1ee8f87b0d340027e9e94e222c5a422";
-      };
-    }
-    {
-      name = "commander___commander_4.1.1.tgz";
-      path = fetchurl {
-        name = "commander___commander_4.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz";
-        sha1 = "9fd602bd936294e9e9ef46a3f4d6964044b18068";
-      };
-    }
-    {
-      name = "commander___commander_2.19.0.tgz";
-      path = fetchurl {
-        name = "commander___commander_2.19.0.tgz";
-        url  = "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz";
-        sha1 = "f6198aa84e5b83c46054b94ddedbfed5ee9ff12a";
-      };
-    }
-    {
-      name = "commander___commander_2.9.0.tgz";
-      path = fetchurl {
-        name = "commander___commander_2.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz";
-        sha1 = "9c99094176e12240cb22d6c5146098400fe0f7d4";
-      };
-    }
-    {
-      name = "common_tags___common_tags_1.8.0.tgz";
-      path = fetchurl {
-        name = "common_tags___common_tags_1.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz";
-        sha1 = "8e3153e542d4a39e9b10554434afaaf98956a937";
-      };
-    }
-    {
-      name = "commondir___commondir_1.0.1.tgz";
-      path = fetchurl {
-        name = "commondir___commondir_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz";
-        sha1 = "ddd800da0c66127393cca5950ea968a3aaf1253b";
-      };
-    }
-    {
-      name = "component_emitter___component_emitter_1.3.0.tgz";
-      path = fetchurl {
-        name = "component_emitter___component_emitter_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz";
-        sha1 = "16e4070fba8ae29b679f2215853ee181ab2eabc0";
-      };
-    }
-    {
-      name = "compressible___compressible_2.0.18.tgz";
-      path = fetchurl {
-        name = "compressible___compressible_2.0.18.tgz";
-        url  = "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz";
-        sha1 = "af53cca6b070d4c3c0750fbd77286a6d7cc46fba";
-      };
-    }
-    {
-      name = "compression___compression_1.7.4.tgz";
-      path = fetchurl {
-        name = "compression___compression_1.7.4.tgz";
-        url  = "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz";
-        sha1 = "95523eff170ca57c29a0ca41e6fe131f41e5bb8f";
-      };
-    }
-    {
-      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 = "connect_history_api_fallback___connect_history_api_fallback_1.6.0.tgz";
-      path = fetchurl {
-        name = "connect_history_api_fallback___connect_history_api_fallback_1.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz";
-        sha1 = "8b32089359308d111115d81cad3fceab888f97bc";
-      };
-    }
-    {
-      name = "connected_react_router___connected_react_router_6.8.0.tgz";
-      path = fetchurl {
-        name = "connected_react_router___connected_react_router_6.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/connected-react-router/-/connected-react-router-6.8.0.tgz";
-        sha1 = "ddc687b31d498322445d235d660798489fa56cae";
-      };
-    }
-    {
-      name = "console_browserify___console_browserify_1.2.0.tgz";
-      path = fetchurl {
-        name = "console_browserify___console_browserify_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz";
-        sha1 = "67063cef57ceb6cf4993a2ab3a55840ae8c49336";
-      };
-    }
-    {
-      name = "constants_browserify___constants_browserify_1.0.0.tgz";
-      path = fetchurl {
-        name = "constants_browserify___constants_browserify_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz";
-        sha1 = "c20b96d8c617748aaf1c16021760cd27fcb8cb75";
-      };
-    }
-    {
-      name = "content_disposition___content_disposition_0.5.2.tgz";
-      path = fetchurl {
-        name = "content_disposition___content_disposition_0.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz";
-        sha1 = "0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4";
-      };
-    }
-    {
-      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_parser___content_type_parser_1.0.2.tgz";
-      path = fetchurl {
-        name = "content_type_parser___content_type_parser_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/content-type-parser/-/content-type-parser-1.0.2.tgz";
-        sha1 = "caabe80623e63638b2502fd4c7f12ff4ce2352e7";
-      };
-    }
-    {
-      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 = "contra___contra_1.9.1.tgz";
-      path = fetchurl {
-        name = "contra___contra_1.9.1.tgz";
-        url  = "https://registry.yarnpkg.com/contra/-/contra-1.9.1.tgz";
-        sha1 = "60e498274b3d2d332896d60f82900aefa2ecac8c";
-      };
-    }
-    {
-      name = "convert_source_map___convert_source_map_1.6.0.tgz";
-      path = fetchurl {
-        name = "convert_source_map___convert_source_map_1.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz";
-        sha1 = "51b537a8c43e0f04dec1993bffcdd504e758ac20";
-      };
-    }
-    {
-      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.3.1.tgz";
-      path = fetchurl {
-        name = "cookie___cookie_0.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz";
-        sha1 = "e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb";
-      };
-    }
-    {
-      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 = "cookiejar___cookiejar_2.1.2.tgz";
-      path = fetchurl {
-        name = "cookiejar___cookiejar_2.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.2.tgz";
-        sha1 = "dd8a235530752f988f9a0844f3fc589e3111125c";
-      };
-    }
-    {
-      name = "copy_concurrently___copy_concurrently_1.0.5.tgz";
-      path = fetchurl {
-        name = "copy_concurrently___copy_concurrently_1.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz";
-        sha1 = "92297398cae34937fcafd6ec8139c18051f0b5e0";
-      };
-    }
-    {
-      name = "copy_descriptor___copy_descriptor_0.1.1.tgz";
-      path = fetchurl {
-        name = "copy_descriptor___copy_descriptor_0.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz";
-        sha1 = "676f6eb3c39997c2ee1ac3a924fd6124748f578d";
-      };
-    }
-    {
-      name = "copy_to_clipboard___copy_to_clipboard_3.0.8.tgz";
-      path = fetchurl {
-        name = "copy_to_clipboard___copy_to_clipboard_3.0.8.tgz";
-        url  = "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.0.8.tgz";
-        sha1 = "f4e82f4a8830dce4666b7eb8ded0c9bcc313aba9";
-      };
-    }
-    {
-      name = "core_js_compat___core_js_compat_3.1.4.tgz";
-      path = fetchurl {
-        name = "core_js_compat___core_js_compat_3.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.1.4.tgz";
-        sha1 = "e4d0c40fbd01e65b1d457980fe4112d4358a7408";
-      };
-    }
-    {
-      name = "core_js_pure___core_js_pure_3.1.4.tgz";
-      path = fetchurl {
-        name = "core_js_pure___core_js_pure_3.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.1.4.tgz";
-        sha1 = "5fa17dc77002a169a3566cc48dc774d2e13e3769";
-      };
-    }
-    {
-      name = "core_js_pure___core_js_pure_3.6.5.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___core_js_1.2.7.tgz";
-      path = fetchurl {
-        name = "core_js___core_js_1.2.7.tgz";
-        url  = "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz";
-        sha1 = "652294c14651db28fa93bd2d5ff2983a4f08c636";
-      };
-    }
-    {
-      name = "core_js___core_js_2.5.7.tgz";
-      path = fetchurl {
-        name = "core_js___core_js_2.5.7.tgz";
-        url  = "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz";
-        sha1 = "f972608ff0cead68b841a16a932d0b183791814e";
-      };
-    }
-    {
-      name = "core_js___core_js_2.6.9.tgz";
-      path = fetchurl {
-        name = "core_js___core_js_2.6.9.tgz";
-        url  = "https://registry.yarnpkg.com/core-js/-/core-js-2.6.9.tgz";
-        sha1 = "6b4b214620c834152e179323727fc19741b084f2";
-      };
-    }
-    {
-      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 = "create_ecdh___create_ecdh_4.0.3.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_hash___create_hash_1.2.0.tgz";
-      path = fetchurl {
-        name = "create_hash___create_hash_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz";
-        sha1 = "889078af11a63756bcfb59bd221996be3a9ef196";
-      };
-    }
-    {
-      name = "create_hmac___create_hmac_1.1.7.tgz";
-      path = fetchurl {
-        name = "create_hmac___create_hmac_1.1.7.tgz";
-        url  = "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz";
-        sha1 = "69170c78b3ab957147b2b8b04572e47ead2243ff";
-      };
-    }
-    {
-      name = "create_react_context___create_react_context_0.2.2.tgz";
-      path = fetchurl {
-        name = "create_react_context___create_react_context_0.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/create-react-context/-/create-react-context-0.2.2.tgz";
-        sha1 = "9836542f9aaa22868cd7d4a6f82667df38019dca";
-      };
-    }
-    {
-      name = "cross_env___cross_env_5.2.0.tgz";
-      path = fetchurl {
-        name = "cross_env___cross_env_5.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/cross-env/-/cross-env-5.2.0.tgz";
-        sha1 = "6ecd4c015d5773e614039ee529076669b9d126f2";
-      };
-    }
-    {
-      name = "cross_fetch___cross_fetch_3.0.4.tgz";
-      path = fetchurl {
-        name = "cross_fetch___cross_fetch_3.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.0.4.tgz";
-        sha1 = "7bef7020207e684a7638ef5f2f698e24d9eb283c";
-      };
-    }
-    {
-      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 = "crossvent___crossvent_1.5.0.tgz";
-      path = fetchurl {
-        name = "crossvent___crossvent_1.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/crossvent/-/crossvent-1.5.0.tgz";
-        sha1 = "3779c1242699e19417f0414e61b144753a52fd6d";
-      };
-    }
-    {
-      name = "crypt___crypt_0.0.2.tgz";
-      path = fetchurl {
-        name = "crypt___crypt_0.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz";
-        sha1 = "88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b";
-      };
-    }
-    {
-      name = "crypto_browserify___crypto_browserify_3.12.0.tgz";
-      path = fetchurl {
-        name = "crypto_browserify___crypto_browserify_3.12.0.tgz";
-        url  = "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz";
-        sha1 = "396cf9f3137f03e4b8e532c58f698254e00f80ec";
-      };
-    }
-    {
-      name = "crypto_js___crypto_js_3.3.0.tgz";
-      path = fetchurl {
-        name = "crypto_js___crypto_js_3.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/crypto-js/-/crypto-js-3.3.0.tgz";
-        sha1 = "846dd1cce2f68aacfa156c8578f926a609b7976b";
-      };
-    }
-    {
-      name = "css_color_names___css_color_names_0.0.4.tgz";
-      path = fetchurl {
-        name = "css_color_names___css_color_names_0.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz";
-        sha1 = "808adc2e79cf84738069b646cb20ec27beb629e0";
-      };
-    }
-    {
-      name = "css_declaration_sorter___css_declaration_sorter_4.0.1.tgz";
-      path = fetchurl {
-        name = "css_declaration_sorter___css_declaration_sorter_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz";
-        sha1 = "c198940f63a76d7e36c1e71018b001721054cb22";
-      };
-    }
-    {
-      name = "css_loader___css_loader_3.1.0.tgz";
-      path = fetchurl {
-        name = "css_loader___css_loader_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/css-loader/-/css-loader-3.1.0.tgz";
-        sha1 = "6f008b993b8ce812e6bab57f3cbfdc7a7cf28685";
-      };
-    }
-    {
-      name = "css_select_base_adapter___css_select_base_adapter_0.1.1.tgz";
-      path = fetchurl {
-        name = "css_select_base_adapter___css_select_base_adapter_0.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz";
-        sha1 = "3b2ff4972cc362ab88561507a95408a1432135d7";
-      };
-    }
-    {
-      name = "css_select___css_select_1.2.0.tgz";
-      path = fetchurl {
-        name = "css_select___css_select_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz";
-        sha1 = "2b3a110539c5355f1cd8d314623e870b121ec858";
-      };
-    }
-    {
-      name = "css_select___css_select_2.0.2.tgz";
-      path = fetchurl {
-        name = "css_select___css_select_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/css-select/-/css-select-2.0.2.tgz";
-        sha1 = "ab4386cec9e1f668855564b17c3733b43b2a5ede";
-      };
-    }
-    {
-      name = "css_tree___css_tree_1.0.0_alpha.28.tgz";
-      path = fetchurl {
-        name = "css_tree___css_tree_1.0.0_alpha.28.tgz";
-        url  = "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.28.tgz";
-        sha1 = "8e8968190d886c9477bc8d61e96f61af3f7ffa7f";
-      };
-    }
-    {
-      name = "css_tree___css_tree_1.0.0_alpha.29.tgz";
-      path = fetchurl {
-        name = "css_tree___css_tree_1.0.0_alpha.29.tgz";
-        url  = "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.29.tgz";
-        sha1 = "3fa9d4ef3142cbd1c301e7664c1f352bd82f5a39";
-      };
-    }
-    {
-      name = "css_unit_converter___css_unit_converter_1.1.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_url_regex___css_url_regex_1.1.0.tgz";
-      path = fetchurl {
-        name = "css_url_regex___css_url_regex_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/css-url-regex/-/css-url-regex-1.1.0.tgz";
-        sha1 = "83834230cc9f74c457de59eebd1543feeb83b7ec";
-      };
-    }
-    {
-      name = "css_what___css_what_2.1.0.tgz";
-      path = fetchurl {
-        name = "css_what___css_what_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/css-what/-/css-what-2.1.0.tgz";
-        sha1 = "9467d032c38cfaefb9f2d79501253062f87fa1bd";
-      };
-    }
-    {
-      name = "css_what___css_what_2.1.3.tgz";
-      path = fetchurl {
-        name = "css_what___css_what_2.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz";
-        sha1 = "a6d7604573365fe74686c3f311c56513d88285f2";
-      };
-    }
-    {
-      name = "css.escape___css.escape_1.5.1.tgz";
-      path = fetchurl {
-        name = "css.escape___css.escape_1.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz";
-        sha1 = "42e27d4fa04ae32f931a4b4d4191fa9cddee97cb";
-      };
-    }
-    {
-      name = "cssesc___cssesc_2.0.0.tgz";
-      path = fetchurl {
-        name = "cssesc___cssesc_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz";
-        sha1 = "3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703";
-      };
-    }
-    {
-      name = "cssesc___cssesc_3.0.0.tgz";
-      path = fetchurl {
-        name = "cssesc___cssesc_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz";
-        sha1 = "37741919903b868565e1c09ea747445cd18983ee";
-      };
-    }
-    {
-      name = "cssnano_preset_default___cssnano_preset_default_4.0.7.tgz";
-      path = fetchurl {
-        name = "cssnano_preset_default___cssnano_preset_default_4.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz";
-        sha1 = "51ec662ccfca0f88b396dcd9679cdb931be17f76";
-      };
-    }
-    {
-      name = "cssnano_util_get_arguments___cssnano_util_get_arguments_4.0.0.tgz";
-      path = fetchurl {
-        name = "cssnano_util_get_arguments___cssnano_util_get_arguments_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz";
-        sha1 = "ed3a08299f21d75741b20f3b81f194ed49cc150f";
-      };
-    }
-    {
-      name = "cssnano_util_get_match___cssnano_util_get_match_4.0.0.tgz";
-      path = fetchurl {
-        name = "cssnano_util_get_match___cssnano_util_get_match_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz";
-        sha1 = "c0e4ca07f5386bb17ec5e52250b4f5961365156d";
-      };
-    }
-    {
-      name = "cssnano_util_raw_cache___cssnano_util_raw_cache_4.0.1.tgz";
-      path = fetchurl {
-        name = "cssnano_util_raw_cache___cssnano_util_raw_cache_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz";
-        sha1 = "b26d5fd5f72a11dfe7a7846fb4c67260f96bf282";
-      };
-    }
-    {
-      name = "cssnano_util_same_parent___cssnano_util_same_parent_4.0.1.tgz";
-      path = fetchurl {
-        name = "cssnano_util_same_parent___cssnano_util_same_parent_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz";
-        sha1 = "574082fb2859d2db433855835d9a8456ea18bbf3";
-      };
-    }
-    {
-      name = "cssnano___cssnano_4.1.10.tgz";
-      path = fetchurl {
-        name = "cssnano___cssnano_4.1.10.tgz";
-        url  = "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.10.tgz";
-        sha1 = "0ac41f0b13d13d465487e111b778d42da631b8b2";
-      };
-    }
-    {
-      name = "csso___csso_3.5.1.tgz";
-      path = fetchurl {
-        name = "csso___csso_3.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/csso/-/csso-3.5.1.tgz";
-        sha1 = "7b9eb8be61628973c1b261e169d2f024008e758b";
-      };
-    }
-    {
-      name = "cssom___cssom_0.3.8.tgz";
-      path = fetchurl {
-        name = "cssom___cssom_0.3.8.tgz";
-        url  = "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz";
-        sha1 = "9f1276f5b2b463f2114d3f2c75250af8c1a36f4a";
-      };
-    }
-    {
-      name = "cssstyle___cssstyle_0.2.37.tgz";
-      path = fetchurl {
-        name = "cssstyle___cssstyle_0.2.37.tgz";
-        url  = "https://registry.yarnpkg.com/cssstyle/-/cssstyle-0.2.37.tgz";
-        sha1 = "541097234cb2513c83ceed3acddc27ff27987d54";
-      };
-    }
-    {
-      name = "cssstyle___cssstyle_1.4.0.tgz";
-      path = fetchurl {
-        name = "cssstyle___cssstyle_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.4.0.tgz";
-        sha1 = "9d31328229d3c565c61e586b02041a28fccdccf1";
-      };
-    }
-    {
-      name = "csstype___csstype_2.6.2.tgz";
-      path = fetchurl {
-        name = "csstype___csstype_2.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/csstype/-/csstype-2.6.2.tgz";
-        sha1 = "3043d5e065454579afc7478a18de41909c8a2f01";
-      };
-    }
-    {
-      name = "custom_event___custom_event_1.0.0.tgz";
-      path = fetchurl {
-        name = "custom_event___custom_event_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.0.tgz";
-        sha1 = "2e4628be19dc4b214b5c02630c5971e811618062";
-      };
-    }
-    {
-      name = "cyclist___cyclist_1.0.1.tgz";
-      path = fetchurl {
-        name = "cyclist___cyclist_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz";
-        sha1 = "596e9698fd0c80e12038c2b82d6eb1b35b6224d9";
-      };
-    }
-    {
-      name = "cypress_file_upload___cypress_file_upload_4.0.7.tgz";
-      path = fetchurl {
-        name = "cypress_file_upload___cypress_file_upload_4.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/cypress-file-upload/-/cypress-file-upload-4.0.7.tgz";
-        sha1 = "1136139bb3c660b9c39a69f231ac1da7785acaae";
-      };
-    }
-    {
-      name = "cypress_pipe___cypress_pipe_1.5.0.tgz";
-      path = fetchurl {
-        name = "cypress_pipe___cypress_pipe_1.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/cypress-pipe/-/cypress-pipe-1.5.0.tgz";
-        sha1 = "bf8603a8eb6969b3ebad49080957192b03be85a0";
-      };
-    }
-    {
-      name = "cypress_plugin_tab___cypress_plugin_tab_1.0.5.tgz";
-      path = fetchurl {
-        name = "cypress_plugin_tab___cypress_plugin_tab_1.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/cypress-plugin-tab/-/cypress-plugin-tab-1.0.5.tgz";
-        sha1 = "a40714148104004bb05ed62b1bf46bb544f8eb4a";
-      };
-    }
-    {
-      name = "cypress___cypress_4.12.1.tgz";
-      path = fetchurl {
-        name = "cypress___cypress_4.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/cypress/-/cypress-4.12.1.tgz";
-        sha1 = "0ead1b9f4c0917d69d8b57f996b6e01fe693b6ec";
-      };
-    }
-    {
-      name = "d3_array___d3_array_1.2.4.tgz";
-      path = fetchurl {
-        name = "d3_array___d3_array_1.2.4.tgz";
-        url  = "https://registry.yarnpkg.com/d3-array/-/d3-array-1.2.4.tgz";
-        sha1 = "635ce4d5eea759f6f605863dbcfc30edc737f71f";
-      };
-    }
-    {
-      name = "d3_collection___d3_collection_1.0.7.tgz";
-      path = fetchurl {
-        name = "d3_collection___d3_collection_1.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/d3-collection/-/d3-collection-1.0.7.tgz";
-        sha1 = "349bd2aa9977db071091c13144d5e4f16b5b310e";
-      };
-    }
-    {
-      name = "d3_color___d3_color_1.2.3.tgz";
-      path = fetchurl {
-        name = "d3_color___d3_color_1.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/d3-color/-/d3-color-1.2.3.tgz";
-        sha1 = "6c67bb2af6df3cc8d79efcc4d3a3e83e28c8048f";
-      };
-    }
-    {
-      name = "d3_format___d3_format_1.3.2.tgz";
-      path = fetchurl {
-        name = "d3_format___d3_format_1.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/d3-format/-/d3-format-1.3.2.tgz";
-        sha1 = "6a96b5e31bcb98122a30863f7d92365c00603562";
-      };
-    }
-    {
-      name = "d3_interpolate___d3_interpolate_1.3.2.tgz";
-      path = fetchurl {
-        name = "d3_interpolate___d3_interpolate_1.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.3.2.tgz";
-        sha1 = "417d3ebdeb4bc4efcc8fd4361c55e4040211fd68";
-      };
-    }
-    {
-      name = "d3_scale___d3_scale_2.1.2.tgz";
-      path = fetchurl {
-        name = "d3_scale___d3_scale_2.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/d3-scale/-/d3-scale-2.1.2.tgz";
-        sha1 = "4e932b7b60182aee9073ede8764c98423e5f9a94";
-      };
-    }
-    {
-      name = "d3_time_format___d3_time_format_2.1.3.tgz";
-      path = fetchurl {
-        name = "d3_time_format___d3_time_format_2.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-2.1.3.tgz";
-        sha1 = "ae06f8e0126a9d60d6364eac5b1533ae1bac826b";
-      };
-    }
-    {
-      name = "d3_time___d3_time_1.0.10.tgz";
-      path = fetchurl {
-        name = "d3_time___d3_time_1.0.10.tgz";
-        url  = "https://registry.yarnpkg.com/d3-time/-/d3-time-1.0.10.tgz";
-        sha1 = "8259dd71288d72eeacfd8de281c4bf5c7393053c";
-      };
-    }
-    {
-      name = "dashdash___dashdash_1.14.1.tgz";
-      path = fetchurl {
-        name = "dashdash___dashdash_1.14.1.tgz";
-        url  = "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz";
-        sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0";
-      };
-    }
-    {
-      name = "data_urls___data_urls_1.1.0.tgz";
-      path = fetchurl {
-        name = "data_urls___data_urls_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz";
-        sha1 = "15ee0582baa5e22bb59c77140da8f9c76963bbfe";
-      };
-    }
-    {
-      name = "date_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 = "date_fns___date_fns_2.0.0_alpha.27.tgz";
-      path = fetchurl {
-        name = "date_fns___date_fns_2.0.0_alpha.27.tgz";
-        url  = "https://registry.yarnpkg.com/date-fns/-/date-fns-2.0.0-alpha.27.tgz";
-        sha1 = "5ecd4204ef0e7064264039570f6e8afbc014481c";
-      };
-    }
-    {
-      name = "date_fns___date_fns_2.0.0_beta.2.tgz";
-      path = fetchurl {
-        name = "date_fns___date_fns_2.0.0_beta.2.tgz";
-        url  = "https://registry.yarnpkg.com/date-fns/-/date-fns-2.0.0-beta.2.tgz";
-        sha1 = "ccd556df832ef761baa88c600f53d2e829245999";
-      };
-    }
-    {
-      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.1.0.tgz";
-      path = fetchurl {
-        name = "debug___debug_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz";
-        sha1 = "5bb5a0672628b64149566ba16819e61518c67261";
-      };
-    }
-    {
-      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 = "decamelize___decamelize_1.2.0.tgz";
-      path = fetchurl {
-        name = "decamelize___decamelize_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz";
-        sha1 = "f6534d15148269b20352e7bee26f501f9a191290";
-      };
-    }
-    {
-      name = "decode_uri_component___decode_uri_component_0.2.0.tgz";
-      path = fetchurl {
-        name = "decode_uri_component___decode_uri_component_0.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz";
-        sha1 = "eb3913333458775cb84cd1a1fae062106bb87545";
-      };
-    }
-    {
-      name = "deep_equal___deep_equal_1.1.1.tgz";
-      path = fetchurl {
-        name = "deep_equal___deep_equal_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz";
-        sha1 = "b5c98c942ceffaf7cb051e24e1434a25a2e6076a";
-      };
-    }
-    {
-      name = "deep_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 = "default_gateway___default_gateway_4.2.0.tgz";
-      path = fetchurl {
-        name = "default_gateway___default_gateway_4.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz";
-        sha1 = "167104c7500c2115f6dd69b0a536bb8ed720552b";
-      };
-    }
-    {
-      name = "define_properties___define_properties_1.1.3.tgz";
-      path = fetchurl {
-        name = "define_properties___define_properties_1.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz";
-        sha1 = "cf88da6cbee26fe6db7094f61d870cbd84cee9f1";
-      };
-    }
-    {
-      name = "define_property___define_property_0.2.5.tgz";
-      path = fetchurl {
-        name = "define_property___define_property_0.2.5.tgz";
-        url  = "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz";
-        sha1 = "c35b1ef918ec3c990f9a5bc57be04aacec5c8116";
-      };
-    }
-    {
-      name = "define_property___define_property_1.0.0.tgz";
-      path = fetchurl {
-        name = "define_property___define_property_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz";
-        sha1 = "769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6";
-      };
-    }
-    {
-      name = "define_property___define_property_2.0.2.tgz";
-      path = fetchurl {
-        name = "define_property___define_property_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz";
-        sha1 = "d459689e8d654ba77e02a817f8710d702cb16e9d";
-      };
-    }
-    {
-      name = "del___del_4.1.1.tgz";
-      path = fetchurl {
-        name = "del___del_4.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz";
-        sha1 = "9e8f117222ea44a31ff3a156c049b99052a9f0b4";
-      };
-    }
-    {
-      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.1.tgz";
-      path = fetchurl {
-        name = "depd___depd_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz";
-        sha1 = "5783b4e1c459f06fa5ca27f991f3d06e7a310359";
-      };
-    }
-    {
-      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 = "des.js___des.js_1.0.1.tgz";
-      path = fetchurl {
-        name = "des.js___des.js_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz";
-        sha1 = "5382142e1bdc53f85d86d53e5f4aa7deb91e0843";
-      };
-    }
-    {
-      name = "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_file___detect_file_1.0.0.tgz";
-      path = fetchurl {
-        name = "detect_file___detect_file_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz";
-        sha1 = "f0d66d03672a825cb1b73bdb3fe62310c8e552b7";
-      };
-    }
-    {
-      name = "detect_newline___detect_newline_2.1.0.tgz";
-      path = fetchurl {
-        name = "detect_newline___detect_newline_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz";
-        sha1 = "f41f1c10be4b00e87b5f13da680759f2c5bfd3e2";
-      };
-    }
-    {
-      name = "detect_node___detect_node_2.0.4.tgz";
-      path = fetchurl {
-        name = "detect_node___detect_node_2.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz";
-        sha1 = "014ee8f8f669c5c58023da64b8179c083a28c46c";
-      };
-    }
-    {
-      name = "diff_sequences___diff_sequences_24.3.0.tgz";
-      path = fetchurl {
-        name = "diff_sequences___diff_sequences_24.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.3.0.tgz";
-        sha1 = "0f20e8a1df1abddaf4d9c226680952e64118b975";
-      };
-    }
-    {
-      name = "diff___diff_3.5.0.tgz";
-      path = fetchurl {
-        name = "diff___diff_3.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz";
-        sha1 = "800c0dd1e0a8bfbc95835c202ad220fe317e5a12";
-      };
-    }
-    {
-      name = "diff___diff_4.0.1.tgz";
-      path = fetchurl {
-        name = "diff___diff_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/diff/-/diff-4.0.1.tgz";
-        sha1 = "0c667cb467ebbb5cea7f14f135cc2dba7780a8ff";
-      };
-    }
-    {
-      name = "diffie_hellman___diffie_hellman_5.0.3.tgz";
-      path = fetchurl {
-        name = "diffie_hellman___diffie_hellman_5.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz";
-        sha1 = "40e8ee98f55a2149607146921c63e1ae5f3d2875";
-      };
-    }
-    {
-      name = "discontinuous_range___discontinuous_range_1.0.0.tgz";
-      path = fetchurl {
-        name = "discontinuous_range___discontinuous_range_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/discontinuous-range/-/discontinuous-range-1.0.0.tgz";
-        sha1 = "e38331f0844bba49b9a9cb71c771585aab1bc65a";
-      };
-    }
-    {
-      name = "dnd_core___dnd_core_9.5.1.tgz";
-      path = fetchurl {
-        name = "dnd_core___dnd_core_9.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/dnd-core/-/dnd-core-9.5.1.tgz";
-        sha1 = "e9ec02d33529b68fa528865704d40ac4b14f2baf";
-      };
-    }
-    {
-      name = "dns_equal___dns_equal_1.0.0.tgz";
-      path = fetchurl {
-        name = "dns_equal___dns_equal_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz";
-        sha1 = "b39e7f1da6eb0a75ba9c17324b34753c47e0654d";
-      };
-    }
-    {
-      name = "dns_packet___dns_packet_1.3.1.tgz";
-      path = fetchurl {
-        name = "dns_packet___dns_packet_1.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz";
-        sha1 = "12aa426981075be500b910eedcd0b47dd7deda5a";
-      };
-    }
-    {
-      name = "dns_txt___dns_txt_2.0.2.tgz";
-      path = fetchurl {
-        name = "dns_txt___dns_txt_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz";
-        sha1 = "b91d806f5d27188e4ab3e7d107d881a1cc4642b6";
-      };
-    }
-    {
-      name = "doctrine___doctrine_2.1.0.tgz";
-      path = fetchurl {
-        name = "doctrine___doctrine_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz";
-        sha1 = "5cd01fc101621b42c4cd7f5d1a66243716d3f39d";
-      };
-    }
-    {
-      name = "doctrine___doctrine_3.0.0.tgz";
-      path = fetchurl {
-        name = "doctrine___doctrine_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz";
-        sha1 = "addebead72a6574db783639dc87a121773973961";
-      };
-    }
-    {
-      name = "dom_accessibility_api___dom_accessibility_api_0.4.5.tgz";
-      path = fetchurl {
-        name = "dom_accessibility_api___dom_accessibility_api_0.4.5.tgz";
-        url  = "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.4.5.tgz";
-        sha1 = "d9c1cefa89f509d8cf132ab5d250004d755e76e3";
-      };
-    }
-    {
-      name = "dom_converter___dom_converter_0.2.0.tgz";
-      path = fetchurl {
-        name = "dom_converter___dom_converter_0.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz";
-        sha1 = "6721a9daee2e293682955b6afe416771627bb768";
-      };
-    }
-    {
-      name = "dom_css___dom_css_2.1.0.tgz";
-      path = fetchurl {
-        name = "dom_css___dom_css_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/dom-css/-/dom-css-2.1.0.tgz";
-        sha1 = "fdbc2d5a015d0a3e1872e11472bbd0e7b9e6a202";
-      };
-    }
-    {
-      name = "dom_helpers___dom_helpers_3.3.1.tgz";
-      path = fetchurl {
-        name = "dom_helpers___dom_helpers_3.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-3.3.1.tgz";
-        sha1 = "fc1a4e15ffdf60ddde03a480a9c0fece821dd4a6";
-      };
-    }
-    {
-      name = "dom_serializer___dom_serializer_0.1.0.tgz";
-      path = fetchurl {
-        name = "dom_serializer___dom_serializer_0.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz";
-        sha1 = "073c697546ce0780ce23be4a28e293e40bc30c82";
-      };
-    }
-    {
-      name = "domain_browser___domain_browser_1.2.0.tgz";
-      path = fetchurl {
-        name = "domain_browser___domain_browser_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz";
-        sha1 = "3d31f50191a6749dd1375a7f522e823d42e54eda";
-      };
-    }
-    {
-      name = "domelementtype___domelementtype_1.3.0.tgz";
-      path = fetchurl {
-        name = "domelementtype___domelementtype_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz";
-        sha1 = "b17aed82e8ab59e52dd9c19b1756e0fc187204c2";
-      };
-    }
-    {
-      name = "domelementtype___domelementtype_1.3.1.tgz";
-      path = fetchurl {
-        name = "domelementtype___domelementtype_1.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz";
-        sha1 = "d048c44b37b0d10a7f2a3d5fee3f4333d790481f";
-      };
-    }
-    {
-      name = "domelementtype___domelementtype_1.1.3.tgz";
-      path = fetchurl {
-        name = "domelementtype___domelementtype_1.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz";
-        sha1 = "bd28773e2642881aec51544924299c5cd822185b";
-      };
-    }
-    {
-      name = "domexception___domexception_1.0.1.tgz";
-      path = fetchurl {
-        name = "domexception___domexception_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz";
-        sha1 = "937442644ca6a31261ef36e3ec677fe805582c90";
-      };
-    }
-    {
-      name = "domhandler___domhandler_2.4.2.tgz";
-      path = fetchurl {
-        name = "domhandler___domhandler_2.4.2.tgz";
-        url  = "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz";
-        sha1 = "8805097e933d65e85546f726d60f5eb88b44f803";
-      };
-    }
-    {
-      name = "domutils___domutils_1.5.1.tgz";
-      path = fetchurl {
-        name = "domutils___domutils_1.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz";
-        sha1 = "dcd8488a26f563d61079e48c9f7b7e32373682cf";
-      };
-    }
-    {
-      name = "domutils___domutils_1.7.0.tgz";
-      path = fetchurl {
-        name = "domutils___domutils_1.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz";
-        sha1 = "56ea341e834e06e6748af7a1cb25da67ea9f8c2a";
-      };
-    }
-    {
-      name = "dot_prop___dot_prop_4.2.0.tgz";
-      path = fetchurl {
-        name = "dot_prop___dot_prop_4.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz";
-        sha1 = "1f19e0c2e1aa0e32797c49799f2837ac6af69c57";
-      };
-    }
-    {
-      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";
-        url  = "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz";
-        sha1 = "2a4df5317f6ccfd91f86d6fd25d8d8a103b88309";
-      };
-    }
-    {
-      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 = "ejs___ejs_2.7.1.tgz";
-      path = fetchurl {
-        name = "ejs___ejs_2.7.1.tgz";
-        url  = "https://registry.yarnpkg.com/ejs/-/ejs-2.7.1.tgz";
-        sha1 = "5b5ab57f718b79d4aca9254457afecd36fa80228";
-      };
-    }
-    {
-      name = "electron_to_chromium___electron_to_chromium_1.3.75.tgz";
-      path = fetchurl {
-        name = "electron_to_chromium___electron_to_chromium_1.3.75.tgz";
-        url  = "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.75.tgz";
-        sha1 = "dd04551739e7371862b0ac7f4ddaa9f3f95b7e68";
-      };
-    }
-    {
-      name = "electron_to_chromium___electron_to_chromium_1.3.194.tgz";
-      path = fetchurl {
-        name = "electron_to_chromium___electron_to_chromium_1.3.194.tgz";
-        url  = "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.194.tgz";
-        sha1 = "a96452a96d4539131957aade9f634a45721f2819";
-      };
-    }
-    {
-      name = "electron_to_chromium___electron_to_chromium_1.3.96.tgz";
-      path = fetchurl {
-        name = "electron_to_chromium___electron_to_chromium_1.3.96.tgz";
-        url  = "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.96.tgz";
-        sha1 = "25770ec99b8b07706dedf3a5f43fa50cb54c4f9a";
-      };
-    }
-    {
-      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 = "element_resize_event___element_resize_event_2.0.9.tgz";
-      path = fetchurl {
-        name = "element_resize_event___element_resize_event_2.0.9.tgz";
-        url  = "https://registry.yarnpkg.com/element-resize-event/-/element-resize-event-2.0.9.tgz";
-        sha1 = "2f5e1581a296eb5275210c141bc56342e218f876";
-      };
-    }
-    {
-      name = "elliptic___elliptic_6.5.2.tgz";
-      path = fetchurl {
-        name = "elliptic___elliptic_6.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz";
-        sha1 = "05c5678d7173c049d8ca433552224a495d0e3762";
-      };
-    }
-    {
-      name = "emoji_regex___emoji_regex_7.0.3.tgz";
-      path = fetchurl {
-        name = "emoji_regex___emoji_regex_7.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz";
-        sha1 = "933a04052860c85e83c122479c4748a8e4c72156";
-      };
-    }
-    {
-      name = "emoji_regex___emoji_regex_8.0.0.tgz";
-      path = fetchurl {
-        name = "emoji_regex___emoji_regex_8.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz";
-        sha1 = "e818fd69ce5ccfcb404594f842963bf53164cc37";
-      };
-    }
-    {
-      name = "emojis_list___emojis_list_2.1.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";
-      path = fetchurl {
-        name = "emojis_list___emojis_list_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz";
-        sha1 = "5570662046ad29e2e916e71aae260abdff4f6a78";
-      };
-    }
-    {
-      name = "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 = "encoding___encoding_0.1.12.tgz";
-      path = fetchurl {
-        name = "encoding___encoding_0.1.12.tgz";
-        url  = "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz";
-        sha1 = "538b66f3ee62cd1ab51ec323829d1f9480c74beb";
-      };
-    }
-    {
-      name = "end_of_stream___end_of_stream_1.4.4.tgz";
-      path = fetchurl {
-        name = "end_of_stream___end_of_stream_1.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz";
-        sha1 = "5ae64a5f45057baf3626ec14da0ca5e4b2431eb0";
-      };
-    }
-    {
-      name = "enhanced_resolve___enhanced_resolve_4.1.0.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 = "enhanced_resolve___enhanced_resolve_4.1.1.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 = "entities___entities_1.1.1.tgz";
-      path = fetchurl {
-        name = "entities___entities_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz";
-        sha1 = "6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0";
-      };
-    }
-    {
-      name = "enzyme_adapter_react_16___enzyme_adapter_react_16_1.6.0.tgz";
-      path = fetchurl {
-        name = "enzyme_adapter_react_16___enzyme_adapter_react_16_1.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.6.0.tgz";
-        sha1 = "3fca28d3c32f3ff427495380fe2dd51494689073";
-      };
-    }
-    {
-      name = "enzyme_adapter_utils___enzyme_adapter_utils_1.8.1.tgz";
-      path = fetchurl {
-        name = "enzyme_adapter_utils___enzyme_adapter_utils_1.8.1.tgz";
-        url  = "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.8.1.tgz";
-        sha1 = "a927d840ce2c14b42892a533aec836809d4e022b";
-      };
-    }
-    {
-      name = "enzyme_to_json___enzyme_to_json_3.3.4.tgz";
-      path = fetchurl {
-        name = "enzyme_to_json___enzyme_to_json_3.3.4.tgz";
-        url  = "https://registry.yarnpkg.com/enzyme-to-json/-/enzyme-to-json-3.3.4.tgz";
-        sha1 = "67c6040e931182f183418af2eb9f4323258aa77f";
-      };
-    }
-    {
-      name = "enzyme___enzyme_3.7.0.tgz";
-      path = fetchurl {
-        name = "enzyme___enzyme_3.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/enzyme/-/enzyme-3.7.0.tgz";
-        sha1 = "9b499e8ca155df44fef64d9f1558961ba1385a46";
-      };
-    }
-    {
-      name = "errno___errno_0.1.7.tgz";
-      path = fetchurl {
-        name = "errno___errno_0.1.7.tgz";
-        url  = "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz";
-        sha1 = "4684d71779ad39af177e3f007996f7c67c852618";
-      };
-    }
-    {
-      name = "error_ex___error_ex_1.3.2.tgz";
-      path = fetchurl {
-        name = "error_ex___error_ex_1.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz";
-        sha1 = "b4ac40648107fdcdcfae242f428bea8a14d4f1bf";
-      };
-    }
-    {
-      name = "es_abstract___es_abstract_1.12.0.tgz";
-      path = fetchurl {
-        name = "es_abstract___es_abstract_1.12.0.tgz";
-        url  = "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.12.0.tgz";
-        sha1 = "9dbbdd27c6856f0001421ca18782d786bf8a6165";
-      };
-    }
-    {
-      name = "es_abstract___es_abstract_1.17.4.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.13.0.tgz";
-      path = fetchurl {
-        name = "es_abstract___es_abstract_1.13.0.tgz";
-        url  = "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz";
-        sha1 = "ac86145fdd5099d8dd49558ccba2eaf9b88e24e9";
-      };
-    }
-    {
-      name = "es_to_primitive___es_to_primitive_1.2.0.tgz";
-      path = fetchurl {
-        name = "es_to_primitive___es_to_primitive_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz";
-        sha1 = "edf72478033456e8dda8ef09e00ad9650707f377";
-      };
-    }
-    {
-      name = "es_to_primitive___es_to_primitive_1.2.1.tgz";
-      path = fetchurl {
-        name = "es_to_primitive___es_to_primitive_1.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz";
-        sha1 = "e55cd4c9cdc188bcefb03b366c736323fc5c898a";
-      };
-    }
-    {
-      name = "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 = "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.11.0.tgz";
-      path = fetchurl {
-        name = "escodegen___escodegen_1.11.0.tgz";
-        url  = "https://registry.yarnpkg.com/escodegen/-/escodegen-1.11.0.tgz";
-        sha1 = "b27a9389481d5bfd5bec76f7bb1eb3f8f4556589";
-      };
-    }
-    {
-      name = "escodegen___escodegen_1.11.1.tgz";
-      path = fetchurl {
-        name = "escodegen___escodegen_1.11.1.tgz";
-        url  = "https://registry.yarnpkg.com/escodegen/-/escodegen-1.11.1.tgz";
-        sha1 = "c485ff8d6b4cdb89e27f4a856e91f118401ca510";
-      };
-    }
-    {
-      name = "eslint_config_prettier___eslint_config_prettier_6.5.0.tgz";
-      path = fetchurl {
-        name = "eslint_config_prettier___eslint_config_prettier_6.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.5.0.tgz";
-        sha1 = "aaf9a495e2a816865e541bfdbb73a65cc162b3eb";
-      };
-    }
-    {
-      name = "eslint_plugin_jest___eslint_plugin_jest_23.0.2.tgz";
-      path = fetchurl {
-        name = "eslint_plugin_jest___eslint_plugin_jest_23.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-23.0.2.tgz";
-        sha1 = "54a59bfe77245186afe13711a297067aefefff0a";
-      };
-    }
-    {
-      name = "eslint_plugin_react_hooks___eslint_plugin_react_hooks_4.0.5.tgz";
-      path = fetchurl {
-        name = "eslint_plugin_react_hooks___eslint_plugin_react_hooks_4.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.0.5.tgz";
-        sha1 = "4879003aa38e5d05d0312175beb6e4a1f617bfcf";
-      };
-    }
-    {
-      name = "eslint_plugin_react___eslint_plugin_react_7.16.0.tgz";
-      path = fetchurl {
-        name = "eslint_plugin_react___eslint_plugin_react_7.16.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.16.0.tgz";
-        sha1 = "9928e4f3e2122ed3ba6a5b56d0303ba3e41d8c09";
-      };
-    }
-    {
-      name = "eslint_scope___eslint_scope_4.0.3.tgz";
-      path = fetchurl {
-        name = "eslint_scope___eslint_scope_4.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz";
-        sha1 = "ca03833310f6889a3264781aa82e63eb9cfe7848";
-      };
-    }
-    {
-      name = "eslint_scope___eslint_scope_5.0.0.tgz";
-      path = fetchurl {
-        name = "eslint_scope___eslint_scope_5.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.0.0.tgz";
-        sha1 = "e87c8887c73e8d1ec84f1ca591645c358bfc8fb9";
-      };
-    }
-    {
-      name = "eslint_utils___eslint_utils_1.4.2.tgz";
-      path = fetchurl {
-        name = "eslint_utils___eslint_utils_1.4.2.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.2.tgz";
-        sha1 = "166a5180ef6ab7eb462f162fd0e6f2463d7309ab";
-      };
-    }
-    {
-      name = "eslint_utils___eslint_utils_1.4.3.tgz";
-      path = fetchurl {
-        name = "eslint_utils___eslint_utils_1.4.3.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz";
-        sha1 = "74fec7c54d0776b6f67e0251040b5806564e981f";
-      };
-    }
-    {
-      name = "eslint_visitor_keys___eslint_visitor_keys_1.0.0.tgz";
-      path = fetchurl {
-        name = "eslint_visitor_keys___eslint_visitor_keys_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz";
-        sha1 = "3f3180fb2e291017716acb4c9d6d5b5c34a6a81d";
-      };
-    }
-    {
-      name = "eslint_visitor_keys___eslint_visitor_keys_1.1.0.tgz";
-      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___eslint_6.6.0.tgz";
-      path = fetchurl {
-        name = "eslint___eslint_6.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint/-/eslint-6.6.0.tgz";
-        sha1 = "4a01a2fb48d32aacef5530ee9c5a78f11a8afd04";
-      };
-    }
-    {
-      name = "espree___espree_6.1.2.tgz";
-      path = fetchurl {
-        name = "espree___espree_6.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/espree/-/espree-6.1.2.tgz";
-        sha1 = "6c272650932b4f91c3714e5e7b5f5e2ecf47262d";
-      };
-    }
-    {
-      name = "esprima___esprima_3.1.3.tgz";
-      path = fetchurl {
-        name = "esprima___esprima_3.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz";
-        sha1 = "fdca51cee6133895e3c88d535ce49dbff62a4633";
-      };
-    }
-    {
-      name = "esprima___esprima_4.0.1.tgz";
-      path = fetchurl {
-        name = "esprima___esprima_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz";
-        sha1 = "13b04cdb3e6c5d19df91ab6987a8695619b0aa71";
-      };
-    }
-    {
-      name = "esquery___esquery_1.0.1.tgz";
-      path = fetchurl {
-        name = "esquery___esquery_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz";
-        sha1 = "406c51658b1f5991a5f9b62b1dc25b00e3e5c708";
-      };
-    }
-    {
-      name = "esrecurse___esrecurse_4.2.1.tgz";
-      path = fetchurl {
-        name = "esrecurse___esrecurse_4.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz";
-        sha1 = "007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf";
-      };
-    }
-    {
-      name = "estraverse___estraverse_4.2.0.tgz";
-      path = fetchurl {
-        name = "estraverse___estraverse_4.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz";
-        sha1 = "0dee3fed31fcd469618ce7342099fc1afa0bdb13";
-      };
-    }
-    {
-      name = "estraverse___estraverse_4.3.0.tgz";
-      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.2.tgz";
-      path = fetchurl {
-        name = "esutils___esutils_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz";
-        sha1 = "0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b";
-      };
-    }
-    {
-      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 = "eventemitter2___eventemitter2_6.4.3.tgz";
-      path = fetchurl {
-        name = "eventemitter2___eventemitter2_6.4.3.tgz";
-        url  = "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.3.tgz";
-        sha1 = "35c563619b13f3681e7eb05cbdaf50f56ba58820";
-      };
-    }
-    {
-      name = "eventemitter3___eventemitter3_3.1.2.tgz";
-      path = fetchurl {
-        name = "eventemitter3___eventemitter3_3.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz";
-        sha1 = "2d3d48f9c346698fce83a85d7d664e98535df6e7";
-      };
-    }
-    {
-      name = "eventemitter3___eventemitter3_4.0.0.tgz";
-      path = fetchurl {
-        name = "eventemitter3___eventemitter3_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.0.tgz";
-        sha1 = "d65176163887ee59f386d64c82610b696a4a74eb";
-      };
-    }
-    {
-      name = "events___events_3.1.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 = "eventsource___eventsource_1.0.7.tgz";
-      path = fetchurl {
-        name = "eventsource___eventsource_1.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/eventsource/-/eventsource-1.0.7.tgz";
-        sha1 = "8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0";
-      };
-    }
-    {
-      name = "evp_bytestokey___evp_bytestokey_1.0.3.tgz";
-      path = fetchurl {
-        name = "evp_bytestokey___evp_bytestokey_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz";
-        sha1 = "7fcbdb198dc71959432efe13842684e0525acb02";
-      };
-    }
-    {
-      name = "exec_sh___exec_sh_0.3.2.tgz";
-      path = fetchurl {
-        name = "exec_sh___exec_sh_0.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.2.tgz";
-        sha1 = "6738de2eb7c8e671d0366aea0b0db8c6f7d7391b";
-      };
-    }
-    {
-      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 = "executable___executable_4.1.1.tgz";
-      path = fetchurl {
-        name = "executable___executable_4.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/executable/-/executable-4.1.1.tgz";
-        sha1 = "41532bff361d3e57af4d763b70582db18f5d133c";
-      };
-    }
-    {
-      name = "exit_hook___exit_hook_1.1.1.tgz";
-      path = fetchurl {
-        name = "exit_hook___exit_hook_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz";
-        sha1 = "f05ca233b48c05d54fff07765df8507e95c02ff8";
-      };
-    }
-    {
-      name = "exit___exit_0.1.2.tgz";
-      path = fetchurl {
-        name = "exit___exit_0.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz";
-        sha1 = "0632638f8d877cc82107d30a0fff1a17cba1cd0c";
-      };
-    }
-    {
-      name = "expand_brackets___expand_brackets_2.1.4.tgz";
-      path = fetchurl {
-        name = "expand_brackets___expand_brackets_2.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz";
-        sha1 = "b77735e315ce30f6b6eff0f83b04151a22449622";
-      };
-    }
-    {
-      name = "expand_tilde___expand_tilde_2.0.2.tgz";
-      path = fetchurl {
-        name = "expand_tilde___expand_tilde_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz";
-        sha1 = "97e801aa052df02454de46b02bf621642cdc8502";
-      };
-    }
-    {
-      name = "expect___expect_24.8.0.tgz";
-      path = fetchurl {
-        name = "expect___expect_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/expect/-/expect-24.8.0.tgz";
-        sha1 = "471f8ec256b7b6129ca2524b2a62f030df38718d";
-      };
-    }
-    {
-      name = "express___express_4.16.3.tgz";
-      path = fetchurl {
-        name = "express___express_4.16.3.tgz";
-        url  = "https://registry.yarnpkg.com/express/-/express-4.16.3.tgz";
-        sha1 = "6af8a502350db3246ecc4becf6b5a34d22f7ed53";
-      };
-    }
-    {
-      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_shallow___extend_shallow_2.0.1.tgz";
-      path = fetchurl {
-        name = "extend_shallow___extend_shallow_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz";
-        sha1 = "51af7d614ad9a9f610ea1bafbb989d6b1c56890f";
-      };
-    }
-    {
-      name = "extend_shallow___extend_shallow_3.0.2.tgz";
-      path = fetchurl {
-        name = "extend_shallow___extend_shallow_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz";
-        sha1 = "26a71aaf073b39fb2127172746131c2704028db8";
-      };
-    }
-    {
-      name = "extend___extend_3.0.2.tgz";
-      path = fetchurl {
-        name = "extend___extend_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz";
-        sha1 = "f8b1136b4071fbd8eb140aff858b1019ec2915fa";
-      };
-    }
-    {
-      name = "external_editor___external_editor_3.0.3.tgz";
-      path = fetchurl {
-        name = "external_editor___external_editor_3.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.3.tgz";
-        sha1 = "5866db29a97826dbe4bf3afd24070ead9ea43a27";
-      };
-    }
-    {
-      name = "extglob___extglob_2.0.4.tgz";
-      path = fetchurl {
-        name = "extglob___extglob_2.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz";
-        sha1 = "ad00fe4dc612a9232e8718711dc5cb5ab0285543";
-      };
-    }
-    {
-      name = "extract_zip___extract_zip_1.7.0.tgz";
-      path = fetchurl {
-        name = "extract_zip___extract_zip_1.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz";
-        sha1 = "556cc3ae9df7f452c493a0cfb51cc30277940927";
-      };
-    }
-    {
-      name = "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_2.0.1.tgz";
-      path = fetchurl {
-        name = "fast_deep_equal___fast_deep_equal_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz";
-        sha1 = "7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49";
-      };
-    }
-    {
-      name = "fast_deep_equal___fast_deep_equal_3.1.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_json_stable_stringify___fast_json_stable_stringify_2.0.0.tgz";
-      path = fetchurl {
-        name = "fast_json_stable_stringify___fast_json_stable_stringify_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz";
-        sha1 = "d5142c0caee6b1189f87d3a76111064f86c8bbf2";
-      };
-    }
-    {
-      name = "fast_json_stable_stringify___fast_json_stable_stringify_2.1.0.tgz";
-      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_plist___fast_plist_0.1.2.tgz";
-      path = fetchurl {
-        name = "fast_plist___fast_plist_0.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/fast-plist/-/fast-plist-0.1.2.tgz";
-        sha1 = "a45aff345196006d406ca6cdcd05f69051ef35b8";
-      };
-    }
-    {
-      name = "fast.js___fast.js_0.1.1.tgz";
-      path = fetchurl {
-        name = "fast.js___fast.js_0.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/fast.js/-/fast.js-0.1.1.tgz";
-        sha1 = "7c024d55ae144882fbcee44b79005fe2dcabd9fe";
-      };
-    }
-    {
-      name = "faye_websocket___faye_websocket_0.10.0.tgz";
-      path = fetchurl {
-        name = "faye_websocket___faye_websocket_0.10.0.tgz";
-        url  = "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz";
-        sha1 = "4e492f8d04dfb6f89003507f6edbf2d501e7c6f4";
-      };
-    }
-    {
-      name = "faye_websocket___faye_websocket_0.11.3.tgz";
-      path = fetchurl {
-        name = "faye_websocket___faye_websocket_0.11.3.tgz";
-        url  = "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz";
-        sha1 = "5c0e9a8968e8912c286639fde977a8b209f2508e";
-      };
-    }
-    {
-      name = "fb_watchman___fb_watchman_2.0.0.tgz";
-      path = fetchurl {
-        name = "fb_watchman___fb_watchman_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz";
-        sha1 = "54e9abf7dfa2f26cd9b1636c588c1afc05de5d58";
-      };
-    }
-    {
-      name = "fbjs___fbjs_0.8.17.tgz";
-      path = fetchurl {
-        name = "fbjs___fbjs_0.8.17.tgz";
-        url  = "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz";
-        sha1 = "c4d598ead6949112653d6588b01a5cdcd9f90fdd";
-      };
-    }
-    {
-      name = "fd_slicer___fd_slicer_1.1.0.tgz";
-      path = fetchurl {
-        name = "fd_slicer___fd_slicer_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz";
-        sha1 = "25c7c89cb1f9077f8891bbe61d8f390eae256f1e";
-      };
-    }
-    {
-      name = "figgy_pudding___figgy_pudding_3.5.1.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 = "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 = "figures___figures_3.1.0.tgz";
-      path = fetchurl {
-        name = "figures___figures_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/figures/-/figures-3.1.0.tgz";
-        sha1 = "4b198dd07d8d71530642864af2d45dd9e459c4ec";
-      };
-    }
-    {
-      name = "file_entry_cache___file_entry_cache_5.0.1.tgz";
-      path = fetchurl {
-        name = "file_entry_cache___file_entry_cache_5.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz";
-        sha1 = "ca0f6efa6dd3d561333fb14515065c2fafdf439c";
-      };
-    }
-    {
-      name = "file_loader___file_loader_4.1.0.tgz";
-      path = fetchurl {
-        name = "file_loader___file_loader_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/file-loader/-/file-loader-4.1.0.tgz";
-        sha1 = "3a763391bc9502da7c59612fe348e38fc1980336";
-      };
-    }
-    {
-      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 = "filesize___filesize_3.6.1.tgz";
-      path = fetchurl {
-        name = "filesize___filesize_3.6.1.tgz";
-        url  = "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz";
-        sha1 = "090bb3ee01b6f801a8a8be99d31710b3422bb317";
-      };
-    }
-    {
-      name = "fill_range___fill_range_4.0.0.tgz";
-      path = fetchurl {
-        name = "fill_range___fill_range_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz";
-        sha1 = "d544811d428f98eb06a63dc402d2403c328c38f7";
-      };
-    }
-    {
-      name = "fill_range___fill_range_7.0.1.tgz";
-      path = fetchurl {
-        name = "fill_range___fill_range_7.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz";
-        sha1 = "1919a6a7c75fe38b2c7c77e5198535da9acdda40";
-      };
-    }
-    {
-      name = "finalhandler___finalhandler_1.1.1.tgz";
-      path = fetchurl {
-        name = "finalhandler___finalhandler_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz";
-        sha1 = "eebf4ed840079c83f4249038c9d703008301b105";
-      };
-    }
-    {
-      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_2.0.0.tgz";
-      path = fetchurl {
-        name = "find_cache_dir___find_cache_dir_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.0.0.tgz";
-        sha1 = "4c1faed59f45184530fb9d7fa123a4d04a98472d";
-      };
-    }
-    {
-      name = "find_cache_dir___find_cache_dir_2.1.0.tgz";
-      path = fetchurl {
-        name = "find_cache_dir___find_cache_dir_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz";
-        sha1 = "8d0f94cd13fe43c6c7c261a0d86115ca918c05f7";
-      };
-    }
-    {
-      name = "find_cache_dir___find_cache_dir_3.1.0.tgz";
-      path = fetchurl {
-        name = "find_cache_dir___find_cache_dir_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.1.0.tgz";
-        sha1 = "9935894999debef4cf9f677fdf646d002c4cdecb";
-      };
-    }
-    {
-      name = "find_up___find_up_3.0.0.tgz";
-      path = fetchurl {
-        name = "find_up___find_up_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz";
-        sha1 = "49169f1d7993430646da61ecc5ae355c21c97b73";
-      };
-    }
-    {
-      name = "find_up___find_up_4.1.0.tgz";
-      path = fetchurl {
-        name = "find_up___find_up_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz";
-        sha1 = "97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19";
-      };
-    }
-    {
-      name = "findup_sync___findup_sync_3.0.0.tgz";
-      path = fetchurl {
-        name = "findup_sync___findup_sync_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz";
-        sha1 = "17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1";
-      };
-    }
-    {
-      name = "flat_cache___flat_cache_2.0.1.tgz";
-      path = fetchurl {
-        name = "flat_cache___flat_cache_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz";
-        sha1 = "5d296d6f04bda44a4630a301413bdbc2ec085ec0";
-      };
-    }
-    {
-      name = "flatted___flatted_2.0.0.tgz";
-      path = fetchurl {
-        name = "flatted___flatted_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/flatted/-/flatted-2.0.0.tgz";
-        sha1 = "55122b6536ea496b4b44893ee2608141d10d9916";
-      };
-    }
-    {
-      name = "flush_write_stream___flush_write_stream_1.1.1.tgz";
-      path = fetchurl {
-        name = "flush_write_stream___flush_write_stream_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz";
-        sha1 = "8dd7d873a1babc207d94ead0c2e0e44276ebf2e8";
-      };
-    }
-    {
-      name = "follow_redirects___follow_redirects_1.5.10.tgz";
-      path = fetchurl {
-        name = "follow_redirects___follow_redirects_1.5.10.tgz";
-        url  = "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz";
-        sha1 = "7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a";
-      };
-    }
-    {
-      name = "follow_redirects___follow_redirects_1.10.0.tgz";
-      path = fetchurl {
-        name = "follow_redirects___follow_redirects_1.10.0.tgz";
-        url  = "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.10.0.tgz";
-        sha1 = "01f5263aee921c6a54fb91667f08f4155ce169eb";
-      };
-    }
-    {
-      name = "for_in___for_in_0.1.8.tgz";
-      path = fetchurl {
-        name = "for_in___for_in_0.1.8.tgz";
-        url  = "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz";
-        sha1 = "d8773908e31256109952b1fdb9b3fa867d2775e1";
-      };
-    }
-    {
-      name = "for_in___for_in_1.0.2.tgz";
-      path = fetchurl {
-        name = "for_in___for_in_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz";
-        sha1 = "81068d295a8142ec0ac726c6e2200c30fb6d5e80";
-      };
-    }
-    {
-      name = "for_own___for_own_1.0.0.tgz";
-      path = fetchurl {
-        name = "for_own___for_own_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz";
-        sha1 = "c63332f415cedc4b04dbfe70cf836494c53cb44b";
-      };
-    }
-    {
-      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 = "fork_ts_checker_webpack_plugin___fork_ts_checker_webpack_plugin_1.4.3.tgz";
-      path = fetchurl {
-        name = "fork_ts_checker_webpack_plugin___fork_ts_checker_webpack_plugin_1.4.3.tgz";
-        url  = "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-1.4.3.tgz";
-        sha1 = "2252c1f8ad1b25313e056835d939b423ea240cd6";
-      };
-    }
-    {
-      name = "form_data___form_data_2.5.1.tgz";
-      path = fetchurl {
-        name = "form_data___form_data_2.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz";
-        sha1 = "f2cbec57b5e59e23716e128fe44d4e5dd23895f4";
-      };
-    }
-    {
-      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 = "formidable___formidable_1.2.1.tgz";
-      path = fetchurl {
-        name = "formidable___formidable_1.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/formidable/-/formidable-1.2.1.tgz";
-        sha1 = "70fb7ca0290ee6ff961090415f4b3df3d2082659";
-      };
-    }
-    {
-      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 = "fragment_cache___fragment_cache_0.2.1.tgz";
-      path = fetchurl {
-        name = "fragment_cache___fragment_cache_0.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz";
-        sha1 = "4290fad27f13e89be7f33799c6bc5a0abfff0d19";
-      };
-    }
-    {
-      name = "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 = "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_minipass___fs_minipass_2.0.0.tgz";
-      path = fetchurl {
-        name = "fs_minipass___fs_minipass_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.0.0.tgz";
-        sha1 = "a6415edab02fae4b9e9230bc87ee2e4472003cd1";
-      };
-    }
-    {
-      name = "fs_write_stream_atomic___fs_write_stream_atomic_1.0.10.tgz";
-      path = fetchurl {
-        name = "fs_write_stream_atomic___fs_write_stream_atomic_1.0.10.tgz";
-        url  = "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz";
-        sha1 = "b47df53493ef911df75731e70a9ded0189db40c9";
-      };
-    }
-    {
-      name = "fs.realpath___fs.realpath_1.0.0.tgz";
-      path = fetchurl {
-        name = "fs.realpath___fs.realpath_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz";
-        sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
-      };
-    }
-    {
-      name = "fsevents___fsevents_1.2.12.tgz";
-      path = fetchurl {
-        name = "fsevents___fsevents_1.2.12.tgz";
-        url  = "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.12.tgz";
-        sha1 = "db7e0d8ec3b0b45724fd4d83d43554a8f1f0de5c";
-      };
-    }
-    {
-      name = "fsevents___fsevents_2.0.7.tgz";
-      path = fetchurl {
-        name = "fsevents___fsevents_2.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/fsevents/-/fsevents-2.0.7.tgz";
-        sha1 = "382c9b443c6cbac4c57187cdda23aa3bf1ccfc2a";
-      };
-    }
-    {
-      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 = "function.prototype.name___function.prototype.name_1.1.0.tgz";
-      path = fetchurl {
-        name = "function.prototype.name___function.prototype.name_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.0.tgz";
-        sha1 = "8bd763cc0af860a859cc5d49384d74b932cd2327";
-      };
-    }
-    {
-      name = "functional_red_black_tree___functional_red_black_tree_1.0.1.tgz";
-      path = fetchurl {
-        name = "functional_red_black_tree___functional_red_black_tree_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz";
-        sha1 = "1b0ab3bd553b2a0d6399d29c0e3ea0b252078327";
-      };
-    }
-    {
-      name = "get_caller_file___get_caller_file_1.0.3.tgz";
-      path = fetchurl {
-        name = "get_caller_file___get_caller_file_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz";
-        sha1 = "f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a";
-      };
-    }
-    {
-      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_stdin___get_stdin_6.0.0.tgz";
-      path = fetchurl {
-        name = "get_stdin___get_stdin_6.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz";
-        sha1 = "9e09bf712b360ab9225e812048f71fde9c89657b";
-      };
-    }
-    {
-      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_value___get_value_2.0.6.tgz";
-      path = fetchurl {
-        name = "get_value___get_value_2.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz";
-        sha1 = "dc15ca1c672387ca76bd37ac0a395ba2042a2c28";
-      };
-    }
-    {
-      name = "getos___getos_3.2.1.tgz";
-      path = fetchurl {
-        name = "getos___getos_3.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/getos/-/getos-3.2.1.tgz";
-        sha1 = "0134d1f4e00eb46144c5a9c0ac4dc087cbb27dc5";
-      };
-    }
-    {
-      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_3.1.0.tgz";
-      path = fetchurl {
-        name = "glob_parent___glob_parent_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz";
-        sha1 = "9e6af6299d8d3bd2bd40430832bd113df906c5ae";
-      };
-    }
-    {
-      name = "glob_parent___glob_parent_5.0.0.tgz";
-      path = fetchurl {
-        name = "glob_parent___glob_parent_5.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.0.0.tgz";
-        sha1 = "1dc99f0f39b006d3e92c2c284068382f0c20e954";
-      };
-    }
-    {
-      name = "glob_to_regexp___glob_to_regexp_0.3.0.tgz";
-      path = fetchurl {
-        name = "glob_to_regexp___glob_to_regexp_0.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz";
-        sha1 = "8c5a1494d2066c570cc3bfe4496175acc4d502ab";
-      };
-    }
-    {
-      name = "glob___glob_7.1.2.tgz";
-      path = fetchurl {
-        name = "glob___glob_7.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz";
-        sha1 = "c19c9df9a028702d678612384a6552404c636d15";
-      };
-    }
-    {
-      name = "glob___glob_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 = "glob___glob_7.1.4.tgz";
-      path = fetchurl {
-        name = "glob___glob_7.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz";
-        sha1 = "aa608a2f6c577ad357e1ae5a5c26d9a8d1969255";
-      };
-    }
-    {
-      name = "global_dirs___global_dirs_2.0.1.tgz";
-      path = fetchurl {
-        name = "global_dirs___global_dirs_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.0.1.tgz";
-        sha1 = "acdf3bb6685bcd55cb35e8a052266569e9469201";
-      };
-    }
-    {
-      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";
-        url  = "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz";
-        sha1 = "6d770f0eb523ac78164d72b5e71a8877265cc3ea";
-      };
-    }
-    {
-      name = "global_prefix___global_prefix_1.0.2.tgz";
-      path = fetchurl {
-        name = "global_prefix___global_prefix_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz";
-        sha1 = "dbf743c6c14992593c655568cb66ed32c0122ebe";
-      };
-    }
-    {
-      name = "global_prefix___global_prefix_3.0.0.tgz";
-      path = fetchurl {
-        name = "global_prefix___global_prefix_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz";
-        sha1 = "fc85f73064df69f50421f47f883fe5b913ba9b97";
-      };
-    }
-    {
-      name = "globals___globals_11.12.0.tgz";
-      path = fetchurl {
-        name = "globals___globals_11.12.0.tgz";
-        url  = "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz";
-        sha1 = "ab8795338868a0babd8525758018c2a7eb95c42e";
-      };
-    }
-    {
-      name = "globals___globals_11.9.0.tgz";
-      path = fetchurl {
-        name = "globals___globals_11.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/globals/-/globals-11.9.0.tgz";
-        sha1 = "bde236808e987f290768a93d065060d78e6ab249";
-      };
-    }
-    {
-      name = "globby___globby_6.1.0.tgz";
-      path = fetchurl {
-        name = "globby___globby_6.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz";
-        sha1 = "f5a6d70e8395e21c858fb0489d64df02424d506c";
-      };
-    }
-    {
-      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.1.11.tgz";
-      path = fetchurl {
-        name = "graceful_fs___graceful_fs_4.1.11.tgz";
-        url  = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz";
-        sha1 = "0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658";
-      };
-    }
-    {
-      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 = "graceful_readlink___graceful_readlink_1.0.1.tgz";
-      path = fetchurl {
-        name = "graceful_readlink___graceful_readlink_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz";
-        sha1 = "4cafad76bc62f02fa039b2f94e9a3dd3a391a725";
-      };
-    }
-    {
-      name = "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 = "growly___growly_1.3.0.tgz";
-      path = fetchurl {
-        name = "growly___growly_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz";
-        sha1 = "f10748cbe76af964b7c96c93c6bcc28af120c081";
-      };
-    }
-    {
-      name = "gud___gud_1.0.0.tgz";
-      path = fetchurl {
-        name = "gud___gud_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/gud/-/gud-1.0.0.tgz";
-        sha1 = "a489581b17e6a70beca9abe3ae57de7a499852c0";
-      };
-    }
-    {
-      name = "gzip_size___gzip_size_5.1.1.tgz";
-      path = fetchurl {
-        name = "gzip_size___gzip_size_5.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.1.1.tgz";
-        sha1 = "cb9bee692f87c0612b232840a873904e4c135274";
-      };
-    }
-    {
-      name = "handle_thing___handle_thing_2.0.0.tgz";
-      path = fetchurl {
-        name = "handle_thing___handle_thing_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.0.tgz";
-        sha1 = "0e039695ff50c93fc288557d696f3c1dc6776754";
-      };
-    }
-    {
-      name = "handlebars___handlebars_4.1.2.tgz";
-      path = fetchurl {
-        name = "handlebars___handlebars_4.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/handlebars/-/handlebars-4.1.2.tgz";
-        sha1 = "b6b37c1ced0306b221e094fc7aca3ec23b131b67";
-      };
-    }
-    {
-      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 = "harmony_reflect___harmony_reflect_1.6.1.tgz";
-      path = fetchurl {
-        name = "harmony_reflect___harmony_reflect_1.6.1.tgz";
-        url  = "https://registry.yarnpkg.com/harmony-reflect/-/harmony-reflect-1.6.1.tgz";
-        sha1 = "c108d4f2bb451efef7a37861fdbdae72c9bdefa9";
-      };
-    }
-    {
-      name = "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_1.0.0.tgz";
-      path = fetchurl {
-        name = "has_flag___has_flag_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz";
-        sha1 = "9d9e793165ce017a00f00418c43f942a7b1d11fa";
-      };
-    }
-    {
-      name = "has_flag___has_flag_3.0.0.tgz";
-      path = fetchurl {
-        name = "has_flag___has_flag_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz";
-        sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd";
-      };
-    }
-    {
-      name = "has_flag___has_flag_4.0.0.tgz";
-      path = fetchurl {
-        name = "has_flag___has_flag_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz";
-        sha1 = "944771fd9c81c81265c4d6941860da06bb59479b";
-      };
-    }
-    {
-      name = "has_symbols___has_symbols_1.0.0.tgz";
-      path = fetchurl {
-        name = "has_symbols___has_symbols_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz";
-        sha1 = "ba1a8f1af2a0fc39650f5c850367704122063b44";
-      };
-    }
-    {
-      name = "has_symbols___has_symbols_1.0.1.tgz";
-      path = fetchurl {
-        name = "has_symbols___has_symbols_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz";
-        sha1 = "9f5214758a44196c406d9bd76cebf81ec2dd31e8";
-      };
-    }
-    {
-      name = "has_value___has_value_0.3.1.tgz";
-      path = fetchurl {
-        name = "has_value___has_value_0.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz";
-        sha1 = "7b1f58bada62ca827ec0a2078025654845995e1f";
-      };
-    }
-    {
-      name = "has_value___has_value_1.0.0.tgz";
-      path = fetchurl {
-        name = "has_value___has_value_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz";
-        sha1 = "18b281da585b1c5c51def24c930ed29a0be6b177";
-      };
-    }
-    {
-      name = "has_values___has_values_0.1.4.tgz";
-      path = fetchurl {
-        name = "has_values___has_values_0.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz";
-        sha1 = "6d61de95d91dfca9b9a02089ad384bff8f62b771";
-      };
-    }
-    {
-      name = "has_values___has_values_1.0.0.tgz";
-      path = fetchurl {
-        name = "has_values___has_values_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz";
-        sha1 = "95b0b63fec2146619a6fe57fe75628d5a39efe4f";
-      };
-    }
-    {
-      name = "has___has_1.0.3.tgz";
-      path = fetchurl {
-        name = "has___has_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz";
-        sha1 = "722d7cbfc1f6aa8241f16dd814e011e1f41e8796";
-      };
-    }
-    {
-      name = "hash_base___hash_base_3.0.4.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.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 = "he___he_1.1.1.tgz";
-      path = fetchurl {
-        name = "he___he_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz";
-        sha1 = "93410fd21b009735151f8868c2f271f3427e23fd";
-      };
-    }
-    {
-      name = "he___he_1.2.0.tgz";
-      path = fetchurl {
-        name = "he___he_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz";
-        sha1 = "84ae65fa7eafb165fddb61566ae14baf05664f0f";
-      };
-    }
-    {
-      name = "hex_color_regex___hex_color_regex_1.1.0.tgz";
-      path = fetchurl {
-        name = "hex_color_regex___hex_color_regex_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz";
-        sha1 = "4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e";
-      };
-    }
-    {
-      name = "history___history_4.10.1.tgz";
-      path = fetchurl {
-        name = "history___history_4.10.1.tgz";
-        url  = "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz";
-        sha1 = "33371a65e3a83b267434e2b3f3b1b4c58aad4cf3";
-      };
-    }
-    {
-      name = "hmac_drbg___hmac_drbg_1.0.1.tgz";
-      path = fetchurl {
-        name = "hmac_drbg___hmac_drbg_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz";
-        sha1 = "d2745701025a6c775a6c545793ed502fc0c649a1";
-      };
-    }
-    {
-      name = "hoist_non_react_statics___hoist_non_react_statics_1.2.0.tgz";
-      path = fetchurl {
-        name = "hoist_non_react_statics___hoist_non_react_statics_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz";
-        sha1 = "aa448cf0986d55cc40773b17174b7dd066cb7cfb";
-      };
-    }
-    {
-      name = "hoist_non_react_statics___hoist_non_react_statics_3.3.2.tgz";
-      path = fetchurl {
-        name = "hoist_non_react_statics___hoist_non_react_statics_3.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz";
-        sha1 = "ece0acaf71d62c2969c2ec59feff42a4b1a85b45";
-      };
-    }
-    {
-      name = "hoist_non_react_statics___hoist_non_react_statics_3.3.1.tgz";
-      path = fetchurl {
-        name = "hoist_non_react_statics___hoist_non_react_statics_3.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz";
-        sha1 = "101685d3aff3b23ea213163f6e8e12f4f111e19f";
-      };
-    }
-    {
-      name = "homedir_polyfill___homedir_polyfill_1.0.3.tgz";
-      path = fetchurl {
-        name = "homedir_polyfill___homedir_polyfill_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz";
-        sha1 = "743298cef4e5af3e194161fbadcc2151d3a058e8";
-      };
-    }
-    {
-      name = "honeybadger_js___honeybadger_js_1.0.2.tgz";
-      path = fetchurl {
-        name = "honeybadger_js___honeybadger_js_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/honeybadger-js/-/honeybadger-js-1.0.2.tgz";
-        sha1 = "f5abb30c4d036773fe9b2c8c1b77dd855b158dab";
-      };
-    }
-    {
-      name = "hoopy___hoopy_0.1.4.tgz";
-      path = fetchurl {
-        name = "hoopy___hoopy_0.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz";
-        sha1 = "609207d661100033a9a9402ad3dea677381c1b1d";
-      };
-    }
-    {
-      name = "hosted_git_info___hosted_git_info_2.7.1.tgz";
-      path = fetchurl {
-        name = "hosted_git_info___hosted_git_info_2.7.1.tgz";
-        url  = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz";
-        sha1 = "97f236977bd6e125408930ff6de3eec6281ec047";
-      };
-    }
-    {
-      name = "hpack.js___hpack.js_2.1.6.tgz";
-      path = fetchurl {
-        name = "hpack.js___hpack.js_2.1.6.tgz";
-        url  = "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz";
-        sha1 = "87774c0949e513f42e84575b3c45681fade2a0b2";
-      };
-    }
-    {
-      name = "hsl_regex___hsl_regex_1.0.0.tgz";
-      path = fetchurl {
-        name = "hsl_regex___hsl_regex_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz";
-        sha1 = "d49330c789ed819e276a4c0d272dffa30b18fe6e";
-      };
-    }
-    {
-      name = "hsla_regex___hsla_regex_1.0.0.tgz";
-      path = fetchurl {
-        name = "hsla_regex___hsla_regex_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz";
-        sha1 = "c1ce7a3168c8c6614033a4b5f7877f3b225f9c38";
-      };
-    }
-    {
-      name = "html_comment_regex___html_comment_regex_1.1.2.tgz";
-      path = fetchurl {
-        name = "html_comment_regex___html_comment_regex_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz";
-        sha1 = "97d4688aeb5c81886a364faa0cad1dda14d433a7";
-      };
-    }
-    {
-      name = "html_encoding_sniffer___html_encoding_sniffer_1.0.2.tgz";
-      path = fetchurl {
-        name = "html_encoding_sniffer___html_encoding_sniffer_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz";
-        sha1 = "e70d84b94da53aa375e11fe3a351be6642ca46f8";
-      };
-    }
-    {
-      name = "html_entities___html_entities_1.2.1.tgz";
-      path = fetchurl {
-        name = "html_entities___html_entities_1.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz";
-        sha1 = "0df29351f0721163515dfb9e5543e5f6eed5162f";
-      };
-    }
-    {
-      name = "html_minifier___html_minifier_3.5.21.tgz";
-      path = fetchurl {
-        name = "html_minifier___html_minifier_3.5.21.tgz";
-        url  = "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.21.tgz";
-        sha1 = "d0040e054730e354db008463593194015212d20c";
-      };
-    }
-    {
-      name = "html_minify___html_minify_0.3.2.tgz";
-      path = fetchurl {
-        name = "html_minify___html_minify_0.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/html-minify/-/html-minify-0.3.2.tgz";
-        sha1 = "32604b23b267ea2e67997e0814cdcd4250139df0";
-      };
-    }
-    {
-      name = "html_to_react___html_to_react_1.3.4.tgz";
-      path = fetchurl {
-        name = "html_to_react___html_to_react_1.3.4.tgz";
-        url  = "https://registry.yarnpkg.com/html-to-react/-/html-to-react-1.3.4.tgz";
-        sha1 = "647b3a54fdec73a6461864b129fb0d1eec7d4589";
-      };
-    }
-    {
-      name = "html_webpack_plugin___html_webpack_plugin_3.2.0.tgz";
-      path = fetchurl {
-        name = "html_webpack_plugin___html_webpack_plugin_3.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz";
-        sha1 = "b01abbd723acaaa7b37b6af4492ebda03d9dd37b";
-      };
-    }
-    {
-      name = "htmlparser2___htmlparser2_3.10.0.tgz";
-      path = fetchurl {
-        name = "htmlparser2___htmlparser2_3.10.0.tgz";
-        url  = "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.0.tgz";
-        sha1 = "5f5e422dcf6119c0d983ed36260ce9ded0bee464";
-      };
-    }
-    {
-      name = "htmlparser2___htmlparser2_3.10.1.tgz";
-      path = fetchurl {
-        name = "htmlparser2___htmlparser2_3.10.1.tgz";
-        url  = "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz";
-        sha1 = "bd679dc3f59897b6a34bb10749c855bb53a9392f";
-      };
-    }
-    {
-      name = "htmlparser2___htmlparser2_3.9.2.tgz";
-      path = fetchurl {
-        name = "htmlparser2___htmlparser2_3.9.2.tgz";
-        url  = "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.9.2.tgz";
-        sha1 = "1bdf87acca0f3f9e53fa4fcceb0f4b4cbb00b338";
-      };
-    }
-    {
-      name = "http_deceiver___http_deceiver_1.2.7.tgz";
-      path = fetchurl {
-        name = "http_deceiver___http_deceiver_1.2.7.tgz";
-        url  = "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz";
-        sha1 = "fa7168944ab9a519d337cb0bec7284dc3e723d87";
-      };
-    }
-    {
-      name = "http_errors___http_errors_1.6.2.tgz";
-      path = fetchurl {
-        name = "http_errors___http_errors_1.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz";
-        sha1 = "0a002cc85707192a7e7946ceedc11155f60ec736";
-      };
-    }
-    {
-      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.6.3.tgz";
-      path = fetchurl {
-        name = "http_errors___http_errors_1.6.3.tgz";
-        url  = "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz";
-        sha1 = "8b55680bb4be283a0b5bf4ea2e38580be1d9320d";
-      };
-    }
-    {
-      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_parser_js___http_parser_js_0.4.10.tgz";
-      path = fetchurl {
-        name = "http_parser_js___http_parser_js_0.4.10.tgz";
-        url  = "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.10.tgz";
-        sha1 = "92c9c1374c35085f75db359ec56cc257cbb93fa4";
-      };
-    }
-    {
-      name = "http_proxy_middleware___http_proxy_middleware_0.19.1.tgz";
-      path = fetchurl {
-        name = "http_proxy_middleware___http_proxy_middleware_0.19.1.tgz";
-        url  = "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz";
-        sha1 = "183c7dc4aa1479150306498c210cdaf96080a43a";
-      };
-    }
-    {
-      name = "http_proxy_middleware___http_proxy_middleware_0.18.0.tgz";
-      path = fetchurl {
-        name = "http_proxy_middleware___http_proxy_middleware_0.18.0.tgz";
-        url  = "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz";
-        sha1 = "0987e6bb5a5606e5a69168d8f967a87f15dd8aab";
-      };
-    }
-    {
-      name = "http_proxy___http_proxy_1.17.0.tgz";
-      path = fetchurl {
-        name = "http_proxy___http_proxy_1.17.0.tgz";
-        url  = "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.17.0.tgz";
-        sha1 = "7ad38494658f84605e2f6db4436df410f4e5be9a";
-      };
-    }
-    {
-      name = "http_proxy___http_proxy_1.18.0.tgz";
-      path = fetchurl {
-        name = "http_proxy___http_proxy_1.18.0.tgz";
-        url  = "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.0.tgz";
-        sha1 = "dbe55f63e75a347db7f3d99974f2692a314a6a3a";
-      };
-    }
-    {
-      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_browserify___https_browserify_1.0.0.tgz";
-      path = fetchurl {
-        name = "https_browserify___https_browserify_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz";
-        sha1 = "ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73";
-      };
-    }
-    {
-      name = "humps___humps_2.0.1.tgz";
-      path = fetchurl {
-        name = "humps___humps_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/humps/-/humps-2.0.1.tgz";
-        sha1 = "dd02ea6081bd0568dc5d073184463957ba9ef9aa";
-      };
-    }
-    {
-      name = "iconv_lite___iconv_lite_0.4.19.tgz";
-      path = fetchurl {
-        name = "iconv_lite___iconv_lite_0.4.19.tgz";
-        url  = "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz";
-        sha1 = "f7468f60135f5e5dad3399c0a81be9a1603a082b";
-      };
-    }
-    {
-      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 = "icss_utils___icss_utils_4.1.1.tgz";
-      path = fetchurl {
-        name = "icss_utils___icss_utils_4.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz";
-        sha1 = "21170b53789ee27447c2f47dd683081403f9a467";
-      };
-    }
-    {
-      name = "identity_obj_proxy___identity_obj_proxy_3.0.0.tgz";
-      path = fetchurl {
-        name = "identity_obj_proxy___identity_obj_proxy_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz";
-        sha1 = "94d2bda96084453ef36fbc5aaec37e0f79f1fc14";
-      };
-    }
-    {
-      name = "idtoken_verifier___idtoken_verifier_2.0.2.tgz";
-      path = fetchurl {
-        name = "idtoken_verifier___idtoken_verifier_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/idtoken-verifier/-/idtoken-verifier-2.0.2.tgz";
-        sha1 = "7fd1c64c435abf07e92f137e7ac538a758fdc399";
-      };
-    }
-    {
-      name = "ieee754___ieee754_1.1.13.tgz";
-      path = fetchurl {
-        name = "ieee754___ieee754_1.1.13.tgz";
-        url  = "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz";
-        sha1 = "ec168558e95aa181fd87d37f55c32bbcb6708b84";
-      };
-    }
-    {
-      name = "iferr___iferr_0.1.5.tgz";
-      path = fetchurl {
-        name = "iferr___iferr_0.1.5.tgz";
-        url  = "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz";
-        sha1 = "c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501";
-      };
-    }
-    {
-      name = "ignore___ignore_4.0.6.tgz";
-      path = fetchurl {
-        name = "ignore___ignore_4.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz";
-        sha1 = "750e3db5862087b4737ebac8207ffd1ef27b25fc";
-      };
-    }
-    {
-      name = "immer___immer_1.9.3.tgz";
-      path = fetchurl {
-        name = "immer___immer_1.9.3.tgz";
-        url  = "https://registry.yarnpkg.com/immer/-/immer-1.9.3.tgz";
-        sha1 = "e88f8cbea730d2cde0f5e7e763000a8608bccdae";
-      };
-    }
-    {
-      name = "immutable___immutable_3.8.2.tgz";
-      path = fetchurl {
-        name = "immutable___immutable_3.8.2.tgz";
-        url  = "https://registry.yarnpkg.com/immutable/-/immutable-3.8.2.tgz";
-        sha1 = "c2439951455bb39913daf281376f1530e104adf3";
-      };
-    }
-    {
-      name = "import_fresh___import_fresh_2.0.0.tgz";
-      path = fetchurl {
-        name = "import_fresh___import_fresh_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz";
-        sha1 = "d81355c15612d386c61f9ddd3922d4304822a546";
-      };
-    }
-    {
-      name = "import_fresh___import_fresh_3.0.0.tgz";
-      path = fetchurl {
-        name = "import_fresh___import_fresh_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.0.0.tgz";
-        sha1 = "a3d897f420cab0e671236897f75bc14b4885c390";
-      };
-    }
-    {
-      name = "import_local___import_local_2.0.0.tgz";
-      path = fetchurl {
-        name = "import_local___import_local_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz";
-        sha1 = "55070be38a5993cf18ef6db7e961f5bee5c5a09d";
-      };
-    }
-    {
-      name = "imurmurhash___imurmurhash_0.1.4.tgz";
-      path = fetchurl {
-        name = "imurmurhash___imurmurhash_0.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz";
-        sha1 = "9218b9b2b928a238b13dc4fb6b6d576f231453ea";
-      };
-    }
-    {
-      name = "indent_string___indent_string_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 = "indexes_of___indexes_of_1.0.1.tgz";
-      path = fetchurl {
-        name = "indexes_of___indexes_of_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz";
-        sha1 = "f30f716c8e2bd346c7b67d3df3915566a7c05607";
-      };
-    }
-    {
-      name = "infer_owner___infer_owner_1.0.4.tgz";
-      path = fetchurl {
-        name = "infer_owner___infer_owner_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz";
-        sha1 = "c4cefcaa8e51051c2a40ba2ce8a3d27295af9467";
-      };
-    }
-    {
-      name = "inflight___inflight_1.0.6.tgz";
-      path = fetchurl {
-        name = "inflight___inflight_1.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz";
-        sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
-      };
-    }
-    {
-      name = "inherits___inherits_2.0.4.tgz";
-      path = fetchurl {
-        name = "inherits___inherits_2.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz";
-        sha1 = "0fa2c64f932917c3433a0ded55363aae37416b7c";
-      };
-    }
-    {
-      name = "inherits___inherits_2.0.1.tgz";
-      path = fetchurl {
-        name = "inherits___inherits_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz";
-        sha1 = "b17d08d326b4423e568eff719f91b0b1cbdf69f1";
-      };
-    }
-    {
-      name = "inherits___inherits_2.0.3.tgz";
-      path = fetchurl {
-        name = "inherits___inherits_2.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz";
-        sha1 = "633c2c83e3da42a502f52466022480f4208261de";
-      };
-    }
-    {
-      name = "ini___ini_1.3.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 = "inquirer___inquirer_7.0.0.tgz";
-      path = fetchurl {
-        name = "inquirer___inquirer_7.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/inquirer/-/inquirer-7.0.0.tgz";
-        sha1 = "9e2b032dde77da1db5db804758b8fea3a970519a";
-      };
-    }
-    {
-      name = "internal_ip___internal_ip_4.3.0.tgz";
-      path = fetchurl {
-        name = "internal_ip___internal_ip_4.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz";
-        sha1 = "845452baad9d2ca3b69c635a137acb9a0dad0907";
-      };
-    }
-    {
-      name = "interpret___interpret_1.2.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 = "intersection_observer___intersection_observer_0.7.0.tgz";
-      path = fetchurl {
-        name = "intersection_observer___intersection_observer_0.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/intersection-observer/-/intersection-observer-0.7.0.tgz";
-        sha1 = "ee16bee978db53516ead2f0a8154b09b400bbdc9";
-      };
-    }
-    {
-      name = "invariant___invariant_2.2.4.tgz";
-      path = fetchurl {
-        name = "invariant___invariant_2.2.4.tgz";
-        url  = "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz";
-        sha1 = "610f3c92c9359ce1db616e538008d23ff35158e6";
-      };
-    }
-    {
-      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 = "ip_regex___ip_regex_2.1.0.tgz";
-      path = fetchurl {
-        name = "ip_regex___ip_regex_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz";
-        sha1 = "fa78bf5d2e6913c911ce9f819ee5146bb6d844e9";
-      };
-    }
-    {
-      name = "ip___ip_1.1.5.tgz";
-      path = fetchurl {
-        name = "ip___ip_1.1.5.tgz";
-        url  = "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz";
-        sha1 = "bdded70114290828c0a039e72ef25f5aaec4354a";
-      };
-    }
-    {
-      name = "ipaddr.js___ipaddr.js_1.8.0.tgz";
-      path = fetchurl {
-        name = "ipaddr.js___ipaddr.js_1.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.0.tgz";
-        sha1 = "eaa33d6ddd7ace8f7f6fe0c9ca0440e706738b1e";
-      };
-    }
-    {
-      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_absolute_url___is_absolute_url_2.1.0.tgz";
-      path = fetchurl {
-        name = "is_absolute_url___is_absolute_url_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz";
-        sha1 = "50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6";
-      };
-    }
-    {
-      name = "is_absolute_url___is_absolute_url_3.0.3.tgz";
-      path = fetchurl {
-        name = "is_absolute_url___is_absolute_url_3.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz";
-        sha1 = "96c6a22b6a23929b11ea0afb1836c36ad4a5d698";
-      };
-    }
-    {
-      name = "is_accessor_descriptor___is_accessor_descriptor_0.1.6.tgz";
-      path = fetchurl {
-        name = "is_accessor_descriptor___is_accessor_descriptor_0.1.6.tgz";
-        url  = "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz";
-        sha1 = "a9e12cb3ae8d876727eeef3843f8a0897b5c98d6";
-      };
-    }
-    {
-      name = "is_accessor_descriptor___is_accessor_descriptor_1.0.0.tgz";
-      path = fetchurl {
-        name = "is_accessor_descriptor___is_accessor_descriptor_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz";
-        sha1 = "169c2f6d3df1f992618072365c9b0ea1f6878656";
-      };
-    }
-    {
-      name = "is_alphabetical___is_alphabetical_1.0.2.tgz";
-      path = fetchurl {
-        name = "is_alphabetical___is_alphabetical_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.2.tgz";
-        sha1 = "1fa6e49213cb7885b75d15862fb3f3d96c884f41";
-      };
-    }
-    {
-      name = "is_alphanumerical___is_alphanumerical_1.0.2.tgz";
-      path = fetchurl {
-        name = "is_alphanumerical___is_alphanumerical_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.2.tgz";
-        sha1 = "1138e9ae5040158dc6ff76b820acd6b7a181fd40";
-      };
-    }
-    {
-      name = "is_arguments___is_arguments_1.0.4.tgz";
-      path = fetchurl {
-        name = "is_arguments___is_arguments_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz";
-        sha1 = "3faf966c7cba0ff437fb31f6250082fcf0448cf3";
-      };
-    }
-    {
-      name = "is_arrayish___is_arrayish_0.2.1.tgz";
-      path = fetchurl {
-        name = "is_arrayish___is_arrayish_0.2.1.tgz";
-        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_binary_path___is_binary_path_1.0.1.tgz";
-      path = fetchurl {
-        name = "is_binary_path___is_binary_path_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz";
-        sha1 = "75f16642b480f187a711c814161fd3a4a7655898";
-      };
-    }
-    {
-      name = "is_binary_path___is_binary_path_2.1.0.tgz";
-      path = fetchurl {
-        name = "is_binary_path___is_binary_path_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz";
-        sha1 = "ea1f7f3b80f064236e83470f86c09c254fb45b09";
-      };
-    }
-    {
-      name = "is_boolean_object___is_boolean_object_1.0.0.tgz";
-      path = fetchurl {
-        name = "is_boolean_object___is_boolean_object_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.0.0.tgz";
-        sha1 = "98f8b28030684219a95f375cfbd88ce3405dff93";
-      };
-    }
-    {
-      name = "is_buffer___is_buffer_1.1.6.tgz";
-      path = fetchurl {
-        name = "is_buffer___is_buffer_1.1.6.tgz";
-        url  = "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz";
-        sha1 = "efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be";
-      };
-    }
-    {
-      name = "is_buffer___is_buffer_2.0.3.tgz";
-      path = fetchurl {
-        name = "is_buffer___is_buffer_2.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.3.tgz";
-        sha1 = "4ecf3fcf749cbd1e472689e109ac66261a25e725";
-      };
-    }
-    {
-      name = "is_callable___is_callable_1.1.4.tgz";
-      path = fetchurl {
-        name = "is_callable___is_callable_1.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz";
-        sha1 = "1e1adf219e1eeb684d691f9d6a05ff0d30a24d75";
-      };
-    }
-    {
-      name = "is_callable___is_callable_1.1.5.tgz";
-      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_ci___is_ci_2.0.0.tgz";
-      path = fetchurl {
-        name = "is_ci___is_ci_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz";
-        sha1 = "6bc6334181810e04b5c22b3d589fdca55026404c";
-      };
-    }
-    {
-      name = "is_color_stop___is_color_stop_1.1.0.tgz";
-      path = fetchurl {
-        name = "is_color_stop___is_color_stop_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz";
-        sha1 = "cfff471aee4dd5c9e158598fbe12967b5cdad345";
-      };
-    }
-    {
-      name = "is_data_descriptor___is_data_descriptor_0.1.4.tgz";
-      path = fetchurl {
-        name = "is_data_descriptor___is_data_descriptor_0.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz";
-        sha1 = "0b5ee648388e2c860282e793f1856fec3f301b56";
-      };
-    }
-    {
-      name = "is_data_descriptor___is_data_descriptor_1.0.0.tgz";
-      path = fetchurl {
-        name = "is_data_descriptor___is_data_descriptor_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz";
-        sha1 = "d84876321d0e7add03990406abbbbd36ba9268c7";
-      };
-    }
-    {
-      name = "is_date_object___is_date_object_1.0.1.tgz";
-      path = fetchurl {
-        name = "is_date_object___is_date_object_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz";
-        sha1 = "9aa20eb6aeebbff77fbd33e74ca01b33581d3a16";
-      };
-    }
-    {
-      name = "is_decimal___is_decimal_1.0.2.tgz";
-      path = fetchurl {
-        name = "is_decimal___is_decimal_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.2.tgz";
-        sha1 = "894662d6a8709d307f3a276ca4339c8fa5dff0ff";
-      };
-    }
-    {
-      name = "is_descriptor___is_descriptor_0.1.6.tgz";
-      path = fetchurl {
-        name = "is_descriptor___is_descriptor_0.1.6.tgz";
-        url  = "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz";
-        sha1 = "366d8240dde487ca51823b1ab9f07a10a78251ca";
-      };
-    }
-    {
-      name = "is_descriptor___is_descriptor_1.0.2.tgz";
-      path = fetchurl {
-        name = "is_descriptor___is_descriptor_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz";
-        sha1 = "3b159746a66604b04f8c81524ba365c5f14d86ec";
-      };
-    }
-    {
-      name = "is_directory___is_directory_0.3.1.tgz";
-      path = fetchurl {
-        name = "is_directory___is_directory_0.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz";
-        sha1 = "61339b6f2475fc772fd9c9d83f5c8575dc154ae1";
-      };
-    }
-    {
-      name = "is_extendable___is_extendable_0.1.1.tgz";
-      path = fetchurl {
-        name = "is_extendable___is_extendable_0.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz";
-        sha1 = "62b110e289a471418e3ec36a617d472e301dfc89";
-      };
-    }
-    {
-      name = "is_extendable___is_extendable_1.0.1.tgz";
-      path = fetchurl {
-        name = "is_extendable___is_extendable_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz";
-        sha1 = "a7470f9e426733d81bd81e1155264e3a3507cab4";
-      };
-    }
-    {
-      name = "is_extglob___is_extglob_2.1.1.tgz";
-      path = fetchurl {
-        name = "is_extglob___is_extglob_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz";
-        sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2";
-      };
-    }
-    {
-      name = "is_fullwidth_code_point___is_fullwidth_code_point_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_generator_fn___is_generator_fn_2.1.0.tgz";
-      path = fetchurl {
-        name = "is_generator_fn___is_generator_fn_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz";
-        sha1 = "7d140adc389aaf3011a8f2a2a4cfa6faadffb118";
-      };
-    }
-    {
-      name = "is_glob___is_glob_3.1.0.tgz";
-      path = fetchurl {
-        name = "is_glob___is_glob_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz";
-        sha1 = "7ba5ae24217804ac70707b96922567486cc3e84a";
-      };
-    }
-    {
-      name = "is_glob___is_glob_4.0.1.tgz";
-      path = fetchurl {
-        name = "is_glob___is_glob_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz";
-        sha1 = "7567dbe9f2f5e2467bc77ab83c4a29482407a5dc";
-      };
-    }
-    {
-      name = "is_hexadecimal___is_hexadecimal_1.0.2.tgz";
-      path = fetchurl {
-        name = "is_hexadecimal___is_hexadecimal_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.2.tgz";
-        sha1 = "b6e710d7d07bb66b98cb8cece5c9b4921deeb835";
-      };
-    }
-    {
-      name = "is_installed_globally___is_installed_globally_0.3.2.tgz";
-      path = fetchurl {
-        name = "is_installed_globally___is_installed_globally_0.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz";
-        sha1 = "fd3efa79ee670d1187233182d5b0a1dd00313141";
-      };
-    }
-    {
-      name = "is_number_object___is_number_object_1.0.3.tgz";
-      path = fetchurl {
-        name = "is_number_object___is_number_object_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.3.tgz";
-        sha1 = "f265ab89a9f445034ef6aff15a8f00b00f551799";
-      };
-    }
-    {
-      name = "is_number___is_number_3.0.0.tgz";
-      path = fetchurl {
-        name = "is_number___is_number_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz";
-        sha1 = "24fd6201a4782cf50561c810276afc7d12d71195";
-      };
-    }
-    {
-      name = "is_number___is_number_7.0.0.tgz";
-      path = fetchurl {
-        name = "is_number___is_number_7.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz";
-        sha1 = "7535345b896734d5f80c4d06c50955527a14f12b";
-      };
-    }
-    {
-      name = "is_obj___is_obj_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_in_cwd___is_path_in_cwd_2.1.0.tgz";
-      path = fetchurl {
-        name = "is_path_in_cwd___is_path_in_cwd_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz";
-        sha1 = "bfe2dca26c69f397265a4009963602935a053acb";
-      };
-    }
-    {
-      name = "is_path_inside___is_path_inside_2.1.0.tgz";
-      path = fetchurl {
-        name = "is_path_inside___is_path_inside_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz";
-        sha1 = "7c9810587d659a40d27bcdb4d5616eab059494b2";
-      };
-    }
-    {
-      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_plain_obj___is_plain_obj_1.1.0.tgz";
-      path = fetchurl {
-        name = "is_plain_obj___is_plain_obj_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz";
-        sha1 = "71a50c8429dfca773c92a390a4a03b39fcd51d3e";
-      };
-    }
-    {
-      name = "is_plain_object___is_plain_object_2.0.4.tgz";
-      path = fetchurl {
-        name = "is_plain_object___is_plain_object_2.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz";
-        sha1 = "2c163b3fafb1b606d9d17928f05c2a1c38e07677";
-      };
-    }
-    {
-      name = "is_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_regex___is_regex_1.0.4.tgz";
-      path = fetchurl {
-        name = "is_regex___is_regex_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz";
-        sha1 = "5517489b547091b0930e095654ced25ee97e9491";
-      };
-    }
-    {
-      name = "is_regex___is_regex_1.0.5.tgz";
-      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_resolvable___is_resolvable_1.1.0.tgz";
-      path = fetchurl {
-        name = "is_resolvable___is_resolvable_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz";
-        sha1 = "fb18f87ce1feb925169c9a407c19318a3206ed88";
-      };
-    }
-    {
-      name = "is_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_string___is_string_1.0.4.tgz";
-      path = fetchurl {
-        name = "is_string___is_string_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/is-string/-/is-string-1.0.4.tgz";
-        sha1 = "cc3a9b69857d621e963725a24caeec873b826e64";
-      };
-    }
-    {
-      name = "is_subset___is_subset_0.1.1.tgz";
-      path = fetchurl {
-        name = "is_subset___is_subset_0.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz";
-        sha1 = "8a59117d932de1de00f245fcdd39ce43f1e939a6";
-      };
-    }
-    {
-      name = "is_svg___is_svg_3.0.0.tgz";
-      path = fetchurl {
-        name = "is_svg___is_svg_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz";
-        sha1 = "9321dbd29c212e5ca99c4fa9794c714bcafa2f75";
-      };
-    }
-    {
-      name = "is_symbol___is_symbol_1.0.2.tgz";
-      path = fetchurl {
-        name = "is_symbol___is_symbol_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz";
-        sha1 = "a055f6ae57192caee329e7a860118b497a950f38";
-      };
-    }
-    {
-      name = "is_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_whitespace_character___is_whitespace_character_1.0.2.tgz";
-      path = fetchurl {
-        name = "is_whitespace_character___is_whitespace_character_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.2.tgz";
-        sha1 = "ede53b4c6f6fb3874533751ec9280d01928d03ed";
-      };
-    }
-    {
-      name = "is_windows___is_windows_1.0.2.tgz";
-      path = fetchurl {
-        name = "is_windows___is_windows_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz";
-        sha1 = "d1850eb9791ecd18e6182ce12a30f396634bb19d";
-      };
-    }
-    {
-      name = "is_word_character___is_word_character_1.0.2.tgz";
-      path = fetchurl {
-        name = "is_word_character___is_word_character_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.2.tgz";
-        sha1 = "46a5dac3f2a1840898b91e576cd40d493f3ae553";
-      };
-    }
-    {
-      name = "is_wsl___is_wsl_1.1.0.tgz";
-      path = fetchurl {
-        name = "is_wsl___is_wsl_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz";
-        sha1 = "1f16e4aa22b04d1336b66188a66af3c600c3a66d";
-      };
-    }
-    {
-      name = "isarray___isarray_0.0.1.tgz";
-      path = fetchurl {
-        name = "isarray___isarray_0.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz";
-        sha1 = "8a18acfca9a8f4177e09abfc6038939b05d1eedf";
-      };
-    }
-    {
-      name = "isarray___isarray_1.0.0.tgz";
-      path = fetchurl {
-        name = "isarray___isarray_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz";
-        sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
-      };
-    }
-    {
-      name = "isexe___isexe_2.0.0.tgz";
-      path = fetchurl {
-        name = "isexe___isexe_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz";
-        sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10";
-      };
-    }
-    {
-      name = "isobject___isobject_2.1.0.tgz";
-      path = fetchurl {
-        name = "isobject___isobject_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz";
-        sha1 = "f065561096a3f1da2ef46272f815c840d87e0c89";
-      };
-    }
-    {
-      name = "isobject___isobject_3.0.1.tgz";
-      path = fetchurl {
-        name = "isobject___isobject_3.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz";
-        sha1 = "4e431e92b11a9731636aa1f9c8d1ccbcfdab78df";
-      };
-    }
-    {
-      name = "isomorphic_fetch___isomorphic_fetch_2.2.1.tgz";
-      path = fetchurl {
-        name = "isomorphic_fetch___isomorphic_fetch_2.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz";
-        sha1 = "611ae1acf14f5e81f729507472819fe9733558a9";
-      };
-    }
-    {
-      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_2.0.5.tgz";
-      path = fetchurl {
-        name = "istanbul_lib_coverage___istanbul_lib_coverage_2.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz";
-        sha1 = "675f0ab69503fad4b1d849f736baaca803344f49";
-      };
-    }
-    {
-      name = "istanbul_lib_instrument___istanbul_lib_instrument_3.3.0.tgz";
-      path = fetchurl {
-        name = "istanbul_lib_instrument___istanbul_lib_instrument_3.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz";
-        sha1 = "a5f63d91f0bbc0c3e479ef4c5de027335ec6d630";
-      };
-    }
-    {
-      name = "istanbul_lib_report___istanbul_lib_report_2.0.8.tgz";
-      path = fetchurl {
-        name = "istanbul_lib_report___istanbul_lib_report_2.0.8.tgz";
-        url  = "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz";
-        sha1 = "5a8113cd746d43c4889eba36ab10e7d50c9b4f33";
-      };
-    }
-    {
-      name = "istanbul_lib_source_maps___istanbul_lib_source_maps_3.0.6.tgz";
-      path = fetchurl {
-        name = "istanbul_lib_source_maps___istanbul_lib_source_maps_3.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz";
-        sha1 = "284997c48211752ec486253da97e3879defba8c8";
-      };
-    }
-    {
-      name = "istanbul_reports___istanbul_reports_2.2.6.tgz";
-      path = fetchurl {
-        name = "istanbul_reports___istanbul_reports_2.2.6.tgz";
-        url  = "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.6.tgz";
-        sha1 = "7b4f2660d82b29303a8fe6091f8ca4bf058da1af";
-      };
-    }
-    {
-      name = "jest_changed_files___jest_changed_files_24.8.0.tgz";
-      path = fetchurl {
-        name = "jest_changed_files___jest_changed_files_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.8.0.tgz";
-        sha1 = "7e7eb21cf687587a85e50f3d249d1327e15b157b";
-      };
-    }
-    {
-      name = "jest_cli___jest_cli_24.8.0.tgz";
-      path = fetchurl {
-        name = "jest_cli___jest_cli_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.8.0.tgz";
-        sha1 = "b075ac914492ed114fa338ade7362a301693e989";
-      };
-    }
-    {
-      name = "jest_config___jest_config_24.8.0.tgz";
-      path = fetchurl {
-        name = "jest_config___jest_config_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-config/-/jest-config-24.8.0.tgz";
-        sha1 = "77db3d265a6f726294687cbbccc36f8a76ee0f4f";
-      };
-    }
-    {
-      name = "jest_diff___jest_diff_24.8.0.tgz";
-      path = fetchurl {
-        name = "jest_diff___jest_diff_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.8.0.tgz";
-        sha1 = "146435e7d1e3ffdf293d53ff97e193f1d1546172";
-      };
-    }
-    {
-      name = "jest_docblock___jest_docblock_24.3.0.tgz";
-      path = fetchurl {
-        name = "jest_docblock___jest_docblock_24.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-24.3.0.tgz";
-        sha1 = "b9c32dac70f72e4464520d2ba4aec02ab14db5dd";
-      };
-    }
-    {
-      name = "jest_each___jest_each_24.8.0.tgz";
-      path = fetchurl {
-        name = "jest_each___jest_each_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-each/-/jest-each-24.8.0.tgz";
-        sha1 = "a05fd2bf94ddc0b1da66c6d13ec2457f35e52775";
-      };
-    }
-    {
-      name = "jest_environment_jsdom___jest_environment_jsdom_24.8.0.tgz";
-      path = fetchurl {
-        name = "jest_environment_jsdom___jest_environment_jsdom_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.8.0.tgz";
-        sha1 = "300f6949a146cabe1c9357ad9e9ecf9f43f38857";
-      };
-    }
-    {
-      name = "jest_environment_node___jest_environment_node_24.8.0.tgz";
-      path = fetchurl {
-        name = "jest_environment_node___jest_environment_node_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.8.0.tgz";
-        sha1 = "d3f726ba8bc53087a60e7a84ca08883a4c892231";
-      };
-    }
-    {
-      name = "jest_fetch_mock___jest_fetch_mock_3.0.3.tgz";
-      path = fetchurl {
-        name = "jest_fetch_mock___jest_fetch_mock_3.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/jest-fetch-mock/-/jest-fetch-mock-3.0.3.tgz";
-        sha1 = "31749c456ae27b8919d69824f1c2bd85fe0a1f3b";
-      };
-    }
-    {
-      name = "jest_get_type___jest_get_type_24.8.0.tgz";
-      path = fetchurl {
-        name = "jest_get_type___jest_get_type_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.8.0.tgz";
-        sha1 = "a7440de30b651f5a70ea3ed7ff073a32dfe646fc";
-      };
-    }
-    {
-      name = "jest_get_type___jest_get_type_24.9.0.tgz";
-      path = fetchurl {
-        name = "jest_get_type___jest_get_type_24.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.9.0.tgz";
-        sha1 = "1684a0c8a50f2e4901b6644ae861f579eed2ef0e";
-      };
-    }
-    {
-      name = "jest_haste_map___jest_haste_map_24.8.1.tgz";
-      path = fetchurl {
-        name = "jest_haste_map___jest_haste_map_24.8.1.tgz";
-        url  = "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.8.1.tgz";
-        sha1 = "f39cc1d2b1d907e014165b4bd5a957afcb992982";
-      };
-    }
-    {
-      name = "jest_jasmine2___jest_jasmine2_24.8.0.tgz";
-      path = fetchurl {
-        name = "jest_jasmine2___jest_jasmine2_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.8.0.tgz";
-        sha1 = "a9c7e14c83dd77d8b15e820549ce8987cc8cd898";
-      };
-    }
-    {
-      name = "jest_junit___jest_junit_10.0.0.tgz";
-      path = fetchurl {
-        name = "jest_junit___jest_junit_10.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-junit/-/jest-junit-10.0.0.tgz";
-        sha1 = "c94b91c24920a327c9d2a075e897b2dba4af494b";
-      };
-    }
-    {
-      name = "jest_leak_detector___jest_leak_detector_24.8.0.tgz";
-      path = fetchurl {
-        name = "jest_leak_detector___jest_leak_detector_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.8.0.tgz";
-        sha1 = "c0086384e1f650c2d8348095df769f29b48e6980";
-      };
-    }
-    {
-      name = "jest_matcher_utils___jest_matcher_utils_24.8.0.tgz";
-      path = fetchurl {
-        name = "jest_matcher_utils___jest_matcher_utils_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.8.0.tgz";
-        sha1 = "2bce42204c9af12bde46f83dc839efe8be832495";
-      };
-    }
-    {
-      name = "jest_message_util___jest_message_util_24.8.0.tgz";
-      path = fetchurl {
-        name = "jest_message_util___jest_message_util_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.8.0.tgz";
-        sha1 = "0d6891e72a4beacc0292b638685df42e28d6218b";
-      };
-    }
-    {
-      name = "jest_mock___jest_mock_24.8.0.tgz";
-      path = fetchurl {
-        name = "jest_mock___jest_mock_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.8.0.tgz";
-        sha1 = "2f9d14d37699e863f1febf4e4d5a33b7fdbbde56";
-      };
-    }
-    {
-      name = "jest_pnp_resolver___jest_pnp_resolver_1.2.1.tgz";
-      path = fetchurl {
-        name = "jest_pnp_resolver___jest_pnp_resolver_1.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz";
-        sha1 = "ecdae604c077a7fbc70defb6d517c3c1c898923a";
-      };
-    }
-    {
-      name = "jest_regex_util___jest_regex_util_24.3.0.tgz";
-      path = fetchurl {
-        name = "jest_regex_util___jest_regex_util_24.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.3.0.tgz";
-        sha1 = "d5a65f60be1ae3e310d5214a0307581995227b36";
-      };
-    }
-    {
-      name = "jest_resolve_dependencies___jest_resolve_dependencies_24.8.0.tgz";
-      path = fetchurl {
-        name = "jest_resolve_dependencies___jest_resolve_dependencies_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.8.0.tgz";
-        sha1 = "19eec3241f2045d3f990dba331d0d7526acff8e0";
-      };
-    }
-    {
-      name = "jest_resolve___jest_resolve_24.8.0.tgz";
-      path = fetchurl {
-        name = "jest_resolve___jest_resolve_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.8.0.tgz";
-        sha1 = "84b8e5408c1f6a11539793e2b5feb1b6e722439f";
-      };
-    }
-    {
-      name = "jest_runner___jest_runner_24.8.0.tgz";
-      path = fetchurl {
-        name = "jest_runner___jest_runner_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.8.0.tgz";
-        sha1 = "4f9ae07b767db27b740d7deffad0cf67ccb4c5bb";
-      };
-    }
-    {
-      name = "jest_runtime___jest_runtime_24.8.0.tgz";
-      path = fetchurl {
-        name = "jest_runtime___jest_runtime_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.8.0.tgz";
-        sha1 = "05f94d5b05c21f6dc54e427cd2e4980923350620";
-      };
-    }
-    {
-      name = "jest_serializer___jest_serializer_24.4.0.tgz";
-      path = fetchurl {
-        name = "jest_serializer___jest_serializer_24.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.4.0.tgz";
-        sha1 = "f70c5918c8ea9235ccb1276d232e459080588db3";
-      };
-    }
-    {
-      name = "jest_snapshot___jest_snapshot_24.8.0.tgz";
-      path = fetchurl {
-        name = "jest_snapshot___jest_snapshot_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.8.0.tgz";
-        sha1 = "3bec6a59da2ff7bc7d097a853fb67f9d415cb7c6";
-      };
-    }
-    {
-      name = "jest_util___jest_util_24.8.0.tgz";
-      path = fetchurl {
-        name = "jest_util___jest_util_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-util/-/jest-util-24.8.0.tgz";
-        sha1 = "41f0e945da11df44cc76d64ffb915d0716f46cd1";
-      };
-    }
-    {
-      name = "jest_validate___jest_validate_24.8.0.tgz";
-      path = fetchurl {
-        name = "jest_validate___jest_validate_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.8.0.tgz";
-        sha1 = "624c41533e6dfe356ffadc6e2423a35c2d3b4849";
-      };
-    }
-    {
-      name = "jest_validate___jest_validate_24.9.0.tgz";
-      path = fetchurl {
-        name = "jest_validate___jest_validate_24.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.9.0.tgz";
-        sha1 = "0775c55360d173cd854e40180756d4ff52def8ab";
-      };
-    }
-    {
-      name = "jest_watcher___jest_watcher_24.8.0.tgz";
-      path = fetchurl {
-        name = "jest_watcher___jest_watcher_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.8.0.tgz";
-        sha1 = "58d49915ceddd2de85e238f6213cef1c93715de4";
-      };
-    }
-    {
-      name = "jest_worker___jest_worker_24.6.0.tgz";
-      path = fetchurl {
-        name = "jest_worker___jest_worker_24.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.6.0.tgz";
-        sha1 = "7f81ceae34b7cde0c9827a6980c35b7cdc0161b3";
-      };
-    }
-    {
-      name = "jest_worker___jest_worker_24.9.0.tgz";
-      path = fetchurl {
-        name = "jest_worker___jest_worker_24.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz";
-        sha1 = "5dbfdb5b2d322e98567898238a9697bcce67b3e5";
-      };
-    }
-    {
-      name = "jest___jest_24.8.0.tgz";
-      path = fetchurl {
-        name = "jest___jest_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest/-/jest-24.8.0.tgz";
-        sha1 = "d5dff1984d0d1002196e9b7f12f75af1b2809081";
-      };
-    }
-    {
-      name = "js_base64___js_base64_2.4.9.tgz";
-      path = fetchurl {
-        name = "js_base64___js_base64_2.4.9.tgz";
-        url  = "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.9.tgz";
-        sha1 = "748911fb04f48a60c4771b375cac45a80df11c03";
-      };
-    }
-    {
-      name = "js_cookie___js_cookie_2.2.1.tgz";
-      path = fetchurl {
-        name = "js_cookie___js_cookie_2.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/js-cookie/-/js-cookie-2.2.1.tgz";
-        sha1 = "69e106dc5d5806894562902aa5baec3744e9b2b8";
-      };
-    }
-    {
-      name = "js_levenshtein___js_levenshtein_1.1.6.tgz";
-      path = fetchurl {
-        name = "js_levenshtein___js_levenshtein_1.1.6.tgz";
-        url  = "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz";
-        sha1 = "c6cee58eb3550372df8deb85fad5ce66ce01d59d";
-      };
-    }
-    {
-      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_tokens___js_tokens_3.0.2.tgz";
-      path = fetchurl {
-        name = "js_tokens___js_tokens_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz";
-        sha1 = "9866df395102130e38f7f996bceb65443209c25b";
-      };
-    }
-    {
-      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_1.1.0.tgz";
-      path = fetchurl {
-        name = "jsbn___jsbn_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz";
-        sha1 = "b01307cb29b618a1ed26ec79e911f803c4da0040";
-      };
-    }
-    {
-      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 = "jsdom___jsdom_11.12.0.tgz";
-      path = fetchurl {
-        name = "jsdom___jsdom_11.12.0.tgz";
-        url  = "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz";
-        sha1 = "1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8";
-      };
-    }
-    {
-      name = "jsdom___jsdom_9.12.0.tgz";
-      path = fetchurl {
-        name = "jsdom___jsdom_9.12.0.tgz";
-        url  = "https://registry.yarnpkg.com/jsdom/-/jsdom-9.12.0.tgz";
-        sha1 = "e8c546fffcb06c00d4833ca84410fed7f8a097d4";
-      };
-    }
-    {
-      name = "jsesc___jsesc_2.5.2.tgz";
-      path = fetchurl {
-        name = "jsesc___jsesc_2.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz";
-        sha1 = "80564d2e483dacf6e8ef209650a67df3f0c283a4";
-      };
-    }
-    {
-      name = "jsesc___jsesc_0.5.0.tgz";
-      path = fetchurl {
-        name = "jsesc___jsesc_0.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz";
-        sha1 = "e7dee66e35d6fc16f710fe91d5cf69f70f08911d";
-      };
-    }
-    {
-      name = "json_parse_better_errors___json_parse_better_errors_1.0.2.tgz";
-      path = fetchurl {
-        name = "json_parse_better_errors___json_parse_better_errors_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz";
-        sha1 = "bb867cfb3450e69107c131d1c514bab3dc8bcaa9";
-      };
-    }
-    {
-      name = "json_schema_ref_parser___json_schema_ref_parser_7.1.0.tgz";
-      path = fetchurl {
-        name = "json_schema_ref_parser___json_schema_ref_parser_7.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/json-schema-ref-parser/-/json-schema-ref-parser-7.1.0.tgz";
-        sha1 = "987582b19fa06a37db4797d4e825879a7aea127c";
-      };
-    }
-    {
-      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_stable_stringify_without_jsonify___json_stable_stringify_without_jsonify_1.0.1.tgz";
-      path = fetchurl {
-        name = "json_stable_stringify_without_jsonify___json_stable_stringify_without_jsonify_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz";
-        sha1 = "9db7b59496ad3f3cfef30a75142d2d930ad72651";
-      };
-    }
-    {
-      name = "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 = "json3___json3_3.3.3.tgz";
-      path = fetchurl {
-        name = "json3___json3_3.3.3.tgz";
-        url  = "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz";
-        sha1 = "7fc10e375fc5ae42c4705a5cc0aa6f62be305b81";
-      };
-    }
-    {
-      name = "json5___json5_2.1.0.tgz";
-      path = fetchurl {
-        name = "json5___json5_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz";
-        sha1 = "e7a0c62c48285c628d20a10b85c89bb807c32850";
-      };
-    }
-    {
-      name = "json5___json5_0.5.1.tgz";
-      path = fetchurl {
-        name = "json5___json5_0.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz";
-        sha1 = "1eade7acc012034ad84e2396767ead9fa5495821";
-      };
-    }
-    {
-      name = "json5___json5_1.0.1.tgz";
-      path = fetchurl {
-        name = "json5___json5_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz";
-        sha1 = "779fb0018604fa854eacbf6252180d83543e3dbe";
-      };
-    }
-    {
-      name = "json5___json5_2.1.3.tgz";
-      path = fetchurl {
-        name = "json5___json5_2.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz";
-        sha1 = "c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43";
-      };
-    }
-    {
-      name = "jsonfile___jsonfile_4.0.0.tgz";
-      path = fetchurl {
-        name = "jsonfile___jsonfile_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz";
-        sha1 = "8771aae0799b64076b76640fca058f9c10e33ecb";
-      };
-    }
-    {
-      name = "jsonlint_mod___jsonlint_mod_1.7.5.tgz";
-      path = fetchurl {
-        name = "jsonlint_mod___jsonlint_mod_1.7.5.tgz";
-        url  = "https://registry.yarnpkg.com/jsonlint-mod/-/jsonlint-mod-1.7.5.tgz";
-        sha1 = "678d2b600b9d350ec3448373d6f71dcbf09a0e3d";
-      };
-    }
-    {
-      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 = "jsx_ast_utils___jsx_ast_utils_2.2.3.tgz";
-      path = fetchurl {
-        name = "jsx_ast_utils___jsx_ast_utils_2.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.2.3.tgz";
-        sha1 = "8a9364e402448a3ce7f14d357738310d9248054f";
-      };
-    }
-    {
-      name = "junit_viewer___junit_viewer_4.11.1.tgz";
-      path = fetchurl {
-        name = "junit_viewer___junit_viewer_4.11.1.tgz";
-        url  = "https://registry.yarnpkg.com/junit-viewer/-/junit-viewer-4.11.1.tgz";
-        sha1 = "31f712789a92a815605fb12bc2be9f6b377c34f7";
-      };
-    }
-    {
-      name = "killable___killable_1.0.1.tgz";
-      path = fetchurl {
-        name = "killable___killable_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz";
-        sha1 = "4c8ce441187a061c7474fb87ca08e2a638194892";
-      };
-    }
-    {
-      name = "kind_of___kind_of_3.2.2.tgz";
-      path = fetchurl {
-        name = "kind_of___kind_of_3.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz";
-        sha1 = "31ea21a734bab9bbb0f32466d893aea51e4a3c64";
-      };
-    }
-    {
-      name = "kind_of___kind_of_4.0.0.tgz";
-      path = fetchurl {
-        name = "kind_of___kind_of_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz";
-        sha1 = "20813df3d712928b207378691a45066fae72dd57";
-      };
-    }
-    {
-      name = "kind_of___kind_of_5.1.0.tgz";
-      path = fetchurl {
-        name = "kind_of___kind_of_5.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz";
-        sha1 = "729c91e2d857b7a419a1f9aa65685c4c33f5845d";
-      };
-    }
-    {
-      name = "kind_of___kind_of_6.0.3.tgz";
-      path = fetchurl {
-        name = "kind_of___kind_of_6.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz";
-        sha1 = "07c05034a6c349fa06e24fa35aa76db4580ce4dd";
-      };
-    }
-    {
-      name = "kleur___kleur_3.0.3.tgz";
-      path = fetchurl {
-        name = "kleur___kleur_3.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz";
-        sha1 = "a79c9ecc86ee1ce3fa6206d1216c501f147fc07e";
-      };
-    }
-    {
-      name = "last_call_webpack_plugin___last_call_webpack_plugin_3.0.0.tgz";
-      path = fetchurl {
-        name = "last_call_webpack_plugin___last_call_webpack_plugin_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz";
-        sha1 = "9742df0e10e3cf46e5c0381c2de90d3a7a2d7555";
-      };
-    }
-    {
-      name = "lazy_ass___lazy_ass_1.6.0.tgz";
-      path = fetchurl {
-        name = "lazy_ass___lazy_ass_1.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz";
-        sha1 = "7999655e8646c17f089fdd187d150d3324d54513";
-      };
-    }
-    {
-      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 = "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 = "left_pad___left_pad_1.3.0.tgz";
-      path = fetchurl {
-        name = "left_pad___left_pad_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz";
-        sha1 = "5b8a3a7765dfe001261dde915589e782f8c94d1e";
-      };
-    }
-    {
-      name = "leven___leven_2.1.0.tgz";
-      path = fetchurl {
-        name = "leven___leven_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz";
-        sha1 = "c2e7a9f772094dee9d34202ae8acce4687875580";
-      };
-    }
-    {
-      name = "leven___leven_3.1.0.tgz";
-      path = fetchurl {
-        name = "leven___leven_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz";
-        sha1 = "77891de834064cccba82ae7842bb6b14a13ed7f2";
-      };
-    }
-    {
-      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 = "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 = "load_json_file___load_json_file_4.0.0.tgz";
-      path = fetchurl {
-        name = "load_json_file___load_json_file_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz";
-        sha1 = "2f5f45ab91e33216234fd53adab668eb4ec0993b";
-      };
-    }
-    {
-      name = "loader_runner___loader_runner_2.4.0.tgz";
-      path = fetchurl {
-        name = "loader_runner___loader_runner_2.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz";
-        sha1 = "ed47066bfe534d7e84c4c7b9998c2a75607d9357";
-      };
-    }
-    {
-      name = "loader_utils___loader_utils_1.2.3.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_0.2.17.tgz";
-      path = fetchurl {
-        name = "loader_utils___loader_utils_0.2.17.tgz";
-        url  = "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz";
-        sha1 = "f86e6374d43205a6e6c60e9196f17c0299bfb348";
-      };
-    }
-    {
-      name = "loader_utils___loader_utils_1.4.0.tgz";
-      path = fetchurl {
-        name = "loader_utils___loader_utils_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz";
-        sha1 = "c579b5e34cb34b1a74edc6c1fb36bfa371d5a613";
-      };
-    }
-    {
-      name = "loader_utils___loader_utils_2.0.0.tgz";
-      path = fetchurl {
-        name = "loader_utils___loader_utils_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz";
-        sha1 = "e4cace5b816d425a166b5f097e10cd12b36064b0";
-      };
-    }
-    {
-      name = "locate_path___locate_path_3.0.0.tgz";
-      path = fetchurl {
-        name = "locate_path___locate_path_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz";
-        sha1 = "dbec3b3ab759758071b58fe59fc41871af21400e";
-      };
-    }
-    {
-      name = "locate_path___locate_path_5.0.0.tgz";
-      path = fetchurl {
-        name = "locate_path___locate_path_5.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz";
-        sha1 = "1afba396afd676a6d42504d0a67a3a7eb9f62aa0";
-      };
-    }
-    {
-      name = "lodash.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.escape___lodash.escape_4.0.1.tgz";
-      path = fetchurl {
-        name = "lodash.escape___lodash.escape_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-4.0.1.tgz";
-        sha1 = "c9044690c21e04294beaa517712fded1fa88de98";
-      };
-    }
-    {
-      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.get___lodash.get_4.4.2.tgz";
-      path = fetchurl {
-        name = "lodash.get___lodash.get_4.4.2.tgz";
-        url  = "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz";
-        sha1 = "2d177f652fa31e939b4438d5341499dfa3825e99";
-      };
-    }
-    {
-      name = "lodash.isempty___lodash.isempty_4.4.0.tgz";
-      path = fetchurl {
-        name = "lodash.isempty___lodash.isempty_4.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/lodash.isempty/-/lodash.isempty-4.4.0.tgz";
-        sha1 = "6f86cbedd8be4ec987be9aaf33c9684db1b31e7e";
-      };
-    }
-    {
-      name = "lodash.isequal___lodash.isequal_4.5.0.tgz";
-      path = fetchurl {
-        name = "lodash.isequal___lodash.isequal_4.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz";
-        sha1 = "415c4478f2bcc30120c22ce10ed3226f7d3e18e0";
-      };
-    }
-    {
-      name = "lodash.memoize___lodash.memoize_4.1.2.tgz";
-      path = fetchurl {
-        name = "lodash.memoize___lodash.memoize_4.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz";
-        sha1 = "bcc6c49a42a2840ed997f323eada5ecd182e0bfe";
-      };
-    }
-    {
-      name = "lodash.once___lodash.once_4.1.1.tgz";
-      path = fetchurl {
-        name = "lodash.once___lodash.once_4.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz";
-        sha1 = "0dd3971213c7c56df880977d504c88fb471a97ac";
-      };
-    }
-    {
-      name = "lodash.sortby___lodash.sortby_4.7.0.tgz";
-      path = fetchurl {
-        name = "lodash.sortby___lodash.sortby_4.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz";
-        sha1 = "edd14c824e2cc9c1e0b0a1b42bb5210516a42438";
-      };
-    }
-    {
-      name = "lodash.tail___lodash.tail_4.1.1.tgz";
-      path = fetchurl {
-        name = "lodash.tail___lodash.tail_4.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/lodash.tail/-/lodash.tail-4.1.1.tgz";
-        sha1 = "d2333a36d9e7717c8ad2f7cacafec7c32b444664";
-      };
-    }
-    {
-      name = "lodash.unescape___lodash.unescape_4.0.1.tgz";
-      path = fetchurl {
-        name = "lodash.unescape___lodash.unescape_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/lodash.unescape/-/lodash.unescape-4.0.1.tgz";
-        sha1 = "bf2249886ce514cda112fae9218cdc065211fc9c";
-      };
-    }
-    {
-      name = "lodash.uniq___lodash.uniq_4.5.0.tgz";
-      path = fetchurl {
-        name = "lodash.uniq___lodash.uniq_4.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz";
-        sha1 = "d0225373aeb652adc1bc82e4945339a842754773";
-      };
-    }
-    {
-      name = "lodash___lodash_4.17.11.tgz";
-      path = fetchurl {
-        name = "lodash___lodash_4.17.11.tgz";
-        url  = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz";
-        sha1 = "b39ea6229ef607ecd89e2c8df12536891cac9b8d";
-      };
-    }
-    {
-      name = "lodash___lodash_4.17.15.tgz";
-      path = fetchurl {
-        name = "lodash___lodash_4.17.15.tgz";
-        url  = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz";
-        sha1 = "b447f6670a0455bbfeedd11392eff330ea097548";
-      };
-    }
-    {
-      name = "lodash___lodash_4.17.19.tgz";
-      path = fetchurl {
-        name = "lodash___lodash_4.17.19.tgz";
-        url  = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz";
-        sha1 = "e48ddedbe30b3321783c5b4301fbd353bc1e4a4b";
-      };
-    }
-    {
-      name = "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 = "loglevel___loglevel_1.6.7.tgz";
-      path = fetchurl {
-        name = "loglevel___loglevel_1.6.7.tgz";
-        url  = "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.7.tgz";
-        sha1 = "b3e034233188c68b889f5b862415306f565e2c56";
-      };
-    }
-    {
-      name = "longest___longest_1.0.1.tgz";
-      path = fetchurl {
-        name = "longest___longest_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz";
-        sha1 = "30a0b2da38f73770e8294a0d22e6625ed77d0097";
-      };
-    }
-    {
-      name = "loose_envify___loose_envify_1.4.0.tgz";
-      path = fetchurl {
-        name = "loose_envify___loose_envify_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz";
-        sha1 = "71ee51fa7be4caec1a63839f7e682d8132d30caf";
-      };
-    }
-    {
-      name = "lower_case___lower_case_1.1.4.tgz";
-      path = fetchurl {
-        name = "lower_case___lower_case_1.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz";
-        sha1 = "9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac";
-      };
-    }
-    {
-      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_1.3.0.tgz";
-      path = fetchurl {
-        name = "make_dir___make_dir_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz";
-        sha1 = "79c1033b80515bd6d24ec9933e860ca75ee27f0c";
-      };
-    }
-    {
-      name = "make_dir___make_dir_2.1.0.tgz";
-      path = fetchurl {
-        name = "make_dir___make_dir_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz";
-        sha1 = "5f0310e18b8be898cc07009295a30ae41e91e6f5";
-      };
-    }
-    {
-      name = "make_dir___make_dir_3.0.0.tgz";
-      path = fetchurl {
-        name = "make_dir___make_dir_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/make-dir/-/make-dir-3.0.0.tgz";
-        sha1 = "1b5f39f6b9270ed33f9f054c5c0f84304989f801";
-      };
-    }
-    {
-      name = "make_error___make_error_1.3.5.tgz";
-      path = fetchurl {
-        name = "make_error___make_error_1.3.5.tgz";
-        url  = "https://registry.yarnpkg.com/make-error/-/make-error-1.3.5.tgz";
-        sha1 = "efe4e81f6db28cadd605c70f29c831b58ef776c8";
-      };
-    }
-    {
-      name = "makeerror___makeerror_1.0.11.tgz";
-      path = fetchurl {
-        name = "makeerror___makeerror_1.0.11.tgz";
-        url  = "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz";
-        sha1 = "e01a5c9109f2af79660e4e8b9587790184f5a96c";
-      };
-    }
-    {
-      name = "mamacro___mamacro_0.0.3.tgz";
-      path = fetchurl {
-        name = "mamacro___mamacro_0.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz";
-        sha1 = "ad2c9576197c9f1abf308d0787865bd975a3f3e4";
-      };
-    }
-    {
-      name = "map_age_cleaner___map_age_cleaner_0.1.3.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 = "map_cache___map_cache_0.2.2.tgz";
-      path = fetchurl {
-        name = "map_cache___map_cache_0.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz";
-        sha1 = "c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf";
-      };
-    }
-    {
-      name = "map_visit___map_visit_1.0.0.tgz";
-      path = fetchurl {
-        name = "map_visit___map_visit_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz";
-        sha1 = "ecdca8f13144e660f1b5bd41f12f3479d98dfb8f";
-      };
-    }
-    {
-      name = "markdown_escapes___markdown_escapes_1.0.2.tgz";
-      path = fetchurl {
-        name = "markdown_escapes___markdown_escapes_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.2.tgz";
-        sha1 = "e639cbde7b99c841c0bacc8a07982873b46d2122";
-      };
-    }
-    {
-      name = "md5.js___md5.js_1.3.5.tgz";
-      path = fetchurl {
-        name = "md5.js___md5.js_1.3.5.tgz";
-        url  = "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz";
-        sha1 = "b5d07b8e3216e3e27cd728d72f70d1e6a342005f";
-      };
-    }
-    {
-      name = "md5___md5_2.2.1.tgz";
-      path = fetchurl {
-        name = "md5___md5_2.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/md5/-/md5-2.2.1.tgz";
-        sha1 = "53ab38d5fe3c8891ba465329ea23fac0540126f9";
-      };
-    }
-    {
-      name = "mdast_add_list_metadata___mdast_add_list_metadata_1.0.1.tgz";
-      path = fetchurl {
-        name = "mdast_add_list_metadata___mdast_add_list_metadata_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/mdast-add-list-metadata/-/mdast-add-list-metadata-1.0.1.tgz";
-        sha1 = "95e73640ce2fc1fa2dcb7ec443d09e2bfe7db4cf";
-      };
-    }
-    {
-      name = "mdn_data___mdn_data_1.1.4.tgz";
-      path = fetchurl {
-        name = "mdn_data___mdn_data_1.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/mdn-data/-/mdn-data-1.1.4.tgz";
-        sha1 = "50b5d4ffc4575276573c4eedb8780812a8419f01";
-      };
-    }
-    {
-      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 = "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 = "memoize_one___memoize_one_4.0.2.tgz";
-      path = fetchurl {
-        name = "memoize_one___memoize_one_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/memoize-one/-/memoize-one-4.0.2.tgz";
-        sha1 = "3fb8db695aa14ab9c0f1644e1585a8806adc1aee";
-      };
-    }
-    {
-      name = "memory_fs___memory_fs_0.4.1.tgz";
-      path = fetchurl {
-        name = "memory_fs___memory_fs_0.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz";
-        sha1 = "3a9a20b8462523e447cfbc7e8bb80ed667bfc552";
-      };
-    }
-    {
-      name = "memory_fs___memory_fs_0.5.0.tgz";
-      path = fetchurl {
-        name = "memory_fs___memory_fs_0.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz";
-        sha1 = "324c01288b88652966d161db77838720845a8e3c";
-      };
-    }
-    {
-      name = "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_1.0.1.tgz";
-      path = fetchurl {
-        name = "merge_stream___merge_stream_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz";
-        sha1 = "4041202d508a342ba00174008df0c251b8c135e1";
-      };
-    }
-    {
-      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 = "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 = "microevent.ts___microevent.ts_0.1.1.tgz";
-      path = fetchurl {
-        name = "microevent.ts___microevent.ts_0.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/microevent.ts/-/microevent.ts-0.1.1.tgz";
-        sha1 = "70b09b83f43df5172d0205a63025bce0f7357fa0";
-      };
-    }
-    {
-      name = "micromatch___micromatch_3.1.10.tgz";
-      path = fetchurl {
-        name = "micromatch___micromatch_3.1.10.tgz";
-        url  = "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz";
-        sha1 = "70859bc95c9840952f359a068a3fc49f9ecfac23";
-      };
-    }
-    {
-      name = "miller_rabin___miller_rabin_4.0.1.tgz";
-      path = fetchurl {
-        name = "miller_rabin___miller_rabin_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz";
-        sha1 = "f080351c865b0dc562a8462966daa53543c78a4d";
-      };
-    }
-    {
-      name = "mime_db___mime_db_1.40.0.tgz";
-      path = fetchurl {
-        name = "mime_db___mime_db_1.40.0.tgz";
-        url  = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz";
-        sha1 = "a65057e998db090f732a68f6c276d387d4126c32";
-      };
-    }
-    {
-      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.24.tgz";
-      path = fetchurl {
-        name = "mime_types___mime_types_2.1.24.tgz";
-        url  = "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz";
-        sha1 = "b6f8d0b3e951efb77dedeca194cff6d16f676f81";
-      };
-    }
-    {
-      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.4.1.tgz";
-      path = fetchurl {
-        name = "mime___mime_1.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz";
-        sha1 = "121f9ebc49e3766f311a76e1fa1c8003c4b03aa6";
-      };
-    }
-    {
-      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 = "mini_create_react_context___mini_create_react_context_0.4.0.tgz";
-      path = fetchurl {
-        name = "mini_create_react_context___mini_create_react_context_0.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/mini-create-react-context/-/mini-create-react-context-0.4.0.tgz";
-        sha1 = "df60501c83151db69e28eac0ef08b4002efab040";
-      };
-    }
-    {
-      name = "mini_css_extract_plugin___mini_css_extract_plugin_0.8.0.tgz";
-      path = fetchurl {
-        name = "mini_css_extract_plugin___mini_css_extract_plugin_0.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.8.0.tgz";
-        sha1 = "81d41ec4fe58c713a96ad7c723cdb2d0bd4d70e1";
-      };
-    }
-    {
-      name = "minimalistic_assert___minimalistic_assert_1.0.1.tgz";
-      path = fetchurl {
-        name = "minimalistic_assert___minimalistic_assert_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz";
-        sha1 = "2e194de044626d4a10e7f7fbc00ce73e83e4d5c7";
-      };
-    }
-    {
-      name = "minimalistic_crypto_utils___minimalistic_crypto_utils_1.0.1.tgz";
-      path = fetchurl {
-        name = "minimalistic_crypto_utils___minimalistic_crypto_utils_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz";
-        sha1 = "f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a";
-      };
-    }
-    {
-      name = "minimatch___minimatch_3.0.4.tgz";
-      path = fetchurl {
-        name = "minimatch___minimatch_3.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz";
-        sha1 = "5166e286457f03306064be5497e8dbb0c3d32083";
-      };
-    }
-    {
-      name = "minimist___minimist_0.0.8.tgz";
-      path = fetchurl {
-        name = "minimist___minimist_0.0.8.tgz";
-        url  = "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz";
-        sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d";
-      };
-    }
-    {
-      name = "minimist___minimist_1.2.0.tgz";
-      path = fetchurl {
-        name = "minimist___minimist_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz";
-        sha1 = "a35008b20f41383eec1fb914f4cd5df79a264284";
-      };
-    }
-    {
-      name = "minimist___minimist_1.2.5.tgz";
-      path = fetchurl {
-        name = "minimist___minimist_1.2.5.tgz";
-        url  = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz";
-        sha1 = "67d66014b66a6a8aaa0c083c5fd58df4e4e97602";
-      };
-    }
-    {
-      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 = "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.2.tgz";
-      path = fetchurl {
-        name = "minipass_pipeline___minipass_pipeline_1.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.2.tgz";
-        sha1 = "3dcb6bb4a546e32969c7ad710f2c79a86abba93a";
-      };
-    }
-    {
-      name = "minipass___minipass_3.1.1.tgz";
-      path = fetchurl {
-        name = "minipass___minipass_3.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/minipass/-/minipass-3.1.1.tgz";
-        sha1 = "7607ce778472a185ad6d89082aa2070f79cedcd5";
-      };
-    }
-    {
-      name = "mississippi___mississippi_3.0.0.tgz";
-      path = fetchurl {
-        name = "mississippi___mississippi_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz";
-        sha1 = "ea0a3291f97e0b5e8776b363d5f0a12d94c67022";
-      };
-    }
-    {
-      name = "mixin_deep___mixin_deep_1.3.2.tgz";
-      path = fetchurl {
-        name = "mixin_deep___mixin_deep_1.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz";
-        sha1 = "1120b43dc359a785dce65b55b82e257ccf479566";
-      };
-    }
-    {
-      name = "mixin_object___mixin_object_2.0.1.tgz";
-      path = fetchurl {
-        name = "mixin_object___mixin_object_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/mixin-object/-/mixin-object-2.0.1.tgz";
-        sha1 = "4fb949441dab182540f1fe035ba60e1947a5e57e";
-      };
-    }
-    {
-      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.3.tgz";
-      path = fetchurl {
-        name = "mkdirp___mkdirp_0.5.3.tgz";
-        url  = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.3.tgz";
-        sha1 = "5a514b7179259287952881e94410ec5465659f8c";
-      };
-    }
-    {
-      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_junit_reporter___mocha_junit_reporter_1.18.0.tgz";
-      path = fetchurl {
-        name = "mocha_junit_reporter___mocha_junit_reporter_1.18.0.tgz";
-        url  = "https://registry.yarnpkg.com/mocha-junit-reporter/-/mocha-junit-reporter-1.18.0.tgz";
-        sha1 = "9209a3fba30025ae3ae5e6bfe7f9c5bc3c2e8ee2";
-      };
-    }
-    {
-      name = "mocha___mocha_5.2.0.tgz";
-      path = fetchurl {
-        name = "mocha___mocha_5.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/mocha/-/mocha-5.2.0.tgz";
-        sha1 = "6d8ae508f59167f940f2b5b3c4a612ae50c90ae6";
-      };
-    }
-    {
-      name = "moment___moment_2.22.2.tgz";
-      path = fetchurl {
-        name = "moment___moment_2.22.2.tgz";
-        url  = "https://registry.yarnpkg.com/moment/-/moment-2.22.2.tgz";
-        sha1 = "3c257f9839fc0e93ff53149632239eb90783ff66";
-      };
-    }
-    {
-      name = "moment___moment_2.27.0.tgz";
-      path = fetchurl {
-        name = "moment___moment_2.27.0.tgz";
-        url  = "https://registry.yarnpkg.com/moment/-/moment-2.27.0.tgz";
-        sha1 = "8bff4e3e26a236220dfe3e36de756b6ebaa0105d";
-      };
-    }
-    {
-      name = "monaco_editor_textmate___monaco_editor_textmate_2.2.1.tgz";
-      path = fetchurl {
-        name = "monaco_editor_textmate___monaco_editor_textmate_2.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/monaco-editor-textmate/-/monaco-editor-textmate-2.2.1.tgz";
-        sha1 = "93f3f1932061dd2311b92a42ea1c027cfeb3e439";
-      };
-    }
-    {
-      name = "monaco_editor_webpack_plugin___monaco_editor_webpack_plugin_1.8.2.tgz";
-      path = fetchurl {
-        name = "monaco_editor_webpack_plugin___monaco_editor_webpack_plugin_1.8.2.tgz";
-        url  = "https://registry.yarnpkg.com/monaco-editor-webpack-plugin/-/monaco-editor-webpack-plugin-1.8.2.tgz";
-        sha1 = "3721b8d9a3e2e41b154cf2a2955a7d7246c03714";
-      };
-    }
-    {
-      name = "monaco_editor___monaco_editor_0.19.3.tgz";
-      path = fetchurl {
-        name = "monaco_editor___monaco_editor_0.19.3.tgz";
-        url  = "https://registry.yarnpkg.com/monaco-editor/-/monaco-editor-0.19.3.tgz";
-        sha1 = "1c994b3186c00650dbcd034d5370d46bf56c0663";
-      };
-    }
-    {
-      name = "monaco_languageclient___monaco_languageclient_0.11.0.tgz";
-      path = fetchurl {
-        name = "monaco_languageclient___monaco_languageclient_0.11.0.tgz";
-        url  = "https://registry.yarnpkg.com/monaco-languageclient/-/monaco-languageclient-0.11.0.tgz";
-        sha1 = "0968ec143c98bf2c9fa69c2a84ac9ad5448e039d";
-      };
-    }
-    {
-      name = "monaco_textmate___monaco_textmate_3.0.1.tgz";
-      path = fetchurl {
-        name = "monaco_textmate___monaco_textmate_3.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/monaco-textmate/-/monaco-textmate-3.0.1.tgz";
-        sha1 = "b6d26d266aa12edaff7069dae0d6e3747cba5cd7";
-      };
-    }
-    {
-      name = "moo___moo_0.4.3.tgz";
-      path = fetchurl {
-        name = "moo___moo_0.4.3.tgz";
-        url  = "https://registry.yarnpkg.com/moo/-/moo-0.4.3.tgz";
-        sha1 = "3f847a26f31cf625a956a87f2b10fbc013bfd10e";
-      };
-    }
-    {
-      name = "move_concurrently___move_concurrently_1.0.1.tgz";
-      path = fetchurl {
-        name = "move_concurrently___move_concurrently_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz";
-        sha1 = "be2c005fda32e0b29af1f05d7c4b33214c701f92";
-      };
-    }
-    {
-      name = "ms___ms_2.0.0.tgz";
-      path = fetchurl {
-        name = "ms___ms_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz";
-        sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
-      };
-    }
-    {
-      name = "ms___ms_2.1.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 = "multicast_dns_service_types___multicast_dns_service_types_1.1.0.tgz";
-      path = fetchurl {
-        name = "multicast_dns_service_types___multicast_dns_service_types_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz";
-        sha1 = "899f11d9686e5e05cb91b35d5f0e63b773cfc901";
-      };
-    }
-    {
-      name = "multicast_dns___multicast_dns_6.2.3.tgz";
-      path = fetchurl {
-        name = "multicast_dns___multicast_dns_6.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz";
-        sha1 = "a0ec7bd9055c4282f790c3c82f4e28db3b31b229";
-      };
-    }
-    {
-      name = "mustache___mustache_2.3.2.tgz";
-      path = fetchurl {
-        name = "mustache___mustache_2.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/mustache/-/mustache-2.3.2.tgz";
-        sha1 = "a6d4d9c3f91d13359ab889a812954f9230a3d0c5";
-      };
-    }
-    {
-      name = "mutation_observer___mutation_observer_1.0.3.tgz";
-      path = fetchurl {
-        name = "mutation_observer___mutation_observer_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/mutation-observer/-/mutation-observer-1.0.3.tgz";
-        sha1 = "42e9222b101bca82e5ba9d5a7acf4a14c0f263d0";
-      };
-    }
-    {
-      name = "mute_stream___mute_stream_0.0.8.tgz";
-      path = fetchurl {
-        name = "mute_stream___mute_stream_0.0.8.tgz";
-        url  = "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz";
-        sha1 = "1630c42b2251ff81e2a283de96a5497ea92e5e0d";
-      };
-    }
-    {
-      name = "nan___nan_2.14.0.tgz";
-      path = fetchurl {
-        name = "nan___nan_2.14.0.tgz";
-        url  = "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz";
-        sha1 = "7818f722027b2459a86f0295d434d1fc2336c52c";
-      };
-    }
-    {
-      name = "nanomatch___nanomatch_1.2.13.tgz";
-      path = fetchurl {
-        name = "nanomatch___nanomatch_1.2.13.tgz";
-        url  = "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz";
-        sha1 = "b87a8aa4fc0de8fe6be88895b38983ff265bd119";
-      };
-    }
-    {
-      name = "natural_compare___natural_compare_1.4.0.tgz";
-      path = fetchurl {
-        name = "natural_compare___natural_compare_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz";
-        sha1 = "4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7";
-      };
-    }
-    {
-      name = "nearley___nearley_2.15.1.tgz";
-      path = fetchurl {
-        name = "nearley___nearley_2.15.1.tgz";
-        url  = "https://registry.yarnpkg.com/nearley/-/nearley-2.15.1.tgz";
-        sha1 = "965e4e6ec9ed6b80fc81453e161efbcebb36d247";
-      };
-    }
-    {
-      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 = "neo_async___neo_async_2.6.1.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 = "nice_try___nice_try_1.0.5.tgz";
-      path = fetchurl {
-        name = "nice_try___nice_try_1.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz";
-        sha1 = "a3378a7696ce7d223e88fc9b764bd7ef1089e366";
-      };
-    }
-    {
-      name = "no_case___no_case_2.3.2.tgz";
-      path = fetchurl {
-        name = "no_case___no_case_2.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz";
-        sha1 = "60b813396be39b3f1288a4c1ed5d1e7d28b464ac";
-      };
-    }
-    {
-      name = "node_fetch___node_fetch_2.6.0.tgz";
-      path = fetchurl {
-        name = "node_fetch___node_fetch_2.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz";
-        sha1 = "e633456386d4aa55863f676a7ab0daa8fdecb0fd";
-      };
-    }
-    {
-      name = "node_fetch___node_fetch_1.7.3.tgz";
-      path = fetchurl {
-        name = "node_fetch___node_fetch_1.7.3.tgz";
-        url  = "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz";
-        sha1 = "980f6f72d85211a5347c6b2bc18c5b84c3eb47ef";
-      };
-    }
-    {
-      name = "node_forge___node_forge_0.9.0.tgz";
-      path = fetchurl {
-        name = "node_forge___node_forge_0.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/node-forge/-/node-forge-0.9.0.tgz";
-        sha1 = "d624050edbb44874adca12bb9a52ec63cb782579";
-      };
-    }
-    {
-      name = "node_int64___node_int64_0.4.0.tgz";
-      path = fetchurl {
-        name = "node_int64___node_int64_0.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz";
-        sha1 = "87a9065cdb355d3182d8f94ce11188b825c68a3b";
-      };
-    }
-    {
-      name = "node_libs_browser___node_libs_browser_2.2.1.tgz";
-      path = fetchurl {
-        name = "node_libs_browser___node_libs_browser_2.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz";
-        sha1 = "b64f513d18338625f90346d27b0d235e631f6425";
-      };
-    }
-    {
-      name = "node_modules_regexp___node_modules_regexp_1.0.0.tgz";
-      path = fetchurl {
-        name = "node_modules_regexp___node_modules_regexp_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz";
-        sha1 = "8d9dbe28964a4ac5712e9131642107c71e90ec40";
-      };
-    }
-    {
-      name = "node_notifier___node_notifier_5.4.0.tgz";
-      path = fetchurl {
-        name = "node_notifier___node_notifier_5.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.0.tgz";
-        sha1 = "7b455fdce9f7de0c63538297354f3db468426e6a";
-      };
-    }
-    {
-      name = "node_releases___node_releases_1.1.25.tgz";
-      path = fetchurl {
-        name = "node_releases___node_releases_1.1.25.tgz";
-        url  = "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.25.tgz";
-        sha1 = "0c2d7dbc7fed30fbe02a9ee3007b8c90bf0133d3";
-      };
-    }
-    {
-      name = "node_releases___node_releases_1.1.3.tgz";
-      path = fetchurl {
-        name = "node_releases___node_releases_1.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.3.tgz";
-        sha1 = "aad9ce0dcb98129c753f772c0aa01360fb90fbd2";
-      };
-    }
-    {
-      name = "nomnom___nomnom_1.6.2.tgz";
-      path = fetchurl {
-        name = "nomnom___nomnom_1.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/nomnom/-/nomnom-1.6.2.tgz";
-        sha1 = "84a66a260174408fc5b77a18f888eccc44fb6971";
-      };
-    }
-    {
-      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_2.1.1.tgz";
-      path = fetchurl {
-        name = "normalize_path___normalize_path_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz";
-        sha1 = "1ab28b556e198363a8c1a6f7e6fa20137fe6aed9";
-      };
-    }
-    {
-      name = "normalize_path___normalize_path_3.0.0.tgz";
-      path = fetchurl {
-        name = "normalize_path___normalize_path_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz";
-        sha1 = "0dcd69ff23a1c9b11fd0978316644a0388216a65";
-      };
-    }
-    {
-      name = "normalize_range___normalize_range_0.1.2.tgz";
-      path = fetchurl {
-        name = "normalize_range___normalize_range_0.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz";
-        sha1 = "2d10c06bdfd312ea9777695a4d28439456b75942";
-      };
-    }
-    {
-      name = "normalize_url___normalize_url_1.9.1.tgz";
-      path = fetchurl {
-        name = "normalize_url___normalize_url_1.9.1.tgz";
-        url  = "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz";
-        sha1 = "2cc0d66b31ea23036458436e3620d85954c66c3c";
-      };
-    }
-    {
-      name = "normalize_url___normalize_url_3.3.0.tgz";
-      path = fetchurl {
-        name = "normalize_url___normalize_url_3.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz";
-        sha1 = "b2e1c4dc4f7c6d57743df733a4f5978d18650559";
-      };
-    }
-    {
-      name = "normalizr___normalizr_3.4.1.tgz";
-      path = fetchurl {
-        name = "normalizr___normalizr_3.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/normalizr/-/normalizr-3.4.1.tgz";
-        sha1 = "cf4f8ac7a4a0dd7fe504b77cbe9dd533cb3e45b5";
-      };
-    }
-    {
-      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 = "nth_check___nth_check_1.0.2.tgz";
-      path = fetchurl {
-        name = "nth_check___nth_check_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz";
-        sha1 = "b2bd295c37e3dd58a3bf0700376663ba4d9cf05c";
-      };
-    }
-    {
-      name = "nth_check___nth_check_1.0.1.tgz";
-      path = fetchurl {
-        name = "nth_check___nth_check_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.1.tgz";
-        sha1 = "9929acdf628fc2c41098deab82ac580cf149aae4";
-      };
-    }
-    {
-      name = "num2fraction___num2fraction_1.2.2.tgz";
-      path = fetchurl {
-        name = "num2fraction___num2fraction_1.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz";
-        sha1 = "6f682b6a027a4e9ddfa4564cd2589d1d4e669ede";
-      };
-    }
-    {
-      name = "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 = "nwmatcher___nwmatcher_1.4.4.tgz";
-      path = fetchurl {
-        name = "nwmatcher___nwmatcher_1.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.4.4.tgz";
-        sha1 = "2285631f34a95f0d0395cd900c96ed39b58f346e";
-      };
-    }
-    {
-      name = "nwsapi___nwsapi_2.1.4.tgz";
-      path = fetchurl {
-        name = "nwsapi___nwsapi_2.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.1.4.tgz";
-        sha1 = "e006a878db23636f8e8a67d33ca0e4edf61a842f";
-      };
-    }
-    {
-      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_copy___object_copy_0.1.0.tgz";
-      path = fetchurl {
-        name = "object_copy___object_copy_0.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz";
-        sha1 = "7e7d858b781bd7c991a41ba975ed3812754e998c";
-      };
-    }
-    {
-      name = "object_inspect___object_inspect_1.6.0.tgz";
-      path = fetchurl {
-        name = "object_inspect___object_inspect_1.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.6.0.tgz";
-        sha1 = "c70b6cbf72f274aab4c34c0c82f5167bf82cf15b";
-      };
-    }
-    {
-      name = "object_inspect___object_inspect_1.7.0.tgz";
-      path = fetchurl {
-        name = "object_inspect___object_inspect_1.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz";
-        sha1 = "f4f6bd181ad77f006b5ece60bd0b6f398ff74a67";
-      };
-    }
-    {
-      name = "object_is___object_is_1.0.1.tgz";
-      path = fetchurl {
-        name = "object_is___object_is_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/object-is/-/object-is-1.0.1.tgz";
-        sha1 = "0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6";
-      };
-    }
-    {
-      name = "object_keys___object_keys_1.0.12.tgz";
-      path = fetchurl {
-        name = "object_keys___object_keys_1.0.12.tgz";
-        url  = "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz";
-        sha1 = "09c53855377575310cca62f55bb334abff7b3ed2";
-      };
-    }
-    {
-      name = "object_keys___object_keys_1.1.1.tgz";
-      path = fetchurl {
-        name = "object_keys___object_keys_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz";
-        sha1 = "1c47f272df277f3b1daf061677d9c82e2322c60e";
-      };
-    }
-    {
-      name = "object_visit___object_visit_1.0.1.tgz";
-      path = fetchurl {
-        name = "object_visit___object_visit_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz";
-        sha1 = "f79c4493af0c5377b59fe39d395e41042dd045bb";
-      };
-    }
-    {
-      name = "object.assign___object.assign_4.1.0.tgz";
-      path = fetchurl {
-        name = "object.assign___object.assign_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz";
-        sha1 = "968bf1100d7956bb3ca086f006f846b3bc4008da";
-      };
-    }
-    {
-      name = "object.entries___object.entries_1.0.4.tgz";
-      path = fetchurl {
-        name = "object.entries___object.entries_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/object.entries/-/object.entries-1.0.4.tgz";
-        sha1 = "1bf9a4dd2288f5b33f3a993d257661f05d161a5f";
-      };
-    }
-    {
-      name = "object.entries___object.entries_1.1.0.tgz";
-      path = fetchurl {
-        name = "object.entries___object.entries_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.0.tgz";
-        sha1 = "2024fc6d6ba246aee38bdb0ffd5cfbcf371b7519";
-      };
-    }
-    {
-      name = "object.fromentries___object.fromentries_2.0.0.tgz";
-      path = fetchurl {
-        name = "object.fromentries___object.fromentries_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.0.tgz";
-        sha1 = "49a543d92151f8277b3ac9600f1e930b189d30ab";
-      };
-    }
-    {
-      name = "object.getownpropertydescriptors___object.getownpropertydescriptors_2.0.3.tgz";
-      path = fetchurl {
-        name = "object.getownpropertydescriptors___object.getownpropertydescriptors_2.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz";
-        sha1 = "8758c846f5b407adab0f236e0986f14b051caa16";
-      };
-    }
-    {
-      name = "object.pick___object.pick_1.3.0.tgz";
-      path = fetchurl {
-        name = "object.pick___object.pick_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz";
-        sha1 = "87a10ac4c1694bd2e1cbf53591a66141fb5dd747";
-      };
-    }
-    {
-      name = "object.values___object.values_1.0.4.tgz";
-      path = fetchurl {
-        name = "object.values___object.values_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/object.values/-/object.values-1.0.4.tgz";
-        sha1 = "e524da09b4f66ff05df457546ec72ac99f13069a";
-      };
-    }
-    {
-      name = "object.values___object.values_1.1.0.tgz";
-      path = fetchurl {
-        name = "object.values___object.values_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/object.values/-/object.values-1.1.0.tgz";
-        sha1 = "bf6810ef5da3e5325790eaaa2be213ea84624da9";
-      };
-    }
-    {
-      name = "obuf___obuf_1.1.2.tgz";
-      path = fetchurl {
-        name = "obuf___obuf_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz";
-        sha1 = "09bea3343d41859ebd446292d11c9d4db619084e";
-      };
-    }
-    {
-      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 = "onetime___onetime_1.1.0.tgz";
-      path = fetchurl {
-        name = "onetime___onetime_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz";
-        sha1 = "a1f7838f8314c516f05ecefcbc4ccfe04b4ed789";
-      };
-    }
-    {
-      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 = "onigasm___onigasm_2.2.4.tgz";
-      path = fetchurl {
-        name = "onigasm___onigasm_2.2.4.tgz";
-        url  = "https://registry.yarnpkg.com/onigasm/-/onigasm-2.2.4.tgz";
-        sha1 = "b0ad97e3d7c3080476a1e5daae4b4579a976cbba";
-      };
-    }
-    {
-      name = "ono___ono_5.0.1.tgz";
-      path = fetchurl {
-        name = "ono___ono_5.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/ono/-/ono-5.0.1.tgz";
-        sha1 = "a39e0af7ab2c2a143a06f08ad9d187e61f9da0c8";
-      };
-    }
-    {
-      name = "openapi_schemas___openapi_schemas_1.0.0.tgz";
-      path = fetchurl {
-        name = "openapi_schemas___openapi_schemas_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/openapi-schemas/-/openapi-schemas-1.0.0.tgz";
-        sha1 = "c23ae0ae990d867a608e06265cb1ba8c73136a8e";
-      };
-    }
-    {
-      name = "openapi_types___openapi_types_1.3.5.tgz";
-      path = fetchurl {
-        name = "openapi_types___openapi_types_1.3.5.tgz";
-        url  = "https://registry.yarnpkg.com/openapi-types/-/openapi-types-1.3.5.tgz";
-        sha1 = "6718cfbc857fe6c6f1471f65b32bdebb9c10ce40";
-      };
-    }
-    {
-      name = "opener___opener_1.5.1.tgz";
-      path = fetchurl {
-        name = "opener___opener_1.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/opener/-/opener-1.5.1.tgz";
-        sha1 = "6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed";
-      };
-    }
-    {
-      name = "opn___opn_5.5.0.tgz";
-      path = fetchurl {
-        name = "opn___opn_5.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz";
-        sha1 = "fc7164fab56d235904c51c3b27da6758ca3b9bfc";
-      };
-    }
-    {
-      name = "optimist___optimist_0.6.1.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 = "optionator___optionator_0.8.2.tgz";
-      path = fetchurl {
-        name = "optionator___optionator_0.8.2.tgz";
-        url  = "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz";
-        sha1 = "364c5e409d3f4d6301d6c0b4c05bba50180aeb64";
-      };
-    }
-    {
-      name = "original___original_1.0.2.tgz";
-      path = fetchurl {
-        name = "original___original_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz";
-        sha1 = "e442a61cffe1c5fd20a65f3261c26663b303f25f";
-      };
-    }
-    {
-      name = "os_browserify___os_browserify_0.3.0.tgz";
-      path = fetchurl {
-        name = "os_browserify___os_browserify_0.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz";
-        sha1 = "854373c7f5c2315914fc9bfc6bd8238fdda1ec27";
-      };
-    }
-    {
-      name = "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";
-        url  = "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz";
-        sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274";
-      };
-    }
-    {
-      name = "ospath___ospath_1.2.2.tgz";
-      path = fetchurl {
-        name = "ospath___ospath_1.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/ospath/-/ospath-1.2.2.tgz";
-        sha1 = "1276639774a3f8ef2572f7fe4280e0ea4550c07b";
-      };
-    }
-    {
-      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_each_series___p_each_series_1.0.0.tgz";
-      path = fetchurl {
-        name = "p_each_series___p_each_series_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/p-each-series/-/p-each-series-1.0.0.tgz";
-        sha1 = "930f3d12dd1f50e7434457a22cd6f04ac6ad7f71";
-      };
-    }
-    {
-      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_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_limit___p_limit_2.2.1.tgz";
-      path = fetchurl {
-        name = "p_limit___p_limit_2.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.1.tgz";
-        sha1 = "aa07a788cc3151c939b5131f63570f0dd2009537";
-      };
-    }
-    {
-      name = "p_locate___p_locate_3.0.0.tgz";
-      path = fetchurl {
-        name = "p_locate___p_locate_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz";
-        sha1 = "322d69a05c0264b25997d9f40cd8a891ab0064a4";
-      };
-    }
-    {
-      name = "p_locate___p_locate_4.1.0.tgz";
-      path = fetchurl {
-        name = "p_locate___p_locate_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz";
-        sha1 = "a3428bb7088b3a60292f66919278b7c297ad4f07";
-      };
-    }
-    {
-      name = "p_map___p_map_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_reduce___p_reduce_1.0.0.tgz";
-      path = fetchurl {
-        name = "p_reduce___p_reduce_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/p-reduce/-/p-reduce-1.0.0.tgz";
-        sha1 = "18c2b0dd936a4690a529f8231f58a0fdb6a47dfa";
-      };
-    }
-    {
-      name = "p_retry___p_retry_3.0.1.tgz";
-      path = fetchurl {
-        name = "p_retry___p_retry_3.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz";
-        sha1 = "316b4c8893e2c8dc1cfa891f406c4b422bebf328";
-      };
-    }
-    {
-      name = "p_try___p_try_2.2.0.tgz";
-      path = fetchurl {
-        name = "p_try___p_try_2.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz";
-        sha1 = "cb2868540e313d61de58fafbe35ce9004d5540e6";
-      };
-    }
-    {
-      name = "pako___pako_1.0.11.tgz";
-      path = fetchurl {
-        name = "pako___pako_1.0.11.tgz";
-        url  = "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz";
-        sha1 = "6c9599d340d54dfd3946380252a35705a6b992bf";
-      };
-    }
-    {
-      name = "papaparse___papaparse_5.2.0.tgz";
-      path = fetchurl {
-        name = "papaparse___papaparse_5.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/papaparse/-/papaparse-5.2.0.tgz";
-        sha1 = "97976a1b135c46612773029153dc64995caa3b7b";
-      };
-    }
-    {
-      name = "parallel_transform___parallel_transform_1.2.0.tgz";
-      path = fetchurl {
-        name = "parallel_transform___parallel_transform_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz";
-        sha1 = "9049ca37d6cb2182c3b1d2c720be94d14a5814fc";
-      };
-    }
-    {
-      name = "param_case___param_case_2.1.1.tgz";
-      path = fetchurl {
-        name = "param_case___param_case_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz";
-        sha1 = "df94fd8cf6531ecf75e6bef9a0858fbc72be2247";
-      };
-    }
-    {
-      name = "parent_module___parent_module_1.0.0.tgz";
-      path = fetchurl {
-        name = "parent_module___parent_module_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.0.tgz";
-        sha1 = "df250bdc5391f4a085fb589dad761f5ad6b865b5";
-      };
-    }
-    {
-      name = "parse_asn1___parse_asn1_5.1.5.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_1.2.0.tgz";
-      path = fetchurl {
-        name = "parse_entities___parse_entities_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/parse-entities/-/parse-entities-1.2.0.tgz";
-        sha1 = "9deac087661b2e36814153cb78d7e54a4c5fd6f4";
-      };
-    }
-    {
-      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_passwd___parse_passwd_1.0.0.tgz";
-      path = fetchurl {
-        name = "parse_passwd___parse_passwd_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz";
-        sha1 = "6d5b934a456993b23d37f40a382d6f1666a8e5c6";
-      };
-    }
-    {
-      name = "parse5___parse5_4.0.0.tgz";
-      path = fetchurl {
-        name = "parse5___parse5_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz";
-        sha1 = "6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608";
-      };
-    }
-    {
-      name = "parse5___parse5_1.5.1.tgz";
-      path = fetchurl {
-        name = "parse5___parse5_1.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/parse5/-/parse5-1.5.1.tgz";
-        sha1 = "9b7f3b0de32be78dc2401b17573ccaf0f6f59d94";
-      };
-    }
-    {
-      name = "parse5___parse5_3.0.3.tgz";
-      path = fetchurl {
-        name = "parse5___parse5_3.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/parse5/-/parse5-3.0.3.tgz";
-        sha1 = "042f792ffdd36851551cf4e9e066b3874ab45b5c";
-      };
-    }
-    {
-      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 = "pascalcase___pascalcase_0.1.1.tgz";
-      path = fetchurl {
-        name = "pascalcase___pascalcase_0.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz";
-        sha1 = "b363e55e8006ca6fe21784d2db22bd15d7917f14";
-      };
-    }
-    {
-      name = "path_browserify___path_browserify_0.0.1.tgz";
-      path = fetchurl {
-        name = "path_browserify___path_browserify_0.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz";
-        sha1 = "e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a";
-      };
-    }
-    {
-      name = "path_dirname___path_dirname_1.0.2.tgz";
-      path = fetchurl {
-        name = "path_dirname___path_dirname_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz";
-        sha1 = "cc33d24d525e099a5388c0336c6e32b9160609e0";
-      };
-    }
-    {
-      name = "path_exists___path_exists_3.0.0.tgz";
-      path = fetchurl {
-        name = "path_exists___path_exists_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz";
-        sha1 = "ce0ebeaa5f78cb18925ea7d810d7b59b010fd515";
-      };
-    }
-    {
-      name = "path_exists___path_exists_4.0.0.tgz";
-      path = fetchurl {
-        name = "path_exists___path_exists_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz";
-        sha1 = "513bdbe2d3b95d7762e8c1137efa195c6c61b5b3";
-      };
-    }
-    {
-      name = "path_is_absolute___path_is_absolute_1.0.1.tgz";
-      path = fetchurl {
-        name = "path_is_absolute___path_is_absolute_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
-        sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
-      };
-    }
-    {
-      name = "path_is_inside___path_is_inside_1.0.2.tgz";
-      path = fetchurl {
-        name = "path_is_inside___path_is_inside_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz";
-        sha1 = "365417dede44430d1c11af61027facf074bdfc53";
-      };
-    }
-    {
-      name = "path_key___path_key_2.0.1.tgz";
-      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_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_to_regexp___path_to_regexp_1.8.0.tgz";
-      path = fetchurl {
-        name = "path_to_regexp___path_to_regexp_1.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz";
-        sha1 = "887b3ba9d84393e87a0a0b9f4cb756198b53548a";
-      };
-    }
-    {
-      name = "path_type___path_type_3.0.0.tgz";
-      path = fetchurl {
-        name = "path_type___path_type_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz";
-        sha1 = "cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f";
-      };
-    }
-    {
-      name = "pbkdf2___pbkdf2_3.0.17.tgz";
-      path = fetchurl {
-        name = "pbkdf2___pbkdf2_3.0.17.tgz";
-        url  = "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz";
-        sha1 = "976c206530617b14ebb32114239f7b09336e93a6";
-      };
-    }
-    {
-      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.0.7.tgz";
-      path = fetchurl {
-        name = "picomatch___picomatch_2.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/picomatch/-/picomatch-2.0.7.tgz";
-        sha1 = "514169d8c7cd0bdbeecc8a2609e34a7163de69f6";
-      };
-    }
-    {
-      name = "pify___pify_2.3.0.tgz";
-      path = fetchurl {
-        name = "pify___pify_2.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz";
-        sha1 = "ed141a6ac043a849ea588498e7dca8b15330e90c";
-      };
-    }
-    {
-      name = "pify___pify_3.0.0.tgz";
-      path = fetchurl {
-        name = "pify___pify_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz";
-        sha1 = "e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176";
-      };
-    }
-    {
-      name = "pify___pify_4.0.1.tgz";
-      path = fetchurl {
-        name = "pify___pify_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz";
-        sha1 = "4b2cd25c50d598735c50292224fd8c6df41e3231";
-      };
-    }
-    {
-      name = "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 = "pirates___pirates_4.0.1.tgz";
-      path = fetchurl {
-        name = "pirates___pirates_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz";
-        sha1 = "643a92caf894566f91b2b986d2c66950a8e2fb87";
-      };
-    }
-    {
-      name = "pkg_dir___pkg_dir_3.0.0.tgz";
-      path = fetchurl {
-        name = "pkg_dir___pkg_dir_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz";
-        sha1 = "2749020f239ed990881b1f71210d51eb6523bea3";
-      };
-    }
-    {
-      name = "pkg_dir___pkg_dir_4.2.0.tgz";
-      path = fetchurl {
-        name = "pkg_dir___pkg_dir_4.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz";
-        sha1 = "f099133df7ede422e81d1d8448270eeb3e4261f3";
-      };
-    }
-    {
-      name = "platform___platform_1.3.3.tgz";
-      path = fetchurl {
-        name = "platform___platform_1.3.3.tgz";
-        url  = "https://registry.yarnpkg.com/platform/-/platform-1.3.3.tgz";
-        sha1 = "646c77011899870b6a0903e75e997e8e51da7461";
-      };
-    }
-    {
-      name = "pn___pn_1.1.0.tgz";
-      path = fetchurl {
-        name = "pn___pn_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz";
-        sha1 = "e2f4cef0e219f463c179ab37463e4e1ecdccbafb";
-      };
-    }
-    {
-      name = "popper.js___popper.js_1.15.0.tgz";
-      path = fetchurl {
-        name = "popper.js___popper.js_1.15.0.tgz";
-        url  = "https://registry.yarnpkg.com/popper.js/-/popper.js-1.15.0.tgz";
-        sha1 = "5560b99bbad7647e9faa475c6b8056621f5a4ff2";
-      };
-    }
-    {
-      name = "popper.js___popper.js_1.14.7.tgz";
-      path = fetchurl {
-        name = "popper.js___popper.js_1.14.7.tgz";
-        url  = "https://registry.yarnpkg.com/popper.js/-/popper.js-1.14.7.tgz";
-        sha1 = "e31ec06cfac6a97a53280c3e55e4e0c860e7738e";
-      };
-    }
-    {
-      name = "portfinder___portfinder_1.0.25.tgz";
-      path = fetchurl {
-        name = "portfinder___portfinder_1.0.25.tgz";
-        url  = "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.25.tgz";
-        sha1 = "254fd337ffba869f4b9d37edc298059cb4d35eca";
-      };
-    }
-    {
-      name = "posix_character_classes___posix_character_classes_0.1.1.tgz";
-      path = fetchurl {
-        name = "posix_character_classes___posix_character_classes_0.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz";
-        sha1 = "01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab";
-      };
-    }
-    {
-      name = "postcss_calc___postcss_calc_7.0.1.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_colormin___postcss_colormin_4.0.3.tgz";
-      path = fetchurl {
-        name = "postcss_colormin___postcss_colormin_4.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz";
-        sha1 = "ae060bce93ed794ac71264f08132d550956bd381";
-      };
-    }
-    {
-      name = "postcss_convert_values___postcss_convert_values_4.0.1.tgz";
-      path = fetchurl {
-        name = "postcss_convert_values___postcss_convert_values_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz";
-        sha1 = "ca3813ed4da0f812f9d43703584e449ebe189a7f";
-      };
-    }
-    {
-      name = "postcss_discard_comments___postcss_discard_comments_4.0.2.tgz";
-      path = fetchurl {
-        name = "postcss_discard_comments___postcss_discard_comments_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz";
-        sha1 = "1fbabd2c246bff6aaad7997b2b0918f4d7af4033";
-      };
-    }
-    {
-      name = "postcss_discard_duplicates___postcss_discard_duplicates_4.0.2.tgz";
-      path = fetchurl {
-        name = "postcss_discard_duplicates___postcss_discard_duplicates_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz";
-        sha1 = "3fe133cd3c82282e550fc9b239176a9207b784eb";
-      };
-    }
-    {
-      name = "postcss_discard_empty___postcss_discard_empty_4.0.1.tgz";
-      path = fetchurl {
-        name = "postcss_discard_empty___postcss_discard_empty_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz";
-        sha1 = "c8c951e9f73ed9428019458444a02ad90bb9f765";
-      };
-    }
-    {
-      name = "postcss_discard_overridden___postcss_discard_overridden_4.0.1.tgz";
-      path = fetchurl {
-        name = "postcss_discard_overridden___postcss_discard_overridden_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz";
-        sha1 = "652aef8a96726f029f5e3e00146ee7a4e755ff57";
-      };
-    }
-    {
-      name = "postcss_merge_longhand___postcss_merge_longhand_4.0.11.tgz";
-      path = fetchurl {
-        name = "postcss_merge_longhand___postcss_merge_longhand_4.0.11.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz";
-        sha1 = "62f49a13e4a0ee04e7b98f42bb16062ca2549e24";
-      };
-    }
-    {
-      name = "postcss_merge_rules___postcss_merge_rules_4.0.3.tgz";
-      path = fetchurl {
-        name = "postcss_merge_rules___postcss_merge_rules_4.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz";
-        sha1 = "362bea4ff5a1f98e4075a713c6cb25aefef9a650";
-      };
-    }
-    {
-      name = "postcss_minify_font_values___postcss_minify_font_values_4.0.2.tgz";
-      path = fetchurl {
-        name = "postcss_minify_font_values___postcss_minify_font_values_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz";
-        sha1 = "cd4c344cce474343fac5d82206ab2cbcb8afd5a6";
-      };
-    }
-    {
-      name = "postcss_minify_gradients___postcss_minify_gradients_4.0.2.tgz";
-      path = fetchurl {
-        name = "postcss_minify_gradients___postcss_minify_gradients_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz";
-        sha1 = "93b29c2ff5099c535eecda56c4aa6e665a663471";
-      };
-    }
-    {
-      name = "postcss_minify_params___postcss_minify_params_4.0.2.tgz";
-      path = fetchurl {
-        name = "postcss_minify_params___postcss_minify_params_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz";
-        sha1 = "6b9cef030c11e35261f95f618c90036d680db874";
-      };
-    }
-    {
-      name = "postcss_minify_selectors___postcss_minify_selectors_4.0.2.tgz";
-      path = fetchurl {
-        name = "postcss_minify_selectors___postcss_minify_selectors_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz";
-        sha1 = "e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8";
-      };
-    }
-    {
-      name = "postcss_modules_extract_imports___postcss_modules_extract_imports_2.0.0.tgz";
-      path = fetchurl {
-        name = "postcss_modules_extract_imports___postcss_modules_extract_imports_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz";
-        sha1 = "818719a1ae1da325f9832446b01136eeb493cd7e";
-      };
-    }
-    {
-      name = "postcss_modules_local_by_default___postcss_modules_local_by_default_3.0.2.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_scope___postcss_modules_scope_2.1.0.tgz";
-      path = fetchurl {
-        name = "postcss_modules_scope___postcss_modules_scope_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.1.0.tgz";
-        sha1 = "ad3f5bf7856114f6fcab901b0502e2a2bc39d4eb";
-      };
-    }
-    {
-      name = "postcss_modules_values___postcss_modules_values_3.0.0.tgz";
-      path = fetchurl {
-        name = "postcss_modules_values___postcss_modules_values_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz";
-        sha1 = "5b5000d6ebae29b4255301b4a3a54574423e7f10";
-      };
-    }
-    {
-      name = "postcss_normalize_charset___postcss_normalize_charset_4.0.1.tgz";
-      path = fetchurl {
-        name = "postcss_normalize_charset___postcss_normalize_charset_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz";
-        sha1 = "8b35add3aee83a136b0471e0d59be58a50285dd4";
-      };
-    }
-    {
-      name = "postcss_normalize_display_values___postcss_normalize_display_values_4.0.2.tgz";
-      path = fetchurl {
-        name = "postcss_normalize_display_values___postcss_normalize_display_values_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz";
-        sha1 = "0dbe04a4ce9063d4667ed2be476bb830c825935a";
-      };
-    }
-    {
-      name = "postcss_normalize_positions___postcss_normalize_positions_4.0.2.tgz";
-      path = fetchurl {
-        name = "postcss_normalize_positions___postcss_normalize_positions_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz";
-        sha1 = "05f757f84f260437378368a91f8932d4b102917f";
-      };
-    }
-    {
-      name = "postcss_normalize_repeat_style___postcss_normalize_repeat_style_4.0.2.tgz";
-      path = fetchurl {
-        name = "postcss_normalize_repeat_style___postcss_normalize_repeat_style_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz";
-        sha1 = "c4ebbc289f3991a028d44751cbdd11918b17910c";
-      };
-    }
-    {
-      name = "postcss_normalize_string___postcss_normalize_string_4.0.2.tgz";
-      path = fetchurl {
-        name = "postcss_normalize_string___postcss_normalize_string_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz";
-        sha1 = "cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c";
-      };
-    }
-    {
-      name = "postcss_normalize_timing_functions___postcss_normalize_timing_functions_4.0.2.tgz";
-      path = fetchurl {
-        name = "postcss_normalize_timing_functions___postcss_normalize_timing_functions_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz";
-        sha1 = "8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9";
-      };
-    }
-    {
-      name = "postcss_normalize_unicode___postcss_normalize_unicode_4.0.1.tgz";
-      path = fetchurl {
-        name = "postcss_normalize_unicode___postcss_normalize_unicode_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz";
-        sha1 = "841bd48fdcf3019ad4baa7493a3d363b52ae1cfb";
-      };
-    }
-    {
-      name = "postcss_normalize_url___postcss_normalize_url_4.0.1.tgz";
-      path = fetchurl {
-        name = "postcss_normalize_url___postcss_normalize_url_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz";
-        sha1 = "10e437f86bc7c7e58f7b9652ed878daaa95faae1";
-      };
-    }
-    {
-      name = "postcss_normalize_whitespace___postcss_normalize_whitespace_4.0.2.tgz";
-      path = fetchurl {
-        name = "postcss_normalize_whitespace___postcss_normalize_whitespace_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz";
-        sha1 = "bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82";
-      };
-    }
-    {
-      name = "postcss_ordered_values___postcss_ordered_values_4.1.2.tgz";
-      path = fetchurl {
-        name = "postcss_ordered_values___postcss_ordered_values_4.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz";
-        sha1 = "0cf75c820ec7d5c4d280189559e0b571ebac0eee";
-      };
-    }
-    {
-      name = "postcss_reduce_initial___postcss_reduce_initial_4.0.3.tgz";
-      path = fetchurl {
-        name = "postcss_reduce_initial___postcss_reduce_initial_4.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz";
-        sha1 = "7fd42ebea5e9c814609639e2c2e84ae270ba48df";
-      };
-    }
-    {
-      name = "postcss_reduce_transforms___postcss_reduce_transforms_4.0.2.tgz";
-      path = fetchurl {
-        name = "postcss_reduce_transforms___postcss_reduce_transforms_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz";
-        sha1 = "17efa405eacc6e07be3414a5ca2d1074681d4e29";
-      };
-    }
-    {
-      name = "postcss_selector_parser___postcss_selector_parser_3.1.1.tgz";
-      path = fetchurl {
-        name = "postcss_selector_parser___postcss_selector_parser_3.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz";
-        sha1 = "4f875f4afb0c96573d5cf4d74011aee250a7e865";
-      };
-    }
-    {
-      name = "postcss_selector_parser___postcss_selector_parser_5.0.0.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_svgo___postcss_svgo_4.0.2.tgz";
-      path = fetchurl {
-        name = "postcss_svgo___postcss_svgo_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.2.tgz";
-        sha1 = "17b997bc711b333bab143aaed3b8d3d6e3d38258";
-      };
-    }
-    {
-      name = "postcss_unique_selectors___postcss_unique_selectors_4.0.1.tgz";
-      path = fetchurl {
-        name = "postcss_unique_selectors___postcss_unique_selectors_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz";
-        sha1 = "9446911f3289bfd64c6d680f073c03b1f9ee4bac";
-      };
-    }
-    {
-      name = "postcss_value_parser___postcss_value_parser_3.3.0.tgz";
-      path = fetchurl {
-        name = "postcss_value_parser___postcss_value_parser_3.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz";
-        sha1 = "87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15";
-      };
-    }
-    {
-      name = "postcss_value_parser___postcss_value_parser_3.3.1.tgz";
-      path = fetchurl {
-        name = "postcss_value_parser___postcss_value_parser_3.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz";
-        sha1 = "9ff822547e2893213cf1c30efa51ac5fd1ba8281";
-      };
-    }
-    {
-      name = "postcss_value_parser___postcss_value_parser_4.0.0.tgz";
-      path = fetchurl {
-        name = "postcss_value_parser___postcss_value_parser_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.0.tgz";
-        sha1 = "99a983d365f7b2ad8d0f9b8c3094926eab4b936d";
-      };
-    }
-    {
-      name = "postcss___postcss_5.2.18.tgz";
-      path = fetchurl {
-        name = "postcss___postcss_5.2.18.tgz";
-        url  = "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz";
-        sha1 = "badfa1497d46244f6390f58b319830d9107853c5";
-      };
-    }
-    {
-      name = "postcss___postcss_7.0.16.tgz";
-      path = fetchurl {
-        name = "postcss___postcss_7.0.16.tgz";
-        url  = "https://registry.yarnpkg.com/postcss/-/postcss-7.0.16.tgz";
-        sha1 = "48f64f1b4b558cb8b52c88987724359acb010da2";
-      };
-    }
-    {
-      name = "postcss___postcss_7.0.17.tgz";
-      path = fetchurl {
-        name = "postcss___postcss_7.0.17.tgz";
-        url  = "https://registry.yarnpkg.com/postcss/-/postcss-7.0.17.tgz";
-        sha1 = "4da1bdff5322d4a0acaab4d87f3e782436bad31f";
-      };
-    }
-    {
-      name = "prefix_style___prefix_style_2.0.1.tgz";
-      path = fetchurl {
-        name = "prefix_style___prefix_style_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/prefix-style/-/prefix-style-2.0.1.tgz";
-        sha1 = "66bba9a870cfda308a5dc20e85e9120932c95a06";
-      };
-    }
-    {
-      name = "prelude_ls___prelude_ls_1.1.2.tgz";
-      path = fetchurl {
-        name = "prelude_ls___prelude_ls_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz";
-        sha1 = "21932a549f5e52ffd9a827f570e04be62a97da54";
-      };
-    }
-    {
-      name = "prepend_http___prepend_http_1.0.4.tgz";
-      path = fetchurl {
-        name = "prepend_http___prepend_http_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz";
-        sha1 = "d4f4562b0ce3696e41ac52d0e002e57a635dc6dc";
-      };
-    }
-    {
-      name = "prettier___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 = "pretty_bytes___pretty_bytes_5.3.0.tgz";
-      path = fetchurl {
-        name = "pretty_bytes___pretty_bytes_5.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.3.0.tgz";
-        sha1 = "f2849e27db79fb4d6cfe24764fc4134f165989f2";
-      };
-    }
-    {
-      name = "pretty_error___pretty_error_2.1.1.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_format___pretty_format_24.8.0.tgz";
-      path = fetchurl {
-        name = "pretty_format___pretty_format_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.8.0.tgz";
-        sha1 = "8dae7044f58db7cb8be245383b565a963e3c27f2";
-      };
-    }
-    {
-      name = "pretty_format___pretty_format_24.9.0.tgz";
-      path = fetchurl {
-        name = "pretty_format___pretty_format_24.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.9.0.tgz";
-        sha1 = "12fac31b37019a4eea3c11aa9a959eb7628aa7c9";
-      };
-    }
-    {
-      name = "pretty_format___pretty_format_25.5.0.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 = "private___private_0.1.8.tgz";
-      path = fetchurl {
-        name = "private___private_0.1.8.tgz";
-        url  = "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz";
-        sha1 = "2381edb3689f7a53d653190060fcf822d2f368ff";
-      };
-    }
-    {
-      name = "process_nextick_args___process_nextick_args_2.0.1.tgz";
-      path = fetchurl {
-        name = "process_nextick_args___process_nextick_args_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz";
-        sha1 = "7820d9b16120cc55ca9ae7792680ae7dba6d7fe2";
-      };
-    }
-    {
-      name = "process___process_0.11.10.tgz";
-      path = fetchurl {
-        name = "process___process_0.11.10.tgz";
-        url  = "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz";
-        sha1 = "7332300e840161bda3e69a1d1d91a7d4bc16f182";
-      };
-    }
-    {
-      name = "progress___progress_2.0.3.tgz";
-      path = fetchurl {
-        name = "progress___progress_2.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz";
-        sha1 = "7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8";
-      };
-    }
-    {
-      name = "promise_inflight___promise_inflight_1.0.1.tgz";
-      path = fetchurl {
-        name = "promise_inflight___promise_inflight_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz";
-        sha1 = "98472870bf228132fcbdd868129bad12c3c029e3";
-      };
-    }
-    {
-      name = "promise_polyfill___promise_polyfill_8.1.3.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___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 = "prompts___prompts_2.1.0.tgz";
-      path = fetchurl {
-        name = "prompts___prompts_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/prompts/-/prompts-2.1.0.tgz";
-        sha1 = "bf90bc71f6065d255ea2bdc0fe6520485c1b45db";
-      };
-    }
-    {
-      name = "prop_types___prop_types_15.5.8.tgz";
-      path = fetchurl {
-        name = "prop_types___prop_types_15.5.8.tgz";
-        url  = "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.8.tgz";
-        sha1 = "6b7b2e141083be38c8595aa51fc55775c7199394";
-      };
-    }
-    {
-      name = "prop_types___prop_types_15.6.2.tgz";
-      path = fetchurl {
-        name = "prop_types___prop_types_15.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz";
-        sha1 = "05d5ca77b4453e985d60fc7ff8c859094a497102";
-      };
-    }
-    {
-      name = "prop_types___prop_types_15.7.2.tgz";
-      path = fetchurl {
-        name = "prop_types___prop_types_15.7.2.tgz";
-        url  = "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz";
-        sha1 = "52c41e75b8c87e72b9d9360e0206b99dcbffa6c5";
-      };
-    }
-    {
-      name = "proxy_addr___proxy_addr_2.0.4.tgz";
-      path = fetchurl {
-        name = "proxy_addr___proxy_addr_2.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.4.tgz";
-        sha1 = "ecfc733bf22ff8c6f407fa275327b9ab67e48b93";
-      };
-    }
-    {
-      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 = "prr___prr_1.0.1.tgz";
-      path = fetchurl {
-        name = "prr___prr_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz";
-        sha1 = "d3fc114ba06995a45ec6893f484ceb1d78f5f476";
-      };
-    }
-    {
-      name = "psl___psl_1.2.0.tgz";
-      path = fetchurl {
-        name = "psl___psl_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/psl/-/psl-1.2.0.tgz";
-        sha1 = "df12b5b1b3a30f51c329eacbdef98f3a6e136dc6";
-      };
-    }
-    {
-      name = "public_encrypt___public_encrypt_4.0.3.tgz";
-      path = fetchurl {
-        name = "public_encrypt___public_encrypt_4.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz";
-        sha1 = "4fcc9d77a07e48ba7527e7cbe0de33d0701331e0";
-      };
-    }
-    {
-      name = "pump___pump_2.0.1.tgz";
-      path = fetchurl {
-        name = "pump___pump_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz";
-        sha1 = "12399add6e4cf7526d973cbc8b5ce2e2908b3909";
-      };
-    }
-    {
-      name = "pump___pump_3.0.0.tgz";
-      path = fetchurl {
-        name = "pump___pump_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz";
-        sha1 = "b4a2116815bde2f4e1ea602354e8c75565107a64";
-      };
-    }
-    {
-      name = "pumpify___pumpify_1.5.1.tgz";
-      path = fetchurl {
-        name = "pumpify___pumpify_1.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz";
-        sha1 = "36513be246ab27570b1a374a5ce278bfd74370ce";
-      };
-    }
-    {
-      name = "punycode___punycode_1.3.2.tgz";
-      path = fetchurl {
-        name = "punycode___punycode_1.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz";
-        sha1 = "9653a036fb7c1ee42342f2325cceefea3926c48d";
-      };
-    }
-    {
-      name = "punycode___punycode_1.4.1.tgz";
-      path = fetchurl {
-        name = "punycode___punycode_1.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz";
-        sha1 = "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e";
-      };
-    }
-    {
-      name = "punycode___punycode_2.1.1.tgz";
-      path = fetchurl {
-        name = "punycode___punycode_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz";
-        sha1 = "b58b010ac40c22c5657616c8d2c2c02c7bf479ec";
-      };
-    }
-    {
-      name = "q___q_1.5.1.tgz";
-      path = fetchurl {
-        name = "q___q_1.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz";
-        sha1 = "7e32f75b41381291d04611f1bf14109ac00651d7";
-      };
-    }
-    {
-      name = "qs___qs_6.5.1.tgz";
-      path = fetchurl {
-        name = "qs___qs_6.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz";
-        sha1 = "349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8";
-      };
-    }
-    {
-      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.9.1.tgz";
-      path = fetchurl {
-        name = "qs___qs_6.9.1.tgz";
-        url  = "https://registry.yarnpkg.com/qs/-/qs-6.9.1.tgz";
-        sha1 = "20082c65cb78223635ab1a9eaca8875a29bf8ec9";
-      };
-    }
-    {
-      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 = "query_string___query_string_4.3.4.tgz";
-      path = fetchurl {
-        name = "query_string___query_string_4.3.4.tgz";
-        url  = "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz";
-        sha1 = "bbb693b9ca915c232515b228b1a02b609043dbeb";
-      };
-    }
-    {
-      name = "querystring_es3___querystring_es3_0.2.1.tgz";
-      path = fetchurl {
-        name = "querystring_es3___querystring_es3_0.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz";
-        sha1 = "9ec61f79049875707d69414596fd907a4d711e73";
-      };
-    }
-    {
-      name = "querystring___querystring_0.2.0.tgz";
-      path = fetchurl {
-        name = "querystring___querystring_0.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz";
-        sha1 = "b209849203bb25df820da756e747005878521620";
-      };
-    }
-    {
-      name = "querystringify___querystringify_2.1.1.tgz";
-      path = fetchurl {
-        name = "querystringify___querystringify_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz";
-        sha1 = "60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e";
-      };
-    }
-    {
-      name = "raf___raf_3.4.0.tgz";
-      path = fetchurl {
-        name = "raf___raf_3.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/raf/-/raf-3.4.0.tgz";
-        sha1 = "a28876881b4bc2ca9117d4138163ddb80f781575";
-      };
-    }
-    {
-      name = "railroad_diagrams___railroad_diagrams_1.0.0.tgz";
-      path = fetchurl {
-        name = "railroad_diagrams___railroad_diagrams_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz";
-        sha1 = "eb7e6267548ddedfb899c1b90e57374559cddb7e";
-      };
-    }
-    {
-      name = "ramda___ramda_0.26.1.tgz";
-      path = fetchurl {
-        name = "ramda___ramda_0.26.1.tgz";
-        url  = "https://registry.yarnpkg.com/ramda/-/ramda-0.26.1.tgz";
-        sha1 = "8d41351eb8111c55353617fc3bbffad8e4d35d06";
-      };
-    }
-    {
-      name = "randexp___randexp_0.4.6.tgz";
-      path = fetchurl {
-        name = "randexp___randexp_0.4.6.tgz";
-        url  = "https://registry.yarnpkg.com/randexp/-/randexp-0.4.6.tgz";
-        sha1 = "e986ad5e5e31dae13ddd6f7b3019aa7c87f60ca3";
-      };
-    }
-    {
-      name = "randombytes___randombytes_2.1.0.tgz";
-      path = fetchurl {
-        name = "randombytes___randombytes_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz";
-        sha1 = "df6f84372f0270dc65cdf6291349ab7a473d4f2a";
-      };
-    }
-    {
-      name = "randomfill___randomfill_1.0.4.tgz";
-      path = fetchurl {
-        name = "randomfill___randomfill_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz";
-        sha1 = "c92196fc86ab42be983f1bf31778224931d61458";
-      };
-    }
-    {
-      name = "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 = "range_parser___range_parser_1.2.0.tgz";
-      path = fetchurl {
-        name = "range_parser___range_parser_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz";
-        sha1 = "f49be6b487894ddc40dcc94a322f611092e00d5e";
-      };
-    }
-    {
-      name = "raw_body___raw_body_2.3.2.tgz";
-      path = fetchurl {
-        name = "raw_body___raw_body_2.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz";
-        sha1 = "bcd60c77d3eb93cde0050295c3f379389bc88f89";
-      };
-    }
-    {
-      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 = "raw_loader___raw_loader_4.0.1.tgz";
-      path = fetchurl {
-        name = "raw_loader___raw_loader_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/raw-loader/-/raw-loader-4.0.1.tgz";
-        sha1 = "14e1f726a359b68437e183d5a5b7d33a3eba6933";
-      };
-    }
-    {
-      name = "react_codemirror2___react_codemirror2_4.3.0.tgz";
-      path = fetchurl {
-        name = "react_codemirror2___react_codemirror2_4.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/react-codemirror2/-/react-codemirror2-4.3.0.tgz";
-        sha1 = "e79aedca4da60d22402d2cd74f2885a3e5c009fd";
-      };
-    }
-    {
-      name = "react_copy_to_clipboard___react_copy_to_clipboard_5.0.1.tgz";
-      path = fetchurl {
-        name = "react_copy_to_clipboard___react_copy_to_clipboard_5.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/react-copy-to-clipboard/-/react-copy-to-clipboard-5.0.1.tgz";
-        sha1 = "8eae107bb400be73132ed3b6a7b4fb156090208e";
-      };
-    }
-    {
-      name = "react_datepicker___react_datepicker_2.1.0.tgz";
-      path = fetchurl {
-        name = "react_datepicker___react_datepicker_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/react-datepicker/-/react-datepicker-2.1.0.tgz";
-        sha1 = "d9b9dfe78eaf4214e93a77d150cdafbc49ef522c";
-      };
-    }
-    {
-      name = "react_dimensions___react_dimensions_1.3.1.tgz";
-      path = fetchurl {
-        name = "react_dimensions___react_dimensions_1.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/react-dimensions/-/react-dimensions-1.3.1.tgz";
-        sha1 = "89c29bcd48828a74faeb07da1e461e1a354ccc48";
-      };
-    }
-    {
-      name = "react_dnd_html5_backend___react_dnd_html5_backend_9.5.1.tgz";
-      path = fetchurl {
-        name = "react_dnd_html5_backend___react_dnd_html5_backend_9.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/react-dnd-html5-backend/-/react-dnd-html5-backend-9.5.1.tgz";
-        sha1 = "e6a0aed3ece800c1abe004f9ed9991513e2e644c";
-      };
-    }
-    {
-      name = "react_dnd___react_dnd_9.5.1.tgz";
-      path = fetchurl {
-        name = "react_dnd___react_dnd_9.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/react-dnd/-/react-dnd-9.5.1.tgz";
-        sha1 = "907e55c791d6c50cbed1a4021c14b989b86ac467";
-      };
-    }
-    {
-      name = "react_dom___react_dom_16.8.2.tgz";
-      path = fetchurl {
-        name = "react_dom___react_dom_16.8.2.tgz";
-        url  = "https://registry.yarnpkg.com/react-dom/-/react-dom-16.8.2.tgz";
-        sha1 = "7c8a69545dd554d45d66442230ba04a6a0a3c3d3";
-      };
-    }
-    {
-      name = "react_draggable___react_draggable_3.0.5.tgz";
-      path = fetchurl {
-        name = "react_draggable___react_draggable_3.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/react-draggable/-/react-draggable-3.0.5.tgz";
-        sha1 = "c031e0ed4313531f9409d6cd84c8ebcec0ddfe2d";
-      };
-    }
-    {
-      name = "react_draggable___react_draggable_3.3.0.tgz";
-      path = fetchurl {
-        name = "react_draggable___react_draggable_3.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/react-draggable/-/react-draggable-3.3.0.tgz";
-        sha1 = "2ed7ea3f92e7d742d747f9e6324860606cd4d997";
-      };
-    }
-    {
-      name = "react_grid_layout___react_grid_layout_0.16.6.tgz";
-      path = fetchurl {
-        name = "react_grid_layout___react_grid_layout_0.16.6.tgz";
-        url  = "https://registry.yarnpkg.com/react-grid-layout/-/react-grid-layout-0.16.6.tgz";
-        sha1 = "9b2407a2b946c2260ebaf66f13b556e1da4efeb2";
-      };
-    }
-    {
-      name = "react_is___react_is_16.13.1.tgz";
-      path = fetchurl {
-        name = "react_is___react_is_16.13.1.tgz";
-        url  = "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz";
-        sha1 = "789729a4dc36de2999dc156dd6c1d9c18cea56a4";
-      };
-    }
-    {
-      name = "react_is___react_is_16.5.2.tgz";
-      path = fetchurl {
-        name = "react_is___react_is_16.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/react-is/-/react-is-16.5.2.tgz";
-        sha1 = "e2a7b7c3f5d48062eb769fcb123505eb928722e3";
-      };
-    }
-    {
-      name = "react_is___react_is_16.12.0.tgz";
-      path = fetchurl {
-        name = "react_is___react_is_16.12.0.tgz";
-        url  = "https://registry.yarnpkg.com/react-is/-/react-is-16.12.0.tgz";
-        sha1 = "2cc0fe0fba742d97fd527c42a13bec4eeb06241c";
-      };
-    }
-    {
-      name = "react_is___react_is_16.11.0.tgz";
-      path = fetchurl {
-        name = "react_is___react_is_16.11.0.tgz";
-        url  = "https://registry.yarnpkg.com/react-is/-/react-is-16.11.0.tgz";
-        sha1 = "b85dfecd48ad1ce469ff558a882ca8e8313928fa";
-      };
-    }
-    {
-      name = "react_is___react_is_16.8.6.tgz";
-      path = fetchurl {
-        name = "react_is___react_is_16.8.6.tgz";
-        url  = "https://registry.yarnpkg.com/react-is/-/react-is-16.8.6.tgz";
-        sha1 = "5bbc1e2d29141c9fbdfed456343fe2bc430a6a16";
-      };
-    }
-    {
-      name = "react_lifecycles_compat___react_lifecycles_compat_3.0.4.tgz";
-      path = fetchurl {
-        name = "react_lifecycles_compat___react_lifecycles_compat_3.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz";
-        sha1 = "4f1a273afdfc8f3488a8c516bfda78f872352362";
-      };
-    }
-    {
-      name = "react_loadable___react_loadable_5.5.0.tgz";
-      path = fetchurl {
-        name = "react_loadable___react_loadable_5.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/react-loadable/-/react-loadable-5.5.0.tgz";
-        sha1 = "582251679d3da86c32aae2c8e689c59f1196d8c4";
-      };
-    }
-    {
-      name = "react_markdown___react_markdown_4.0.4.tgz";
-      path = fetchurl {
-        name = "react_markdown___react_markdown_4.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/react-markdown/-/react-markdown-4.0.4.tgz";
-        sha1 = "bdc882bc3eb4dfac45d57bfe58d8f482c5a85a64";
-      };
-    }
-    {
-      name = "react_monaco_editor___react_monaco_editor_0.33.0.tgz";
-      path = fetchurl {
-        name = "react_monaco_editor___react_monaco_editor_0.33.0.tgz";
-        url  = "https://registry.yarnpkg.com/react-monaco-editor/-/react-monaco-editor-0.33.0.tgz";
-        sha1 = "822c331836ec39b1160faf22b0c722266f822460";
-      };
-    }
-    {
-      name = "react_onclickoutside___react_onclickoutside_6.7.1.tgz";
-      path = fetchurl {
-        name = "react_onclickoutside___react_onclickoutside_6.7.1.tgz";
-        url  = "https://registry.yarnpkg.com/react-onclickoutside/-/react-onclickoutside-6.7.1.tgz";
-        sha1 = "6a5b5b8b4eae6b776259712c89c8a2b36b17be93";
-      };
-    }
-    {
-      name = "react_popper___react_popper_1.3.3.tgz";
-      path = fetchurl {
-        name = "react_popper___react_popper_1.3.3.tgz";
-        url  = "https://registry.yarnpkg.com/react-popper/-/react-popper-1.3.3.tgz";
-        sha1 = "2c6cef7515a991256b4f0536cd4bdcb58a7b6af6";
-      };
-    }
-    {
-      name = "react_redux___react_redux_7.2.0.tgz";
-      path = fetchurl {
-        name = "react_redux___react_redux_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/react-redux/-/react-redux-7.2.0.tgz";
-        sha1 = "f970f62192b3981642fec46fd0db18a074fe879d";
-      };
-    }
-    {
-      name = "react_resizable___react_resizable_1.7.5.tgz";
-      path = fetchurl {
-        name = "react_resizable___react_resizable_1.7.5.tgz";
-        url  = "https://registry.yarnpkg.com/react-resizable/-/react-resizable-1.7.5.tgz";
-        sha1 = "83eb75bb3684da6989bbbf4f826e1470f0af902e";
-      };
-    }
-    {
-      name = "react_router_dom___react_router_dom_5.2.0.tgz";
-      path = fetchurl {
-        name = "react_router_dom___react_router_dom_5.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.2.0.tgz";
-        sha1 = "9e65a4d0c45e13289e66c7b17c7e175d0ea15662";
-      };
-    }
-    {
-      name = "react_router___react_router_5.2.0.tgz";
-      path = fetchurl {
-        name = "react_router___react_router_5.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/react-router/-/react-router-5.2.0.tgz";
-        sha1 = "424e75641ca8747fbf76e5ecca69781aa37ea293";
-      };
-    }
-    {
-      name = "react_scrollbars_custom___react_scrollbars_custom_4.0.0_alpha.8.tgz";
-      path = fetchurl {
-        name = "react_scrollbars_custom___react_scrollbars_custom_4.0.0_alpha.8.tgz";
-        url  = "https://registry.yarnpkg.com/react-scrollbars-custom/-/react-scrollbars-custom-4.0.0-alpha.8.tgz";
-        sha1 = "dc09b61831b59d93e24f0ec18dae84c9f3fc14e8";
-      };
-    }
-    {
-      name = "react_test_renderer___react_test_renderer_16.5.2.tgz";
-      path = fetchurl {
-        name = "react_test_renderer___react_test_renderer_16.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.5.2.tgz";
-        sha1 = "92e9d2c6f763b9821b2e0b22f994ee675068b5ae";
-      };
-    }
-    {
-      name = "react_virtualized___react_virtualized_9.20.1.tgz";
-      path = fetchurl {
-        name = "react_virtualized___react_virtualized_9.20.1.tgz";
-        url  = "https://registry.yarnpkg.com/react-virtualized/-/react-virtualized-9.20.1.tgz";
-        sha1 = "02dc08fe9070386b8c48e2ac56bce7af0208d22d";
-      };
-    }
-    {
-      name = "react___react_16.11.0.tgz";
-      path = fetchurl {
-        name = "react___react_16.11.0.tgz";
-        url  = "https://registry.yarnpkg.com/react/-/react-16.11.0.tgz";
-        sha1 = "d294545fe62299ccee83363599bf904e4a07fdbb";
-      };
-    }
-    {
-      name = "read_pkg_up___read_pkg_up_4.0.0.tgz";
-      path = fetchurl {
-        name = "read_pkg_up___read_pkg_up_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-4.0.0.tgz";
-        sha1 = "1b221c6088ba7799601c808f91161c66e58f8978";
-      };
-    }
-    {
-      name = "read_pkg___read_pkg_3.0.0.tgz";
-      path = fetchurl {
-        name = "read_pkg___read_pkg_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz";
-        sha1 = "9cbc686978fee65d16c00e2b19c237fcf6e38389";
-      };
-    }
-    {
-      name = "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 = "readable_stream___readable_stream_3.4.0.tgz";
-      path = fetchurl {
-        name = "readable_stream___readable_stream_3.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz";
-        sha1 = "a51c26754658e0a3c21dbf59163bd45ba6f447fc";
-      };
-    }
-    {
-      name = "readdirp___readdirp_2.2.1.tgz";
-      path = fetchurl {
-        name = "readdirp___readdirp_2.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz";
-        sha1 = "0e87622a3325aa33e892285caf8b4e846529a525";
-      };
-    }
-    {
-      name = "readdirp___readdirp_3.1.1.tgz";
-      path = fetchurl {
-        name = "readdirp___readdirp_3.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/readdirp/-/readdirp-3.1.1.tgz";
-        sha1 = "b158123ac343c8b0f31d65680269cc0fc1025db1";
-      };
-    }
-    {
-      name = "realpath_native___realpath_native_1.1.0.tgz";
-      path = fetchurl {
-        name = "realpath_native___realpath_native_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.1.0.tgz";
-        sha1 = "2003294fea23fb0672f2476ebe22fcf498a2d65c";
-      };
-    }
-    {
-      name = "redux_auth_wrapper___redux_auth_wrapper_1.1.0.tgz";
-      path = fetchurl {
-        name = "redux_auth_wrapper___redux_auth_wrapper_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/redux-auth-wrapper/-/redux-auth-wrapper-1.1.0.tgz";
-        sha1 = "ccd4a753fe2134eb93c44f4e5781054577f6244a";
-      };
-    }
-    {
-      name = "redux_thunk___redux_thunk_2.3.0.tgz";
-      path = fetchurl {
-        name = "redux_thunk___redux_thunk_2.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.3.0.tgz";
-        sha1 = "51c2c19a185ed5187aaa9a2d08b666d0d6467622";
-      };
-    }
-    {
-      name = "redux___redux_4.0.0.tgz";
-      path = fetchurl {
-        name = "redux___redux_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/redux/-/redux-4.0.0.tgz";
-        sha1 = "aa698a92b729315d22b34a0553d7e6533555cc03";
-      };
-    }
-    {
-      name = "redux___redux_4.0.5.tgz";
-      path = fetchurl {
-        name = "redux___redux_4.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/redux/-/redux-4.0.5.tgz";
-        sha1 = "4db5de5816e17891de8a80c424232d06f051d93f";
-      };
-    }
-    {
-      name = "regenerate_unicode_properties___regenerate_unicode_properties_8.1.0.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 = "regenerator_runtime___regenerator_runtime_0.10.5.tgz";
-      path = fetchurl {
-        name = "regenerator_runtime___regenerator_runtime_0.10.5.tgz";
-        url  = "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz";
-        sha1 = "336c3efc1220adcedda2c9fab67b5a7955a33658";
-      };
-    }
-    {
-      name = "regenerator_runtime___regenerator_runtime_0.11.1.tgz";
-      path = fetchurl {
-        name = "regenerator_runtime___regenerator_runtime_0.11.1.tgz";
-        url  = "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz";
-        sha1 = "be05ad7f9bf7d22e056f9726cee5017fbf19e2e9";
-      };
-    }
-    {
-      name = "regenerator_runtime___regenerator_runtime_0.13.3.tgz";
-      path = fetchurl {
-        name = "regenerator_runtime___regenerator_runtime_0.13.3.tgz";
-        url  = "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz";
-        sha1 = "7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5";
-      };
-    }
-    {
-      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 = "regenerator_transform___regenerator_transform_0.14.1.tgz";
-      path = fetchurl {
-        name = "regenerator_transform___regenerator_transform_0.14.1.tgz";
-        url  = "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.1.tgz";
-        sha1 = "3b2fce4e1ab7732c08f665dfdb314749c7ddd2fb";
-      };
-    }
-    {
-      name = "regex_not___regex_not_1.0.2.tgz";
-      path = fetchurl {
-        name = "regex_not___regex_not_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz";
-        sha1 = "1f4ece27e00b0b65e0247a6810e6a85d83a5752c";
-      };
-    }
-    {
-      name = "regexp_tree___regexp_tree_0.1.11.tgz";
-      path = fetchurl {
-        name = "regexp_tree___regexp_tree_0.1.11.tgz";
-        url  = "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.11.tgz";
-        sha1 = "c9c7f00fcf722e0a56c7390983a7a63dd6c272f3";
-      };
-    }
-    {
-      name = "regexp.prototype.flags___regexp.prototype.flags_1.3.0.tgz";
-      path = fetchurl {
-        name = "regexp.prototype.flags___regexp.prototype.flags_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz";
-        sha1 = "7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75";
-      };
-    }
-    {
-      name = "regexpp___regexpp_2.0.1.tgz";
-      path = fetchurl {
-        name = "regexpp___regexpp_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz";
-        sha1 = "8d19d31cf632482b589049f8281f93dbcba4d07f";
-      };
-    }
-    {
-      name = "regexpu_core___regexpu_core_4.5.4.tgz";
-      path = fetchurl {
-        name = "regexpu_core___regexpu_core_4.5.4.tgz";
-        url  = "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.5.4.tgz";
-        sha1 = "080d9d02289aa87fe1667a4f5136bc98a6aebaae";
-      };
-    }
-    {
-      name = "regjsgen___regjsgen_0.5.0.tgz";
-      path = fetchurl {
-        name = "regjsgen___regjsgen_0.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.0.tgz";
-        sha1 = "a7634dc08f89209c2049adda3525711fb97265dd";
-      };
-    }
-    {
-      name = "regjsparser___regjsparser_0.6.0.tgz";
-      path = fetchurl {
-        name = "regjsparser___regjsparser_0.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz";
-        sha1 = "f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c";
-      };
-    }
-    {
-      name = "relateurl___relateurl_0.2.7.tgz";
-      path = fetchurl {
-        name = "relateurl___relateurl_0.2.7.tgz";
-        url  = "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz";
-        sha1 = "54dbf377e51440aca90a4cd274600d3ff2d888a9";
-      };
-    }
-    {
-      name = "remark_parse___remark_parse_5.0.0.tgz";
-      path = fetchurl {
-        name = "remark_parse___remark_parse_5.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/remark-parse/-/remark-parse-5.0.0.tgz";
-        sha1 = "4c077f9e499044d1d5c13f80d7a98cf7b9285d95";
-      };
-    }
-    {
-      name = "remove_trailing_separator___remove_trailing_separator_1.1.0.tgz";
-      path = fetchurl {
-        name = "remove_trailing_separator___remove_trailing_separator_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz";
-        sha1 = "c24bce2a283adad5bc3f58e0d48249b92379d8ef";
-      };
-    }
-    {
-      name = "renderkid___renderkid_2.0.3.tgz";
-      path = fetchurl {
-        name = "renderkid___renderkid_2.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.3.tgz";
-        sha1 = "380179c2ff5ae1365c522bf2fcfcff01c5b74149";
-      };
-    }
-    {
-      name = "repeat_element___repeat_element_1.1.3.tgz";
-      path = fetchurl {
-        name = "repeat_element___repeat_element_1.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz";
-        sha1 = "782e0d825c0c5a3bb39731f84efee6b742e6b1ce";
-      };
-    }
-    {
-      name = "repeat_string___repeat_string_1.6.1.tgz";
-      path = fetchurl {
-        name = "repeat_string___repeat_string_1.6.1.tgz";
-        url  = "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz";
-        sha1 = "8dcae470e1c88abc2d600fff4a776286da75e637";
-      };
-    }
-    {
-      name = "replace_ext___replace_ext_1.0.0.tgz";
-      path = fetchurl {
-        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_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_promise_core___request_promise_core_1.1.2.tgz";
-      path = fetchurl {
-        name = "request_promise_core___request_promise_core_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.2.tgz";
-        sha1 = "339f6aababcafdb31c799ff158700336301d3346";
-      };
-    }
-    {
-      name = "request_promise_native___request_promise_native_1.0.7.tgz";
-      path = fetchurl {
-        name = "request_promise_native___request_promise_native_1.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.7.tgz";
-        sha1 = "a49868a624bdea5069f1251d0a836e0d89aa2c59";
-      };
-    }
-    {
-      name = "request___request_2.88.0.tgz";
-      path = fetchurl {
-        name = "request___request_2.88.0.tgz";
-        url  = "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz";
-        sha1 = "9c2fca4f7d35b592efe57c7f0a55e81052124fef";
-      };
-    }
-    {
-      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_1.0.1.tgz";
-      path = fetchurl {
-        name = "require_main_filename___require_main_filename_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz";
-        sha1 = "97f717b69d48784f5f526a6c5aa8ffdda055a4d1";
-      };
-    }
-    {
-      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 = "requires_port___requires_port_1.0.0.tgz";
-      path = fetchurl {
-        name = "requires_port___requires_port_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz";
-        sha1 = "925d2601d39ac485e091cf0da5c6e694dc3dcaff";
-      };
-    }
-    {
-      name = "reselect___reselect_4.0.0.tgz";
-      path = fetchurl {
-        name = "reselect___reselect_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/reselect/-/reselect-4.0.0.tgz";
-        sha1 = "f2529830e5d3d0e021408b246a206ef4ea4437f7";
-      };
-    }
-    {
-      name = "resolve_cwd___resolve_cwd_2.0.0.tgz";
-      path = fetchurl {
-        name = "resolve_cwd___resolve_cwd_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz";
-        sha1 = "00a9f7387556e27038eae232caa372a6a59b665a";
-      };
-    }
-    {
-      name = "resolve_dir___resolve_dir_1.0.1.tgz";
-      path = fetchurl {
-        name = "resolve_dir___resolve_dir_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz";
-        sha1 = "79a40644c362be82f26effe739c9bb5382046f43";
-      };
-    }
-    {
-      name = "resolve_from___resolve_from_3.0.0.tgz";
-      path = fetchurl {
-        name = "resolve_from___resolve_from_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz";
-        sha1 = "b22c7af7d9d6881bc8b6e653335eebcb0a188748";
-      };
-    }
-    {
-      name = "resolve_from___resolve_from_4.0.0.tgz";
-      path = fetchurl {
-        name = "resolve_from___resolve_from_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz";
-        sha1 = "4abcd852ad32dd7baabfe9b40e00a36db5f392e6";
-      };
-    }
-    {
-      name = "resolve_pathname___resolve_pathname_3.0.0.tgz";
-      path = fetchurl {
-        name = "resolve_pathname___resolve_pathname_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz";
-        sha1 = "99d02224d3cf263689becbb393bc560313025dcd";
-      };
-    }
-    {
-      name = "resolve_url___resolve_url_0.2.1.tgz";
-      path = fetchurl {
-        name = "resolve_url___resolve_url_0.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz";
-        sha1 = "2c637fe77c893afd2a663fe21aa9080068e2052a";
-      };
-    }
-    {
-      name = "resolve___resolve_1.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 = "resolve___resolve_1.8.1.tgz";
-      path = fetchurl {
-        name = "resolve___resolve_1.8.1.tgz";
-        url  = "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz";
-        sha1 = "82f1ec19a423ac1fbd080b0bab06ba36e84a7a26";
-      };
-    }
-    {
-      name = "resolve___resolve_1.11.1.tgz";
-      path = fetchurl {
-        name = "resolve___resolve_1.11.1.tgz";
-        url  = "https://registry.yarnpkg.com/resolve/-/resolve-1.11.1.tgz";
-        sha1 = "ea10d8110376982fef578df8fc30b9ac30a07a3e";
-      };
-    }
-    {
-      name = "resolve___resolve_1.12.0.tgz";
-      path = fetchurl {
-        name = "resolve___resolve_1.12.0.tgz";
-        url  = "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz";
-        sha1 = "3fc644a35c84a48554609ff26ec52b66fa577df6";
-      };
-    }
-    {
-      name = "restore_cursor___restore_cursor_1.0.1.tgz";
-      path = fetchurl {
-        name = "restore_cursor___restore_cursor_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz";
-        sha1 = "34661f46886327fed2991479152252df92daa541";
-      };
-    }
-    {
-      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 = "restore_cursor___restore_cursor_3.1.0.tgz";
-      path = fetchurl {
-        name = "restore_cursor___restore_cursor_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz";
-        sha1 = "39f67c54b3a7a58cea5236d95cf0034239631f7e";
-      };
-    }
-    {
-      name = "ret___ret_0.1.15.tgz";
-      path = fetchurl {
-        name = "ret___ret_0.1.15.tgz";
-        url  = "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz";
-        sha1 = "b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc";
-      };
-    }
-    {
-      name = "retry___retry_0.12.0.tgz";
-      path = fetchurl {
-        name = "retry___retry_0.12.0.tgz";
-        url  = "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz";
-        sha1 = "1b42a6266a21f07421d1b0b54b7dc167b01c013b";
-      };
-    }
-    {
-      name = "rgb_regex___rgb_regex_1.0.1.tgz";
-      path = fetchurl {
-        name = "rgb_regex___rgb_regex_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz";
-        sha1 = "c0e0d6882df0e23be254a475e8edd41915feaeb1";
-      };
-    }
-    {
-      name = "rgba_regex___rgba_regex_1.0.0.tgz";
-      path = fetchurl {
-        name = "rgba_regex___rgba_regex_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz";
-        sha1 = "43374e2e2ca0968b0ef1523460b7d730ff22eeb3";
-      };
-    }
-    {
-      name = "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";
-        url  = "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz";
-        sha1 = "b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab";
-      };
-    }
-    {
-      name = "rimraf___rimraf_2.7.1.tgz";
-      path = fetchurl {
-        name = "rimraf___rimraf_2.7.1.tgz";
-        url  = "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz";
-        sha1 = "35797f13a7fdadc566142c29d4f07ccad483e3ec";
-      };
-    }
-    {
-      name = "ripemd160___ripemd160_2.0.2.tgz";
-      path = fetchurl {
-        name = "ripemd160___ripemd160_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz";
-        sha1 = "a1c1a6f624751577ba5d07914cbc92850585890c";
-      };
-    }
-    {
-      name = "rome___rome_2.1.22.tgz";
-      path = fetchurl {
-        name = "rome___rome_2.1.22.tgz";
-        url  = "https://registry.yarnpkg.com/rome/-/rome-2.1.22.tgz";
-        sha1 = "4bf25318cc0522ae92dd090472ce7a6e0b1f5e02";
-      };
-    }
-    {
-      name = "rst_selector_parser___rst_selector_parser_2.2.3.tgz";
-      path = fetchurl {
-        name = "rst_selector_parser___rst_selector_parser_2.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz";
-        sha1 = "81b230ea2fcc6066c89e3472de794285d9b03d91";
-      };
-    }
-    {
-      name = "rsvp___rsvp_4.8.5.tgz";
-      path = fetchurl {
-        name = "rsvp___rsvp_4.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz";
-        sha1 = "c8f155311d167f68f21e168df71ec5b083113734";
-      };
-    }
-    {
-      name = "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_queue___run_queue_1.0.3.tgz";
-      path = fetchurl {
-        name = "run_queue___run_queue_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz";
-        sha1 = "e848396f057d223f24386924618e25694161ec47";
-      };
-    }
-    {
-      name = "rxjs___rxjs_6.5.5.tgz";
-      path = fetchurl {
-        name = "rxjs___rxjs_6.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.5.tgz";
-        sha1 = "c5c884e3094c8cfee31bf27eb87e54ccfc87f9ec";
-      };
-    }
-    {
-      name = "rxjs___rxjs_6.4.0.tgz";
-      path = fetchurl {
-        name = "rxjs___rxjs_6.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/rxjs/-/rxjs-6.4.0.tgz";
-        sha1 = "f3bb0fe7bda7fb69deac0c16f17b50b0b8790504";
-      };
-    }
-    {
-      name = "safe_buffer___safe_buffer_5.1.1.tgz";
-      path = fetchurl {
-        name = "safe_buffer___safe_buffer_5.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz";
-        sha1 = "893312af69b2123def71f57889001671eeb2c853";
-      };
-    }
-    {
-      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 = "safe_regex___safe_regex_1.1.0.tgz";
-      path = fetchurl {
-        name = "safe_regex___safe_regex_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz";
-        sha1 = "40a3669f3b077d1e943d44629e157dd48023bf2e";
-      };
-    }
-    {
-      name = "safer_buffer___safer_buffer_2.1.2.tgz";
-      path = fetchurl {
-        name = "safer_buffer___safer_buffer_2.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz";
-        sha1 = "44fa161b0187b9549dd84bb91802f9bd8385cd6a";
-      };
-    }
-    {
-      name = "sane___sane_4.1.0.tgz";
-      path = fetchurl {
-        name = "sane___sane_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz";
-        sha1 = "ed881fd922733a6c461bc189dc2b6c006f3ffded";
-      };
-    }
-    {
-      name = "sass_loader___sass_loader_7.1.0.tgz";
-      path = fetchurl {
-        name = "sass_loader___sass_loader_7.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/sass-loader/-/sass-loader-7.1.0.tgz";
-        sha1 = "16fd5138cb8b424bf8a759528a1972d72aad069d";
-      };
-    }
-    {
-      name = "sass___sass_1.22.7.tgz";
-      path = fetchurl {
-        name = "sass___sass_1.22.7.tgz";
-        url  = "https://registry.yarnpkg.com/sass/-/sass-1.22.7.tgz";
-        sha1 = "5a1a77dc11aa659db4e782d238bf9f3d44a60546";
-      };
-    }
-    {
-      name = "sax___sax_1.2.4.tgz";
-      path = fetchurl {
-        name = "sax___sax_1.2.4.tgz";
-        url  = "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz";
-        sha1 = "2816234e2378bddc4e5354fab5caa895df7100d9";
-      };
-    }
-    {
-      name = "schedule___schedule_0.5.0.tgz";
-      path = fetchurl {
-        name = "schedule___schedule_0.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/schedule/-/schedule-0.5.0.tgz";
-        sha1 = "c128fffa0b402488b08b55ae74bb9df55cc29cc8";
-      };
-    }
-    {
-      name = "scheduler___scheduler_0.13.2.tgz";
-      path = fetchurl {
-        name = "scheduler___scheduler_0.13.2.tgz";
-        url  = "https://registry.yarnpkg.com/scheduler/-/scheduler-0.13.2.tgz";
-        sha1 = "969eaee2764a51d2e97b20a60963b2546beff8fa";
-      };
-    }
-    {
-      name = "schema_utils___schema_utils_1.0.0.tgz";
-      path = fetchurl {
-        name = "schema_utils___schema_utils_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz";
-        sha1 = "0b79a93204d7b600d4b2850d1f66c2a34951c770";
-      };
-    }
-    {
-      name = "schema_utils___schema_utils_2.0.1.tgz";
-      path = fetchurl {
-        name = "schema_utils___schema_utils_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.0.1.tgz";
-        sha1 = "1eec2e059556af841b7f3a83b61af13d7a3f9196";
-      };
-    }
-    {
-      name = "schema_utils___schema_utils_2.5.0.tgz";
-      path = fetchurl {
-        name = "schema_utils___schema_utils_2.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.5.0.tgz";
-        sha1 = "8f254f618d402cc80257486213c8970edfd7c22f";
-      };
-    }
-    {
-      name = "schema_utils___schema_utils_2.7.0.tgz";
-      path = fetchurl {
-        name = "schema_utils___schema_utils_2.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.0.tgz";
-        sha1 = "17151f76d8eae67fbbf77960c33c676ad9f4efc7";
-      };
-    }
-    {
-      name = "seamless_immutable___seamless_immutable_7.1.4.tgz";
-      path = fetchurl {
-        name = "seamless_immutable___seamless_immutable_7.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/seamless-immutable/-/seamless-immutable-7.1.4.tgz";
-        sha1 = "6e9536def083ddc4dea0207d722e0e80d0f372f8";
-      };
-    }
-    {
-      name = "seleccion___seleccion_2.0.0.tgz";
-      path = fetchurl {
-        name = "seleccion___seleccion_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/seleccion/-/seleccion-2.0.0.tgz";
-        sha1 = "0984ac1e8df513e38b41a608e65042e8381e0a73";
-      };
-    }
-    {
-      name = "select_hose___select_hose_2.0.0.tgz";
-      path = fetchurl {
-        name = "select_hose___select_hose_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz";
-        sha1 = "625d8658f865af43ec962bfc376a37359a4994ca";
-      };
-    }
-    {
-      name = "selfsigned___selfsigned_1.10.7.tgz";
-      path = fetchurl {
-        name = "selfsigned___selfsigned_1.10.7.tgz";
-        url  = "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.7.tgz";
-        sha1 = "da5819fd049d5574f28e88a9bcc6dbc6e6f3906b";
-      };
-    }
-    {
-      name = "sell___sell_1.0.0.tgz";
-      path = fetchurl {
-        name = "sell___sell_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/sell/-/sell-1.0.0.tgz";
-        sha1 = "3baca7e51f78ddee9e22eea1ac747a6368bd1630";
-      };
-    }
-    {
-      name = "semver___semver_5.7.0.tgz";
-      path = fetchurl {
-        name = "semver___semver_5.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz";
-        sha1 = "790a7cf6fea5459bac96110b29b60412dc8ff96b";
-      };
-    }
-    {
-      name = "semver___semver_5.5.1.tgz";
-      path = fetchurl {
-        name = "semver___semver_5.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/semver/-/semver-5.5.1.tgz";
-        sha1 = "7dfdd8814bdb7cabc7be0fb1d734cfb66c940477";
-      };
-    }
-    {
-      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.16.2.tgz";
-      path = fetchurl {
-        name = "send___send_0.16.2.tgz";
-        url  = "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz";
-        sha1 = "6ecca1e0f8c156d141597559848df64730a6bbc1";
-      };
-    }
-    {
-      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_2.1.0.tgz";
-      path = fetchurl {
-        name = "serialize_javascript___serialize_javascript_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.0.tgz";
-        sha1 = "9310276819efd0eb128258bb341957f6eb2fc570";
-      };
-    }
-    {
-      name = "serialize_javascript___serialize_javascript_2.1.2.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 = "serve_index___serve_index_1.9.1.tgz";
-      path = fetchurl {
-        name = "serve_index___serve_index_1.9.1.tgz";
-        url  = "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz";
-        sha1 = "d3768d69b1e7d82e5ce050fff5b453bea12a9239";
-      };
-    }
-    {
-      name = "serve_static___serve_static_1.13.2.tgz";
-      path = fetchurl {
-        name = "serve_static___serve_static_1.13.2.tgz";
-        url  = "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz";
-        sha1 = "095e8472fd5b46237db50ce486a43f4b86c6cec1";
-      };
-    }
-    {
-      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 = "set_value___set_value_2.0.1.tgz";
-      path = fetchurl {
-        name = "set_value___set_value_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz";
-        sha1 = "a18d40530e6f07de4228c7defe4227af8cad005b";
-      };
-    }
-    {
-      name = "setimmediate___setimmediate_1.0.5.tgz";
-      path = fetchurl {
-        name = "setimmediate___setimmediate_1.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz";
-        sha1 = "290cbb232e306942d7d7ea9b83732ab7856f8285";
-      };
-    }
-    {
-      name = "setprototypeof___setprototypeof_1.0.3.tgz";
-      path = fetchurl {
-        name = "setprototypeof___setprototypeof_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz";
-        sha1 = "66567e37043eeb4f04d91bd658c0cbefb55b8e04";
-      };
-    }
-    {
-      name = "setprototypeof___setprototypeof_1.1.0.tgz";
-      path = fetchurl {
-        name = "setprototypeof___setprototypeof_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz";
-        sha1 = "d0bd85536887b6fe7c0d818cb962d9d91c54e656";
-      };
-    }
-    {
-      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 = "sha.js___sha.js_2.4.11.tgz";
-      path = fetchurl {
-        name = "sha.js___sha.js_2.4.11.tgz";
-        url  = "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz";
-        sha1 = "37a5cf0b81ecbc6943de109ba2960d1b26584ae7";
-      };
-    }
-    {
-      name = "shallow_clone___shallow_clone_1.0.0.tgz";
-      path = fetchurl {
-        name = "shallow_clone___shallow_clone_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-1.0.0.tgz";
-        sha1 = "4480cd06e882ef68b2ad88a3ea54832e2c48b571";
-      };
-    }
-    {
-      name = "shallowequal___shallowequal_1.1.0.tgz";
-      path = fetchurl {
-        name = "shallowequal___shallowequal_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz";
-        sha1 = "188d521de95b9087404fd4dcb68b13df0ae4e7f8";
-      };
-    }
-    {
-      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_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 = "shellwords___shellwords_0.1.1.tgz";
-      path = fetchurl {
-        name = "shellwords___shellwords_0.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz";
-        sha1 = "d6b9181c1a48d397324c84871efbcfc73fc0654b";
-      };
-    }
-    {
-      name = "signal_exit___signal_exit_3.0.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 = "sisteransi___sisteransi_1.0.2.tgz";
-      path = fetchurl {
-        name = "sisteransi___sisteransi_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.2.tgz";
-        sha1 = "ec57d64b6f25c4f26c0e2c7dd23f2d7f12f7e418";
-      };
-    }
-    {
-      name = "slash___slash_2.0.0.tgz";
-      path = fetchurl {
-        name = "slash___slash_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz";
-        sha1 = "de552851a1759df3a8f206535442f5ec4ddeab44";
-      };
-    }
-    {
-      name = "slice_ansi___slice_ansi_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 = "slice_ansi___slice_ansi_2.1.0.tgz";
-      path = fetchurl {
-        name = "slice_ansi___slice_ansi_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz";
-        sha1 = "cacd7693461a637a5788d92a7dd4fba068e81636";
-      };
-    }
-    {
-      name = "snapdragon_node___snapdragon_node_2.1.1.tgz";
-      path = fetchurl {
-        name = "snapdragon_node___snapdragon_node_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz";
-        sha1 = "6c175f86ff14bdb0724563e8f3c1b021a286853b";
-      };
-    }
-    {
-      name = "snapdragon_util___snapdragon_util_3.0.1.tgz";
-      path = fetchurl {
-        name = "snapdragon_util___snapdragon_util_3.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz";
-        sha1 = "f956479486f2acd79700693f6f7b805e45ab56e2";
-      };
-    }
-    {
-      name = "snapdragon___snapdragon_0.8.2.tgz";
-      path = fetchurl {
-        name = "snapdragon___snapdragon_0.8.2.tgz";
-        url  = "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz";
-        sha1 = "64922e7c565b0e14204ba1aa7d6964278d25182d";
-      };
-    }
-    {
-      name = "sockjs_client___sockjs_client_1.4.0.tgz";
-      path = fetchurl {
-        name = "sockjs_client___sockjs_client_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.4.0.tgz";
-        sha1 = "c9f2568e19c8fd8173b4997ea3420e0bb306c7d5";
-      };
-    }
-    {
-      name = "sockjs___sockjs_0.3.19.tgz";
-      path = fetchurl {
-        name = "sockjs___sockjs_0.3.19.tgz";
-        url  = "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz";
-        sha1 = "d976bbe800af7bd20ae08598d582393508993c0d";
-      };
-    }
-    {
-      name = "sort_keys___sort_keys_1.1.2.tgz";
-      path = fetchurl {
-        name = "sort_keys___sort_keys_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz";
-        sha1 = "441b6d4d346798f1b4e49e8920adfba0e543f9ad";
-      };
-    }
-    {
-      name = "source_list_map___source_list_map_2.0.1.tgz";
-      path = fetchurl {
-        name = "source_list_map___source_list_map_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz";
-        sha1 = "3993bd873bfc48479cca9ea3a547835c7c154b34";
-      };
-    }
-    {
-      name = "source_map_loader___source_map_loader_0.2.4.tgz";
-      path = fetchurl {
-        name = "source_map_loader___source_map_loader_0.2.4.tgz";
-        url  = "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-0.2.4.tgz";
-        sha1 = "c18b0dc6e23bf66f6792437557c569a11e072271";
-      };
-    }
-    {
-      name = "source_map_resolve___source_map_resolve_0.5.3.tgz";
-      path = fetchurl {
-        name = "source_map_resolve___source_map_resolve_0.5.3.tgz";
-        url  = "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz";
-        sha1 = "190866bece7553e1f8f267a2ee82c606b5509a1a";
-      };
-    }
-    {
-      name = "source_map_support___source_map_support_0.5.12.tgz";
-      path = fetchurl {
-        name = "source_map_support___source_map_support_0.5.12.tgz";
-        url  = "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.12.tgz";
-        sha1 = "b4f3b10d51857a5af0138d3ce8003b201613d599";
-      };
-    }
-    {
-      name = "source_map_support___source_map_support_0.5.16.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_url___source_map_url_0.4.0.tgz";
-      path = fetchurl {
-        name = "source_map_url___source_map_url_0.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz";
-        sha1 = "3e935d7ddd73631b97659956d55128e87b5084a3";
-      };
-    }
-    {
-      name = "source_map___source_map_0.4.4.tgz";
-      path = fetchurl {
-        name = "source_map___source_map_0.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz";
-        sha1 = "eba4f5da9c0dc999de68032d8b4f76173652036b";
-      };
-    }
-    {
-      name = "source_map___source_map_0.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 = "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 = "spdy_transport___spdy_transport_3.0.0.tgz";
-      path = fetchurl {
-        name = "spdy_transport___spdy_transport_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz";
-        sha1 = "00d4863a6400ad75df93361a1608605e5dcdcf31";
-      };
-    }
-    {
-      name = "spdy___spdy_4.0.1.tgz";
-      path = fetchurl {
-        name = "spdy___spdy_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/spdy/-/spdy-4.0.1.tgz";
-        sha1 = "6f12ed1c5db7ea4f24ebb8b89ba58c87c08257f2";
-      };
-    }
-    {
-      name = "split_string___split_string_3.1.0.tgz";
-      path = fetchurl {
-        name = "split_string___split_string_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz";
-        sha1 = "7cb09dda3a86585705c64b39a6466038682e8fe2";
-      };
-    }
-    {
-      name = "sprintf_js___sprintf_js_1.0.3.tgz";
-      path = fetchurl {
-        name = "sprintf_js___sprintf_js_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz";
-        sha1 = "04e6926f662895354f3dd015203633b857297e2c";
-      };
-    }
-    {
-      name = "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 = "ssri___ssri_6.0.1.tgz";
-      path = fetchurl {
-        name = "ssri___ssri_6.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz";
-        sha1 = "2a3c41b28dd45b62b63676ecb74001265ae9edd8";
-      };
-    }
-    {
-      name = "ssri___ssri_7.1.0.tgz";
-      path = fetchurl {
-        name = "ssri___ssri_7.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/ssri/-/ssri-7.1.0.tgz";
-        sha1 = "92c241bf6de82365b5c7fb4bd76e975522e1294d";
-      };
-    }
-    {
-      name = "stable___stable_0.1.8.tgz";
-      path = fetchurl {
-        name = "stable___stable_0.1.8.tgz";
-        url  = "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz";
-        sha1 = "836eb3c8382fe2936feaf544631017ce7d47a3cf";
-      };
-    }
-    {
-      name = "stack_utils___stack_utils_1.0.2.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 = "state_toggle___state_toggle_1.0.1.tgz";
-      path = fetchurl {
-        name = "state_toggle___state_toggle_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.1.tgz";
-        sha1 = "c3cb0974f40a6a0f8e905b96789eb41afa1cde3a";
-      };
-    }
-    {
-      name = "static_extend___static_extend_0.1.2.tgz";
-      path = fetchurl {
-        name = "static_extend___static_extend_0.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz";
-        sha1 = "60809c39cbff55337226fd5e0b520f341f1fb5c6";
-      };
-    }
-    {
-      name = "statuses___statuses_1.4.0.tgz";
-      path = fetchurl {
-        name = "statuses___statuses_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz";
-        sha1 = "bb73d446da2796106efcc1b601a253d6c46bd087";
-      };
-    }
-    {
-      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 = "stream_browserify___stream_browserify_2.0.2.tgz";
-      path = fetchurl {
-        name = "stream_browserify___stream_browserify_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz";
-        sha1 = "87521d38a44aa7ee91ce1cd2a47df0cb49dd660b";
-      };
-    }
-    {
-      name = "stream_each___stream_each_1.2.3.tgz";
-      path = fetchurl {
-        name = "stream_each___stream_each_1.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz";
-        sha1 = "ebe27a0c389b04fbcc233642952e10731afa9bae";
-      };
-    }
-    {
-      name = "stream_http___stream_http_2.8.3.tgz";
-      path = fetchurl {
-        name = "stream_http___stream_http_2.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz";
-        sha1 = "b2d242469288a5a27ec4fe8933acf623de6514fc";
-      };
-    }
-    {
-      name = "stream_shift___stream_shift_1.0.1.tgz";
-      path = fetchurl {
-        name = "stream_shift___stream_shift_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz";
-        sha1 = "d7088281559ab2778424279b0877da3c392d5a3d";
-      };
-    }
-    {
-      name = "strict_uri_encode___strict_uri_encode_1.1.0.tgz";
-      path = fetchurl {
-        name = "strict_uri_encode___strict_uri_encode_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz";
-        sha1 = "279b225df1d582b1f54e65addd4352e18faa0713";
-      };
-    }
-    {
-      name = "string_length___string_length_2.0.0.tgz";
-      path = fetchurl {
-        name = "string_length___string_length_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz";
-        sha1 = "d40dbb686a3ace960c1cffca562bf2c45f8363ed";
-      };
-    }
-    {
-      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.0.0.tgz";
-      path = fetchurl {
-        name = "string_width___string_width_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/string-width/-/string-width-3.0.0.tgz";
-        sha1 = "5a1690a57cc78211fffd9bf24bbe24d090604eb1";
-      };
-    }
-    {
-      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.1.0.tgz";
-      path = fetchurl {
-        name = "string_width___string_width_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/string-width/-/string-width-4.1.0.tgz";
-        sha1 = "ba846d1daa97c3c596155308063e075ed1c99aff";
-      };
-    }
-    {
-      name = "string.prototype.trim___string.prototype.trim_1.1.2.tgz";
-      path = fetchurl {
-        name = "string.prototype.trim___string.prototype.trim_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz";
-        sha1 = "d04de2c89e137f4d7d206f086b5ed2fae6be8cea";
-      };
-    }
-    {
-      name = "string.prototype.trimleft___string.prototype.trimleft_2.1.1.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.prototype.trimright___string.prototype.trimright_2.1.1.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_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_bom___strip_bom_3.0.0.tgz";
-      path = fetchurl {
-        name = "strip_bom___strip_bom_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz";
-        sha1 = "2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3";
-      };
-    }
-    {
-      name = "strip_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_3.0.1.tgz";
-      path = fetchurl {
-        name = "strip_json_comments___strip_json_comments_3.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz";
-        sha1 = "85713975a91fb87bf1b305cca77395e40d2a64a7";
-      };
-    }
-    {
-      name = "style_loader___style_loader_0.23.1.tgz";
-      path = fetchurl {
-        name = "style_loader___style_loader_0.23.1.tgz";
-        url  = "https://registry.yarnpkg.com/style-loader/-/style-loader-0.23.1.tgz";
-        sha1 = "cb9154606f3e771ab6c4ab637026a1049174d925";
-      };
-    }
-    {
-      name = "stylehacks___stylehacks_4.0.3.tgz";
-      path = fetchurl {
-        name = "stylehacks___stylehacks_4.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz";
-        sha1 = "6718fcaf4d1e07d8a1318690881e8d96726a71d5";
-      };
-    }
-    {
-      name = "superagent___superagent_3.8.3.tgz";
-      path = fetchurl {
-        name = "superagent___superagent_3.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/superagent/-/superagent-3.8.3.tgz";
-        sha1 = "460ea0dbdb7d5b11bc4f78deba565f86a178e128";
-      };
-    }
-    {
-      name = "supports_color___supports_color_5.4.0.tgz";
-      path = fetchurl {
-        name = "supports_color___supports_color_5.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz";
-        sha1 = "1c6b337402c2137605efe19f10fec390f6faab54";
-      };
-    }
-    {
-      name = "supports_color___supports_color_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";
-        url  = "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz";
-        sha1 = "535d045ce6b6363fa40117084629995e9df324c7";
-      };
-    }
-    {
-      name = "supports_color___supports_color_3.2.3.tgz";
-      path = fetchurl {
-        name = "supports_color___supports_color_3.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz";
-        sha1 = "65ac0504b3954171d8a64946b2ae3cbb8a5f54f6";
-      };
-    }
-    {
-      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 = "svgo___svgo_1.2.2.tgz";
-      path = fetchurl {
-        name = "svgo___svgo_1.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/svgo/-/svgo-1.2.2.tgz";
-        sha1 = "0253d34eccf2aed4ad4f283e11ee75198f9d7316";
-      };
-    }
-    {
-      name = "swagger_methods___swagger_methods_2.0.0.tgz";
-      path = fetchurl {
-        name = "swagger_methods___swagger_methods_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/swagger-methods/-/swagger-methods-2.0.0.tgz";
-        sha1 = "e1260876e7638b8a5d61ae5735ad9d5e97f4f09d";
-      };
-    }
-    {
-      name = "swagger_parser___swagger_parser_8.0.0.tgz";
-      path = fetchurl {
-        name = "swagger_parser___swagger_parser_8.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/swagger-parser/-/swagger-parser-8.0.0.tgz";
-        sha1 = "7a714c98a9a7a4ce81331336c1f53bb89f5d4e2f";
-      };
-    }
-    {
-      name = "symbol_observable___symbol_observable_1.2.0.tgz";
-      path = fetchurl {
-        name = "symbol_observable___symbol_observable_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz";
-        sha1 = "c22688aed4eab3cdc2dfeacbb561660560a00804";
-      };
-    }
-    {
-      name = "symbol_tree___symbol_tree_3.2.2.tgz";
-      path = fetchurl {
-        name = "symbol_tree___symbol_tree_3.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz";
-        sha1 = "ae27db38f660a7ae2e1c3b7d1bc290819b8519e6";
-      };
-    }
-    {
-      name = "symbol_tree___symbol_tree_3.2.4.tgz";
-      path = fetchurl {
-        name = "symbol_tree___symbol_tree_3.2.4.tgz";
-        url  = "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz";
-        sha1 = "430637d248ba77e078883951fb9aa0eed7c63fa2";
-      };
-    }
-    {
-      name = "table___table_5.2.3.tgz";
-      path = fetchurl {
-        name = "table___table_5.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/table/-/table-5.2.3.tgz";
-        sha1 = "cde0cc6eb06751c009efab27e8c820ca5b67b7f2";
-      };
-    }
-    {
-      name = "tapable___tapable_1.1.3.tgz";
-      path = fetchurl {
-        name = "tapable___tapable_1.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz";
-        sha1 = "a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2";
-      };
-    }
-    {
-      name = "terser_webpack_plugin___terser_webpack_plugin_2.2.1.tgz";
-      path = fetchurl {
-        name = "terser_webpack_plugin___terser_webpack_plugin_2.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-2.2.1.tgz";
-        sha1 = "5569e6c7d8be79e5e43d6da23acc3b6ba77d22bd";
-      };
-    }
-    {
-      name = "terser_webpack_plugin___terser_webpack_plugin_1.4.3.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___terser_4.6.7.tgz";
-      path = fetchurl {
-        name = "terser___terser_4.6.7.tgz";
-        url  = "https://registry.yarnpkg.com/terser/-/terser-4.6.7.tgz";
-        sha1 = "478d7f9394ec1907f0e488c5f6a6a9a2bad55e72";
-      };
-    }
-    {
-      name = "terser___terser_4.4.0.tgz";
-      path = fetchurl {
-        name = "terser___terser_4.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/terser/-/terser-4.4.0.tgz";
-        sha1 = "22c46b4817cf4c9565434bfe6ad47336af259ac3";
-      };
-    }
-    {
-      name = "test_exclude___test_exclude_5.2.3.tgz";
-      path = fetchurl {
-        name = "test_exclude___test_exclude_5.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.2.3.tgz";
-        sha1 = "c3d3e1e311eb7ee405e092dac10aefd09091eac0";
-      };
-    }
-    {
-      name = "text_table___text_table_0.2.0.tgz";
-      path = fetchurl {
-        name = "text_table___text_table_0.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz";
-        sha1 = "7f5ee823ae805207c00af2df4a84ec3fcfa570b4";
-      };
-    }
-    {
-      name = "throat___throat_4.1.0.tgz";
-      path = fetchurl {
-        name = "throat___throat_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz";
-        sha1 = "89037cbc92c56ab18926e6ba4cbb200e15672a6a";
-      };
-    }
-    {
-      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_2.0.5.tgz";
-      path = fetchurl {
-        name = "through2___through2_2.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz";
-        sha1 = "01c1e39eb31d07cb7d03a96a70823260b23132cd";
-      };
-    }
-    {
-      name = "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 = "thunky___thunky_1.1.0.tgz";
-      path = fetchurl {
-        name = "thunky___thunky_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz";
-        sha1 = "5abaf714a9405db0504732bbccd2cedd9ef9537d";
-      };
-    }
-    {
-      name = "ticky___ticky_1.0.0.tgz";
-      path = fetchurl {
-        name = "ticky___ticky_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/ticky/-/ticky-1.0.0.tgz";
-        sha1 = "e87f38ee0491ea32f62e8f0567ba9638b29f049c";
-      };
-    }
-    {
-      name = "timers_browserify___timers_browserify_2.0.11.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 = "timsort___timsort_0.3.0.tgz";
-      path = fetchurl {
-        name = "timsort___timsort_0.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz";
-        sha1 = "405411a8e7e6339fe64db9a234de11dc31e02bd4";
-      };
-    }
-    {
-      name = "tiny_invariant___tiny_invariant_1.1.0.tgz";
-      path = fetchurl {
-        name = "tiny_invariant___tiny_invariant_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.1.0.tgz";
-        sha1 = "634c5f8efdc27714b7f386c35e6760991d230875";
-      };
-    }
-    {
-      name = "tiny_warning___tiny_warning_1.0.3.tgz";
-      path = fetchurl {
-        name = "tiny_warning___tiny_warning_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz";
-        sha1 = "94a30db453df4c643d0fd566060d60a875d84754";
-      };
-    }
-    {
-      name = "tmp___tmp_0.0.33.tgz";
-      path = fetchurl {
-        name = "tmp___tmp_0.0.33.tgz";
-        url  = "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz";
-        sha1 = "6d34335889768d21b2bcda0aa277ced3b1bfadf9";
-      };
-    }
-    {
-      name = "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 = "tmpl___tmpl_1.0.4.tgz";
-      path = fetchurl {
-        name = "tmpl___tmpl_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz";
-        sha1 = "23640dd7b42d00433911140820e5cf440e521dd1";
-      };
-    }
-    {
-      name = "to_arraybuffer___to_arraybuffer_1.0.1.tgz";
-      path = fetchurl {
-        name = "to_arraybuffer___to_arraybuffer_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz";
-        sha1 = "7d229b1fcc637e466ca081180836a7aabff83f43";
-      };
-    }
-    {
-      name = "to_camel_case___to_camel_case_1.0.0.tgz";
-      path = fetchurl {
-        name = "to_camel_case___to_camel_case_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/to-camel-case/-/to-camel-case-1.0.0.tgz";
-        sha1 = "1a56054b2f9d696298ce66a60897322b6f423e46";
-      };
-    }
-    {
-      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_no_case___to_no_case_1.0.2.tgz";
-      path = fetchurl {
-        name = "to_no_case___to_no_case_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/to-no-case/-/to-no-case-1.0.2.tgz";
-        sha1 = "c722907164ef6b178132c8e69930212d1b4aa16a";
-      };
-    }
-    {
-      name = "to_object_path___to_object_path_0.3.0.tgz";
-      path = fetchurl {
-        name = "to_object_path___to_object_path_0.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz";
-        sha1 = "297588b7b0e7e0ac08e04e672f85c1f4999e17af";
-      };
-    }
-    {
-      name = "to_regex_range___to_regex_range_2.1.1.tgz";
-      path = fetchurl {
-        name = "to_regex_range___to_regex_range_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz";
-        sha1 = "7c80c17b9dfebe599e27367e0d4dd5590141db38";
-      };
-    }
-    {
-      name = "to_regex_range___to_regex_range_5.0.1.tgz";
-      path = fetchurl {
-        name = "to_regex_range___to_regex_range_5.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz";
-        sha1 = "1648c44aae7c8d988a326018ed72f5b4dd0392e4";
-      };
-    }
-    {
-      name = "to_regex___to_regex_3.0.2.tgz";
-      path = fetchurl {
-        name = "to_regex___to_regex_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz";
-        sha1 = "13cfdd9b336552f30b51f33a8ae1b42a7a7599ce";
-      };
-    }
-    {
-      name = "to_space_case___to_space_case_1.0.0.tgz";
-      path = fetchurl {
-        name = "to_space_case___to_space_case_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/to-space-case/-/to-space-case-1.0.0.tgz";
-        sha1 = "b052daafb1b2b29dc770cea0163e5ec0ebc9fc17";
-      };
-    }
-    {
-      name = "toggle_selection___toggle_selection_1.0.6.tgz";
-      path = fetchurl {
-        name = "toggle_selection___toggle_selection_1.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz";
-        sha1 = "6e45b1263f2017fa0acc7d89d78b15b8bf77da32";
-      };
-    }
-    {
-      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 = "toposort___toposort_1.0.7.tgz";
-      path = fetchurl {
-        name = "toposort___toposort_1.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/toposort/-/toposort-1.0.7.tgz";
-        sha1 = "2e68442d9f64ec720b8cc89e6443ac6caa950029";
-      };
-    }
-    {
-      name = "tough_cookie___tough_cookie_2.4.3.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";
-      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 = "tr46___tr46_1.0.1.tgz";
-      path = fetchurl {
-        name = "tr46___tr46_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz";
-        sha1 = "a8b13fd6bfd2489519674ccde55ba3693b706d09";
-      };
-    }
-    {
-      name = "tr46___tr46_0.0.3.tgz";
-      path = fetchurl {
-        name = "tr46___tr46_0.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz";
-        sha1 = "8184fd347dac9cdc185992f3a6622e14b9d9ab6a";
-      };
-    }
-    {
-      name = "trim_right___trim_right_1.0.1.tgz";
-      path = fetchurl {
-        name = "trim_right___trim_right_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz";
-        sha1 = "cb2e1203067e0c8de1f614094b9fe45704ea6003";
-      };
-    }
-    {
-      name = "trim_trailing_lines___trim_trailing_lines_1.1.1.tgz";
-      path = fetchurl {
-        name = "trim_trailing_lines___trim_trailing_lines_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/trim-trailing-lines/-/trim-trailing-lines-1.1.1.tgz";
-        sha1 = "e0ec0810fd3c3f1730516b45f49083caaf2774d9";
-      };
-    }
-    {
-      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 = "trough___trough_1.0.3.tgz";
-      path = fetchurl {
-        name = "trough___trough_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/trough/-/trough-1.0.3.tgz";
-        sha1 = "e29bd1614c6458d44869fc28b255ab7857ef7c24";
-      };
-    }
-    {
-      name = "tryer___tryer_1.0.1.tgz";
-      path = fetchurl {
-        name = "tryer___tryer_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz";
-        sha1 = "f2c85406800b9b0f74c9f7465b81eaad241252f8";
-      };
-    }
-    {
-      name = "ts_jest___ts_jest_24.0.0.tgz";
-      path = fetchurl {
-        name = "ts_jest___ts_jest_24.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/ts-jest/-/ts-jest-24.0.0.tgz";
-        sha1 = "3f26bf2ec1fa584863a5a9c29bd8717d549efbf6";
-      };
-    }
-    {
-      name = "ts_loader___ts_loader_5.3.3.tgz";
-      path = fetchurl {
-        name = "ts_loader___ts_loader_5.3.3.tgz";
-        url  = "https://registry.yarnpkg.com/ts-loader/-/ts-loader-5.3.3.tgz";
-        sha1 = "8b4af042e773132d86b3c99ef0acf3b4d325f473";
-      };
-    }
-    {
-      name = "ts_node___ts_node_8.3.0.tgz";
-      path = fetchurl {
-        name = "ts_node___ts_node_8.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/ts-node/-/ts-node-8.3.0.tgz";
-        sha1 = "e4059618411371924a1fb5f3b125915f324efb57";
-      };
-    }
-    {
-      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 = "tslib___tslib_1.9.3.tgz";
-      path = fetchurl {
-        name = "tslib___tslib_1.9.3.tgz";
-        url  = "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz";
-        sha1 = "d7e4dd79245d85428c4d7e4822a79917954ca286";
-      };
-    }
-    {
-      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 = "tsutils___tsutils_3.17.1.tgz";
-      path = fetchurl {
-        name = "tsutils___tsutils_3.17.1.tgz";
-        url  = "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz";
-        sha1 = "ed719917f11ca0dee586272b2ac49e015a2dd759";
-      };
-    }
-    {
-      name = "tty_browserify___tty_browserify_0.0.0.tgz";
-      path = fetchurl {
-        name = "tty_browserify___tty_browserify_0.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz";
-        sha1 = "a157ba402da24e9bf957f9aa69d524eed42901a6";
-      };
-    }
-    {
-      name = "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.5.2.tgz";
-      path = fetchurl {
-        name = "type_fest___type_fest_0.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.5.2.tgz";
-        sha1 = "d6ef42a0356c6cd45f49485c3b6281fc148e48a2";
-      };
-    }
-    {
-      name = "type_is___type_is_1.6.16.tgz";
-      path = fetchurl {
-        name = "type_is___type_is_1.6.16.tgz";
-        url  = "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz";
-        sha1 = "f89ce341541c672b25ee7ae3c73dee3b2be50194";
-      };
-    }
-    {
-      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 = "typed_styles___typed_styles_0.0.7.tgz";
-      path = fetchurl {
-        name = "typed_styles___typed_styles_0.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/typed-styles/-/typed-styles-0.0.7.tgz";
-        sha1 = "93392a008794c4595119ff62dde6809dbc40a3d9";
-      };
-    }
-    {
-      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 = "ua_parser_js___ua_parser_js_0.7.18.tgz";
-      path = fetchurl {
-        name = "ua_parser_js___ua_parser_js_0.7.18.tgz";
-        url  = "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.18.tgz";
-        sha1 = "a7bfd92f56edfb117083b69e31d2aa8882d4b1ed";
-      };
-    }
-    {
-      name = "uglify_js___uglify_js_3.4.10.tgz";
-      path = fetchurl {
-        name = "uglify_js___uglify_js_3.4.10.tgz";
-        url  = "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.10.tgz";
-        sha1 = "9ad9563d8eb3acdfb8d38597d2af1d815f6a755f";
-      };
-    }
-    {
-      name = "uglify_js___uglify_js_3.6.0.tgz";
-      path = fetchurl {
-        name = "uglify_js___uglify_js_3.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.6.0.tgz";
-        sha1 = "704681345c53a8b2079fb6cec294b05ead242ff5";
-      };
-    }
-    {
-      name = "uglify_js___uglify_js_2.6.4.tgz";
-      path = fetchurl {
-        name = "uglify_js___uglify_js_2.6.4.tgz";
-        url  = "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.6.4.tgz";
-        sha1 = "65ea2fb3059c9394692f15fed87c2b36c16b9adf";
-      };
-    }
-    {
-      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 = "underscore___underscore_1.9.1.tgz";
-      path = fetchurl {
-        name = "underscore___underscore_1.9.1.tgz";
-        url  = "https://registry.yarnpkg.com/underscore/-/underscore-1.9.1.tgz";
-        sha1 = "06dce34a0e68a7babc29b365b8e74b8925203961";
-      };
-    }
-    {
-      name = "underscore___underscore_1.4.4.tgz";
-      path = fetchurl {
-        name = "underscore___underscore_1.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/underscore/-/underscore-1.4.4.tgz";
-        sha1 = "61a6a32010622afa07963bf325203cf12239d604";
-      };
-    }
-    {
-      name = "unfetch___unfetch_4.1.0.tgz";
-      path = fetchurl {
-        name = "unfetch___unfetch_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/unfetch/-/unfetch-4.1.0.tgz";
-        sha1 = "6ec2dd0de887e58a4dee83a050ded80ffc4137db";
-      };
-    }
-    {
-      name = "unherit___unherit_1.1.1.tgz";
-      path = fetchurl {
-        name = "unherit___unherit_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/unherit/-/unherit-1.1.1.tgz";
-        sha1 = "132748da3e88eab767e08fabfbb89c5e9d28628c";
-      };
-    }
-    {
-      name = "unicode_canonical_property_names_ecmascript___unicode_canonical_property_names_ecmascript_1.0.4.tgz";
-      path = fetchurl {
-        name = "unicode_canonical_property_names_ecmascript___unicode_canonical_property_names_ecmascript_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz";
-        sha1 = "2619800c4c825800efdd8343af7dd9933cbe2818";
-      };
-    }
-    {
-      name = "unicode_match_property_ecmascript___unicode_match_property_ecmascript_1.0.4.tgz";
-      path = fetchurl {
-        name = "unicode_match_property_ecmascript___unicode_match_property_ecmascript_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz";
-        sha1 = "8ed2a32569961bce9227d09cd3ffbb8fed5f020c";
-      };
-    }
-    {
-      name = "unicode_match_property_value_ecmascript___unicode_match_property_value_ecmascript_1.1.0.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 = "unicode_property_aliases_ecmascript___unicode_property_aliases_ecmascript_1.0.4.tgz";
-      path = fetchurl {
-        name = "unicode_property_aliases_ecmascript___unicode_property_aliases_ecmascript_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.4.tgz";
-        sha1 = "5a533f31b4317ea76f17d807fa0d116546111dd0";
-      };
-    }
-    {
-      name = "unified___unified_6.2.0.tgz";
-      path = fetchurl {
-        name = "unified___unified_6.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/unified/-/unified-6.2.0.tgz";
-        sha1 = "7fbd630f719126d67d40c644b7e3f617035f6dba";
-      };
-    }
-    {
-      name = "union_value___union_value_1.0.1.tgz";
-      path = fetchurl {
-        name = "union_value___union_value_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz";
-        sha1 = "0b6fe7b835aecda61c6ea4d4f02c14221e109847";
-      };
-    }
-    {
-      name = "uniq___uniq_1.0.1.tgz";
-      path = fetchurl {
-        name = "uniq___uniq_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz";
-        sha1 = "b31c5ae8254844a3a8281541ce2b04b865a734ff";
-      };
-    }
-    {
-      name = "uniqs___uniqs_2.0.0.tgz";
-      path = fetchurl {
-        name = "uniqs___uniqs_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz";
-        sha1 = "ffede4b36b25290696e6e165d4a59edb998e6b02";
-      };
-    }
-    {
-      name = "unique_filename___unique_filename_1.1.1.tgz";
-      path = fetchurl {
-        name = "unique_filename___unique_filename_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz";
-        sha1 = "1d69769369ada0583103a1e6ae87681b56573230";
-      };
-    }
-    {
-      name = "unique_slug___unique_slug_2.0.2.tgz";
-      path = fetchurl {
-        name = "unique_slug___unique_slug_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz";
-        sha1 = "baabce91083fc64e945b0f3ad613e264f7cd4e6c";
-      };
-    }
-    {
-      name = "unist_util_is___unist_util_is_2.1.2.tgz";
-      path = fetchurl {
-        name = "unist_util_is___unist_util_is_2.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-2.1.2.tgz";
-        sha1 = "1193fa8f2bfbbb82150633f3a8d2eb9a1c1d55db";
-      };
-    }
-    {
-      name = "unist_util_remove_position___unist_util_remove_position_1.1.2.tgz";
-      path = fetchurl {
-        name = "unist_util_remove_position___unist_util_remove_position_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-1.1.2.tgz";
-        sha1 = "86b5dad104d0bbfbeb1db5f5c92f3570575c12cb";
-      };
-    }
-    {
-      name = "unist_util_stringify_position___unist_util_stringify_position_1.1.2.tgz";
-      path = fetchurl {
-        name = "unist_util_stringify_position___unist_util_stringify_position_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz";
-        sha1 = "3f37fcf351279dcbca7480ab5889bb8a832ee1c6";
-      };
-    }
-    {
-      name = "unist_util_visit_parents___unist_util_visit_parents_1.1.2.tgz";
-      path = fetchurl {
-        name = "unist_util_visit_parents___unist_util_visit_parents_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-1.1.2.tgz";
-        sha1 = "f6e3afee8bdbf961c0e6f028ea3c0480028c3d06";
-      };
-    }
-    {
-      name = "unist_util_visit_parents___unist_util_visit_parents_2.0.1.tgz";
-      path = fetchurl {
-        name = "unist_util_visit_parents___unist_util_visit_parents_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-2.0.1.tgz";
-        sha1 = "63fffc8929027bee04bfef7d2cce474f71cb6217";
-      };
-    }
-    {
-      name = "unist_util_visit___unist_util_visit_1.4.0.tgz";
-      path = fetchurl {
-        name = "unist_util_visit___unist_util_visit_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-1.4.0.tgz";
-        sha1 = "1cb763647186dc26f5e1df5db6bd1e48b3cc2fb1";
-      };
-    }
-    {
-      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 = "unquote___unquote_1.1.1.tgz";
-      path = fetchurl {
-        name = "unquote___unquote_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz";
-        sha1 = "8fded7324ec6e88a0ff8b905e7c098cdc086d544";
-      };
-    }
-    {
-      name = "unset_value___unset_value_1.0.0.tgz";
-      path = fetchurl {
-        name = "unset_value___unset_value_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz";
-        sha1 = "8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559";
-      };
-    }
-    {
-      name = "untildify___untildify_4.0.0.tgz";
-      path = fetchurl {
-        name = "untildify___untildify_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz";
-        sha1 = "2bc947b953652487e4600949fb091e3ae8cd919b";
-      };
-    }
-    {
-      name = "upath___upath_1.2.0.tgz";
-      path = fetchurl {
-        name = "upath___upath_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz";
-        sha1 = "8f66dbcd55a883acdae4408af8b035a5044c1894";
-      };
-    }
-    {
-      name = "upper_case___upper_case_1.1.3.tgz";
-      path = fetchurl {
-        name = "upper_case___upper_case_1.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz";
-        sha1 = "f6b4501c2ec4cdd26ba78be7222961de77621598";
-      };
-    }
-    {
-      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 = "urix___urix_0.1.0.tgz";
-      path = fetchurl {
-        name = "urix___urix_0.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz";
-        sha1 = "da937f7a62e21fec1fd18d49b35c2935067a6c72";
-      };
-    }
-    {
-      name = "url_join___url_join_4.0.1.tgz";
-      path = fetchurl {
-        name = "url_join___url_join_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/url-join/-/url-join-4.0.1.tgz";
-        sha1 = "b642e21a2646808ffa178c4c5fda39844e12cde7";
-      };
-    }
-    {
-      name = "url_parse___url_parse_1.4.7.tgz";
-      path = fetchurl {
-        name = "url_parse___url_parse_1.4.7.tgz";
-        url  = "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz";
-        sha1 = "a8a83535e8c00a316e403a5db4ac1b9b853ae278";
-      };
-    }
-    {
-      name = "url___url_0.11.0.tgz";
-      path = fetchurl {
-        name = "url___url_0.11.0.tgz";
-        url  = "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz";
-        sha1 = "3838e97cfc60521eb73c525a8e55bfdd9e2e28f1";
-      };
-    }
-    {
-      name = "use_persisted_state___use_persisted_state_0.3.0.tgz";
-      path = fetchurl {
-        name = "use_persisted_state___use_persisted_state_0.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/use-persisted-state/-/use-persisted-state-0.3.0.tgz";
-        sha1 = "f8e3d2fd8eee67e0c86fd596c3ea3e8121c07402";
-      };
-    }
-    {
-      name = "use___use_3.1.1.tgz";
-      path = fetchurl {
-        name = "use___use_3.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz";
-        sha1 = "d50c8cac79a19fbc20f2911f56eb973f4e10070f";
-      };
-    }
-    {
-      name = "util_deprecate___util_deprecate_1.0.2.tgz";
-      path = fetchurl {
-        name = "util_deprecate___util_deprecate_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz";
-        sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
-      };
-    }
-    {
-      name = "util.promisify___util.promisify_1.0.0.tgz";
-      path = fetchurl {
-        name = "util.promisify___util.promisify_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz";
-        sha1 = "440f7165a459c9a16dc145eb8e72f35687097030";
-      };
-    }
-    {
-      name = "util___util_0.10.3.tgz";
-      path = fetchurl {
-        name = "util___util_0.10.3.tgz";
-        url  = "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz";
-        sha1 = "7afb1afe50805246489e3db7fe0ed379336ac0f9";
-      };
-    }
-    {
-      name = "util___util_0.11.1.tgz";
-      path = fetchurl {
-        name = "util___util_0.11.1.tgz";
-        url  = "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz";
-        sha1 = "3236733720ec64bb27f6e26f421aaa2e1b588d61";
-      };
-    }
-    {
-      name = "utila___utila_0.4.0.tgz";
-      path = fetchurl {
-        name = "utila___utila_0.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz";
-        sha1 = "8a16a05d445657a3aea5eecc5b12a4fa5379772c";
-      };
-    }
-    {
-      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 = "uuid___uuid_3.3.2.tgz";
-      path = fetchurl {
-        name = "uuid___uuid_3.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz";
-        sha1 = "1b4af4955eb3077c501c23872fc6513811587131";
-      };
-    }
-    {
-      name = "uuid___uuid_3.3.3.tgz";
-      path = fetchurl {
-        name = "uuid___uuid_3.3.3.tgz";
-        url  = "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz";
-        sha1 = "4568f0216e78760ee1dbf3a4d2cf53e224112866";
-      };
-    }
-    {
-      name = "v8_compile_cache___v8_compile_cache_2.0.3.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.1.0.tgz";
-      path = fetchurl {
-        name = "v8_compile_cache___v8_compile_cache_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz";
-        sha1 = "e14de37b31a6d194f5690d67efc4e7f6fc6ab30e";
-      };
-    }
-    {
-      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 = "validator___validator_10.11.0.tgz";
-      path = fetchurl {
-        name = "validator___validator_10.11.0.tgz";
-        url  = "https://registry.yarnpkg.com/validator/-/validator-10.11.0.tgz";
-        sha1 = "003108ea6e9a9874d31ccc9e5006856ccd76b228";
-      };
-    }
-    {
-      name = "value_equal___value_equal_1.0.1.tgz";
-      path = fetchurl {
-        name = "value_equal___value_equal_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz";
-        sha1 = "1e0b794c734c5c0cade179c437d356d931a34d6c";
-      };
-    }
-    {
-      name = "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 = "vendors___vendors_1.0.3.tgz";
-      path = fetchurl {
-        name = "vendors___vendors_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/vendors/-/vendors-1.0.3.tgz";
-        sha1 = "a6467781abd366217c050f8202e7e50cc9eef8c0";
-      };
-    }
-    {
-      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 = "vfile_location___vfile_location_2.0.4.tgz";
-      path = fetchurl {
-        name = "vfile_location___vfile_location_2.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/vfile-location/-/vfile-location-2.0.4.tgz";
-        sha1 = "2a5e7297dd0d9e2da4381464d04acc6b834d3e55";
-      };
-    }
-    {
-      name = "vfile_message___vfile_message_1.0.2.tgz";
-      path = fetchurl {
-        name = "vfile_message___vfile_message_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/vfile-message/-/vfile-message-1.0.2.tgz";
-        sha1 = "0f8a62584c5dff0f81760531b8e34f3cea554ebc";
-      };
-    }
-    {
-      name = "vfile___vfile_2.3.0.tgz";
-      path = fetchurl {
-        name = "vfile___vfile_2.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/vfile/-/vfile-2.3.0.tgz";
-        sha1 = "e62d8e72b20e83c324bc6c67278ee272488bf84a";
-      };
-    }
-    {
-      name = "vm_browserify___vm_browserify_1.1.2.tgz";
-      path = fetchurl {
-        name = "vm_browserify___vm_browserify_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz";
-        sha1 = "78641c488b8e6ca91a75f511e7a3b32a86e5dda0";
-      };
-    }
-    {
-      name = "vscode_jsonrpc___vscode_jsonrpc_4.1.0_next.3.tgz";
-      path = fetchurl {
-        name = "vscode_jsonrpc___vscode_jsonrpc_4.1.0_next.3.tgz";
-        url  = "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-4.1.0-next.3.tgz";
-        sha1 = "05fe742959a2726020d4d0bfbc3d3c97873c7fde";
-      };
-    }
-    {
-      name = "vscode_jsonrpc___vscode_jsonrpc_5.0.1.tgz";
-      path = fetchurl {
-        name = "vscode_jsonrpc___vscode_jsonrpc_5.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-5.0.1.tgz";
-        sha1 = "9bab9c330d89f43fc8c1e8702b5c36e058a01794";
-      };
-    }
-    {
-      name = "vscode_languageclient___vscode_languageclient_5.3.0_next.9.tgz";
-      path = fetchurl {
-        name = "vscode_languageclient___vscode_languageclient_5.3.0_next.9.tgz";
-        url  = "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-5.3.0-next.9.tgz";
-        sha1 = "34f58017647f15cd86015f7af45935dc750611f7";
-      };
-    }
-    {
-      name = "vscode_languageserver_protocol___vscode_languageserver_protocol_3.15.2.tgz";
-      path = fetchurl {
-        name = "vscode_languageserver_protocol___vscode_languageserver_protocol_3.15.2.tgz";
-        url  = "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.15.2.tgz";
-        sha1 = "e52c62923140b2655ad2472f6f29cfb83bacf5b8";
-      };
-    }
-    {
-      name = "vscode_languageserver_types___vscode_languageserver_types_3.15.1.tgz";
-      path = fetchurl {
-        name = "vscode_languageserver_types___vscode_languageserver_types_3.15.1.tgz";
-        url  = "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.15.1.tgz";
-        sha1 = "17be71d78d2f6236d414f0001ce1ef4d23e6b6de";
-      };
-    }
-    {
-      name = "vscode_uri___vscode_uri_1.0.8.tgz";
-      path = fetchurl {
-        name = "vscode_uri___vscode_uri_1.0.8.tgz";
-        url  = "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-1.0.8.tgz";
-        sha1 = "9769aaececae4026fb6e22359cb38946580ded59";
-      };
-    }
-    {
-      name = "w3c_hr_time___w3c_hr_time_1.0.1.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 = "walker___walker_1.0.7.tgz";
-      path = fetchurl {
-        name = "walker___walker_1.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz";
-        sha1 = "2f7f9b8fd10d677262b18a884e28d19618e028fb";
-      };
-    }
-    {
-      name = "warning___warning_4.0.3.tgz";
-      path = fetchurl {
-        name = "warning___warning_4.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz";
-        sha1 = "16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3";
-      };
-    }
-    {
-      name = "watchpack___watchpack_1.6.0.tgz";
-      path = fetchurl {
-        name = "watchpack___watchpack_1.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz";
-        sha1 = "4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00";
-      };
-    }
-    {
-      name = "wbuf___wbuf_1.7.3.tgz";
-      path = fetchurl {
-        name = "wbuf___wbuf_1.7.3.tgz";
-        url  = "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz";
-        sha1 = "c1d8d149316d3ea852848895cb6a0bfe887b87df";
-      };
-    }
-    {
-      name = "webidl_conversions___webidl_conversions_3.0.1.tgz";
-      path = fetchurl {
-        name = "webidl_conversions___webidl_conversions_3.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz";
-        sha1 = "24534275e2a7bc6be7bc86611cc16ae0a5654871";
-      };
-    }
-    {
-      name = "webidl_conversions___webidl_conversions_4.0.2.tgz";
-      path = fetchurl {
-        name = "webidl_conversions___webidl_conversions_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz";
-        sha1 = "a855980b1f0b6b359ba1d5d9fb39ae941faa63ad";
-      };
-    }
-    {
-      name = "webpack_bundle_analyzer___webpack_bundle_analyzer_3.6.0.tgz";
-      path = fetchurl {
-        name = "webpack_bundle_analyzer___webpack_bundle_analyzer_3.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.6.0.tgz";
-        sha1 = "39b3a8f829ca044682bc6f9e011c95deb554aefd";
-      };
-    }
-    {
-      name = "webpack_cli___webpack_cli_3.3.10.tgz";
-      path = fetchurl {
-        name = "webpack_cli___webpack_cli_3.3.10.tgz";
-        url  = "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.10.tgz";
-        sha1 = "17b279267e9b4fb549023fae170da8e6e766da13";
-      };
-    }
-    {
-      name = "webpack_dev_middleware___webpack_dev_middleware_3.7.2.tgz";
-      path = fetchurl {
-        name = "webpack_dev_middleware___webpack_dev_middleware_3.7.2.tgz";
-        url  = "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz";
-        sha1 = "0019c3db716e3fa5cecbf64f2ab88a74bab331f3";
-      };
-    }
-    {
-      name = "webpack_dev_server___webpack_dev_server_3.10.3.tgz";
-      path = fetchurl {
-        name = "webpack_dev_server___webpack_dev_server_3.10.3.tgz";
-        url  = "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.10.3.tgz";
-        sha1 = "f35945036813e57ef582c2420ef7b470e14d3af0";
-      };
-    }
-    {
-      name = "webpack_log___webpack_log_2.0.0.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_merge___webpack_merge_4.2.1.tgz";
-      path = fetchurl {
-        name = "webpack_merge___webpack_merge_4.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.1.tgz";
-        sha1 = "5e923cf802ea2ace4fd5af1d3247368a633489b4";
-      };
-    }
-    {
-      name = "webpack_sources___webpack_sources_1.3.0.tgz";
-      path = fetchurl {
-        name = "webpack_sources___webpack_sources_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz";
-        sha1 = "2a28dcb9f1f45fe960d8f1493252b5ee6530fa85";
-      };
-    }
-    {
-      name = "webpack_sources___webpack_sources_1.4.3.tgz";
-      path = fetchurl {
-        name = "webpack_sources___webpack_sources_1.4.3.tgz";
-        url  = "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz";
-        sha1 = "eedd8ec0b928fbf1cbfe994e22d2d890f330a933";
-      };
-    }
-    {
-      name = "webpack___webpack_4.42.0.tgz";
-      path = fetchurl {
-        name = "webpack___webpack_4.42.0.tgz";
-        url  = "https://registry.yarnpkg.com/webpack/-/webpack-4.42.0.tgz";
-        sha1 = "b901635dd6179391d90740a63c93f76f39883eb8";
-      };
-    }
-    {
-      name = "websocket_driver___websocket_driver_0.7.3.tgz";
-      path = fetchurl {
-        name = "websocket_driver___websocket_driver_0.7.3.tgz";
-        url  = "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.3.tgz";
-        sha1 = "a2d4e0d4f4f116f1e6297eba58b05d430100e9f9";
-      };
-    }
-    {
-      name = "websocket_extensions___websocket_extensions_0.1.3.tgz";
-      path = fetchurl {
-        name = "websocket_extensions___websocket_extensions_0.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz";
-        sha1 = "5d2ff22977003ec687a4b87073dfbbac146ccf29";
-      };
-    }
-    {
-      name = "whatwg_encoding___whatwg_encoding_1.0.5.tgz";
-      path = fetchurl {
-        name = "whatwg_encoding___whatwg_encoding_1.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz";
-        sha1 = "5abacf777c32166a51d085d6b4f3e7d27113ddb0";
-      };
-    }
-    {
-      name = "whatwg_fetch___whatwg_fetch_3.0.0.tgz";
-      path = fetchurl {
-        name = "whatwg_fetch___whatwg_fetch_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz";
-        sha1 = "fc804e458cc460009b1a2b966bc8817d2578aefb";
-      };
-    }
-    {
-      name = "whatwg_mimetype___whatwg_mimetype_2.3.0.tgz";
-      path = fetchurl {
-        name = "whatwg_mimetype___whatwg_mimetype_2.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz";
-        sha1 = "3d4b1e0312d2079879f826aff18dbeeca5960fbf";
-      };
-    }
-    {
-      name = "whatwg_url___whatwg_url_4.8.0.tgz";
-      path = fetchurl {
-        name = "whatwg_url___whatwg_url_4.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-4.8.0.tgz";
-        sha1 = "d2981aa9148c1e00a41c5a6131166ab4683bbcc0";
-      };
-    }
-    {
-      name = "whatwg_url___whatwg_url_6.5.0.tgz";
-      path = fetchurl {
-        name = "whatwg_url___whatwg_url_6.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.5.0.tgz";
-        sha1 = "f2df02bff176fd65070df74ad5ccbb5a199965a8";
-      };
-    }
-    {
-      name = "whatwg_url___whatwg_url_7.0.0.tgz";
-      path = fetchurl {
-        name = "whatwg_url___whatwg_url_7.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.0.0.tgz";
-        sha1 = "fde926fa54a599f3adf82dff25a9f7be02dc6edd";
-      };
-    }
-    {
-      name = "which_module___which_module_2.0.0.tgz";
-      path = fetchurl {
-        name = "which_module___which_module_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz";
-        sha1 = "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a";
-      };
-    }
-    {
-      name = "which___which_1.3.1.tgz";
-      path = fetchurl {
-        name = "which___which_1.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz";
-        sha1 = "a45043d54f5805316da8d62f9f50918d3da70b0a";
-      };
-    }
-    {
-      name = "winchan___winchan_0.2.2.tgz";
-      path = fetchurl {
-        name = "winchan___winchan_0.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/winchan/-/winchan-0.2.2.tgz";
-        sha1 = "6766917b88e5e1cb75f455ffc7cc13f51e5c834e";
-      };
-    }
-    {
-      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 = "wordwrap___wordwrap_0.0.2.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";
-      path = fetchurl {
-        name = "wordwrap___wordwrap_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz";
-        sha1 = "27584810891456a4171c8d0226441ade90cbcaeb";
-      };
-    }
-    {
-      name = "worker_farm___worker_farm_1.7.0.tgz";
-      path = fetchurl {
-        name = "worker_farm___worker_farm_1.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz";
-        sha1 = "26a94c5391bbca926152002f69b84a4bf772e5a8";
-      };
-    }
-    {
-      name = "worker_rpc___worker_rpc_0.1.1.tgz";
-      path = fetchurl {
-        name = "worker_rpc___worker_rpc_0.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/worker-rpc/-/worker-rpc-0.1.1.tgz";
-        sha1 = "cb565bd6d7071a8f16660686051e969ad32f54d5";
-      };
-    }
-    {
-      name = "wrap_ansi___wrap_ansi_2.1.0.tgz";
-      path = fetchurl {
-        name = "wrap_ansi___wrap_ansi_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz";
-        sha1 = "d8fc3d284dd05794fe84973caecdd1cf824fdd85";
-      };
-    }
-    {
-      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 = "wrap_ansi___wrap_ansi_5.1.0.tgz";
-      path = fetchurl {
-        name = "wrap_ansi___wrap_ansi_5.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz";
-        sha1 = "1fd1f67235d5b6d0fee781056001bfb694c03b09";
-      };
-    }
-    {
-      name = "wrappy___wrappy_1.0.2.tgz";
-      path = fetchurl {
-        name = "wrappy___wrappy_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz";
-        sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
-      };
-    }
-    {
-      name = "write_file_atomic___write_file_atomic_2.4.1.tgz";
-      path = fetchurl {
-        name = "write_file_atomic___write_file_atomic_2.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.1.tgz";
-        sha1 = "d0b05463c188ae804396fd5ab2a370062af87529";
-      };
-    }
-    {
-      name = "write___write_1.0.3.tgz";
-      path = fetchurl {
-        name = "write___write_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz";
-        sha1 = "0800e14523b923a387e415123c865616aae0f5c3";
-      };
-    }
-    {
-      name = "ws___ws_5.2.2.tgz";
-      path = fetchurl {
-        name = "ws___ws_5.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz";
-        sha1 = "dffef14866b8e8dc9133582514d1befaf96e980f";
-      };
-    }
-    {
-      name = "ws___ws_6.2.1.tgz";
-      path = fetchurl {
-        name = "ws___ws_6.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz";
-        sha1 = "442fdf0a47ed64f59b6a5d8ff130f4748ed524fb";
-      };
-    }
-    {
-      name = "x_is_string___x_is_string_0.1.0.tgz";
-      path = fetchurl {
-        name = "x_is_string___x_is_string_0.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/x-is-string/-/x-is-string-0.1.0.tgz";
-        sha1 = "474b50865af3a49a9c4657f05acd145458f77d82";
-      };
-    }
-    {
-      name = "xml_name_validator___xml_name_validator_2.0.1.tgz";
-      path = fetchurl {
-        name = "xml_name_validator___xml_name_validator_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-2.0.1.tgz";
-        sha1 = "4d8b8f1eccd3419aa362061becef515e1e559635";
-      };
-    }
-    {
-      name = "xml_name_validator___xml_name_validator_3.0.0.tgz";
-      path = fetchurl {
-        name = "xml_name_validator___xml_name_validator_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz";
-        sha1 = "6ae73e06de4d8c6e47f9fb181f78d648ad457c6a";
-      };
-    }
-    {
-      name = "xml2js___xml2js_0.4.19.tgz";
-      path = fetchurl {
-        name = "xml2js___xml2js_0.4.19.tgz";
-        url  = "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz";
-        sha1 = "686c20f213209e94abf0d1bcf1efaa291c7827a7";
-      };
-    }
-    {
-      name = "xml___xml_1.0.1.tgz";
-      path = fetchurl {
-        name = "xml___xml_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/xml/-/xml-1.0.1.tgz";
-        sha1 = "78ba72020029c5bc87b8a81a3cfcd74b4a2fc1e5";
-      };
-    }
-    {
-      name = "xmlbuilder___xmlbuilder_9.0.7.tgz";
-      path = fetchurl {
-        name = "xmlbuilder___xmlbuilder_9.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz";
-        sha1 = "132ee63d2ec5565c557e20f4c22df9aca686b10d";
-      };
-    }
-    {
-      name = "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 = "xtend___xtend_4.0.1.tgz";
-      path = fetchurl {
-        name = "xtend___xtend_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz";
-        sha1 = "a5c6d532be656e23db820efb943a1f04998d63af";
-      };
-    }
-    {
-      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 = "yallist___yallist_4.0.0.tgz";
-      path = fetchurl {
-        name = "yallist___yallist_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz";
-        sha1 = "9bb92790d9c0effec63be73519e11a35019a3a72";
-      };
-    }
-    {
-      name = "yargs_parser___yargs_parser_10.1.0.tgz";
-      path = fetchurl {
-        name = "yargs_parser___yargs_parser_10.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz";
-        sha1 = "7202265b89f7e9e9f2e5765e0fe735a905edbaa8";
-      };
-    }
-    {
-      name = "yargs_parser___yargs_parser_11.1.1.tgz";
-      path = fetchurl {
-        name = "yargs_parser___yargs_parser_11.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz";
-        sha1 = "879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4";
-      };
-    }
-    {
-      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_12.0.5.tgz";
-      path = fetchurl {
-        name = "yargs___yargs_12.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz";
-        sha1 = "05f5997b609647b64f66b81e3b4b10a368e7ad13";
-      };
-    }
-    {
-      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_3.10.0.tgz";
-      path = fetchurl {
-        name = "yargs___yargs_3.10.0.tgz";
-        url  = "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz";
-        sha1 = "f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1";
-      };
-    }
-    {
-      name = "yauzl___yauzl_2.10.0.tgz";
-      path = fetchurl {
-        name = "yauzl___yauzl_2.10.0.tgz";
-        url  = "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz";
-        sha1 = "c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9";
-      };
-    }
-    {
-      name = "yn___yn_3.1.0.tgz";
-      path = fetchurl {
-        name = "yn___yn_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/yn/-/yn-3.1.0.tgz";
-        sha1 = "fcbe2db63610361afcc5eb9e0ac91e976d046114";
-      };
-    }
-    {
-      name = "z_schema___z_schema_4.1.0.tgz";
-      path = fetchurl {
-        name = "z_schema___z_schema_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/z-schema/-/z-schema-4.1.0.tgz";
-        sha1 = "8f824eabffdf018875cbcfa9b92dc3a348140b76";
-      };
-    }
-  ];
-}
diff --git a/pkgs/servers/nosql/influxdb2/update-influxdb2.sh b/pkgs/servers/nosql/influxdb2/update-influxdb2.sh
deleted file mode 100755
index 826fa925157..00000000000
--- a/pkgs/servers/nosql/influxdb2/update-influxdb2.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/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 influxdb UI."
-    echo "Usage: $0 <git release tag>"
-    exit 1
-fi
-
-INFLUXDB_SRC="https://raw.githubusercontent.com/influxdata/influxdb/$1"
-
-wget "$INFLUXDB_SRC/ui/package.json" -O influx-ui-package.json
-wget "$INFLUXDB_SRC/ui/yarn.lock" -O influx-ui-yarndeps.lock
-yarn2nix --lockfile=influx-ui-yarndeps.lock > influx-ui-yarndeps.nix
-rm influx-ui-yarndeps.lock
diff --git a/pkgs/servers/openafs/1.8/default.nix b/pkgs/servers/openafs/1.8/default.nix
index 918a20ce5a3..e84cac380ab 100644
--- a/pkgs/servers/openafs/1.8/default.nix
+++ b/pkgs/servers/openafs/1.8/default.nix
@@ -1,7 +1,23 @@
-{ lib, stdenv, buildPackages, fetchurl, which, autoconf, automake, flex
-, bison , glibc, perl, libkrb5, libxslt, docbook_xsl, file
-, docbook_xml_dtd_43, libtool_2
-, withDevdoc ? false, doxygen, dblatex # Extra developer documentation
+{ lib
+, stdenv
+, buildPackages
+, fetchurl
+, which
+, autoconf
+, automake
+, flex
+, bison
+, glibc
+, perl
+, libkrb5
+, libxslt
+, docbook_xsl
+, file
+, docbook_xml_dtd_43
+, libtool_2
+, withDevdoc ? false
+, doxygen
+, dblatex # Extra developer documentation
 , ncurses # Extra ncurses utilities. Needed for debugging and monitoring.
 , tsmbac ? null # Tivoli Storage Manager Backup Client from IBM
 }:
@@ -10,13 +26,22 @@ with (import ./srcs.nix { inherit fetchurl; });
 let
   inherit (lib) optional optionalString optionals;
 
-in stdenv.mkDerivation {
+in
+stdenv.mkDerivation {
   pname = "openafs";
   inherit version srcs;
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
-  nativeBuildInputs = [ autoconf automake flex libxslt libtool_2 perl
-    which bison ] ++ optionals withDevdoc [ doxygen dblatex ];
+  nativeBuildInputs = [
+    autoconf
+    automake
+    flex
+    libxslt
+    libtool_2
+    perl
+    which
+    bison
+  ] ++ optionals withDevdoc [ doxygen dblatex ];
 
   buildInputs = [ libkrb5 ncurses ];
 
diff --git a/pkgs/servers/openafs/1.8/module.nix b/pkgs/servers/openafs/1.8/module.nix
index 2543aef3769..f8b2d222af1 100644
--- a/pkgs/servers/openafs/1.8/module.nix
+++ b/pkgs/servers/openafs/1.8/module.nix
@@ -1,5 +1,17 @@
-{ lib, stdenv, fetchurl, which, autoconf, automake, flex, bison
-, kernel, glibc, perl, libtool_2, libkrb5, fetchpatch }:
+{ lib
+, stdenv
+, fetchurl
+, which
+, autoconf
+, automake
+, flex
+, bison
+, kernel
+, glibc
+, perl
+, libtool_2
+, libkrb5
+}:
 
 with (import ./srcs.nix {
   inherit fetchurl;
@@ -9,7 +21,8 @@ let
   modDestDir = "$out/lib/modules/${kernel.modDirVersion}/extra/openafs";
   kernelBuildDir = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build";
 
-in stdenv.mkDerivation {
+in
+stdenv.mkDerivation {
   name = "openafs-${version}-${kernel.modDirVersion}";
   inherit version src;
 
@@ -18,23 +31,6 @@ in stdenv.mkDerivation {
 
   buildInputs = [ libkrb5 ];
 
-  patches = [
-    # LINUX 5.14: explicitly set set_page_dirty to default
-    ((fetchpatch {
-      url = "https://gerrit.openafs.org/changes/14830/revisions/20b8a37950b3718b85a4a3d21b23469a5176eb6a/patch";
-      sha256 = "1mkfwq0pbwvfjspsy2lxhi0f09hljgc6xyn3y97sai0dyivn05jp";
-    }).overrideAttrs (o: {
-      postFetch = "mv $out p; base64 -d p > $out; " + o.postFetch;
-    }))
-    # Linux 5.15: Convert osi_Msg macro to a function
-    ((fetchpatch {
-      url = "https://gerrit.openafs.org/changes/14831/revisions/6cfa9046229d90c0625687e3fddb7877f21fbcff/patch";
-      sha256 = "18rip9a1krxf47fizf3f12ddq55apzb2w3wjj5qs7n3sh2nwks7g";
-    }).overrideAttrs (o: {
-      postFetch = "mv $out p; base64 -d p > $out; " + o.postFetch;
-    }))
-  ];
-
   hardeningDisable = [ "pic" ];
 
   configureFlags = [
diff --git a/pkgs/servers/openafs/1.8/srcs.nix b/pkgs/servers/openafs/1.8/srcs.nix
index f35903e5091..b8ea522fe4f 100644
--- a/pkgs/servers/openafs/1.8/srcs.nix
+++ b/pkgs/servers/openafs/1.8/srcs.nix
@@ -1,14 +1,16 @@
 { fetchurl }:
 rec {
-  version = "1.8.8";
+  version = "1.8.8.1";
   src = fetchurl {
     url = "https://www.openafs.org/dl/openafs/${version}/openafs-${version}-src.tar.bz2";
-    sha256 = "sha256-2qjvhqdyf6z83jvJemrRQxKcHCXuNfM0cIDsfp0oTaA=";
+    sha256 = "sha256-58S+1wdbzWQC4/DC1bnb52rS7jxf1d3DlzozVsoj70Q=";
   };
 
-  srcs = [ src
+  srcs = [
+    src
     (fetchurl {
       url = "https://www.openafs.org/dl/openafs/${version}/openafs-${version}-doc.tar.bz2";
-      sha256 = "sha256-3cxODH1KvOTxrGB+acEudxGCX1iBPjZcTfjpfraOm+U=";
-    })];
+      sha256 = "sha256-y17O3C4WS+o7SMayydbxw2v96R0GikxiqciF30j+jms=";
+    })
+  ];
 }
diff --git a/pkgs/servers/plex/raw.nix b/pkgs/servers/plex/raw.nix
index fa0edc934e3..980e6457711 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.25.1.5286-34f965be8";
+  version = "1.25.2.5319-c43dc0277";
   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 = "0w707j0mn13xdqyffbyl51nvliiaqwnpyjqh52n40s81iid2jlg5";
+    sha256 = "09kkkyli5fygyvlzqd46jzi0y4jp0a24d92ayvfm95gm3fcxl73x";
   } else fetchurl {
     url = "https://downloads.plex.tv/plex-media-server-new/${version}/debian/plexmediaserver_${version}_amd64.deb";
-    sha256 = "05bcpwkpim2clv55k7g0610pp1bpd4wn56azbvhqv52vyd7q3q9j";
+    sha256 = "17whd724sjblqxz6d79jb6hrqvkgg5mbh3bh1lr9b8sswa3pxb07";
   };
 
   outputs = [ "out" "basedb" ];
diff --git a/pkgs/servers/polipo/default.nix b/pkgs/servers/polipo/default.nix
index 10c58cfb958..d98e0604855 100644
--- a/pkgs/servers/polipo/default.nix
+++ b/pkgs/servers/polipo/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     homepage = "http://www.pps.jussieu.fr/~jch/software/polipo/";
     description = "A small and fast caching web proxy";
     license = licenses.mit;
-    maintainers = with maintainers; [ phreedom ehmry ];
+    maintainers = with maintainers; [ ehmry ];
     platforms = platforms.all;
     knownVulnerabilities = [
       "Unmaintained upstream: https://github.com/jech/polipo/commit/4d42ca1b5849"
diff --git a/pkgs/servers/search/elasticsearch/6.x.nix b/pkgs/servers/search/elasticsearch/6.x.nix
index 4b92592f65d..56f0779c833 100644
--- a/pkgs/servers/search/elasticsearch/6.x.nix
+++ b/pkgs/servers/search/elasticsearch/6.x.nix
@@ -19,8 +19,8 @@ stdenv.mkDerivation (rec {
     url = "https://artifacts.elastic.co/downloads/elasticsearch/${pname}-${version}.tar.gz";
     sha256 =
       if enableUnfree
-      then "09dy3iyzk460vra6na6vk7d3mzpbv4cl0pl7kjmybxy947j7hh42"
-      else "0s04xz3j4psyhawvy503sp2nl5s0gswmpd9wfvwnavgcrr23wk39";
+      then "1hkcgqsrnnx3zjpgar4424mxfaxrx0zbrp7n7n0dlbhphshwnkmd"
+      else "1pglg60aigy31xmpfchnxcc04nd18zwc3av4m0kyp00yk5mnlyqm";
   };
 
   patches = [ ./es-home-6.x.patch ];
diff --git a/pkgs/servers/search/elasticsearch/7.x.nix b/pkgs/servers/search/elasticsearch/7.x.nix
index c254b733837..592cc947a42 100644
--- a/pkgs/servers/search/elasticsearch/7.x.nix
+++ b/pkgs/servers/search/elasticsearch/7.x.nix
@@ -18,9 +18,9 @@ let
   plat = elemAt info 1;
   shas =
     {
-      x86_64-linux  = "1ld7656b37l67vi4pyv0il865b168niqnbd4hzbvdnwrm35prp10";
-      x86_64-darwin = "11b180y11xw5q01l7aw6lyn15lp9ks8xmakjg1j7gp3z6c90hpn3";
-      aarch64-linux = "0s4ph79x17f90jk31wjwk259dk9dmhnmnkxdcn77m191wvf6m3wy";
+      x86_64-linux  = "1s16l95wc589cr69pfbgmkn9rkvxn6sd6jlbiqpm6p6iyxiaxd6c";
+      x86_64-darwin = "05h7pvq4pb816wgcymnfklp3w6sv54x6138v2infw5219dnk8pfs";
+      aarch64-linux = "0q4xnjzhlx1b2lkikca88qh9glfxaifsm419k2bxxlrfrx31zlkq";
     };
 in
 stdenv.mkDerivation rec {
diff --git a/pkgs/servers/search/elasticsearch/plugins.nix b/pkgs/servers/search/elasticsearch/plugins.nix
index f71d7b9cc76..03bb24d9a39 100644
--- a/pkgs/servers/search/elasticsearch/plugins.nix
+++ b/pkgs/servers/search/elasticsearch/plugins.nix
@@ -38,8 +38,8 @@ in
     src = fetchurl {
       url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${version}.zip";
       sha256 =
-        if version == "7.11.1" then "0mi6fmnjbqypa4n1w34dvlmyq793pz4wf1r5srcs7i84kkiddysy"
-        else if version == "6.8.3" then "0vbaqyj0lfy3ijl1c9h92b0nh605h5mjs57bk2zhycdvbw5sx2lv"
+        if version == "7.16.1" then "1sz858m9963xqr5kzjlwnq7k0a146rn60v6xijyfbp8y3brg618p"
+        else if version == "6.8.21" then "06b1pavyggzfp4wwdql0q9nm3r7i9px9cagp4yh4nhxhnk4w5fiq"
         else throw "unsupported version ${version} for plugin ${pluginName}";
     };
     meta = with lib; {
@@ -55,8 +55,8 @@ in
     src = fetchurl {
       url = "https://github.com/vhyza/elasticsearch-${pluginName}/releases/download/v${version}/elasticsearch-${pluginName}-${version}-plugin.zip";
       sha256 =
-        if version == "7.11.1" then "0r2k2ndgqiqh27lch8dbay1m09f00h5kjcan87chcvyf623l40a3"
-        else if version == "6.8.3" then "12bshvp01pp2lgwd0cn9l58axg8gdimsh4g9wfllxi1bdpv4cy53"
+        if version == "7.16.1" then "0yjy9yhw77lmalivxnmv2rq8fk93ddxszkk73lgmpffladx2ikir"
+        else if version == "6.8.21" then "0m80cn7vkcvk95v4pdmi6vk5ww7p01k0hj2iqb9g870vs6x2qjzv"
         else throw "unsupported version ${version} for plugin ${pluginName}";
     };
     meta = with lib; {
@@ -72,8 +72,8 @@ in
     src = fetchurl {
       url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${version}.zip";
       sha256 =
-        if version == "7.11.1" then "10ln81zyf04qi9wv10mck8iz0xwfvwp4ni0hl1gkgvh44lf1n855"
-        else if version == "6.8.3" then "0ggdhf7w50bxsffmcznrjy14b578fps0f8arg3v54qvj94v9jc37"
+        if version == "7.16.1" then "1w5ndgffqzj5ijglmykifrk1jsgh7qwn8m7sbpiv0r7n3aayhz1x"
+        else if version == "6.8.21" then "07w8s4a5gvr9lzjzf629y8rx3kvs6zd1vl07ksw1paghp42yb354"
         else throw "unsupported version ${version} for plugin ${pluginName}";
     };
     meta = with lib; {
@@ -89,8 +89,8 @@ in
     src = fetchurl {
       url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${version}.zip";
       sha256 =
-        if version == "7.11.1" then "09grfvqjmm2rznc48z84awh54afh81qa16amfqw3amsb8dr6czm6"
-        else if version == "6.8.3" then "0pmffz761dqjpvmkl7i7xsyw1iyyspqpddxp89rjsznfc9pak5im"
+        if version == "7.16.1" then "16mv7b9nl96bcygabvjqidxp2sjk340va19mrmliblpq3mxa2sii"
+        else if version == "6.8.21" then "1kdpbrasxwr3dn21zjrklp1s389rwa51fairygdwl8px9liwwfa5"
         else throw "unsupported version ${version} for plugin ${pluginName}";
     };
     meta = with lib; {
@@ -106,8 +106,8 @@ in
     src = fetchurl {
       url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${version}.zip";
       sha256 =
-        if version == "7.11.1" then "0imkf3w2fmspb78vkf9k6kqx1crm4f82qgnbk1qa7gbsa2j47hbs"
-        else if version == "6.8.3" then "0kfr4i2rcwinjn31xrc2piicasjanaqcgnbif9xc7lnak2nnzmll"
+        if version == "7.16.1" then "0bf8f8cybsp6s2ai3j04yay9kbhsafpgxivxjvzn2iy9qgc84ls4"
+        else if version == "6.8.21" then "0v31yyhjcdlqnjw1f9kihh7z3c6d31whc57hqqd1dn579n4s9rlz"
         else throw "unsupported version ${version} for plugin ${pluginName}";
     };
     meta = with lib; {
@@ -123,8 +123,8 @@ in
     src = fetchurl {
       url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${esVersion}.zip";
       sha256 =
-        if version == "7.11.1" then "0ahyb1plgwvq22id2kcx9g076ybb3kvybwakgcvsdjjdyi4cwgjs"
-        else if version == "6.8.3" then "1mm6hj2m1db68n81rzsvlw6nisflr5ikzk5zv9nmk0z641n5vh1x"
+        if version == "7.16.1" then "0sfa0ql3hh8jmha230dyhr51bvsvwmazyycf36ngpmxsysm8ccml"
+        else if version == "6.8.21" then "0sfh1az30q4f34zxig2fz8wn9gk53fmmxyg5pbi1svn9761p5awq"
         else throw "unsupported version ${version} for plugin ${pluginName}";
     };
     meta = with lib; {
@@ -140,8 +140,8 @@ in
     src = fetchurl {
       url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${esVersion}.zip";
       sha256 =
-        if version == "7.11.1" then "0i98b905k1zwm3y9pfhr40v2fm5qdsp3icygibhxf7drffygk4l7"
-        else if version == "6.8.3" then "1s2klpvnhpkrk53p64zbga3b66czi7h1a13f58kfn2cn0zfavnbk"
+        if version == "7.16.1" then "1b95hjr4qhiavm7r7k19bwk5c64r00f1g5s0ydnb6gzym9hdb5s1"
+        else if version == "6.8.21" then "00lwj00rfdk6850gk1n86chiz2w6afpqn7jn588jdbwv41qh5mrv"
         else throw "unsupported version ${version} for plugin ${pluginName}";
     };
     meta = with lib; {
@@ -157,24 +157,24 @@ in
     pluginName = "search-guard";
     version =
       # https://docs.search-guard.com/latest/search-guard-versions
-      if esVersion == "7.11.1" then "${esVersion}-50.0.0"
-      else if esVersion == "6.8.3" then "${esVersion}-25.5"
+      if esVersion == "7.16.1" then "${esVersion}-52.5.0"
+      else if esVersion == "6.8.21" then "${esVersion}-25.6"
       else throw "unsupported version ${esVersion} for plugin ${pluginName}";
     src =
-      if esVersion == "7.11.1" then
+      if esVersion == "7.16.1" then
         fetchurl {
           url = "https://maven.search-guard.com/search-guard-suite-release/com/floragunn/search-guard-suite-plugin/${version}/search-guard-suite-plugin-${version}.zip";
-          sha256 = "1lippygiy0xcxxlakylhvj3bj2i681k6jcfjsprkfk7hlaqsqxkm";
+          sha256 = "1m3nj35qyrkkh3mhmn66nippavima8h8qpaxddalhjsvf70lhnjb";
         }
-      else if esVersion == "6.8.3" then
+      else if esVersion == "6.8.21" then
         fetchurl {
-          url = "mirror://maven/com/floragunn/${pluginName}-${majorVersion}/${version}/${pluginName}-${majorVersion}-${version}.zip";
-          sha256 = "0a7ys9qinc0fjyka03cx9rv0pm7wnvslk234zv5vrphkrj52s1cb";
+          url = "https://maven.search-guard.com/search-guard-release/com/floragunn/search-guard-6/${version}/search-guard-6-${version}.zip";
+          sha256 = "19nj513wigwd0mzq747zax4fzvv5vi24f7j0636rydd9iv9cyhg2";
         }
       else throw "unsupported version ${version} for plugin ${pluginName}";
     meta = with lib; {
       homepage = "https://search-guard.com";
-      description = "Elasticsearch plugin that offers encryption, authentication, and authorisation. ";
+      description = "Elasticsearch plugin that offers encryption, authentication, and authorisation.";
       license = licenses.asl20;
     };
   };
diff --git a/pkgs/servers/shairport-sync/default.nix b/pkgs/servers/shairport-sync/default.nix
index 5fa96c91c5e..ed3c0dcc7f9 100644
--- a/pkgs/servers/shairport-sync/default.nix
+++ b/pkgs/servers/shairport-sync/default.nix
@@ -2,11 +2,11 @@
 , libdaemon, popt, pkg-config, libconfig, libpulseaudio, soxr }:
 
 stdenv.mkDerivation rec {
-  version = "3.3.8";
+  version = "3.3.9";
   pname = "shairport-sync";
 
   src = fetchFromGitHub {
-    sha256 = "sha256-YxTJ3XEbBgOQqUJGGsjba2PjyTudWZiH9FqXlnvlsp0=";
+    sha256 = "sha256-JLgnsLjswj0qus1Vd5ZtPQbbIp3dp2pI7OfQG4JrdW8=";
     rev = version;
     repo = "shairport-sync";
     owner = "mikebrady";
diff --git a/pkgs/servers/soft-serve/default.nix b/pkgs/servers/soft-serve/default.nix
index fce9544f481..b289177e799 100644
--- a/pkgs/servers/soft-serve/default.nix
+++ b/pkgs/servers/soft-serve/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "soft-serve";
-  version = "0.1.0";
+  version = "0.1.2";
 
   src = fetchFromGitHub {
     owner = "charmbracelet";
     repo = "soft-serve";
     rev = "v${version}";
-    sha256 = "0z88699q34a9cbhcz12y2qs2qrspfd8yx4ay0r8jzvkgax9ylrlk";
+    sha256 = "sha256-sRlEF1ee+oBnYOGSN6rDOvNr3OnfAqV+1Wx5XOyIylw=";
   };
 
-  vendorSha256 = "1g2iznfh08l23i81x7g2bhc7l8cppshzlyynxik4jshswlpv80sr";
+  vendorSha256 = "sha256-FukkmuBTPPhY0UTe3r1iU3nbGoMsPTcRKTLBd+VMGUk=";
 
   doCheck = false;
 
diff --git a/pkgs/servers/sql/mssql/jdbc/jtds.nix b/pkgs/servers/sql/mssql/jdbc/jtds.nix
new file mode 100644
index 00000000000..e67cc1b0ecb
--- /dev/null
+++ b/pkgs/servers/sql/mssql/jdbc/jtds.nix
@@ -0,0 +1,27 @@
+{lib, stdenv, fetchurl, unzip}:
+
+stdenv.mkDerivation rec {
+  pname = "jtds";
+  version = "1.3.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/jtds/${version}/${pname}-${version}-dist.zip";
+    sha256 = "sha256-eV0P8QdjfuHXzYssH8yHhynuH0Clg7MAece2Up3S9M0";
+  };
+
+  sourceRoot = ".";
+
+  installPhase = ''
+    mkdir -p $out/share/java
+    cp jtds-*.jar $out/share/java/jtds-jdbc.jar
+  '';
+
+  nativeBuildInputs = [ unzip ];
+
+  meta = with lib; {
+    description = "Pure Java (type 4) JDBC 3.0 driver for Microsoft SQL Server";
+    homepage = "http://jtds.sourceforge.net/";
+    license = licenses.lgpl21;
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/servers/tailscale/default.nix b/pkgs/servers/tailscale/default.nix
index 2a0165a9fe6..77361f3c35e 100644
--- a/pkgs/servers/tailscale/default.nix
+++ b/pkgs/servers/tailscale/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "tailscale";
-  version = "1.18.1";
+  version = "1.18.2";
 
   src = fetchFromGitHub {
     owner = "tailscale";
     repo = "tailscale";
     rev = "v${version}";
-    sha256 = "sha256-DmgCuv10TiB4UYISthJ1UghuPdvRKYl0cU9VxDvFjMc=";
+    sha256 = "sha256-8leFG2gYXw+orN/2NfjTvgRqSZSdso7OHIgECEJrO9k=";
   };
 
   nativeBuildInputs = lib.optionals stdenv.isLinux [ makeWrapper ];
diff --git a/pkgs/servers/tautulli/default.nix b/pkgs/servers/tautulli/default.nix
index 8011dc211b8..4b4e6217c99 100644
--- a/pkgs/servers/tautulli/default.nix
+++ b/pkgs/servers/tautulli/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonApplication rec {
   pname = "Tautulli";
-  version = "2.7.6";
+  version = "2.7.7";
   format = "other";
 
   pythonPath = [ setuptools ];
@@ -12,7 +12,7 @@ buildPythonApplication rec {
     owner = "Tautulli";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1j57n8bi8qzzx1nw23rfr1g8yidg7p600pbbfv4b1dfiw8633jsl";
+    sha256 = "03zqpffc0hc8lrnc9m9562lh154bv3cnfw0n5x7j4wqr2jp5kb2h";
   };
 
   installPhase = ''
diff --git a/pkgs/servers/traefik/default.nix b/pkgs/servers/traefik/default.nix
index a707a4b9871..677ea7b70a1 100644
--- a/pkgs/servers/traefik/default.nix
+++ b/pkgs/servers/traefik/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "traefik";
-  version = "2.5.4";
+  version = "2.5.5";
 
   src = fetchzip {
     url = "https://github.com/traefik/traefik/releases/download/v${version}/traefik-v${version}.src.tar.gz";
-    sha256 = "sha256-OMzLRgpTUIosmlAdMiNplOx/Oj28gcqamsOPJdoFkN0=";
+    sha256 = "sha256-Y7gYUe7vFC672f3U8QOA8NdGcZ2zGp0UjnvKFOci/vs=";
     stripRoot = false;
   };
 
-  vendorSha256 = "sha256-BSempfKgRCj87XM8qPNEUs+sMILVS6bWwWgf7wWQviI=";
+  vendorSha256 = "sha256-fiODtiw7mxMshdwywW4esBYM1GEa2CS7+X80KxkzImE=";
 
   doCheck = false;
 
diff --git a/pkgs/servers/unifi/default.nix b/pkgs/servers/unifi/default.nix
index 3d3ac89e6c0..33f5044cb76 100644
--- a/pkgs/servers/unifi/default.nix
+++ b/pkgs/servers/unifi/default.nix
@@ -1,10 +1,9 @@
-{ lib, stdenv, dpkg, fetchurl }:
+{ lib, stdenv, dpkg, fetchurl, zip, nixosTests }:
 
 let
-  generic = { version, sha256, suffix ? "" }:
-  stdenv.mkDerivation {
+  generic = { version, sha256, suffix ? "", ... } @ args:
+  stdenv.mkDerivation (args // {
     pname = "unifi-controller";
-    inherit version;
 
     src = fetchurl {
       url = "https://dl.ubnt.com/unifi/${version}${suffix}/unifi_sysvinit_all.deb";
@@ -29,6 +28,10 @@ let
       runHook postInstall
     '';
 
+    passthru.tests = {
+      unifi = nixosTests.unifi;
+    };
+
     meta = with lib; {
       homepage = "http://www.ubnt.com/";
       description = "Controller for Ubiquiti UniFi access points";
@@ -36,7 +39,7 @@ let
       platforms = platforms.unix;
       maintainers = with maintainers; [ erictapen globin patryk27 pennae ];
     };
-  };
+  });
 
 in rec {
   # see https://community.ui.com/releases / https://www.ui.com/download/unifi
@@ -49,10 +52,15 @@ in rec {
   unifi5 = generic {
     version = "5.14.23";
     sha256 = "1aar05yjm3z5a30x505w4kakbyz35i7mk7xyg0wm4ml6h94d84pv";
+
+    postInstall = ''
+      # Remove when log4j is updated to 2.12.2 or 2.16.0.
+      ${zip}/bin/zip -q -d $out/lib/log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
+    '';
   };
 
   unifi6 = generic {
-    version = "6.5.54";
-    sha256 = "sha256-M2gYqKZi0czFgfWx0tTW43b+aUVqS6Mg+misRB9/Fes=";
+    version = "6.5.55";
+    sha256 = "sha256-NUGRO+f6JzWvYPwiitZsgp+LQwnGSncnost03mgNVxA=";
   };
 }
diff --git a/pkgs/servers/web-apps/hedgedoc/package.json b/pkgs/servers/web-apps/hedgedoc/package.json
index 80d86d9ccb3..8d224331614 100644
--- a/pkgs/servers/web-apps/hedgedoc/package.json
+++ b/pkgs/servers/web-apps/hedgedoc/package.json
@@ -1,6 +1,6 @@
 {
   "name": "HedgeDoc",
-  "version": "1.9.0",
+  "version": "1.9.2",
   "description": "The best platform to write and share markdown.",
   "main": "app.js",
   "license": "AGPL-3.0",
@@ -37,8 +37,8 @@
     "ejs": "^3.0.0",
     "express": ">=4.14",
     "express-session": "^1.14.2",
-    "file-type": "^16.1.0",
-    "formidable": "^1.0.17",
+    "formidable": "^2.0.0",
+    "file-type": "^17.0.0",
     "graceful-fs": "^4.1.11",
     "helmet": "^4.5.0",
     "i18n": "^0.13.0",
@@ -70,7 +70,7 @@
     "morgan": "^1.7.0",
     "mysql2": "^2.0.0",
     "node-fetch": "^2.6.1",
-    "passport": "^0.4.0",
+    "passport": "^0.5.0",
     "passport-dropbox-oauth2": "^1.1.0",
     "passport-facebook": "^3.0.0",
     "passport-github": "^1.1.0",
@@ -85,7 +85,7 @@
     "pdfobject": "^2.0.201604172",
     "pg": "^8.2.1",
     "pg-hstore": "^2.3.3",
-    "prom-client": "^13.1.0",
+    "prom-client": "^14.0.0",
     "prometheus-api-metrics": "^3.2.0",
     "randomcolor": "^0.6.0",
     "readline-sync": "^1.4.7",
@@ -110,7 +110,7 @@
     "**/request": "^2.88.0"
   },
   "engines": {
-    "node": ">=12"
+    "node": "^12.20.0 || ^14.13.1 || 16.x"
   },
   "bugs": "https://github.com/hedgedoc/hedgedoc/issues",
   "keywords": [
@@ -153,19 +153,19 @@
     "copy-webpack-plugin": "6.4.1",
     "css-loader": "5.2.7",
     "emojify.js": "1.1.0",
-    "esbuild-loader": "2.15.1",
+    "esbuild-loader": "2.16.0",
     "escape-html": "1.0.3",
-    "eslint": "7.32.0",
+    "eslint": "8.3.0",
     "eslint-config-standard": "16.0.3",
-    "eslint-plugin-import": "2.24.2",
+    "eslint-plugin-import": "2.25.3",
     "eslint-plugin-node": "11.1.0",
-    "eslint-plugin-promise": "5.1.0",
+    "eslint-plugin-promise": "5.1.1",
     "eslint-plugin-standard": "4.1.0",
     "exports-loader": "1.1.1",
     "expose-loader": "1.0.3",
     "file-loader": "6.2.0",
     "file-saver": "2.0.5",
-    "flowchart.js": "1.15.0",
+    "flowchart.js": "1.17.0",
     "fork-awesome": "1.2.0",
     "gist-embed": "2.6.0",
     "highlight.js": "10.7.3",
@@ -174,25 +174,25 @@
     "ionicons": "2.0.1",
     "jquery": "3.6.0",
     "jquery-mousewheel": "3.1.13",
-    "jquery-ui": "1.12.1",
+    "jquery-ui": "1.13.0",
     "js-cookie": "3.0.1",
     "js-sequence-diagrams": "git+https://github.com/hedgedoc/js-sequence-diagrams.git",
     "js-yaml": "3.14.1",
     "jsonlint": "1.6.3",
     "keymaster": "1.6.2",
-    "less": "4.1.1",
+    "less": "4.1.2",
     "less-loader": "7.3.0",
     "list.js": "2.3.1",
     "mathjax": "2.7.9",
-    "mermaid": "8.12.1",
+    "mermaid": "8.13.4",
     "mini-css-extract-plugin": "1.6.2",
-    "mocha": "9.1.1",
+    "mocha": "9.1.3",
     "mock-require": "3.0.3",
     "optimize-css-assets-webpack-plugin": "6.0.1",
-    "prismjs": "1.24.1",
+    "prismjs": "1.25.0",
     "raphael": "2.3.0",
-    "remark-cli": "10.0.0",
-    "remark-preset-lint-markdown-style-guide": "5.0.1",
+    "remark-cli": "10.0.1",
+    "remark-preset-lint-markdown-style-guide": "5.1.1",
     "reveal.js": "3.9.2",
     "select2": "3.5.2-browserify",
     "socket.io-client": "2.4.0",
@@ -204,7 +204,7 @@
     "visibilityjs": "2.0.2",
     "viz.js": "1.8.2",
     "webpack": "4.46.0",
-    "webpack-cli": "4.8.0",
+    "webpack-cli": "4.9.1",
     "webpack-merge": "5.8.0",
     "wurl": "2.5.4"
   },
diff --git a/pkgs/servers/web-apps/hedgedoc/pin.json b/pkgs/servers/web-apps/hedgedoc/pin.json
index a27498808ff..a78ffcb7f6a 100644
--- a/pkgs/servers/web-apps/hedgedoc/pin.json
+++ b/pkgs/servers/web-apps/hedgedoc/pin.json
@@ -1,5 +1,5 @@
 {
-  "version": "1.9.0",
-  "srcHash": "hSKQGkI1+68Zf05RhgRKZo47buyobzjhURSZ30/h0PA=",
-  "yarnHash": "0v51jmmbg8fx66ay2glby0gxw07in95igz325p42g5hjd5kankf6"
+  "version": "1.9.2",
+  "srcHash": "e0oPib+JutFBCuCSuokqLL94isI4SfGIT5aLnTjpulM=",
+  "yarnHash": "0kb91c2jppwp9vg70c5jhy5lhf09p35blci8cvpj69y5sk80q0zc"
 }
diff --git a/pkgs/servers/web-apps/hedgedoc/yarn.lock b/pkgs/servers/web-apps/hedgedoc/yarn.lock
index e7020b83254..a70d12a2d7b 100644
--- a/pkgs/servers/web-apps/hedgedoc/yarn.lock
+++ b/pkgs/servers/web-apps/hedgedoc/yarn.lock
@@ -2,31 +2,24 @@
 # yarn lockfile v1
 
 
-"@babel/code-frame@7.12.11":
-  version "7.12.11"
-  resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f"
-  integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==
-  dependencies:
-    "@babel/highlight" "^7.10.4"
-
 "@babel/code-frame@^7.0.0":
-  version "7.14.5"
-  resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb"
-  integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==
+  version "7.16.0"
+  resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.0.tgz#0dfc80309beec8411e65e706461c408b0bb9b431"
+  integrity sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==
   dependencies:
-    "@babel/highlight" "^7.14.5"
+    "@babel/highlight" "^7.16.0"
 
-"@babel/helper-validator-identifier@^7.14.5":
-  version "7.14.9"
-  resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz#6654d171b2024f6d8ee151bf2509699919131d48"
-  integrity sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==
+"@babel/helper-validator-identifier@^7.15.7":
+  version "7.15.7"
+  resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz#220df993bfe904a4a6b02ab4f3385a5ebf6e2389"
+  integrity sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==
 
-"@babel/highlight@^7.10.4", "@babel/highlight@^7.14.5":
-  version "7.14.5"
-  resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9"
-  integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==
+"@babel/highlight@^7.16.0":
+  version "7.16.0"
+  resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.0.tgz#6ceb32b2ca4b8f5f361fb7fd821e3fddf4a1725a"
+  integrity sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==
   dependencies:
-    "@babel/helper-validator-identifier" "^7.14.5"
+    "@babel/helper-validator-identifier" "^7.15.7"
     chalk "^2.0.0"
     js-tokens "^4.0.0"
 
@@ -45,22 +38,22 @@
     kuler "^2.0.0"
 
 "@discoveryjs/json-ext@^0.5.0":
-  version "0.5.3"
-  resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.3.tgz#90420f9f9c6d3987f176a19a7d8e764271a2f55d"
-  integrity sha512-Fxt+AfXgjMoin2maPIYzFZnQjAXjAL0PHscM5pRTtatFqB+vZxAM9tLp2Optnuw3QOQC40jTNeGYFOMvyf7v9g==
+  version "0.5.6"
+  resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz#d5e0706cf8c6acd8c6032f8d54070af261bbbb2f"
+  integrity sha512-ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA==
 
-"@eslint/eslintrc@^0.4.3":
-  version "0.4.3"
-  resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c"
-  integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==
+"@eslint/eslintrc@^1.0.4":
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.0.4.tgz#dfe0ff7ba270848d10c5add0715e04964c034b31"
+  integrity sha512-h8Vx6MdxwWI2WM8/zREHMoqdgLNXEL4QX3MWSVMdyNJGvXVOs+6lp+m2hc3FnuMHDc4poxFNI20vCk0OmI4G0Q==
   dependencies:
     ajv "^6.12.4"
-    debug "^4.1.1"
-    espree "^7.3.0"
+    debug "^4.3.2"
+    espree "^9.0.0"
     globals "^13.9.0"
     ignore "^4.0.6"
     import-fresh "^3.2.1"
-    js-yaml "^3.13.1"
+    js-yaml "^4.1.0"
     minimatch "^3.0.4"
     strip-json-comments "^3.1.1"
 
@@ -69,19 +62,19 @@
   resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.2.tgz#30aa825f11d438671d585bd44e7fd564535fc210"
   integrity sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw==
 
-"@humanwhocodes/config-array@^0.5.0":
-  version "0.5.0"
-  resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9"
-  integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==
+"@humanwhocodes/config-array@^0.6.0":
+  version "0.6.0"
+  resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.6.0.tgz#b5621fdb3b32309d2d16575456cbc277fa8f021a"
+  integrity sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A==
   dependencies:
     "@humanwhocodes/object-schema" "^1.2.0"
     debug "^4.1.1"
     minimatch "^3.0.4"
 
 "@humanwhocodes/object-schema@^1.2.0":
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz#87de7af9c231826fdd68ac7258f77c429e0e5fcf"
-  integrity sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45"
+  integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==
 
 "@nodelib/fs.scandir@2.1.5":
   version "2.1.5"
@@ -151,9 +144,9 @@
     "@types/node" "*"
 
 "@types/body-parser@*":
-  version "1.19.1"
-  resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.1.tgz#0c0174c42a7d017b818303d4b5d969cb0b75929c"
-  integrity sha512-a6bTJ21vFOGIkwM0kzh9Yr89ziVxq4vYH2fQ6N8AeipEzai/cFK6aGMArIkUeIdRIgpwQa+2bXiLuUJCpSf2Cg==
+  version "1.19.2"
+  resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0"
+  integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==
   dependencies:
     "@types/connect" "*"
     "@types/node" "*"
@@ -194,10 +187,22 @@
   dependencies:
     "@types/ms" "*"
 
+"@types/estree-jsx@^0.0.1":
+  version "0.0.1"
+  resolved "https://registry.yarnpkg.com/@types/estree-jsx/-/estree-jsx-0.0.1.tgz#c36d7a1afeb47a95a8ee0b7bc8bc705db38f919d"
+  integrity sha512-gcLAYiMfQklDCPjQegGn0TBAn9it05ISEsEhlKQUddIk7o2XDokOcTN7HBO8tznM0D9dGezvHEfRZBfZf6me0A==
+  dependencies:
+    "@types/estree" "*"
+
+"@types/estree@*":
+  version "0.0.50"
+  resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.50.tgz#1e0caa9364d3fccd2931c3ed96fdbeaa5d4cca83"
+  integrity sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==
+
 "@types/express-serve-static-core@^4.17.12", "@types/express-serve-static-core@^4.17.18":
-  version "4.17.24"
-  resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.24.tgz#ea41f93bf7e0d59cd5a76665068ed6aab6815c07"
-  integrity sha512-3UJuW+Qxhzwjq3xhwXm2onQcFHn76frIYVbTu+kn24LFxI+dEhdfISDFovPB8VpEgW8oQCTpRuCe+0zJxB7NEA==
+  version "4.17.26"
+  resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.26.tgz#5d9a8eeecb9d5f9d7fc1d85f541512a84638ae88"
+  integrity sha512-zeu3tpouA043RHxW0gzRxwCHchMgftE8GArRsvYT0ByDMbn19olQHx5jLue0LxWY6iYtXb7rXmuVtSkhy9YZvQ==
   dependencies:
     "@types/node" "*"
     "@types/qs" "*"
@@ -218,13 +223,6 @@
   resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.8.tgz#30744afdb385e2945e22f3b033f897f76b1f12ca"
   integrity sha512-1rkryxURpr6aWP7R786/UQOkJ3PcpQiWkAXBmdWc7ryFWqN6a4xfK7BtjXvFBKO9LjQ+MWQSWxYeZX1OApnArA==
 
-"@types/hast@^2.0.0":
-  version "2.3.4"
-  resolved "https://registry.yarnpkg.com/@types/hast/-/hast-2.3.4.tgz#8aa5ef92c117d20d974a82bdfb6a648b08c0bafc"
-  integrity sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==
-  dependencies:
-    "@types/unist" "*"
-
 "@types/html-minifier-terser@^5.0.0":
   version "5.1.2"
   resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.2.tgz#693b316ad323ea97eed6b38ed1a3cc02b1672b57"
@@ -241,14 +239,14 @@
   integrity sha512-e+2rjEwK6KDaNOm5Aa9wNGgyS9oSZU/4pfSMMPYNOfjvFI0WVXm29+ITRFr6aKDvvKo7uU1jV68MW4ScsfDi7Q==
 
 "@types/is-empty@^1.0.0":
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/@types/is-empty/-/is-empty-1.2.0.tgz#16bc578060c9b0b6953339eea906c255a375bf86"
-  integrity sha512-brJKf2boFhUxTDxlpI7cstwiUtA2ovm38UzFTi9aZI6//ARncaV+Q5ALjCaJqXaMtdZk/oPTJnSutugsZR6h8A==
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/@types/is-empty/-/is-empty-1.2.1.tgz#18d7256a73e43ec51f8b75c25fbdc31350be52a6"
+  integrity sha512-a3xgqnFTuNJDm1fjsTjHocYJ40Cz3t8utYpi5GNaxzrJC2HSD08ym+whIL7fNqiqBCdM9bcqD1H/tORWAFXoZw==
 
 "@types/js-yaml@^4.0.0":
-  version "4.0.3"
-  resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-4.0.3.tgz#9f33cd6fbf0d5ec575dc8c8fc69c7fec1b4eb200"
-  integrity sha512-5t9BhoORasuF5uCPr+d5/hdB++zRFUTMIZOzbNkr+jZh3yQht4HYbRDyj9fY8n2TZT30iW9huzav73x4NikqWg==
+  version "4.0.5"
+  resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-4.0.5.tgz#738dd390a6ecc5442f35e7f03fa1431353f7e138"
+  integrity sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA==
 
 "@types/json-schema@^7.0.8":
   version "7.0.9"
@@ -311,19 +309,14 @@
   integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==
 
 "@types/node@*", "@types/node@^16.0.0":
-  version "16.9.1"
-  resolved "https://registry.yarnpkg.com/@types/node/-/node-16.9.1.tgz#0611b37db4246c937feef529ddcc018cf8e35708"
-  integrity sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==
+  version "16.11.11"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.11.tgz#6ea7342dfb379ea1210835bada87b3c512120234"
+  integrity sha512-KB0sixD67CeecHC33MYn+eYARkqTheIRNuu97y2XMjR7Wu3XibO1vaY6VBV6O/a89SPI81cEUIYT87UqUWlZNw==
 
 "@types/node@^14.14.28":
-  version "14.17.15"
-  resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.15.tgz#d5ebfb62a69074ebb85cbe0529ad917bb8f2bae8"
-  integrity sha512-D1sdW0EcSCmNdLKBGMYb38YsHUS6JcM7yQ6sLQ9KuZ35ck7LYCKE7kYFHOO59ayFOY3zobWVZxf4KXhYHcHYFA==
-
-"@types/parse5@^6.0.0":
-  version "6.0.1"
-  resolved "https://registry.yarnpkg.com/@types/parse5/-/parse5-6.0.1.tgz#f8ae4fbcd2b9ba4ff934698e28778961f9cb22ca"
-  integrity sha512-ARATsLdrGPUnaBvxLhUlnltcMgn7pQG312S8ccdYlnyijabrX9RN/KN/iGj9Am96CoW8e/K9628BA7Bv4XHdrA==
+  version "14.17.34"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.34.tgz#fe4b38b3f07617c0fa31ae923fca9249641038f0"
+  integrity sha512-USUftMYpmuMzeWobskoPfzDi+vkpe0dvcOBRNOscFrGxVp4jomnRxWuVohgqBow2xyIPC0S3gjxV/5079jhmDg==
 
 "@types/qs@*":
   version "6.9.7"
@@ -385,9 +378,9 @@
     source-map "^0.7.3"
 
 "@types/webpack@^4.41.8":
-  version "4.41.31"
-  resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.31.tgz#c35f252a3559ddf9c85c0d8b0b42019025e581aa"
-  integrity sha512-/i0J7sepXFIp1ZT7FjUGi1eXMCg8HCCzLJEQkKsOtbJFontsJLolBcDC+3qxn5pPwiCt1G0ZdRmYRzNBtvpuGQ==
+  version "4.41.32"
+  resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.32.tgz#a7bab03b72904070162b2f169415492209e94212"
+  integrity sha512-cb+0ioil/7oz5//7tZUSwbrSAN/NWHrQylz5cW8G0dWTcF/g+/dSdMlKVZspBYuMAN1+WnwHrkxiRrLcwd0Heg==
   dependencies:
     "@types/node" "*"
     "@types/tapable" "^1"
@@ -546,27 +539,27 @@
     "@webassemblyjs/wast-parser" "1.9.0"
     "@xtuc/long" "4.2.2"
 
-"@webpack-cli/configtest@^1.0.4":
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.0.4.tgz#f03ce6311c0883a83d04569e2c03c6238316d2aa"
-  integrity sha512-cs3XLy+UcxiP6bj0A6u7MLLuwdXJ1c3Dtc0RkKg+wiI1g/Ti1om8+/2hc2A2B60NbBNAbMgyBMHvyymWm/j4wQ==
+"@webpack-cli/configtest@^1.1.0":
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.1.0.tgz#8342bef0badfb7dfd3b576f2574ab80c725be043"
+  integrity sha512-ttOkEkoalEHa7RaFYpM0ErK1xc4twg3Am9hfHhL7MVqlHebnkYd2wuI/ZqTDj0cVzZho6PdinY0phFZV3O0Mzg==
 
-"@webpack-cli/info@^1.3.0":
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.3.0.tgz#9d78a31101a960997a4acd41ffd9b9300627fe2b"
-  integrity sha512-ASiVB3t9LOKHs5DyVUcxpraBXDOKubYu/ihHhU+t1UPpxsivg6Od2E2qU4gJCekfEddzRBzHhzA/Acyw/mlK/w==
+"@webpack-cli/info@^1.4.0":
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.4.0.tgz#b9179c3227ab09cbbb149aa733475fcf99430223"
+  integrity sha512-F6b+Man0rwE4n0409FyAJHStYA5OIZERxmnUfLVwv0mc0V1wLad3V7jqRlMkgKBeAq07jUvglacNaa6g9lOpuw==
   dependencies:
     envinfo "^7.7.3"
 
-"@webpack-cli/serve@^1.5.2":
-  version "1.5.2"
-  resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.5.2.tgz#ea584b637ff63c5a477f6f21604b5a205b72c9ec"
-  integrity sha512-vgJ5OLWadI8aKjDlOH3rb+dYyPd2GTZuQC/Tihjct6F9GpXGZINo3Y/IVuZVTM1eDQB+/AOsjPUWH/WySDaXvw==
+"@webpack-cli/serve@^1.6.0":
+  version "1.6.0"
+  resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.6.0.tgz#2c275aa05c895eccebbfc34cfb223c6e8bd591a2"
+  integrity sha512-ZkVeqEmRpBV2GHvjjUZqEai2PpUbuq8Bqd//vEYsp63J8WyexI8ppCqVS3Zs0QADf6aWuPdU+0XsPI647PVlQA==
 
-"@xmldom/xmldom@^0.7.0", "@xmldom/xmldom@^0.7.2":
-  version "0.7.4"
-  resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.7.4.tgz#93b2f9486c88b6464e97f76c9ab49b0a548fbe57"
-  integrity sha512-wdxC79cvO7PjSM34jATd/RYZuYWQ8y/R7MidZl1NYYlbpFn1+spfjkiR3ZsJfcaTs2IyslBN7VwBBJwrYKM+zw==
+"@xmldom/xmldom@^0.7.0", "@xmldom/xmldom@^0.7.5":
+  version "0.7.5"
+  resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.7.5.tgz#09fa51e356d07d0be200642b0e4f91d8e6dd408d"
+  integrity sha512-V3BIhmY36fXZ1OtVcI9W+FxQqxVLsPKcNjWigIaa81dLC9IolJl5Mt4Cvhmr0flUnjSpTdrbMTSbXqYqV5dT6A==
 
 "@xtuc/ieee754@^1.2.0":
   version "1.2.0"
@@ -643,10 +636,10 @@ acorn@^6.4.1:
   resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6"
   integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==
 
-acorn@^7.4.0:
-  version "7.4.1"
-  resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
-  integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
+acorn@^8.6.0:
+  version "8.6.0"
+  resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.6.0.tgz#e3692ba0eb1a0c83eaa4f37f5fa7368dd7142895"
+  integrity sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==
 
 after@0.8.2:
   version "0.8.2"
@@ -681,16 +674,6 @@ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5:
     json-schema-traverse "^0.4.1"
     uri-js "^4.2.2"
 
-ajv@^8.0.1:
-  version "8.6.3"
-  resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.3.tgz#11a66527761dc3e9a3845ea775d2d3c0414e8764"
-  integrity sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw==
-  dependencies:
-    fast-deep-equal "^3.1.1"
-    json-schema-traverse "^1.0.0"
-    require-from-string "^2.0.2"
-    uri-js "^4.2.2"
-
 alphanum-sort@^1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3"
@@ -706,15 +689,10 @@ ansi-regex@^2.0.0:
   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-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-regex@^5.0.1:
+  version "5.0.1"
+  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
+  integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
 
 ansi-regex@^6.0.1:
   version "6.0.1"
@@ -855,16 +833,16 @@ 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.1.3:
-  version "3.1.3"
-  resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.3.tgz#c7f619b382ad2afaf5326cddfdc0afc61af7690a"
-  integrity sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==
+array-includes@^3.1.4:
+  version "3.1.4"
+  resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.4.tgz#f5b493162c760f3539631f005ba2bb46acb45ba9"
+  integrity sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==
   dependencies:
     call-bind "^1.0.2"
     define-properties "^1.1.3"
-    es-abstract "^1.18.0-next.2"
+    es-abstract "^1.19.1"
     get-intrinsic "^1.1.1"
-    is-string "^1.0.5"
+    is-string "^1.0.7"
 
 array-union@^2.1.0:
   version "2.1.0"
@@ -881,20 +859,25 @@ 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.4:
-  version "1.2.4"
-  resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz#6ef638b43312bd401b4c6199fdec7e2dc9e9a123"
-  integrity sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==
+array.prototype.flat@^1.2.5:
+  version "1.2.5"
+  resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz#07e0975d84bbc7c48cd1879d609e682598d33e13"
+  integrity sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==
   dependencies:
-    call-bind "^1.0.0"
+    call-bind "^1.0.2"
     define-properties "^1.1.3"
-    es-abstract "^1.18.0-next.1"
+    es-abstract "^1.19.0"
 
 arraybuffer.slice@~0.0.7:
   version "0.0.7"
   resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675"
   integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==
 
+asap@^2.0.0:
+  version "2.0.6"
+  resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
+  integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=
+
 asn1.js@^5.2.0:
   version "5.4.1"
   resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07"
@@ -906,9 +889,9 @@ asn1.js@^5.2.0:
     safer-buffer "^2.1.0"
 
 asn1@^0.2.4, asn1@~0.2.3:
-  version "0.2.4"
-  resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136"
-  integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==
+  version "0.2.6"
+  resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d"
+  integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==
   dependencies:
     safer-buffer "~2.1.0"
 
@@ -930,11 +913,6 @@ assign-symbols@^1.0.0:
   resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
   integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=
 
-astral-regex@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
-  integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
-
 async-each@^1.0.0, async-each@^1.0.1:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf"
@@ -951,9 +929,9 @@ async@^1.4.0:
   integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=
 
 async@^3.0.0, async@^3.1.0, async@^3.2.0:
-  version "3.2.1"
-  resolved "https://registry.yarnpkg.com/async/-/async-3.2.1.tgz#d3274ec66d107a47476a4c49136aacdb00665fc8"
-  integrity sha512-XdD5lRO/87udXCMC9meWdYiR+Nq6ZjUfXidViUZGu2F1MO4T3XwZ1et0hb2++BgLfhyJwy44BGB/yx80ABx8hg==
+  version "3.2.2"
+  resolved "https://registry.yarnpkg.com/async/-/async-3.2.2.tgz#2eb7671034bb2194d45d30e31e24ec7e7f9670cd"
+  integrity sha512-H0E+qZaDEfx/FY4t7iLRv1W2fFI6+pyCeTw1uN20AQPiwqwM6ojPxHxdLv4z8hi2DtnW9BOckSspLucW7pIE5g==
 
 asynckit@^0.4.0:
   version "0.4.0"
@@ -971,9 +949,9 @@ available-typed-arrays@^1.0.5:
   integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==
 
 aws-sdk@^2.987.0:
-  version "2.988.0"
-  resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.988.0.tgz#46538de14c4c5cd3d7718badedffd31471a0c0e9"
-  integrity sha512-2b56fPJ9vHgLnDeZ6NDgQzzJT/0NbSGNYIzGZx47/FROwoxRArqt9agiQ14y1zlXPsP9QNKPjp6HsW4IFLjGWQ==
+  version "2.1042.0"
+  resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1042.0.tgz#c3385bf6cbb8f97c2cde427c0ab3d9720fa4b82a"
+  integrity sha512-JWjs6+Zhuo990WYH1iQR1njGOvoCFzaf2azX/zh3JdL7QNwzdqczoODMj0wb22831/7EoPDGaXHqp7aQwDsxwA==
   dependencies:
     buffer "4.9.2"
     events "1.1.1"
@@ -995,7 +973,7 @@ aws4@^1.8.0:
   resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59"
   integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==
 
-axios@^0.21.1:
+axios@^0.21.4:
   version "0.21.4"
   resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575"
   integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==
@@ -1003,9 +981,9 @@ axios@^0.21.1:
     follow-redirects "^1.14.0"
 
 azure-storage@^2.7.0:
-  version "2.10.4"
-  resolved "https://registry.yarnpkg.com/azure-storage/-/azure-storage-2.10.4.tgz#c481d207eabc05f57f019b209f7faa8737435104"
-  integrity sha512-zlfRPl4js92JC6+79C2EUmNGYjSknRl8pOiHQF78zy+pbOFOHtlBF6BU/OxPeHQX3gaa6NdEZnVydFxhhndkEw==
+  version "2.10.5"
+  resolved "https://registry.yarnpkg.com/azure-storage/-/azure-storage-2.10.5.tgz#2193314940954c8e90c14d0601fb146470740f70"
+  integrity sha512-kLCbiW1lvwwJwB/iOX7ic7xw/RIcSReF1sUFetEyFSiE+HDdv/wpSlsQx0F0khkXrPtJmBJRH0y9s/CRuRBWLQ==
   dependencies:
     browserify-mime "~1.2.9"
     extend "^3.0.2"
@@ -1015,7 +993,7 @@ azure-storage@^2.7.0:
     request "^2.86.0"
     underscore "^1.12.1"
     uuid "^3.0.0"
-    validator "~9.4.1"
+    validator "~13.6.0"
     xml2js "0.2.8"
     xmlbuilder "^9.0.7"
 
@@ -1590,9 +1568,9 @@ backoff@^2.5.0:
     precond "0.2"
 
 bail@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/bail/-/bail-2.0.1.tgz#d676736373a374058a935aec81b94c12ba815771"
-  integrity sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/bail/-/bail-2.0.2.tgz#d26f5cd8fe5d6f832a31517b9f7c356040ba6d5d"
+  integrity sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==
 
 balanced-match@^1.0.0:
   version "1.0.2"
@@ -1877,15 +1855,15 @@ browserslist@^3.2.6:
     electron-to-chromium "^1.3.47"
 
 browserslist@^4.0.0, browserslist@^4.16.0, browserslist@^4.16.6:
-  version "4.17.0"
-  resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.17.0.tgz#1fcd81ec75b41d6d4994fb0831b92ac18c01649c"
-  integrity sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==
+  version "4.18.1"
+  resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.18.1.tgz#60d3920f25b6860eb917c6c7b185576f4d8b017f"
+  integrity sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ==
   dependencies:
-    caniuse-lite "^1.0.30001254"
-    colorette "^1.3.0"
-    electron-to-chromium "^1.3.830"
+    caniuse-lite "^1.0.30001280"
+    electron-to-chromium "^1.3.896"
     escalade "^3.1.1"
-    node-releases "^1.1.75"
+    node-releases "^2.0.1"
+    picocolors "^1.0.0"
 
 buffer-crc32@^0.2.1, buffer-crc32@^0.2.13:
   version "0.2.13"
@@ -1925,11 +1903,11 @@ buffer@^5.5.0:
     ieee754 "^1.1.13"
 
 bufferutil@^4.0.0:
-  version "4.0.3"
-  resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.3.tgz#66724b756bed23cd7c28c4d306d7994f9943cc6b"
-  integrity sha512-yEYTwGndELGvfXsImMBLop58eaGW+YdONi1fNjTINSY98tmMmFijBG6WXgdkfuLNt4imzQNtIE+eBp1PVpMCSw==
+  version "4.0.5"
+  resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.5.tgz#da9ea8166911cc276bf677b8aed2d02d31f59028"
+  integrity sha512-HTm14iMQKK2FjFLRTM5lAVcyaUzOnqbPtesFIvREgXpJHdQm8bWS+GkQgIkfaBYRHuCnea7w8UVNfwiAQhlr9A==
   dependencies:
-    node-gyp-build "^4.2.0"
+    node-gyp-build "^4.3.0"
 
 builtin-status-codes@^3.0.0:
   version "3.0.0"
@@ -2035,9 +2013,9 @@ camel-case@^4.1.1:
     tslib "^2.0.3"
 
 camelcase@^6.0.0:
-  version "6.2.0"
-  resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809"
-  integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==
+  version "6.2.1"
+  resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.1.tgz#250fd350cfd555d0d2160b1d51510eaf8326e86e"
+  integrity sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==
 
 caniuse-api@^3.0.0:
   version "3.0.0"
@@ -2049,21 +2027,16 @@ caniuse-api@^3.0.0:
     lodash.memoize "^4.1.2"
     lodash.uniq "^4.5.0"
 
-caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001254:
-  version "1.0.30001257"
-  resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001257.tgz#150aaf649a48bee531104cfeda57f92ce587f6e5"
-  integrity sha512-JN49KplOgHSXpIsVSF+LUyhD8PUp6xPpAXeRrrcBh4KBeP7W864jHn6RvzJgDlrReyeVjMFJL3PLpPvKIxlIHA==
+caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001280:
+  version "1.0.30001283"
+  resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001283.tgz#8573685bdae4d733ef18f78d44ba0ca5fe9e896b"
+  integrity sha512-9RoKo841j1GQFSJz/nCXOj0sD7tHBtlowjYlrqIUS812x9/emfBLBt6IyMz1zIaYc/eRL8Cs6HPUVi2Hzq4sIg==
 
 caseless@~0.12.0:
   version "0.12.0"
   resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
   integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
 
-ccount@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/ccount/-/ccount-2.0.0.tgz#3d6fb55803832766a24c6f339abc507297eb5d25"
-  integrity sha512-VOR0NWFYX65n9gELQdcpqsie5L5ihBXuZGAgaPEp/U7IOSjnPMEH6geE+2f6lcekaNEfWzAHS45mPvSo5bqsUA==
-
 chalk@^1.1.3:
   version "1.1.3"
   resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
@@ -2106,25 +2079,10 @@ chance@^1.0.4:
   resolved "https://registry.yarnpkg.com/chance/-/chance-1.1.8.tgz#5d6c2b78c9170bf6eb9df7acdda04363085be909"
   integrity sha512-v7fi5Hj2VbR6dJEGRWLmJBA83LJMS47pkAbmROFxHWd9qmE1esHRZW8Clf1Fhzr3rjxnNZVCjOEv/ivFxeIMtg==
 
-character-entities-html4@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-2.0.0.tgz#55fcf3ed00febfe41f8f6a5709d25ab8ed73a449"
-  integrity sha512-dwT2xh5ZhUAjyP96k57ilMKoTQyASaw9IAMR9U5c1lCu2RUni6O6jxfpUEdO2RcPT6TJFvr8pqsbami4Jk+2oA==
-
-character-entities-legacy@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-2.0.0.tgz#57f4d00974c696e8f74e9f493e7fcb75b44d7ee7"
-  integrity sha512-YwaEtEvWLpFa6Wh3uVLrvirA/ahr9fki/NUd/Bd4OR6EdJ8D22hovYQEOUCBfQfcqnC4IAMGMsHXY1eXgL4ZZA==
-
 character-entities@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.0.tgz#508355fcc8c73893e0909efc1a44d28da2b6fdf3"
-  integrity sha512-oHqMj3eAuJ77/P5PaIRcqk+C3hdfNwyCD2DAUcD5gyXkegAuF2USC40CEqPscDk4I8FRGMTojGJQkXDsN5QlJA==
-
-character-reference-invalid@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-2.0.0.tgz#a0bdeb89c051fe7ed5d3158b2f06af06984f2813"
-  integrity sha512-pE3Z15lLRxDzWJy7bBHBopRwfI20sbrMVLQTC7xsPglCHf4Wv1e167OgYAFP78co2XlhojDyAqA+IAJse27//g==
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.1.tgz#98724833e1e27990dee0bd0f2b8a859c3476aac7"
+  integrity sha512-OzmutCf2Kmc+6DrFrrPS8/tDh2+DpnrfzdICHWhcVC9eOd0N1PXmQEE1a8iM4IziIAG+8tmTq3K+oo0ubH6RRQ==
 
 cheerio@^0.22.0:
   version "0.22.0"
@@ -2232,9 +2190,9 @@ class-utils@^0.3.5:
     static-extend "^0.1.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==
+  version "4.2.4"
+  resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.4.tgz#733bf46eba4e607c6891ea57c24a989356831178"
+  integrity sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==
   dependencies:
     source-map "~0.6.0"
 
@@ -2286,7 +2244,7 @@ collection-visit@^1.0.0:
     map-visit "^1.0.0"
     object-visit "^1.0.0"
 
-color-convert@^1.9.0, color-convert@^1.9.1:
+color-convert@^1.9.0, color-convert@^1.9.3:
   version "1.9.3"
   resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
   integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
@@ -2310,31 +2268,31 @@ color-name@^1.0.0, color-name@~1.1.4:
   resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
   integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
 
-color-string@^1.5.2:
-  version "1.6.0"
-  resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.6.0.tgz#c3915f61fe267672cb7e1e064c9d692219f6c312"
-  integrity sha512-c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA==
+color-string@^1.6.0:
+  version "1.8.2"
+  resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.8.2.tgz#08bd49fa5f3889c27b0c670052ed746dd7a671de"
+  integrity sha512-w5ZkKRdLsc5NOYsmnpS2DpyRW71npwZGwbRpLrJTuqjfTs2Bhrba7UiV59IX9siBlCPl2pne5NtiwnVWUzvYFA==
   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==
+color@^3.1.3:
+  version "3.2.1"
+  resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164"
+  integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==
   dependencies:
-    color-convert "^1.9.1"
-    color-string "^1.5.2"
+    color-convert "^1.9.3"
+    color-string "^1.6.0"
 
-colord@^2.0.1, colord@^2.6:
-  version "2.7.0"
-  resolved "https://registry.yarnpkg.com/colord/-/colord-2.7.0.tgz#706ea36fe0cd651b585eb142fe64b6480185270e"
-  integrity sha512-pZJBqsHz+pYyw3zpX6ZRXWoCHM1/cvFikY9TV8G3zcejCaKE0lhankoj8iScyrrePA8C7yJ5FStfA9zbcOnw7Q==
+colord@^2.9.1:
+  version "2.9.1"
+  resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.1.tgz#c961ea0efeb57c9f0f4834458f26cb9cc4a3f90e"
+  integrity sha512-4LBMSt09vR0uLnPVkOUBnmxgoaeN4ewRbx801wY/bXcltXfpR/G46OdWn96XpYmCWuYvO46aBZP4NgX8HpNAcw==
 
-colorette@^1.2.1, colorette@^1.2.2, colorette@^1.3.0:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40"
-  integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==
+colorette@^2.0.14:
+  version "2.0.16"
+  resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da"
+  integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==
 
 colors@^1.2.1:
   version "1.4.0"
@@ -2342,11 +2300,11 @@ colors@^1.2.1:
   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==
+  version "1.1.4"
+  resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.4.tgz#8d442d1186152f60453bf8070cd66eb364e59243"
+  integrity sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==
   dependencies:
-    color "3.0.x"
+    color "^3.1.3"
     text-hex "1.0.x"
 
 combined-stream@^1.0.5, combined-stream@^1.0.6, combined-stream@~1.0.6:
@@ -2356,26 +2314,21 @@ combined-stream@^1.0.5, combined-stream@^1.0.6, combined-stream@~1.0.6:
   dependencies:
     delayed-stream "~1.0.0"
 
-comma-separated-tokens@^2.0.0:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.2.tgz#d4c25abb679b7751c880be623c1179780fe1dd98"
-  integrity sha512-G5yTt3KQN4Yn7Yk4ed73hlZ1evrFKXeUW3086p3PRFNp7m2vIjI6Pg+Kgb+oyzhd9F2qdcoj67+y3SdxL5XWsg==
-
 commander@2, commander@^2.11.0, commander@^2.20.0, commander@^2.20.3:
   version "2.20.3"
   resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
   integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
 
+commander@7, commander@^7.0.0, commander@^7.2.0:
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7"
+  integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==
+
 commander@^4.1.1:
   version "4.1.1"
   resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068"
   integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==
 
-commander@^7.0.0, commander@^7.2.0:
-  version "7.2.0"
-  resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7"
-  integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==
-
 commondir@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
@@ -2504,11 +2457,11 @@ convert-source-map@^1.5.0, convert-source-map@^1.5.1:
     safe-buffer "~5.1.1"
 
 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==
+  version "1.4.6"
+  resolved "https://registry.yarnpkg.com/cookie-parser/-/cookie-parser-1.4.6.tgz#3ac3a7d35a7a03bbc7e365073a26074824214594"
+  integrity sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==
   dependencies:
-    cookie "0.4.0"
+    cookie "0.4.1"
     cookie-signature "1.0.6"
 
 cookie-signature@1.0.6:
@@ -2660,11 +2613,6 @@ crypto-browserify@^3.11.0:
     randombytes "^2.0.0"
     randomfill "^1.0.3"
 
-css-color-names@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-1.0.1.tgz#6ff7ee81a823ad46e020fa2fd6ab40a887e2ba67"
-  integrity sha512-/loXYOch1qU1biStIFsHH8SxTmOseh1IJqFvy8IujXOm1h+QjUdDhkzOrR5HG8K8mlxREj0yfi8ewCHx0eMxzA==
-
 css-declaration-sorter@^6.0.3:
   version "6.1.3"
   resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.1.3.tgz#e9852e4cf940ba79f509d9425b137d1f94438dc2"
@@ -2723,9 +2671,9 @@ css-what@2.1:
   integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==
 
 css-what@^5.0.0:
-  version "5.0.1"
-  resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.0.1.tgz#3efa820131f4669a8ac2408f9c32e7c7de9f4cad"
-  integrity sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg==
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.1.0.tgz#3f7b707aadf633baf62c2ceb8579b545bb40f7fe"
+  integrity sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==
 
 cssesc@^3.0.0:
   version "3.0.0"
@@ -2737,25 +2685,25 @@ cssfilter@0.0.10:
   resolved "https://registry.yarnpkg.com/cssfilter/-/cssfilter-0.0.10.tgz#c6d2672632a2e5c83e013e6864a42ce8defd20ae"
   integrity sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4=
 
-cssnano-preset-default@^5.1.4:
-  version "5.1.4"
-  resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.1.4.tgz#359943bf00c5c8e05489f12dd25f3006f2c1cbd2"
-  integrity sha512-sPpQNDQBI3R/QsYxQvfB4mXeEcWuw0wGtKtmS5eg8wudyStYMgKOQT39G07EbW1LB56AOYrinRS9f0ig4Y3MhQ==
+cssnano-preset-default@^5.1.8:
+  version "5.1.8"
+  resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.1.8.tgz#7525feb1b72f7b06e57f55064cbdae341d79dea2"
+  integrity sha512-zWMlP0+AMPBVE852SqTrP0DnhTcTA2C1wAF92TKZ3Va+aUVqLIhkqKlnJIXXdqXD7RN+S1ujuWmNpvrJBiM/vg==
   dependencies:
     css-declaration-sorter "^6.0.3"
     cssnano-utils "^2.0.1"
     postcss-calc "^8.0.0"
-    postcss-colormin "^5.2.0"
-    postcss-convert-values "^5.0.1"
+    postcss-colormin "^5.2.1"
+    postcss-convert-values "^5.0.2"
     postcss-discard-comments "^5.0.1"
     postcss-discard-duplicates "^5.0.1"
     postcss-discard-empty "^5.0.1"
     postcss-discard-overridden "^5.0.1"
-    postcss-merge-longhand "^5.0.2"
-    postcss-merge-rules "^5.0.2"
+    postcss-merge-longhand "^5.0.4"
+    postcss-merge-rules "^5.0.3"
     postcss-minify-font-values "^5.0.1"
-    postcss-minify-gradients "^5.0.2"
-    postcss-minify-params "^5.0.1"
+    postcss-minify-gradients "^5.0.3"
+    postcss-minify-params "^5.0.2"
     postcss-minify-selectors "^5.1.0"
     postcss-normalize-charset "^5.0.1"
     postcss-normalize-display-values "^5.0.1"
@@ -2764,13 +2712,13 @@ cssnano-preset-default@^5.1.4:
     postcss-normalize-string "^5.0.1"
     postcss-normalize-timing-functions "^5.0.1"
     postcss-normalize-unicode "^5.0.1"
-    postcss-normalize-url "^5.0.2"
+    postcss-normalize-url "^5.0.3"
     postcss-normalize-whitespace "^5.0.1"
     postcss-ordered-values "^5.0.2"
-    postcss-reduce-initial "^5.0.1"
+    postcss-reduce-initial "^5.0.2"
     postcss-reduce-transforms "^5.0.1"
-    postcss-svgo "^5.0.2"
-    postcss-unique-selectors "^5.0.1"
+    postcss-svgo "^5.0.3"
+    postcss-unique-selectors "^5.0.2"
 
 cssnano-utils@^2.0.1:
   version "2.0.1"
@@ -2778,11 +2726,11 @@ cssnano-utils@^2.0.1:
   integrity sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ==
 
 cssnano@^5.0.2:
-  version "5.0.8"
-  resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.0.8.tgz#39ad166256980fcc64faa08c9bb18bb5789ecfa9"
-  integrity sha512-Lda7geZU0Yu+RZi2SGpjYuQz4HI4/1Y+BhdD0jL7NXAQ5larCzVn+PUGuZbDMYz904AXXCOgO5L1teSvgu7aFg==
+  version "5.0.12"
+  resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.0.12.tgz#2c083a1c786fc9dc2d5522bd3c0e331b7cd302ab"
+  integrity sha512-U38V4x2iJ3ijPdeWqUrEr4eKBB5PbEKsNP5T8xcik2Au3LeMtiMHX0i2Hu9k51FcKofNZumbrcdC6+a521IUHg==
   dependencies:
-    cssnano-preset-default "^5.1.4"
+    cssnano-preset-default "^5.1.8"
     is-resolvable "^1.1.0"
     lilconfig "^2.0.3"
     yaml "^1.10.2"
@@ -2821,11 +2769,23 @@ d3-array@1, d3-array@^1.1.1, d3-array@^1.2.0:
   resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-1.2.4.tgz#635ce4d5eea759f6f605863dbcfc30edc737f71f"
   integrity sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==
 
+"d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@3:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.1.1.tgz#7797eb53ead6b9083c75a45a681e93fc41bc468c"
+  integrity sha512-33qQ+ZoZlli19IFiQx4QEpf2CBEayMRzhlisJHSCsSUbDXv6ZishqS1x7uFVClKG4Wr7rZVHvaAttoLow6GqdQ==
+  dependencies:
+    internmap "1 - 2"
+
 d3-axis@1:
   version "1.0.12"
   resolved "https://registry.yarnpkg.com/d3-axis/-/d3-axis-1.0.12.tgz#cdf20ba210cfbb43795af33756886fb3638daac9"
   integrity sha512-ejINPfPSNdGFKEOAtnBtdkpr24c4d4jsei6Lg98mxf424ivoDP2956/5HDpIAtmHo85lqT4pruy+zEgvRUBqaQ==
 
+d3-axis@3:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/d3-axis/-/d3-axis-3.0.0.tgz#c42a4a13e8131d637b745fc2973824cfeaf93322"
+  integrity sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==
+
 d3-brush@1:
   version "1.1.6"
   resolved "https://registry.yarnpkg.com/d3-brush/-/d3-brush-1.1.6.tgz#b0a22c7372cabec128bdddf9bddc058592f89e9b"
@@ -2837,6 +2797,17 @@ d3-brush@1:
     d3-selection "1"
     d3-transition "1"
 
+d3-brush@3:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/d3-brush/-/d3-brush-3.0.0.tgz#6f767c4ed8dcb79de7ede3e1c0f89e63ef64d31c"
+  integrity sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==
+  dependencies:
+    d3-dispatch "1 - 3"
+    d3-drag "2 - 3"
+    d3-interpolate "1 - 3"
+    d3-selection "3"
+    d3-transition "3"
+
 d3-chord@1:
   version "1.0.6"
   resolved "https://registry.yarnpkg.com/d3-chord/-/d3-chord-1.0.6.tgz#309157e3f2db2c752f0280fedd35f2067ccbb15f"
@@ -2845,6 +2816,13 @@ d3-chord@1:
     d3-array "1"
     d3-path "1"
 
+d3-chord@3:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/d3-chord/-/d3-chord-3.0.1.tgz#d156d61f485fce8327e6abf339cb41d8cbba6966"
+  integrity sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==
+  dependencies:
+    d3-path "1 - 3"
+
 d3-collection@1:
   version "1.0.7"
   resolved "https://registry.yarnpkg.com/d3-collection/-/d3-collection-1.0.7.tgz#349bd2aa9977db071091c13144d5e4f16b5b310e"
@@ -2855,6 +2833,11 @@ d3-color@1:
   resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-1.4.1.tgz#c52002bf8846ada4424d55d97982fef26eb3bc8a"
   integrity sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==
 
+"d3-color@1 - 3", d3-color@3:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-3.0.1.tgz#03316e595955d1fcd39d9f3610ad41bb90194d0a"
+  integrity sha512-6/SlHkDOBLyQSJ1j1Ghs82OIUXpKWlR0hCsw0XrLSQhuUPuCSmLQ1QPH98vpnQxMUQM2/gfAkUEWsupVpd9JGw==
+
 d3-contour@1:
   version "1.3.2"
   resolved "https://registry.yarnpkg.com/d3-contour/-/d3-contour-1.3.2.tgz#652aacd500d2264cb3423cee10db69f6f59bead3"
@@ -2862,11 +2845,30 @@ d3-contour@1:
   dependencies:
     d3-array "^1.1.1"
 
+d3-contour@3:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/d3-contour/-/d3-contour-3.0.1.tgz#2c64255d43059599cd0dba8fe4cc3d51ccdd9bbd"
+  integrity sha512-0Oc4D0KyhwhM7ZL0RMnfGycLN7hxHB8CMmwZ3+H26PWAG0ozNuYG5hXSDNgmP1SgJkQMrlG6cP20HoaSbvcJTQ==
+  dependencies:
+    d3-array "2 - 3"
+
+d3-delaunay@6:
+  version "6.0.2"
+  resolved "https://registry.yarnpkg.com/d3-delaunay/-/d3-delaunay-6.0.2.tgz#7fd3717ad0eade2fc9939f4260acfb503f984e92"
+  integrity sha512-IMLNldruDQScrcfT+MWnazhHbDJhcRJyOEBAJfwQnHle1RPh6WDuLvxNArUju2VSMSUuKlY5BGHRJ2cYyoFLQQ==
+  dependencies:
+    delaunator "5"
+
 d3-dispatch@1:
   version "1.0.6"
   resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-1.0.6.tgz#00d37bcee4dd8cd97729dd893a0ac29caaba5d58"
   integrity sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA==
 
+"d3-dispatch@1 - 3", d3-dispatch@3:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-3.0.1.tgz#5fc75284e9c2375c36c839411a0cf550cbfc4d5e"
+  integrity sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==
+
 d3-drag@1:
   version "1.2.5"
   resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-1.2.5.tgz#2537f451acd39d31406677b7dc77c82f7d988f70"
@@ -2875,6 +2877,14 @@ d3-drag@1:
     d3-dispatch "1"
     d3-selection "1"
 
+"d3-drag@2 - 3", d3-drag@3:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-3.0.0.tgz#994aae9cd23c719f53b5e10e3a0a6108c69607ba"
+  integrity sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==
+  dependencies:
+    d3-dispatch "1 - 3"
+    d3-selection "3"
+
 d3-dsv@1:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-1.2.0.tgz#9d5f75c3a5f8abd611f74d3f5847b0d4338b885c"
@@ -2884,11 +2894,25 @@ d3-dsv@1:
     iconv-lite "0.4"
     rw "1"
 
+"d3-dsv@1 - 3", d3-dsv@3:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-3.0.1.tgz#c63af978f4d6a0d084a52a673922be2160789b73"
+  integrity sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==
+  dependencies:
+    commander "7"
+    iconv-lite "0.6"
+    rw "1"
+
 d3-ease@1:
   version "1.0.7"
   resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-1.0.7.tgz#9a834890ef8b8ae8c558b2fe55bd57f5993b85e2"
   integrity sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ==
 
+"d3-ease@1 - 3", d3-ease@3:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-3.0.1.tgz#9658ac38a2140d59d346160f1f6c30fda0bd12f4"
+  integrity sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==
+
 d3-fetch@1:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/d3-fetch/-/d3-fetch-1.2.0.tgz#15ce2ecfc41b092b1db50abd2c552c2316cf7fc7"
@@ -2896,6 +2920,13 @@ d3-fetch@1:
   dependencies:
     d3-dsv "1"
 
+d3-fetch@3:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/d3-fetch/-/d3-fetch-3.0.1.tgz#83141bff9856a0edb5e38de89cdcfe63d0a60a22"
+  integrity sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==
+  dependencies:
+    d3-dsv "1 - 3"
+
 d3-force@1:
   version "1.2.1"
   resolved "https://registry.yarnpkg.com/d3-force/-/d3-force-1.2.1.tgz#fd29a5d1ff181c9e7f0669e4bd72bdb0e914ec0b"
@@ -2906,11 +2937,25 @@ d3-force@1:
     d3-quadtree "1"
     d3-timer "1"
 
+d3-force@3:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/d3-force/-/d3-force-3.0.0.tgz#3e2ba1a61e70888fe3d9194e30d6d14eece155c4"
+  integrity sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==
+  dependencies:
+    d3-dispatch "1 - 3"
+    d3-quadtree "1 - 3"
+    d3-timer "1 - 3"
+
 d3-format@1:
   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-format@1 - 3", d3-format@3:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-3.0.1.tgz#e41b81b2ab79277141ec1404aa5d05001da64084"
+  integrity sha512-hdL7+HBIohpgfolhBxr1KX47VMD6+vVD/oEFrxk5yhmzV2prk99EkFKYpXuhVkFpTgHdJ6/4bYcjdLPPXV4tIA==
+
 d3-geo@1:
   version "1.12.1"
   resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-1.12.1.tgz#7fc2ab7414b72e59fbcbd603e80d9adc029b035f"
@@ -2918,11 +2963,23 @@ d3-geo@1:
   dependencies:
     d3-array "1"
 
+d3-geo@3:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-3.0.1.tgz#4f92362fd8685d93e3b1fae0fd97dc8980b1ed7e"
+  integrity sha512-Wt23xBych5tSy9IYAM1FR2rWIBFWa52B/oF/GYe5zbdHrg08FU8+BuI6X4PvTwPDdqdAdq04fuWJpELtsaEjeA==
+  dependencies:
+    d3-array "2.5.0 - 3"
+
 d3-hierarchy@1:
   version "1.1.9"
   resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz#2f6bee24caaea43f8dc37545fa01628559647a83"
   integrity sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==
 
+d3-hierarchy@3:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-3.0.1.tgz#0365342d54972e38ca05e9143e0ab1c60846b3b5"
+  integrity sha512-RlLTaofEoOrMK1JoXYIGhKTkJFI/6rFrYPgxy6QlZo2BcVc4HGTqEU0rPpzuMq5T/5XcMtAzv1XiLA3zRTfygw==
+
 d3-interpolate@1:
   version "1.4.0"
   resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.4.0.tgz#526e79e2d80daa383f9e0c1c1c7dcc0f0583e987"
@@ -2930,26 +2987,53 @@ d3-interpolate@1:
   dependencies:
     d3-color "1"
 
+"d3-interpolate@1 - 3", "d3-interpolate@1.2.0 - 3", d3-interpolate@3:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz#3c47aa5b32c5b3dfb56ef3fd4342078a632b400d"
+  integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==
+  dependencies:
+    d3-color "1 - 3"
+
 d3-path@1:
   version "1.0.9"
   resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.9.tgz#48c050bb1fe8c262493a8caf5524e3e9591701cf"
   integrity sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==
 
+"d3-path@1 - 3", d3-path@3:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-3.0.1.tgz#f09dec0aaffd770b7995f1a399152bf93052321e"
+  integrity sha512-gq6gZom9AFZby0YLduxT1qmrp4xpBA1YZr19OI717WIdKE2OM5ETq5qrHLb301IgxhLwcuxvGZVLeeWc/k1I6w==
+
 d3-polygon@1:
   version "1.0.6"
   resolved "https://registry.yarnpkg.com/d3-polygon/-/d3-polygon-1.0.6.tgz#0bf8cb8180a6dc107f518ddf7975e12abbfbd38e"
   integrity sha512-k+RF7WvI08PC8reEoXa/w2nSg5AUMTi+peBD9cmFc+0ixHfbs4QmxxkarVal1IkVkgxVuk9JSHhJURHiyHKAuQ==
 
+d3-polygon@3:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/d3-polygon/-/d3-polygon-3.0.1.tgz#0b45d3dd1c48a29c8e057e6135693ec80bf16398"
+  integrity sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==
+
 d3-quadtree@1:
   version "1.0.7"
   resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-1.0.7.tgz#ca8b84df7bb53763fe3c2f24bd435137f4e53135"
   integrity sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA==
 
+"d3-quadtree@1 - 3", d3-quadtree@3:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-3.0.1.tgz#6dca3e8be2b393c9a9d514dabbd80a92deef1a4f"
+  integrity sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==
+
 d3-random@1:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/d3-random/-/d3-random-1.1.2.tgz#2833be7c124360bf9e2d3fd4f33847cfe6cab291"
   integrity sha512-6AK5BNpIFqP+cx/sreKzNjWbwZQCSUatxq+pPRmFIQaWuoD+NrbVWw7YWpHiXpCQ/NanKdtGDuB+VQcZDaEmYQ==
 
+d3-random@3:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/d3-random/-/d3-random-3.0.1.tgz#d4926378d333d9c0bfd1e6fa0194d30aebaa20f4"
+  integrity sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==
+
 d3-scale-chromatic@1:
   version "1.5.0"
   resolved "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-1.5.0.tgz#54e333fc78212f439b14641fb55801dd81135a98"
@@ -2958,6 +3042,14 @@ d3-scale-chromatic@1:
     d3-color "1"
     d3-interpolate "1"
 
+d3-scale-chromatic@3:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz#15b4ceb8ca2bb0dcb6d1a641ee03d59c3b62376a"
+  integrity sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g==
+  dependencies:
+    d3-color "1 - 3"
+    d3-interpolate "1 - 3"
+
 d3-scale@2:
   version "2.2.2"
   resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-2.2.2.tgz#4e880e0b2745acaaddd3ede26a9e908a9e17b81f"
@@ -2970,11 +3062,27 @@ d3-scale@2:
     d3-time "1"
     d3-time-format "2"
 
+d3-scale@4:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-4.0.2.tgz#82b38e8e8ff7080764f8dcec77bd4be393689396"
+  integrity sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==
+  dependencies:
+    d3-array "2.10.0 - 3"
+    d3-format "1 - 3"
+    d3-interpolate "1.2.0 - 3"
+    d3-time "2.1.1 - 3"
+    d3-time-format "2 - 4"
+
 d3-selection@1, d3-selection@^1.1.0:
   version "1.4.2"
   resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-1.4.2.tgz#dcaa49522c0dbf32d6c1858afc26b6094555bc5c"
   integrity sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg==
 
+"d3-selection@2 - 3", d3-selection@3:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-3.0.0.tgz#c25338207efa72cc5b9bd1458a1a41901f1e1b31"
+  integrity sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==
+
 d3-shape@1:
   version "1.3.7"
   resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.3.7.tgz#df63801be07bc986bc54f63789b4fe502992b5d7"
@@ -2982,6 +3090,13 @@ d3-shape@1:
   dependencies:
     d3-path "1"
 
+d3-shape@3:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-3.0.1.tgz#9ccdfb28fd9b0d12f2d8aec234cd5c4a9ea27931"
+  integrity sha512-HNZNEQoDhuCrDWEc/BMbF/hKtzMZVoe64TvisFLDp2Iyj0UShB/E6/lBsLlJTfBMbYgftHj90cXJ0SEitlE6Xw==
+  dependencies:
+    d3-path "1 - 3"
+
 d3-time-format@2:
   version "2.3.0"
   resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-2.3.0.tgz#107bdc028667788a8924ba040faf1fbccd5a7850"
@@ -2989,16 +3104,35 @@ d3-time-format@2:
   dependencies:
     d3-time "1"
 
+"d3-time-format@2 - 4", d3-time-format@4:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-4.0.0.tgz#930ded86a9de761702344760d8a25753467f28b7"
+  integrity sha512-nzaCwlj+ZVBIlFuVOT1RmU+6xb/7D5IcnhHzHQcBgS/aTa5K9fWZNN5LCXA27LgF5WxoSNJqKBbLcGMtM6Ca6A==
+  dependencies:
+    d3-time "1 - 3"
+
 d3-time@1:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-1.1.0.tgz#b1e19d307dae9c900b7e5b25ffc5dcc249a8a0f1"
   integrity sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==
 
+"d3-time@1 - 3", "d3-time@2.1.1 - 3", d3-time@3:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-3.0.0.tgz#65972cb98ae2d4954ef5c932e8704061335d4975"
+  integrity sha512-zmV3lRnlaLI08y9IMRXSDshQb5Nj77smnfpnd2LrBa/2K281Jijactokeak14QacHs/kKq0AQ121nidNYlarbQ==
+  dependencies:
+    d3-array "2 - 3"
+
 d3-timer@1:
   version "1.0.10"
   resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-1.0.10.tgz#dfe76b8a91748831b13b6d9c793ffbd508dd9de5"
   integrity sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==
 
+"d3-timer@1 - 3", d3-timer@3:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-3.0.1.tgz#6284d2a2708285b1abb7e201eda4380af35e63b0"
+  integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==
+
 d3-transition@1:
   version "1.3.2"
   resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-1.3.2.tgz#a98ef2151be8d8600543434c1ca80140ae23b398"
@@ -3011,6 +3145,17 @@ d3-transition@1:
     d3-selection "^1.1.0"
     d3-timer "1"
 
+"d3-transition@2 - 3", d3-transition@3:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-3.0.1.tgz#6869fdde1448868077fdd5989200cb61b2a1645f"
+  integrity sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==
+  dependencies:
+    d3-color "1 - 3"
+    d3-dispatch "1 - 3"
+    d3-ease "1 - 3"
+    d3-interpolate "1 - 3"
+    d3-timer "1 - 3"
+
 d3-voronoi@1:
   version "1.1.4"
   resolved "https://registry.yarnpkg.com/d3-voronoi/-/d3-voronoi-1.1.4.tgz#dd3c78d7653d2bb359284ae478645d95944c8297"
@@ -3027,7 +3172,18 @@ d3-zoom@1:
     d3-selection "1"
     d3-transition "1"
 
-d3@^5.14, d3@^5.16.0:
+d3-zoom@3:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-3.0.0.tgz#d13f4165c73217ffeaa54295cd6969b3e7aee8f3"
+  integrity sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==
+  dependencies:
+    d3-dispatch "1 - 3"
+    d3-drag "2 - 3"
+    d3-interpolate "1 - 3"
+    d3-selection "2 - 3"
+    d3-transition "2 - 3"
+
+d3@^5.14:
   version "5.16.0"
   resolved "https://registry.yarnpkg.com/d3/-/d3-5.16.0.tgz#9c5e8d3b56403c79d4ed42fbd62f6113f199c877"
   integrity sha512-4PL5hHaHwX4m7Zr1UapXW23apo6pexCgdetdJ5kTmADpG/7T9Gkxw0M0tf/pjoB63ezCCm0u5UaFYy2aMt0Mcw==
@@ -3064,6 +3220,42 @@ d3@^5.14, d3@^5.16.0:
     d3-voronoi "1"
     d3-zoom "1"
 
+d3@^7.0.0:
+  version "7.1.1"
+  resolved "https://registry.yarnpkg.com/d3/-/d3-7.1.1.tgz#77b9a0c9893b13643b8e52316ec65dca3a6a115e"
+  integrity sha512-8zkLMwSvUAnfN9pcJDfkuxU0Nvg4RLUD0A4BZN1KxJPtlnCGzMx3xM5cRl4m8fym/Vy8rlq52tl90UF3m91OnA==
+  dependencies:
+    d3-array "3"
+    d3-axis "3"
+    d3-brush "3"
+    d3-chord "3"
+    d3-color "3"
+    d3-contour "3"
+    d3-delaunay "6"
+    d3-dispatch "3"
+    d3-drag "3"
+    d3-dsv "3"
+    d3-ease "3"
+    d3-fetch "3"
+    d3-force "3"
+    d3-format "3"
+    d3-geo "3"
+    d3-hierarchy "3"
+    d3-interpolate "3"
+    d3-path "3"
+    d3-polygon "3"
+    d3-quadtree "3"
+    d3-random "3"
+    d3-scale "4"
+    d3-scale-chromatic "3"
+    d3-selection "3"
+    d3-shape "3"
+    d3-time "3"
+    d3-time-format "4"
+    d3-timer "3"
+    d3-transition "3"
+    d3-zoom "3"
+
 dagre-d3@^0.6.4:
   version "0.6.4"
   resolved "https://registry.yarnpkg.com/dagre-d3/-/dagre-d3-0.6.4.tgz#0728d5ce7f177ca2337df141ceb60fbe6eeb7b29"
@@ -3103,10 +3295,10 @@ debug@3.1.0, debug@~3.1.0:
   dependencies:
     ms "2.0.0"
 
-debug@4.3.1:
-  version "4.3.1"
-  resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"
-  integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==
+debug@4.3.2:
+  version "4.3.2"
+  resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b"
+  integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==
   dependencies:
     ms "2.1.2"
 
@@ -3117,10 +3309,10 @@ debug@^3.2.6, debug@^3.2.7:
   dependencies:
     ms "^2.1.1"
 
-debug@^4.0.0, debug@^4.0.1, debug@^4.1.1, debug@^4.3.1:
-  version "4.3.2"
-  resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b"
-  integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==
+debug@^4.0.0, debug@^4.1.1, debug@^4.3.2:
+  version "4.3.3"
+  resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664"
+  integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==
   dependencies:
     ms "2.1.2"
 
@@ -3136,6 +3328,13 @@ decamelize@^4.0.0:
   resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837"
   integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==
 
+decode-named-character-reference@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.0.1.tgz#57b2bd9112659cacbc449d3577d7dadb8e1f3d1b"
+  integrity sha512-YV/0HQHreRwKb7uBopyIkLG17jG6Sv2qUchk9qSoVJ2f+flwRsPNBO0hAnjt6mTNYUT+vw9Gy2ihXg4sUWPi2w==
+  dependencies:
+    character-entities "^2.0.0"
+
 decode-uri-component@^0.2.0:
   version "0.2.0"
   resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
@@ -3206,6 +3405,13 @@ define-property@^2.0.2:
     is-descriptor "^1.0.2"
     isobject "^3.0.1"
 
+delaunator@5:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/delaunator/-/delaunator-5.0.0.tgz#60f052b28bd91c9b4566850ebf7756efe821d81b"
+  integrity sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==
+  dependencies:
+    robust-predicates "^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"
@@ -3216,11 +3422,16 @@ delegates@^1.0.0:
   resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
   integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=
 
-denque@^1.4.1, denque@^1.5.0:
+denque@^1.5.0:
   version "1.5.1"
   resolved "https://registry.yarnpkg.com/denque/-/denque-1.5.1.tgz#07f670e29c9a78f8faecb2566a1e2c11929c5cbf"
   integrity sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==
 
+denque@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/denque/-/denque-2.0.1.tgz#bcef4c1b80dc32efe97515744f21a4229ab8934a"
+  integrity sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ==
+
 depd@~1.1.2:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
@@ -3231,6 +3442,11 @@ depd@~2.0.0:
   resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df"
   integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
 
+dequal@^2.0.0:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.2.tgz#85ca22025e3a87e65ef75a7a437b35284a7e319d"
+  integrity sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug==
+
 des.js@^1.0.0:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843"
@@ -3256,11 +3472,19 @@ detect-libc@^1.0.2:
   resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
   integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=
 
+dezalgo@1.0.3:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.3.tgz#7f742de066fc748bc8db820569dddce49bf0d456"
+  integrity sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=
+  dependencies:
+    asap "^2.0.0"
+    wrappy "1"
+
 "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#c2f8fb9d69aa9490b764850aa86ba442c93ccf78"
 
-diff@5.0.0:
+diff@5.0.0, diff@^5.0.0:
   version "5.0.0"
   resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b"
   integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==
@@ -3350,9 +3574,9 @@ domhandler@^2.3.0:
     domelementtype "1"
 
 domhandler@^4.0.0, domhandler@^4.2.0:
-  version "4.2.2"
-  resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.2.2.tgz#e825d721d19a86b8c201a35264e226c678ee755f"
-  integrity sha512-PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w==
+  version "4.3.0"
+  resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.0.tgz#16c658c626cf966967e306f966b431f77d4a5626"
+  integrity sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==
   dependencies:
     domelementtype "^2.2.0"
 
@@ -3361,10 +3585,10 @@ domino@^2.1.6:
   resolved "https://registry.yarnpkg.com/domino/-/domino-2.1.6.tgz#fe4ace4310526e5e7b9d12c7de01b7f485a57ffe"
   integrity sha512-3VdM/SXBZX2omc9JF9nOPCtDaYQ67BGp5CoLpIQlO2KCAPETs8TcDHacF26jXadGbvUteZzRTeos2fhID5+ucQ==
 
-dompurify@2.3.1:
-  version "2.3.1"
-  resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-2.3.1.tgz#a47059ca21fd1212d3c8f71fdea6943b8bfbdf6a"
-  integrity sha512-xGWt+NHAQS+4tpgbOAI08yxW0Pr256Gu/FNE2frZVTbgrBUn8M7tz7/ktS/LZ2MHeGqz6topj0/xY+y8R5FBFw==
+dompurify@2.3.3:
+  version "2.3.3"
+  resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-2.3.3.tgz#c1af3eb88be47324432964d8abc75cf4b98d634c"
+  integrity sha512-dqnqRkPMAjOZE0FogZ+ceJNM2dZ3V/yNOuFB7+39qpO93hHhfRpHw3heYQC7DPK9FqbQTfBKUJhiSfz4MvXYwg==
 
 domutils@1.5.1:
   version "1.5.1"
@@ -3434,10 +3658,10 @@ ejs@^3.0.0:
   dependencies:
     jake "^10.6.1"
 
-electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.830:
-  version "1.3.836"
-  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.836.tgz#823cb9c98f28c64c673920f1c90ea3826596eaf9"
-  integrity sha512-Ney3pHOJBWkG/AqYjrW0hr2AUCsao+2uvq9HUlRP8OlpSdk/zOHOUJP7eu0icDvePC9DlgffuelP4TnOJmMRUg==
+electron-to-chromium@^1.3.47, electron-to-chromium@^1.3.896:
+  version "1.4.9"
+  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.9.tgz#4854fa55f94f18f5d0ad4ac49034ff6443fff5b9"
+  integrity sha512-7AyB4SiLtGJbLACXezs8BDjDbZizuoiyHTQxbcvzfi5LYWRXVSFdmPvuDjtlWQmsVSONRicZfSBj3xgft0Wvrg==
 
 elliptic@^6.5.3:
   version "6.5.4"
@@ -3579,10 +3803,10 @@ error-ex@^1.3.1:
   dependencies:
     is-arrayish "^0.2.1"
 
-es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2, es-abstract@^1.18.2, es-abstract@^1.18.5:
-  version "1.18.6"
-  resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.6.tgz#2c44e3ea7a6255039164d26559777a6d978cb456"
-  integrity sha512-kAeIT4cku5eNLNuUKhlmtuk1/TRZvQoYccn6TO0cSVdf1kzB0T7+dYuVK9MWM7l+/53W2Q8M7N2c6MQvhXFcUQ==
+es-abstract@^1.18.5, es-abstract@^1.19.0, es-abstract@^1.19.1:
+  version "1.19.1"
+  resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3"
+  integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==
   dependencies:
     call-bind "^1.0.2"
     es-to-primitive "^1.2.1"
@@ -3595,7 +3819,9 @@ es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2, es-abstract@^1.18.2, es-
     is-callable "^1.2.4"
     is-negative-zero "^2.0.1"
     is-regex "^1.1.4"
+    is-shared-array-buffer "^1.0.1"
     is-string "^1.0.7"
+    is-weakref "^1.0.1"
     object-inspect "^1.11.0"
     object-keys "^1.1.1"
     object.assign "^4.1.2"
@@ -3631,12 +3857,67 @@ es6-error@^4.1.1:
   resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d"
   integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==
 
-esbuild-loader@2.15.1:
-  version "2.15.1"
-  resolved "https://registry.yarnpkg.com/esbuild-loader/-/esbuild-loader-2.15.1.tgz#5a3940f5d20317f1a35720efa33e933f97c923e9"
-  integrity sha512-JRBL6uTeWplMbylNBt9gxLKMjD8wKnqGq786QV/cm/nPBSNA9/kC7/vNwCXTDPfYqHoWsjyfH7ub9ekN0kdAYQ==
-  dependencies:
-    esbuild "^0.12.21"
+esbuild-android-arm64@0.13.15:
+  version "0.13.15"
+  resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.13.15.tgz#3fc3ff0bab76fe35dd237476b5d2b32bb20a3d44"
+  integrity sha512-m602nft/XXeO8YQPUDVoHfjyRVPdPgjyyXOxZ44MK/agewFFkPa8tUo6lAzSWh5Ui5PB4KR9UIFTSBKh/RrCmg==
+
+esbuild-darwin-64@0.13.15:
+  version "0.13.15"
+  resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.13.15.tgz#8e9169c16baf444eacec60d09b24d11b255a8e72"
+  integrity sha512-ihOQRGs2yyp7t5bArCwnvn2Atr6X4axqPpEdCFPVp7iUj4cVSdisgvEKdNR7yH3JDjW6aQDw40iQFoTqejqxvQ==
+
+esbuild-darwin-arm64@0.13.15:
+  version "0.13.15"
+  resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.15.tgz#1b07f893b632114f805e188ddfca41b2b778229a"
+  integrity sha512-i1FZssTVxUqNlJ6cBTj5YQj4imWy3m49RZRnHhLpefFIh0To05ow9DTrXROTE1urGTQCloFUXTX8QfGJy1P8dQ==
+
+esbuild-freebsd-64@0.13.15:
+  version "0.13.15"
+  resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.15.tgz#0b8b7eca1690c8ec94c75680c38c07269c1f4a85"
+  integrity sha512-G3dLBXUI6lC6Z09/x+WtXBXbOYQZ0E8TDBqvn7aMaOCzryJs8LyVXKY4CPnHFXZAbSwkCbqiPuSQ1+HhrNk7EA==
+
+esbuild-freebsd-arm64@0.13.15:
+  version "0.13.15"
+  resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.15.tgz#2e1a6c696bfdcd20a99578b76350b41db1934e52"
+  integrity sha512-KJx0fzEDf1uhNOZQStV4ujg30WlnwqUASaGSFPhznLM/bbheu9HhqZ6mJJZM32lkyfGJikw0jg7v3S0oAvtvQQ==
+
+esbuild-linux-32@0.13.15:
+  version "0.13.15"
+  resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.13.15.tgz#6fd39f36fc66dd45b6b5f515728c7bbebc342a69"
+  integrity sha512-ZvTBPk0YWCLMCXiFmD5EUtB30zIPvC5Itxz0mdTu/xZBbbHJftQgLWY49wEPSn2T/TxahYCRDWun5smRa0Tu+g==
+
+esbuild-linux-64@0.13.15:
+  version "0.13.15"
+  resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.13.15.tgz#9cb8e4bcd7574e67946e4ee5f1f1e12386bb6dd3"
+  integrity sha512-eCKzkNSLywNeQTRBxJRQ0jxRCl2YWdMB3+PkWFo2BBQYC5mISLIVIjThNtn6HUNqua1pnvgP5xX0nHbZbPj5oA==
+
+esbuild-linux-arm64@0.13.15:
+  version "0.13.15"
+  resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.15.tgz#3891aa3704ec579a1b92d2a586122e5b6a2bfba1"
+  integrity sha512-bYpuUlN6qYU9slzr/ltyLTR9YTBS7qUDymO8SV7kjeNext61OdmqFAzuVZom+OLW1HPHseBfJ/JfdSlx8oTUoA==
+
+esbuild-linux-arm@0.13.15:
+  version "0.13.15"
+  resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.13.15.tgz#8a00e99e6a0c6c9a6b7f334841364d8a2b4aecfe"
+  integrity sha512-wUHttDi/ol0tD8ZgUMDH8Ef7IbDX+/UsWJOXaAyTdkT7Yy9ZBqPg8bgB/Dn3CZ9SBpNieozrPRHm0BGww7W/jA==
+
+esbuild-linux-mips64le@0.13.15:
+  version "0.13.15"
+  resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.15.tgz#36b07cc47c3d21e48db3bb1f4d9ef8f46aead4f7"
+  integrity sha512-KlVjIG828uFPyJkO/8gKwy9RbXhCEUeFsCGOJBepUlpa7G8/SeZgncUEz/tOOUJTcWMTmFMtdd3GElGyAtbSWg==
+
+esbuild-linux-ppc64le@0.13.15:
+  version "0.13.15"
+  resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.15.tgz#f7e6bba40b9a11eb9dcae5b01550ea04670edad2"
+  integrity sha512-h6gYF+OsaqEuBjeesTBtUPw0bmiDu7eAeuc2OEH9S6mV9/jPhPdhOWzdeshb0BskRZxPhxPOjqZ+/OqLcxQwEQ==
+
+esbuild-loader@2.16.0:
+  version "2.16.0"
+  resolved "https://registry.yarnpkg.com/esbuild-loader/-/esbuild-loader-2.16.0.tgz#a44a57a77ed2810d6b278579271f77d739aa7bc9"
+  integrity sha512-LCJEwkf+nMJbNmVYNgg/0PaIZDdr5OcHw1qbWAZLkrmBRX+KwHY/yAS6ia98UBtwzk/WhsftUBNB6tfPHgFIxw==
+  dependencies:
+    esbuild "^0.13.4"
     joycon "^3.0.1"
     json5 "^2.2.0"
     loader-utils "^2.0.0"
@@ -3644,10 +3925,58 @@ esbuild-loader@2.15.1:
     type-fest "^1.4.0"
     webpack-sources "^2.2.0"
 
-esbuild@^0.12.21:
-  version "0.12.27"
-  resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.12.27.tgz#9bcfb837111c5e89b189188dde339515b213a724"
-  integrity sha512-G42siADcTdRU1qRBxhiIiVLG4gcEMyWV4CWfLBdSii+olCueZJHFRHc7EqQRnRvNkSQq88i0k1Oufw/YVueUWQ==
+esbuild-netbsd-64@0.13.15:
+  version "0.13.15"
+  resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.13.15.tgz#a2fedc549c2b629d580a732d840712b08d440038"
+  integrity sha512-3+yE9emwoevLMyvu+iR3rsa+Xwhie7ZEHMGDQ6dkqP/ndFzRHkobHUKTe+NCApSqG5ce2z4rFu+NX/UHnxlh3w==
+
+esbuild-openbsd-64@0.13.15:
+  version "0.13.15"
+  resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.15.tgz#b22c0e5806d3a1fbf0325872037f885306b05cd7"
+  integrity sha512-wTfvtwYJYAFL1fSs8yHIdf5GEE4NkbtbXtjLWjM3Cw8mmQKqsg8kTiqJ9NJQe5NX/5Qlo7Xd9r1yKMMkHllp5g==
+
+esbuild-sunos-64@0.13.15:
+  version "0.13.15"
+  resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.13.15.tgz#d0b6454a88375ee8d3964daeff55c85c91c7cef4"
+  integrity sha512-lbivT9Bx3t1iWWrSnGyBP9ODriEvWDRiweAs69vI+miJoeKwHWOComSRukttbuzjZ8r1q0mQJ8Z7yUsDJ3hKdw==
+
+esbuild-windows-32@0.13.15:
+  version "0.13.15"
+  resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.13.15.tgz#c96d0b9bbb52f3303322582ef8e4847c5ad375a7"
+  integrity sha512-fDMEf2g3SsJ599MBr50cY5ve5lP1wyVwTe6aLJsM01KtxyKkB4UT+fc5MXQFn3RLrAIAZOG+tHC+yXObpSn7Nw==
+
+esbuild-windows-64@0.13.15:
+  version "0.13.15"
+  resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.13.15.tgz#1f79cb9b1e1bb02fb25cd414cb90d4ea2892c294"
+  integrity sha512-9aMsPRGDWCd3bGjUIKG/ZOJPKsiztlxl/Q3C1XDswO6eNX/Jtwu4M+jb6YDH9hRSUflQWX0XKAfWzgy5Wk54JQ==
+
+esbuild-windows-arm64@0.13.15:
+  version "0.13.15"
+  resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.15.tgz#482173070810df22a752c686509c370c3be3b3c3"
+  integrity sha512-zzvyCVVpbwQQATaf3IG8mu1IwGEiDxKkYUdA4FpoCHi1KtPa13jeScYDjlW0Qh+ebWzpKfR2ZwvqAQkSWNcKjA==
+
+esbuild@^0.13.4:
+  version "0.13.15"
+  resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.13.15.tgz#db56a88166ee373f87dbb2d8798ff449e0450cdf"
+  integrity sha512-raCxt02HBKv8RJxE8vkTSCXGIyKHdEdGfUmiYb8wnabnaEmHzyW7DCHb5tEN0xU8ryqg5xw54mcwnYkC4x3AIw==
+  optionalDependencies:
+    esbuild-android-arm64 "0.13.15"
+    esbuild-darwin-64 "0.13.15"
+    esbuild-darwin-arm64 "0.13.15"
+    esbuild-freebsd-64 "0.13.15"
+    esbuild-freebsd-arm64 "0.13.15"
+    esbuild-linux-32 "0.13.15"
+    esbuild-linux-64 "0.13.15"
+    esbuild-linux-arm "0.13.15"
+    esbuild-linux-arm64 "0.13.15"
+    esbuild-linux-mips64le "0.13.15"
+    esbuild-linux-ppc64le "0.13.15"
+    esbuild-netbsd-64 "0.13.15"
+    esbuild-openbsd-64 "0.13.15"
+    esbuild-sunos-64 "0.13.15"
+    esbuild-windows-32 "0.13.15"
+    esbuild-windows-64 "0.13.15"
+    esbuild-windows-arm64 "0.13.15"
 
 escalade@^3.1.1:
   version "3.1.1"
@@ -3682,12 +4011,13 @@ eslint-import-resolver-node@^0.3.6:
     debug "^3.2.7"
     resolve "^1.20.0"
 
-eslint-module-utils@^2.6.2:
-  version "2.6.2"
-  resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.2.tgz#94e5540dd15fe1522e8ffa3ec8db3b7fa7e7a534"
-  integrity sha512-QG8pcgThYOuqxupd06oYTZoNOGaUdTY1PqK+oS6ElF6vs4pBdk/aYxFVQQXzcrAqp9m7cl7lb2ubazX+g16k2Q==
+eslint-module-utils@^2.7.1:
+  version "2.7.1"
+  resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.1.tgz#b435001c9f8dd4ab7f6d0efcae4b9696d4c24b7c"
+  integrity sha512-fjoetBXQZq2tSTWZ9yWVl2KuFrTZZH3V+9iD1V1RfpDgxzJR+mPd/KZmMiA8gbPqdBzpNiEHOuT7IYEWxrH0zQ==
   dependencies:
     debug "^3.2.7"
+    find-up "^2.1.0"
     pkg-dir "^2.0.0"
 
 eslint-plugin-es@^3.0.0:
@@ -3698,24 +4028,22 @@ eslint-plugin-es@^3.0.0:
     eslint-utils "^2.0.0"
     regexpp "^3.0.0"
 
-eslint-plugin-import@2.24.2:
-  version "2.24.2"
-  resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.24.2.tgz#2c8cd2e341f3885918ee27d18479910ade7bb4da"
-  integrity sha512-hNVtyhiEtZmpsabL4neEj+6M5DCLgpYyG9nzJY8lZQeQXEn5UPW1DpUdsMHMXsq98dbNm7nt1w9ZMSVpfJdi8Q==
+eslint-plugin-import@2.25.3:
+  version "2.25.3"
+  resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.25.3.tgz#a554b5f66e08fb4f6dc99221866e57cfff824766"
+  integrity sha512-RzAVbby+72IB3iOEL8clzPLzL3wpDrlwjsTBAQXgyp5SeTqqY+0bFubwuo+y/HLhNZcXV4XqTBO4LGsfyHIDXg==
   dependencies:
-    array-includes "^3.1.3"
-    array.prototype.flat "^1.2.4"
+    array-includes "^3.1.4"
+    array.prototype.flat "^1.2.5"
     debug "^2.6.9"
     doctrine "^2.1.0"
     eslint-import-resolver-node "^0.3.6"
-    eslint-module-utils "^2.6.2"
-    find-up "^2.0.0"
+    eslint-module-utils "^2.7.1"
     has "^1.0.3"
-    is-core-module "^2.6.0"
+    is-core-module "^2.8.0"
+    is-glob "^4.0.3"
     minimatch "^3.0.4"
-    object.values "^1.1.4"
-    pkg-up "^2.0.0"
-    read-pkg-up "^3.0.0"
+    object.values "^1.1.5"
     resolve "^1.20.0"
     tsconfig-paths "^3.11.0"
 
@@ -3731,10 +4059,10 @@ eslint-plugin-node@11.1.0:
     resolve "^1.10.1"
     semver "^6.1.0"
 
-eslint-plugin-promise@5.1.0:
-  version "5.1.0"
-  resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-5.1.0.tgz#fb2188fb734e4557993733b41aa1a688f46c6f24"
-  integrity sha512-NGmI6BH5L12pl7ScQHbg7tvtk4wPxxj8yPHH47NvSmMtFneC077PSeY3huFj06ZWZvtbfxSPt3RuOQD5XcR4ng==
+eslint-plugin-promise@5.1.1:
+  version "5.1.1"
+  resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-5.1.1.tgz#9674d11c056d1bafac38e4a3a9060be740988d90"
+  integrity sha512-XgdcdyNzHfmlQyweOPTxmc7pIsS6dE4MvwhXWMQ2Dxs1XAL2GJDilUsjWen6TWik0aSI+zD/PqocZBblcm9rdA==
 
 eslint-plugin-standard@4.1.0:
   version "4.1.0"
@@ -3749,22 +4077,29 @@ eslint-scope@^4.0.3:
     esrecurse "^4.1.0"
     estraverse "^4.1.1"
 
-eslint-scope@^5.1.1:
-  version "5.1.1"
-  resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
-  integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
+eslint-scope@^7.1.0:
+  version "7.1.0"
+  resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.0.tgz#c1f6ea30ac583031f203d65c73e723b01298f153"
+  integrity sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==
   dependencies:
     esrecurse "^4.3.0"
-    estraverse "^4.1.1"
+    estraverse "^5.2.0"
 
-eslint-utils@^2.0.0, eslint-utils@^2.1.0:
+eslint-utils@^2.0.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27"
   integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==
   dependencies:
     eslint-visitor-keys "^1.1.0"
 
-eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0:
+eslint-utils@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672"
+  integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==
+  dependencies:
+    eslint-visitor-keys "^2.0.0"
+
+eslint-visitor-keys@^1.1.0:
   version "1.3.0"
   resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e"
   integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==
@@ -3774,37 +4109,41 @@ eslint-visitor-keys@^2.0.0:
   resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303"
   integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==
 
-eslint@7.32.0:
-  version "7.32.0"
-  resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d"
-  integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==
+eslint-visitor-keys@^3.1.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz#eee4acea891814cda67a7d8812d9647dd0179af2"
+  integrity sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==
+
+eslint@8.3.0:
+  version "8.3.0"
+  resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.3.0.tgz#a3c2409507403c1c7f6c42926111d6cbefbc3e85"
+  integrity sha512-aIay56Ph6RxOTC7xyr59Kt3ewX185SaGnAr8eWukoPLeriCrvGjvAubxuvaXOfsxhtwV5g0uBOsyhAom4qJdww==
   dependencies:
-    "@babel/code-frame" "7.12.11"
-    "@eslint/eslintrc" "^0.4.3"
-    "@humanwhocodes/config-array" "^0.5.0"
+    "@eslint/eslintrc" "^1.0.4"
+    "@humanwhocodes/config-array" "^0.6.0"
     ajv "^6.10.0"
     chalk "^4.0.0"
     cross-spawn "^7.0.2"
-    debug "^4.0.1"
+    debug "^4.3.2"
     doctrine "^3.0.0"
     enquirer "^2.3.5"
     escape-string-regexp "^4.0.0"
-    eslint-scope "^5.1.1"
-    eslint-utils "^2.1.0"
-    eslint-visitor-keys "^2.0.0"
-    espree "^7.3.1"
+    eslint-scope "^7.1.0"
+    eslint-utils "^3.0.0"
+    eslint-visitor-keys "^3.1.0"
+    espree "^9.1.0"
     esquery "^1.4.0"
     esutils "^2.0.2"
     fast-deep-equal "^3.1.3"
     file-entry-cache "^6.0.1"
     functional-red-black-tree "^1.0.1"
-    glob-parent "^5.1.2"
+    glob-parent "^6.0.1"
     globals "^13.6.0"
     ignore "^4.0.6"
     import-fresh "^3.0.0"
     imurmurhash "^0.1.4"
     is-glob "^4.0.0"
-    js-yaml "^3.13.1"
+    js-yaml "^4.1.0"
     json-stable-stringify-without-jsonify "^1.0.1"
     levn "^0.4.1"
     lodash.merge "^4.6.2"
@@ -3812,22 +4151,21 @@ eslint@7.32.0:
     natural-compare "^1.4.0"
     optionator "^0.9.1"
     progress "^2.0.0"
-    regexpp "^3.1.0"
+    regexpp "^3.2.0"
     semver "^7.2.1"
-    strip-ansi "^6.0.0"
+    strip-ansi "^6.0.1"
     strip-json-comments "^3.1.0"
-    table "^6.0.9"
     text-table "^0.2.0"
     v8-compile-cache "^2.0.3"
 
-espree@^7.3.0, espree@^7.3.1:
-  version "7.3.1"
-  resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6"
-  integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==
+espree@^9.0.0, espree@^9.1.0:
+  version "9.1.0"
+  resolved "https://registry.yarnpkg.com/espree/-/espree-9.1.0.tgz#ba9d3c9b34eeae205724124e31de4543d59fbf74"
+  integrity sha512-ZgYLvCS1wxOczBYGcQT9DDWgicXwJ4dbocr9uYN+/eresBAUuBu+O4WzB21ufQ/JqQT8gyp7hJ3z8SHii32mTQ==
   dependencies:
-    acorn "^7.4.0"
+    acorn "^8.6.0"
     acorn-jsx "^5.3.1"
-    eslint-visitor-keys "^1.3.0"
+    eslint-visitor-keys "^3.1.0"
 
 esprima@^4.0.0:
   version "4.0.1"
@@ -3854,9 +4192,9 @@ estraverse@^4.1.1:
   integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
 
 estraverse@^5.1.0, estraverse@^5.2.0:
-  version "5.2.0"
-  resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880"
-  integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==
+  version "5.3.0"
+  resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
+  integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
 
 esutils@^2.0.2:
   version "2.0.3"
@@ -4062,9 +4400,9 @@ extsprintf@1.3.0:
   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=
+  version "1.4.1"
+  resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07"
+  integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==
 
 fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
   version "3.1.3"
@@ -4092,17 +4430,12 @@ fast-levenshtein@^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.1.1"
-  resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884"
-  integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==
-
 fast-xml-parser@^3.17.5, fast-xml-parser@^3.19.0:
-  version "3.20.0"
-  resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-3.20.0.tgz#b9ce9ddbc44d2cb7e38f846c5929c667bbf0936d"
-  integrity sha512-cMQwDJYVDjMPU56DviszewgMKuNzuf4NQSBuDf9RgZ6FKm5QEMxW05Za8lvnuL6moxoeZVUWBlL733WmovvV6g==
+  version "3.21.1"
+  resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-3.21.1.tgz#152a1d51d445380f7046b304672dd55d15c9e736"
+  integrity sha512-FTFVjYoBOZTJekiUsawGsSYV9QL0A+zDYCRj7y34IO6Jg+2IMYEtQa+bbictpdpV8dHxXywqU7C0gRDEOFtBFg==
   dependencies:
-    strnum "^1.0.3"
+    strnum "^1.0.4"
 
 fastest-levenshtein@^1.0.12:
   version "1.0.12"
@@ -4117,9 +4450,9 @@ fastq@^1.6.0:
     reusify "^1.0.4"
 
 fault@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/fault/-/fault-2.0.0.tgz#ad2198a6e28e344dcda76a7b32406b1039f0b707"
-  integrity sha512-JsDj9LFcoC+4ChII1QpXPA7YIaY8zmqPYw7h9j5n7St7a0BBKfNnwEBAUQRBx70o2q4rs+BeSNHk8Exm6xE7fQ==
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/fault/-/fault-2.0.1.tgz#d47ca9f37ca26e4bd38374a7c500b5a384755b6c"
+  integrity sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==
   dependencies:
     format "^0.2.0"
 
@@ -4153,13 +4486,13 @@ file-saver@2.0.5:
   resolved "https://registry.yarnpkg.com/file-saver/-/file-saver-2.0.5.tgz#d61cfe2ce059f414d899e9dd6d4107ee25670c38"
   integrity sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==
 
-file-type@^16.1.0:
-  version "16.5.3"
-  resolved "https://registry.yarnpkg.com/file-type/-/file-type-16.5.3.tgz#474b7e88c74724046abb505e9b8ed4db30c4fc06"
-  integrity sha512-uVsl7iFhHSOY4bEONLlTK47iAHtNsFHWP5YE4xJfZ4rnX7S1Q3wce09XgqSC7E/xh8Ncv/be1lNoyprlUH/x6A==
+file-type@^17.0.0:
+  version "17.0.0"
+  resolved "https://registry.yarnpkg.com/file-type/-/file-type-17.0.0.tgz#83878c2e1e98fc1eaa60e5a419e3a32615517547"
+  integrity sha512-AncQKsnXTRHHEn3EwMobGwaQ84FOrLfy9GbbbeZ0mZC9FROiesHdycyG/hoPfDoTf32CzFUQLR1HsByOW92X2g==
   dependencies:
-    readable-web-to-node-stream "^3.0.0"
-    strtok3 "^6.2.4"
+    readable-web-to-node-stream "^3.0.2"
+    strtok3 "7.0.0-alpha.4"
     token-types "^4.1.1"
 
 file-uri-to-path@1.0.0:
@@ -4255,7 +4588,7 @@ find-up@5.0.0:
     locate-path "^6.0.0"
     path-exists "^4.0.0"
 
-find-up@^2.0.0, find-up@^2.1.0:
+find-up@^2.1.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
   integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c=
@@ -4291,14 +4624,14 @@ flat@^5.0.2:
   integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==
 
 flatted@^3.1.0:
-  version "3.2.2"
-  resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.2.tgz#64bfed5cb68fe3ca78b3eb214ad97b63bedce561"
-  integrity sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==
+  version "3.2.4"
+  resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.4.tgz#28d9969ea90661b5134259f312ab6aa7929ac5e2"
+  integrity sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==
 
-flowchart.js@1.15.0:
-  version "1.15.0"
-  resolved "https://registry.yarnpkg.com/flowchart.js/-/flowchart.js-1.15.0.tgz#132ba2df14af0a65e67280026ef05a1ffd16569f"
-  integrity sha512-IyCVUFfHPLPgKLynw3NCkZ7CvKJdc/bAu0aHm+2AxKhtSBCiUC1kcTX1KautC3HOp1A2JS1IOcYxDTmcMkx5nQ==
+flowchart.js@1.17.0:
+  version "1.17.0"
+  resolved "https://registry.yarnpkg.com/flowchart.js/-/flowchart.js-1.17.0.tgz#bb913f783a71f77aaf72be8b0ce73d46b29e2443"
+  integrity sha512-aLpkIVgaSEWQ033WFeV/G84o9DAhEhJWtv1ViGyzpjF2VvfBEOdEzEXJJ0gDND0P75dXFJAXbSUTywkhiJiZAw==
   dependencies:
     raphael "2.3.0"
 
@@ -4316,9 +4649,9 @@ fn.name@1.x.x:
   integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==
 
 follow-redirects@^1.14.0:
-  version "1.14.3"
-  resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.3.tgz#6ada78118d8d24caee595595accdc0ac6abd022e"
-  integrity sha512-3MkHxknWMUtb23apkgz/83fDoe+y+qr0TdgacGIA7bew+QLBo3vdgEN2xEsuXNivpFy4CyDhBBZnNZOtalmenw==
+  version "1.14.5"
+  resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.5.tgz#f09a5848981d3c772b5392309778523f8d85c381"
+  integrity sha512-wtphSXy7d4/OR+MvIFbCVBDzZ5520qV8XfPklSN5QtxuMUJZ+b0Wnst1e1lCDocfzuCkHqj8k0FpZqO+UIaKNA==
 
 for-in@^1.0.1, for-in@^1.0.2:
   version "1.0.2"
@@ -4370,10 +4703,15 @@ format@^0.2.0:
   resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b"
   integrity sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=
 
-formidable@^1.0.17:
-  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@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/formidable/-/formidable-2.0.1.tgz#4310bc7965d185536f9565184dee74fbb75557ff"
+  integrity sha512-rjTMNbp2BpfQShhFbR3Ruk3qk2y9jKpvMW78nJgx8QKtxjDVrwbZG+wvDOmVbifHyOUOQJXxqEy6r0faRrPzTQ==
+  dependencies:
+    dezalgo "1.0.3"
+    hexoid "1.0.0"
+    once "1.4.0"
+    qs "6.9.3"
 
 formidable@~1.0.14:
   version "1.0.17"
@@ -4577,7 +4915,14 @@ glob-parent@^5.1.1, glob-parent@^5.1.2, glob-parent@~5.1.2:
   dependencies:
     is-glob "^4.0.1"
 
-glob@7.1.7, glob@^7.0.0, glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4:
+glob-parent@^6.0.1:
+  version "6.0.2"
+  resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3"
+  integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
+  dependencies:
+    is-glob "^4.0.3"
+
+glob@7.1.7:
   version "7.1.7"
   resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90"
   integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==
@@ -4589,10 +4934,22 @@ glob@7.1.7, glob@^7.0.0, glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4:
     once "^1.3.0"
     path-is-absolute "^1.0.0"
 
+glob@^7.0.0, glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4:
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023"
+  integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==
+  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"
+
 globals@^13.6.0, globals@^13.9.0:
-  version "13.11.0"
-  resolved "https://registry.yarnpkg.com/globals/-/globals-13.11.0.tgz#40ef678da117fe7bd2e28f1fab24951bd0255be7"
-  integrity sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==
+  version "13.12.0"
+  resolved "https://registry.yarnpkg.com/globals/-/globals-13.12.0.tgz#4d733760304230a0082ed96e21e5c565f898089e"
+  integrity sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==
   dependencies:
     type-fest "^0.20.2"
 
@@ -4682,11 +5039,6 @@ has-flag@^4.0.0:
   resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
   integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
 
-has-flag@^5.0.0:
-  version "5.0.1"
-  resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-5.0.1.tgz#5483db2ae02a472d1d0691462fc587d1843cd940"
-  integrity sha512-CsNUt5x9LUdx6hnk/E2SZLsDyvfqANZSUq4+D3D8RzDJ2M+HDTIkF60ibS1vHaK55vzgiZw1bEPFG9yH7l33wA==
-
 has-symbols@^1.0.1, has-symbols@^1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423"
@@ -4759,67 +5111,6 @@ hash.js@^1.0.0, hash.js@^1.0.3:
     inherits "^2.0.3"
     minimalistic-assert "^1.0.1"
 
-hast-util-from-parse5@^7.0.0:
-  version "7.1.0"
-  resolved "https://registry.yarnpkg.com/hast-util-from-parse5/-/hast-util-from-parse5-7.1.0.tgz#c129dd3a24dd8a867ab8a029ca47e27aa54864b7"
-  integrity sha512-m8yhANIAccpU4K6+121KpPP55sSl9/samzQSQGpb0mTExcNh2WlvjtMwSWFhg6uqD4Rr6Nfa8N6TMypQM51rzQ==
-  dependencies:
-    "@types/hast" "^2.0.0"
-    "@types/parse5" "^6.0.0"
-    "@types/unist" "^2.0.0"
-    hastscript "^7.0.0"
-    property-information "^6.0.0"
-    vfile "^5.0.0"
-    vfile-location "^4.0.0"
-    web-namespaces "^2.0.0"
-
-hast-util-is-element@^2.0.0:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/hast-util-is-element/-/hast-util-is-element-2.1.1.tgz#863019a27400dc4f1aedfa4900627f42fd75c2b7"
-  integrity sha512-ag0fiZfRWsPiR1udvnSbaazJLGv8qd8E+/e3rW8rUZhbKG4HNJmFL4QkEceN+22BgE+uozXY30z/s+2dL6Z++g==
-  dependencies:
-    "@types/hast" "^2.0.0"
-    "@types/unist" "^2.0.0"
-
-hast-util-parse-selector@^3.0.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-3.1.0.tgz#a519e27e8b61bd5a98fad494ed06131ce68d9c3f"
-  integrity sha512-AyjlI2pTAZEOeu7GeBPZhROx0RHBnydkQIXlhnFzDi0qfXTmGUWoCYZtomHbrdrheV4VFUlPcfJ6LMF5T6sQzg==
-  dependencies:
-    "@types/hast" "^2.0.0"
-
-hast-util-to-html@^8.0.0:
-  version "8.0.2"
-  resolved "https://registry.yarnpkg.com/hast-util-to-html/-/hast-util-to-html-8.0.2.tgz#3445497508e2157a3169864eb43fb6ee929d3cbe"
-  integrity sha512-ipLhUTMyyJi9F/LXaNDG9BrRdshP6obCfmUZYbE/+T639IdzqAOkKN4DyrEyID0gbb+rsC3PKf0XlviZwzomhw==
-  dependencies:
-    "@types/hast" "^2.0.0"
-    ccount "^2.0.0"
-    comma-separated-tokens "^2.0.0"
-    hast-util-is-element "^2.0.0"
-    hast-util-whitespace "^2.0.0"
-    html-void-elements "^2.0.0"
-    property-information "^6.0.0"
-    space-separated-tokens "^2.0.0"
-    stringify-entities "^4.0.0"
-    unist-util-is "^5.0.0"
-
-hast-util-whitespace@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-2.0.0.tgz#4fc1086467cc1ef5ba20673cb6b03cec3a970f1c"
-  integrity sha512-Pkw+xBHuV6xFeJprJe2BBEoDV+AvQySaz3pPDRUs5PNZEMQjpXJJueqrpcHIXxnWTcAGi/UOCgVShlkY6kLoqg==
-
-hastscript@^7.0.0:
-  version "7.0.2"
-  resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-7.0.2.tgz#d811fc040817d91923448a28156463b2e40d590a"
-  integrity sha512-uA8ooUY4ipaBvKcMuPehTAB/YfFLSSzCwFSwT6ltJbocFUKH/GDHLN+tflq7lSRf9H86uOuxOFkh1KgIy3Gg2g==
-  dependencies:
-    "@types/hast" "^2.0.0"
-    comma-separated-tokens "^2.0.0"
-    hast-util-parse-selector "^3.0.0"
-    property-information "^6.0.0"
-    space-separated-tokens "^2.0.0"
-
 he@1.2.0, he@^1.2.0:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
@@ -4830,6 +5121,11 @@ helmet@^4.5.0:
   resolved "https://registry.yarnpkg.com/helmet/-/helmet-4.6.0.tgz#579971196ba93c5978eb019e4e8ec0e50076b4df"
   integrity sha512-HVqALKZlR95ROkrnesdhbbZJFi/rIVSoNq6f3jA/9u6MIbTsPh3xZwihjeI5+DO/2sOV6HMHooXcEOuwskHpTg==
 
+hexoid@1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/hexoid/-/hexoid-1.0.0.tgz#ad10c6573fb907de23d9ec63a711267d9dc9bc18"
+  integrity sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==
+
 highlight.js@10.7.3:
   version "10.7.3"
   resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.3.tgz#697272e3991356e40c3cac566a74eef681756531"
@@ -4852,11 +5148,6 @@ home-or-tmp@^2.0.0:
     os-homedir "^1.0.0"
     os-tmpdir "^1.0.1"
 
-hosted-git-info@^2.1.4:
-  version "2.8.9"
-  resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9"
-  integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==
-
 html-minifier-terser@^5.0.1:
   version "5.1.1"
   resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#922e96f1f3bb60832c2634b79884096389b1f054"
@@ -4870,11 +5161,6 @@ html-minifier-terser@^5.0.1:
     relateurl "^0.2.7"
     terser "^4.6.3"
 
-html-void-elements@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-2.0.0.tgz#ea71bae0dd33de675cdda3c4ace1bc7584bb1071"
-  integrity sha512-4OYzQQsBt0G9bJ/nM9/DDsjm4+fVdzAaPJJcWk5QwA3GIAPxQEeOR0rsI8HbDHQz5Gta8pVvGnnTNSbZVEVvkQ==
-
 html-webpack-plugin@4.5.2:
   version "4.5.2"
   resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-4.5.2.tgz#76fc83fa1a0f12dd5f7da0404a54e2699666bc12"
@@ -4972,7 +5258,7 @@ iconv-lite@0.4, iconv-lite@0.4.24, iconv-lite@^0.4.4:
   dependencies:
     safer-buffer ">= 2.1.2 < 3"
 
-iconv-lite@^0.6.2, iconv-lite@^0.6.3:
+iconv-lite@0.6, iconv-lite@^0.6.3:
   version "0.6.3"
   resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501"
   integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==
@@ -5012,9 +5298,9 @@ ignore@^4.0.6:
   integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
 
 ignore@^5.0.0, ignore@^5.1.1, ignore@^5.1.4:
-  version "5.1.8"
-  resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57"
-  integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==
+  version "5.1.9"
+  resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.9.tgz#9ec1a5cbe8e1446ec60d4420060d43aa6e7382fb"
+  integrity sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==
 
 image-size@~0.5.0:
   version "0.5.5"
@@ -5030,9 +5316,9 @@ import-fresh@^3.0.0, import-fresh@^3.2.1:
     resolve-from "^4.0.0"
 
 import-local@^3.0.2:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6"
-  integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.3.tgz#4d51c2c495ca9393da259ec66b62e022920211e0"
+  integrity sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA==
   dependencies:
     pkg-dir "^4.2.0"
     resolve-cwd "^3.0.0"
@@ -5116,6 +5402,11 @@ internal-slot@^1.0.3:
     has "^1.0.3"
     side-channel "^1.0.4"
 
+"internmap@1 - 2":
+  version "2.0.3"
+  resolved "https://registry.yarnpkg.com/internmap/-/internmap-2.0.3.tgz#6685f23755e43c524e251d29cbc97248e3061009"
+  integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==
+
 interpret@^2.2.0:
   version "2.2.0"
   resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9"
@@ -5138,6 +5429,11 @@ ipaddr.js@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==
 
+ipaddr.js@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz#eca256a7a877e917aeb368b0a7497ddf42ef81c0"
+  integrity sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==
+
 is-absolute-url@^3.0.3:
   version "3.0.3"
   resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698"
@@ -5157,19 +5453,6 @@ is-accessor-descriptor@^1.0.0:
   dependencies:
     kind-of "^6.0.0"
 
-is-alphabetical@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-2.0.0.tgz#ef6e2caea57c63450fffc7abb6cbdafc5eb96e96"
-  integrity sha512-5OV8Toyq3oh4eq6sbWTYzlGdnMT/DPI5I0zxUBxjiigQsZycpkKF3kskkao3JyYGuYDHvhgJF+DrjMQp9SX86w==
-
-is-alphanumerical@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-2.0.0.tgz#0fbfeb6a72d21d91143b3d182bf6cf5909ee66f6"
-  integrity sha512-t+2GlJ+hO9yagJ+jU3+HSh80VKvz/3cG2cxbGGm4S0hjKuhWQXgPVUVOZz3tqZzMjhmphZ+1TIJTlRZRoe6GCQ==
-  dependencies:
-    is-alphabetical "^2.0.0"
-    is-decimal "^2.0.0"
-
 is-arguments@^1.0.4, is-arguments@^1.1.0:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b"
@@ -5237,10 +5520,10 @@ is-callable@^1.1.4, is-callable@^1.2.4:
   resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945"
   integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==
 
-is-core-module@^2.2.0, is-core-module@^2.6.0:
-  version "2.6.0"
-  resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.6.0.tgz#d7553b2526fe59b92ba3e40c8df757ec8a709e19"
-  integrity sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==
+is-core-module@^2.2.0, is-core-module@^2.8.0:
+  version "2.8.0"
+  resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.0.tgz#0321336c3d0925e497fd97f5d95cb114a5ccd548"
+  integrity sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==
   dependencies:
     has "^1.0.3"
 
@@ -5265,11 +5548,6 @@ is-date-object@^1.0.1, is-date-object@^1.0.2:
   dependencies:
     has-tostringtag "^1.0.0"
 
-is-decimal@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-2.0.0.tgz#db1140337809fd043a056ae40a9bd1cdc563034c"
-  integrity sha512-QfrfjQV0LjoWQ1K1XSoEZkTAzSa14RKVMa5zg3SdAfzEmQzRM4+tbSFWb78creCeA9rNBzaZal92opi1TwPWZw==
-
 is-descriptor@^0.1.0:
   version "0.1.6"
   resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca"
@@ -5339,11 +5617,6 @@ is-fullwidth-code-point@^1.0.0:
   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-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"
@@ -5375,18 +5648,13 @@ 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.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==
+is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1:
+  version "4.0.3"
+  resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
+  integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
   dependencies:
     is-extglob "^2.1.1"
 
-is-hexadecimal@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-2.0.0.tgz#8e1ec9f48fe3eabd90161109856a23e0907a65d5"
-  integrity sha512-vGOtYkiaxwIiR0+Ng/zNId+ZZehGfINwTzdrDqc6iubbnQWhnPuYymOzOKUDqa2cSl59yHnEh2h6MvRLQsyNug==
-
 is-map@^2.0.1, is-map@^2.0.2:
   version "2.0.2"
   resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127"
@@ -5478,6 +5746,11 @@ is-set@^2.0.1, is-set@^2.0.2:
   resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec"
   integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==
 
+is-shared-array-buffer@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6"
+  integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==
+
 is-stream@^2.0.0:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
@@ -5491,9 +5764,9 @@ is-string@^1.0.5, is-string@^1.0.7:
     has-tostringtag "^1.0.0"
 
 is-svg@^4.3.1:
-  version "4.3.1"
-  resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-4.3.1.tgz#8c63ec8c67c8c7f0a8de0a71c8c7d58eccf4406b"
-  integrity sha512-h2CGs+yPUyvkgTJQS9cJzo9lYK06WgRiXUqBBHtglSzVKAuH4/oWsqk7LGfbSa1hGk9QcZ0SyQtVggvBA8LZXA==
+  version "4.3.2"
+  resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-4.3.2.tgz#a119e9932e1af53f6be1969d1790d6cc5fd947d3"
+  integrity sha512-mM90duy00JGMyjqIVHu9gNTjywdZV+8qNasX8cm/EEYZ53PHDgajvbBwNVvty5dwSAxLUD3p3bdo+7sR/UMrpw==
   dependencies:
     fast-xml-parser "^3.19.0"
 
@@ -5530,6 +5803,13 @@ is-weakmap@^2.0.1:
   resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2"
   integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==
 
+is-weakref@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.1.tgz#842dba4ec17fa9ac9850df2d6efbc1737274f2a2"
+  integrity sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==
+  dependencies:
+    call-bind "^1.0.0"
+
 is-weakset@^2.0.1:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.1.tgz#e9a0af88dbd751589f5e50d80f4c98b780884f83"
@@ -5608,21 +5888,23 @@ jmespath@0.15.0:
   integrity sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=
 
 joycon@^3.0.1:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/joycon/-/joycon-3.0.1.tgz#9074c9b08ccf37a6726ff74a18485f85efcaddaf"
-  integrity sha512-SJcJNBg32dGgxhPtM0wQqxqV0ax9k/9TaUskGDSJkSFSQOEWWvQ3zzWdGQRIUry2j1zA5+ReH13t0Mf3StuVZA==
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/joycon/-/joycon-3.1.1.tgz#bce8596d6ae808f8b68168f5fc69280996894f03"
+  integrity sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==
 
 jquery-mousewheel@3.1.13:
   version "3.1.13"
   resolved "https://registry.yarnpkg.com/jquery-mousewheel/-/jquery-mousewheel-3.1.13.tgz#06f0335f16e353a695e7206bf50503cb523a6ee5"
   integrity sha1-BvAzXxbjU6aV5yBr9QUDy1I6buU=
 
-jquery-ui@1.12.1:
-  version "1.12.1"
-  resolved "https://registry.yarnpkg.com/jquery-ui/-/jquery-ui-1.12.1.tgz#bcb4045c8dd0539c134bc1488cdd3e768a7a9e51"
-  integrity sha1-vLQEXI3QU5wTS8FIjN0+dop6nlE=
+jquery-ui@1.13.0:
+  version "1.13.0"
+  resolved "https://registry.yarnpkg.com/jquery-ui/-/jquery-ui-1.13.0.tgz#ab5ac65f37ca093c51b3478c4097f55bbc008f36"
+  integrity sha512-Osf7ECXNTYHtKBkn9xzbIf9kifNrBhfywFEKxOeB/OVctVmLlouV9mfc2qXCp6uyO4Pn72PXKOnj09qXetopCw==
+  dependencies:
+    jquery ">=1.8.0 <4.0.0"
 
-jquery@3.6.0:
+jquery@3.6.0, "jquery@>=1.8.0 <4.0.0":
   version "3.6.0"
   resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.6.0.tgz#c72a09f15c1bdce142f49dbf1170bdf8adac2470"
   integrity sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==
@@ -5652,7 +5934,7 @@ js-tokens@^3.0.2:
   resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
   integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls=
 
-js-yaml@3.14.1, js-yaml@^3.13.1:
+js-yaml@3.14.1:
   version "3.14.1"
   resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537"
   integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==
@@ -5660,7 +5942,7 @@ js-yaml@3.14.1, js-yaml@^3.13.1:
     argparse "^1.0.7"
     esprima "^4.0.0"
 
-js-yaml@4.1.0, js-yaml@^4.0.0, js-yaml@~4.1.0:
+js-yaml@4.1.0, js-yaml@^4.0.0, js-yaml@^4.1.0, js-yaml@~4.1.0:
   version "4.1.0"
   resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
   integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
@@ -5701,7 +5983,7 @@ json-edm-parser@0.1.2:
   dependencies:
     jsonparse "~1.2.0"
 
-json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2:
+json-parse-better-errors@^1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
   integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
@@ -5716,15 +5998,10 @@ json-schema-traverse@^0.4.1:
   resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
   integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
 
-json-schema-traverse@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2"
-  integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==
-
-json-schema@0.2.3:
-  version "0.2.3"
-  resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
-  integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=
+json-schema@0.4.0:
+  version "0.4.0"
+  resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5"
+  integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==
 
 json-stable-stringify-without-jsonify@^1.0.1:
   version "1.0.1"
@@ -5774,13 +6051,13 @@ jsonparse@~1.2.0:
   integrity sha1-XAxWhRBxYOcv50ib3eoLRMK8Z70=
 
 jsprim@^1.2.2:
-  version "1.4.1"
-  resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
-  integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=
+  version "1.4.2"
+  resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb"
+  integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==
   dependencies:
     assert-plus "1.0.0"
     extsprintf "1.3.0"
-    json-schema "0.2.3"
+    json-schema "0.4.0"
     verror "1.10.0"
 
 keymaster@1.6.2:
@@ -5817,10 +6094,15 @@ 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==
 
+kleur@^4.0.3:
+  version "4.1.4"
+  resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.4.tgz#8c202987d7e577766d039a8cd461934c01cda04d"
+  integrity sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==
+
 klona@^2.0.4:
-  version "2.0.4"
-  resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.4.tgz#7bb1e3affb0cb8624547ef7e8f6708ea2e39dfc0"
-  integrity sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA==
+  version "2.0.5"
+  resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.5.tgz#d166574d90076395d9963aa7a928fabb8d76afbc"
+  integrity sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==
 
 kuler@^2.0.0:
   version "2.0.0"
@@ -5836,9 +6118,9 @@ last-call-webpack-plugin@^3.0.0:
     webpack-sources "^1.1.0"
 
 lazystream@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4"
-  integrity sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.1.tgz#494c831062f1f9408251ec44db1cba29242a2638"
+  integrity sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==
   dependencies:
     readable-stream "^2.0.5"
 
@@ -5882,14 +6164,14 @@ less-loader@7.3.0:
     loader-utils "^2.0.0"
     schema-utils "^3.0.0"
 
-less@4.1.1:
-  version "4.1.1"
-  resolved "https://registry.yarnpkg.com/less/-/less-4.1.1.tgz#15bf253a9939791dc690888c3ff424f3e6c7edba"
-  integrity sha512-w09o8tZFPThBscl5d0Ggp3RcrKIouBoQscnOMgFH3n5V3kN/CXGHNfCkRPtxJk6nKryDXaV9aHLK55RXuH4sAw==
+less@4.1.2:
+  version "4.1.2"
+  resolved "https://registry.yarnpkg.com/less/-/less-4.1.2.tgz#6099ee584999750c2624b65f80145f8674e4b4b0"
+  integrity sha512-EoQp/Et7OSOVu0aJknJOtlXZsnr8XE8KwuzTHOLeVSEx8pVWUICc8Q0VYRHgzyjX78nMEyC/oztWFbgyhtNfDA==
   dependencies:
     copy-anything "^2.0.1"
     parse-node-version "^1.0.1"
-    tslib "^1.10.0"
+    tslib "^2.3.0"
   optionalDependencies:
     errno "^0.1.1"
     graceful-fs "^4.1.2"
@@ -5917,19 +6199,19 @@ libnpmconfig@^1.0.0:
     ini "^1.3.5"
 
 lilconfig@^2.0.3:
-  version "2.0.3"
-  resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.3.tgz#68f3005e921dafbd2a2afb48379986aa6d2579fd"
-  integrity sha512-EHKqr/+ZvdKCifpNrJCKxBTgk5XupZA3y/aCPY9mxfgBzmgh93Mt/WqjjQ38oMxXuvDokaKiM3lAgvSH2sjtHg==
+  version "2.0.4"
+  resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.4.tgz#f4507d043d7058b380b6a8f5cb7bcd4b34cee082"
+  integrity sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==
 
 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=
+  version "1.2.4"
+  resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
+  integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
 
 linkify-it@^3.0.1:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-3.0.2.tgz#f55eeb8bc1d3ae754049e124ab3bb56d97797fb8"
-  integrity sha512-gDBO4aHNZS6coiZCKVhSNh43F9ioIL4JwRjLZPkoLIY4yZFwg264Y5lu2x6rb1Js42Gh6Yqm2f6L2AJcnkzinQ==
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-3.0.3.tgz#a98baf44ce45a550efb4d49c769d07524cc2fa2e"
+  integrity sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==
   dependencies:
     uc.micro "^1.0.1"
 
@@ -5940,16 +6222,6 @@ list.js@2.3.1:
   dependencies:
     string-natural-compare "^2.0.2"
 
-load-json-file@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b"
-  integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs=
-  dependencies:
-    graceful-fs "^4.1.2"
-    parse-json "^4.0.0"
-    pify "^3.0.0"
-    strip-bom "^3.0.0"
-
 load-plugin@^4.0.0:
   version "4.0.1"
   resolved "https://registry.yarnpkg.com/load-plugin/-/load-plugin-4.0.1.tgz#9a239b0337064c9b8aac82b0c9f89b067db487c5"
@@ -5973,9 +6245,9 @@ loader-utils@^1.0.2, loader-utils@^1.2.3:
     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==
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.2.tgz#d6e3b4fb81870721ae4e0868ab11dd638368c129"
+  integrity sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==
   dependencies:
     big.js "^5.2.2"
     emojis-list "^3.0.0"
@@ -6021,11 +6293,6 @@ lodash.bind@^4.1.4:
   resolved "https://registry.yarnpkg.com/lodash.bind/-/lodash.bind-4.2.1.tgz#7ae3017e939622ac31b7d7d7dcb1b34db1690d35"
   integrity sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU=
 
-lodash.clonedeep@^4.5.0:
-  version "4.5.0"
-  resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
-  integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=
-
 lodash.defaults@^4.0.1, lodash.defaults@^4.2.0:
   version "4.2.0"
   resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c"
@@ -6096,11 +6363,6 @@ lodash.some@^4.4.0:
   resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d"
   integrity sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=
 
-lodash.truncate@^4.4.2:
-  version "4.4.2"
-  resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193"
-  integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=
-
 lodash.union@^4.6.0:
   version "4.6.0"
   resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88"
@@ -6125,14 +6387,14 @@ log-symbols@4.1.0:
     is-unicode-supported "^0.1.0"
 
 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==
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/logform/-/logform-2.3.0.tgz#a3997a05985de2ebd325ae0d166dffc9c6fe6b57"
+  integrity sha512-graeoWUH2knKbGthMtuG1EfaSPMZFZBIrhuJHhkS5ZseFBrc7DupCzihOQAzsK/qIKPQaPJ/lFQFctILUY5ARQ==
   dependencies:
     colors "^1.2.1"
-    fast-safe-stringify "^2.0.4"
     fecha "^4.2.0"
     ms "^2.1.1"
+    safe-stable-stringify "^1.1.0"
     triple-beam "^1.3.0"
 
 long@^4.0.0:
@@ -6141,9 +6403,9 @@ long@^4.0.0:
   integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==
 
 longest-streak@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-3.0.0.tgz#f127e2bded83caa6a35ac5f7a2f2b2f94b36f3dc"
-  integrity sha512-XhUjWR5CFaQ03JOP+iSDS9koy8T5jfoImCZ4XprElw3BXsSk4MpVYOLw/6LTDKZhO13PlAXnB5gS4MHQTpkSOw==
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-3.0.1.tgz#c97315b7afa0e7d9525db9a5a2953651432bdc5d"
+  integrity sha512-cHlYSUpL2s7Fb3394mYxwTYj8niTaNHUCLr0qdiCXQfSjfuA7CKofpX2uSwEfFDQ0EB7JcnMnm+GjbqqoinYYg==
 
 loose-envify@^1.0.0:
   version "1.4.0"
@@ -6240,9 +6502,9 @@ map-visit@^1.0.0:
     object-visit "^1.0.0"
 
 mariadb@^2.1.2:
-  version "2.5.4"
-  resolved "https://registry.yarnpkg.com/mariadb/-/mariadb-2.5.4.tgz#c66daa35e2768b8c714c758453531c06ae4927f4"
-  integrity sha512-4vQgMRyBIN9EwSQG0vzjR9D8bscPH0dGPJt67qVlOkHSiSm0xUatg1Pft4o1LzORgeOW4PheiY/HBE9bYYmNCA==
+  version "2.5.5"
+  resolved "https://registry.yarnpkg.com/mariadb/-/mariadb-2.5.5.tgz#a9aff9f1e57231a415a21254489439beb501c803"
+  integrity sha512-6dklvcKWuuaV1JjAwnE2ezR+jTt7JrZHftgeHHBmjB0wgfaUpdxol1DPWclwMcCrsO9yoM0FuCOiCcCgXc//9Q==
   dependencies:
     "@types/geojson" "^7946.0.7"
     "@types/node" "^14.14.28"
@@ -6368,25 +6630,29 @@ md5.js@^1.3.4:
     safe-buffer "^5.1.2"
 
 mdast-comment-marker@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/mdast-comment-marker/-/mdast-comment-marker-2.0.0.tgz#1b97b8c01fc1ad0a213940e9dc50e787db349907"
-  integrity sha512-LQ4sf7vUzxz4mQQlzzBDgjaCJO5A0lkIAT9TyeNMfqaP31ooP1Qw9hprf7/V3NCo5FA1nvo5gbnfLVRY79QlDQ==
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/mdast-comment-marker/-/mdast-comment-marker-2.1.0.tgz#67acce26def829b310016c7a186ec6ec3e7d6a3f"
+  integrity sha512-/+Cfm8A83PjkqjQDB9iYqHESGuXlriCWAwRGPJjkYmxXrF4r6saxeUlOKNrf+SogTwg9E8uyHRCFHLG6/BAAdA==
+  dependencies:
+    mdast-util-mdx-expression "^1.1.0"
 
 mdast-util-from-markdown@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-1.0.0.tgz#c517313cd999ec2b8f6d447b438c5a9d500b89c9"
-  integrity sha512-uj2G60sb7z1PNOeElFwCC9b/Se/lFXuLhVKFOAY2EHz/VvgbupTQRNXPoZl7rGpXYL6BNZgcgaybrlSWbo7n/g==
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-1.2.0.tgz#84df2924ccc6c995dec1e2368b2b208ad0a76268"
+  integrity sha512-iZJyyvKD1+K7QX1b5jXdE7Sc5dtoTry1vzV28UZZe8Z1xVnB/czKntJ7ZAkG0tANqRnBF6p3p7GpU1y19DTf2Q==
   dependencies:
     "@types/mdast" "^3.0.0"
     "@types/unist" "^2.0.0"
-    mdast-util-to-string "^3.0.0"
+    decode-named-character-reference "^1.0.0"
+    mdast-util-to-string "^3.1.0"
     micromark "^3.0.0"
     micromark-util-decode-numeric-character-reference "^1.0.0"
+    micromark-util-decode-string "^1.0.0"
     micromark-util-normalize-identifier "^1.0.0"
     micromark-util-symbol "^1.0.0"
     micromark-util-types "^1.0.0"
-    parse-entities "^3.0.0"
     unist-util-stringify-position "^3.0.0"
+    uvu "^0.5.0"
 
 mdast-util-heading-style@^2.0.0:
   version "2.0.0"
@@ -6395,20 +6661,27 @@ mdast-util-heading-style@^2.0.0:
   dependencies:
     "@types/mdast" "^3.0.0"
 
+mdast-util-mdx-expression@^1.1.0:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/mdast-util-mdx-expression/-/mdast-util-mdx-expression-1.1.1.tgz#657522e78b84f5c85cd2395776aba8dcfb7bbb0f"
+  integrity sha512-RDLRkBFmBKCJl6/fQdxxKL2BqNtoPFoNBmQAlj5ZNKOijIWRKjdhPkeufsUOaexLj+78mhJc+L7d1MYka8/LdQ==
+  dependencies:
+    "@types/estree-jsx" "^0.0.1"
+
 mdast-util-to-markdown@^1.0.0:
-  version "1.2.1"
-  resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-1.2.1.tgz#33e93c2409f8c1be17b832f90978e29830af5435"
-  integrity sha512-yj0UexEfdH0Zqw9CztzC5+J6OZKgCY6K0ommn56SBlPKIV3NGqk1Wo/zw1Q0e/kHb50wmQ8O9cwbOl7vmaJjxg==
+  version "1.2.6"
+  resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-1.2.6.tgz#9d0d1fcb22838e4af83fb04841cbde92525972f3"
+  integrity sha512-doJZmTEGagHypWvJ8ltinmwUsT9ZaNgNIQW6Gl7jNdsI1QZkTHTimYW561Niy2s8AEPAqEgV0dIh2UOVlSXUJA==
   dependencies:
     "@types/mdast" "^3.0.0"
     "@types/unist" "^2.0.0"
     longest-streak "^3.0.0"
     mdast-util-to-string "^3.0.0"
-    parse-entities "^3.0.0"
+    micromark-util-decode-string "^1.0.0"
     unist-util-visit "^4.0.0"
     zwitch "^2.0.0"
 
-mdast-util-to-string@^3.0.0:
+mdast-util-to-string@^3.0.0, mdast-util-to-string@^3.1.0:
   version "3.1.0"
   resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz#56c506d065fbf769515235e577b5a261552d56e9"
   integrity sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==
@@ -6459,16 +6732,16 @@ merge2@^1.3.0:
   resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
   integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
 
-mermaid@8.12.1:
-  version "8.12.1"
-  resolved "https://registry.yarnpkg.com/mermaid/-/mermaid-8.12.1.tgz#6b55617bcfc970a7bf724e027368b281feb62539"
-  integrity sha512-0UCcSF0FLoNcPBsRF4f9OIV32t41fV18//z8o3S+FDz2PbDA1CRGKdQF9IX84VP4Tv9kcgJI/oqJdcBEtB/GPA==
+mermaid@8.13.4:
+  version "8.13.4"
+  resolved "https://registry.yarnpkg.com/mermaid/-/mermaid-8.13.4.tgz#924cb85f39380285e0a99f245c66cfa61014a2e1"
+  integrity sha512-zdWtsXabVy1PEAE25Jkm4zbTDlQe8rqNlTMq2B3j+D+NxDskJEY5OsgalarvNLsw+b5xFa1a8D1xcm/PijrDow==
   dependencies:
     "@braintree/sanitize-url" "^3.1.0"
-    d3 "^5.16.0"
+    d3 "^7.0.0"
     dagre "^0.8.5"
     dagre-d3 "^0.6.4"
-    dompurify "2.3.1"
+    dompurify "2.3.3"
     graphlib "^2.1.8"
     khroma "^1.4.1"
     moment-mini "^2.24.0"
@@ -6495,7 +6768,7 @@ messageformat@^2.3.0:
 
 "meta-marked@git+https://github.com/hedgedoc/meta-marked":
   version "0.4.5"
-  resolved "git+https://github.com/hedgedoc/meta-marked#6b3653c53a1727f697d0719626c55037b2f03753"
+  resolved "git+https://github.com/hedgedoc/meta-marked#3f2ea6ba7cb65340bfc9da5be84b314ec4ee4b2d"
   dependencies:
     js-yaml "~4.1.0"
     marked "~2.1.0"
@@ -6516,10 +6789,11 @@ methods@~1.1.1, methods@~1.1.2:
   integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
 
 micromark-core-commonmark@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/micromark-core-commonmark/-/micromark-core-commonmark-1.0.1.tgz#a64987cafe872e8b80bc8f2352a5d988586ac4f1"
-  integrity sha512-vEOw8hcQ3nwHkKKNIyP9wBi8M50zjNajtmI+cCUWcVfJS+v5/3WCh4PLKf7PPRZFUutjzl4ZjlHwBWUKfb/SkA==
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/micromark-core-commonmark/-/micromark-core-commonmark-1.0.5.tgz#b49d31b2fa2d4a13d710681e0139cbadb71308c1"
+  integrity sha512-ZNtWumX94lpiyAu/lxvth6I5+XzxF+BLVUB7u60XzOBy4RojrbZqrx0mcRmbfqEMO6489vyvDfIQNv5hdulrPg==
   dependencies:
+    decode-named-character-reference "^1.0.0"
     micromark-factory-destination "^1.0.0"
     micromark-factory-label "^1.0.0"
     micromark-factory-space "^1.0.0"
@@ -6534,7 +6808,7 @@ micromark-core-commonmark@^1.0.1:
     micromark-util-subtokenize "^1.0.0"
     micromark-util-symbol "^1.0.0"
     micromark-util-types "^1.0.1"
-    parse-entities "^3.0.0"
+    uvu "^0.5.0"
 
 micromark-factory-destination@^1.0.0:
   version "1.0.0"
@@ -6546,13 +6820,14 @@ micromark-factory-destination@^1.0.0:
     micromark-util-types "^1.0.0"
 
 micromark-factory-label@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/micromark-factory-label/-/micromark-factory-label-1.0.0.tgz#b316ec479b474232973ff13b49b576f84a6f2cbb"
-  integrity sha512-XWEucVZb+qBCe2jmlOnWr6sWSY6NHx+wtpgYFsm4G+dufOf6tTQRRo0bdO7XSlGPu5fyjpJenth6Ksnc5Mwfww==
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/micromark-factory-label/-/micromark-factory-label-1.0.2.tgz#6be2551fa8d13542fcbbac478258fb7a20047137"
+  integrity sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg==
   dependencies:
     micromark-util-character "^1.0.0"
     micromark-util-symbol "^1.0.0"
     micromark-util-types "^1.0.0"
+    uvu "^0.5.0"
 
 micromark-factory-space@^1.0.0:
   version "1.0.0"
@@ -6563,14 +6838,15 @@ micromark-factory-space@^1.0.0:
     micromark-util-types "^1.0.0"
 
 micromark-factory-title@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/micromark-factory-title/-/micromark-factory-title-1.0.0.tgz#708f7a8044f34a898c0efdb4f55e4da66b537273"
-  integrity sha512-flvC7Gx0dWVWorXuBl09Cr3wB5FTuYec8pMGVySIp2ZlqTcIjN/lFohZcP0EG//krTptm34kozHk7aK/CleCfA==
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/micromark-factory-title/-/micromark-factory-title-1.0.2.tgz#7e09287c3748ff1693930f176e1c4a328382494f"
+  integrity sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A==
   dependencies:
     micromark-factory-space "^1.0.0"
     micromark-util-character "^1.0.0"
     micromark-util-symbol "^1.0.0"
     micromark-util-types "^1.0.0"
+    uvu "^0.5.0"
 
 micromark-factory-whitespace@^1.0.0:
   version "1.0.0"
@@ -6621,6 +6897,16 @@ micromark-util-decode-numeric-character-reference@^1.0.0:
   dependencies:
     micromark-util-symbol "^1.0.0"
 
+micromark-util-decode-string@^1.0.0:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/micromark-util-decode-string/-/micromark-util-decode-string-1.0.2.tgz#942252ab7a76dec2dbf089cc32505ee2bc3acf02"
+  integrity sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q==
+  dependencies:
+    decode-named-character-reference "^1.0.0"
+    micromark-util-character "^1.0.0"
+    micromark-util-decode-numeric-character-reference "^1.0.0"
+    micromark-util-symbol "^1.0.0"
+
 micromark-util-encode@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-1.0.0.tgz#c409ecf751a28aa9564b599db35640fccec4c068"
@@ -6655,13 +6941,14 @@ micromark-util-sanitize-uri@^1.0.0:
     micromark-util-symbol "^1.0.0"
 
 micromark-util-subtokenize@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/micromark-util-subtokenize/-/micromark-util-subtokenize-1.0.0.tgz#6f006fa719af92776c75a264daaede0fb3943c6a"
-  integrity sha512-EsnG2qscmcN5XhkqQBZni/4oQbLFjz9yk3ZM/P8a3YUjwV6+6On2wehr1ALx0MxK3+XXXLTzuBKHDFeDFYRdgQ==
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/micromark-util-subtokenize/-/micromark-util-subtokenize-1.0.2.tgz#ff6f1af6ac836f8bfdbf9b02f40431760ad89105"
+  integrity sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA==
   dependencies:
     micromark-util-chunked "^1.0.0"
     micromark-util-symbol "^1.0.0"
     micromark-util-types "^1.0.0"
+    uvu "^0.5.0"
 
 micromark-util-symbol@^1.0.0:
   version "1.0.0"
@@ -6669,17 +6956,18 @@ micromark-util-symbol@^1.0.0:
   integrity sha512-NZA01jHRNCt4KlOROn8/bGi6vvpEmlXld7EHcRH+aYWUfL3Wc8JLUNNlqUMKa0hhz6GrpUWsHtzPmKof57v0gQ==
 
 micromark-util-types@^1.0.0, micromark-util-types@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-1.0.1.tgz#8bb8a092d93d326bd29fe29602799f2d0d922fd4"
-  integrity sha512-UT0ylWEEy80RFYzK9pEaugTqaxoD/j0Y9WhHpSyitxd99zjoQz7JJ+iKuhPAgOW2MiPSUAx+c09dcqokeyaROA==
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-1.0.2.tgz#f4220fdb319205812f99c40f8c87a9be83eded20"
+  integrity sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==
 
 micromark@^3.0.0:
-  version "3.0.5"
-  resolved "https://registry.yarnpkg.com/micromark/-/micromark-3.0.5.tgz#d24792c8a06f201d5608c106dbfadef34c299684"
-  integrity sha512-QfjERBnPw0G9mxhOCkkbRP0n8SX8lIBLrEKeEVceviUukqVMv3hWE4AgNTOK/W6GWqtPvvIHg2Apl3j1Dxm6aQ==
+  version "3.0.9"
+  resolved "https://registry.yarnpkg.com/micromark/-/micromark-3.0.9.tgz#2ac001ffd126342fcf5f4ec2f944aa08206dd8d5"
+  integrity sha512-aWPjuXAqiFab4+oKLjH1vSNQm8S9GMnnf5sFNLrQaIggGYMBcQ9CS0Tt7+BJH6hbyv783zk3vgDhaORl3K33IQ==
   dependencies:
     "@types/debug" "^4.0.0"
     debug "^4.0.0"
+    decode-named-character-reference "^1.0.0"
     micromark-core-commonmark "^1.0.1"
     micromark-factory-space "^1.0.0"
     micromark-util-character "^1.0.0"
@@ -6693,7 +6981,7 @@ micromark@^3.0.0:
     micromark-util-subtokenize "^1.0.0"
     micromark-util-symbol "^1.0.0"
     micromark-util-types "^1.0.1"
-    parse-entities "^3.0.0"
+    uvu "^0.5.0"
 
 micromatch@^2.1.5:
   version "2.3.11"
@@ -6753,17 +7041,17 @@ miller-rabin@^4.0.0:
     bn.js "^4.0.0"
     brorand "^1.0.1"
 
-mime-db@1.49.0, "mime-db@>= 1.43.0 < 2":
-  version "1.49.0"
-  resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.49.0.tgz#f3dfde60c99e9cf3bc9701d687778f537001cbed"
-  integrity sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==
+mime-db@1.51.0, "mime-db@>= 1.43.0 < 2":
+  version "1.51.0"
+  resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c"
+  integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==
 
 mime-types@^2.1.12, mime-types@^2.1.14, mime-types@^2.1.27, mime-types@^2.1.3, mime-types@~2.1.19, mime-types@~2.1.24:
-  version "2.1.32"
-  resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.32.tgz#1d00e89e7de7fe02008db61001d9e02852670fd5"
-  integrity sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==
+  version "2.1.34"
+  resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24"
+  integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==
   dependencies:
-    mime-db "1.49.0"
+    mime-db "1.51.0"
 
 mime@1.3.4:
   version "1.3.4"
@@ -6812,14 +7100,15 @@ minimist@^1.0.0, minimist@^1.2.0, minimist@^1.2.5:
   integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
 
 minio@^7.0.19:
-  version "7.0.19"
-  resolved "https://registry.yarnpkg.com/minio/-/minio-7.0.19.tgz#ca47b68669e45237286709a8c06ecf89f992aa61"
-  integrity sha512-DOGKauWLdmj0/y2QKXdnrhqyzRFEnUteHi6q382uujg9TjSDrA84BiQVppS2Ew6V8Rcg+2IaRkF4GR34zw9sIA==
+  version "7.0.23"
+  resolved "https://registry.yarnpkg.com/minio/-/minio-7.0.23.tgz#282496e929631ddea7d1d43976420b7095257d60"
+  integrity sha512-bBunl3dm3BmeDpbPuNp0WfsCRWxLQ+aFjyyXTodSeupKH2ewbCMmUkInF0UncS7jmyHRvEbHMQEOGA70CxtByg==
   dependencies:
     async "^3.1.0"
     block-stream2 "^2.0.0"
     es6-error "^4.1.1"
     fast-xml-parser "^3.17.5"
+    ipaddr.js "^2.0.1"
     json-stream "^1.0.0"
     lodash "^4.17.21"
     mime-types "^2.1.14"
@@ -6860,9 +7149,9 @@ minipass@^2.6.0, minipass@^2.9.0:
     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==
+  version "3.1.5"
+  resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.5.tgz#71f6251b0a33a49c01b3cf97ff77eda030dff732"
+  integrity sha512-+8NzxD82XQoNKNrl1d/FSi+X8wAEWR+sbYAfIvub4Nz0d22plFG72CEVVaufV8PNf4qSslFTD8VMOxNVhHCjTw==
   dependencies:
     yallist "^4.0.0"
 
@@ -6917,16 +7206,16 @@ mkdirp@^1.0.3, mkdirp@^1.0.4:
   resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
   integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
 
-mocha@9.1.1:
-  version "9.1.1"
-  resolved "https://registry.yarnpkg.com/mocha/-/mocha-9.1.1.tgz#33df2eb9c6262434630510c5f4283b36efda9b61"
-  integrity sha512-0wE74YMgOkCgBUj8VyIDwmLUjTsS13WV1Pg7l0SHea2qzZzlq7MDnfbPsHKcELBRk3+izEVkRofjmClpycudCA==
+mocha@9.1.3:
+  version "9.1.3"
+  resolved "https://registry.yarnpkg.com/mocha/-/mocha-9.1.3.tgz#8a623be6b323810493d8c8f6f7667440fa469fdb"
+  integrity sha512-Xcpl9FqXOAYqI3j79pEtHBBnQgVXIhpULjGQa7DVb0Po+VzmSIK9kanAiWLHoRR/dbZ2qpdPshuXr8l1VaHCzw==
   dependencies:
     "@ungap/promise-all-settled" "1.1.2"
     ansi-colors "4.1.1"
     browser-stdout "1.3.1"
     chokidar "3.5.2"
-    debug "4.3.1"
+    debug "4.3.2"
     diff "5.0.0"
     escape-string-regexp "4.0.0"
     find-up "5.0.0"
@@ -6937,12 +7226,11 @@ mocha@9.1.1:
     log-symbols "4.1.0"
     minimatch "3.0.4"
     ms "2.1.3"
-    nanoid "3.1.23"
+    nanoid "3.1.25"
     serialize-javascript "6.0.0"
     strip-json-comments "3.1.1"
     supports-color "8.1.1"
     which "2.0.2"
-    wide-align "1.1.3"
     workerpool "6.1.5"
     yargs "16.2.0"
     yargs-parser "20.2.4"
@@ -6962,9 +7250,9 @@ moment-mini@^2.24.0:
   integrity sha512-9ARkWHBs+6YJIvrIp0Ik5tyTTtP9PoV0Ssu2Ocq5y9v8+NOOpWiRshAp8c4rZVWTOe+157on/5G+zj5pwIQFEQ==
 
 moment-timezone@^0.5.21, moment-timezone@^0.5.33:
-  version "0.5.33"
-  resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.33.tgz#b252fd6bb57f341c9b59a5ab61a8e51a73bbd22c"
-  integrity sha512-PTc2vcT8K9J5/9rDEPe5czSIKgLoGsH8UNpA4qZTVw0Vd/Uz19geE9abbIOQKaAQFcnQ3v5YEXrbSc5BpshH+w==
+  version "0.5.34"
+  resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.34.tgz#a75938f7476b88f155d3504a9343f7519d9a405c"
+  integrity sha512-3zAEHh2hKUs3EXLESx/wsgw6IQdusOT8Bxm3D9UrHPQR7zlMmzwybC8zHEM1tQ4LJwP7fcxrWr8tuBg05fFCbg==
   dependencies:
     moment ">= 2.9.0"
 
@@ -6996,6 +7284,11 @@ move-concurrently@^1.0.1:
     rimraf "^2.5.4"
     run-queue "^1.0.3"
 
+mri@^1.1.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b"
+  integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==
+
 ms@2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
@@ -7022,13 +7315,13 @@ mustache@^4.0.1:
   integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==
 
 mysql2@^2.0.0:
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/mysql2/-/mysql2-2.3.0.tgz#600f5cc27e397dfb77b59eac93666434f88e8079"
-  integrity sha512-0t5Ivps5Tdy5YHk5NdKwQhe/4Qyn2pload+S+UooDBvsqngtzujG1BaTWBihQLfeKO3t3122/GtusBtmHEHqww==
+  version "2.3.3"
+  resolved "https://registry.yarnpkg.com/mysql2/-/mysql2-2.3.3.tgz#944f3deca4b16629052ff8614fbf89d5552545a0"
+  integrity sha512-wxJUev6LgMSgACDkb/InIFxDprRa6T95+VEoR+xPvtngtccNH2dGjEB/fVZ8yg1gWv1510c9CvXuJHi5zUm0ZA==
   dependencies:
-    denque "^1.4.1"
+    denque "^2.0.1"
     generate-function "^2.3.1"
-    iconv-lite "^0.6.2"
+    iconv-lite "^0.6.3"
     long "^4.0.0"
     lru-cache "^6.0.0"
     named-placeholders "^1.1.2"
@@ -7047,20 +7340,20 @@ nan@^2.12.1:
   resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee"
   integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==
 
-nanoid@3.1.23:
-  version "3.1.23"
-  resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.23.tgz#f744086ce7c2bc47ee0a8472574d5c78e4183a81"
-  integrity sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==
+nanoid@3.1.25:
+  version "3.1.25"
+  resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.25.tgz#09ca32747c0e543f0e1814b7d3793477f9c8e152"
+  integrity sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==
 
 nanoid@^2.1.0:
   version "2.1.11"
   resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-2.1.11.tgz#ec24b8a758d591561531b4176a01e3ab4f0f0280"
   integrity sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA==
 
-nanoid@^3.1.23:
-  version "3.1.25"
-  resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.25.tgz#09ca32747c0e543f0e1814b7d3793477f9c8e152"
-  integrity sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==
+nanoid@^3.1.30:
+  version "3.1.30"
+  resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.30.tgz#63f93cc548d2a113dc5dfbc63bfa09e2b9b64362"
+  integrity sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==
 
 nanomatch@^1.2.9:
   version "1.2.13"
@@ -7117,16 +7410,18 @@ node-addon-api@^3.0.0:
   integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==
 
 node-fetch@^2.6.1:
-  version "2.6.2"
-  resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.2.tgz#986996818b73785e47b1965cc34eb093a1d464d0"
-  integrity sha512-aLoxToI6RfZ+0NOjmWAgn9+LEd30YCkJKFSyWacNZdEKTit/ZMcKjGkTRo8uWEsnIb/hfKecNPEbln02PdWbcA==
+  version "2.6.6"
+  resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.6.tgz#1751a7c01834e8e1697758732e9efb6eeadfaf89"
+  integrity sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA==
+  dependencies:
+    whatwg-url "^5.0.0"
 
 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@^4.2.0:
+node-gyp-build@^4.3.0:
   version "4.3.0"
   resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.3.0.tgz#9f256b03e5826150be39c764bf51e993946d71a3"
   integrity sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==
@@ -7194,10 +7489,10 @@ node-pre-gyp@^0.11.0:
     semver "^5.3.0"
     tar "^4"
 
-node-releases@^1.1.75:
-  version "1.1.75"
-  resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.75.tgz#6dd8c876b9897a1b8e5a02de26afa79bb54ebbfe"
-  integrity sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==
+node-releases@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5"
+  integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==
 
 nomnom@^1.5.x:
   version "1.8.1"
@@ -7222,16 +7517,6 @@ nopt@^4.0.1:
     abbrev "1"
     osenv "^0.1.4"
 
-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"
-  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@^2.0.0, normalize-path@^2.0.1, normalize-path@^2.1.1:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
@@ -7288,9 +7573,9 @@ npm-run-path@^4.0.1:
     set-blocking "~2.0.0"
 
 nth-check@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.0.tgz#1bb4f6dac70072fc313e8c9cd1417b5074c0a125"
-  integrity sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q==
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2"
+  integrity sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==
   dependencies:
     boolbase "^1.0.0"
 
@@ -7371,13 +7656,13 @@ object.assign@^4.1.2:
     object-keys "^1.1.1"
 
 object.getownpropertydescriptors@^2.0.3:
-  version "2.1.2"
-  resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz#1bd63aeacf0d5d2d2f31b5e393b03a7c601a23f7"
-  integrity sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==
+  version "2.1.3"
+  resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz#b223cf38e17fefb97a63c10c91df72ccb386df9e"
+  integrity sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw==
   dependencies:
     call-bind "^1.0.2"
     define-properties "^1.1.3"
-    es-abstract "^1.18.0-next.2"
+    es-abstract "^1.19.1"
 
 object.omit@^2.0.0:
   version "2.0.1"
@@ -7394,14 +7679,14 @@ object.pick@^1.3.0:
   dependencies:
     isobject "^3.0.1"
 
-object.values@^1.1.4:
-  version "1.1.4"
-  resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.4.tgz#0d273762833e816b693a637d30073e7051535b30"
-  integrity sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==
+object.values@^1.1.5:
+  version "1.1.5"
+  resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac"
+  integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==
   dependencies:
     call-bind "^1.0.2"
     define-properties "^1.1.3"
-    es-abstract "^1.18.2"
+    es-abstract "^1.19.1"
 
 on-finished@~2.3.0:
   version "2.3.0"
@@ -7415,7 +7700,7 @@ on-headers@~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:
+once@1.4.0, 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=
@@ -7437,11 +7722,11 @@ onetime@^5.1.2:
     mimic-fn "^2.1.0"
 
 openid@2.x.x:
-  version "2.0.9"
-  resolved "https://registry.yarnpkg.com/openid/-/openid-2.0.9.tgz#7d2bc03ed4c6bf4ccd05b128e3b0b33b6680205f"
-  integrity sha512-LzsGBHUDU2FjW/aHjB99GXxuyEPVkFyU4Ub/df3K0hYGxD1qvYu7atPORLXddCufVkcZBpgbYxdLVG8uiY0fCA==
+  version "2.0.10"
+  resolved "https://registry.yarnpkg.com/openid/-/openid-2.0.10.tgz#b611ee673dbefd9c8199f1e30ff3e75628b4a504"
+  integrity sha512-EFTQ61/OUVhCeq78Y3rBpdKSuvgb0lwkU8nN4QTdcv0afc5MT7e4IVuZwgkMsgE993dmhbIhkxHFP3iTVJXWmw==
   dependencies:
-    axios "^0.21.1"
+    axios "^0.21.4"
     qs "^6.5.2"
 
 optimize-css-assets-webpack-plugin@6.0.1:
@@ -7608,18 +7893,6 @@ parse-asn1@^5.0.0, parse-asn1@^5.1.5:
     pbkdf2 "^3.0.3"
     safe-buffer "^5.1.1"
 
-parse-entities@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-3.0.0.tgz#9ed6d6569b6cfc95ade058d683ddef239dad60dc"
-  integrity sha512-AJlcIFDNPEP33KyJLguv0xJc83BNvjxwpuUIcetyXUsLpVXAUCePJ5kIoYtEN2R1ac0cYaRu/vk9dVFkewHQhQ==
-  dependencies:
-    character-entities "^2.0.0"
-    character-entities-legacy "^2.0.0"
-    character-reference-invalid "^2.0.0"
-    is-alphanumerical "^2.0.0"
-    is-decimal "^2.0.0"
-    is-hexadecimal "^2.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"
@@ -7630,14 +7903,6 @@ parse-glob@^3.0.4:
     is-extglob "^1.0.0"
     is-glob "^2.0.0"
 
-parse-json@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0"
-  integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=
-  dependencies:
-    error-ex "^1.3.1"
-    json-parse-better-errors "^1.0.1"
-
 parse-json@^5.0.0:
   version "5.2.0"
   resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
@@ -7653,11 +7918,6 @@ parse-node-version@^1.0.1:
   resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b"
   integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==
 
-parse5@^6.0.0:
-  version "6.0.1"
-  resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b"
-  integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==
-
 parseqs@0.0.6:
   version "0.0.6"
   resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.6.tgz#8e4bb5a19d1cdc844a08ac974d34e273afa670d5"
@@ -7747,9 +8007,9 @@ passport-oauth1@1.x.x:
     utils-merge "1.x.x"
 
 passport-oauth2@1.x.x, passport-oauth2@^1.4.0:
-  version "1.6.0"
-  resolved "https://registry.yarnpkg.com/passport-oauth2/-/passport-oauth2-1.6.0.tgz#5f599735e0ea40ea3027643785f81a3a9b4feb50"
-  integrity sha512-emXPLqLcVEcLFR/QvQXZcwLmfK8e9CqvMgmOFJxcNT3okSFMtUbRRKpY20x5euD+01uHsjjCa07DYboEeLXYiw==
+  version "1.6.1"
+  resolved "https://registry.yarnpkg.com/passport-oauth2/-/passport-oauth2-1.6.1.tgz#c5aee8f849ce8bd436c7f81d904a3cd1666f181b"
+  integrity sha512-ZbV43Hq9d/SBSYQ22GOiglFsjsD1YY/qdiptA+8ej+9C1dL1TVB+mBE5kDH/D4AJo50+2i8f4bx0vg4/yDDZCQ==
   dependencies:
     base64url "3.x.x"
     oauth "0.9.x"
@@ -7766,12 +8026,12 @@ passport-oauth@^1.0.0:
     passport-oauth2 "1.x.x"
 
 passport-saml@^3.1.2:
-  version "3.1.2"
-  resolved "https://registry.yarnpkg.com/passport-saml/-/passport-saml-3.1.2.tgz#34a0c2c423d729ce102e69fea9c22040910e6d43"
-  integrity sha512-EhD3/ofiz1vu7R72i4RskXk/dQG9GyDmXPdHJf5LYB+93B5kvKv5p+5lpZgO3z+Wf3eN0h/tGdGd6noyYdjY6g==
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/passport-saml/-/passport-saml-3.2.0.tgz#72ec8203df6dd872a205b8d5f578859a4e723e42"
+  integrity sha512-EUzL+Wk8ZVdvOYhCBTkUrR1fwuMwF9za1FinFabP5Tl9qeJktsJWfoiBz7Fk6jQvpLwfnfryGdvwcOlGVct41A==
   dependencies:
-    "@xmldom/xmldom" "^0.7.2"
-    debug "^4.3.1"
+    "@xmldom/xmldom" "^0.7.5"
+    debug "^4.3.2"
     passport-strategy "^1.0.0"
     xml-crypto "^2.1.3"
     xml-encryption "^1.3.0"
@@ -7798,10 +8058,10 @@ passport.socketio@^3.7.0:
   dependencies:
     xtend "^4.0.0"
 
-passport@^0.4.0:
-  version "0.4.1"
-  resolved "https://registry.yarnpkg.com/passport/-/passport-0.4.1.tgz#941446a21cb92fc688d97a0861c38ce9f738f270"
-  integrity sha512-IxXgZZs8d7uFSt3eqNjM9NQ3g3uQCW5avD8mRNoXV99Yig50vjuaez6dQK2qC0kVWPRTujxY0dWgGfT09adjYg==
+passport@^0.5.0:
+  version "0.5.0"
+  resolved "https://registry.yarnpkg.com/passport/-/passport-0.5.0.tgz#7914aaa55844f9dce8c3aa28f7d6b73647ee0169"
+  integrity sha512-ln+ue5YaNDS+fes6O5PCzXKSseY5u8MYhX9H5Co4s+HfYI5oqvnHKoOORLYDUPh+8tHvrxugF2GFcUA1Q1Gqfg==
   dependencies:
     passport-strategy "1.x.x"
     pause "0.0.1"
@@ -7846,13 +8106,6 @@ path-to-regexp@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@^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"
@@ -7875,14 +8128,14 @@ pbkdf2@^3.0.3:
     sha.js "^2.4.8"
 
 pdfobject@^2.0.201604172:
-  version "2.2.6"
-  resolved "https://registry.yarnpkg.com/pdfobject/-/pdfobject-2.2.6.tgz#cb8a0b7697af88df8af017b5fd4a7a42abb6e031"
-  integrity sha512-3B8re2yWzBcI9Xa+QcRptw0ag5NQYyVHVxP1yEWW7aCm6ujvZa8z7/06uz/zZqsI2TDLzsED3yS4JEMwQdCGEg==
+  version "2.2.7"
+  resolved "https://registry.yarnpkg.com/pdfobject/-/pdfobject-2.2.7.tgz#487ec2ab425c9385f2d80eea5890d632f503cac2"
+  integrity sha512-9ptX0XNCtpYz0hNWz6j/1O4rvJkcPR2rct3UDBhs8ZEosOO67dCEAu4VpBvVJ64SMh8Mrn9pWWODnyLjgFQYgg==
 
-peek-readable@^4.0.1:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/peek-readable/-/peek-readable-4.0.1.tgz#9a045f291db254111c3412c1ce4fec27ddd4d202"
-  integrity sha512-7qmhptnR0WMSpxT5rMHG9bW/mYSR1uqaPFj2MHvT+y/aOUu6msJijpKt5SkTDKySwg65OWG2JwTMBlgcbwMHrQ==
+peek-readable@^5.0.0-alpha.4:
+  version "5.0.0-alpha.4"
+  resolved "https://registry.yarnpkg.com/peek-readable/-/peek-readable-5.0.0-alpha.4.tgz#bb609b7e062288ca84970cd2c39f7783173d244b"
+  integrity sha512-oQrEBW4g7Dsh4z9cQRJEpx56kiQLgNQr6gQni3GxzNYst4o64cL4RhjSLEmyvojA3qxfA5RUod2DFPAaZ+maPw==
 
 performance-now@^2.1.0:
   version "2.1.0"
@@ -7947,6 +8200,11 @@ pgpass@1.x:
   dependencies:
     split2 "^3.1.1"
 
+picocolors@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
+  integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
+
 picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3:
   version "2.3.0"
   resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972"
@@ -7983,13 +8241,6 @@ pkg-dir@^4.1.0, pkg-dir@^4.2.0:
   dependencies:
     find-up "^4.0.0"
 
-pkg-up@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f"
-  integrity sha1-yBmscoBZpGHKscOImivjxJoATX8=
-  dependencies:
-    find-up "^2.1.0"
-
 pkginfo@^0.2.3:
   version "0.2.3"
   resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.2.3.tgz#7239c42a5ef6c30b8f328439d9b9ff71042490f8"
@@ -8025,20 +8276,20 @@ postcss-calc@^8.0.0:
     postcss-selector-parser "^6.0.2"
     postcss-value-parser "^4.0.2"
 
-postcss-colormin@^5.2.0:
-  version "5.2.0"
-  resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.2.0.tgz#2b620b88c0ff19683f3349f4cf9e24ebdafb2c88"
-  integrity sha512-+HC6GfWU3upe5/mqmxuqYZ9B2Wl4lcoUUNkoaX59nEWV4EtADCMiBqui111Bu8R8IvaZTmqmxrqOAqjbHIwXPw==
+postcss-colormin@^5.2.1:
+  version "5.2.1"
+  resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.2.1.tgz#6e444a806fd3c578827dbad022762df19334414d"
+  integrity sha512-VVwMrEYLcHYePUYV99Ymuoi7WhKrMGy/V9/kTS0DkCoJYmmjdOMneyhzYUxcNgteKDVbrewOkSM7Wje/MFwxzA==
   dependencies:
     browserslist "^4.16.6"
     caniuse-api "^3.0.0"
-    colord "^2.0.1"
+    colord "^2.9.1"
     postcss-value-parser "^4.1.0"
 
-postcss-convert-values@^5.0.1:
-  version "5.0.1"
-  resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.0.1.tgz#4ec19d6016534e30e3102fdf414e753398645232"
-  integrity sha512-C3zR1Do2BkKkCgC0g3sF8TS0koF2G+mN8xxayZx3f10cIRmTaAnpgpRQZjNekTZxM2ciSPoh2IWJm0VZx8NoQg==
+postcss-convert-values@^5.0.2:
+  version "5.0.2"
+  resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.0.2.tgz#879b849dc3677c7d6bc94b6a2c1a3f0808798059"
+  integrity sha512-KQ04E2yadmfa1LqXm7UIDwW1ftxU/QWZmz6NKnHnUvJ3LEYbbcX6i329f/ig+WnEByHegulocXrECaZGLpL8Zg==
   dependencies:
     postcss-value-parser "^4.1.0"
 
@@ -8062,25 +8313,23 @@ postcss-discard-overridden@^5.0.1:
   resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.0.1.tgz#454b41f707300b98109a75005ca4ab0ff2743ac6"
   integrity sha512-Y28H7y93L2BpJhrdUR2SR2fnSsT+3TVx1NmVQLbcnZWwIUpJ7mfcTC6Za9M2PG6w8j7UQRfzxqn8jU2VwFxo3Q==
 
-postcss-merge-longhand@^5.0.2:
-  version "5.0.2"
-  resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.0.2.tgz#277ada51d9a7958e8ef8cf263103c9384b322a41"
-  integrity sha512-BMlg9AXSI5G9TBT0Lo/H3PfUy63P84rVz3BjCFE9e9Y9RXQZD3+h3YO1kgTNsNJy7bBc1YQp8DmSnwLIW5VPcw==
+postcss-merge-longhand@^5.0.4:
+  version "5.0.4"
+  resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.0.4.tgz#41f4f3270282ea1a145ece078b7679f0cef21c32"
+  integrity sha512-2lZrOVD+d81aoYkZDpWu6+3dTAAGkCKbV5DoRhnIR7KOULVrI/R7bcMjhrH9KTRy6iiHKqmtG+n/MMj1WmqHFw==
   dependencies:
-    css-color-names "^1.0.1"
     postcss-value-parser "^4.1.0"
     stylehacks "^5.0.1"
 
-postcss-merge-rules@^5.0.2:
-  version "5.0.2"
-  resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.0.2.tgz#d6e4d65018badbdb7dcc789c4f39b941305d410a"
-  integrity sha512-5K+Md7S3GwBewfB4rjDeol6V/RZ8S+v4B66Zk2gChRqLTCC8yjnHQ601omj9TKftS19OPGqZ/XzoqpzNQQLwbg==
+postcss-merge-rules@^5.0.3:
+  version "5.0.3"
+  resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.0.3.tgz#b5cae31f53129812a77e3eb1eeee448f8cf1a1db"
+  integrity sha512-cEKTMEbWazVa5NXd8deLdCnXl+6cYG7m2am+1HzqH0EnTdy8fRysatkaXb2dEnR+fdaDxTvuZ5zoBdv6efF6hg==
   dependencies:
     browserslist "^4.16.6"
     caniuse-api "^3.0.0"
     cssnano-utils "^2.0.1"
     postcss-selector-parser "^6.0.5"
-    vendors "^1.0.3"
 
 postcss-minify-font-values@^5.0.1:
   version "5.0.1"
@@ -8089,25 +8338,24 @@ postcss-minify-font-values@^5.0.1:
   dependencies:
     postcss-value-parser "^4.1.0"
 
-postcss-minify-gradients@^5.0.2:
-  version "5.0.2"
-  resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.0.2.tgz#7c175c108f06a5629925d698b3c4cf7bd3864ee5"
-  integrity sha512-7Do9JP+wqSD6Prittitt2zDLrfzP9pqKs2EcLX7HJYxsxCOwrrcLt4x/ctQTsiOw+/8HYotAoqNkrzItL19SdQ==
+postcss-minify-gradients@^5.0.3:
+  version "5.0.3"
+  resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.0.3.tgz#f970a11cc71e08e9095e78ec3a6b34b91c19550e"
+  integrity sha512-Z91Ol22nB6XJW+5oe31+YxRsYooxOdFKcbOqY/V8Fxse1Y3vqlNRpi1cxCqoACZTQEhl+xvt4hsbWiV5R+XI9Q==
   dependencies:
-    colord "^2.6"
+    colord "^2.9.1"
     cssnano-utils "^2.0.1"
     postcss-value-parser "^4.1.0"
 
-postcss-minify-params@^5.0.1:
-  version "5.0.1"
-  resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.0.1.tgz#371153ba164b9d8562842fdcd929c98abd9e5b6c"
-  integrity sha512-4RUC4k2A/Q9mGco1Z8ODc7h+A0z7L7X2ypO1B6V8057eVK6mZ6xwz6QN64nHuHLbqbclkX1wyzRnIrdZehTEHw==
+postcss-minify-params@^5.0.2:
+  version "5.0.2"
+  resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.0.2.tgz#1b644da903473fbbb18fbe07b8e239883684b85c"
+  integrity sha512-qJAPuBzxO1yhLad7h2Dzk/F7n1vPyfHfCCh5grjGfjhi1ttCnq4ZXGIW77GSrEbh9Hus9Lc/e/+tB4vh3/GpDg==
   dependencies:
     alphanum-sort "^1.0.2"
-    browserslist "^4.16.0"
+    browserslist "^4.16.6"
     cssnano-utils "^2.0.1"
     postcss-value-parser "^4.1.0"
-    uniqs "^2.0.0"
 
 postcss-minify-selectors@^5.1.0:
   version "5.1.0"
@@ -8196,10 +8444,10 @@ postcss-normalize-unicode@^5.0.1:
     browserslist "^4.16.0"
     postcss-value-parser "^4.1.0"
 
-postcss-normalize-url@^5.0.2:
-  version "5.0.2"
-  resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.0.2.tgz#ddcdfb7cede1270740cf3e4dfc6008bd96abc763"
-  integrity sha512-k4jLTPUxREQ5bpajFQZpx8bCF2UrlqOTzP9kEqcEnOfwsRshWs2+oAFIHfDQB8GO2PaUaSE0NlTAYtbluZTlHQ==
+postcss-normalize-url@^5.0.3:
+  version "5.0.3"
+  resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.0.3.tgz#42eca6ede57fe69075fab0f88ac8e48916ef931c"
+  integrity sha512-qWiUMbvkRx3kc1Dp5opzUwc7MBWZcSDK2yofCmdvFBCpx+zFPkxBC1FASQ59Pt+flYfj/nTZSkmF56+XG5elSg==
   dependencies:
     is-absolute-url "^3.0.3"
     normalize-url "^6.0.1"
@@ -8220,12 +8468,12 @@ postcss-ordered-values@^5.0.2:
     cssnano-utils "^2.0.1"
     postcss-value-parser "^4.1.0"
 
-postcss-reduce-initial@^5.0.1:
-  version "5.0.1"
-  resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.0.1.tgz#9d6369865b0f6f6f6b165a0ef5dc1a4856c7e946"
-  integrity sha512-zlCZPKLLTMAqA3ZWH57HlbCjkD55LX9dsRyxlls+wfuRfqCi5mSlZVan0heX5cHr154Dq9AfbH70LyhrSAezJw==
+postcss-reduce-initial@^5.0.2:
+  version "5.0.2"
+  resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.0.2.tgz#fa424ce8aa88a89bc0b6d0f94871b24abe94c048"
+  integrity sha512-v/kbAAQ+S1V5v9TJvbGkV98V2ERPdU6XvMcKMjqAlYiJ2NtsHGlKYLPjWWcXlaTKNxooId7BGxeraK8qXvzKtw==
   dependencies:
-    browserslist "^4.16.0"
+    browserslist "^4.16.6"
     caniuse-api "^3.0.0"
 
 postcss-reduce-transforms@^5.0.1:
@@ -8244,36 +8492,35 @@ postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector
     cssesc "^3.0.0"
     util-deprecate "^1.0.2"
 
-postcss-svgo@^5.0.2:
-  version "5.0.2"
-  resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.0.2.tgz#bc73c4ea4c5a80fbd4b45e29042c34ceffb9257f"
-  integrity sha512-YzQuFLZu3U3aheizD+B1joQ94vzPfE6BNUcSYuceNxlVnKKsOtdo6hL9/zyC168Q8EwfLSgaDSalsUGa9f2C0A==
+postcss-svgo@^5.0.3:
+  version "5.0.3"
+  resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.0.3.tgz#d945185756e5dfaae07f9edb0d3cae7ff79f9b30"
+  integrity sha512-41XZUA1wNDAZrQ3XgWREL/M2zSw8LJPvb5ZWivljBsUQAGoEKMYm6okHsTjJxKYI4M75RQEH4KYlEM52VwdXVA==
   dependencies:
     postcss-value-parser "^4.1.0"
-    svgo "^2.3.0"
+    svgo "^2.7.0"
 
-postcss-unique-selectors@^5.0.1:
-  version "5.0.1"
-  resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.0.1.tgz#3be5c1d7363352eff838bd62b0b07a0abad43bfc"
-  integrity sha512-gwi1NhHV4FMmPn+qwBNuot1sG1t2OmacLQ/AX29lzyggnjd+MnVD5uqQmpXO3J17KGL2WAxQruj1qTd3H0gG/w==
+postcss-unique-selectors@^5.0.2:
+  version "5.0.2"
+  resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.0.2.tgz#5d6893daf534ae52626708e0d62250890108c0c1"
+  integrity sha512-w3zBVlrtZm7loQWRPVC0yjUwwpty7OM6DnEHkxcSQXO1bMS3RJ+JUS5LFMSDZHJcvGsRwhZinCWVqn8Kej4EDA==
   dependencies:
     alphanum-sort "^1.0.2"
     postcss-selector-parser "^6.0.5"
-    uniqs "^2.0.0"
 
 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==
+  version "4.2.0"
+  resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
+  integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
 
 postcss@^8.2.1, postcss@^8.2.15:
-  version "8.3.6"
-  resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.6.tgz#2730dd76a97969f37f53b9a6096197be311cc4ea"
-  integrity sha512-wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A==
+  version "8.4.4"
+  resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.4.tgz#d53d4ec6a75fd62557a66bb41978bf47ff0c2869"
+  integrity sha512-joU6fBsN6EIer28Lj6GDFoC/5yOZzLCfn0zHAn/MYXI7aPt4m4hK5KC5ovEZXy+lnCjmYIbQWngvju2ddyEr8Q==
   dependencies:
-    colorette "^1.2.2"
-    nanoid "^3.1.23"
-    source-map-js "^0.6.2"
+    nanoid "^3.1.30"
+    picocolors "^1.0.0"
+    source-map-js "^1.0.1"
 
 postgres-array@~2.0.0:
   version "2.0.0"
@@ -8325,10 +8572,10 @@ printj@~1.1.0:
   resolved "https://registry.yarnpkg.com/printj/-/printj-1.1.2.tgz#d90deb2975a8b9f600fb3a1c94e3f4c53c78a222"
   integrity sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==
 
-prismjs@1.24.1:
-  version "1.24.1"
-  resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.24.1.tgz#c4d7895c4d6500289482fa8936d9cdd192684036"
-  integrity sha512-mNPsedLuk90RVJioIky8ANZEwYm5w9LcvCXrxHlwf4fNVSn8jEipMybMkWUyyF0JhnC+C4VcOVSBuHRKs1L5Ow==
+prismjs@1.25.0:
+  version "1.25.0"
+  resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.25.0.tgz#6f822df1bdad965734b310b315a23315cf999756"
+  integrity sha512-WCjJHl1KEWbnkQom1+SzftbtXMKQoezOCYs5rECqMN+jP+apI7ftoflyqigqzopSO3hMhTEb0mFClA8lkolgEg==
 
 private@^0.1.6, private@^0.1.8:
   version "0.1.8"
@@ -8355,10 +8602,10 @@ progress@^2.0.0:
   resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
   integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
 
-prom-client@^13.1.0:
-  version "13.2.0"
-  resolved "https://registry.yarnpkg.com/prom-client/-/prom-client-13.2.0.tgz#99d13357912dd400f8911b77df19f7b328a93e92"
-  integrity sha512-wGr5mlNNdRNzEhRYXgboUU2LxHWIojxscJKmtG3R8f4/KiWqyYgXTLHs0+Ted7tG3zFT7pgHJbtomzZ1L0ARaQ==
+prom-client@^14.0.0:
+  version "14.0.1"
+  resolved "https://registry.yarnpkg.com/prom-client/-/prom-client-14.0.1.tgz#bdd9583e02ec95429677c0e013712d42ef1f86a8"
+  integrity sha512-HxTArb6fkOntQHoRGvv4qd/BkorjliiuO2uSWC2KC17MUTKYttWdDoXX/vxOhQdkoECEM9BBH0pj2l8G8kev6w==
   dependencies:
     tdigest "^0.1.1"
 
@@ -8379,11 +8626,6 @@ promise-inflight@^1.0.1:
   resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
   integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM=
 
-property-information@^6.0.0:
-  version "6.0.1"
-  resolved "https://registry.yarnpkg.com/property-information/-/property-information-6.0.1.tgz#7c668d9f2b9cb63bc3e105d8b8dfee7221a17800"
-  integrity sha512-F4WUUAF7fMeF4/JUFHNBWDaKDXi2jbvqBW/y6o5wsf3j19wTZ7S60TmtB5HoBhtgw7NKQRMWuz5vk2PR0CygUg==
-
 proxy-addr@~2.0.5:
   version "2.0.7"
   resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025"
@@ -8474,6 +8716,11 @@ qs@6.7.0:
   resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"
   integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==
 
+qs@6.9.3:
+  version "6.9.3"
+  resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.3.tgz#bfadcd296c2d549f1dffa560619132c977f5008e"
+  integrity sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw==
+
 qs@^6.5.2:
   version "6.10.1"
   resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.1.tgz#4931482fa8d647a5aab799c5271d2133b981fb6a"
@@ -8567,23 +8814,6 @@ rc@^1.2.7:
     minimist "^1.2.0"
     strip-json-comments "~2.0.1"
 
-read-pkg-up@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07"
-  integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=
-  dependencies:
-    find-up "^2.0.0"
-    read-pkg "^3.0.0"
-
-read-pkg@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389"
-  integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=
-  dependencies:
-    load-json-file "^4.0.0"
-    normalize-package-data "^2.3.2"
-    path-type "^3.0.0"
-
 "readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@^2.3.7, readable-stream@~2.3.6:
   version "2.3.7"
   resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
@@ -8628,7 +8858,7 @@ readable-stream@~2.0.0:
     string_decoder "~0.10.x"
     util-deprecate "~1.0.1"
 
-readable-web-to-node-stream@^3.0.0:
+readable-web-to-node-stream@^3.0.2:
   version "3.0.2"
   resolved "https://registry.yarnpkg.com/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz#5d52bb5df7b54861fd48d015e93a2cb87b3ee0bb"
   integrity sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==
@@ -8722,7 +8952,7 @@ regexp.prototype.flags@^1.3.0:
     call-bind "^1.0.2"
     define-properties "^1.1.3"
 
-regexpp@^3.0.0, regexpp@^3.1.0:
+regexpp@^3.0.0, regexpp@^3.2.0:
   version "3.2.0"
   resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2"
   integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==
@@ -8748,52 +8978,23 @@ regjsparser@^0.1.4:
   dependencies:
     jsesc "~0.5.0"
 
-rehype-parse@^8.0.0:
-  version "8.0.3"
-  resolved "https://registry.yarnpkg.com/rehype-parse/-/rehype-parse-8.0.3.tgz#a1947132a08a930d0c2b6fd2b3dbcc137457c07a"
-  integrity sha512-RGw0CVt+0S6KdvpE8bbP2Db9WXclQcIX7A0ufM3QFqAhTo/ddJMQrrI2j3cijlRPZlGK8R3pRgC8U5HyV76IDw==
-  dependencies:
-    "@types/hast" "^2.0.0"
-    hast-util-from-parse5 "^7.0.0"
-    parse5 "^6.0.0"
-    unified "^10.0.0"
-
-rehype-stringify@^9.0.0:
-  version "9.0.2"
-  resolved "https://registry.yarnpkg.com/rehype-stringify/-/rehype-stringify-9.0.2.tgz#2d95e06e246abbee504cf2f54c8d12f27d7bfd8e"
-  integrity sha512-BuVA6lAEYtOpXO2xuHLohAzz8UNoQAxAqYRqh4QEEtU39Co+P1JBZhw6wXA9hMWp+JLcmrxWH8+UKcNSr443Fw==
-  dependencies:
-    "@types/hast" "^2.0.0"
-    hast-util-to-html "^8.0.0"
-    unified "^10.0.0"
-
-rehype@^12.0.0:
-  version "12.0.0"
-  resolved "https://registry.yarnpkg.com/rehype/-/rehype-12.0.0.tgz#d5e80a206da2479b3564722bc2ba882e0f4240ec"
-  integrity sha512-gZcttmf9R5IYHb8AlI1rlmWqXS1yX0rSB/S5ZGJs8atfYZy2DobvH3Ic/gSzB+HL/+oOHPtBguw1TprfhxXBgQ==
-  dependencies:
-    "@types/hast" "^2.0.0"
-    rehype-parse "^8.0.0"
-    rehype-stringify "^9.0.0"
-    unified "^10.0.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=
 
-remark-cli@10.0.0:
-  version "10.0.0"
-  resolved "https://registry.yarnpkg.com/remark-cli/-/remark-cli-10.0.0.tgz#3b0e20f2ad3909f35c7a6fb3f721c82f6ff5beac"
-  integrity sha512-Yc5kLsJ5vgiQJl6xMLLJHqPac6OSAC5DOqKQrtmzJxSdJby2Jgr+OpIAkWQYwvbNHEspNagyoQnuwK2UCWg73g==
+remark-cli@10.0.1:
+  version "10.0.1"
+  resolved "https://registry.yarnpkg.com/remark-cli/-/remark-cli-10.0.1.tgz#0a38166b8bb1a1720f5ed8a324715563f63dbcba"
+  integrity sha512-+eln31zLE69JwBMoa8nd2sPC0DFZyiWgBrshL8aKb3L2XXTRMuEKWE/IAtNPYEtcktceAQw+OpmqVy8pAmGOwQ==
   dependencies:
     remark "^14.0.0"
     unified-args "^9.0.0"
 
 remark-lint-blockquote-indentation@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-blockquote-indentation/-/remark-lint-blockquote-indentation-3.0.1.tgz#74591e6029c4c8c92bf0c1665e001b29a71522bd"
-  integrity sha512-CfjXeaomk3bxt1Y0Z4T/cKVoE+8lm5jw5C+jz8EieWNIziGNUlDxIAbMk1F1sO8EXc4LjkbTSq4zz8h1vOHkew==
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-blockquote-indentation/-/remark-lint-blockquote-indentation-3.1.0.tgz#3b841f7c4a9c5c2977905586bb6c4f5643168aef"
+  integrity sha512-BX9XhW7yjnEp7kEMasBIQnIGOeQJYLrrQSMFoBNURLjPMBslSUrABFXUZI6hwFo5fd0dF9Wv1xt9zvSbrU9B7g==
   dependencies:
     "@types/mdast" "^3.0.0"
     pluralize "^8.0.0"
@@ -8804,9 +9005,9 @@ remark-lint-blockquote-indentation@^3.0.0:
     unist-util-visit "^4.0.0"
 
 remark-lint-code-block-style@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-code-block-style/-/remark-lint-code-block-style-3.0.1.tgz#be4434e3e8007bd3324227da876d3c59e2e960d6"
-  integrity sha512-B6338x1UggrAMe4gdmk1No2L/OkK1d1uCelekj6cnl+Pi5/HLlSw3lXIaOTRNIXOccT1zMmNApA4sDZ5qsQWtw==
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-code-block-style/-/remark-lint-code-block-style-3.1.0.tgz#5a2d122d01f9175e762f81a144fc18e1a91a104c"
+  integrity sha512-Hv4YQ8ueLGpjItla4CkcOkcfGj+nlquqylDgCm1/xKnW+Ke2a4qVTMVJrP9Krp4FWmXgktJLDHjhRH+pzhDXLg==
   dependencies:
     "@types/mdast" "^3.0.0"
     unified "^10.0.0"
@@ -8816,9 +9017,9 @@ remark-lint-code-block-style@^3.0.0:
     unist-util-visit "^4.0.0"
 
 remark-lint-definition-case@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-definition-case/-/remark-lint-definition-case-3.0.1.tgz#15b2260ed0281398944c09f460ec48cb31a12fdc"
-  integrity sha512-MsMpHnlb82nBP8yv16hECd2Laq8gw0cMAgxFT72cIYgdNa3B277o20XgtmkKk1i6BxpbJ/1zI9MoLXV60dQ3wQ==
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-definition-case/-/remark-lint-definition-case-3.1.0.tgz#631f8ee1bb51454ac02cacb3d470c17d18132f71"
+  integrity sha512-Bt/DpiIA8NARQYj9Cc0Y55dBK7J6cHOqs1k2xwGHBQefTz7IJ63oP2uDh2cAPb8KEkjIvB9jWYl5VfI7ufQ8iQ==
   dependencies:
     "@types/mdast" "^3.0.0"
     unified "^10.0.0"
@@ -8827,9 +9028,9 @@ remark-lint-definition-case@^3.0.0:
     unist-util-visit "^4.0.0"
 
 remark-lint-definition-spacing@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-definition-spacing/-/remark-lint-definition-spacing-3.0.1.tgz#2599dc8cef6eb555b116a9634a226d812795fd87"
-  integrity sha512-jtCUaZ+6KP4nNutBoiWoqBfa2sMsD4uvvFbuU5MOlzI0wlMmaeAq1pxWuNtkK+w8AEk/8CzfCUrLct5w65KSLQ==
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-definition-spacing/-/remark-lint-definition-spacing-3.1.0.tgz#81ea016961277f99120604fefe320ed9a3ae090a"
+  integrity sha512-cJlT3+tjTTA3mv3k2ogdOELSdbkpGKDNZ1qwba0ReSCdNCVbxcejZ/rrU96n/guv34XgqFyDrzoc7kcxU8oyEg==
   dependencies:
     "@types/mdast" "^3.0.0"
     unified "^10.0.0"
@@ -8838,9 +9039,9 @@ remark-lint-definition-spacing@^3.0.0:
     unist-util-visit "^4.0.0"
 
 remark-lint-emphasis-marker@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-emphasis-marker/-/remark-lint-emphasis-marker-3.0.1.tgz#612d0126d99649484ad9a42ad854f3110ddc7536"
-  integrity sha512-5uwlHk4oDWDZIHSLkUoYBSrzzkpywy4J2kAy+CR5LW3HaV6YCFfm2/hAXiPIGCABH3KT35OoZZRoA8t4PJ51xw==
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-emphasis-marker/-/remark-lint-emphasis-marker-3.1.0.tgz#1394bd779a0090fc0f76a7ff70697d45cde43565"
+  integrity sha512-sIz5bVe+CpcM5yK//hMFHdGQ8laTfIqjOWJCR4CBizY3iNWIZG7qw5A7pXkOr4DfP8U1inxAWrA+Z+aQ80IscA==
   dependencies:
     "@types/mdast" "^3.0.0"
     unified "^10.0.0"
@@ -8849,9 +9050,9 @@ remark-lint-emphasis-marker@^3.0.0:
     unist-util-visit "^4.0.0"
 
 remark-lint-fenced-code-flag@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-fenced-code-flag/-/remark-lint-fenced-code-flag-3.0.1.tgz#5282ece321f9e3e86dd7e1b30dbd50f0cdbb40e0"
-  integrity sha512-HsEhvalGxCauZO6OAnaVzIBycfaHLuyZxy1KlniWXQJKZ6EjRAsWwkZHYx9qfPl/ZW7zDG+xAoWTqdHjZW/BTg==
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-fenced-code-flag/-/remark-lint-fenced-code-flag-3.1.0.tgz#bc445445e08c66a063551fba940cff9de4d03b20"
+  integrity sha512-s96DWERWUeDi3kcDbW6TQo4vRUsGJUNhT1XEsmUzYlwJJ+2uGit9O5dAxvEnwF3gZxp/09hPsQ+QSxilC1sxLg==
   dependencies:
     "@types/mdast" "^3.0.0"
     unified "^10.0.0"
@@ -8861,9 +9062,9 @@ remark-lint-fenced-code-flag@^3.0.0:
     unist-util-visit "^4.0.0"
 
 remark-lint-fenced-code-marker@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-fenced-code-marker/-/remark-lint-fenced-code-marker-3.0.1.tgz#3b09baa8305f86f27c81e1f4eaffd4ac4e51e7b0"
-  integrity sha512-vFRjlzyxtG3zdvmlTn6cV1YiZAivQwOzYRNnH5KavC39EZHDxqjQl84QTXshgfCzFupvYCi6ykATIa7obgx9jg==
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-fenced-code-marker/-/remark-lint-fenced-code-marker-3.1.0.tgz#42abd3871747a23bbf850624fabbf246e072d954"
+  integrity sha512-klvbiQBINePA51Icprq7biFCyZzbtsASwOa6WCzW/KpAFz2V9a57PTuZkO9MtdDhW0vLoHgsQ4b0P1MD7JHMEw==
   dependencies:
     "@types/mdast" "^3.0.0"
     unified "^10.0.0"
@@ -8872,18 +9073,18 @@ remark-lint-fenced-code-marker@^3.0.0:
     unist-util-visit "^4.0.0"
 
 remark-lint-file-extension@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-file-extension/-/remark-lint-file-extension-2.0.1.tgz#e6777c2a322270066aa3c249d2836d326ba3f91d"
-  integrity sha512-A2N6XoLPbYyRhgXyTI7WlW9Nb9QvXQNXG514hjHdNNd0cL+5P4JU6vivgZiYfViCzOLgsys6hwhXBSC9ZQ45tw==
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-file-extension/-/remark-lint-file-extension-2.1.0.tgz#3c3362c526f26ea7695ba4f512a2bd02b56fa815"
+  integrity sha512-3T2n5/FsQ2CcDDubO5F8h7a/GyzTCy+R9XF8L9L9dVuZoxl4AWr1J6AmxE02bTy4g/TMH90juLELT08WGR6D9Q==
   dependencies:
     "@types/mdast" "^3.0.0"
     unified "^10.0.0"
     unified-lint-rule "^2.0.0"
 
 remark-lint-final-definition@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-final-definition/-/remark-lint-final-definition-3.0.1.tgz#9439d9531369b6a8bbbb25e2d550d5fe19a9202b"
-  integrity sha512-bzha13GTKFnQ0h4ZvaHadK6HxM2eRJj/yj59aXyvJkHFNx7i0sQn1884t3yYM4ppdDmO+cCMMgsVo8DxE8ifFA==
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-final-definition/-/remark-lint-final-definition-3.1.0.tgz#ca05814df2ffa7066749e66a40beba51d4ca4b60"
+  integrity sha512-XUbCNX7EFc/f8PvdQeXl2d5eu2Nksb2dCxIri+QvL/ykQ0MluXTNUfVsasDfNp9OYFBbTuBf27WiffOTOwOHRw==
   dependencies:
     "@types/mdast" "^3.0.0"
     unified "^10.0.0"
@@ -8893,9 +9094,9 @@ remark-lint-final-definition@^3.0.0:
     unist-util-visit "^4.0.0"
 
 remark-lint-hard-break-spaces@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-hard-break-spaces/-/remark-lint-hard-break-spaces-3.0.1.tgz#aa5a968a6ecb609fddc0b3c73e578f4eb3fdf75a"
-  integrity sha512-CPjbfc9DcV4Qy3d8jyhh/QXsLD5uRtweb0d04p2MyzMDrqwXAq5X4MW3rId3JbVVl7o1AKXq1FdvqIMrh9Rpuw==
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-hard-break-spaces/-/remark-lint-hard-break-spaces-3.1.0.tgz#4a1b304ea7d47869fb7f8a49332f5ecb28e354b2"
+  integrity sha512-0nUJpsH0ibYtsxv3QS29C3axzyVZBz6RD28XWmelcuCfApWluDlW4pM8r0qa1lE1UrLVd3MocKpa4i1AKbkcsg==
   dependencies:
     "@types/mdast" "^3.0.0"
     unified "^10.0.0"
@@ -8905,9 +9106,9 @@ remark-lint-hard-break-spaces@^3.0.0:
     unist-util-visit "^4.0.0"
 
 remark-lint-heading-increment@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-heading-increment/-/remark-lint-heading-increment-3.0.1.tgz#12d264ea48b6db979433bf22b4145d116789361d"
-  integrity sha512-GDriIGIP+OaR+yZwTd+lKZhNBIdjqMsd+ByV7V8ekKJbbOh8/pXSwKr5Pv4UdvY+ISef5IrD/RnRMVuiorRfZA==
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-heading-increment/-/remark-lint-heading-increment-3.1.0.tgz#b7fc712b15194b53d790ddca1de04fe65825de2e"
+  integrity sha512-SbJpzH0n35KAQo9v8ticcBZIeGX4YUXuaAy8fnYjwHU5niIgcg7fXLTSJ3Eub1wsxotUB4kfrV1RaNJVVeJnIw==
   dependencies:
     "@types/mdast" "^3.0.0"
     unified "^10.0.0"
@@ -8916,9 +9117,9 @@ remark-lint-heading-increment@^3.0.0:
     unist-util-visit "^4.0.0"
 
 remark-lint-heading-style@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-heading-style/-/remark-lint-heading-style-3.0.1.tgz#8727db87ceab53d33c7016750acf3358b321d15f"
-  integrity sha512-/9rsTE+coYdUgT/spxg4ioorG2W5XdabLHajKjTOOQ4ME8Wa5fXHMJ3WpK3Vnz8ZKP7WQwTTPsKWIHcy5d6C+w==
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-heading-style/-/remark-lint-heading-style-3.1.0.tgz#28b471a4204f7da4b0697b1b2b2b660e401e99d9"
+  integrity sha512-wQliHPDoK+YwMcuD3kxw6wudlXhYW5OUz0+z5sFIpg06vx7OfJEASo6d6G1zYG+KkEesZx1SP0SoyHV4urKYmg==
   dependencies:
     "@types/mdast" "^3.0.0"
     mdast-util-heading-style "^2.0.0"
@@ -8928,9 +9129,9 @@ remark-lint-heading-style@^3.0.0:
     unist-util-visit "^4.0.0"
 
 remark-lint-link-title-style@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-link-title-style/-/remark-lint-link-title-style-3.0.1.tgz#9fbbc8329cf7c693d307764662cc644415b143fe"
-  integrity sha512-5CgzNZtuI2/5/RdHKo9+Ritab8CUWv4wfBhPWRvTZDRmy+7POnKClZaNoxWVoH0/+/JMmeQpe31dgbT1Wh2uZA==
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-link-title-style/-/remark-lint-link-title-style-3.1.0.tgz#92e0c6959d58bb106e868bc9d747eb1826ec6dcc"
+  integrity sha512-6k4ypxgj0En6iFp9CAhvlslcnBic7+3wfZuSzA5XzJuARok64uBndyMQFP40w+mHEkuVcOxcOh6FnAwXgkU4oQ==
   dependencies:
     "@types/mdast" "^3.0.0"
     unified "^10.0.0"
@@ -8940,9 +9141,9 @@ remark-lint-link-title-style@^3.0.0:
     vfile-location "^4.0.0"
 
 remark-lint-list-item-content-indent@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-list-item-content-indent/-/remark-lint-list-item-content-indent-3.0.1.tgz#1357e559e69163386f9666b20efd2951e6222416"
-  integrity sha512-bRn7V/T1J9d/BaRNTfu695xO48n4Ul8udEzMrKWxfDfCgOLfsVtj3NQD0iGFpvJ9R6zB7GGPka+SEQlIxpT9FQ==
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-list-item-content-indent/-/remark-lint-list-item-content-indent-3.1.0.tgz#656e9eae86fe87b30d9a0e6e4c7224b5206e536e"
+  integrity sha512-B9GhtXKkRd9iuhWu6x28Ugydwvn9HfSv6uz9F8nyo9LO+FnzzWnwEc5bQ7asGOpTZl43i3+d/Q1mADvQtcbwaw==
   dependencies:
     "@types/mdast" "^3.0.0"
     pluralize "^8.0.0"
@@ -8952,9 +9153,9 @@ remark-lint-list-item-content-indent@^3.0.0:
     unist-util-visit "^4.0.0"
 
 remark-lint-list-item-indent@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-list-item-indent/-/remark-lint-list-item-indent-3.0.1.tgz#719ee34dec3f7b34cfd3fd2600806dc561fc748b"
-  integrity sha512-5/H5B2g6TTpJZiwMmBa/Drexwq5Dw50QoypTUgXwFETz91s7zvjy+IGGVoVv0L0LM0rCwblmgtLomqeWIyo9sA==
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-list-item-indent/-/remark-lint-list-item-indent-3.1.0.tgz#6c26f0d0683d219a80aac939ff32a24bec62e290"
+  integrity sha512-+dTStrxiMz9beP+oe48ItMUHzIpMOivBs1+FU44o1AT6mExDGvDdt4jMtLCpPrZVFbzzIS00kf5FEDLqjNiaHg==
   dependencies:
     "@types/mdast" "^3.0.0"
     pluralize "^8.0.0"
@@ -8965,9 +9166,9 @@ remark-lint-list-item-indent@^3.0.0:
     unist-util-visit "^4.0.0"
 
 remark-lint-list-item-spacing@^4.0.0:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-list-item-spacing/-/remark-lint-list-item-spacing-4.0.1.tgz#41add9734076d23671d043db09e2cd9154cd7dd5"
-  integrity sha512-/Y03NjqtCodzTUwR0eFEn4h/9KJOCSzq981dEEPd56oGcpKgMI5ev4OqI3TyIAtdmJZ9SH87Yv4dXwO6VJ9FoQ==
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-list-item-spacing/-/remark-lint-list-item-spacing-4.1.0.tgz#12a50da4c00001cd309aff39cff59d80746edb3b"
+  integrity sha512-CtLjPvsVS4/dr1zmXEU5BElFNctuBVcrMszjajB4k231EH24JJm4peLs0xQqzDkZFigZbTqXkKMyMEcpPJugMA==
   dependencies:
     "@types/mdast" "^3.0.0"
     unified "^10.0.0"
@@ -8977,9 +9178,9 @@ remark-lint-list-item-spacing@^4.0.0:
     unist-util-visit "^4.0.0"
 
 remark-lint-maximum-heading-length@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-maximum-heading-length/-/remark-lint-maximum-heading-length-3.0.1.tgz#0ab8071f5c2fbdf8a28d23022f74c59bfdfaac75"
-  integrity sha512-VVNi4KyX9BgL5pSC281TLutsY1JUARDvBmhE3afQ0eSfJbrXi4tGOSjlHXpAS4TJXf1WUQQ7ETmmKu795dJdaw==
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-maximum-heading-length/-/remark-lint-maximum-heading-length-3.1.0.tgz#b4e857bc2dee39713de66be73bde837682d10248"
+  integrity sha512-0J5rE1uxQySgFvAGnMnTcNSIuAy0Ncz1q8SBrmNtr7jEBb0ZON3JSRaEp6KC2iklclGw8zpM5zgDGIX/K/AICw==
   dependencies:
     "@types/mdast" "^3.0.0"
     mdast-util-to-string "^3.0.0"
@@ -8989,24 +9190,11 @@ remark-lint-maximum-heading-length@^3.0.0:
     unist-util-visit "^4.0.0"
 
 remark-lint-maximum-line-length@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-maximum-line-length/-/remark-lint-maximum-line-length-3.0.1.tgz#685871fd6581148a32ca38719f9f1eb16d78c30f"
-  integrity sha512-R4hiRRx46xa3NE/AY8IKzPTRVyq1ZWrtWVd2KfWwNHmj7a6ASjb75DPzGyckZ46UAQq9mSBPsgL5Rfhq5XmggA==
-  dependencies:
-    "@types/mdast" "^3.0.0"
-    unified "^10.0.0"
-    unified-lint-rule "^2.0.0"
-    unist-util-generated "^2.0.0"
-    unist-util-position "^4.0.0"
-    unist-util-visit "^4.0.0"
-
-remark-lint-no-auto-link-without-protocol@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-no-auto-link-without-protocol/-/remark-lint-no-auto-link-without-protocol-3.0.1.tgz#8a70874368521bb40689b5421d8279796199c493"
-  integrity sha512-FdbB9O4SegELBreglpOXhMyusKORPS0X7KrBY/V+tDo4+2sJHMEEdiN4RbK2ofWwRP7V+muZ5WrscLliuAExQg==
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/remark-lint-maximum-line-length/-/remark-lint-maximum-line-length-3.1.1.tgz#d71a0d7fed684bd280788c2e7cd68e87782366f7"
+  integrity sha512-8F3JvtxFGkqF/iZzTsJxPd5V6Wxcd+CyMdY2j7dL5TsedUTlxuu7tk9Giq17mM/pFlURBZS+714zCnfiuz0AIw==
   dependencies:
     "@types/mdast" "^3.0.0"
-    mdast-util-to-string "^3.0.0"
     unified "^10.0.0"
     unified-lint-rule "^2.0.0"
     unist-util-generated "^2.0.0"
@@ -9014,9 +9202,9 @@ remark-lint-no-auto-link-without-protocol@^3.0.0:
     unist-util-visit "^4.0.0"
 
 remark-lint-no-blockquote-without-marker@^5.0.0:
-  version "5.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-no-blockquote-without-marker/-/remark-lint-no-blockquote-without-marker-5.0.1.tgz#31cb4264088b6db8c5a2824ab0a16f0ce37d5065"
-  integrity sha512-3aUFCV1BSqO15MuJ6fQept36An/vLo9VgAj1TRWk4Gsnaewbq7haT/m6eiYn5Ia8t2sSBbv4LKz1lwnj5nOVPQ==
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-no-blockquote-without-marker/-/remark-lint-no-blockquote-without-marker-5.1.0.tgz#58bffb7d36d61628e9dc68bb0582897c55f34248"
+  integrity sha512-t9ohZSpHIZdlCp+h2nemFD/sM3Am6ZZEczaBpmTQn+OoKrZjpDRrMTb/60OBGXJXHNazfqRwm96unvM4qDs4+Q==
   dependencies:
     "@types/mdast" "^3.0.0"
     unified "^10.0.0"
@@ -9027,9 +9215,9 @@ remark-lint-no-blockquote-without-marker@^5.0.0:
     vfile-location "^4.0.0"
 
 remark-lint-no-consecutive-blank-lines@^4.0.0:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-no-consecutive-blank-lines/-/remark-lint-no-consecutive-blank-lines-4.0.1.tgz#e9ff3613e25d42bd004e8ab065609a0393f16f2b"
-  integrity sha512-nvwglXFdR8ubTjSduK3cVdgBaKCH/DqV0kVkCKSQmLEl8NyozFH03VB/bhQDCrmSeNt6rYClBF0ppaHT27OmpA==
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/remark-lint-no-consecutive-blank-lines/-/remark-lint-no-consecutive-blank-lines-4.1.1.tgz#cb2340b9a52182abf35762b67337864378879589"
+  integrity sha512-DoHwDW/8wCx6Euiza4gH9QOz4BhxaimLoesbxTfqmYFuri5pEreojwx9WAxmLnMK4iGV2XBZdRhkFKaXQQfgSA==
   dependencies:
     "@types/mdast" "^3.0.0"
     "@types/unist" "^2.0.0"
@@ -9041,9 +9229,9 @@ remark-lint-no-consecutive-blank-lines@^4.0.0:
     unist-util-visit "^4.0.0"
 
 remark-lint-no-duplicate-headings@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-no-duplicate-headings/-/remark-lint-no-duplicate-headings-3.0.1.tgz#9db2ba686606226178d6563a0213e83ac7a22c15"
-  integrity sha512-yUy6LwD58xXJgoEGAhLKeDvfCRTeaLiY8yAsY1khOTPsh9qc2JQFArG2DqmsDttm1rErDnFvggW44tAL6OQAHA==
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-no-duplicate-headings/-/remark-lint-no-duplicate-headings-3.1.0.tgz#00afc164524f1027215873b1dc849d267c26a47e"
+  integrity sha512-09taLO9zzQcg6KhwYer0OQGI1zE8887kSR643PxlI6M96LQg1zKtMZ4L4wc3mYkK9gv3sQag9DS17hspW6Ri/Q==
   dependencies:
     "@types/mdast" "^3.0.0"
     mdast-util-to-string "^3.0.0"
@@ -9055,9 +9243,9 @@ remark-lint-no-duplicate-headings@^3.0.0:
     unist-util-visit "^4.0.0"
 
 remark-lint-no-emphasis-as-heading@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-no-emphasis-as-heading/-/remark-lint-no-emphasis-as-heading-3.0.1.tgz#0290da33cbce79b72ddf28f9878fccad64d3a0f2"
-  integrity sha512-jMsEhsC5s3gUgiNqTAKpQOATHa/6xM64X1YKq3D8RBOSqMHUrTDx2t9COa0MFqYzXmPQ5XfxZIkuW9QVBJPgCg==
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-no-emphasis-as-heading/-/remark-lint-no-emphasis-as-heading-3.1.0.tgz#7e98d601ed78626b4779c154d06814c56b48c825"
+  integrity sha512-pmjitpUxqZOMGQcnq3gzd+dMUQrQ49hwpAykAq+58SgPSvi7suszRhkAiCw36haDpZp5kmFGE5L7hzUK5IA5NQ==
   dependencies:
     "@types/mdast" "^3.0.0"
     unified "^10.0.0"
@@ -9066,54 +9254,54 @@ remark-lint-no-emphasis-as-heading@^3.0.0:
     unist-util-visit "^4.0.0"
 
 remark-lint-no-file-name-articles@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-articles/-/remark-lint-no-file-name-articles-2.0.1.tgz#1265a3dab489f5c07a1c3e8a2167124ef5bd030f"
-  integrity sha512-9kZ/ydzJlntswJjsQEbPPx0tc6uAPuowmG/3aOCSE+6CjJ+bCQZiVLL3VhjktNyzFxDGTDN6LlbVwiyIHEUMwA==
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-articles/-/remark-lint-no-file-name-articles-2.1.0.tgz#4d39b850fbe25b1b1bd6e8310cb5417665c43d9d"
+  integrity sha512-+4gembcykiLnrsTxk4ld2fg3n3TgvHGBO6qMsRmjh5k2m2riwnewM80xfCGXrEVi5cciGIhmv4iU7uicp+WEVQ==
   dependencies:
     "@types/mdast" "^3.0.0"
     unified "^10.0.0"
     unified-lint-rule "^2.0.0"
 
 remark-lint-no-file-name-consecutive-dashes@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-consecutive-dashes/-/remark-lint-no-file-name-consecutive-dashes-2.0.1.tgz#cab34dce03381b15dac50188198c24303bde4e71"
-  integrity sha512-e9ei9KwQSRzUQeYHEhCKUMDeavFOIj46NtuyZxYtrklOcblvaZLAV133UcFHk5CimdUj3dzTtFZebHdpvu5omw==
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-consecutive-dashes/-/remark-lint-no-file-name-consecutive-dashes-2.1.0.tgz#0e83aeb1769b5fb5bd33763b1fe2a440c750da4c"
+  integrity sha512-jnQcsYaV8OkUMmFcXr/RWkJFKw30lqEtYTfmb9n/AUsBFeQt53cYYZjA+6AgvKSUW3be7CY2XptReTuM4jSHpQ==
   dependencies:
     "@types/mdast" "^3.0.0"
     unified "^10.0.0"
     unified-lint-rule "^2.0.0"
 
 remark-lint-no-file-name-irregular-characters@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-irregular-characters/-/remark-lint-no-file-name-irregular-characters-2.0.1.tgz#7188d6bca6618d667237ceb553bf7a19fb421dd1"
-  integrity sha512-TvhfKpsE0UhUr6iIvInR/PC42fpmLGt+uBLtx1HBgRCUqkQUra8Ep2rRMaxvFp2ms1xX/p0pDtSCkXRUeV2Pug==
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-irregular-characters/-/remark-lint-no-file-name-irregular-characters-2.1.0.tgz#1f99a9246bc00ec8f81f67e411a5bd492746f32e"
+  integrity sha512-60mq+QdvXjVCjCzCRYbnaGiuYpj2t+16y79NYpb8jJ6QotUsP4V+Nw4rpvHx6YprnZYng+Rh3CHNmtumeb0jpQ==
   dependencies:
     "@types/mdast" "^3.0.0"
     unified "^10.0.0"
     unified-lint-rule "^2.0.0"
 
 remark-lint-no-file-name-mixed-case@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-mixed-case/-/remark-lint-no-file-name-mixed-case-2.0.1.tgz#2e200fdb19d8b3249ba3cddbddf35c52590b7c1a"
-  integrity sha512-NG86/vR3tWoL6xrllUkvfg0y7k0eiG0N3KZVHEyOl1zGeARWaR+NXj9vHHIEahStnZ3e7bAcmL2tj+K/tGohcg==
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-mixed-case/-/remark-lint-no-file-name-mixed-case-2.1.0.tgz#4b6f53e149019eca18ac572e023ecfbbfc113da6"
+  integrity sha512-+hL7xuKrG2AfI12QhFruO963pstcIiYW8wtZM15/dek3GAttNWx+Zc72QaBYUeJa39k1U+b/Z5IYu6R6CN6FKg==
   dependencies:
     "@types/mdast" "^3.0.0"
     unified "^10.0.0"
     unified-lint-rule "^2.0.0"
 
 remark-lint-no-file-name-outer-dashes@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-outer-dashes/-/remark-lint-no-file-name-outer-dashes-2.0.1.tgz#536344895ab351d8712180dd63ade2f59849fcef"
-  integrity sha512-INp+0gW5T2j6+sHglmDmCLL7/goVKCryXyf+ZApB5oWYBpVr2fLnHEHTUmkbQkksxe7me+VsB+WW/KN1PXGrtw==
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-no-file-name-outer-dashes/-/remark-lint-no-file-name-outer-dashes-2.1.0.tgz#e473e7bb3cad30fdd05a3a7b064554db7b09fd5b"
+  integrity sha512-R0eXcFpsfjXI4djN/AF734kydS+p5frZW6NsUzpEfLt5Eu/MhOuii2LvV/G1ujyclZAELpvZlV+sW4083SHi3g==
   dependencies:
     "@types/mdast" "^3.0.0"
     unified "^10.0.0"
     unified-lint-rule "^2.0.0"
 
 remark-lint-no-heading-punctuation@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-no-heading-punctuation/-/remark-lint-no-heading-punctuation-3.0.1.tgz#e21744d80e7f06cb9c984c0bd4e3f3a284b51afd"
-  integrity sha512-PFXctxVdi1XycSc2yav72l72mK6JVE6O+tzc9cbW84L7ZYR/Bedq+1HWEYup3mGSTpL4lhcYDk6NSL1oshj6xA==
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-no-heading-punctuation/-/remark-lint-no-heading-punctuation-3.1.0.tgz#fc9b5b2b2389196a4c0e4a4d596b603c2e9bc529"
+  integrity sha512-/Roq+pywKTnmio3NWeGeTzDaXs6OU5NJin9B+sHg4M/OBArT9JLi63cGC9ObE75NWvzh/oDWQmeKhQNareE6RA==
   dependencies:
     "@types/mdast" "^3.0.0"
     mdast-util-to-string "^3.0.0"
@@ -9123,9 +9311,9 @@ remark-lint-no-heading-punctuation@^3.0.0:
     unist-util-visit "^4.0.0"
 
 remark-lint-no-inline-padding@^4.0.0:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-no-inline-padding/-/remark-lint-no-inline-padding-4.0.1.tgz#a89d4fd639e888ee97cac811b9c950f1787a08a5"
-  integrity sha512-UcjJ2XTf7kOmQo5mU/5AV+Gth1YYGcp+gYU4gS/CzdOLYstqsS/W+IN6ALJjEbdbtSyfWCElpxI4p/mW16Z90A==
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-no-inline-padding/-/remark-lint-no-inline-padding-4.1.0.tgz#7e1a90c56a594a887dad52b6150459557e842cf3"
+  integrity sha512-0dbIgBUhVIkIn8xji2b/j1tG+ETbzE+ZEYNtCRTsNCjFwvyvgzElWKMLHoLzTpXYAN8I5dQhyFcy8Qa/RXg3AA==
   dependencies:
     "@types/mdast" "^3.0.0"
     mdast-util-to-string "^3.0.0"
@@ -9135,9 +9323,9 @@ remark-lint-no-inline-padding@^4.0.0:
     unist-util-visit "^4.0.0"
 
 remark-lint-no-literal-urls@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-no-literal-urls/-/remark-lint-no-literal-urls-3.0.1.tgz#af87cc111f942a43edf2d2cc27d199b7785be141"
-  integrity sha512-3OAFcaZawfrFgZGrpuZlNPyuvfIURtUzDN7/Bl2X42ivqx4ih1OH9LtiBgz+J0g1DEWnC5ebOmDr7x6XLM76Fw==
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-no-literal-urls/-/remark-lint-no-literal-urls-3.1.0.tgz#678ddc1ad34e8ea7333dce5eb46c3a1e0a9da49f"
+  integrity sha512-FvSE16bvwMLh89kZzvyXnWh8MZ2WU+msSqfbF3pU/0YpnpxfRev9ShFRS1k8wVm5BdzSqhwplv4chLnAWg53yw==
   dependencies:
     "@types/mdast" "^3.0.0"
     mdast-util-to-string "^3.0.0"
@@ -9148,9 +9336,9 @@ remark-lint-no-literal-urls@^3.0.0:
     unist-util-visit "^4.0.0"
 
 remark-lint-no-multiple-toplevel-headings@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-no-multiple-toplevel-headings/-/remark-lint-no-multiple-toplevel-headings-3.0.1.tgz#08e03c3b102748835bc7077fbec9b0543c8feff4"
-  integrity sha512-K62PKOOanFiFM4R0oHlo1PKWJa0dPPasQl28yzk6G2xZzqc5eJm5S3d0grU479jqEUbDQMaDQw282hO6WR/MbA==
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-no-multiple-toplevel-headings/-/remark-lint-no-multiple-toplevel-headings-3.1.0.tgz#7ca46228371f4f88f01bd1dbc490fd4d7cdc977e"
+  integrity sha512-F4z867UaYjWdWFzR4ZpPi+EIzoUcU/QtdEVftdVKNdBEy1pq2A/vdTUa/PGtc+LLeQn04mJ/SGPC2s7eMWAZfg==
   dependencies:
     "@types/mdast" "^3.0.0"
     unified "^10.0.0"
@@ -9161,9 +9349,9 @@ remark-lint-no-multiple-toplevel-headings@^3.0.0:
     unist-util-visit "^4.0.0"
 
 remark-lint-no-shell-dollars@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-no-shell-dollars/-/remark-lint-no-shell-dollars-3.0.1.tgz#e9c092e07be2e308abd49b54c253010efb3e654c"
-  integrity sha512-QvnA8Ltj3FPaAqUu0DebKYv66LFndTk0fXVZ9rQWOjTEVIKImy9Dy59kVqwYMpCwZbJkpigu2bMl/7UG/BA0XA==
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-no-shell-dollars/-/remark-lint-no-shell-dollars-3.1.0.tgz#077928ec9174a6c3b995389bf07e8cf904719e0e"
+  integrity sha512-f4+NPey3yzd9TpDka5Bs3W+MMJBPz6bQ7zK3M9Qc133lqZ81hKMGVRrOBafS1RNqD5htLZbbGyCoJa476QtW1w==
   dependencies:
     "@types/mdast" "^3.0.0"
     unified "^10.0.0"
@@ -9172,9 +9360,9 @@ remark-lint-no-shell-dollars@^3.0.0:
     unist-util-visit "^4.0.0"
 
 remark-lint-no-shortcut-reference-image@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-no-shortcut-reference-image/-/remark-lint-no-shortcut-reference-image-3.0.1.tgz#3cef27ef939debd385d9d3ba21bfb8afd3e011b4"
-  integrity sha512-0o0YO88Atib0eWloy5ZbL2IZ1axMNysbJI5j58sxMjEwLq1JORtGOR9Z6aHsOccS5yseeenw5w3DoMLB9PtJtw==
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-no-shortcut-reference-image/-/remark-lint-no-shortcut-reference-image-3.1.0.tgz#092f612bb446a422a61f2b112a3934bc8acbe362"
+  integrity sha512-uTXysJw749c42QnFt+DfG5NJTjfcQdM5gYGLugb/vgUwN8dzPu6DiGM3ih1Erwha6qEseV00FpFvDexHbQvJNw==
   dependencies:
     "@types/mdast" "^3.0.0"
     unified "^10.0.0"
@@ -9183,9 +9371,9 @@ remark-lint-no-shortcut-reference-image@^3.0.0:
     unist-util-visit "^4.0.0"
 
 remark-lint-no-shortcut-reference-link@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-no-shortcut-reference-link/-/remark-lint-no-shortcut-reference-link-3.0.1.tgz#3104ed6b82c6234eb6187481243f1b3890a1d506"
-  integrity sha512-uXujnVm5LXLtGyJkTIbn/uxDRu507B9vC8TieiX6HX8OjVeDWUjtcVJOaqeyLJGjV0Ri1Y+AegMNWx5eDBHTDQ==
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-no-shortcut-reference-link/-/remark-lint-no-shortcut-reference-link-3.1.0.tgz#50814e6824abdd60b1ec9d9a0248e94a830b8597"
+  integrity sha512-SmM/sICFnlMx4PcuXIMJmyqTyI1+FQMOGh51GmLDWoyjbblP2hXD4UqrYLhAeV0aPQSNKwMXNNW0aysjdoWL0A==
   dependencies:
     "@types/mdast" "^3.0.0"
     unified "^10.0.0"
@@ -9194,9 +9382,9 @@ remark-lint-no-shortcut-reference-link@^3.0.0:
     unist-util-visit "^4.0.0"
 
 remark-lint-no-table-indentation@^4.0.0:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-no-table-indentation/-/remark-lint-no-table-indentation-4.0.1.tgz#13a41252021b245ca60bfbe5a578755421316e65"
-  integrity sha512-GYBX5P1Vj0gO7S7JLU2tpYR5rg9xbeccPQ0ZgHYK4d7T9FjDwfE1hrdvlha3k8s3CFKqQ7MC0OgQw/2IN413MA==
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-no-table-indentation/-/remark-lint-no-table-indentation-4.1.0.tgz#1647e90240a40f45a6d189b530acbb733b73fcb5"
+  integrity sha512-OJg95FHBZKyEUlnmHyMQ2j9qs5dnxk3oX1TQuREpFDgzQMh/Bcyc+CegmsDMDiyNyrs1QgDwubCWmAYWgdy4Gw==
   dependencies:
     "@types/mdast" "^3.0.0"
     unified "^10.0.0"
@@ -9206,9 +9394,9 @@ remark-lint-no-table-indentation@^4.0.0:
     vfile-location "^4.0.0"
 
 remark-lint-ordered-list-marker-style@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-ordered-list-marker-style/-/remark-lint-ordered-list-marker-style-3.0.1.tgz#56f6a94d88dd8c74b8e444cd970bb3be6a575606"
-  integrity sha512-CGXvolLwfZIxG9hm4o7OXQXEEpu3r5oyTpYGteJDtOSrpVrBSqFKNq7lfhKYFQkcg2AMJYrH9XEexrYvAoUQOQ==
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-ordered-list-marker-style/-/remark-lint-ordered-list-marker-style-3.1.0.tgz#e2fa59022e38486d0a678795d75040fad08a5081"
+  integrity sha512-/sYOjCK+FkAhwheIHjL65TxQKJ8infTVsDi5Dbl6XHaXiAzKjvZhwW4uJqgduufozlriI63DF68YMv5y6tyXsw==
   dependencies:
     "@types/mdast" "^3.0.0"
     unified "^10.0.0"
@@ -9218,9 +9406,9 @@ remark-lint-ordered-list-marker-style@^3.0.0:
     unist-util-visit "^4.0.0"
 
 remark-lint-ordered-list-marker-value@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-ordered-list-marker-value/-/remark-lint-ordered-list-marker-value-3.0.1.tgz#1296c0a758df6ea2e918769f013bff10ff5bd0d9"
-  integrity sha512-02tEsP+jKxZr7zhTVTbr6sThraTsUUKCmRdONBBwAFlK3bibZJYGMukjhR7rJtCbO/uHQqGX4VhEWPcOcCoaUg==
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-ordered-list-marker-value/-/remark-lint-ordered-list-marker-value-3.1.0.tgz#f5f76cbd349b912aa5f5ae9d6f0614fdaa0d23df"
+  integrity sha512-39VetXsKJtCHo0FPbUyUCSROt0NoekEVbDll867MDABellenkJmPlvakXuO1qik/+F2waGAWjct91a8a6+eF0Q==
   dependencies:
     "@types/mdast" "^3.0.0"
     unified "^10.0.0"
@@ -9230,9 +9418,9 @@ remark-lint-ordered-list-marker-value@^3.0.0:
     unist-util-visit "^4.0.0"
 
 remark-lint-rule-style@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-rule-style/-/remark-lint-rule-style-3.0.1.tgz#2473b4d8d866e6f27ef968d7071d2ed719ce999c"
-  integrity sha512-j1e60nfZJk0C6mvDZkiFwVu0b58f219ATlMNaZ9h8QdQhdxD/0kUnizJ7xW3wS4sHtCgkKGctAp04Ma0c+Dkhg==
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-rule-style/-/remark-lint-rule-style-3.1.0.tgz#43c97a6f3a55602333514ddc8109195552d59157"
+  integrity sha512-Z2tW9kBNCdD8l+kG7bTKanfciqGGJt8HnBmV9eE3oIqVDzqWJoIQ8kVBDGh6efeOAlWDDDHGIp/jb4i/CJ/kvg==
   dependencies:
     "@types/mdast" "^3.0.0"
     unified "^10.0.0"
@@ -9241,9 +9429,9 @@ remark-lint-rule-style@^3.0.0:
     unist-util-visit "^4.0.0"
 
 remark-lint-strong-marker@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-strong-marker/-/remark-lint-strong-marker-3.0.1.tgz#54119b529d152ea7294ac761e866a3a6244c4405"
-  integrity sha512-J5dJviBd747vXBkFuA2j/Ni7RjTg+Mg2GgXlPHtbgDnal51CdN2WXDmbVG/A98+3P18MlysvQ7KnBrSiiuGBpQ==
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-strong-marker/-/remark-lint-strong-marker-3.1.0.tgz#f6f96900a18d759d18ac8ceb803a88fe99689407"
+  integrity sha512-YkGZ2J1vayVa/uSWUOuqKzB3ot1RgtsAd/Kz7L2ve8lDDIjnxn+bUufaS6cN9K5/ADprryd1hdE29YRVj6Vs3g==
   dependencies:
     "@types/mdast" "^3.0.0"
     unified "^10.0.0"
@@ -9252,9 +9440,9 @@ remark-lint-strong-marker@^3.0.0:
     unist-util-visit "^4.0.0"
 
 remark-lint-table-cell-padding@^4.0.0:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-table-cell-padding/-/remark-lint-table-cell-padding-4.0.1.tgz#0cfc515af12f4c2f123e8b5895a9ae635142f7e3"
-  integrity sha512-NdF0WHFOaMjeumRIrGHXVadwWkgnfJuMb96FGbf1HvSEv9l41PHkS1KTsL6Zoe1Cva57niAuarMv6xzcJqVjrA==
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/remark-lint-table-cell-padding/-/remark-lint-table-cell-padding-4.1.1.tgz#183399fb1756fbe2fbdab1007cb94350c7189fa2"
+  integrity sha512-ttsTa4TCgWOoRUwIukyISlSbn+DnZBb4H8MwJYQVXZEV6kWCVhFMBvnjKaWxVpa3Xtlgpo1Yoi4yAjh0p0knSA==
   dependencies:
     "@types/mdast" "^3.0.0"
     "@types/unist" "^2.0.0"
@@ -9264,9 +9452,9 @@ remark-lint-table-cell-padding@^4.0.0:
     unist-util-visit "^4.0.0"
 
 remark-lint-table-pipe-alignment@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-table-pipe-alignment/-/remark-lint-table-pipe-alignment-3.0.1.tgz#70517c20ca24e4da830f71e09c39aabab1e5382e"
-  integrity sha512-uTp5ntlkTy0xsNfD6udM5zyHvBD9d+X+lpzk9Teog34rB6ETGSBSdtzxT9kxoA3/cEiZs6ojyMGCOy0VDtGv6g==
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-table-pipe-alignment/-/remark-lint-table-pipe-alignment-3.1.0.tgz#7727f42bf5dd7d949e090762009b8f5606b65e89"
+  integrity sha512-7OhagJV1k3m6SYEcYvvPPlkZ0fmIpf0CfdbSvHrw3mZPrWLLkC+Tba2DzioPCPy24cyfvY7NVmIe7TDYfQOdZw==
   dependencies:
     "@types/mdast" "^3.0.0"
     unified "^10.0.0"
@@ -9275,9 +9463,9 @@ remark-lint-table-pipe-alignment@^3.0.0:
     unist-util-visit "^4.0.0"
 
 remark-lint-table-pipes@^4.0.0:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-table-pipes/-/remark-lint-table-pipes-4.0.1.tgz#529d6d5569eed1129b912df3c748005cc2f82046"
-  integrity sha512-om6i8SMSjMsR/mYlx5cMSoxXK+EFI8/n73qCVx/RAhFCIsW4TFR+gYmgFTyLr5Mp4vqjV3uYBIR9Ucv6Johauw==
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-table-pipes/-/remark-lint-table-pipes-4.1.0.tgz#8effe7557bb922b57021196e19631dec2bb289e5"
+  integrity sha512-kI50VXlEW9zUdMh8Y9T7vornqpnMr+Ywy+sUzEuhhmWeFIYcIsBbZTHA1253FgjA/iMkLPzByYWj1xGlUGL1jw==
   dependencies:
     "@types/mdast" "^3.0.0"
     unified "^10.0.0"
@@ -9286,9 +9474,9 @@ remark-lint-table-pipes@^4.0.0:
     unist-util-visit "^4.0.0"
 
 remark-lint-unordered-list-marker-style@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint-unordered-list-marker-style/-/remark-lint-unordered-list-marker-style-3.0.1.tgz#f50b3359444d32363541bd26e30e091eb9b4d866"
-  integrity sha512-DPveL2hhkcY608Bkn/Hx+C7pxviufpYyRiu0CnfFxkbLBlMgVdvVIOGCCOlhbvKuGtozmH/RCRsdIfzjlkXiew==
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/remark-lint-unordered-list-marker-style/-/remark-lint-unordered-list-marker-style-3.1.0.tgz#e5224602fc6ff6d975aa0b945091eb35eca9a660"
+  integrity sha512-oUThfe8/34DpXkGjOghOkSOqk8tGthnDNIMBtNVY+aMIkkuvCSxqFj9D/R37Al7/tqqgZ1D6ezpwxIOsa15JTA==
   dependencies:
     "@types/mdast" "^3.0.0"
     unified "^10.0.0"
@@ -9298,39 +9486,38 @@ remark-lint-unordered-list-marker-style@^3.0.0:
     unist-util-visit "^4.0.0"
 
 remark-lint@^9.0.0:
-  version "9.0.1"
-  resolved "https://registry.yarnpkg.com/remark-lint/-/remark-lint-9.0.1.tgz#85ede987d24b7def9a6cea4a4d40c2035723eaec"
-  integrity sha512-q4VFsA7LEG4REJhR2P4A6CU9b4cCQL53845CX74Z4N/W0EgB9mm/GXpYzjbEqgkMPl5ctP8yp/vBYTNmjfUCtw==
+  version "9.1.0"
+  resolved "https://registry.yarnpkg.com/remark-lint/-/remark-lint-9.1.0.tgz#fa2f7f3462438aa3f057cccd1ef6646abd73419c"
+  integrity sha512-47ZaPj1HSs17nqsu3CPg4nIhaj+XTEXJM9cpFybhyA4lzVRZiRXy43BokbEjBt0f1fhY3coQoOh16jJeGBvrJg==
   dependencies:
     "@types/mdast" "^3.0.0"
     remark-message-control "^7.0.0"
     unified "^10.1.0"
 
 remark-message-control@^7.0.0:
-  version "7.0.0"
-  resolved "https://registry.yarnpkg.com/remark-message-control/-/remark-message-control-7.0.0.tgz#ba83d212fbde3e5e2adabd30697bf80b0b709ef7"
-  integrity sha512-KZySoC97TrMPYfIZ9vJ7wxvQwniy68K6WCY3vmSedDN5YuGfdVOpMj6sjaZQcqbWZV9n7BhrT70E3xaUTtk4hA==
+  version "7.1.1"
+  resolved "https://registry.yarnpkg.com/remark-message-control/-/remark-message-control-7.1.1.tgz#71e9b757b835fad2ac14fafa8b432f51b9b9bf52"
+  integrity sha512-xKRWl1NTBOKed0oEtCd8BUfH5m4s8WXxFFSoo7uUwx6GW/qdCy4zov5LfPyw7emantDmhfWn5PdIZgcbVcWMDQ==
   dependencies:
     "@types/mdast" "^3.0.0"
     mdast-comment-marker "^2.0.0"
-    rehype "^12.0.0"
     unified "^10.0.0"
     unified-message-control "^4.0.0"
     vfile "^5.0.0"
 
 remark-parse@^10.0.0:
-  version "10.0.0"
-  resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-10.0.0.tgz#65e2b2b34d8581d36b97f12a2926bb2126961cb4"
-  integrity sha512-07ei47p2Xl7Bqbn9H2VYQYirnAFJPwdMuypdozWsSbnmrkgA2e2sZLZdnDNrrsxR4onmIzH/J6KXqKxCuqHtPQ==
+  version "10.0.1"
+  resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-10.0.1.tgz#6f60ae53edbf0cf38ea223fe643db64d112e0775"
+  integrity sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==
   dependencies:
     "@types/mdast" "^3.0.0"
     mdast-util-from-markdown "^1.0.0"
     unified "^10.0.0"
 
-remark-preset-lint-markdown-style-guide@5.0.1:
-  version "5.0.1"
-  resolved "https://registry.yarnpkg.com/remark-preset-lint-markdown-style-guide/-/remark-preset-lint-markdown-style-guide-5.0.1.tgz#a53018e4e44f4417b911968ee1ecc49aa3cff6a7"
-  integrity sha512-O/Es5sDhBcfwKu+9aQHs6Wj3NT3tb3bPGbSxw0cBaHdVAhNQV1+1yeQWzpoIk53vN5+7S4SeQwAx/Rsw1Youqw==
+remark-preset-lint-markdown-style-guide@5.1.1:
+  version "5.1.1"
+  resolved "https://registry.yarnpkg.com/remark-preset-lint-markdown-style-guide/-/remark-preset-lint-markdown-style-guide-5.1.1.tgz#7dbc13b208b44360041ba92d9596bce289dd4835"
+  integrity sha512-QZr1Z0Ry83kF/qCa41c8JZlNR3RmI18AbQgK1kRKCdrnd4VSEIoMgeneb3B36qnJ8K5xugpf41ePL8oot6IArw==
   dependencies:
     "@types/mdast" "^3.0.0"
     remark-lint "^9.0.0"
@@ -9352,7 +9539,6 @@ remark-preset-lint-markdown-style-guide@5.0.1:
     remark-lint-list-item-spacing "^4.0.0"
     remark-lint-maximum-heading-length "^3.0.0"
     remark-lint-maximum-line-length "^3.0.0"
-    remark-lint-no-auto-link-without-protocol "^3.0.0"
     remark-lint-no-blockquote-without-marker "^5.0.0"
     remark-lint-no-consecutive-blank-lines "^4.0.0"
     remark-lint-no-duplicate-headings "^3.0.0"
@@ -9381,18 +9567,18 @@ remark-preset-lint-markdown-style-guide@5.0.1:
     unified "^10.0.0"
 
 remark-stringify@^10.0.0:
-  version "10.0.0"
-  resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-10.0.0.tgz#7f23659d92b2d5da489e3c858656d7bbe045f161"
-  integrity sha512-3LAQqJ/qiUxkWc7fUcVuB7RtIT38rvmxfmJG8z1TiE/D8zi3JGQ2tTcTJu9Tptdpb7gFwU0whRi5q1FbFOb9yA==
+  version "10.0.2"
+  resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-10.0.2.tgz#50414a6983f5008eb9e72eed05f980582d1f69d7"
+  integrity sha512-6wV3pvbPvHkbNnWB0wdDvVFHOe1hBRAx1Q/5g/EpH4RppAII6J8Gnwe7VbHuXaoKIF6LAg6ExTel/+kNqSQ7lw==
   dependencies:
     "@types/mdast" "^3.0.0"
     mdast-util-to-markdown "^1.0.0"
     unified "^10.0.0"
 
 remark@^14.0.0:
-  version "14.0.1"
-  resolved "https://registry.yarnpkg.com/remark/-/remark-14.0.1.tgz#a97280d4f2a3010a7d81e6c292a310dcd5554d80"
-  integrity sha512-7zLG3u8EUjOGuaAS9gUNJPD2j+SqDqAFHv2g6WMpE5CU9rZ6e3IKDM12KHZ3x+YNje+NMAuN55yx8S5msGSx7Q==
+  version "14.0.2"
+  resolved "https://registry.yarnpkg.com/remark/-/remark-14.0.2.tgz#4a1833f7441a5c29e44b37bb1843fb820797b40f"
+  integrity sha512-A3ARm2V4BgiRXaUo5K0dRvJ1lbogrbXnhkJRmD0yw092/Yl0kOCZt1k9ZeElEwkZsWGsMumz6qL5MfNJH9nOBA==
   dependencies:
     "@types/mdast" "^3.0.0"
     remark-parse "^10.0.0"
@@ -9463,11 +9649,6 @@ require-directory@^2.1.1:
   resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
   integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
 
-require-from-string@^2.0.2:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"
-  integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
-
 resolve-cwd@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d"
@@ -9490,7 +9671,7 @@ resolve-url@^0.2.1:
   resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
   integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
 
-resolve@^1.10.0, resolve@^1.10.1, resolve@^1.20.0, resolve@^1.9.0:
+resolve@^1.10.1, resolve@^1.20.0, resolve@^1.9.0:
   version "1.20.0"
   resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975"
   integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==
@@ -9542,6 +9723,11 @@ ripemd160@^2.0.0, ripemd160@^2.0.1:
     hash-base "^3.0.0"
     inherits "^2.0.1"
 
+robust-predicates@^3.0.0:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/robust-predicates/-/robust-predicates-3.0.1.tgz#ecde075044f7f30118682bd9fb3f123109577f9a"
+  integrity sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==
+
 run-parallel@^1.1.9:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
@@ -9561,6 +9747,13 @@ rw@1:
   resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4"
   integrity sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q=
 
+sade@^1.7.3:
+  version "1.7.4"
+  resolved "https://registry.yarnpkg.com/sade/-/sade-1.7.4.tgz#ea681e0c65d248d2095c90578c03ca0bb1b54691"
+  integrity sha512-y5yauMD93rX840MwUJr7C1ysLFBgMspsdTo4UVrDg3fXDvtwOyIqykhVAAm6fk/3au77773itJStObgK+LKaiA==
+  dependencies:
+    mri "^1.1.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"
@@ -9578,6 +9771,11 @@ safe-regex@^1.1.0:
   dependencies:
     ret "~0.1.10"
 
+safe-stable-stringify@^1.1.0:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-1.1.1.tgz#c8a220ab525cd94e60ebf47ddc404d610dc5d84a"
+  integrity sha512-ERq4hUjKDbJfE4+XtZLFPCDi8Vb1JqaxAPTxWFLBx8XcAlf9Bda/ZJdVezs/NAfsMQScyIlUMx+Yeu7P7rx5jw==
+
 "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"
@@ -9631,7 +9829,7 @@ semver-compare@^1.0.0:
   resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc"
   integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w=
 
-"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.6.0:
+semver@^5.3.0, semver@^5.6.0:
   version "5.7.1"
   resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
   integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
@@ -9808,9 +10006,9 @@ side-channel@^1.0.3, side-channel@^1.0.4:
     object-inspect "^1.9.0"
 
 signal-exit@^3.0.0, signal-exit@^3.0.3:
-  version "3.0.3"
-  resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
-  integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
+  version "3.0.6"
+  resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.6.tgz#24e630c4b0f03fea446a2bd299e62b4a6ca8d0af"
+  integrity sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==
 
 simple-swizzle@^0.2.2:
   version "0.2.2"
@@ -9829,15 +10027,6 @@ slash@^3.0.0:
   resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
   integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
 
-slice-ansi@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b"
-  integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==
-  dependencies:
-    ansi-styles "^4.0.0"
-    astral-regex "^2.0.0"
-    is-fullwidth-code-point "^3.0.0"
-
 snapdragon-node@^2.0.1:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
@@ -9932,10 +10121,10 @@ source-list-map@^2.0.0, source-list-map@^2.0.1:
   resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34"
   integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==
 
-source-map-js@^0.6.2:
-  version "0.6.2"
-  resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-0.6.2.tgz#0bb5de631b41cfbda6cfba8bd05a80efdfd2385e"
-  integrity sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==
+source-map-js@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.1.tgz#a1741c131e3c77d048252adfa24e23b908670caf"
+  integrity sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==
 
 source-map-resolve@^0.5.0:
   version "0.5.3"
@@ -9956,9 +10145,9 @@ source-map-support@^0.4.15:
     source-map "^0.5.6"
 
 source-map-support@~0.5.12:
-  version "0.5.20"
-  resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.20.tgz#12166089f8f5e5e8c56926b377633392dd2cb6c9"
-  integrity sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==
+  version "0.5.21"
+  resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f"
+  integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==
   dependencies:
     buffer-from "^1.0.0"
     source-map "^0.6.0"
@@ -9983,37 +10172,6 @@ source-map@^0.7.3:
   resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
   integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
 
-space-separated-tokens@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-2.0.1.tgz#43193cec4fb858a2ce934b7f98b7f2c18107098b"
-  integrity sha512-ekwEbFp5aqSPKaqeY1PGrlGQxPNaq+Cnx4+bE2D8sciBQrHpbwoBbawqTN2+6jPs9IdWxxiUcN0K2pkczD3zmw==
-
-spdx-correct@^3.0.0:
-  version "3.1.1"
-  resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9"
-  integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==
-  dependencies:
-    spdx-expression-parse "^3.0.0"
-    spdx-license-ids "^3.0.0"
-
-spdx-exceptions@^2.1.0:
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d"
-  integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==
-
-spdx-expression-parse@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679"
-  integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==
-  dependencies:
-    spdx-exceptions "^2.1.0"
-    spdx-license-ids "^3.0.0"
-
-spdx-license-ids@^3.0.0:
-  version "3.0.10"
-  resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz#0d9becccde7003d6c658d487dd48a32f0bf3014b"
-  integrity sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==
-
 spin.js@4.1.1:
   version "4.1.1"
   resolved "https://registry.yarnpkg.com/spin.js/-/spin.js-4.1.1.tgz#567464a08620541e523da856cb5f67af2d0f48ad"
@@ -10166,22 +10324,14 @@ string-width@^1.0.1:
     is-fullwidth-code-point "^1.0.0"
     strip-ansi "^3.0.0"
 
-"string-width@^1.0.2 || 2":
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
-  integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
-  dependencies:
-    is-fullwidth-code-point "^2.0.0"
-    strip-ansi "^4.0.0"
-
-string-width@^4.1.0, string-width@^4.2.0:
-  version "4.2.2"
-  resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5"
-  integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==
+"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0:
+  version "4.2.3"
+  resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
+  integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
   dependencies:
     emoji-regex "^8.0.0"
     is-fullwidth-code-point "^3.0.0"
-    strip-ansi "^6.0.0"
+    strip-ansi "^6.0.1"
 
 string-width@^5.0.0:
   version "5.0.1"
@@ -10232,14 +10382,6 @@ string_decoder@~1.1.1:
   dependencies:
     safe-buffer "~5.1.0"
 
-stringify-entities@^4.0.0:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-4.0.1.tgz#f483c9ca8d7e029edec9863c5a37c1f1e7702c8d"
-  integrity sha512-gmMQxKXPWIO3NXNSPyWNhlYcBNGpPA/487D+9dLPnU4xBnIrnHdr8cv5rGJOS/1BRxEXRb7uKwg7BA36IWV7xg==
-  dependencies:
-    character-entities-html4 "^2.0.0"
-    character-entities-legacy "^2.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"
@@ -10247,19 +10389,12 @@ strip-ansi@^3.0.0, strip-ansi@^3.0.1:
   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-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==
+strip-ansi@^6.0.0, strip-ansi@^6.0.1:
+  version "6.0.1"
+  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
+  integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
   dependencies:
-    ansi-regex "^5.0.0"
+    ansi-regex "^5.0.1"
 
 strip-ansi@^7.0.1:
   version "7.0.1"
@@ -10298,18 +10433,18 @@ strip-json-comments@~2.0.1:
   resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
   integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
 
-strnum@^1.0.3:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.3.tgz#bbc438bcb35fbbfc9c1e82f73097665b6ec6959e"
-  integrity sha512-GVoRjsqAYZkAH16GDzfTuafuwKxzKdaaCQyLaWf37gOP1e2PPbAKWoME1OmO+c4RCKMfNrrPRDLFCNBFU45N/A==
+strnum@^1.0.4:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.4.tgz#e97e36a7d6ba9f93d0d6b496b2ed0678d422832b"
+  integrity sha512-lMzNMfDpaQOLt4B2mEbfzYS0+T7dvCXeojnlGf6f1AygvWDMcWyXYaLbyICfjVu29sErR8fnRagQfBW/N/hGgw==
 
-strtok3@^6.2.4:
-  version "6.2.4"
-  resolved "https://registry.yarnpkg.com/strtok3/-/strtok3-6.2.4.tgz#302aea64c0fa25d12a0385069ba66253fdc38a81"
-  integrity sha512-GO8IcFF9GmFDvqduIspUBwCzCbqzegyVKIsSymcMgiZKeCfrN9SowtUoi8+b59WZMAjIzVZic/Ft97+pynR3Iw==
+strtok3@7.0.0-alpha.4:
+  version "7.0.0-alpha.4"
+  resolved "https://registry.yarnpkg.com/strtok3/-/strtok3-7.0.0-alpha.4.tgz#2892c53d90118bde1e5526fc8ce93b1a8acc69d5"
+  integrity sha512-PwgcN4vvEoVoHOwVsnp3tWc+wrliwMh/Yr00wZ+LuFdWRHELZEDAn3+dIqCauj4GO1sLO8aM3yDA6p/PnY+3Kw==
   dependencies:
     "@tokenizer/token" "^0.3.0"
-    peek-readable "^4.0.1"
+    peek-readable "^5.0.0-alpha.4"
 
 stylehacks@^5.0.1:
   version "5.0.1"
@@ -10368,37 +10503,23 @@ supports-color@^7.1.0:
     has-flag "^4.0.0"
 
 supports-color@^9.0.0:
-  version "9.0.2"
-  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-9.0.2.tgz#50f082888e4b0a4e2ccd2d0b4f9ef4efcd332485"
-  integrity sha512-ii6tc8ImGFrgMPYq7RVAMKkhPo9vk8uA+D3oKbJq/3Pk2YSMv1+9dUAesa9UxMbxBTvxwKTQffBahNVNxEvM8Q==
-  dependencies:
-    has-flag "^5.0.0"
+  version "9.2.1"
+  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-9.2.1.tgz#599dc9d45acf74c6176e0d880bab1d7d718fe891"
+  integrity sha512-Obv7ycoCTG51N7y175StI9BlAXrmgZrFhZOb0/PyjHBher/NmsdBgbbQ1Inhq+gIhz6+7Gb+jWF2Vqi7Mf1xnQ==
 
-svgo@^2.3.0:
-  version "2.6.0"
-  resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.6.0.tgz#f7d3064a91b0804ea28a9dbfc3b36ba2ed4dd8d4"
-  integrity sha512-ATpRmynNSjP/5hSM4Ij4Pg3L+BCN6IBES7wRLh1ZtVxJB7Xn8omiGttLW6v6ZbqrV5pCVB3XfdbUoY8IpgIwvw==
+svgo@^2.7.0:
+  version "2.8.0"
+  resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24"
+  integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==
   dependencies:
     "@trysound/sax" "0.2.0"
-    colorette "^1.3.0"
     commander "^7.2.0"
     css-select "^4.1.3"
     css-tree "^1.1.3"
     csso "^4.2.0"
+    picocolors "^1.0.0"
     stable "^0.1.8"
 
-table@^6.0.9:
-  version "6.7.1"
-  resolved "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz#ee05592b7143831a8c94f3cee6aae4c1ccef33e2"
-  integrity sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==
-  dependencies:
-    ajv "^8.0.1"
-    lodash.clonedeep "^4.5.0"
-    lodash.truncate "^4.4.2"
-    slice-ansi "^4.0.0"
-    string-width "^4.2.0"
-    strip-ansi "^6.0.0"
-
 tapable@^1.0.0, tapable@^1.1.3:
   version "1.1.3"
   resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2"
@@ -10601,6 +10722,11 @@ toposort-class@^1.0.1:
   resolved "https://registry.yarnpkg.com/toposort-class/-/toposort-class-1.0.1.tgz#7ffd1f78c8be28c3ba45cd4e1a3f5ee193bd9988"
   integrity sha1-f/0feMi+KMO6Rc1OGj9e4ZO9mYg=
 
+totalist@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/totalist/-/totalist-2.0.0.tgz#db6f1e19c0fa63e71339bbb8fba89653c18c7eec"
+  integrity sha512-+Y17F0YzxfACxTyjfhnJQEe7afPA0GSpYlFkl2VFMxYP7jshQf9gXV7cH47EfToBumFThfKBvfAcoUn6fdNeRQ==
+
 tough-cookie@~2.5.0:
   version "2.5.0"
   resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"
@@ -10609,6 +10735,11 @@ tough-cookie@~2.5.0:
     psl "^1.1.28"
     punycode "^2.1.1"
 
+tr46@~0.0.3:
+  version "0.0.3"
+  resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
+  integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=
+
 trim-right@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
@@ -10625,21 +10756,16 @@ trough@^2.0.0:
   integrity sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==
 
 tsconfig-paths@^3.11.0:
-  version "3.11.0"
-  resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz#954c1fe973da6339c78e06b03ce2e48810b65f36"
-  integrity sha512-7ecdYDnIdmv639mmDwslG6KQg1Z9STTz1j7Gcz0xa+nshh/gKDAHcPxRbWOsA3SPp0tXP2leTcY9Kw+NAkfZzA==
+  version "3.12.0"
+  resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz#19769aca6ee8f6a1a341e38c8fa45dd9fb18899b"
+  integrity sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==
   dependencies:
     "@types/json5" "^0.0.29"
     json5 "^1.0.1"
     minimist "^1.2.0"
     strip-bom "^3.0.0"
 
-tslib@^1.10.0:
-  version "1.14.1"
-  resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
-  integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
-
-tslib@^2.0.3:
+tslib@^2.0.3, tslib@^2.3.0:
   version "2.3.1"
   resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01"
   integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==
@@ -10792,9 +10918,9 @@ unified-engine@^9.0.0:
     vfile-statistics "^2.0.0"
 
 unified-lint-rule@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/unified-lint-rule/-/unified-lint-rule-2.0.1.tgz#85276c0d443dce7b76d65e4b8bcdc987323ec9e4"
-  integrity sha512-2RzZuuuWW+ifftM0zd/ZEng0Hb5lah+Zi+ZL/ybj8BrLO/TH2aQAMYvG+iC95aCg2FkWu/pcvVvHqsh2UMmzPg==
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/unified-lint-rule/-/unified-lint-rule-2.1.0.tgz#e33213eea98fcbe9315ebffe4a9d2c37883effa3"
+  integrity sha512-pB2Uht3w+A9ceWXMYI0YWwxCTqC5on6jrApWDWSsYDBjaljSv8s64qdHHMCXFIUAGdd6V/XWrVMxiboHOAXo3Q==
   dependencies:
     "@types/unist" "^2.0.0"
     trough "^2.0.0"
@@ -10814,9 +10940,9 @@ unified-message-control@^4.0.0:
     vfile-message "^3.0.0"
 
 unified@^10.0.0, unified@^10.1.0:
-  version "10.1.0"
-  resolved "https://registry.yarnpkg.com/unified/-/unified-10.1.0.tgz#4e65eb38fc2448b1c5ee573a472340f52b9346fe"
-  integrity sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==
+  version "10.1.1"
+  resolved "https://registry.yarnpkg.com/unified/-/unified-10.1.1.tgz#345e349e3ab353ab612878338eb9d57b4dea1d46"
+  integrity sha512-v4ky1+6BN9X3pQrOdkFIPWAaeDsHPE1svRDxq7YpTc2plkIqFMwukfqM+l0ewpP9EfwARlt9pPFAeWYhHm8X9w==
   dependencies:
     "@types/unist" "^2.0.0"
     bail "^2.0.0"
@@ -10836,11 +10962,6 @@ union-value@^1.0.0:
     is-extendable "^0.1.1"
     set-value "^2.0.1"
 
-uniqs@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02"
-  integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI=
-
 unique-filename@^1.1.1:
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230"
@@ -10893,9 +11014,9 @@ unist-util-visit-parents@^4.0.0:
     unist-util-is "^5.0.0"
 
 unist-util-visit-parents@^5.0.0:
-  version "5.0.0"
-  resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz#5ae2440f8710a0c18a2b4ba0c4471d18e1090494"
-  integrity sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.0.tgz#44bbc5d25f2411e7dfc5cecff12de43296aa8521"
+  integrity sha512-y+QVLcY5eR/YVpqDsLf/xh9R3Q2Y4HxkZTp7ViLDU6WtJCEcPmRzW1gpdWDCDIqIlhuPDXOgttqPlykrHYDekg==
   dependencies:
     "@types/unist" "^2.0.0"
     unist-util-is "^5.0.0"
@@ -10910,9 +11031,9 @@ unist-util-visit@^3.0.0:
     unist-util-visit-parents "^4.0.0"
 
 unist-util-visit@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.0.0.tgz#6e1f7e8e163921d20281354c38bfd3244b64580a"
-  integrity sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.0.tgz#f41e407a9e94da31594e6b1c9811c51ab0b3d8f5"
+  integrity sha512-n7lyhFKJfVZ9MnKtqbsqkQEk5P1KShj0+//V7mAcoI6bpbUjh3C/OG8HVD+pBihfh6Ovl01m8dkcv9HNqYajmQ==
   dependencies:
     "@types/unist" "^2.0.0"
     unist-util-is "^5.0.0"
@@ -10984,11 +11105,11 @@ user-home@^1.1.1:
   integrity sha1-K1viOjK2Onyd640PKNSFcko98ZA=
 
 utf-8-validate@^5.0.1:
-  version "5.0.5"
-  resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.5.tgz#dd32c2e82c72002dc9f02eb67ba6761f43456ca1"
-  integrity sha512-+pnxRYsS/axEpkrrEpzYfNZGXp0IjC/9RIxwM5gntY4Koi8SHmUGSfxfWqxZdRxrtaoVstuOzUp/rbs3JSPELQ==
+  version "5.0.7"
+  resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.7.tgz#c15a19a6af1f7ad9ec7ddc425747ca28c3644922"
+  integrity sha512-vLt1O5Pp+flcArHGIyKEQq883nBt8nN8tVBcoL0qUXj2XT1n7p70yGIq2VK98I5FdZ1YHc0wk/koOnHjnXWk1Q==
   dependencies:
-    node-gyp-build "^4.2.0"
+    node-gyp-build "^4.3.0"
 
 util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1:
   version "1.0.2"
@@ -11054,7 +11175,18 @@ uuid@^8.0.0:
   resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
   integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
 
-v8-compile-cache@^2.0.3, v8-compile-cache@^2.2.0:
+uvu@^0.5.0:
+  version "0.5.2"
+  resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.2.tgz#c145e7f4b5becf80099cf22fd8a4a05f0112b2c0"
+  integrity sha512-m2hLe7I2eROhh+tm3WE5cTo/Cv3WQA7Oc9f7JB6uWv+/zVKvfAm53bMyOoGOSZeQ7Ov2Fu9pLhFr7p07bnT20w==
+  dependencies:
+    dequal "^2.0.0"
+    diff "^5.0.0"
+    kleur "^4.0.3"
+    sade "^1.7.3"
+    totalist "^2.0.0"
+
+v8-compile-cache@^2.0.3:
   version "2.3.0"
   resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"
   integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==
@@ -11066,38 +11198,30 @@ v8flags@^2.1.1:
   dependencies:
     user-home "^1.1.1"
 
-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"
-
 validator@^10.11.0:
   version "10.11.0"
   resolved "https://registry.yarnpkg.com/validator/-/validator-10.11.0.tgz#003108ea6e9a9874d31ccc9e5006856ccd76b228"
   integrity sha512-X/p3UZerAIsbBfN/IwahhYaBbY68EN/UQBWHtsbXGT5bfrH/p4NQzUCG1kF/rtKaNpnJ7jAu6NGTdSNtyNIXMw==
 
 validator@^13.0.0:
+  version "13.7.0"
+  resolved "https://registry.yarnpkg.com/validator/-/validator-13.7.0.tgz#4f9658ba13ba8f3d82ee881d3516489ea85c0857"
+  integrity sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==
+
+validator@~13.6.0:
   version "13.6.0"
   resolved "https://registry.yarnpkg.com/validator/-/validator-13.6.0.tgz#1e71899c14cdc7b2068463cb24c1cc16f6ec7059"
   integrity sha512-gVgKbdbHgtxpRyR8K0O6oFZPhhB5tT1jeEHZR0Znr9Svg03U0+r9DXWMrnRAB+HtCStDQKlaIZm42tVsVjqtjg==
 
-validator@~9.4.1:
-  version "9.4.1"
-  resolved "https://registry.yarnpkg.com/validator/-/validator-9.4.1.tgz#abf466d398b561cd243050112c6ff1de6cc12663"
-  integrity sha512-YV5KjzvRmSyJ1ee/Dm5UED0G+1L4GZnLN3w6/T+zZm8scVua4sOhYKWTUrKa0H/tMiJyO9QLHMPN+9mB/aMunA==
-
 vary@~1.1.2:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
   integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
 
 vasync@^2.2.0:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/vasync/-/vasync-2.2.0.tgz#cfde751860a15822db3b132bc59b116a4adaf01b"
-  integrity sha1-z951GGChWCLbOxMrxZsRakra8Bs=
+  version "2.2.1"
+  resolved "https://registry.yarnpkg.com/vasync/-/vasync-2.2.1.tgz#d881379ff3685e4affa8e775cf0fd369262a201b"
+  integrity sha512-Hq72JaTpcTFdWiNA4Y22Amej2GH3BFmBaKPPlDZ4/oC8HNn2ISHLkFrJU4Ds8R3jcUi7oo5Y9jcMHKjES+N9wQ==
   dependencies:
     verror "1.10.0"
 
@@ -11106,12 +11230,7 @@ velocity-animate@1.5.2:
   resolved "https://registry.yarnpkg.com/velocity-animate/-/velocity-animate-1.5.2.tgz#5a351d75fca2a92756f5c3867548b873f6c32105"
   integrity sha512-m6EXlCAMetKztO1ppBhGU1/1MR3IiEevO6ESq6rcrSQ3Q77xYSW13jkfXW88o4xMrkXJhy/U7j4wFR/twMB0Eg==
 
-vendors@^1.0.3:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e"
-  integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==
-
-verror@1.10.0, verror@^1.8.1:
+verror@1.10.0:
   version "1.10.0"
   resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
   integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=
@@ -11120,6 +11239,15 @@ verror@1.10.0, verror@^1.8.1:
     core-util-is "1.0.2"
     extsprintf "^1.2.0"
 
+verror@^1.8.1:
+  version "1.10.1"
+  resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.1.tgz#4bf09eeccf4563b109ed4b3d458380c972b0cdeb"
+  integrity sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==
+  dependencies:
+    assert-plus "^1.0.0"
+    core-util-is "1.0.2"
+    extsprintf "^1.2.0"
+
 vfile-location@^4.0.0:
   version "4.0.1"
   resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-4.0.1.tgz#06f2b9244a3565bef91f099359486a08b10d3a95"
@@ -11163,9 +11291,9 @@ vfile-statistics@^2.0.0:
     vfile-message "^3.0.0"
 
 vfile@^5.0.0, vfile@^5.1.0:
-  version "5.1.0"
-  resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.1.0.tgz#18e78016f0f71e98d737d40f0fca921dc264a600"
-  integrity sha512-4o7/DJjEaFPYSh0ckv5kcYkJTHQgCKdL8ozMM1jLAxO9ox95IzveDPXCZp08HamdWq8JXTkClDvfAKaeLQeKtg==
+  version "5.2.0"
+  resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.2.0.tgz#a32a646ff9251c274dbe8675644a39031025b369"
+  integrity sha512-ftCpb6pU8Jrzcqku8zE6N3Gi4/RkDhRwEXSWudzZzA2eEOn/cBpsfk9aulCUR+j1raRSAykYQap9u6j6rhUaCA==
   dependencies:
     "@types/unist" "^2.0.0"
     is-buffer "^2.0.0"
@@ -11214,33 +11342,32 @@ web-encoding@^1.1.5:
   optionalDependencies:
     "@zxing/text-encoding" "0.9.0"
 
-web-namespaces@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-2.0.0.tgz#1f6a2d7b5823329abaedeb6bdf09ef2fed35db13"
-  integrity sha512-dE7ELZRVWh0ceQsRgkjLgsAvwTuv3kcjSY/hLjqL0llleUlQBDjE9JkB9FCBY5F2mnFEwiyJoowl8+NVGHe8dw==
-
 webfontloader@~1.6.x:
   version "1.6.28"
   resolved "https://registry.yarnpkg.com/webfontloader/-/webfontloader-1.6.28.tgz#db786129253cb6e8eae54c2fb05f870af6675bae"
   integrity sha1-23hhKSU8tujq5UwvsF+HCvZnW64=
 
-webpack-cli@4.8.0:
-  version "4.8.0"
-  resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.8.0.tgz#5fc3c8b9401d3c8a43e2afceacfa8261962338d1"
-  integrity sha512-+iBSWsX16uVna5aAYN6/wjhJy1q/GKk4KjKvfg90/6hykCTSgozbfz5iRgDTSJt/LgSbYxdBX3KBHeobIs+ZEw==
+webidl-conversions@^3.0.0:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
+  integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=
+
+webpack-cli@4.9.1:
+  version "4.9.1"
+  resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.9.1.tgz#b64be825e2d1b130f285c314caa3b1ba9a4632b3"
+  integrity sha512-JYRFVuyFpzDxMDB+v/nanUdQYcZtqFPGzmlW4s+UkPMFhSpfRNmf1z4AwYcHJVdvEFAM7FFCQdNTpsBYhDLusQ==
   dependencies:
     "@discoveryjs/json-ext" "^0.5.0"
-    "@webpack-cli/configtest" "^1.0.4"
-    "@webpack-cli/info" "^1.3.0"
-    "@webpack-cli/serve" "^1.5.2"
-    colorette "^1.2.1"
+    "@webpack-cli/configtest" "^1.1.0"
+    "@webpack-cli/info" "^1.4.0"
+    "@webpack-cli/serve" "^1.6.0"
+    colorette "^2.0.14"
     commander "^7.0.0"
     execa "^5.0.0"
     fastest-levenshtein "^1.0.12"
     import-local "^3.0.2"
     interpret "^2.2.0"
     rechoir "^0.7.0"
-    v8-compile-cache "^2.2.0"
     webpack-merge "^5.7.3"
 
 webpack-merge@5.8.0, webpack-merge@^5.7.3:
@@ -11296,6 +11423,14 @@ webpack@4.46.0:
     watchpack "^1.7.4"
     webpack-sources "^1.4.1"
 
+whatwg-url@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"
+  integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0=
+  dependencies:
+    tr46 "~0.0.3"
+    webidl-conversions "^3.0.0"
+
 which-boxed-primitive@^1.0.1, which-boxed-primitive@^1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6"
@@ -11343,12 +11478,12 @@ which@2.0.2, which@^2.0.1:
   dependencies:
     isexe "^2.0.0"
 
-wide-align@1.1.3, wide-align@^1.1.0:
-  version "1.1.3"
-  resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457"
-  integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==
+wide-align@^1.1.0:
+  version "1.1.5"
+  resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3"
+  integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==
   dependencies:
-    string-width "^1.0.2 || 2"
+    string-width "^1.0.2 || 2 || 3 || 4"
 
 wildcard@^2.0.0:
   version "2.0.0"
@@ -11508,9 +11643,9 @@ xpath@0.0.32:
   integrity sha512-rxMJhSIoiO8vXcWvSifKqhvV96GjiD5wYb8/QHdoRyQvraTpp4IEv944nhGausZZ3u7dhQXteZuZbaqfpB7uYw==
 
 xss@^1.0.3:
-  version "1.0.9"
-  resolved "https://registry.yarnpkg.com/xss/-/xss-1.0.9.tgz#3ffd565571ff60d2e40db7f3b80b4677bec770d2"
-  integrity sha512-2t7FahYnGJys6DpHLhajusId7R0Pm2yTmuL0GV9+mV0ZlaLSnb2toBmppATfg5sWIhZQGlsTLoecSzya+l4EAQ==
+  version "1.0.10"
+  resolved "https://registry.yarnpkg.com/xss/-/xss-1.0.10.tgz#5cd63a9b147a755a14cb0455c7db8866120eb4d2"
+  integrity sha512-qmoqrRksmzqSKvgqzN0055UFWY7OKx1/9JWeRswwEVX9fCG5jcYRxa/A2DHcmZX6VJvjzHRQ2STeeVcQkrmLSw==
   dependencies:
     commander "^2.20.3"
     cssfilter "0.0.10"
diff --git a/pkgs/servers/web-apps/mediawiki/default.nix b/pkgs/servers/web-apps/mediawiki/default.nix
index d45e715369e..650b27a7f55 100644
--- a/pkgs/servers/web-apps/mediawiki/default.nix
+++ b/pkgs/servers/web-apps/mediawiki/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mediawiki";
-  version = "1.37.0";
+  version = "1.37.1";
 
   src = with lib; fetchurl {
     url = "https://releases.wikimedia.org/mediawiki/${versions.majorMinor version}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-3RrSJ8W7vIM9hRwBcn7ocGo55Kox4PSc5F5QJX75uX8=";
+    sha256 = "sha256-U0NuktwwrbFLZ5fYE50gaWpUYVJfOKN1yD5DXPBC4uc=";
   };
 
   prePatch = ''
diff --git a/pkgs/servers/web-apps/whitebophir/node-packages-generated.nix b/pkgs/servers/web-apps/whitebophir/node-packages-generated.nix
index d5ecdf2f5d4..5a511da72a4 100644
--- a/pkgs/servers/web-apps/whitebophir/node-packages-generated.nix
+++ b/pkgs/servers/web-apps/whitebophir/node-packages-generated.nix
@@ -4,13 +4,13 @@
 
 let
   sources = {
-    "@financial-times/polyfill-useragent-normaliser-1.10.0" = {
+    "@financial-times/polyfill-useragent-normaliser-1.10.1" = {
       name = "_at_financial-times_slash_polyfill-useragent-normaliser";
       packageName = "@financial-times/polyfill-useragent-normaliser";
-      version = "1.10.0";
+      version = "1.10.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@financial-times/polyfill-useragent-normaliser/-/polyfill-useragent-normaliser-1.10.0.tgz";
-        sha512 = "OQYm8qoegUzHZgpNjw0QSmcoH8Tu+fbY9/wTOqbK/2lj3qWNZpGdBimTV1qp8xwF+SVyL2vNzZEjTxSlbjNOSA==";
+        url = "https://registry.npmjs.org/@financial-times/polyfill-useragent-normaliser/-/polyfill-useragent-normaliser-1.10.1.tgz";
+        sha512 = "u+VCD2ISgkh6eoxdyb0L8bTApdU8t3fvHLS9ZXokC02b8iQD8nkRcpui5BIbuF+aYkWkTpaJhUInCueAGDBVAw==";
       };
     };
     "@financial-times/useragent_parser-1.6.0" = {
@@ -22,103 +22,13 @@ let
         sha512 = "v6Ucl//xSVhpyTtHMVCA9uv9W7CVwj8vBAQFKFDkfGC1DquBobOMhnzH9Odc+Tunf+i4WRnNgt90fQ7CSAbU3g==";
       };
     };
-    "@formatjs/ecma402-abstract-1.8.0" = {
-      name = "_at_formatjs_slash_ecma402-abstract";
-      packageName = "@formatjs/ecma402-abstract";
-      version = "1.8.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.8.0.tgz";
-        sha512 = "X+nxZcIQr0YfYNtw1ZkHjN3YSyi0fEmdAJqRzk24KwNvqLv7GmVfw70mf7ADnwOvkcrSaAdx24GfAqckGTv9ww==";
-      };
-    };
-    "@formatjs/intl-datetimeformat-4.1.0" = {
-      name = "_at_formatjs_slash_intl-datetimeformat";
-      packageName = "@formatjs/intl-datetimeformat";
-      version = "4.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@formatjs/intl-datetimeformat/-/intl-datetimeformat-4.1.0.tgz";
-        sha512 = "rEAPnIIsiOpjXMqoMdxClJ4Q2uhKTN1WH2fQUCJrg4FYdqfevJeymSowdLcOi1AYARIoTXTmlqS8pHIJx62VEw==";
-      };
-    };
-    "@formatjs/intl-displaynames-5.1.0" = {
-      name = "_at_formatjs_slash_intl-displaynames";
-      packageName = "@formatjs/intl-displaynames";
-      version = "5.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@formatjs/intl-displaynames/-/intl-displaynames-5.1.0.tgz";
-        sha512 = "2pwIlHcNBZ281ySsz/E6JURVDxWsIxHn/HyxmylxBQMeW2HeFq1YuP6ycAxSMfp+EtWAN4v8TgWJQM+YBI22FA==";
-      };
-    };
-    "@formatjs/intl-getcanonicallocales-1.6.0" = {
-      name = "_at_formatjs_slash_intl-getcanonicallocales";
-      packageName = "@formatjs/intl-getcanonicallocales";
-      version = "1.6.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@formatjs/intl-getcanonicallocales/-/intl-getcanonicallocales-1.6.0.tgz";
-        sha512 = "1967VujZeow0K0NpzerdNOaskcE0KwnnchxT8TzlkLs4RjXx7Uz0bjQPtUYGV7kvbgMJ9qb6tWmCqIwe3sBKUw==";
-      };
-    };
-    "@formatjs/intl-listformat-6.1.0" = {
-      name = "_at_formatjs_slash_intl-listformat";
-      packageName = "@formatjs/intl-listformat";
-      version = "6.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@formatjs/intl-listformat/-/intl-listformat-6.1.0.tgz";
-        sha512 = "NsDKO0U1mVFZmoyZ0ztFL+biqztDKv1qdSvPA1S5yOYZddDy6G9SpnBZgNjhxUFIBqycNW95ibO/jrI5Ou4s5Q==";
-      };
-    };
-    "@formatjs/intl-locale-2.4.26" = {
-      name = "_at_formatjs_slash_intl-locale";
-      packageName = "@formatjs/intl-locale";
-      version = "2.4.26";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@formatjs/intl-locale/-/intl-locale-2.4.26.tgz";
-        sha512 = "f5NyHb5qdfA0oO2IGLhNU0k9BWq8xI26VqxzZqjTfEKnn8xJ+SBE9drwRfTqlRz6pmvztPmkDg3FSflmGdDKGw==";
-      };
-    };
-    "@formatjs/intl-numberformat-7.1.0" = {
-      name = "_at_formatjs_slash_intl-numberformat";
-      packageName = "@formatjs/intl-numberformat";
-      version = "7.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@formatjs/intl-numberformat/-/intl-numberformat-7.1.0.tgz";
-        sha512 = "zwjacMSn+Ide2RXK2PN0veB7N7ay10tQ1Pb8eXeMB7zjRjJXHROi8O1ZA0dpJid0lw/5+5G2/lEdYvsPWLkaZA==";
-      };
-    };
-    "@formatjs/intl-pluralrules-4.0.20" = {
-      name = "_at_formatjs_slash_intl-pluralrules";
-      packageName = "@formatjs/intl-pluralrules";
-      version = "4.0.20";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@formatjs/intl-pluralrules/-/intl-pluralrules-4.0.20.tgz";
-        sha512 = "ayyjvIh9ShXQxo0Y9GhUTyW9zyB3jiBFRIEhMmGowpIlTVRhOwl57XZ+YuUgo/yCvtJqnvGPu/4/fQTouxHuGw==";
-      };
-    };
-    "@formatjs/intl-relativetimeformat-9.1.0" = {
-      name = "_at_formatjs_slash_intl-relativetimeformat";
-      packageName = "@formatjs/intl-relativetimeformat";
-      version = "9.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@formatjs/intl-relativetimeformat/-/intl-relativetimeformat-9.1.0.tgz";
-        sha512 = "F4HmAk/ZYy9VNbrNOayGfPKEnj2ey6M9kMKf+UKL6QL21FOxLyY6e4okSG6VbAjZ0cYgKvEiNDjSuWP86qSo0g==";
-      };
-    };
-    "@juggle/resize-observer-3.3.1" = {
-      name = "_at_juggle_slash_resize-observer";
-      packageName = "@juggle/resize-observer";
-      version = "3.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.3.1.tgz";
-        sha512 = "zMM9Ds+SawiUkakS7y94Ymqx+S0ORzpG3frZirN3l+UlXUmSUR7hF4wxCVqW+ei94JzV5kt0uXBcoOEAuiydrw==";
-      };
-    };
-    "@types/component-emitter-1.2.10" = {
+    "@types/component-emitter-1.2.11" = {
       name = "_at_types_slash_component-emitter";
       packageName = "@types/component-emitter";
-      version = "1.2.10";
+      version = "1.2.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.10.tgz";
-        sha512 = "bsjleuRKWmGqajMerkzox19aGbscQX5rmmvvXl3wlIp5gMG1HgkiwPxsN5p070fBDKTNSPgojVbuY1+HWMbFhg==";
+        url = "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz";
+        sha512 = "SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==";
       };
     };
     "@types/cookie-0.4.1" = {
@@ -139,40 +49,13 @@ let
         sha512 = "vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==";
       };
     };
-    "@types/node-16.4.11" = {
+    "@types/node-17.0.0" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "16.4.11";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-16.4.11.tgz";
-        sha512 = "nWSFUbuNiPKJEe1IViuodSI+9cM+vpM8SWF/O6dJK7wmGRNq55U7XavJHrlRrPkSMuUZUFzg1xaZ1B+ZZCrRWw==";
-      };
-    };
-    "@webcomponents/template-1.5.0" = {
-      name = "_at_webcomponents_slash_template";
-      packageName = "@webcomponents/template";
-      version = "1.5.0";
+      version = "17.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@webcomponents/template/-/template-1.5.0.tgz";
-        sha512 = "DPQgBAedzjsFD7rgv7b6OKmpHq5VTBUCLmYfDiov2FC2C79QGaz+4iNmlVAem5iSicvN8DWTwU1kZ48XYLtuqg==";
-      };
-    };
-    "Base64-1.1.0" = {
-      name = "Base64";
-      packageName = "Base64";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/Base64/-/Base64-1.1.0.tgz";
-        sha512 = "qeacf8dvGpf+XAT27ESHMh7z84uRzj/ua2pQdJg483m3bEXv/kVFtDnMgvf70BQGqzbZhR9t6BmASzKvqfJf3Q==";
-      };
-    };
-    "abort-controller-3.0.0" = {
-      name = "abort-controller";
-      packageName = "abort-controller";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz";
-        sha512 = "h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==";
+        url = "https://registry.npmjs.org/@types/node/-/node-17.0.0.tgz";
+        sha512 = "eMhwJXc931Ihh4tkU+Y7GiLzT/y/DBNpNtr4yU9O2w3SYBsr9NaOPhQlLKRmoWtI54uNwuo0IOUFQjVOTZYRvw==";
       };
     };
     "accept-language-parser-1.5.0" = {
@@ -193,49 +76,22 @@ let
         sha512 = "Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==";
       };
     };
-    "align-text-0.1.4" = {
-      name = "align-text";
-      packageName = "align-text";
-      version = "0.1.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz";
-        sha1 = "0cd90a561093f35d0a99256c22b7069433fad117";
-      };
-    };
-    "async-mutex-0.3.1" = {
+    "async-mutex-0.3.2" = {
       name = "async-mutex";
       packageName = "async-mutex";
-      version = "0.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/async-mutex/-/async-mutex-0.3.1.tgz";
-        sha512 = "vRfQwcqBnJTLzVQo72Sf7KIUbcSUP5hNchx6udI1U6LuPQpfePgdjJzlCe76yFZ8pxlLjn9lwcl/Ya0TSOv0Tw==";
-      };
-    };
-    "audio-context-polyfill-1.0.0" = {
-      name = "audio-context-polyfill";
-      packageName = "audio-context-polyfill";
-      version = "1.0.0";
+      version = "0.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/audio-context-polyfill/-/audio-context-polyfill-1.0.0.tgz";
-        sha1 = "4b728faf0a19555194d4fbd05582f833fdcd137b";
+        url = "https://registry.npmjs.org/async-mutex/-/async-mutex-0.3.2.tgz";
+        sha512 = "HuTK7E7MT7jZEh1P9GtRW9+aTWiDWWi9InbZ5hjxrnRa39KS4BW04+xLBhYNS2aXhHUIKZSw3gj4Pn1pj+qGAA==";
       };
     };
-    "balanced-match-1.0.2" = {
-      name = "balanced-match";
-      packageName = "balanced-match";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz";
-        sha512 = "3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==";
-      };
-    };
-    "base64-arraybuffer-0.1.4" = {
+    "base64-arraybuffer-1.0.1" = {
       name = "base64-arraybuffer";
       packageName = "base64-arraybuffer";
-      version = "0.1.4";
+      version = "1.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz";
-        sha1 = "9818c79e059b1355f97e0428a017c838e90ba812";
+        url = "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.1.tgz";
+        sha512 = "vFIUq7FdLtjZMhATwDul5RZWv2jpXQ09Pd6jcVEOvIsqCWTRFD/ONHNfyOS8dA/Ippi5dsIgpyKWKZaAKZltbA==";
       };
     };
     "base64id-2.0.0" = {
@@ -247,51 +103,6 @@ let
         sha512 = "lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==";
       };
     };
-    "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==";
-      };
-    };
-    "camelcase-1.2.1" = {
-      name = "camelcase";
-      packageName = "camelcase";
-      version = "1.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz";
-        sha1 = "9bb5304d2e0b56698b2c758b08a3eaa9daa58a39";
-      };
-    };
-    "center-align-0.1.3" = {
-      name = "center-align";
-      packageName = "center-align";
-      version = "0.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz";
-        sha1 = "aa0d32629b6ee972200411cbd4461c907bc2b7ad";
-      };
-    };
-    "cldr-core-38.1.0" = {
-      name = "cldr-core";
-      packageName = "cldr-core";
-      version = "38.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cldr-core/-/cldr-core-38.1.0.tgz";
-        sha512 = "Da9xKjDp4qGGIX0VDsBqTan09iR5nuYD2a/KkfEaUyqKhu6wFVNRiCpPDXeRbpVwPBY6PgemV8WiHatMhcpy4A==";
-      };
-    };
-    "cliui-2.1.0" = {
-      name = "cliui";
-      packageName = "cliui";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz";
-        sha1 = "4b475760ff80264c762c3a1719032e91c7fea0d1";
-      };
-    };
     "component-emitter-1.3.0" = {
       name = "component-emitter";
       packageName = "component-emitter";
@@ -301,15 +112,6 @@ let
         sha512 = "Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==";
       };
     };
-    "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";
-      };
-    };
     "cookie-0.4.1" = {
       name = "cookie";
       packageName = "cookie";
@@ -319,13 +121,13 @@ let
         sha512 = "ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==";
       };
     };
-    "core-util-is-1.0.2" = {
+    "core-util-is-1.0.3" = {
       name = "core-util-is";
       packageName = "core-util-is";
-      version = "1.0.2";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz";
-        sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
+        url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz";
+        sha512 = "ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==";
       };
     };
     "cors-2.8.5" = {
@@ -337,15 +139,6 @@ let
         sha512 = "KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==";
       };
     };
-    "current-script-polyfill-1.0.0" = {
-      name = "current-script-polyfill";
-      packageName = "current-script-polyfill";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/current-script-polyfill/-/current-script-polyfill-1.0.0.tgz";
-        sha1 = "f31cf7e4f3e218b0726e738ca92a02d3488ef615";
-      };
-    };
     "debug-2.6.9" = {
       name = "debug";
       packageName = "debug";
@@ -355,40 +148,13 @@ let
         sha512 = "bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==";
       };
     };
-    "debug-4.1.1" = {
+    "debug-4.3.3" = {
       name = "debug";
       packageName = "debug";
-      version = "4.1.1";
+      version = "4.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz";
-        sha512 = "pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==";
-      };
-    };
-    "debug-4.3.2" = {
-      name = "debug";
-      packageName = "debug";
-      version = "4.3.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz";
-        sha512 = "mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==";
-      };
-    };
-    "decamelize-1.2.0" = {
-      name = "decamelize";
-      packageName = "decamelize";
-      version = "1.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz";
-        sha1 = "f6534d15148269b20352e7bee26f501f9a191290";
-      };
-    };
-    "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";
+        url = "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz";
+        sha512 = "/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==";
       };
     };
     "depd-1.1.2" = {
@@ -409,15 +175,6 @@ let
         sha1 = "978857442c44749e4206613e37946205826abd80";
       };
     };
-    "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==";
-      };
-    };
     "ee-first-1.1.1" = {
       name = "ee-first";
       packageName = "ee-first";
@@ -436,22 +193,22 @@ let
         sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59";
       };
     };
-    "engine.io-5.1.1" = {
+    "engine.io-6.1.0" = {
       name = "engine.io";
       packageName = "engine.io";
-      version = "5.1.1";
+      version = "6.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/engine.io/-/engine.io-5.1.1.tgz";
-        sha512 = "aMWot7H5aC8L4/T8qMYbLdvKlZOdJTH54FxfdFunTGvhMx1BHkJOntWArsVfgAZVwAO9LC2sryPWRcEeUzCe5w==";
+        url = "https://registry.npmjs.org/engine.io/-/engine.io-6.1.0.tgz";
+        sha512 = "ErhZOVu2xweCjEfYcTdkCnEYUiZgkAcBBAhW4jbIvNG8SLU3orAqoJCiytZjYF7eTpVmmCrLDjLIEaPlUAs1uw==";
       };
     };
-    "engine.io-parser-4.0.2" = {
+    "engine.io-parser-5.0.2" = {
       name = "engine.io-parser";
       packageName = "engine.io-parser";
-      version = "4.0.2";
+      version = "5.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.2.tgz";
-        sha512 = "sHfEQv6nmtJrq6TKuIz5kyEKH/qSdK56H/A+7DnAuUPWosnIZAS2NHNcPLmyjtY3cGS/MqJdZbUjW97JU72iYg==";
+        url = "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.2.tgz";
+        sha512 = "wuiO7qO/OEkPJSFueuATIXtrxF7/6GTbAO9QLv7nnbjwZ5tYhLm9zxvLwxstRs0dcT0KUlWTjtIOs1T86jt12g==";
       };
     };
     "escape-html-1.0.3" = {
@@ -472,33 +229,6 @@ let
         sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887";
       };
     };
-    "event-source-polyfill-1.0.24" = {
-      name = "event-source-polyfill";
-      packageName = "event-source-polyfill";
-      version = "1.0.24";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/event-source-polyfill/-/event-source-polyfill-1.0.24.tgz";
-        sha512 = "aEtMhrH5ww3X6RgbsNcwu0whw8zjOoeRnwPqRKqKuxWS5KlAZhCY+rTm6wMlHOXbxmLGn8lW6Xox7rfpBExzGA==";
-      };
-    };
-    "event-target-shim-5.0.1" = {
-      name = "event-target-shim";
-      packageName = "event-target-shim";
-      version = "5.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz";
-        sha512 = "i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==";
-      };
-    };
-    "fastestsmallesttextencoderdecoder-1.0.22" = {
-      name = "fastestsmallesttextencoderdecoder";
-      packageName = "fastestsmallesttextencoderdecoder";
-      version = "1.0.22";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fastestsmallesttextencoderdecoder/-/fastestsmallesttextencoderdecoder-1.0.22.tgz";
-        sha512 = "Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==";
-      };
-    };
     "fresh-0.5.2" = {
       name = "fresh";
       packageName = "fresh";
@@ -526,31 +256,13 @@ let
         sha1 = "18282b27d08a267cb3030cd2b8b4b0f212af752a";
       };
     };
-    "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";
-      };
-    };
-    "glob-7.1.7" = {
-      name = "glob";
-      packageName = "glob";
-      version = "7.1.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz";
-        sha512 = "OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==";
-      };
-    };
-    "graceful-fs-4.2.6" = {
+    "graceful-fs-4.2.8" = {
       name = "graceful-fs";
       packageName = "graceful-fs";
-      version = "4.2.6";
+      version = "4.2.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz";
-        sha512 = "nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==";
+        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz";
+        sha512 = "qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==";
       };
     };
     "handlebars-4.7.7" = {
@@ -562,31 +274,13 @@ let
         sha512 = "aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==";
       };
     };
-    "html5shiv-3.7.3" = {
-      name = "html5shiv";
-      packageName = "html5shiv";
-      version = "3.7.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/html5shiv/-/html5shiv-3.7.3.tgz";
-        sha1 = "d78a84a367bcb9a710100d57802c387b084631d2";
-      };
-    };
-    "http-errors-1.7.3" = {
+    "http-errors-1.8.1" = {
       name = "http-errors";
       packageName = "http-errors";
-      version = "1.7.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz";
-        sha512 = "ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==";
-      };
-    };
-    "inflight-1.0.6" = {
-      name = "inflight";
-      packageName = "inflight";
-      version = "1.0.6";
+      version = "1.8.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz";
-        sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
+        url = "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz";
+        sha512 = "Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==";
       };
     };
     "inherits-2.0.4" = {
@@ -598,42 +292,6 @@ let
         sha512 = "k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==";
       };
     };
-    "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";
-      };
-    };
-    "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-url-1.2.4" = {
-      name = "is-url";
-      packageName = "is-url";
-      version = "1.2.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz";
-        sha512 = "ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==";
-      };
-    };
-    "is2-2.0.1" = {
-      name = "is2";
-      packageName = "is2";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is2/-/is2-2.0.1.tgz";
-        sha512 = "+WaJvnaA7aJySz2q/8sLjMb2Mw14KTplHmSwcSpZ/fWJPkUmqw3YTzSWbPJ7OAwRvdYTWF2Wg+yYJ1AdP5Z8CA==";
-      };
-    };
     "isarray-1.0.0" = {
       name = "isarray";
       packageName = "isarray";
@@ -643,51 +301,6 @@ let
         sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
       };
     };
-    "js-polyfills-0.1.43" = {
-      name = "js-polyfills";
-      packageName = "js-polyfills";
-      version = "0.1.43";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/js-polyfills/-/js-polyfills-0.1.43.tgz";
-        sha512 = "wWCJcw7uMA12uk7qcqZlIQy9nj+Evh1wVUmn5MOlJ7GPC8HT5PLjB9Uiqjw9ldAbbOuNOWJ6ENb7NwU6qqf48g==";
-      };
-    };
-    "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==";
-      };
-    };
-    "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";
-      };
-    };
-    "lazy-cache-1.0.4" = {
-      name = "lazy-cache";
-      packageName = "lazy-cache";
-      version = "1.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz";
-        sha1 = "a1d78fc3a50474cb80845d3b3b6e1da49a446e8e";
-      };
-    };
-    "longest-1.0.1" = {
-      name = "longest";
-      packageName = "longest";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz";
-        sha1 = "30a0b2da38f73770e8294a0d22e6625ed77d0097";
-      };
-    };
     "lru-cache-6.0.0" = {
       name = "lru-cache";
       packageName = "lru-cache";
@@ -715,31 +328,22 @@ let
         sha512 = "x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==";
       };
     };
-    "mime-db-1.49.0" = {
+    "mime-db-1.51.0" = {
       name = "mime-db";
       packageName = "mime-db";
-      version = "1.49.0";
+      version = "1.51.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz";
-        sha512 = "CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==";
+        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz";
+        sha512 = "5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==";
       };
     };
-    "mime-types-2.1.32" = {
+    "mime-types-2.1.34" = {
       name = "mime-types";
       packageName = "mime-types";
-      version = "2.1.32";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz";
-        sha512 = "hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==";
-      };
-    };
-    "minimatch-3.0.4" = {
-      name = "minimatch";
-      packageName = "minimatch";
-      version = "3.0.4";
+      version = "2.1.34";
       src = fetchurl {
-        url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz";
-        sha512 = "yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==";
+        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz";
+        sha512 = "6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==";
       };
     };
     "minimist-1.2.5" = {
@@ -751,22 +355,13 @@ let
         sha512 = "FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==";
       };
     };
-    "mkdirp-1.0.4" = {
-      name = "mkdirp";
-      packageName = "mkdirp";
-      version = "1.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz";
-        sha512 = "vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==";
-      };
-    };
-    "mnemonist-0.38.3" = {
+    "mnemonist-0.38.5" = {
       name = "mnemonist";
       packageName = "mnemonist";
-      version = "0.38.3";
+      version = "0.38.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.3.tgz";
-        sha512 = "2K9QYubXx/NAjv4VLq1d1Ly8pWNC5L3BrixtdkyTegXWJIqY+zLNDhhX/A+ZwWt70tB1S8H4BE8FLYEFyNoOBw==";
+        url = "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.5.tgz";
+        sha512 = "bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==";
       };
     };
     "ms-2.0.0" = {
@@ -778,15 +373,6 @@ let
         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";
@@ -805,15 +391,6 @@ let
         sha512 = "6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==";
       };
     };
-    "mutationobserver-shim-0.3.7" = {
-      name = "mutationobserver-shim";
-      packageName = "mutationobserver-shim";
-      version = "0.3.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mutationobserver-shim/-/mutationobserver-shim-0.3.7.tgz";
-        sha512 = "oRIDTyZQU96nAiz2AQyngwx1e89iApl2hN5AOYwyxLUB47UYsU3Wv9lJWqH5y/QdiYkc5HQLi23ZNB3fELdHcQ==";
-      };
-    };
     "negotiator-0.6.2" = {
       name = "negotiator";
       packageName = "negotiator";
@@ -841,13 +418,13 @@ let
         sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863";
       };
     };
-    "obliterator-1.6.1" = {
+    "obliterator-2.0.1" = {
       name = "obliterator";
       packageName = "obliterator";
-      version = "1.6.1";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/obliterator/-/obliterator-1.6.1.tgz";
-        sha512 = "9WXswnqINnnhOG/5SLimUlzuU1hFJUc8zkwyD59Sd+dPOMf05PmnYG/d6Q7HZ+KmgkZJa1PxRso6QdM3sTNHig==";
+        url = "https://registry.npmjs.org/obliterator/-/obliterator-2.0.1.tgz";
+        sha512 = "XnkiCrrBcIZQitJPAI36mrrpEUvatbte8hLcTcQwKA1v9NkCKasSi+UAguLsLDs/out7MoRzAlmz7VXvY6ph6w==";
       };
     };
     "on-finished-2.3.0" = {
@@ -859,15 +436,6 @@ let
         sha1 = "20f1336481b083cd75337992a16971aa2d906947";
       };
     };
-    "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";
-      };
-    };
     "parseurl-1.3.3" = {
       name = "parseurl";
       packageName = "parseurl";
@@ -877,31 +445,13 @@ let
         sha512 = "CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==";
       };
     };
-    "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";
-      };
-    };
-    "picturefill-3.0.3" = {
-      name = "picturefill";
-      packageName = "picturefill";
-      version = "3.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/picturefill/-/picturefill-3.0.3.tgz";
-        sha512 = "JDdx+3i4fs2pkqwWZJgGEM2vFWsq+01YsQFT9CKPGuv2Q0xSdrQZoxi9XwyNARTgxiOdgoAwWQRluLRe/JQX2g==";
-      };
-    };
-    "polyfill-library-3.107.1" = {
+    "polyfill-library-3.110.1" = {
       name = "polyfill-library";
       packageName = "polyfill-library";
-      version = "3.107.1";
+      version = "3.110.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/polyfill-library/-/polyfill-library-3.107.1.tgz";
-        sha512 = "HrN61Tp8Wjz1xcmYmstm0m6ySeiVSVqadDFhFMZmoiWlRoPQRfdeVWv88IqZKmxYITZ85z26wmOJdGYrGs6tjw==";
+        url = "https://registry.npmjs.org/polyfill-library/-/polyfill-library-3.110.1.tgz";
+        sha512 = "OTgQPd6If8DQSrAXcFU2soHXrCHAJpGkBgWRSqEEcydauxzmuU3T1s15wOPfSd1gj8mXbiIrPaDndt0zy4hFTA==";
       };
     };
     "process-nextick-args-2.0.1" = {
@@ -940,33 +490,6 @@ let
         sha512 = "Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==";
       };
     };
-    "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";
-      };
-    };
-    "right-align-0.1.3" = {
-      name = "right-align";
-      packageName = "right-align";
-      version = "0.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz";
-        sha1 = "61339b722fe6a3515689210d24e14c96148613ef";
-      };
-    };
-    "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==";
-      };
-    };
     "safe-buffer-5.1.2" = {
       name = "safe-buffer";
       packageName = "safe-buffer";
@@ -976,15 +499,6 @@ let
         sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==";
       };
     };
-    "seamless-scroll-polyfill-1.2.3" = {
-      name = "seamless-scroll-polyfill";
-      packageName = "seamless-scroll-polyfill";
-      version = "1.2.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/seamless-scroll-polyfill/-/seamless-scroll-polyfill-1.2.3.tgz";
-        sha512 = "emnwZtu6NrlBlvT6HrlbAOs024JX4orWew8H5owBOyUJ7eFXn8lGe4bsXTBD6AAWzP/p7LL86AjVIH8Apqec5w==";
-      };
-    };
     "semver-7.3.5" = {
       name = "semver";
       packageName = "semver";
@@ -994,49 +508,49 @@ let
         sha512 = "PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==";
       };
     };
-    "send-0.17.1" = {
+    "send-0.17.2" = {
       name = "send";
       packageName = "send";
-      version = "0.17.1";
+      version = "0.17.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/send/-/send-0.17.1.tgz";
-        sha512 = "BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==";
+        url = "https://registry.npmjs.org/send/-/send-0.17.2.tgz";
+        sha512 = "UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==";
       };
     };
-    "serve-static-1.14.1" = {
+    "serve-static-1.14.2" = {
       name = "serve-static";
       packageName = "serve-static";
-      version = "1.14.1";
+      version = "1.14.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz";
-        sha512 = "JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==";
+        url = "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz";
+        sha512 = "+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==";
       };
     };
-    "setprototypeof-1.1.1" = {
+    "setprototypeof-1.2.0" = {
       name = "setprototypeof";
       packageName = "setprototypeof";
-      version = "1.1.1";
+      version = "1.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz";
-        sha512 = "JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==";
+        url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz";
+        sha512 = "E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==";
       };
     };
-    "socket.io-4.1.3" = {
+    "socket.io-4.4.0" = {
       name = "socket.io";
       packageName = "socket.io";
-      version = "4.1.3";
+      version = "4.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/socket.io/-/socket.io-4.1.3.tgz";
-        sha512 = "tLkaY13RcO4nIRh1K2hT5iuotfTaIQw7cVIe0FUykN3SuQi0cm7ALxuyT5/CtDswOMWUzMGTibxYNx/gU7In+Q==";
+        url = "https://registry.npmjs.org/socket.io/-/socket.io-4.4.0.tgz";
+        sha512 = "bnpJxswR9ov0Bw6ilhCvO38/1WPtE3eA2dtxi2Iq4/sFebiDJQzgKNYA7AuVVdGW09nrESXd90NbZqtDd9dzRQ==";
       };
     };
-    "socket.io-adapter-2.3.1" = {
+    "socket.io-adapter-2.3.3" = {
       name = "socket.io-adapter";
       packageName = "socket.io-adapter";
-      version = "2.3.1";
+      version = "2.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.3.1.tgz";
-        sha512 = "8cVkRxI8Nt2wadkY6u60Y4rpW3ejA1rxgcK2JuyIhmF+RMNpTy1QRtkHIDUOf3B4HlQwakMsWbKftMv/71VMmw==";
+        url = "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.3.3.tgz";
+        sha512 = "Qd/iwn3VskrpNO60BeRyCyr8ZWw9CPZyitW4AQwmRZ8zCiyDiL+znRnWX6tDHXnWn1sJrM1+b6Mn6wEDJJ4aYQ==";
       };
     };
     "socket.io-parser-4.0.4" = {
@@ -1048,15 +562,6 @@ let
         sha512 = "t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==";
       };
     };
-    "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";
@@ -1066,15 +571,6 @@ let
         sha512 = "UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==";
       };
     };
-    "spdx-licenses-1.0.0" = {
-      name = "spdx-licenses";
-      packageName = "spdx-licenses";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/spdx-licenses/-/spdx-licenses-1.0.0.tgz";
-        sha512 = "BmeFZRYH9XXf56omx0LuiG+gBXRqwmrKsOtcsGTJh8tw9U0cgRKTrOnyDpP1uvI1AVEkoRKYaAvR902ByotFOw==";
-      };
-    };
     "statsd-client-0.4.7" = {
       name = "statsd-client";
       packageName = "statsd-client";
@@ -1120,13 +616,13 @@ let
         sha512 = "n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==";
       };
     };
-    "toidentifier-1.0.0" = {
+    "toidentifier-1.0.1" = {
       name = "toidentifier";
       packageName = "toidentifier";
-      version = "1.0.0";
+      version = "1.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz";
-        sha512 = "yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==";
+        url = "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz";
+        sha512 = "o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==";
       };
     };
     "toposort-2.0.2" = {
@@ -1138,58 +634,22 @@ let
         sha1 = "ae21768175d1559d48bef35420b2f4962f09c330";
       };
     };
-    "tslib-2.3.0" = {
+    "tslib-2.3.1" = {
       name = "tslib";
       packageName = "tslib";
-      version = "2.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz";
-        sha512 = "N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==";
-      };
-    };
-    "uglify-js-2.8.29" = {
-      name = "uglify-js";
-      packageName = "uglify-js";
-      version = "2.8.29";
+      version = "2.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz";
-        sha1 = "29c5733148057bb4e1f75df35b7a9cb72e6a59dd";
+        url = "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz";
+        sha512 = "77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==";
       };
     };
-    "uglify-js-3.14.1" = {
+    "uglify-js-3.14.5" = {
       name = "uglify-js";
       packageName = "uglify-js";
-      version = "3.14.1";
+      version = "3.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.1.tgz";
-        sha512 = "JhS3hmcVaXlp/xSo3PKY5R0JqKs5M3IV+exdLHW99qKvKivPO4Z8qbej6mte17SOPqAOVMjt/XGgWacnFSzM3g==";
-      };
-    };
-    "uglify-to-browserify-1.0.2" = {
-      name = "uglify-to-browserify";
-      packageName = "uglify-to-browserify";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz";
-        sha1 = "6e0924d6bda6b5afe349e39a6d632850a0f882b7";
-      };
-    };
-    "unorm-1.6.0" = {
-      name = "unorm";
-      packageName = "unorm";
-      version = "1.6.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/unorm/-/unorm-1.6.0.tgz";
-        sha512 = "b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA==";
-      };
-    };
-    "usertiming-0.1.8" = {
-      name = "usertiming";
-      packageName = "usertiming";
-      version = "0.1.8";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/usertiming/-/usertiming-0.1.8.tgz";
-        sha1 = "35378e7f41a248d40e658d05f80423469a7b0650";
+        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.5.tgz";
+        sha512 = "qZukoSxOG0urUTvjc2ERMTcAy+BiFh3weWAkeurLwjrCba73poHmG3E36XEjd/JGukMzwTL7uCxZiAexj8ppvQ==";
       };
     };
     "util-deprecate-1.0.2" = {
@@ -1210,51 +670,6 @@ let
         sha1 = "2299f02c6ded30d4a5961b0b9f74524a18f634fc";
       };
     };
-    "web-animations-js-2.3.2" = {
-      name = "web-animations-js";
-      packageName = "web-animations-js";
-      version = "2.3.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/web-animations-js/-/web-animations-js-2.3.2.tgz";
-        sha512 = "TOMFWtQdxzjWp8qx4DAraTWTsdhxVSiWa6NkPFSaPtZ1diKUxTn4yTix73A1euG1WbSOMMPcY51cnjTIHrGtDA==";
-      };
-    };
-    "whatwg-fetch-3.6.2" = {
-      name = "whatwg-fetch";
-      packageName = "whatwg-fetch";
-      version = "3.6.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz";
-        sha512 = "bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==";
-      };
-    };
-    "wicg-inert-3.1.1" = {
-      name = "wicg-inert";
-      packageName = "wicg-inert";
-      version = "3.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/wicg-inert/-/wicg-inert-3.1.1.tgz";
-        sha512 = "PhBaNh8ur9Xm4Ggy4umelwNIP6pPP1bv3EaWaKqfb/QNme2rdLjm7wIInvV4WhxVHhzA4Spgw9qNSqWtB/ca2A==";
-      };
-    };
-    "window-size-0.1.0" = {
-      name = "window-size";
-      packageName = "window-size";
-      version = "0.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz";
-        sha1 = "5438cd2ea93b202efa3a19fe8887aee7c94f9c9d";
-      };
-    };
-    "wordwrap-0.0.2" = {
-      name = "wordwrap";
-      packageName = "wordwrap";
-      version = "0.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz";
-        sha1 = "b79669bb42ecb409f83d583cad52ca17eaa1643f";
-      };
-    };
     "wordwrap-1.0.0" = {
       name = "wordwrap";
       packageName = "wordwrap";
@@ -1264,31 +679,13 @@ let
         sha1 = "27584810891456a4171c8d0226441ade90cbcaeb";
       };
     };
-    "wrappy-1.0.2" = {
-      name = "wrappy";
-      packageName = "wrappy";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz";
-        sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
-      };
-    };
-    "ws-7.4.6" = {
+    "ws-8.2.3" = {
       name = "ws";
       packageName = "ws";
-      version = "7.4.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz";
-        sha512 = "YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==";
-      };
-    };
-    "yaku-1.0.1" = {
-      name = "yaku";
-      packageName = "yaku";
-      version = "1.0.1";
+      version = "8.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yaku/-/yaku-1.0.1.tgz";
-        sha512 = "uZCrhA5DEytGnFfw9XZKIoWRG43v6oCA20vInFS4anPJb3G5Hy+PKuaKSMTJ+aChvFdNDxY5K8jFx5wmlLbTjQ==";
+        url = "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz";
+        sha512 = "wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==";
       };
     };
     "yallist-4.0.0" = {
@@ -1300,198 +697,112 @@ let
         sha512 = "3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==";
       };
     };
-    "yargs-3.10.0" = {
-      name = "yargs";
-      packageName = "yargs";
-      version = "3.10.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz";
-        sha1 = "f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1";
-      };
-    };
   };
 in
 {
-  "whitebophir-git+https://github.com/lovasoa/whitebophir.git#v1.14.6" = nodeEnv.buildNodePackage {
+  "whitebophir-git+https://github.com/lovasoa/whitebophir.git#v1.16.0" = nodeEnv.buildNodePackage {
     name = "whitebophir";
     packageName = "whitebophir";
-    version = "1.14.6";
+    version = "1.16.0";
     src = fetchgit {
       url = "https://github.com/lovasoa/whitebophir.git";
-      rev = "37d1d6811af911739d57520dc20dae6cac154464";
-      sha256 = "bda4e0077ef64861146e073c91b7488edfc0290f37478da6563e9ea16e6e4824";
+      rev = "8a3997b26419b3d510ad92c18071c4ce007b0081";
+      sha256 = "8aab3d89c72589d60f956f83a8e33d9d52a5b4da3c13004f9ab75b6dcbdaadcc";
     };
     dependencies = [
-      sources."@financial-times/polyfill-useragent-normaliser-1.10.0"
+      sources."@financial-times/polyfill-useragent-normaliser-1.10.1"
       sources."@financial-times/useragent_parser-1.6.0"
-      sources."@formatjs/ecma402-abstract-1.8.0"
-      sources."@formatjs/intl-datetimeformat-4.1.0"
-      sources."@formatjs/intl-displaynames-5.1.0"
-      sources."@formatjs/intl-getcanonicallocales-1.6.0"
-      sources."@formatjs/intl-listformat-6.1.0"
-      sources."@formatjs/intl-locale-2.4.26"
-      sources."@formatjs/intl-numberformat-7.1.0"
-      sources."@formatjs/intl-pluralrules-4.0.20"
-      sources."@formatjs/intl-relativetimeformat-9.1.0"
-      sources."@juggle/resize-observer-3.3.1"
-      sources."@types/component-emitter-1.2.10"
+      sources."@types/component-emitter-1.2.11"
       sources."@types/cookie-0.4.1"
       sources."@types/cors-2.8.12"
-      sources."@types/node-16.4.11"
-      sources."@webcomponents/template-1.5.0"
-      sources."Base64-1.1.0"
-      sources."abort-controller-3.0.0"
+      sources."@types/node-17.0.0"
       sources."accept-language-parser-1.5.0"
       sources."accepts-1.3.7"
-      sources."align-text-0.1.4"
-      sources."async-mutex-0.3.1"
-      sources."audio-context-polyfill-1.0.0"
-      sources."balanced-match-1.0.2"
-      sources."base64-arraybuffer-0.1.4"
+      sources."async-mutex-0.3.2"
+      sources."base64-arraybuffer-1.0.1"
       sources."base64id-2.0.0"
-      sources."brace-expansion-1.1.11"
-      sources."camelcase-1.2.1"
-      sources."center-align-0.1.3"
-      sources."cldr-core-38.1.0"
-      (sources."cliui-2.1.0" // {
-        dependencies = [
-          sources."wordwrap-0.0.2"
-        ];
-      })
       sources."component-emitter-1.3.0"
-      sources."concat-map-0.0.1"
       sources."cookie-0.4.1"
-      sources."core-util-is-1.0.2"
+      sources."core-util-is-1.0.3"
       sources."cors-2.8.5"
-      sources."current-script-polyfill-1.0.0"
-      sources."debug-4.1.1"
-      sources."decamelize-1.2.0"
-      sources."deep-is-0.1.3"
+      (sources."debug-2.6.9" // {
+        dependencies = [
+          sources."ms-2.0.0"
+        ];
+      })
       sources."depd-1.1.2"
       sources."destroy-1.0.4"
-      sources."diff-4.0.2"
       sources."ee-first-1.1.1"
       sources."encodeurl-1.0.2"
-      (sources."engine.io-5.1.1" // {
+      (sources."engine.io-6.1.0" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
-      sources."engine.io-parser-4.0.2"
+      sources."engine.io-parser-5.0.2"
       sources."escape-html-1.0.3"
       sources."etag-1.8.1"
-      sources."event-source-polyfill-1.0.24"
-      sources."event-target-shim-5.0.1"
-      sources."fastestsmallesttextencoderdecoder-1.0.22"
       sources."fresh-0.5.2"
       sources."from2-2.3.0"
       sources."from2-string-1.1.0"
-      sources."fs.realpath-1.0.0"
-      sources."glob-7.1.7"
-      sources."graceful-fs-4.2.6"
+      sources."graceful-fs-4.2.8"
       sources."handlebars-4.7.7"
-      sources."html5shiv-3.7.3"
-      sources."http-errors-1.7.3"
-      sources."inflight-1.0.6"
+      sources."http-errors-1.8.1"
       sources."inherits-2.0.4"
-      sources."ip-regex-2.1.0"
-      sources."is-buffer-1.1.6"
-      sources."is-url-1.2.4"
-      sources."is2-2.0.1"
       sources."isarray-1.0.0"
-      sources."js-polyfills-0.1.43"
-      sources."json3-3.3.3"
-      sources."kind-of-3.2.2"
-      sources."lazy-cache-1.0.4"
-      sources."longest-1.0.1"
       sources."lru-cache-6.0.0"
       sources."merge2-1.4.1"
       sources."mime-1.6.0"
-      sources."mime-db-1.49.0"
-      sources."mime-types-2.1.32"
-      sources."minimatch-3.0.4"
+      sources."mime-db-1.51.0"
+      sources."mime-types-2.1.34"
       sources."minimist-1.2.5"
-      sources."mkdirp-1.0.4"
-      sources."mnemonist-0.38.3"
+      sources."mnemonist-0.38.5"
       sources."ms-2.1.3"
-      sources."mutationobserver-shim-0.3.7"
       sources."negotiator-0.6.2"
       sources."neo-async-2.6.2"
       sources."object-assign-4.1.1"
-      sources."obliterator-1.6.1"
+      sources."obliterator-2.0.1"
       sources."on-finished-2.3.0"
-      sources."once-1.4.0"
       sources."parseurl-1.3.3"
-      sources."path-is-absolute-1.0.1"
-      sources."picturefill-3.0.3"
-      (sources."polyfill-library-3.107.1" // {
-        dependencies = [
-          sources."source-map-0.5.7"
-          sources."uglify-js-2.8.29"
-        ];
-      })
+      sources."polyfill-library-3.110.1"
       sources."process-nextick-args-2.0.1"
       sources."promise-polyfill-1.1.6"
       sources."range-parser-1.2.1"
       sources."readable-stream-2.3.7"
-      sources."repeat-string-1.6.1"
-      sources."right-align-0.1.3"
-      sources."rimraf-3.0.2"
       sources."safe-buffer-5.1.2"
-      sources."seamless-scroll-polyfill-1.2.3"
       sources."semver-7.3.5"
-      (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."setprototypeof-1.1.1"
-      (sources."socket.io-4.1.3" // {
+      sources."send-0.17.2"
+      sources."serve-static-1.14.2"
+      sources."setprototypeof-1.2.0"
+      (sources."socket.io-4.4.0" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
-      sources."socket.io-adapter-2.3.1"
+      sources."socket.io-adapter-2.3.3"
       (sources."socket.io-parser-4.0.4" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
       sources."source-map-0.6.1"
-      sources."spdx-licenses-1.0.0"
       sources."statsd-client-0.4.7"
       sources."statuses-1.5.0"
       sources."stream-from-promise-1.0.0"
       sources."stream-to-string-1.2.0"
       sources."string_decoder-1.1.1"
-      sources."toidentifier-1.0.0"
+      sources."toidentifier-1.0.1"
       sources."toposort-2.0.2"
-      sources."tslib-2.3.0"
-      sources."uglify-js-3.14.1"
-      sources."uglify-to-browserify-1.0.2"
-      sources."unorm-1.6.0"
-      sources."usertiming-0.1.8"
+      sources."tslib-2.3.1"
+      sources."uglify-js-3.14.5"
       sources."util-deprecate-1.0.2"
       sources."vary-1.1.2"
-      sources."web-animations-js-2.3.2"
-      sources."whatwg-fetch-3.6.2"
-      sources."wicg-inert-3.1.1"
-      sources."window-size-0.1.0"
       sources."wordwrap-1.0.0"
-      sources."wrappy-1.0.2"
-      sources."ws-7.4.6"
-      sources."yaku-1.0.1"
+      sources."ws-8.2.3"
       sources."yallist-4.0.0"
-      sources."yargs-3.10.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
diff --git a/pkgs/servers/web-apps/whitebophir/node-packages.json b/pkgs/servers/web-apps/whitebophir/node-packages.json
index 72eabcc7ec1..0d0615804f5 100644
--- a/pkgs/servers/web-apps/whitebophir/node-packages.json
+++ b/pkgs/servers/web-apps/whitebophir/node-packages.json
@@ -1,3 +1,3 @@
 [
-  { "whitebophir": "git+https://github.com/lovasoa/whitebophir.git#v1.14.6" }
+  { "whitebophir": "git+https://github.com/lovasoa/whitebophir.git#v1.16.0" }
 ]
diff --git a/pkgs/servers/web-apps/wiki-js/default.nix b/pkgs/servers/web-apps/wiki-js/default.nix
index ca9acdf27cd..0b6b88f31ba 100644
--- a/pkgs/servers/web-apps/wiki-js/default.nix
+++ b/pkgs/servers/web-apps/wiki-js/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "wiki-js";
-  version = "2.5.219";
+  version = "2.5.260";
 
   src = fetchurl {
     url = "https://github.com/Requarks/wiki/releases/download/${version}/${pname}.tar.gz";
-    sha256 = "sha256-xzxOv17B+9wegtNXGr9SD4KUWlMbrvPtZhvfmoZhBNc=";
+    sha256 = "sha256-X9GmW2m94e7ft+ujJeR3ig5d8rsbEYzmlG52YJt2294=";
   };
 
   sourceRoot = ".";
diff --git a/pkgs/servers/x11/xorg/overrides.nix b/pkgs/servers/x11/xorg/overrides.nix
index 8a415c57a61..27a4da9622b 100644
--- a/pkgs/servers/x11/xorg/overrides.nix
+++ b/pkgs/servers/x11/xorg/overrides.nix
@@ -649,11 +649,30 @@ self: super:
         ];
         postInstall = ":"; # prevent infinite recursion
       });
+
+      fpgit = commit: sha256: name: fetchpatch (
+        {
+          url = "https://gitlab.freedesktop.org/xorg/xserver/-/commit/${commit}.diff";
+          inherit sha256;
+        } // lib.optionalAttrs (name != null) {
+            name = name + ".patch";
+          }
+      );
     in
       if (!isDarwin)
       then {
         outputs = [ "out" "dev" ];
         patches = [
+          # https://lists.x.org/archives/xorg-announce/2021-December/003122.html
+          (fpgit "ebce7e2d80e7c80e1dda60f2f0bc886f1106ba60"
+            "sNi16FqN4rS4s8j5+PUVeOQBasccCkB5KvywP7xl28M=" "CVE-2021-4008")
+          (fpgit "b5196750099ae6ae582e1f46bd0a6dad29550e02"
+            "5hgzQXBBaJfhSTa9hs8K2N1fQ6+Vp8TTkertmQhkw8Y=" "CVE-2021-4009")
+          (fpgit "6c4c53010772e3cb4cb8acd54950c8eec9c00d21"
+            "1gGG9RpjLMi7Emwh13/z5CN1+ISLsPL3hJXP5gQcNkE=" "CVE-2021-4010")
+          (fpgit "e56f61c79fc3cee26d83cda0f84ae56d5979f768"
+            "e1KgSXGwwI3GgcYeWaF3KHPmkE4tf9VTqvfTYqRpysY=" "CVE-2021-4011")
+
           # 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
diff --git a/pkgs/shells/zsh/oh-my-zsh/default.nix b/pkgs/shells/zsh/oh-my-zsh/default.nix
index deec8d9b838..d15bd024573 100644
--- a/pkgs/shells/zsh/oh-my-zsh/default.nix
+++ b/pkgs/shells/zsh/oh-my-zsh/default.nix
@@ -5,15 +5,15 @@
 , git, nix, nixfmt, jq, coreutils, gnused, curl, cacert }:
 
 stdenv.mkDerivation rec {
-  version = "2021-12-13";
+  version = "2021-12-18";
   pname = "oh-my-zsh";
-  rev = "9a3d853481645ae0f961e9cc8421fc5d84e2c3c3";
+  rev = "904f8685f75ff5dd3f544f8c6f2cabb8e5952e9a";
 
   src = fetchFromGitHub {
     inherit rev;
     owner = "ohmyzsh";
     repo = "ohmyzsh";
-    sha256 = "TFktV7xBm3KaRfW+cUGdwIZZD7TfU0gaq4J8cKBjtMM=";
+    sha256 = "Pos7LaNQllZrzBUx8a7QXi1sAVcIABQJOLUjIwGIP/U=";
   };
 
   installPhase = ''
diff --git a/pkgs/shells/zsh/zinit/default.nix b/pkgs/shells/zsh/zinit/default.nix
index 126ed8e67c6..9946d7d0c3a 100644
--- a/pkgs/shells/zsh/zinit/default.nix
+++ b/pkgs/shells/zsh/zinit/default.nix
@@ -34,7 +34,7 @@ stdenvNoCC.mkDerivation rec {
   #TODO:doc output
 
   meta = with lib; {
-    homepage = "https://github.com/zdharma/zinit";
+    homepage = "https://github.com/zdharma-continuum/zinit";
     description = "Flexible zsh plugin manager";
     license = licenses.mit;
     maintainers = with maintainers; [ pasqui23 sei40kr ];
diff --git a/pkgs/test/default.nix b/pkgs/test/default.nix
index b73617daa89..caed950c576 100644
--- a/pkgs/test/default.nix
+++ b/pkgs/test/default.nix
@@ -27,6 +27,10 @@ with pkgs;
   cc-multilib-gcc = callPackage ./cc-wrapper/multilib.nix { stdenv = gccMultiStdenv; };
   cc-multilib-clang = callPackage ./cc-wrapper/multilib.nix { stdenv = clangMultiStdenv; };
 
+  fetchpatch = callPackages ../build-support/fetchpatch/tests.nix { };
+  fetchgit = callPackages ../build-support/fetchgit/tests.nix { };
+  fetchFirefoxAddon = callPackages ../build-support/fetchfirefoxaddon/tests.nix { };
+
   install-shell-files = callPackage ./install-shell-files {};
 
   kernel-config = callPackage ./kernel.nix {};
@@ -35,8 +39,6 @@ with pkgs;
 
   macOSSierraShared = callPackage ./macos-sierra-shared {};
 
-  make-binary-wrapper = callPackage ./make-binary-wrapper { inherit makeBinaryWrapper; };
-
   cross = callPackage ./cross {};
 
   php = recurseIntoAttrs (callPackages ./php {});
diff --git a/pkgs/test/make-binary-wrapper/chdir.c b/pkgs/test/make-binary-wrapper/chdir.c
index c67c695b1c3..9e0b7e2c7f5 100644
--- a/pkgs/test/make-binary-wrapper/chdir.c
+++ b/pkgs/test/make-binary-wrapper/chdir.c
@@ -5,7 +5,7 @@
 #define assert_success(e) do { if ((e) < 0) { perror(#e); abort(); } } while (0)
 
 int main(int argc, char **argv) {
-    assert_success(chdir("/tmp/foo"));
+    assert_success(chdir("./tmp/foo"));
     argv[0] = "/send/me/flags";
     return execv("/send/me/flags", argv);
 }
diff --git a/pkgs/test/make-binary-wrapper/chdir.cmdline b/pkgs/test/make-binary-wrapper/chdir.cmdline
index 15235f20621..d6ab081e8d3 100644
--- a/pkgs/test/make-binary-wrapper/chdir.cmdline
+++ b/pkgs/test/make-binary-wrapper/chdir.cmdline
@@ -1 +1 @@
-    --chdir /tmp/foo
+    --chdir ./tmp/foo
diff --git a/pkgs/test/make-binary-wrapper/chdir.env b/pkgs/test/make-binary-wrapper/chdir.env
index db129d68af7..ea1c61054e5 100644
--- a/pkgs/test/make-binary-wrapper/chdir.env
+++ b/pkgs/test/make-binary-wrapper/chdir.env
@@ -1,2 +1,2 @@
-CWD=/tmp/foo
+CWD=SUBST_CWD/tmp/foo
 SUBST_ARGV0
diff --git a/pkgs/test/make-binary-wrapper/default.nix b/pkgs/test/make-binary-wrapper/default.nix
index c5bb6970aac..b5bbf994ffa 100644
--- a/pkgs/test/make-binary-wrapper/default.nix
+++ b/pkgs/test/make-binary-wrapper/default.nix
@@ -1,12 +1,12 @@
 { lib, coreutils, python3, gcc, writeText, writeScript, runCommand, makeBinaryWrapper }:
 
 let
-  env = { nativeBuildInputs = [ makeBinaryWrapper ]; };
+  env = { buildInputs = [ makeBinaryWrapper ]; };
   envCheck = runCommand "envcheck" env ''
     ${gcc}/bin/cc -Wall -Werror -Wpedantic -o $out ${./envcheck.c}
   '';
   makeGoldenTest = testname: runCommand "test-wrapper_${testname}" env ''
-    mkdir -p /tmp/foo
+    mkdir -p ./tmp/foo
 
     params=$(<"${./.}/${testname}.cmdline")
     eval "makeCWrapper /send/me/flags $params" > wrapper.c
diff --git a/pkgs/tools/admin/aliyun-cli/default.nix b/pkgs/tools/admin/aliyun-cli/default.nix
index bc27688337f..a42ba2e73bb 100644
--- a/pkgs/tools/admin/aliyun-cli/default.nix
+++ b/pkgs/tools/admin/aliyun-cli/default.nix
@@ -2,28 +2,30 @@
 
 buildGoModule rec {
   pname = "aliyun-cli";
-  version = "3.0.100";
+  version = "3.0.102";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "aliyun";
     repo = pname;
     fetchSubmodules = true;
-    sha256 = "sha256-gS+AN0H1/Xe9DQQfoCX7tAI5fHwEai4ONrAtpX9E6PE=";
+    sha256 = "sha256-DUNWfwLA7if9NVUaUlwfW0i2CVcZyg2gIKmi1Nu485k=";
   };
+
   vendorSha256 = "sha256-c7LsCNcxdHwDBEknXJt9AyrmFcem8YtUYy06vNDBdDY=";
 
-  subPackages = ["aliyun-openapi-meta" "main"];
+  subPackages = [ "main" ];
 
-  ldFlags = "-X 'github.com/aliyun/${pname}/cli.Version=${version}'";
+  ldFlags = [ "-s" "-w" "-X github.com/aliyun/aliyun-cli/cli.Version=${version}" ];
 
   postInstall = ''
     mv $out/bin/main $out/bin/aliyun
   '';
 
   meta = with lib; {
-    description = "Tool to manage and use Alibaba Cloud resources through a command line interface.";
+    description = "Tool to manage and use Alibaba Cloud resources through a command line interface";
     homepage = "https://github.com/aliyun/aliyun-cli";
+    changelog = "https://github.com/aliyun/aliyun-cli/raw/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ ornxka ];
   };
diff --git a/pkgs/tools/admin/exoscale-cli/default.nix b/pkgs/tools/admin/exoscale-cli/default.nix
index d0af675ae40..ab8c5813884 100644
--- a/pkgs/tools/admin/exoscale-cli/default.nix
+++ b/pkgs/tools/admin/exoscale-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "exoscale-cli";
-  version = "1.49.0";
+  version = "1.49.1";
 
   src = fetchFromGitHub {
     owner  = "exoscale";
     repo   = "cli";
     rev    = "v${version}";
-    sha256 = "sha256-R/EP+oNe6pebuTrWUZprajEcOTcaKG3li0hEb+4pTp0=";
+    sha256 = "sha256-QBRRx+3ltLlUeckvJBA3rSLna6L44X44ObCMyhBnBhg=";
   };
 
   goPackagePath = "github.com/exoscale/cli";
diff --git a/pkgs/tools/admin/procs/default.nix b/pkgs/tools/admin/procs/default.nix
index 1510226d45b..3d93fb75033 100644
--- a/pkgs/tools/admin/procs/default.nix
+++ b/pkgs/tools/admin/procs/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "procs";
-  version = "0.11.10";
+  version = "0.11.12";
 
   src = fetchFromGitHub {
     owner = "dalance";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-kt1qv4x48qXzlqvV2nfFXkYzgeC4m+rA7NA+coznNno=";
+    sha256 = "sha256-O2jH56l4SCYF+9oNhviJdybKmUo/iuR5mOOugc4Hw6Y=";
   };
 
-  cargoSha256 = "sha256-itncLfIjNwwAO393gZ5xyRnig/N0JEovBQvOIAC4e9g=";
+  cargoSha256 = "sha256-MrYOOAFj+mVm/EPx4CGQI7YhxPcF0jBgnnJk/DV2ojk=";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -29,6 +29,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/dalance/procs";
     changelog = "https://github.com/dalance/procs/raw/v${version}/CHANGELOG.md";
     license = licenses.mit;
-    maintainers = with maintainers; [ dalance Br1ght0ne ];
+    maintainers = with maintainers; [ dalance Br1ght0ne SuperSandro2000 ];
   };
 }
diff --git a/pkgs/tools/admin/tightvnc/default.nix b/pkgs/tools/admin/tightvnc/default.nix
index 0da2e7875f0..e466b95c4f0 100644
--- a/pkgs/tools/admin/tightvnc/default.nix
+++ b/pkgs/tools/admin/tightvnc/default.nix
@@ -82,5 +82,9 @@ stdenv.mkDerivation rec {
 
     maintainers = [];
     platforms = lib.platforms.unix;
+
+    knownVulnerabilities = [ "CVE-2021-42785" ];
+    # Unfortunately, upstream doesn't maintain the 1.3 branch anymore, and the
+    # new 2.x branch is substantially different (requiring either Windows or Java)
   };
 }
diff --git a/pkgs/tools/archivers/zpaq/default.upstream b/pkgs/tools/archivers/zpaq/default.upstream
deleted file mode 100644
index 84daee900ce..00000000000
--- a/pkgs/tools/archivers/zpaq/default.upstream
+++ /dev/null
@@ -1,6 +0,0 @@
-url http://mattmahoney.net/dc/zpaq.html
-version_link 'zpaq[0-9]+[.]zip'
-version "[^0-9]*([0-9]+)[^0-9]*" '\1'
-name zpaq
-attribute_name zpaq
-minimize_overwrite
diff --git a/pkgs/tools/archivers/zpaq/zpaqd.nix b/pkgs/tools/archivers/zpaq/zpaqd.nix
index c2f214ea2a6..1d674911f49 100644
--- a/pkgs/tools/archivers/zpaq/zpaqd.nix
+++ b/pkgs/tools/archivers/zpaq/zpaqd.nix
@@ -1,25 +1,17 @@
 { lib, stdenv, fetchurl, unzip }:
 
 let
-  # Generated upstream information
-  s = rec {
-    baseName="zpaqd";
-    version="715";
-    name="${baseName}-${version}";
-    hash="0868lynb45lm79yvx5f10lj5h6bfv0yck8whcls2j080vmk3n7rk";
-    url="http://mattmahoney.net/dc/zpaqd715.zip";
-    sha256="0868lynb45lm79yvx5f10lj5h6bfv0yck8whcls2j080vmk3n7rk";
-  };
-
   compileFlags = lib.concatStringsSep " " ([ "-O3" "-DNDEBUG" ]
     ++ lib.optional (stdenv.hostPlatform.isUnix) "-Dunix -pthread"
     ++ lib.optional (!stdenv.hostPlatform.isx86) "-DNOJIT");
 in
-stdenv.mkDerivation {
-  inherit (s) name version;
+stdenv.mkDerivation rec {
+  pname = "zpaqd";
+  version = "715";
 
   src = fetchurl {
-    inherit (s) url sha256;
+    url = "http://mattmahoney.net/dc/zpaqd${version}.zip";
+    sha256 = "sha256-Mx87Zt0AASk0ZZCjyTzYbhlYJAXBlb59OpUWsqynyCA=";
   };
 
   sourceRoot = ".";
@@ -41,7 +33,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "ZPAQ archive (de)compressor and algorithm development tool";
-    license = licenses.gpl3Plus ;
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/tools/archivers/zpaq/zpaqd.upstream b/pkgs/tools/archivers/zpaq/zpaqd.upstream
deleted file mode 100644
index ef83c58e460..00000000000
--- a/pkgs/tools/archivers/zpaq/zpaqd.upstream
+++ /dev/null
@@ -1,5 +0,0 @@
-url http://mattmahoney.net/dc/zpaqutil.html
-version_link 'zpaqd[0-9]+[.]zip'
-version "[^0-9]*([0-9]+)[^0-9]*" '\1'
-name zpaqd
-attribute_name zpaqd
diff --git a/pkgs/tools/audio/abcmidi/default.nix b/pkgs/tools/audio/abcmidi/default.nix
index b929b6204a2..48b4e88b0ae 100644
--- a/pkgs/tools/audio/abcmidi/default.nix
+++ b/pkgs/tools/audio/abcmidi/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "abcMIDI";
-  version = "2021.12.10";
+  version = "2021.12.12";
 
   src = fetchzip {
     url = "https://ifdo.ca/~seymour/runabc/${pname}-${version}.zip";
-    hash = "sha256-Jvj7gOrIT0IXihPkPDH9n80bg4xllvPTKxIWA3wX5B0=";
+    hash = "sha256-34yRMa68x93u8/fGTzflh1L/Lf7ULPXsDaC7GUy+i8g=";
   };
 
   meta = with lib; {
diff --git a/pkgs/tools/audio/beets/bash-completion-always-print.patch b/pkgs/tools/audio/beets/bash-completion-always-print.patch
index 7bc3e57117e..8a31fe22f72 100644
--- a/pkgs/tools/audio/beets/bash-completion-always-print.patch
+++ b/pkgs/tools/audio/beets/bash-completion-always-print.patch
@@ -1,33 +1,34 @@
 diff --git i/beets/ui/commands.py w/beets/ui/commands.py
-index 4d010f4b..0b023585 100755
+index 3a337401..d08a6763 100755
 --- i/beets/ui/commands.py
 +++ w/beets/ui/commands.py
-@@ -1741,20 +1741,6 @@ default_commands.append(config_cmd)
+@@ -1759,21 +1759,6 @@ default_commands.append(config_cmd)
  def print_completion(*args):
      for line in completion_script(default_commands + plugins.commands()):
-         print_(line, end=u'')
+         print_(line, end='')
 -    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.')
+-        log.warning('Warning: Unable to find the bash-completion package. '
+-                    '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',
+-    '/etc/bash_completion',
+-    '/usr/share/bash-completion/bash_completion',
+-    '/usr/local/share/bash-completion/bash_completion',
 -    # SmartOS
--    u'/opt/local/share/bash-completion/bash_completion',
+-    '/opt/local/share/bash-completion/bash_completion',
 -    # Homebrew (before bash-completion2)
--    u'/usr/local/etc/bash_completion',
+-    '/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
+index 9804b0a1..c3b53243 100644
 --- i/test/test_ui.py
 +++ w/test/test_ui.py
-@@ -1230,12 +1230,7 @@ class CompletionTest(_common.TestCase, TestHelper):
+@@ -1229,12 +1229,7 @@ class CompletionTest(_common.TestCase, TestHelper):
                                    stdout=subprocess.PIPE, env=env)
  
          # Load bash_completion library.
@@ -36,8 +37,8 @@ index 5cfed1fd..9d3dc458 100644
 -                bash_completion = path
 -                break
 -        else:
--            self.skipTest(u'bash-completion script not found')
-+        self.skipTest(u'bash-completion script not found')
+-            self.skipTest('bash-completion script not found')
++        self.skipTest('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/convert-plugin-ffmpeg-path.patch b/pkgs/tools/audio/beets/convert-plugin-ffmpeg-path.patch
index bcc77179d79..1bc17893448 100644
--- a/pkgs/tools/audio/beets/convert-plugin-ffmpeg-path.patch
+++ b/pkgs/tools/audio/beets/convert-plugin-ffmpeg-path.patch
@@ -1,43 +1,34 @@
 diff --git i/beetsplug/convert.py w/beetsplug/convert.py
-index 70363f6e..2962aa4f 100644
+index 6bc07c28..039fb452 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',
+@@ -118,22 +118,22 @@ class ConvertPlugin(BeetsPlugin):
+             'id3v23': 'inherit',
+             'formats': {
+                 'aac': {
+-                    'command': 'ffmpeg -i $source -y -vn -acodec aac '
++                    'command': '@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec aac '
+                     '-aq 1 $dest',
+                     'extension': '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',
+                 'alac': {
+-                    'command': 'ffmpeg -i $source -y -vn -acodec alac $dest',
++                    'command': '@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec alac $dest',
+                     'extension': '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',
+-                'flac': 'ffmpeg -i $source -y -vn -acodec flac $dest',
+-                'mp3': 'ffmpeg -i $source -y -vn -aq 2 $dest',
++                'flac': '@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec flac $dest',
++                'mp3': '@ffmpeg@/bin/ffmpeg -i $source -y -vn -aq 2 $dest',
+                 'opus':
+-                    'ffmpeg -i $source -y -vn -acodec libopus -ab 96k $dest',
++                    '@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec libopus -ab 96k $dest',
+                 'ogg':
+-                    'ffmpeg -i $source -y -vn -acodec libvorbis -aq 3 $dest',
++                    '@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec libvorbis -aq 3 $dest',
+                 'wma':
+-                    'ffmpeg -i $source -y -vn -acodec wmav2 -vn $dest',
++                    '@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec wmav2 -vn $dest',
              },
-             u'max_bitrate': 500,
-             u'auto': False,
+             'max_bitrate': 500,
+             'auto': False,
diff --git a/pkgs/tools/audio/beets/default.nix b/pkgs/tools/audio/beets/default.nix
index 7114d6801b4..6789bd5f962 100644
--- a/pkgs/tools/audio/beets/default.nix
+++ b/pkgs/tools/audio/beets/default.nix
@@ -1,6 +1,18 @@
-{ stdenv, lib, fetchFromGitHub, writeScript, glibcLocales, diffPlugins, substituteAll
-, pythonPackages, imagemagick, gobject-introspection, gst_all_1
-, runtimeShell, unstableGitUpdater
+{ stdenv
+, lib
+, fetchFromGitHub
+, writeScript
+, glibcLocales
+, diffPlugins
+, substituteAll
+, pythonPackages
+# can be null, if you wish to disable a reference to it. It's needed for the
+# artresizer, see:
+# https://beets.readthedocs.io/en/v1.6.0/plugins/fetchart.html#image-resizing
+, imagemagick
+, gobject-introspection
+, gst_all_1
+, runtimeShell
 
 # external plugins package set
 , beetsExternalPlugins
@@ -73,9 +85,9 @@ let
   };
 
   pluginsWithoutDeps = [
-    "bareasc" "bench" "bpd" "bpm" "bucket" "duplicates" "edit" "embedart"
+    "albumtypes" "bareasc" "bench" "bpd" "bpm" "bucket" "duplicates" "edit" "embedart"
     "export" "filefilter" "fish" "freedesktop" "fromfilename" "ftintitle" "fuzzy"
-    "hook" "ihate" "importadded" "importfeeds" "info" "inline" "ipfs"
+    "hook" "ihate" "importadded" "importfeeds" "info" "inline" "ipfs" "gmusic"
     "mbcollection" "mbsubmit" "mbsync" "metasync" "missing" "parentwork" "permissions" "play"
     "plexupdate" "random" "rewrite" "scrub" "smartplaylist" "spotify" "the"
     "types" "unimported" "zero"
@@ -89,24 +101,15 @@ let
   testShell = "${bashInteractive}/bin/bash --norc";
   completion = "${bash-completion}/share/bash-completion/bash_completion";
 
-  # This is a stripped down beets for testing of the external plugins.
-  externalTestArgs.beets = (lib.beets.override {
-    enableAlternatives = false;
-    enableCopyArtifacts = false;
-    enableExtraFiles = false;
-  }).overrideAttrs (lib.const {
-    doInstallCheck = false;
-  });
-
 in pythonPackages.buildPythonApplication rec {
   pname = "beets";
-  version = "1.5.0";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "beetbox";
     repo = "beets";
     rev = "v${version}";
-    sha256 = "sha256-yQMCJUwpjDDhPffBS6LUq6z4iT1VyFQE0R27XEbYXbY=";
+    sha256 = "sha256-fT+rCJJQR7bdfAcmeFRaknmh4ZOP4RCx8MXpq7/D8tM=";
   };
 
   propagatedBuildInputs = [
@@ -152,7 +155,6 @@ in pythonPackages.buildPythonApplication rec {
   ;
 
   buildInputs = [
-    imagemagick
   ] ++ (with gst_all_1; [
     gst-plugins-base
     gst-plugins-good
@@ -167,7 +169,7 @@ in pythonPackages.buildPythonApplication rec {
     responses
     # Although considered as plugin dependencies, they are needed for the
     # tests, for disabling them via an override makes the build fail. see:
-    # https://github.com/beetbox/beets/blob/v1.4.9/setup.py
+    # https://github.com/beetbox/beets/blob/v1.6.0/setup.py
     pylast
     mpd2
     discogs-client
@@ -177,10 +179,14 @@ in pythonPackages.buildPythonApplication rec {
   patches = [
     # 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
   ]
+    # Fix path to imagemagick, used for the artresizer.py file. This reference
+    # to imagemagick might be expensive for some people, so the patch can be
+    # disabled if imagemagick is set to null
+    ++ lib.optional (imagemagick != null) (substituteAll {
+      src = ./imagemagick-nix-path.patch;
+      inherit imagemagick;
+    })
     # 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 {
@@ -200,13 +206,10 @@ in pythonPackages.buildPythonApplication rec {
 
   # 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
 
+    # https://github.com/beetbox/beets/issues/1187
     sed -i -e 's/len(mf.images)/0/' test/test_zero.py
-
-    # Google Play Music was discontinued
-    rm -r beetsplug/gmusic.py
   '';
 
   postInstall = ''
@@ -256,7 +259,10 @@ in pythonPackages.buildPythonApplication rec {
     runHook postInstallCheck
   '';
 
-  makeWrapperArgs = [ "--set GI_TYPELIB_PATH \"$GI_TYPELIB_PATH\"" "--set GST_PLUGIN_SYSTEM_PATH_1_0 \"$GST_PLUGIN_SYSTEM_PATH_1_0\"" ];
+  makeWrapperArgs = [
+    "--set GI_TYPELIB_PATH \"$GI_TYPELIB_PATH\""
+    "--set GST_PLUGIN_SYSTEM_PATH_1_0 \"$GST_PLUGIN_SYSTEM_PATH_1_0\""
+  ];
 
   passthru = {
     # FIXME: remove in favor of pkgs.beetsExternalPlugins
diff --git a/pkgs/tools/audio/beets/imagemagick-nix-path.patch b/pkgs/tools/audio/beets/imagemagick-nix-path.patch
new file mode 100644
index 00000000000..9a77703ede7
--- /dev/null
+++ b/pkgs/tools/audio/beets/imagemagick-nix-path.patch
@@ -0,0 +1,20 @@
+diff --git i/beets/util/artresizer.py w/beets/util/artresizer.py
+index 8683e228..2f38b4d6 100644
+--- i/beets/util/artresizer.py
++++ w/beets/util/artresizer.py
+@@ -334,13 +334,8 @@ class ArtResizer(metaclass=Shareable):
+         # not, fall back to the older, separate convert and identify
+         # commands.
+         if self.method[0] == IMAGEMAGICK:
+-            self.im_legacy = self.method[2]
+-            if self.im_legacy:
+-                self.im_convert_cmd = ['convert']
+-                self.im_identify_cmd = ['identify']
+-            else:
+-                self.im_convert_cmd = ['magick']
+-                self.im_identify_cmd = ['magick', 'identify']
++            self.im_convert_cmd = ['@imagemagick@/bin/magick']
++            self.im_identify_cmd = ['@imagemagick@/bin/magick', 'identify']
+ 
+     def resize(
+         self, maxwidth, path_in, path_out=None, quality=0, max_filesize=0
diff --git a/pkgs/tools/audio/beets/keyfinder-default-bin.patch b/pkgs/tools/audio/beets/keyfinder-default-bin.patch
deleted file mode 100644
index ec6bc3a5561..00000000000
--- a/pkgs/tools/audio/beets/keyfinder-default-bin.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git a/beetsplug/keyfinder.py b/beetsplug/keyfinder.py
-index 702003f0..08689cd8 100644
---- a/beetsplug/keyfinder.py
-+++ b/beetsplug/keyfinder.py
-@@ -31,7 +31,7 @@ class KeyFinderPlugin(BeetsPlugin):
-     def __init__(self):
-         super(KeyFinderPlugin, self).__init__()
-         self.config.add({
--            u'bin': u'KeyFinder',
-+            u'bin': u'keyfinder-cli',
-             u'auto': True,
-             u'overwrite': False,
-         })
-diff --git a/test/test_keyfinder.py b/test/test_keyfinder.py
-index c8735e47..d7d670a4 100644
---- a/test/test_keyfinder.py
-+++ b/test/test_keyfinder.py
-@@ -44,7 +44,7 @@ class KeyFinderTest(unittest.TestCase, TestHelper):
-         item.load()
-         self.assertEqual(item['initial_key'], 'C#m')
-         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 = util.CommandOutput(b"dbm", b"")
diff --git a/pkgs/tools/audio/beets/replaygain-default-ffmpeg.patch b/pkgs/tools/audio/beets/replaygain-default-ffmpeg.patch
index 0ceba3c0944..e441997cae5 100644
--- a/pkgs/tools/audio/beets/replaygain-default-ffmpeg.patch
+++ b/pkgs/tools/audio/beets/replaygain-default-ffmpeg.patch
@@ -1,26 +1,26 @@
 diff --git i/beetsplug/replaygain.py w/beetsplug/replaygain.py
-index 9d6fa23c..c5800039 100644
+index b6297d93..5c1cbbc0 100644
 --- i/beetsplug/replaygain.py
 +++ w/beetsplug/replaygain.py
-@@ -391,7 +391,7 @@ class FfmpegBackend(Backend):
+@@ -139,7 +139,7 @@ class FfmpegBackend(Backend):
  
      def __init__(self, config, log):
-         super(FfmpegBackend, self).__init__(config, log)
+         super().__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):
+@@ -975,11 +975,10 @@ class ReplayGainPlugin(BeetsPlugin):
      def __init__(self):
-         super(ReplayGainPlugin, self).__init__()
+         super().__init__()
  
 -        # default backend is 'command' for backward-compatibility.
          self.config.add({
              'overwrite': False,
              'auto': True,
--            'backend': u'command',
-+            'backend': u'ffmpeg',
+-            'backend': 'command',
++            'backend': 'ffmpeg',
              'threads': cpu_count(),
              'parallel_on_import': False,
              'per_disc': False,
diff --git a/pkgs/tools/filesystems/apfsprogs/default.nix b/pkgs/tools/filesystems/apfsprogs/default.nix
index 04e7cd89ae4..2c2aa108077 100644
--- a/pkgs/tools/filesystems/apfsprogs/default.nix
+++ b/pkgs/tools/filesystems/apfsprogs/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation {
   pname = "apfsprogs";
-  version = "unstable-2021-08-24";
+  version = "unstable-2021-10-26";
 
   src = fetchFromGitHub {
     owner = "linux-apfs";
     repo = "apfsprogs";
-    rev = "5efac5a701bcb56e23cfc182b5b3901bff27d343";
-    sha256 = "sha256-vQE586HwrPkF0uaTKrJ7yXb24ntRI0QmBla7N2ErAU8=";
+    rev = "05ecfa367a8142e289dc76333294271b5edfe395";
+    sha256 = "sha256-McGQG8f12DTp/It8KjMHGyfE5tgmgLd7MZlZIn/xC+E=";
   };
 
   buildPhase = ''
@@ -23,8 +23,8 @@ stdenv.mkDerivation {
 
   installPhase = ''
     runHook preInstall
-    make -C apfsck install BINDIR="$out/bin" MANDIR="$out/share/man8" $installFlags
-    make -C mkapfs install BINDIR="$out/bin" MANDIR="$out/share/man8" $installFlags
+    make -C apfsck install DESTDIR="$out" $installFlags
+    make -C mkapfs install DESTDIR="$out" $installFlags
     runHook postInstall
   '';
 
diff --git a/pkgs/tools/filesystems/mp3fs/default.nix b/pkgs/tools/filesystems/mp3fs/default.nix
index 1b80adc843a..6f872500e6b 100644
--- a/pkgs/tools/filesystems/mp3fs/default.nix
+++ b/pkgs/tools/filesystems/mp3fs/default.nix
@@ -1,18 +1,35 @@
-{ lib, stdenv, fetchurl, flac, fuse, lame, libid3tag, pkg-config }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, flac
+, fuse
+, lame
+, libid3tag
+, libvorbis
+, autoreconfHook
+, pkg-config
+, pandoc
+}:
 
 stdenv.mkDerivation rec {
   pname = "mp3fs";
-  version = "0.91";
+  version = "1.1.1";
 
-  src = fetchurl {
-    url = "https://github.com/khenriks/mp3fs/releases/download/v${version}/${pname}-${version}.tar.gz";
-    sha256 = "14ngiqg24p3a0s6hp33zjl4i46d8qn4v9id36psycq3n3csmwyx4";
+  src = fetchFromGitHub {
+    owner = "khenriks";
+    repo = "mp3fs";
+    rev = "v${version}";
+    sha256 = "sha256-dF+DfkNKvYOucS6KjYR1MMGxayM+1HVS8mbmaavmgKM=";
   };
 
-  patches = [ ./fix-statfs-operation.patch ];
+  postPatch = ''
+    substituteInPlace src/mp3fs.cc \
+      --replace "#include <fuse_darwin.h>" "" \
+      --replace "osxfuse_version()" "fuse_version()"
+  '';
 
-  buildInputs = [ flac fuse lame libid3tag ];
-  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ flac fuse lame libid3tag libvorbis ];
+  nativeBuildInputs = [ autoreconfHook pkg-config pandoc ];
 
   enableParallelBuilding = true;
 
@@ -20,13 +37,14 @@ stdenv.mkDerivation rec {
     description = "FUSE file system that transparently transcodes to MP3";
     longDescription = ''
       A read-only FUSE filesystem which transcodes between audio formats
-      (currently only FLAC to MP3) on the fly when files are opened and read.
-      It can let you use a FLAC collection with software and/or hardware
-      which only understands the MP3 format, or transcode files through
-      simple drag-and-drop in a file browser.
+      (currently FLAC and Ogg Vorbis to MP3) on the fly when opened and read.
+      This can let you use a FLAC or Ogg Vorbis collection with software
+      and/or hardware which only understands the MP3 format, or transcode
+      files through simple drag-and-drop in a file browser.
     '';
     homepage = "https://khenriks.github.io/mp3fs/";
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
+    maintainers = with maintainers; [ Luflosi ];
   };
 }
diff --git a/pkgs/tools/filesystems/mp3fs/fix-statfs-operation.patch b/pkgs/tools/filesystems/mp3fs/fix-statfs-operation.patch
deleted file mode 100644
index 9b3094e6005..00000000000
--- a/pkgs/tools/filesystems/mp3fs/fix-statfs-operation.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From fea072084ff9d7c4d2c688059a2462bb0e59a2ec Mon Sep 17 00:00:00 2001
-From: K Henriksson <kthenriksson@gmail.com>
-Date: Wed, 27 Aug 2014 21:55:18 -0700
-Subject: [PATCH] Fix statfs operation
-
-The statfs implementation does not properly translate names back to the
-original, since the major encoding rewrite. This corrects that, and
-should fix issue #27.
----
- src/fuseops.c | 15 +++++++++++++--
- 1 file changed, 13 insertions(+), 2 deletions(-)
-
-diff --git a/src/fuseops.c b/src/fuseops.c
-index e7b4e7e..c333cbd 100644
---- a/src/fuseops.c
-+++ b/src/fuseops.c
-@@ -337,9 +337,20 @@ static int mp3fs_statfs(const char *path, struct statvfs *stbuf) {
-     if (!origpath) {
-         goto translate_fail;
-     }
--    
-+
-+    /* pass-through for regular files */
-+    if (statvfs(origpath, stbuf) == 0) {
-+        goto passthrough;
-+    } else {
-+        /* Not really an error. */
-+        errno = 0;
-+    }
-+
-+    find_original(origpath);
-+
-     statvfs(origpath, stbuf);
--    
-+
-+passthrough:
-     free(origpath);
- translate_fail:
-     return -errno;
diff --git a/pkgs/tools/graphics/aaphoto/default.nix b/pkgs/tools/graphics/aaphoto/default.nix
index 1487f9eac43..744985acfd5 100644
--- a/pkgs/tools/graphics/aaphoto/default.nix
+++ b/pkgs/tools/graphics/aaphoto/default.nix
@@ -1,6 +1,6 @@
 { lib
 , stdenv
-, fetchFromGitHub
+, fetchurl
 , jasper
 , libpng
 , libjpeg
@@ -9,13 +9,11 @@
 
 stdenv.mkDerivation rec {
   pname = "aaphoto";
-  version = "0.43.1";
+  version = "0.45";
 
-  src = fetchFromGitHub {
-    owner = "log69";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-qngWWqV2vLm1gO0KJ0uHOCf2IoEAs1oiygpJtDvt3s8=";
+  src = fetchurl {
+    url = "http://log69.com/downloads/aaphoto_sources_${version}.tar.gz";
+    sha256 = "sha256-06koJM7jNVFqVgqg6BmOZ74foqk6yjUIFnwULzPZ4go=";
   };
 
   buildInputs = [
diff --git a/pkgs/tools/graphics/goverlay/default.nix b/pkgs/tools/graphics/goverlay/default.nix
index 11fe1a20a19..e1e5c36ee8b 100644
--- a/pkgs/tools/graphics/goverlay/default.nix
+++ b/pkgs/tools/graphics/goverlay/default.nix
@@ -6,6 +6,7 @@
 , fpc
 , lazarus-qt
 , wrapQtAppsHook
+, breeze-qt5
 , libGL
 , libGLU
 , libqt5pas
@@ -37,13 +38,13 @@ let
   '';
 in stdenv.mkDerivation rec {
   pname = "goverlay";
-  version = "0.7";
+  version = "0.7.1";
 
   src = fetchFromGitHub {
     owner = "benjamimgois";
     repo = pname;
     rev = version;
-    sha256 = "sha256-LdpgEfCNbf0/sY8v8D3KiapYEd23tVy4nQ7RuGwl7jM=";
+    sha256 = "sha256-oXkGrMHjs8uui0pzGYW8jnttet/5IX0r8eat0n5saFk=";
   };
 
   outputs = [ "out" "man" ];
@@ -68,6 +69,7 @@ in stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
+    breeze-qt5
     libGL
     libGLU
     libqt5pas
diff --git a/pkgs/tools/graphics/goverlay/find-xdg-data-files.patch b/pkgs/tools/graphics/goverlay/find-xdg-data-files.patch
index 86f31a68dc7..17ba9ed1140 100644
--- a/pkgs/tools/graphics/goverlay/find-xdg-data-files.patch
+++ b/pkgs/tools/graphics/goverlay/find-xdg-data-files.patch
@@ -1,8 +1,8 @@
 diff --git a/overlayunit.pas b/overlayunit.pas
-index 537491b..744f604 100644
+index 97a088d..4c42414 100644
 --- a/overlayunit.pas
 +++ b/overlayunit.pas
-@@ -5011,7 +5011,7 @@ begin
+@@ -5007,7 +5007,7 @@ begin
     //Determine Mangohud dependency status
  
            //locate MangoHud and store result in tmp folder
@@ -11,7 +11,7 @@ index 537491b..744f604 100644
  
            // Assign Text file dependency_mangohud to variable mangohudVAR
            AssignFile(mangohudVAR, '/tmp/goverlay/dependency_mangohud');
-@@ -5020,7 +5020,7 @@ begin
+@@ -5016,7 +5016,7 @@ begin
            CloseFile(mangohudVAR);
  
            // Read String and store value on mangohuddependencyVALUE based on result
@@ -20,7 +20,7 @@ index 537491b..744f604 100644
            mangohuddependencyVALUE := 1
            else
            mangohuddependencyVALUE := 0;
-@@ -5029,7 +5029,7 @@ begin
+@@ -5025,7 +5025,7 @@ begin
     //Determine vkBasalt dependency staus
  
             //locate vkBasalt and store result in tmp folder
@@ -29,7 +29,7 @@ index 537491b..744f604 100644
  
             // Assign Text file dependency_mangohud to variable mangohudVAR
             AssignFile(vkbasaltVAR, '/tmp/goverlay/dependency_vkbasalt');
-@@ -5038,7 +5038,7 @@ begin
+@@ -5034,7 +5034,7 @@ begin
             CloseFile(vkbasaltVAR);
  
             // Read String and store value on vkbasaltdependencyVALUE based on result
diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-libpinyin/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-libpinyin/default.nix
index b51efc2cb81..b5a10a83d86 100644
--- a/pkgs/tools/inputmethods/ibus-engines/ibus-libpinyin/default.nix
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-libpinyin/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ibus-libpinyin";
-  version = "1.12.0";
+  version = "1.12.1";
 
   src = fetchFromGitHub {
     owner = "libpinyin";
     repo = "ibus-libpinyin";
     rev = version;
-    sha256 = "sha256-fEEiwRoGGFAki1DMQvGuzjz2NAjhExyH11l8KTwjjsI=";
+    sha256 = "sha256-tSbH4twU+paCZdmzVQMSSg3AzBNkK4nnmOfbvUzvZTk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-libthai/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-libthai/default.nix
index 1bb2479b499..c72d7f1a604 100644
--- a/pkgs/tools/inputmethods/ibus-engines/ibus-libthai/default.nix
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-libthai/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ibus-libthai";
-  version = "0.1.4";
+  version = "0.1.5";
 
   src = fetchurl {
     url = "https://linux.thai.net/pub/ThaiLinux/software/libthai/ibus-libthai-${version}.tar.xz";
-    sha256 = "0iam7308rxkx2xwaabc5wyj7vrxgd4cr95pvwrkm8fr9gh2xnwgv";
+    sha256 = "sha256-egAxttjwuKiDoIuJluoOTJdotFZJe6ZOmJgdiFCAwx0=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/tools/misc/atuin/default.nix b/pkgs/tools/misc/atuin/default.nix
index ae7a17e721c..38171181187 100644
--- a/pkgs/tools/misc/atuin/default.nix
+++ b/pkgs/tools/misc/atuin/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, installShellFiles
 , rustPlatform
 , libiconv
 , Security
@@ -9,24 +10,37 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "atuin";
-  version = "0.7.1";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "ellie";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-jjGP8YeHnEr0f9RONwA6wZT872C0jXTvSRdt9zAu6KE=";
+    sha256 = "sha256-I/ZDaOAiHdWOkmf+jIWWxZ3C25UHsl6MB7mCRLADFNs=";
   };
 
-  cargoSha256 = "0vy6q3hjp374lyg00zxim8aplh83iq3f4rrmpz5vnpwbag1fdql3";
+  cargoSha256 = "sha256-KMss6Mpn4LHnkhtJyRea+D7mKItBK4lqq9syFEmCiFo=";
+
+  nativeBuildInputs = [ installShellFiles ];
 
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security SystemConfiguration ];
 
+  postInstall = ''
+    HOME=$(mktemp -d)
+    for shell in bash fish zsh; do
+      $out/bin/atuin gen-completions -s $shell -o .
+    done
+
+    installShellCompletion --cmd atuin \
+      --bash atuin.bash \
+      --fish atuin.fish \
+      --zsh _atuin
+  '';
+
   meta = with lib; {
     description = "Replacement for a shell history which records additional commands context with optional encrypted synchronization between machines";
     homepage = "https://github.com/ellie/atuin";
     license = licenses.mit;
-    maintainers = [ maintainers.onsails ];
-    broken = stdenv.isDarwin && stdenv.isAarch64;
+    maintainers = with maintainers; [ onsails SuperSandro2000 ];
   };
 }
diff --git a/pkgs/tools/misc/birdfont/default.nix b/pkgs/tools/misc/birdfont/default.nix
index 5473fa0e78c..a6c2ca77c5a 100644
--- a/pkgs/tools/misc/birdfont/default.nix
+++ b/pkgs/tools/misc/birdfont/default.nix
@@ -4,11 +4,11 @@ gobject-introspection, gsettings-desktop-schemas, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "birdfont";
-  version = "2.29.5";
+  version = "2.29.6";
 
   src = fetchurl {
     url = "https://birdfont.org/releases/${pname}-${version}.tar.xz";
-    sha256 = "sha256-eIqq4ehUB4lF89ikrHeN5Akq14nxYMxREZzPSVnv+nU=";
+    sha256 = "sha256-INHLH3wv1Rr3RLECAN2CQvctIjWdksxdfVfBkWnx+Is=";
   };
 
   nativeBuildInputs = [ python3 pkg-config vala gobject-introspection wrapGAppsHook ];
diff --git a/pkgs/tools/misc/diffoscope/default.nix b/pkgs/tools/misc/diffoscope/default.nix
index e3f045f6292..8e10a847628 100644
--- a/pkgs/tools/misc/diffoscope/default.nix
+++ b/pkgs/tools/misc/diffoscope/default.nix
@@ -9,11 +9,11 @@
 # Note: when upgrading this package, please run the list-missing-tools.sh script as described below!
 python3Packages.buildPythonApplication rec {
   pname = "diffoscope";
-  version = "194";
+  version = "197";
 
   src = fetchurl {
     url = "https://diffoscope.org/archive/diffoscope-${version}.tar.bz2";
-    sha256 = "sha256-9JU8srcn7UMdMPAdQlpDzr/Ife5joGJTTqJIN1IJGLk=";
+    sha256 = "sha256-EKTknFa6gGqd1kpy/k1Vh1Zya+XvBMlU5G6Rg2p66es=";
   };
 
   outputs = [ "out" "man" ];
diff --git a/pkgs/tools/misc/dpt-rp1-py/default.nix b/pkgs/tools/misc/dpt-rp1-py/default.nix
index 4fb7acb188a..b888d3bb7bd 100644
--- a/pkgs/tools/misc/dpt-rp1-py/default.nix
+++ b/pkgs/tools/misc/dpt-rp1-py/default.nix
@@ -1,13 +1,13 @@
 { lib, python3Packages, fetchFromGitHub }:
 python3Packages.buildPythonApplication rec {
   pname = "dpt-rp1-py";
-  version = "0.1.13";
+  version = "0.1.14";
 
   src = fetchFromGitHub {
     owner = "janten";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1jgkfn5kfnx98xs0dmym1h9mv1mrzlglk7x0fzs2jlc56c18w9dk";
+    sha256 = "0584xwf5nli94b060gysmv4civ83p4a88phpkyxaddlks0w7fc5h";
   };
 
   doCheck = false;
diff --git a/pkgs/tools/misc/esphome/default.nix b/pkgs/tools/misc/esphome/default.nix
index 26fe3c459cc..d1b00e74ef7 100644
--- a/pkgs/tools/misc/esphome/default.nix
+++ b/pkgs/tools/misc/esphome/default.nix
@@ -17,14 +17,14 @@ let
 in
 with python.pkgs; buildPythonApplication rec {
   pname = "esphome";
-  version = "2021.12.0";
+  version = "2021.12.2";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "sha256-OiqY72XuzkdVxrUyPwAgH/Lnrht4lTlLYOirjF9UpjM=";
+    sha256 = "sha256-Uq+VzU/j14+3LegEA9bQ1JGe5tUBuP0IX34LdritJdA=";
   };
 
   patches = [
diff --git a/pkgs/tools/misc/fbcat/default.nix b/pkgs/tools/misc/fbcat/default.nix
index 532d87de669..d90ec77b6d5 100644
--- a/pkgs/tools/misc/fbcat/default.nix
+++ b/pkgs/tools/misc/fbcat/default.nix
@@ -1,4 +1,8 @@
-{ lib, stdenv, fetchFromGitHub } :
+{ lib
+, stdenv
+, fetchFromGitHub
+, netpbm
+}:
 
 stdenv.mkDerivation rec {
   pname = "fbcat";
@@ -11,17 +15,16 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-ORzcd8XGy2BfwuPK5UX+K5Z+FYkb+tdg/gHl3zHjvbk=";
   };
 
-  # 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
+  postPatch = ''
+    substituteInPlace fbgrab \
+      --replace 'pnmtopng' '${netpbm}/bin/pnmtopng' \
+      --replace 'fbcat' "$out/bin/fbcat"
   '';
 
+  installFlags = [
+    "PREFIX=${placeholder "out"}"
+  ];
+
   meta = with lib; {
     homepage = "http://jwilk.net/software/fbcat";
     description = "Framebuffer screenshot tool";
diff --git a/pkgs/tools/misc/fbmark/default.nix b/pkgs/tools/misc/fbmark/default.nix
new file mode 100644
index 00000000000..fe8bca0e224
--- /dev/null
+++ b/pkgs/tools/misc/fbmark/default.nix
@@ -0,0 +1,23 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "fbmark";
+  version = "0.3";
+
+  src = fetchFromGitHub {
+    owner = "caramelli";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0n2czl2sy1k6r5ri0hp7jgq84xcwrx4x43bqvw1b4na99mqhyahn";
+  };
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  meta = with lib; {
+    description = "Linux Framebuffer Benchmark";
+    homepage = "https://github.com/caramelli/fbmark";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ davidak ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/misc/fdupes/default.nix b/pkgs/tools/misc/fdupes/default.nix
index 42c1c3a37df..ef51ad98032 100644
--- a/pkgs/tools/misc/fdupes/default.nix
+++ b/pkgs/tools/misc/fdupes/default.nix
@@ -1,17 +1,17 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, ncurses, pcre2 }:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, ncurses, pcre2 }:
 
 stdenv.mkDerivation rec {
   pname = "fdupes";
-  version = "2.1.1";
+  version = "2.1.2";
 
   src = fetchFromGitHub {
     owner = "adrianlopezroche";
     repo  = "fdupes";
     rev   = "v${version}";
-    sha256 = "1c5hv7vkfxsii1qafhsynzp9zkwim47xkpk27sy64qdsjnhysdak";
+    hash  = "sha256-WtSuFWRqQo5D/FLwl3AaIIfg6q+09A3aP5//J4AUzus=";
   };
 
-  nativeBuildInputs = [ autoreconfHook ];
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
   buildInputs = [ ncurses pcre2 ];
 
   meta = with lib; {
diff --git a/pkgs/tools/misc/flameshot/default.nix b/pkgs/tools/misc/flameshot/default.nix
index 6c4f71c507e..1c0fd19ad2a 100644
--- a/pkgs/tools/misc/flameshot/default.nix
+++ b/pkgs/tools/misc/flameshot/default.nix
@@ -21,7 +21,9 @@ mkDerivation rec {
   };
 
   patches = [
-    # Support for USE_LAUNCHER_ABSOLUTE_PATH.
+    # Use absolute install path for `Exec=` in the desktop file.
+    # This is required since KWin relies on absolute paths in `Exec=` to find a process'
+    # corresponding desktop file and check if it's allowed to take screenshot.
     # Should be removed when the next release comes out.
     (fetchpatch {
       url = "https://github.com/flameshot-org/flameshot/commit/1031980ed1e62d24d7f719998b7951d48801e3fa.patch";
@@ -44,9 +46,6 @@ mkDerivation rec {
   nativeBuildInputs = [ cmake qttools qtsvg ];
   buildInputs = [ qtbase ];
 
-  # Use relative path for the .desktop file.
-  cmakeFlags = [ "-DUSE_LAUNCHER_ABSOLUTE_PATH=OFF" ];
-
   meta = with lib; {
     description = "Powerful yet simple to use screenshot software";
     homepage = "https://github.com/flameshot-org/flameshot";
diff --git a/pkgs/tools/misc/fortune/default.nix b/pkgs/tools/misc/fortune/default.nix
index 6f77c54e30b..aa18409525d 100644
--- a/pkgs/tools/misc/fortune/default.nix
+++ b/pkgs/tools/misc/fortune/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fortune-mod";
-  version = "3.6.1";
+  version = "3.10.0";
 
   # We use fetchurl instead of fetchFromGitHub because the release pack has some
   # special files.
   src = fetchurl {
     url = "https://github.com/shlomif/fortune-mod/releases/download/${pname}-${version}/${pname}-${version}.tar.xz";
-    sha256 = "1cw7xf9xhh6d73y4h4q57g6akjhc1gq6xv37k57sx0wx77wjxqdp";
+    sha256 = "sha256-DR73JXpOkpaOsymP9nxAklCxdoxAnjL1GeNF6D/tDTc=";
   };
 
   nativeBuildInputs = [ cmake perl ];
diff --git a/pkgs/tools/misc/gotify-cli/default.nix b/pkgs/tools/misc/gotify-cli/default.nix
index 05a93b44b94..7f5eef3b442 100644
--- a/pkgs/tools/misc/gotify-cli/default.nix
+++ b/pkgs/tools/misc/gotify-cli/default.nix
@@ -2,18 +2,16 @@
 
 buildGoModule rec {
   pname = "gotify-cli";
-  version = "2.2.0";
+  version = "2.2.1";
 
   src = fetchFromGitHub {
     owner = "gotify";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "0hgh1i8rdmf12qmk66cgksv8hz5qzkfbfb6cfmrkhbq765xkm4ir";
+    sha256 = "sha256-X41m7bCilDgnTMJy3ISz8g7dAtaz/lphwaCPZDGMDXk=";
   };
 
-  vendorSha256 = "1l47s0h0v4cgqcsm5008cknvfa4vnv6f7n43d8ga0xq5ikqqzmja";
-
-  doCheck = false;
+  vendorSha256 = "sha256-EKscJM8r1dbKRQPSZFwFqJYACkQynIS347460PuxQiU=";
 
   postInstall = ''
     mv $out/bin/cli $out/bin/gotify
diff --git a/pkgs/tools/misc/graylog/default.nix b/pkgs/tools/misc/graylog/default.nix
index 3fd00a5e411..1480f099f9f 100644
--- a/pkgs/tools/misc/graylog/default.nix
+++ b/pkgs/tools/misc/graylog/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "graylog";
-  version = "3.3.15";
+  version = "3.3.16";
 
   src = fetchurl {
     url = "https://packages.graylog2.org/releases/graylog/graylog-${version}.tgz";
-    sha256 = "sha256-/ECHhgLhmLoZ9fjpwGQrGuOW5PBtkB3JUCC9Bgvxr30=";
+    sha256 = "sha256-P/cnfYKnMSnDD4otEyirKlLaFduyfSO9sao4BY3c3Z4=";
   };
 
   dontBuild = true;
diff --git a/pkgs/tools/misc/ksnip/default.nix b/pkgs/tools/misc/ksnip/default.nix
index c93016fe55c..788f4b75b4a 100644
--- a/pkgs/tools/misc/ksnip/default.nix
+++ b/pkgs/tools/misc/ksnip/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ksnip";
-  version = "1.9.1";
+  version = "1.9.2";
 
   src = fetchFromGitHub {
     owner = "ksnip";
     repo = "ksnip";
     rev = "v${version}";
-    sha256 = "1izsk586n9fbm0di0hj6pxs7r0a6w554gpad1ghf247icr0pfc1l";
+    sha256 = "sha256-4EIb1cHmScnFN7IralBR5hnvPBCHNQRcTWEWYezoOcQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/misc/logstash/6.x.nix b/pkgs/tools/misc/logstash/6.x.nix
index b35e5a4aea4..0b3e17818dc 100644
--- a/pkgs/tools/misc/logstash/6.x.nix
+++ b/pkgs/tools/misc/logstash/6.x.nix
@@ -17,8 +17,8 @@ let this = stdenv.mkDerivation rec {
     url = "https://artifacts.elastic.co/downloads/logstash/${pname}-${version}.tar.gz";
     sha256 =
       if enableUnfree
-      then "00pwi7clgdflzzg15bh3y30gzikvvy7p5fl88fww7xhhy47q8053"
-      else "0spxgqsyh72n0l0xh6rljp0lbqz46xmr02sqz25ybycr4qkxdhgk";
+      then "0hij1byw5b3xmk3vshr9p7gxwbjrywr7ylps05ydc2dmnz8q2a79"
+      else "1fa236pvhj7spys54nqi3k64rwzf6zi6gaccmqg4p4sh92jzsybv";
   };
 
   dontBuild         = true;
diff --git a/pkgs/tools/misc/logstash/7.x.nix b/pkgs/tools/misc/logstash/7.x.nix
index 1e69fbc976d..636c380817c 100644
--- a/pkgs/tools/misc/logstash/7.x.nix
+++ b/pkgs/tools/misc/logstash/7.x.nix
@@ -17,14 +17,14 @@ let
   shas =
     if enableUnfree
     then {
-      x86_64-linux  = "0yjaki7gjffrz86hvqgn1gzhd9dc9llcj50g2x1sgpyn88zk0z0p";
-      x86_64-darwin = "0dqm66c89w1nvmbwqzphlqmf7avrycgv1nwd5b0k1z168fj0c3zm";
-      aarch64-linux = "11hjhyb48mjagmvqyxb780n57kr619h6p4adl2vs1zm97g9gslx8";
+      x86_64-linux  = "1vm53alq9q1qy2jcsjg9z339xrkac5r9qqpdafp53ny4zsv1n7vj";
+      x86_64-darwin = "0hhjyl04h3gd66rdk22272rj419br4v2i59lyrmaj6hmnsqbv968";
+      aarch64-linux = "0yjaki7gjffrz86hvqgn1gzhd9dc9llcj50g2x1sgpyn88zk0z0p";
     }
     else {
-      x86_64-linux  = "14b1649avjcalcsi0ffkgznq6d93qdk6m3j0i73mwfqka5d3dvy3";
-      x86_64-darwin = "0ypgdfklr5rxvsnc3czh231pa1z2h70366j1c6q5g64b3xnxpphs";
-      aarch64-linux = "01ainayr8fwwfix7dmxfhhmb23ji65dn4lbjwnj2w0pl0ym9h9w2";
+      x86_64-linux  = "1f3659vcgczm7v03q3fvsmp1ndp6wm3i7r2b2vbl4xq7hf9v7azk";
+      x86_64-darwin = "10zw9qc0lc0x9in0nkxc1aiazhyd69l8sya2ni46ivyyjwf0sqsn";
+      aarch64-linux = "1czhgmky2zf3mqykn5ww4257yfhd36mi4x6dq569ymly83pivf8v";
     };
   this = stdenv.mkDerivation rec {
     version = elk7Version;
diff --git a/pkgs/tools/misc/mktorrent/default.nix b/pkgs/tools/misc/mktorrent/default.nix
index 194a0c62721..089caac7884 100644
--- a/pkgs/tools/misc/mktorrent/default.nix
+++ b/pkgs/tools/misc/mktorrent/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
   version = "1.1";
 
   src = fetchFromGitHub {
-    owner = "Rudde";
+    owner = "pobrn";
     repo = "mktorrent";
     rev = "v${version}";
     sha256 = "17pdc5mandl739f8q26n5is8ga56s83aqcrwhlnnplbxwx2inidr";
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ openssl ];
 
   meta = {
-    homepage = "http://mktorrent.sourceforge.net/";
+    homepage = "https://github.com/pobrn/mktorrent/wiki";
     license = lib.licenses.gpl2Plus;
     description = "Command line utility to create BitTorrent metainfo files";
     maintainers = with lib.maintainers; [Profpatsch];
diff --git a/pkgs/tools/misc/nncp/default.nix b/pkgs/tools/misc/nncp/default.nix
index 1a20c412edb..8470837278b 100644
--- a/pkgs/tools/misc/nncp/default.nix
+++ b/pkgs/tools/misc/nncp/default.nix
@@ -1,32 +1,23 @@
-{ lib, stdenv
-, go
-, fetchurl
-, redo-apenwarr
-, curl
-, perl
-, genericUpdater
-, writeShellScript
-}:
+{ lib, stdenv, go, fetchurl, redo-apenwarr, curl, perl, genericUpdater
+, writeShellScript, nixosTests, cfgPath ? "/etc/nncp.hjson" }:
 
 stdenv.mkDerivation rec {
   pname = "nncp";
-  version = "7.7.0";
+  version = "8.0.2";
+  outputs = [ "out" "doc" "info" ];
 
   src = fetchurl {
     url = "http://www.nncpgo.org/download/${pname}-${version}.tar.xz";
-    sha256 = "ppKi/JY8sKRb/Vt/SXom0L1zhjBPn6PNUm3Gn8o5Ke4=";
+    sha256 = "sha256-hMb7bAdk3xFcUe5CTu9LnIR3VSJDUKbMSE86s8d5udM=";
   };
 
   nativeBuildInputs = [ go redo-apenwarr ];
 
-  buildPhase = ''
-    runHook preBuild
-    export GOCACHE=$PWD/.cache
-    export CFGPATH=/etc/nncp.hjson
-    export SENDMAIL=sendmail # default value for generated config file
-    redo ''${enableParallelBuilding:+-j''${NIX_BUILD_CORES}}
-    runHook postBuild
-  '';
+  # Build parameters
+  CFGPATH = cfgPath;
+  SENDMAIL = "sendmail";
+
+  preConfigure = "export GOCACHE=$NIX_BUILD_TOP/gocache";
 
   installPhase = ''
     runHook preInstall
@@ -42,7 +33,7 @@ stdenv.mkDerivation rec {
     inherit pname version;
     versionLister = writeShellScript "nncp-versionLister" ''
       echo "# Versions for $1:" >> "$2"
-      ${curl}/bin/curl -s http://www.nncpgo.org/Tarballs.html | ${perl}/bin/perl -lne 'print $1 if /Release.*>([0-9.]+)</'
+      ${curl}/bin/curl -s ${meta.downloadPage} | ${perl}/bin/perl -lne 'print $1 if /Release.*>([0-9.]+)</'
     '';
   };
 
@@ -64,8 +55,9 @@ stdenv.mkDerivation rec {
       transmission exists.
     '';
     homepage = "http://www.nncpgo.org/";
+    downloadPage = "http://www.nncpgo.org/Tarballs.html";
     license = licenses.gpl3Only;
     platforms = platforms.all;
-    maintainers = [ maintainers.woffs ];
+    maintainers = with maintainers; [ ehmry woffs ];
   };
 }
diff --git a/pkgs/tools/misc/opencbm/default.nix b/pkgs/tools/misc/opencbm/default.nix
new file mode 100644
index 00000000000..2512747e74a
--- /dev/null
+++ b/pkgs/tools/misc/opencbm/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cc65
+, ncurses
+, pkg-config
+, libusb1
+}:
+
+stdenv.mkDerivation rec {
+  pname = "opencbm";
+  version = "0.4.99.103";
+
+  src = fetchFromGitHub {
+    owner = "OpenCBM";
+    repo = "OpenCBM";
+    rev = "v${version}";
+    sha256 = "06844yfgcbbwrp3iz5k8zd1zjawzbpvl131lgmkwz6d542c2k4k9";
+  };
+
+  makefile = "LINUX/Makefile";
+  makeFlags = [
+    "PREFIX=${placeholder "out"}"
+    "ETCDIR=${placeholder "out"}/etc"
+    "UDEVRULESDIR=${placeholder "out"}/etc/udev/rules.d/"
+    "LDCONFIG=true"
+  ];
+  installTargets = "install-all";
+
+  nativeBuildInputs = [
+    cc65
+    pkg-config
+  ];
+  buildInputs = [
+    libusb1
+    ncurses
+  ];
+
+  meta = with lib; {
+    description = "Kernel driver and development library to control serial CBM devices";
+    longDescription = ''
+      Win 7/8/10, and Linux/i386/AMD64 kernel driver and development library to
+      control serial CBM devices, such as the Commodore 1541 disk drive,
+      connected to the PC's parallel port via a XM1541 or XA1541 cable. Fast
+      disk copier included. Successor of cbm4linux. Also supports the XU1541
+      and the XUM1541 devices (a.k.a. "ZoomFloppy").
+    '';
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.sander ];
+  };
+}
diff --git a/pkgs/tools/misc/plantuml/default.nix b/pkgs/tools/misc/plantuml/default.nix
index 258c2117a79..82b0e3dea10 100644
--- a/pkgs/tools/misc/plantuml/default.nix
+++ b/pkgs/tools/misc/plantuml/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl, makeWrapper, jre, graphviz }:
 
 stdenv.mkDerivation rec {
-  version = "1.2021.15";
+  version = "1.2021.16";
   pname = "plantuml";
 
   src = fetchurl {
     url = "mirror://sourceforge/project/plantuml/${version}/plantuml.${version}.jar";
-    sha256 = "sha256-wVwPPAIR7oDIe+vPh/NZJazX/CU4yAxzafDrst0YSBI=";
+    sha256 = "sha256-0yN/29VKWiqp2Hi9aIN6GMlfMJPxrewsCQyyPVy6RAM=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/misc/sfeed/default.nix b/pkgs/tools/misc/sfeed/default.nix
index 5c39cc803b5..394cd8a8ede 100644
--- a/pkgs/tools/misc/sfeed/default.nix
+++ b/pkgs/tools/misc/sfeed/default.nix
@@ -1,19 +1,26 @@
-{ stdenv, lib, fetchgit }:
+{ stdenv, lib, fetchgit, ncurses }:
 
 stdenv.mkDerivation rec {
   pname = "sfeed";
-  version = "1.0";
+  version = "1.1";
 
   src = fetchgit {
     url = "git://git.codemadness.org/sfeed";
     rev = version;
-    sha256 = "sha256-pLKWq4KIiT6X37EUIOw5SBb1KWopnFcDO+iE++Uie5s=";
+    sha256 = "sha256-0z9PHni/ni4p4nfeStrZmFFHHtyqT8GYJWVWr5IzFKw=";
   };
 
-  makeFlags = [ "RANLIB:=$(RANLIB)" ];
+  buildInputs = [ ncurses ];
+
+  makeFlags = [ "RANLIB:=$(RANLIB)" "SFEED_CURSES_LDFLAGS:=-lncurses" ]
+    # use macOS's strlcat() and strlcpy() instead of vendored ones
+    ++ lib.optional stdenv.isDarwin "COMPATOBJ:=";
 
   installFlags = [ "PREFIX=$(out)" ];
 
+  # otherwise does not find SIGWINCH
+  NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-D_DARWIN_C_SOURCE";
+
   meta = with lib; {
     homepage = "https://codemadness.org/sfeed-simple-feed-parser.html";
     description = "A RSS and Atom parser (and some format programs)";
diff --git a/pkgs/tools/misc/smenu/default.nix b/pkgs/tools/misc/smenu/default.nix
index 5ba4164346f..3ee4de082bd 100644
--- a/pkgs/tools/misc/smenu/default.nix
+++ b/pkgs/tools/misc/smenu/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchFromGitHub, ncurses }:
 
 stdenv.mkDerivation rec {
-  version = "0.9.18";
+  version = "0.9.19";
   pname = "smenu";
 
   src = fetchFromGitHub {
     owner = "p-gen";
     repo = "smenu";
     rev = "v${version}";
-    sha256 = "sha256-8ALY3dsUEJxGsDnYTOxNAmJbwmmZIV8GuHjNg0vPFUQ=";
+    sha256 = "sha256-0ZA8Op1IMZMJ7g1waK2uOYOCDfqPfiqnnjopGtBW1w8=";
   };
 
   buildInputs = [ ncurses ];
diff --git a/pkgs/tools/misc/topgrade/default.nix b/pkgs/tools/misc/topgrade/default.nix
index deb9f907005..99d6a0100e5 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 = "8.0.3";
+  version = "8.1.2";
 
   src = fetchFromGitHub {
     owner = "r-darwish";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-yk8mW07VmABq4XSOcNKYSs04xpZQfzdDBeQFGFP6u/Y=";
+    sha256 = "sha256-2ID3VVT4cQ1yZAD2WVKqkoE7qbe2nNMp1nlwfTxmlZo=";
   };
 
-  cargoSha256 = "sha256-rX4ZfcGlKe+v9UvvfWODaulAVkUbq2jvtuHP504uiX4=";
+  cargoSha256 = "sha256-o1V6u7FmP+p+ApL0AmaqTQTZ2f0sZTpx2ro4lR/DFi8=";
 
   buildInputs = lib.optional stdenv.isDarwin Foundation;
 
diff --git a/pkgs/tools/misc/youtube-dl/default.nix b/pkgs/tools/misc/youtube-dl/default.nix
index 20869ac4d79..4673ab41654 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 = "2021.06.06";
+  version = "2021.12.17";
 
   src = fetchurl {
     url = "https://yt-dl.org/downloads/${version}/${pname}-${version}.tar.gz";
-    sha256 = "1hqan9h55x9gfdakw554vic68w9gpvhblchwxlw265zxp56hxjrw";
+    sha256 = "sha256-nzuZyLd4RVFltFJfIVBehsf/Vl86wxnhlzPYEBlBNd8=";
   };
 
   patches = [
@@ -77,6 +77,6 @@ buildPythonPackage rec {
     '';
     license = licenses.publicDomain;
     platforms = with platforms; linux ++ darwin;
-    maintainers = with maintainers; [ bluescreen303 phreedom AndersonTorres fpletz ma27 ];
+    maintainers = with maintainers; [ bluescreen303 AndersonTorres fpletz ma27 ];
   };
 }
diff --git a/pkgs/tools/misc/ytarchive/default.nix b/pkgs/tools/misc/ytarchive/default.nix
new file mode 100644
index 00000000000..ef4d212a620
--- /dev/null
+++ b/pkgs/tools/misc/ytarchive/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "ytarchive";
+  version = "0.3.0";
+
+  src = fetchFromGitHub {
+    owner = "Kethsar";
+    repo = "ytarchive";
+    rev = "v${version}";
+    sha256 = "sha256-7D92xKxU2WBMDJSY5uFKDbLHWlyT761xuZDiBJ1GxE4=";
+  };
+
+  vendorSha256 = "sha256-r9fDFSCDItQ7YSj9aTY1LXRrFE9T3XD0X36ywCfu0R8=";
+
+  ldflags = [ "-s" "-w" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/Kethsar/ytarchive";
+    description = "Garbage Youtube livestream downloader";
+    license = licenses.mit;
+    maintainers = [ maintainers.marsam ];
+  };
+}
diff --git a/pkgs/tools/misc/zellij/default.nix b/pkgs/tools/misc/zellij/default.nix
index 78ef8d3c29d..2fb985c7916 100644
--- a/pkgs/tools/misc/zellij/default.nix
+++ b/pkgs/tools/misc/zellij/default.nix
@@ -12,16 +12,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "zellij";
-  version = "0.22.0";
+  version = "0.23.0";
 
   src = fetchFromGitHub {
     owner = "zellij-org";
     repo = "zellij";
     rev = "v${version}";
-    sha256 = "sha256-bia1q2IPrlVeSLsD/HGkWwAUW8THAuzXQR2Iw0v8TKM=";
+    sha256 = "sha256-DJ7FGtcsWGk4caS22aXo+8chCcvEdRlVrSRmIHsETD4=";
   };
 
-  cargoSha256 = "sha256-ptM0QrrWFy9rb/CpLYuzRE48Wr429lcE9xnV8uA8mGs=";
+  cargoSha256 ="sha256-dWdFBSZwTEvxrPiXtTWcYLtC+4XFb5R7Wu4r1YpHQRk=";
 
   nativeBuildInputs = [
     installShellFiles
diff --git a/pkgs/tools/networking/badvpn/default.nix b/pkgs/tools/networking/badvpn/default.nix
index fd7c3b23adf..8d1174ac328 100644
--- a/pkgs/tools/networking/badvpn/default.nix
+++ b/pkgs/tools/networking/badvpn/default.nix
@@ -1,39 +1,29 @@
-{lib, stdenv, fetchurl, cmake, openssl, nss, pkg-config, nspr, bash, debug ? false}:
-let
-  s = # Generated upstream information
-  rec {
-    baseName="badvpn";
-    version="1.999.130";
-    name="${baseName}-${version}";
-    hash="02b1fra43l75mljkhrq45vcrrqv0znicjn15g7nbqx3jppzbpm5z";
-    url="https://github.com/ambrop72/badvpn/archive/1.999.130.tar.gz";
-    sha256="02b1fra43l75mljkhrq45vcrrqv0znicjn15g7nbqx3jppzbpm5z";
-  };
-
+{ lib, stdenv, fetchurl, cmake, openssl, nss, pkg-config, nspr, bash, debug ? false }:
 
-  compileFlags = "-O3 ${lib.optionalString (!debug) "-DNDEBUG"}";
-in
-stdenv.mkDerivation {
-  inherit (s) name version;
+stdenv.mkDerivation rec {
+  pname = "badvpn";
+  version = "1.999.130";
+  src = fetchurl {
+    url = "https://github.com/ambrop72/badvpn/archive/${version}.tar.gz";
+    sha256 = "sha256-v9S7/r1ydLzseSVYyaL9YOOc2S4EZzglreXQQVR2YQk=";
+  };
   nativeBuildInputs = [ cmake pkg-config ];
   buildInputs = [
-    openssl nss nspr
+    openssl
+    nss
+    nspr
   ];
-  src = fetchurl {
-    inherit (s) url sha256;
-  };
 
   preConfigure = ''
     find . -name '*.sh' -exec sed -e 's@#!/bin/sh@${stdenv.shell}@' -i '{}' ';'
     find . -name '*.sh' -exec sed -e 's@#!/bin/bash@${bash}/bin/bash@' -i '{}' ';'
-    cmakeFlagsArray=("-DCMAKE_BUILD_TYPE=" "-DCMAKE_C_FLAGS=${compileFlags}");
+    cmakeFlagsArray=("-DCMAKE_BUILD_TYPE=" "-DCMAKE_C_FLAGS=-O3 ${lib.optionalString (!debug) "-DNDEBUG"}");
   '';
 
-  meta = {
-    inherit (s) version;
+  meta = with lib; {
     description = "A set of network-related (mostly VPN-related) tools";
-    license = lib.licenses.bsd3 ;
-    maintainers = [lib.maintainers.raskin];
-    platforms = lib.platforms.linux;
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/networking/badvpn/default.upstream b/pkgs/tools/networking/badvpn/default.upstream
deleted file mode 100644
index 2a85ba7cb51..00000000000
--- a/pkgs/tools/networking/badvpn/default.upstream
+++ /dev/null
@@ -1,3 +0,0 @@
-url https://github.com/ambrop72/badvpn/releases
-version_link '[0-9][.]tar[.][a-z0-9]+$'
-version '.*/([0-9.]+)[.]tar[.].*' '\1'
diff --git a/pkgs/tools/networking/bgpq3/default.nix b/pkgs/tools/networking/bgpq3/default.nix
index bd0a623a916..16bebda7d3d 100644
--- a/pkgs/tools/networking/bgpq3/default.nix
+++ b/pkgs/tools/networking/bgpq3/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bgpq3";
-  version = "0.1.35";
+  version = "0.1.36";
 
   src = fetchFromGitHub {
     owner = "snar";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0fd5a3krq0i906m0iivgphiqq88cw6c0w1q4n7lmzyq9201mb8wj";
+    sha256 = "sha256-FBtt++w2WzCnSim+r+MVy287w2jmdNEaQIro2KaVeRI=";
   };
 
   # Fix binary install location. Remove with next upstream release.
diff --git a/pkgs/tools/networking/checkip/default.nix b/pkgs/tools/networking/checkip/default.nix
index 6baf1a9a322..94d83b9f398 100644
--- a/pkgs/tools/networking/checkip/default.nix
+++ b/pkgs/tools/networking/checkip/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "checkip";
-  version = "0.16.1";
+  version = "0.16.2";
 
   src = fetchFromGitHub {
     owner = "jreisinger";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-XIrGza8yMC1lrSXiaEADcft4UkaZ33R6LW4ug0+8sxs=";
+    sha256 = "sha256-ktAb5kUwEE4xCgsuj0gO4jP6EybOBLjdlskUF/zwrqU=";
   };
 
   vendorSha256 = "sha256-4XA7B0gmFE52VoKiPLsa0urPS7IdzrTBXuU4wZv/Lag=";
diff --git a/pkgs/tools/networking/dhcp/default.nix b/pkgs/tools/networking/dhcp/default.nix
index 5a531bddcaf..10418d97810 100644
--- a/pkgs/tools/networking/dhcp/default.nix
+++ b/pkgs/tools/networking/dhcp/default.nix
@@ -51,7 +51,8 @@ stdenv.mkDerivation rec {
     "--sysconfdir=/etc"
     "--localstatedir=/var"
   ] ++ lib.optional stdenv.isLinux "--with-randomdev=/dev/random"
-    ++ lib.optionals (openldap != null) [ "--with-ldap" "--with-ldapcrypto" ];
+    ++ lib.optionals (openldap != null) [ "--with-ldap" "--with-ldapcrypto" ]
+    ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "BUILD_CC=$(CC_FOR_BUILD)";
 
   NIX_CFLAGS_COMPILE = builtins.toString [
     "-Wno-error=pointer-compare"
diff --git a/pkgs/tools/networking/dhcpcd/default.nix b/pkgs/tools/networking/dhcpcd/default.nix
index 0962335ad1a..d60c87e51ff 100644
--- a/pkgs/tools/networking/dhcpcd/default.nix
+++ b/pkgs/tools/networking/dhcpcd/default.nix
@@ -1,15 +1,21 @@
-{ lib, stdenv, fetchurl, fetchpatch, pkg-config, udev, runtimeShellPackage,
-runtimeShell }:
+{ lib
+, stdenv
+, fetchurl
+, pkg-config
+, udev
+, runtimeShellPackage
+, runtimeShell
+, nixosTests
+, enablePrivSep ? true
+}:
 
 stdenv.mkDerivation rec {
-  # when updating this to >=7, check, see previous reverts:
-  # nix-build -A nixos.tests.networking.scripted.macvlan.x86_64-linux nixos/release-combined.nix
   pname = "dhcpcd";
-  version = "8.1.4";
+  version = "9.4.1";
 
   src = fetchurl {
     url = "mirror://roy/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "0gf1qif25wy5lffzw39pi4sshmpxz1f4a1m9sglj7am1gaix3817";
+    sha256 = "sha256-gZNXY07+0epc9E7AGyTT0/iFL+yLQkmSXcxWZ8VON2w=";
   };
 
   nativeBuildInputs = [ pkg-config ];
@@ -22,19 +28,17 @@ stdenv.mkDerivation rec {
     substituteInPlace hooks/dhcpcd-run-hooks.in --replace /bin/sh ${runtimeShell}
   '';
 
-  patches = [
-    (fetchpatch {
-      name = "?id=114870290a8d3d696bc4049c32eef3eed03d6070";
-      url = "https://roy.marples.name/git/dhcpcd/commitdiff_plain/114870290a8d3d696bc4049c32eef3eed03d6070";
-      sha256 = "0kzpwjh2gzvl5lvlnw6lis610p67nassk3apns68ga2pyxlky8qb";
-    })
-  ];
-
   preConfigure = "patchShebangs ./configure";
 
   configureFlags = [
     "--sysconfdir=/etc"
     "--localstatedir=/var"
+  ]
+  ++ lib.optionals enablePrivSep [
+    "--enable-privsep"
+    # dhcpcd disables privsep if it can't find the default user,
+    # so we explicitly specify a user.
+    "--privsepuser=dhcpcd"
   ];
 
   makeFlags = [ "PREFIX=${placeholder "out"}" ];
@@ -46,6 +50,8 @@ stdenv.mkDerivation rec {
   # Check that the udev plugin got built.
   postInstall = lib.optionalString (udev != null) "[ -e ${placeholder "out"}/lib/dhcpcd/dev/udev.so ]";
 
+  passthru.tests = { inherit (nixosTests.networking.scripted) macvlan dhcpSimple dhcpOneIf; };
+
   meta = with lib; {
     description = "A client for the Dynamic Host Configuration Protocol (DHCP)";
     homepage = "https://roy.marples.name/projects/dhcpcd";
diff --git a/pkgs/tools/networking/dnsperf/default.nix b/pkgs/tools/networking/dnsperf/default.nix
index d680be62fee..96fa955a6b6 100644
--- a/pkgs/tools/networking/dnsperf/default.nix
+++ b/pkgs/tools/networking/dnsperf/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dnsperf";
-  version = "2.8.0";
+  version = "2.9.0";
 
   src = fetchFromGitHub {
     owner = "DNS-OARC";
     repo = "dnsperf";
     rev = "v${version}";
-    sha256 = "sha256-jemce+ix18IPAusEHh5QWcSQn/QRUOc3HTSk9jGt+SA=";
+    sha256 = "sha256-TWFi3oPTIKjBaw0Rq0AfZgxyVukvL2SWa2qvWw2WAQ4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/networking/dnsproxy/default.nix b/pkgs/tools/networking/dnsproxy/default.nix
index b412c7bf46c..57863a10529 100644
--- a/pkgs/tools/networking/dnsproxy/default.nix
+++ b/pkgs/tools/networking/dnsproxy/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "dnsproxy";
-  version = "0.39.9";
+  version = "0.39.12";
 
   src = fetchFromGitHub {
     owner = "AdguardTeam";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-HcyzrGtBktScTPch6rCKj5Hr7VS9kf3cCHhDVaZKxG0=";
+    sha256 = "sha256-gtakdKnkzAU1yKtKnlkS+n8CbgftV64zLoENJKYjIAo=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/tools/networking/driftnet/default.nix b/pkgs/tools/networking/driftnet/default.nix
index 042f29d3ca3..1f489b7fbc7 100644
--- a/pkgs/tools/networking/driftnet/default.nix
+++ b/pkgs/tools/networking/driftnet/default.nix
@@ -35,6 +35,8 @@ stdenv.mkDerivation rec {
       url = "https://github.com/deiv/driftnet/pull/33/commits/bef5f3509ab5710161e9e21ea960a997eada534f.patch";
       sha256 = "1b7p9fkgp7dxv965l7q7y632s80h3nnrkaqnak2h0hakwv0i4pvm";
     })
+    # https://github.com/deiv/driftnet/issues/37
+    ./libwebsockets-4.3.0.patch
   ];
 
   enableParallelBuilding = true;
@@ -59,6 +61,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/deiv/driftnet";
     maintainers = with maintainers; [ offline ];
     platforms = platforms.linux ++ platforms.darwin;
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
   };
 }
diff --git a/pkgs/tools/networking/driftnet/fix-darwin-build.patch b/pkgs/tools/networking/driftnet/fix-darwin-build.patch
deleted file mode 100644
index d1bde0f2e60..00000000000
--- a/pkgs/tools/networking/driftnet/fix-darwin-build.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-diff --git a/src/compat/compat.h b/src/compat/compat.h
-index 6add422..ea80406 100644
---- a/src/compat/compat.h
-+++ b/src/compat/compat.h
-@@ -17,7 +17,7 @@
-     #include <config.h>
- #endif
- 
--#ifdef __FreeBSD__
-+#if defined(__FreeBSD__) || defined(__APPLE__)
-     #include <sys/types.h>
- #endif
- 
-diff --git a/src/network/layer2.c b/src/network/layer2.c
-index 763f0ac..2497b72 100644
---- a/src/network/layer2.c
-+++ b/src/network/layer2.c
-@@ -14,7 +14,7 @@
- 
- #include <string.h>
- 
--#ifdef __FreeBSD__
-+#if defined(__FreeBSD__) || defined(__APPLE__)
- #include <netinet/in_systm.h>
- #include <netinet/in.h>
- #else
-@@ -29,7 +29,7 @@
- /*
-  * Freebsd and Cygwin doesn't define 'ethhdr'
-  */
--#if defined(__FreeBSD__) || defined(__CYGWIN__)
-+#if defined(__FreeBSD__) || defined(__CYGWIN__) || defined(__APPLE__)
- 
- #define ETH_ALEN	6			/* Octets in one ethernet addr	 */
- #define ETH_P_IP	0x0800		/* Internet Protocol packet	*/
-diff --git a/src/network/layer3.c b/src/network/layer3.c
-index 7864126..aae2041 100644
---- a/src/network/layer3.c
-+++ b/src/network/layer3.c
-@@ -15,7 +15,7 @@
- #include <string.h>
- #include <assert.h>
- 
--#ifdef __FreeBSD__
-+#if defined(__FreeBSD__) || defined(__APPLE__)
- #include <netinet/in_systm.h>
- #include <netinet/in.h>
- #include <sys/socket.h>
-diff --git a/src/pid.c b/src/pid.c
-index 621834e..94e7dcc 100644
---- a/src/pid.c
-+++ b/src/pid.c
-@@ -14,7 +14,7 @@
- 
- #include "compat/compat.h"
- 
--#ifdef __FreeBSD__
-+#if defined(__FreeBSD__) || defined(__APPLE__)
- #include <sys/stat.h>
- #endif
- #include <fcntl.h>
diff --git a/pkgs/tools/networking/driftnet/libwebsockets-4.3.0.patch b/pkgs/tools/networking/driftnet/libwebsockets-4.3.0.patch
new file mode 100644
index 00000000000..5e5cfd50af3
--- /dev/null
+++ b/pkgs/tools/networking/driftnet/libwebsockets-4.3.0.patch
@@ -0,0 +1,12 @@
+diff --git a/src/http_display/httpd.c b/src/http_display/httpd.c
+index f4709ef..7921d23 100644
+--- a/src/http_display/httpd.c
++++ b/src/http_display/httpd.c
+@@ -191,7 +191,6 @@ static void * http_server_dispatch(void *arg)
+         LWSMPRO_FILE,                  /* mount type is a directory in a filesystem */
+         1,                                     /* strlen("/"), ie length of the mountpoint */
+         NULL,
+-        { NULL, NULL } // sentinel
+     };
+
+     memset(&info, 0, sizeof info);
diff --git a/pkgs/tools/networking/flannel/default.nix b/pkgs/tools/networking/flannel/default.nix
index 86010f4adb9..3bb1ab38e6b 100644
--- a/pkgs/tools/networking/flannel/default.nix
+++ b/pkgs/tools/networking/flannel/default.nix
@@ -1,26 +1,33 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, nixosTests }:
 
 with lib;
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "flannel";
-  version = "0.13.0";
+  version = "0.15.1";
   rev = "v${version}";
 
-  goPackagePath = "github.com/coreos/flannel";
+  vendorSha256 = null;
 
   src = fetchFromGitHub {
     inherit rev;
-    owner = "coreos";
+    owner = "flannel-io";
     repo = "flannel";
-    sha256 = "0mmswnaybwpf18h832haapcs5b63wn5w2hax0smm3inldiggsbw8";
+    sha256 = "1p4rz4kdiif8i78zgxhw6dd0c1bq159f6l1idvig5apph7zi2bwm";
   };
 
+  ldflags = [ "-X github.com/flannel-io/flannel/version.Version=${rev}" ];
+
+  # TestRouteCache/TestV6RouteCache fail with "Failed to create newns: operation not permitted"
+  doCheck = false;
+
+  passthru.tests = { inherit (nixosTests) flannel; };
+
   meta = {
     description = "Network fabric for containers, designed for Kubernetes";
     license = licenses.asl20;
-    homepage = "https://github.com/coreos/flannel";
-    maintainers = with maintainers; [johanot offline];
+    homepage = "https://github.com/flannel-io/flannel";
+    maintainers = with maintainers; [ johanot offline ];
     platforms = with platforms; linux;
   };
 }
diff --git a/pkgs/tools/networking/godspeed/default.nix b/pkgs/tools/networking/godspeed/default.nix
new file mode 100644
index 00000000000..011d09848d8
--- /dev/null
+++ b/pkgs/tools/networking/godspeed/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, libpcap
+}:
+
+buildGoModule rec {
+  pname = "godspeed";
+  version = "unstable-2021-08-27";
+
+  src = fetchFromGitHub {
+    owner = "redcode-labs";
+    repo = "GodSpeed";
+    rev = "c02b184ab0fd304d1bd8cbe1566a3d3de727975e";
+    sha256 = "sha256-y/mCfNWe5ShdxEz8IUQ8zUzgVkUy/+5lX6rcJ3r6KoI=";
+  };
+
+  vendorSha256 = "sha256-MCr1ShhkxM9CeSmqqtgAW0qv0QaIPRSOzASj8gt2ZAg=";
+
+  buildInputs = [
+    libpcap
+  ];
+
+  postFixup = ''
+    mv $out/bin/GodSpeed $out/bin/${pname}
+  '';
+
+  meta = with lib; {
+    description = "Manager for reverse shells";
+    homepage = "https://github.com/redcode-labs/GodSpeed";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ] ++ teams.redcodelabs.members;
+  };
+}
diff --git a/pkgs/tools/networking/gping/default.nix b/pkgs/tools/networking/gping/default.nix
index a08c02806e7..24dc47176e8 100644
--- a/pkgs/tools/networking/gping/default.nix
+++ b/pkgs/tools/networking/gping/default.nix
@@ -2,6 +2,7 @@
 , stdenv
 , rustPlatform
 , fetchFromGitHub
+, fetchpatch
 , libiconv
 }:
 
@@ -18,6 +19,13 @@ rustPlatform.buildRustPackage rec {
 
   cargoSha256 = "sha256-xEASs6r5zxYJXS+at6aX5n0whGp5qwuNwq6Jh0GM+/4=";
 
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/orf/gping/commit/b843beb9617e4b7b98d4f6d3942067cad59c9d60.patch";
+      sha256 = "sha256-9DIeeweCuGqymvUj4EBct82XVevkFSbHWaV76ExjGbs=";
+    })
+  ];
+
   buildInputs = lib.optional stdenv.isDarwin libiconv;
 
   meta = with lib; {
diff --git a/pkgs/tools/networking/httplz/default.nix b/pkgs/tools/networking/httplz/default.nix
index 52654a49d65..1d482f2bebf 100644
--- a/pkgs/tools/networking/httplz/default.nix
+++ b/pkgs/tools/networking/httplz/default.nix
@@ -13,15 +13,15 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "httplz";
-  version = "1.12.1";
+  version = "1.12.2";
 
   src = fetchCrate {
     inherit version;
     pname = "https";
-    sha256 = "sha256-vMhQHWzsZlqMVkEQHCZTB8T4ETTaf8iAS9QhgYdfcx0=";
+    sha256 = "sha256-FhxNYss6n0AJEszpJ7+6CAJE2sdsflWQkvSLakTnFdY=";
   };
 
-  cargoSha256 = "sha256-9gnKVZ3HQs3kNj4i1cgC+Jl3dhjx7QRaHSih1HOB3nI=";
+  cargoSha256 = "sha256-wyksA3RYpGkD6nhllNv8WkUwEdml4TiPM2a4GzfBD1o=";
 
   nativeBuildInputs = [
     installShellFiles
diff --git a/pkgs/tools/networking/hurl/default.nix b/pkgs/tools/networking/hurl/default.nix
index fef2493fed0..1264bc107ea 100644
--- a/pkgs/tools/networking/hurl/default.nix
+++ b/pkgs/tools/networking/hurl/default.nix
@@ -12,13 +12,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "hurl";
-  version = "1.4.0";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "Orange-OpenSource";
     repo = pname;
     rev = version;
-    sha256 = "sha256-oa9J51Y6Q0nPxA9SdsEZy7F6EopS5xuh1yWyTD21mGI=";
+    sha256 = "sha256-avgi3Y5PRI/RZLYw10ifYV6eKKEBi349NYtYs07GS2k=";
   };
 
   nativeBuildInputs = [
@@ -37,7 +37,7 @@ rustPlatform.buildRustPackage rec {
   # Tests require network access to a test server
   doCheck = false;
 
-  cargoSha256 = "sha256-CwChbp6Un9tgJu1vtfhcFclpbvGANLLEX3lwtTQPuSg=";
+  cargoSha256 = "sha256-GB+MnvWkXcdlJvaxtSItm3nGRyr8zWhxSq58smPk/aY=";
 
   postInstall = ''
     python ci/gen_manpage.py docs/hurl.md > hurl.1
diff --git a/pkgs/tools/networking/kapp/default.nix b/pkgs/tools/networking/kapp/default.nix
index 115c162e0d2..1c3f2de7212 100644
--- a/pkgs/tools/networking/kapp/default.nix
+++ b/pkgs/tools/networking/kapp/default.nix
@@ -1,13 +1,13 @@
 { lib, buildGoModule, fetchFromGitHub, installShellFiles }:
 buildGoModule rec {
   pname = "kapp";
-  version = "0.42.0";
+  version = "0.43.0";
 
   src = fetchFromGitHub {
     owner = "vmware-tanzu";
     repo = "carvel-kapp";
     rev = "v${version}";
-    sha256 = "sha256-unjfUecfvuobhvsSGSqMAs19ncOLkaJZ2uJv5uVcHr0=";
+    sha256 = "sha256-9e5vgOIB8PHbM5nsDaasyEfWP5dr7j3vU3+WzFua6bI=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/tools/networking/kea/default.nix b/pkgs/tools/networking/kea/default.nix
index 9bc3c1e8da3..3458e5c6e54 100644
--- a/pkgs/tools/networking/kea/default.nix
+++ b/pkgs/tools/networking/kea/default.nix
@@ -14,11 +14,11 @@
 
 stdenv.mkDerivation rec {
   pname = "kea";
-  version = "2.0.0"; # only even minor versions are stable
+  version = "2.0.1"; # only even minor versions are stable
 
   src = fetchurl {
     url = "https://ftp.isc.org/isc/${pname}/${version}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-BYVODDhxtFLtrOGOzMarYYlA4CSfvnwjKjbQauWb9B0=";
+    sha256 = "sha256-9Qu5qVTjFDFrQDOhddyAdJa7nBdUEQvZKiHBZanoTFc=";
   };
 
   patches = [ ./dont-create-var.patch ];
diff --git a/pkgs/tools/networking/mailsend/default.nix b/pkgs/tools/networking/mailsend/default.nix
index 9856634116e..13a6dc005dd 100644
--- a/pkgs/tools/networking/mailsend/default.nix
+++ b/pkgs/tools/networking/mailsend/default.nix
@@ -1,24 +1,17 @@
-{lib, stdenv, fetchurl, openssl}:
-let
-  s = # Generated upstream information
-  rec {
-    baseName="mailsend";
-    version="1.19";
-    name="${baseName}-${version}";
-    hash="1xwk6jvl5li8ddlik1lj88qswnyminp9wlf5cm8gg3n54szgcpjn";
-    url="https://github.com/muquit/mailsend/archive/1.19.tar.gz";
-    sha256="1xwk6jvl5li8ddlik1lj88qswnyminp9wlf5cm8gg3n54szgcpjn";
+{ lib, stdenv, fetchurl, openssl }:
+
+stdenv.mkDerivation rec {
+  pname = "mailsend";
+  version = "1.19";
+
+  src = fetchurl {
+    url = "https://github.com/muquit/mailsend/archive/${version}.tar.gz";
+    sha256 = "sha256-Vl72vibFjvdQZcVRnq6N1VuuMUKShhlpayjSQrc0k/c=";
   };
+
   buildInputs = [
     openssl
   ];
-in
-stdenv.mkDerivation {
-  inherit (s) name version;
-  inherit buildInputs;
-  src = fetchurl {
-    inherit (s) url sha256;
-  };
   configureFlags = [
     "--with-openssl=${openssl.dev}"
   ];
@@ -29,12 +22,11 @@ stdenv.mkDerivation {
       sha256 = "0vz373zcfl19inflybfjwshcq06rvhx0i5g0f4b021cxfhyb1sm0";
     })
   ];
-  meta = {
-    inherit (s) version;
+  meta = with lib; {
     description = "CLI email sending tool";
-    license = lib.licenses.bsd3 ;
-    maintainers = [lib.maintainers.raskin];
-    platforms = lib.platforms.linux;
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.linux;
     homepage = "https://github.com/muquit/mailsend";
     downloadPage = "https://github.com/muquit/mailsend/releases";
   };
diff --git a/pkgs/tools/networking/mailsend/default.upstream b/pkgs/tools/networking/mailsend/default.upstream
deleted file mode 100644
index 3d9862a3de2..00000000000
--- a/pkgs/tools/networking/mailsend/default.upstream
+++ /dev/null
@@ -1,3 +0,0 @@
-url "https://github.com/muquit/mailsend/releases"
-ensure_choice
-version '.*/([0-9][0-9.a-z]*)[.]tar[.].*' '\1'
diff --git a/pkgs/tools/networking/mqttui/default.nix b/pkgs/tools/networking/mqttui/default.nix
new file mode 100644
index 00000000000..7945cd168d4
--- /dev/null
+++ b/pkgs/tools/networking/mqttui/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rustPlatform
+, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "mqttui";
+  version = "0.13.0";
+
+  src = fetchFromGitHub {
+    owner = "EdJoPaTo";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-taGpVLO9K5VmthWadstQcujcLHTb3fhEWDxKGd3Pj+E=";
+  };
+
+  cargoSha256 = "sha256-aAMDl8GZ+XqA4uBiDm2eHQsNFiqCrMBO66X0ruEjpJg=";
+
+  buildInputs = lib.optional stdenv.isDarwin Security;
+
+  meta = with lib; {
+    description = "Terminal client for MQTT";
+    homepage = "https://github.com/EdJoPaTo/mqttui";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/networking/networkmanager/applet/default.nix b/pkgs/tools/networking/networkmanager/applet/default.nix
index e6cf8d0e09c..fbb56f4c5c9 100644
--- a/pkgs/tools/networking/networkmanager/applet/default.nix
+++ b/pkgs/tools/networking/networkmanager/applet/default.nix
@@ -83,7 +83,7 @@ stdenv.mkDerivation rec {
     homepage = "https://gitlab.gnome.org/GNOME/network-manager-applet/";
     description = "NetworkManager control applet for GNOME";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ phreedom ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/networking/networkmanager/default.nix b/pkgs/tools/networking/networkmanager/default.nix
index 3913cb0520b..ac261f83d57 100644
--- a/pkgs/tools/networking/networkmanager/default.nix
+++ b/pkgs/tools/networking/networkmanager/default.nix
@@ -191,7 +191,7 @@ stdenv.mkDerivation rec {
     description = "Network configuration and management tool";
     license = licenses.gpl2Plus;
     changelog = "https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/raw/${version}/NEWS";
-    maintainers = teams.freedesktop.members ++ (with maintainers; [ phreedom domenkozar obadz maxeaubrey ]);
+    maintainers = teams.freedesktop.members ++ (with maintainers; [ domenkozar obadz maxeaubrey ]);
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/networking/ngrok-2/default.nix b/pkgs/tools/networking/ngrok-2/default.nix
index 5366a2c3a9c..6093cea40f0 100644
--- a/pkgs/tools/networking/ngrok-2/default.nix
+++ b/pkgs/tools/networking/ngrok-2/default.nix
@@ -34,6 +34,9 @@ stdenv.mkDerivation {
 
   passthru.updateScript = ./update.sh;
 
+  # Stripping causes SEGFAULT on x86_64-darwin
+  dontStrip = true;
+
   meta = {
     description = "Allows you to expose a web server running on your local machine to the internet";
     homepage = "https://ngrok.com/";
diff --git a/pkgs/tools/networking/oapi-codegen/default.nix b/pkgs/tools/networking/oapi-codegen/default.nix
index 47d243782c7..163341d0646 100644
--- a/pkgs/tools/networking/oapi-codegen/default.nix
+++ b/pkgs/tools/networking/oapi-codegen/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "oapi-codegen";
-  version = "1.8.3";
+  version = "1.9.0";
 
   src = fetchFromGitHub {
     owner = "deepmap";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-VAtfJ1PXTSPMoQ4NqX0GcZMyi15edxWj6Xsj6h1b7hc=";
+    sha256 = "sha256-pGkTCOQ2OR/9c5+L9UgESJjSMmz9FjfJw9NB8Nr6gRQ=";
   };
 
-  vendorSha256 = "sha256-s6+Rs+G4z5fcmUiwGjeDoQYKWJz0a/PCejfKyn8WWxs=";
+  vendorSha256 = "sha256-hvY64cmfvEeHniscD1WDyaeFpWeBJwsDNwr76e9F6ow=";
 
   # Tests use network
   doCheck = false;
diff --git a/pkgs/tools/networking/obfs4/default.nix b/pkgs/tools/networking/obfs4/default.nix
index 31979d3aa97..ab13d3f4ef9 100644
--- a/pkgs/tools/networking/obfs4/default.nix
+++ b/pkgs/tools/networking/obfs4/default.nix
@@ -18,6 +18,6 @@ buildGoModule rec {
     description = "A pluggable transport proxy";
     homepage = "https://www.torproject.org/projects/obfsproxy";
     repositories.git = "https://git.torproject.org/pluggable-transports/obfs4.git";
-    maintainers = with maintainers; [ phreedom thoughtpolice ];
+    maintainers = with maintainers; [ thoughtpolice ];
   };
 }
diff --git a/pkgs/tools/networking/p2p/amule/default.nix b/pkgs/tools/networking/p2p/amule/default.nix
index 96bf7656e8a..8123b9d91fe 100644
--- a/pkgs/tools/networking/p2p/amule/default.nix
+++ b/pkgs/tools/networking/p2p/amule/default.nix
@@ -66,7 +66,7 @@ stdenv.mkDerivation rec {
 
     homepage = "https://github.com/amule-project/amule";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ phreedom ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.unix;
     # cmake fails: Cannot specify link libraries for target "wxWidgets::ADV" which is not built by this project.
     broken = enableDaemon;
diff --git a/pkgs/tools/networking/privoxy/default.nix b/pkgs/tools/networking/privoxy/default.nix
index dd663df10ad..33c7584dbdc 100644
--- a/pkgs/tools/networking/privoxy/default.nix
+++ b/pkgs/tools/networking/privoxy/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
     # GPLv2 (or later). See https://www.privoxy.org/user-manual/copyright.html
     license = licenses.gpl2Plus;
     platforms = platforms.all;
-    maintainers = [ maintainers.phreedom ];
+    maintainers = [ ];
   };
 
 }
diff --git a/pkgs/tools/networking/swagger-codegen3/default.nix b/pkgs/tools/networking/swagger-codegen3/default.nix
index 9114df94b54..ec1e4e3bbda 100644
--- a/pkgs/tools/networking/swagger-codegen3/default.nix
+++ b/pkgs/tools/networking/swagger-codegen3/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, jre, makeWrapper }:
 
 stdenv.mkDerivation rec {
-  version = "3.0.29";
+  version = "3.0.30";
   pname = "swagger-codegen";
 
   jarfilename = "${pname}-cli-${version}.jar";
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://maven/io/swagger/codegen/v3/${pname}-cli/${version}/${jarfilename}";
-    sha256 = "sha256-sEwqUmtWaoBV0QmdP8ibm3neqWHk7+tWLAuO2FaCUtQ=";
+    sha256 = "sha256-ldjs0zEctHOmMf6eJWtjMOxjONWebsy2xlKOi8eFFdE=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/tools/networking/tcpreplay/default.nix b/pkgs/tools/networking/tcpreplay/default.nix
index ed83e4d4554..6e2fb35fd4c 100644
--- a/pkgs/tools/networking/tcpreplay/default.nix
+++ b/pkgs/tools/networking/tcpreplay/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     "--enable-shared"
     "--enable-tcpreplay-edit"
     "--with-libpcap=${libpcap}"
-    "--with-tcpdump=${tcpdump}/bin"
+    "--with-tcpdump=${tcpdump}/bin/tcpdump"
   ];
 
   meta = with lib; {
diff --git a/pkgs/tools/networking/v2ray/default.nix b/pkgs/tools/networking/v2ray/default.nix
index b37b98d7efc..d3ea5a071e1 100644
--- a/pkgs/tools/networking/v2ray/default.nix
+++ b/pkgs/tools/networking/v2ray/default.nix
@@ -1,43 +1,23 @@
-{ lib, fetchFromGitHub, fetchurl, linkFarm, buildGoModule, runCommand, makeWrapper, nixosTests
-, assetOverrides ? {}
+{ lib, fetchFromGitHub, fetchurl, symlinkJoin, buildGoModule, runCommand, makeWrapper, nixosTests
+, v2ray-geoip, v2ray-domain-list-community, assets ? [ v2ray-geoip v2ray-domain-list-community ]
 }:
 
 let
-  version = "4.43.0";
+  version = "4.44.0";
 
   src = fetchFromGitHub {
     owner = "v2fly";
     repo = "v2ray-core";
     rev = "v${version}";
-    sha256 = "sha256-kOTQQUbaRQBABopU0x36j8Qre+Ko0UecUDNN8dvFni8=";
+    sha256 = "1yk02n2lllbcwqkz4f3l3d2df1w3m768zxvdawgmafjgmbqf0gjf";
   };
 
   vendorSha256 = "sha256-7zSIAKcMwtaTvokKuLJ8orqJc2jGuaw5FglEJadeZ9I=";
 
-  assets = {
-    # MIT licensed
-    "geoip.dat" = let
-      geoipRev = "202109300030";
-      geoipSha256 = "1d2z3ljs0v9rd10cfj8cpiijz3ikkplsymr44f7y90g4dmniwqh0";
-    in fetchurl {
-      url = "https://github.com/v2fly/geoip/releases/download/${geoipRev}/geoip.dat";
-      sha256 = geoipSha256;
-    };
-
-    # MIT licensed
-    "geosite.dat" = let
-      geositeRev = "20211001023210";
-      geositeSha256 = "02d55i1pdndwvmi4v42hnncjng517s0k06gr3yn5krnj2qfjli2w";
-    in fetchurl {
-      url = "https://github.com/v2fly/domain-list-community/releases/download/${geositeRev}/dlc.dat";
-      sha256 = geositeSha256;
-    };
-
-  } // assetOverrides;
-
-  assetsDrv = linkFarm "v2ray-assets" (lib.mapAttrsToList (name: path: {
-    inherit name path;
-  }) assets);
+  assetsDrv = symlinkJoin {
+    name = "v2ray-assets";
+    paths = assets;
+  };
 
   core = buildGoModule rec {
     pname = "v2ray-core";
@@ -84,6 +64,6 @@ in runCommand "v2ray-${version}" {
 } ''
   for file in ${core}/bin/*; do
     makeWrapper "$file" "$out/bin/$(basename "$file")" \
-      --set-default V2RAY_LOCATION_ASSET ${assetsDrv}
+      --set-default V2RAY_LOCATION_ASSET ${assetsDrv}/share/v2ray
   done
 ''
diff --git a/pkgs/tools/networking/v2ray/update.sh b/pkgs/tools/networking/v2ray/update.sh
index f645b8ea093..9b8e4cef13a 100755
--- a/pkgs/tools/networking/v2ray/update.sh
+++ b/pkgs/tools/networking/v2ray/update.sh
@@ -8,10 +8,8 @@ deps_nix=./deps.nix
 nixpkgs=../../../..
 
 old_core_rev=$(sed -En 's/.*\bversion = "(.*?)".*/\1/p' "$version_nix")
-old_geoip_rev=$(sed -En 's/.*\bgeoipRev = "(.*?)".*/\1/p' "$version_nix")
-old_geosite_rev=$(sed -En 's/.*\bgeositeRev = "(.*?)".*/\1/p' "$version_nix")
 echo "Current version:" >&2
-echo "core: $old_core_rev, geoip: $old_geoip_rev, geosite: $old_geosite_rev" >&2
+echo "core: $old_core_rev" >&2
 
 function fetch_latest_rev {
     curl "https://api.github.com/repos/v2fly/$1/releases" |
@@ -20,10 +18,8 @@ function fetch_latest_rev {
 
 core_rev=$(fetch_latest_rev 'v2ray-core')
 core_rev=${core_rev:1}
-geoip_rev=$(fetch_latest_rev 'geoip')
-geosite_rev=$(fetch_latest_rev 'domain-list-community')
 echo "Latest version:" >&2
-echo "core: $core_rev, geoip: $geoip_rev, geosite: $geosite_rev" >&2
+echo "core: $core_rev" >&2
 
 if [[ $core_rev != $old_core_rev ]]; then
     echo "Prefetching core..." >&2
@@ -38,24 +34,6 @@ if [[ $core_rev != $old_core_rev ]]; then
         "$version_nix"
 fi
 
-if [[ $geoip_rev != $old_geoip_rev ]]; then
-    echo "Prefetching geoip..." >&2
-    hash=$(nix-prefetch-url "https://github.com/v2fly/geoip/releases/download/$geoip_rev/geoip.dat")
-    sed --in-place \
-        -e "s/\bgeoipRev = \".*\"/geoipRev = \"$geoip_rev\"/" \
-        -e "s/\bgeoipSha256 = \".*\"/geoipSha256 = \"$hash\"/" \
-        "$version_nix"
-fi
-
-if [[ $geosite_rev != $old_geosite_rev ]]; then
-    echo "Prefetching geosite..." >&2
-    hash=$(nix-prefetch-url "https://github.com/v2fly/domain-list-community/releases/download/$geosite_rev/dlc.dat")
-    sed --in-place \
-        -e "s/\bgeositeRev = \".*\"/geositeRev = \"$geosite_rev\"/" \
-        -e "s/\bgeositeSha256 = \".*\"/geositeSha256 = \"$hash\"/" \
-        "$version_nix"
-fi
-
 echo "Prebuilding..." >&2
 set +o pipefail
 vendorSha256=$(
diff --git a/pkgs/tools/package-management/cargo-release/default.nix b/pkgs/tools/package-management/cargo-release/default.nix
index 9cb9c1e125f..dffe16242a1 100644
--- a/pkgs/tools/package-management/cargo-release/default.nix
+++ b/pkgs/tools/package-management/cargo-release/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-release";
-  version = "0.18.5";
+  version = "0.18.6";
 
   src = fetchFromGitHub {
     owner = "crate-ci";
     repo = "cargo-release";
     rev = "v${version}";
-    sha256 = "sha256-bbxOavpEVVRv5czl2UiV6brulvjod7X7n+j8/9bO+SE=";
+    sha256 = "sha256-4ZXur3Hja5nlJ2GLGei9r7ZPz+bvw41rm9xzaIo68gw=";
   };
 
-  cargoSha256 = "sha256-E0Mo+hgI0uRaV2GAX52YtdNyZdd9wHVOBB3tJz36/8I=";
+  cargoSha256 = "sha256-vBr3RYBFoeCJquS8ugVpl29J7CUraN/HuxtKv8Dqi/k=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/tools/package-management/libdnf/default.nix b/pkgs/tools/package-management/libdnf/default.nix
index 47ce3dad62d..3de0bb399d8 100644
--- a/pkgs/tools/package-management/libdnf/default.nix
+++ b/pkgs/tools/package-management/libdnf/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libdnf";
-  version = "0.63.1";
+  version = "0.65.0";
 
   src = fetchFromGitHub {
     owner = "rpm-software-management";
     repo = pname;
     rev = version;
-    sha256 = "sha256-SwkqFSAl99fQoXT96BPRqKFqJg3HEziiT+jXcugPyxM=";
+    sha256 = "sha256-vGXK4pOkff4yGaRZE+FFFIqEizUeCID+lxiE/TWt0Bs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/package-management/nix-eval-jobs/default.nix b/pkgs/tools/package-management/nix-eval-jobs/default.nix
index a9cf1238441..fbab464afd6 100644
--- a/pkgs/tools/package-management/nix-eval-jobs/default.nix
+++ b/pkgs/tools/package-management/nix-eval-jobs/default.nix
@@ -11,12 +11,12 @@
 }:
 stdenv.mkDerivation rec {
   pname = "nix-eval-jobs";
-  version = "0.0.1";
+  version = "0.0.2";
   src = fetchFromGitHub {
     owner = "nix-community";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-LTMW4356f8pvIyfYdOyZbF9yzU8MH9mryQgB4LrwZMI=";
+    hash = "sha256-kZw/nPJqWuBMMnDWsWF3oMY93QYVRem1XTbaxdbQ2oM=";
   };
   buildInputs = [
     boost
diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix
index 59651c973c3..146b9311fca 100644
--- a/pkgs/tools/package-management/nix/default.nix
+++ b/pkgs/tools/package-management/nix/default.nix
@@ -31,11 +31,12 @@ common =
   }:
   let
      sh = busybox-sandbox-shell;
-     nix = stdenv.mkDerivation rec {
-      inherit pname version src patches;
 
-      is24 = lib.versionAtLeast version "2.4pre";
-      is25 = lib.versionAtLeast version "2.5pre";
+    is24 = lib.versionAtLeast version "2.4pre";
+    is25 = lib.versionAtLeast version "2.5pre";
+
+    nix = stdenv.mkDerivation {
+      inherit pname version src patches;
 
       VERSION_SUFFIX = suffix;
 
@@ -173,6 +174,9 @@ common =
       };
 
       passthru = {
+        is24 = lib.warn ''nix package: attribute .is24 is deprecated. Please use lib.versionAtLeast X.version "2.4pre".'' is24;
+        is25 = lib.warn ''nix package: attribute .is25 is deprecated. Please use lib.versionAtLeast X.version "2.5pre".'' is25;
+
         perl-bindings = perl.pkgs.toPerlModule (stdenv.mkDerivation {
           pname = "nix-perl";
           inherit version;
@@ -200,11 +204,11 @@ common =
     };
   in nix;
 
-  boehmgc_nix = boehmgc.override {
+  boehmgc_nix_2_3 = boehmgc.override {
     enableLargeConfig = true;
   };
 
-  boehmgc_nixUnstable = boehmgc_nix.overrideAttrs (drv: {
+  boehmgc_nix = boehmgc_nix_2_3.overrideAttrs (drv: {
     patches = (drv.patches or []) ++ [
       # Part of the GC solution in https://github.com/NixOS/nix/pull/4944
       (fetchpatch {
@@ -225,7 +229,7 @@ in rec {
 
   nix = nixStable;
 
-  nixStable = nix_2_4;
+  nixStable = nix_2_5;
 
   nix_2_3 = callPackage common (rec {
     pname = "nix";
@@ -235,7 +239,7 @@ in rec {
       sha256 = "sha256-fuaBtp8FtSVJLSAsO+3Nne4ZYLuBj2JpD2xEk7fCqrw=";
     };
 
-    boehmgc = boehmgc_nix;
+    boehmgc = boehmgc_nix_2_3;
 
     inherit storeDir stateDir confDir;
   });
@@ -251,7 +255,25 @@ in rec {
       sha256 = "sha256-op48CCDgLHK0qV1Batz4Ln5FqBiRjlE6qHTiZgt3b6k=";
     };
 
-    boehmgc = boehmgc_nixUnstable;
+    boehmgc = boehmgc_nix;
+
+    patches = [ installNlohmannJsonPatch ];
+
+    inherit storeDir stateDir confDir;
+  });
+
+  nix_2_5 = callPackage common (rec {
+    pname = "nix";
+    version = "2.5.1";
+
+    src = fetchFromGitHub {
+      owner = "NixOS";
+      repo = "nix";
+      rev = version;
+      sha256 = "sha256-GOsiqy9EaTwDn2PLZ4eFj1VkXcBUbqrqHehRE9GuGdU=";
+    };
+
+    boehmgc = boehmgc_nix;
 
     patches = [ installNlohmannJsonPatch ];
 
@@ -260,17 +282,17 @@ in rec {
 
   nixUnstable = lib.lowPrio (callPackage common rec {
     pname = "nix";
-    version = "2.5${suffix}";
-    suffix = "pre20211206_${lib.substring 0 7 src.rev}";
+    version = "2.6${suffix}";
+    suffix = "pre20211217_${lib.substring 0 7 src.rev}";
 
     src = fetchFromGitHub {
       owner = "NixOS";
       repo = "nix";
-      rev = "d1aaa7ef71713b6693ad3ddf8704ce62bab82095";
-      sha256 = "sha256-zdMODMLdJ0smEEzNMOoIzBxt9QWVzgMvr+pwxkhtD4g=";
+      rev = "6e6e998930f0d7361d64644eb37d9134e74e8501";
+      sha256 = "sha256-RZSWOJUPkXIlMNYMC5a+WNrOjpqAHyhzyqD57BGfNY8=";
     };
 
-    boehmgc = boehmgc_nixUnstable;
+    boehmgc = boehmgc_nix;
 
     patches = [ installNlohmannJsonPatch ];
 
diff --git a/pkgs/tools/security/bitwarden/default.nix b/pkgs/tools/security/bitwarden/default.nix
index 050621cd20e..198295fcdfe 100644
--- a/pkgs/tools/security/bitwarden/default.nix
+++ b/pkgs/tools/security/bitwarden/default.nix
@@ -14,11 +14,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bitwarden";
-  version = "1.29.1";
+  version = "1.30.0";
 
   src = fetchurl {
     url = "https://github.com/bitwarden/desktop/releases/download/v${version}/Bitwarden-${version}-amd64.deb";
-    sha256 = "0rxy19bazi7a6m2bpx6wadg5d9p0k324h369vgr5ppmxb69d6zp8";
+    sha256 = "sha256-x0i7MUVr0nhPy8M/dTVtRjaLfJQlzqhzLQ/JHLRmL6E=";
   };
 
   desktopItem = makeDesktopItem {
diff --git a/pkgs/tools/security/clamav/default.nix b/pkgs/tools/security/clamav/default.nix
index 2019f8ac99d..8fb66ebcb3f 100644
--- a/pkgs/tools/security/clamav/default.nix
+++ b/pkgs/tools/security/clamav/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
     homepage = "https://www.clamav.net";
     description = "Antivirus engine designed for detecting Trojans, viruses, malware and other malicious threats";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ phreedom robberer qknight fpletz globin ];
+    maintainers = with maintainers; [ robberer qknight fpletz globin ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/security/exploitdb/default.nix b/pkgs/tools/security/exploitdb/default.nix
index a63db582301..175338a7d53 100644
--- a/pkgs/tools/security/exploitdb/default.nix
+++ b/pkgs/tools/security/exploitdb/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "exploitdb";
-  version = "2021-12-11";
+  version = "2021-12-18";
 
   src = fetchFromGitHub {
     owner = "offensive-security";
     repo = pname;
     rev = version;
-    sha256 = "sha256-S0PlUSSVBI5OpEsd0BoDINdX+gpsP1GMs4uH6xvrs0I=";
+    sha256 = "sha256-/HvXS/jLyTZpXW/u+9PQQq60o9G07WVrOaKigw5JoFk=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/security/fprot/default.nix b/pkgs/tools/security/fprot/default.nix
index 22779327a9b..6b930adcc26 100644
--- a/pkgs/tools/security/fprot/default.nix
+++ b/pkgs/tools/security/fprot/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation {
     homepage = "http://www.f-prot.com";
     description = "A popular proprietary antivirus program";
     license = licenses.unfree;
-    maintainers = [ maintainers.phreedom ];
+    maintainers = [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/security/ghdorker/default.nix b/pkgs/tools/security/ghdorker/default.nix
new file mode 100644
index 00000000000..c6882fb110a
--- /dev/null
+++ b/pkgs/tools/security/ghdorker/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "ghdorker";
+  version = "0.3.2";
+  format = "setuptools";
+
+  src = python3.pkgs.fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-wF4QoXxH55SpdYgKLHf4sCwUk1rkCpSdnIX5FvFi/BU=";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    ghapi
+    glom
+    python-dotenv
+    pyyaml
+  ];
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "GHDorker"
+  ];
+
+  meta = with lib; {
+    description = "Extensible GitHub dorking tool";
+    homepage = "https://github.com/dtaivpp/ghdorker";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/gitleaks/default.nix b/pkgs/tools/security/gitleaks/default.nix
index 16e1013c7c0..0f1a7d9a242 100644
--- a/pkgs/tools/security/gitleaks/default.nix
+++ b/pkgs/tools/security/gitleaks/default.nix
@@ -5,26 +5,31 @@
 
 buildGoModule rec {
   pname = "gitleaks";
-  version = "7.6.1";
+  version = "8.2.3";
 
   src = fetchFromGitHub {
     owner = "zricethezav";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-52Wi3bQvKdHoJ1nVb4OVJ9wd8hDVF+6zlVSpsEai0Jw=";
+    sha256 = "sha256-COYVgn7fhmU0ZUhlnqxQ/5rf5aVhkcWeG199DFcE/w4=";
   };
 
-  vendorSha256 = "sha256-86PspExE+T/IuCvpf6LAkWcCRlHPqP5VUbHAckEzALc=";
+  vendorSha256 = "sha256-cIwte59AdVOWMBUWE4gKZSHhU37HgEW4k0v+jUUyj1Q=";
 
   ldflags = [
-    "-s" "-w" "-X github.com/zricethezav/gitleaks/v${lib.versions.major version}/version.Version=${version}"
+    "-s"
+    "-w"
+    "-X github.com/zricethezav/gitleaks/v${lib.versions.major version}/version.Version=${version}"
   ];
 
+  # With v8 the config tests are are blocking
+  doCheck = false;
+
   meta = with lib; {
     description = "Scan git repos (or files) for secrets";
     longDescription = ''
       Gitleaks is a SAST tool for detecting hardcoded secrets like passwords,
-      API keys, and tokens in git repos.
+      API keys and tokens in git repos.
     '';
     homepage = "https://github.com/zricethezav/gitleaks";
     license = with licenses; [ mit ];
diff --git a/pkgs/tools/security/gomapenum/default.nix b/pkgs/tools/security/gomapenum/default.nix
new file mode 100644
index 00000000000..f77b513c42d
--- /dev/null
+++ b/pkgs/tools/security/gomapenum/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "gomapenum";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "nodauf";
+    repo = "GoMapEnum";
+    rev = "v${version}";
+    sha256 = "sha256-6WZTmRse3mj1bimHE81JdSc4VKpMFbcJN3U4zgHMzJc=";
+  };
+
+  vendorSha256 = "sha256-Z/uLZIPKd75P9nI7kTFOwzWFkRTVwUojYEQms4OJ6Bk=";
+
+  postInstall = ''
+    mv $out/bin/src $out/bin/$pname
+  '';
+
+  meta = with lib; {
+    description = "Tools for user enumeration and password bruteforce";
+    homepage = "https://github.com/nodauf/GoMapEnum";
+    license = with licenses; [ gpl3Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/gosh/default.nix b/pkgs/tools/security/gosh/default.nix
index 5c5ad25e6d9..20cdd25e728 100644
--- a/pkgs/tools/security/gosh/default.nix
+++ b/pkgs/tools/security/gosh/default.nix
@@ -26,6 +26,6 @@ buildGoModule rec {
     description = "Reverse/bind shell generator";
     homepage = "https://github.com/redcode-labs/GoSH";
     license = licenses.mit;
-    maintainers = with maintainers; [ fab ];
+    maintainers = with maintainers; [ fab ] ++ teams.redcodelabs.members;
   };
 }
diff --git a/pkgs/tools/security/gpg-tui/default.nix b/pkgs/tools/security/gpg-tui/default.nix
index ea144e67a41..636358f6ea6 100644
--- a/pkgs/tools/security/gpg-tui/default.nix
+++ b/pkgs/tools/security/gpg-tui/default.nix
@@ -16,16 +16,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "gpg-tui";
-  version = "0.8.1";
+  version = "0.8.2";
 
   src = fetchFromGitHub {
     owner = "orhun";
     repo = "gpg-tui";
     rev = "v${version}";
-    sha256 = "sha256-2fTJHcJJzQIAyxLnWdoyR77tA9p/3s3UescypGwKfc0=";
+    hash = "sha256-jddkws4TXuW0AdLBEpS5RPk1a/mEkwYWMbYiLjt22LU=";
   };
 
-  cargoSha256 = "sha256-8dWMJZiWy0cO0CGAFEmtGYZ8bVK1ZR7qBkjKn6rLC+k=";
+  cargoHash = "sha256-bj77fMmpXeOqb1MzOPsEPQUh5AnZxBrapzt864V+IUU=";
 
   nativeBuildInputs = [
     gpgme # for gpgme-config
diff --git a/pkgs/tools/security/grype/default.nix b/pkgs/tools/security/grype/default.nix
index ae42d0390bf..8241851d532 100644
--- a/pkgs/tools/security/grype/default.nix
+++ b/pkgs/tools/security/grype/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "grype";
-  version = "0.26.1";
+  version = "0.27.3";
 
   src = fetchFromGitHub {
     owner = "anchore";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-B+b+Fb5nUBLSGeZ+ZUpvcZ+jOIotskXEPFoaQ48ob34=";
+    sha256 = "sha256-W1HP+bzsLY8SaZQK+H33mibM7lfxoGnKnOvsStwzv4E=";
   };
 
-  vendorSha256 = "sha256-w4mN9O5FKZNCksS8OwF3Ty9c1V552MAbMhqisQDK9GY=";
+  vendorSha256 = "sha256-IwEQkdspSjdlm4siwhaBZsIaRz8oKKG6d6PAK1MvHlw=";
 
   propagatedBuildInputs = [ docker ];
 
diff --git a/pkgs/tools/security/kubescape/default.nix b/pkgs/tools/security/kubescape/default.nix
index 09ae25bbac1..9fe00e4a4e9 100644
--- a/pkgs/tools/security/kubescape/default.nix
+++ b/pkgs/tools/security/kubescape/default.nix
@@ -6,20 +6,20 @@
 
 buildGoModule rec {
   pname = "kubescape";
-  version = "1.0.133";
+  version = "1.0.134";
 
   src = fetchFromGitHub {
     owner = "armosec";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-vF98v2tt786TlNo9YetkgYSrbZ20mvL8Y+pLLo2jD0Q=";
+    sha256 = "sha256-jcMaLp3SOeH6kE9V5fYSNP5klJwqWt3mrKz1VHOzjx4=";
   };
 
   nativeBuildInputs = [
     installShellFiles
   ];
 
-  vendorSha256 = "sha256-+CBX4NUeeMXMXiVkJB56oHvC8usUDXWYZUseQvQaW6Y=";
+  vendorSha256 = "sha256-om9ASiMz59xaX76qByjziECuagCB+6jDBBsouEMQfe8=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/tools/security/lmp/default.nix b/pkgs/tools/security/lmp/default.nix
new file mode 100644
index 00000000000..5d4488e07e8
--- /dev/null
+++ b/pkgs/tools/security/lmp/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "lmp";
+  version = "1.1";
+
+  src = fetchFromGitHub {
+    owner = "0xInfection";
+    repo = "LogMePwn";
+    rev = "v${version}";
+    sha256 = "sha256-3kxMtkHkqo5Gwk864Bb8MqRtuC8HP38Xl22ktiTgr5k=";
+  };
+
+  vendorSha256 = "sha256-X7Djcp4reOXL6SX4jiSLicolENu7Uo5webSePYrPKug=";
+
+  meta = with lib; {
+    description = "Scanning and validation toolkit for the Log4J vulnerability";
+    homepage = "https://github.com/0xInfection/LogMePwn";
+    license = with licenses; [ gpl3Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/log4j-detect/default.nix b/pkgs/tools/security/log4j-detect/default.nix
new file mode 100644
index 00000000000..aaad1fb94ef
--- /dev/null
+++ b/pkgs/tools/security/log4j-detect/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "log4j-detect";
+  version = "unstable-2021-12-14";
+  format = "other";
+
+  src = fetchFromGitHub {
+    owner = "takito1812";
+    repo = pname;
+    rev = "2f5b7a598a6d0b4aee8111bb574ea72c6a1c76d6";
+    sha256 = "sha256-fFKW7uPBfrnze0UoPL3Mfwd4sFOuHYuDP7kv6VtdM3o=";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    requests
+  ];
+
+  postPatch = ''
+    sed -i "1 i #!/usr/bin/python" ${pname}.py
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    install -vD ${pname}.py $out/bin/${pname}
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Tool to detect the log4j vulnerability";
+    homepage = "https://github.com/takito1812/log4j-detect";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/log4j-scan/default.nix b/pkgs/tools/security/log4j-scan/default.nix
new file mode 100644
index 00000000000..bd2772efb41
--- /dev/null
+++ b/pkgs/tools/security/log4j-scan/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "log4j-scan";
+  version = "unstable-2021-12-18";
+  format = "other";
+
+  src = fetchFromGitHub {
+    owner = "fullhunt";
+    repo = pname;
+    rev = "070fbd00f0945645bd5e0daa199a554ef3884b95";
+    sha256 = "sha256-ORSc4KHyAMjuA7QHReDh6SYY5yZRunBBN1+lkCayqL4=";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    pycryptodome
+    requests
+    termcolor
+  ];
+
+  postPatch = ''
+    substituteInPlace log4j-scan.py \
+      --replace "headers.txt" "../share/headers.txt"
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    install -vD ${pname}.py $out/bin/${pname}
+    install -vD headers.txt headers-large.txt -t $out/share
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Scanner for finding hosts which are vulnerable for log4j";
+    homepage = "https://github.com/fullhunt/log4j-scan";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/log4j-sniffer/default.nix b/pkgs/tools/security/log4j-sniffer/default.nix
new file mode 100644
index 00000000000..c3c4a0cd086
--- /dev/null
+++ b/pkgs/tools/security/log4j-sniffer/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, git
+}:
+
+buildGoModule rec {
+  pname = "log4j-sniffer";
+  version = "0.8.0";
+
+  src = fetchFromGitHub {
+    owner = "palantir";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-dsuIeNAYe/iuxfezfs+hyyziFrE3M+GRxqYuawYFKDU=";
+  };
+
+  vendorSha256 = null;
+
+  checkInputs = [
+    git
+  ];
+
+  preCheck = ''
+    export HOME=$(mktemp -d);
+    cd $HOME
+    git init
+  '';
+
+  meta = with lib; {
+    description = "Tool that scans archives to check for vulnerable log4j versions";
+    homepage = "https://github.com/palantir/log4j-sniffer";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/log4j-vuln-scanner/default.nix b/pkgs/tools/security/log4j-vuln-scanner/default.nix
new file mode 100644
index 00000000000..0cd6534f909
--- /dev/null
+++ b/pkgs/tools/security/log4j-vuln-scanner/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "log4j-vuln-scanner";
+  version = "0.10";
+
+  src = fetchFromGitHub {
+    owner = "hillu";
+    repo = "local-log4j-vuln-scanner";
+    rev = "v${version}";
+    sha256 = "sha256-w3S+OxSTRgmFJOODDOoK33ddckv18LNnZyx7/HBTl9I=";
+  };
+
+  vendorSha256 = "sha256-pQpattmS9VmO3ZIQUFn66az8GSmB4IvYhTTCFn6SUmo=";
+
+  postInstall = ''
+    mv $out/bin/scanner $out/bin/$pname
+    mv $out/bin/patcher $out/bin/log4j-vuln-patcher
+  '';
+
+  meta = with lib; {
+    description = "Local log4j vulnerability scanner";
+    homepage = "https://github.com/hillu/local-log4j-vuln-scanner";
+    license = with licenses; [ gpl3Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/log4jcheck/default.nix b/pkgs/tools/security/log4jcheck/default.nix
new file mode 100644
index 00000000000..291bf1ff96b
--- /dev/null
+++ b/pkgs/tools/security/log4jcheck/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "log4jcheck";
+  version = "unstable-2021-12-14";
+  format = "other";
+
+  src = fetchFromGitHub {
+    owner = "NorthwaveSecurity";
+    repo = pname;
+    rev = "736f1f4044e8a9b7bf5db515e2d1b819253f0f6d";
+    sha256 = "sha256-1al7EMYbE/hFXKV4mYZlkEWTUIKYxgXYU3qBLlczYvs=";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    requests
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    install -vD nw_log4jcheck.py $out/bin/${pname}
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Tool to check for vulnerable Log4j (CVE-2021-44228) systems";
+    homepage = "https://github.com/NorthwaveSecurity/log4jcheck";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/log4shell-detector/default.nix b/pkgs/tools/security/log4shell-detector/default.nix
new file mode 100644
index 00000000000..6c51c5bcd6e
--- /dev/null
+++ b/pkgs/tools/security/log4shell-detector/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "log4shell-detector";
+  version = "unstable-2021-12-16";
+  format = "setuptools";
+
+  src = fetchFromGitHub {
+    owner = "Neo23x0";
+    repo = pname;
+    rev = "622b88e7ea36819da23ce6ac090785cd6cca77f9";
+    sha256 = "sha256-N81x9hq473LfM+bQIQLWizCAsVc/pzyB84PV7/N5jk4=";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    zstandard
+  ];
+
+  checkInputs = with python3.pkgs; [
+    pytestCheckHook
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    install -vD ${pname}.py $out/bin/${pname}
+    install -vd $out/${python3.sitePackages}/
+    cp -R Log4ShellDetector $out/${python3.sitePackages}
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Detector for Log4Shell exploitation attempts";
+    homepage = "https://github.com/Neo23x0/log4shell-detector";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/logmap/default.nix b/pkgs/tools/security/logmap/default.nix
new file mode 100644
index 00000000000..d6d4cb0f1a5
--- /dev/null
+++ b/pkgs/tools/security/logmap/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "logmap";
+  version = "unstable-2021-12-15";
+  format = "other";
+
+  src = fetchFromGitHub {
+    owner = "zhzyker";
+    repo = pname;
+    rev = "5040707b4ae260830072de93ccd6a23615073abf";
+    sha256 = "sha256-LOGjK5l/gaKObWbC9vaLruE8DdDsabztnEW/TjvCdtE=";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    requests
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    install -vD ${pname}.py $out/bin/${pname}
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Tools for fuzzing Log4j2 jndi injection";
+    homepage = "https://github.com/zhzyker/logmap";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/metasploit/Gemfile b/pkgs/tools/security/metasploit/Gemfile
index 927ccf73ccd..1ca92f4be7c 100644
--- a/pkgs/tools/security/metasploit/Gemfile
+++ b/pkgs/tools/security/metasploit/Gemfile
@@ -1,4 +1,4 @@
 # frozen_string_literal: true
 source "https://rubygems.org"
 
-gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/6.1.19"
+gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/6.1.20"
diff --git a/pkgs/tools/security/metasploit/Gemfile.lock b/pkgs/tools/security/metasploit/Gemfile.lock
index cffd8c5475e..72c57a843e4 100644
--- a/pkgs/tools/security/metasploit/Gemfile.lock
+++ b/pkgs/tools/security/metasploit/Gemfile.lock
@@ -1,9 +1,9 @@
 GIT
   remote: https://github.com/rapid7/metasploit-framework
-  revision: ede9849ebbca64d7f47bfd19f3088b18fdb220cc
-  ref: refs/tags/6.1.19
+  revision: c2234acba2d212b4eb940904e595a43edb352a4e
+  ref: refs/tags/6.1.20
   specs:
-    metasploit-framework (6.1.19)
+    metasploit-framework (6.1.20)
       actionpack (~> 6.0)
       activerecord (~> 6.0)
       activesupport (~> 6.0)
@@ -31,9 +31,9 @@ GIT
       metasploit-concern
       metasploit-credential
       metasploit-model
-      metasploit-payloads (= 2.0.65)
+      metasploit-payloads (= 2.0.66)
       metasploit_data_models
-      metasploit_payloads-mettle (= 1.0.15)
+      metasploit_payloads-mettle (= 1.0.17)
       mqtt
       msgpack
       nessus_rest
@@ -98,25 +98,25 @@ GEM
   remote: https://rubygems.org/
   specs:
     Ascii85 (1.1.0)
-    actionpack (6.1.4.1)
-      actionview (= 6.1.4.1)
-      activesupport (= 6.1.4.1)
+    actionpack (6.1.4.4)
+      actionview (= 6.1.4.4)
+      activesupport (= 6.1.4.4)
       rack (~> 2.0, >= 2.0.9)
       rack-test (>= 0.6.3)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.0, >= 1.2.0)
-    actionview (6.1.4.1)
-      activesupport (= 6.1.4.1)
+    actionview (6.1.4.4)
+      activesupport (= 6.1.4.4)
       builder (~> 3.1)
       erubi (~> 1.4)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.1, >= 1.2.0)
-    activemodel (6.1.4.1)
-      activesupport (= 6.1.4.1)
-    activerecord (6.1.4.1)
-      activemodel (= 6.1.4.1)
-      activesupport (= 6.1.4.1)
-    activesupport (6.1.4.1)
+    activemodel (6.1.4.4)
+      activesupport (= 6.1.4.4)
+    activerecord (6.1.4.4)
+      activemodel (= 6.1.4.4)
+      activesupport (= 6.1.4.4)
+    activesupport (6.1.4.4)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 1.6, < 2)
       minitest (>= 5.1)
@@ -125,10 +125,10 @@ GEM
     addressable (2.8.0)
       public_suffix (>= 2.0.2, < 5.0)
     afm (0.2.2)
-    arel-helpers (2.13.0)
-      activerecord (>= 3.1.0, < 7)
+    arel-helpers (2.14.0)
+      activerecord (>= 3.1.0, < 8)
     aws-eventstream (1.2.0)
-    aws-partitions (1.540.0)
+    aws-partitions (1.541.0)
     aws-sdk-core (3.124.0)
       aws-eventstream (~> 1, >= 1.0.2)
       aws-partitions (~> 1, >= 1.525.0)
@@ -247,7 +247,7 @@ GEM
       activemodel (~> 6.0)
       activesupport (~> 6.0)
       railties (~> 6.0)
-    metasploit-payloads (2.0.65)
+    metasploit-payloads (2.0.66)
     metasploit_data_models (5.0.4)
       activerecord (~> 6.0)
       activesupport (~> 6.0)
@@ -258,10 +258,10 @@ GEM
       railties (~> 6.0)
       recog (~> 2.0)
       webrick
-    metasploit_payloads-mettle (1.0.15)
+    metasploit_payloads-mettle (1.0.17)
     method_source (1.0.0)
     mini_portile2 (2.6.1)
-    minitest (5.14.4)
+    minitest (5.15.0)
     mqtt (0.5.0)
     msgpack (1.4.2)
     multi_json (1.15.0)
@@ -288,7 +288,7 @@ GEM
       pcaprub
     patch_finder (1.0.2)
     pcaprub (0.12.4)
-    pdf-reader (2.6.0)
+    pdf-reader (2.7.0)
       Ascii85 (~> 1.0)
       afm (~> 0.2.1)
       hashery (~> 2.0)
@@ -309,15 +309,15 @@ GEM
       nokogiri (>= 1.6)
     rails-html-sanitizer (1.4.2)
       loofah (~> 2.3)
-    railties (6.1.4.1)
-      actionpack (= 6.1.4.1)
-      activesupport (= 6.1.4.1)
+    railties (6.1.4.4)
+      actionpack (= 6.1.4.4)
+      activesupport (= 6.1.4.4)
       method_source
       rake (>= 0.13)
       thor (~> 1.0)
     rake (13.0.6)
     rb-readline (0.5.5)
-    recog (2.3.21)
+    recog (2.3.22)
       nokogiri
     redcarpet (3.5.1)
     reline (0.2.5)
diff --git a/pkgs/tools/security/metasploit/default.nix b/pkgs/tools/security/metasploit/default.nix
index e2c8791501b..6e91193c833 100644
--- a/pkgs/tools/security/metasploit/default.nix
+++ b/pkgs/tools/security/metasploit/default.nix
@@ -15,13 +15,13 @@ let
   };
 in stdenv.mkDerivation rec {
   pname = "metasploit-framework";
-  version = "6.1.19";
+  version = "6.1.20";
 
   src = fetchFromGitHub {
     owner = "rapid7";
     repo = "metasploit-framework";
     rev = version;
-    sha256 = "sha256-AGSvUtkl2yiMpe5Clc0puG5MN1v5GlwH5XbJPvGPToA=";
+    sha256 = "sha256-O34ion1Hywk/Y+KmCqU3qp+/Bo+ky5SRzstjxj7LvzQ=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/security/metasploit/gemset.nix b/pkgs/tools/security/metasploit/gemset.nix
index 97f42e52610..e93202889ec 100644
--- a/pkgs/tools/security/metasploit/gemset.nix
+++ b/pkgs/tools/security/metasploit/gemset.nix
@@ -4,50 +4,50 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xgysqnibjsy6kdz10x2xb3kwa6lssiqhh0zggrbgs31ypwhlpia";
+      sha256 = "171ida68hrk21cq1zz1kfl9h94a3qw5p3afviqzsirl0kx6qjyv9";
       type = "gem";
     };
-    version = "6.1.4.1";
+    version = "6.1.4.4";
   };
   actionview = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1yf4ic5kl324rs0raralpwx24s6hvvdzxfhinafylf8f3x7jj23z";
+      sha256 = "1lm2pf35p6q4ff78z175h6ihmzfg2j7ssn41374rb9iy9gpiiidm";
       type = "gem";
     };
-    version = "6.1.4.1";
+    version = "6.1.4.4";
   };
   activemodel = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "16ixam4lni8b5lgx0whnax0imzh1dh10fy5r9pxs52n83yz5nbq3";
+      sha256 = "0g3qdz8dw6zkgz45jd13lwfdnm7rhgczv1pssw63g9k6qj3bkxjm";
       type = "gem";
     };
-    version = "6.1.4.1";
+    version = "6.1.4.4";
   };
   activerecord = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ccgvlj767ybps3pxlaa4iw77n7wbriw2sr8754id3ngjfap08ja";
+      sha256 = "090d4wl1pq06m9mibpck0m5nm8h45fwhs3fjx27297kjmnv4gzik";
       type = "gem";
     };
-    version = "6.1.4.1";
+    version = "6.1.4.4";
   };
   activesupport = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19gx1jcq46x9d1pi1w8xq0bgvvfw239y4lalr8asm291gj3q3ds4";
+      sha256 = "0rvnz9lsf9mrkpji748sf51f54m027snkw6rm8flyvf7fq18rm98";
       type = "gem";
     };
-    version = "6.1.4.1";
+    version = "6.1.4.4";
   };
   addressable = {
     groups = ["default"];
@@ -74,10 +74,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0c0w9wd58yyv0mbhffxm0nsz4f7ycy2vdqfi8vsimhkial6791y2";
+      sha256 = "1b14yqwfjynlvl6x7jclhr4b2imik2cvabwxn9cpylabdnhr7gza";
       type = "gem";
     };
-    version = "2.13.0";
+    version = "2.14.0";
   };
   Ascii85 = {
     groups = ["default"];
@@ -104,10 +104,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ns0378h8qa5vwrq7a7i0xji17japs95mddpvam351k19a79vbwh";
+      sha256 = "1x2ppv99avlnm53nf75dc8sjfi8kfajc1kbnhc7vbrjzz04ywjy0";
       type = "gem";
     };
-    version = "1.540.0";
+    version = "1.541.0";
   };
   aws-sdk-core = {
     groups = ["default"];
@@ -664,12 +664,12 @@
     platforms = [];
     source = {
       fetchSubmodules = false;
-      rev = "ede9849ebbca64d7f47bfd19f3088b18fdb220cc";
-      sha256 = "102fizqkxjbnwl3mq6prbcvlqvmq576rahpfln62inr5v59ayr00";
+      rev = "c2234acba2d212b4eb940904e595a43edb352a4e";
+      sha256 = "0d5zrczccqybrs8r9jx4iw3bz7xa6yjhm9p2cczhkjs7gni24ziv";
       type = "git";
       url = "https://github.com/rapid7/metasploit-framework";
     };
-    version = "6.1.19";
+    version = "6.1.20";
   };
   metasploit-model = {
     groups = ["default"];
@@ -686,10 +686,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vpjl3rvz4pxcpwc8r6kdiflb5xn6gz0yrclczcpikgn7hhjdiif";
+      sha256 = "0gpsxysd6lg4falybci1fwlxjmxazjx5birqppdyc9wkqha58j9r";
       type = "gem";
     };
-    version = "2.0.65";
+    version = "2.0.66";
   };
   metasploit_data_models = {
     groups = ["default"];
@@ -706,10 +706,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1kl7plipccqgrjlm6aqdnp1xz44f6hnb2qmljhqay8ln2kg9f1aa";
+      sha256 = "06v72lyj08haqzs5a12ds6vadq6r2kxy50s7jxp1vxq5i2j4p2gm";
       type = "gem";
     };
-    version = "1.0.15";
+    version = "1.0.17";
   };
   method_source = {
     groups = ["default"];
@@ -736,10 +736,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19z7wkhg59y8abginfrm2wzplz7py3va8fyngiigngqvsws6cwgl";
+      sha256 = "06xf558gid4w8lwx13jwfdafsch9maz8m0g85wnfymqj63x5nbbd";
       type = "gem";
     };
-    version = "5.14.4";
+    version = "5.15.0";
   };
   mqtt = {
     groups = ["default"];
@@ -947,10 +947,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0zgv9pp9cqd1cf8bwk7pb5lkm81gn7znnan0a7s42wd0qavs4nnz";
+      sha256 = "0c8s9p3s7z39zv9s6avaf5ddqncpglraqpqn50yhb1lrnna3akgi";
       type = "gem";
     };
-    version = "2.6.0";
+    version = "2.7.0";
   };
   pg = {
     groups = ["default"];
@@ -1047,10 +1047,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1kwpm068cqys34p2g0j3l1g0cd5f3kxnsay5v7lmbd0sgarac0vy";
+      sha256 = "1nmyds2www6dmqbbd5ggq31gxxb9mwxd5llzmb3iyczssk6l7lla";
       type = "gem";
     };
-    version = "6.1.4.1";
+    version = "6.1.4.4";
   };
   rake = {
     groups = ["default"];
@@ -1077,10 +1077,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ndzawr0rd3jdizxgjyrgipi3ccn9jpagvplxk91kb5spy9lnsy2";
+      sha256 = "0ml58i34gjpgmpl392c77v2n50w2w233gwxgy6cxq81bp58ywj92";
       type = "gem";
     };
-    version = "2.3.21";
+    version = "2.3.22";
   };
   redcarpet = {
     groups = ["default"];
diff --git a/pkgs/tools/security/onioncircuits/default.nix b/pkgs/tools/security/onioncircuits/default.nix
index f5d9185dc98..0186accc24a 100644
--- a/pkgs/tools/security/onioncircuits/default.nix
+++ b/pkgs/tools/security/onioncircuits/default.nix
@@ -24,7 +24,7 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://tails.boum.org";
     description = "GTK application to display Tor circuits and streams";
     license = licenses.gpl3;
-    maintainers = [ maintainers.phreedom ];
+    maintainers = [ ];
   };
 }
 
diff --git a/pkgs/tools/security/polkit-gnome/default.nix b/pkgs/tools/security/polkit-gnome/default.nix
index c4c9e9929d5..e0d57d9bde2 100644
--- a/pkgs/tools/security/polkit-gnome/default.nix
+++ b/pkgs/tools/security/polkit-gnome/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     homepage = "https://gitlab.gnome.org/Archive/policykit-gnome";
     description = "A dbus session bus service that is used to bring up authentication dialogs";
     license = lib.licenses.lgpl2Plus;
-    maintainers = with lib.maintainers; [ phreedom ];
+    maintainers = with lib.maintainers; [ ];
     platforms = lib.platforms.linux;
   };
 }
diff --git a/pkgs/tools/security/sammler/default.nix b/pkgs/tools/security/sammler/default.nix
index f5bfab987a1..f9567147e4e 100644
--- a/pkgs/tools/security/sammler/default.nix
+++ b/pkgs/tools/security/sammler/default.nix
@@ -25,6 +25,6 @@ buildGoModule rec {
     description = "Tool to extract useful data from documents";
     homepage = "https://github.com/redcode-labs/Sammler";
     license = licenses.mit;
-    maintainers = with maintainers; [ fab ];
+    maintainers = with maintainers; [ fab ] ++ teams.redcodelabs.members;
   };
 }
diff --git a/pkgs/tools/security/snowcrash/default.nix b/pkgs/tools/security/snowcrash/default.nix
index cd85ff90bf9..18325e4094a 100644
--- a/pkgs/tools/security/snowcrash/default.nix
+++ b/pkgs/tools/security/snowcrash/default.nix
@@ -28,6 +28,6 @@ buildGoModule rec {
     description = "Polyglot payload generator";
     homepage = "https://github.com/redcode-labs/SNOWCRASH";
     license = with licenses; [ mit ];
-    maintainers = with maintainers; [ fab ];
+    maintainers = with maintainers; [ fab ] ++ teams.redcodelabs.members;
   };
 }
diff --git a/pkgs/tools/security/swtpm/default.nix b/pkgs/tools/security/swtpm/default.nix
index 7f2352c7282..f05658f8a98 100644
--- a/pkgs/tools/security/swtpm/default.nix
+++ b/pkgs/tools/security/swtpm/default.nix
@@ -1,6 +1,6 @@
 { lib
 , stdenv
-, fetchFromGitHub, fetchpatch
+, fetchFromGitHub
 , autoreconfHook
 , pkg-config
 , libtasn1, openssl, fuse, glib, libseccomp, json-glib
@@ -8,32 +8,32 @@
 , unixtools, expect, socat
 , gnutls
 , perl
+
+# Tests
+, python3, which
 }:
 
 stdenv.mkDerivation rec {
   pname = "swtpm";
-  version = "0.6.1";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "stefanberger";
     repo = "swtpm";
     rev = "v${version}";
-    sha256 = "sha256-iy8xjKnPLq1ntZa9x+KtLDznzu6m+1db3NPeGQESUVo=";
+    sha256 = "sha256-5MKQmZxTW8WofmTkV9kGeGN5RxsgVVMFZEF3rPDUO6Q=";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://patch-diff.githubusercontent.com/raw/stefanberger/swtpm/pull/527.patch";
-      sha256 = "sha256-cpKHP15a27ifmmswSgHoNzGPO6TY/ZuJIfM5xLOlqlU=";
-    })
-  ];
-
   nativeBuildInputs = [
     pkg-config unixtools.netstat expect socat
     perl # for pod2man
     autoreconfHook
   ];
 
+  checkInputs = [
+    python3 which
+  ];
+
   buildInputs = [
     libtpms
     openssl libtasn1 libseccomp
@@ -47,17 +47,20 @@ stdenv.mkDerivation rec {
   ];
 
   postPatch = ''
+    patchShebangs tests/*
+
     # Makefile tries to create the directory /var/lib/swtpm-localca, which fails
     substituteInPlace samples/Makefile.am \
         --replace 'install-data-local:' 'do-not-execute:'
 
     # Use the correct path to the certtool binary
     # instead of relying on it being in the environment
-    substituteInPlace samples/swtpm_localca.c --replace \
+    substituteInPlace src/swtpm_localca/swtpm_localca.c --replace \
         '# define CERTTOOL_NAME "certtool"' \
         '# define CERTTOOL_NAME "${gnutls}/bin/certtool"'
   '';
 
+  doCheck = true;
   enableParallelBuilding = true;
 
   outputs = [ "out" "man" ];
diff --git a/pkgs/tools/security/tor/default.nix b/pkgs/tools/security/tor/default.nix
index d6cc09acb79..76bfee42196 100644
--- a/pkgs/tools/security/tor/default.nix
+++ b/pkgs/tools/security/tor/default.nix
@@ -30,11 +30,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "tor";
-  version = "0.4.6.8";
+  version = "0.4.6.9";
 
   src = fetchurl {
     url = "https://dist.torproject.org/${pname}-${version}.tar.gz";
-    sha256 = "0sj7qn6d6js6gk4vjfkc7p9g021czbfaq00yfq3mn5ycnhvimkhm";
+    sha256 = "1ad99k4wysxrnlaprv7brxr2nc0h5zdnrh0rma10pqlck2037sf7";
   };
 
   outputs = [ "out" "geoip" ];
@@ -113,7 +113,7 @@ stdenv.mkDerivation rec {
     license = licenses.bsd3;
 
     maintainers = with maintainers;
-      [ phreedom thoughtpolice joachifm prusnak ];
+      [ thoughtpolice joachifm prusnak ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/security/tor/torsocks.nix b/pkgs/tools/security/tor/torsocks.nix
index 22cfa51d4e5..399afe7f75c 100644
--- a/pkgs/tools/security/tor/torsocks.nix
+++ b/pkgs/tools/security/tor/torsocks.nix
@@ -38,6 +38,6 @@ stdenv.mkDerivation rec {
     repositories.git = "https://git.torproject.org/torsocks.git";
     license          = lib.licenses.gpl2;
     platforms        = lib.platforms.unix;
-    maintainers      = with lib.maintainers; [ phreedom thoughtpolice ];
+    maintainers      = with lib.maintainers; [ thoughtpolice ];
   };
 }
diff --git a/pkgs/tools/system/btop/default.nix b/pkgs/tools/system/btop/default.nix
index 4e093bdc2d8..9c926381dc4 100644
--- a/pkgs/tools/system/btop/default.nix
+++ b/pkgs/tools/system/btop/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "btop";
-  version = "1.1.2";
+  version = "1.1.3";
 
   src = fetchFromGitHub {
     owner = "aristocratos";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-+z6bWX2mgvH6nW7SamDzAexeCn/i3+RaPF8RfoikR2k=";
+    sha256 = "sha256-uKR1ogQwEoyxyWBiLnW8BsOsYgTpeIpKrKspq0JwYjY=";
   };
 
   installFlags = [ "PREFIX=$(out)" ];
diff --git a/pkgs/tools/system/lshw/default.nix b/pkgs/tools/system/lshw/default.nix
index 1f29176fd0f..25bf79caddd 100644
--- a/pkgs/tools/system/lshw/default.nix
+++ b/pkgs/tools/system/lshw/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
     homepage = "https://ezix.org/project/wiki/HardwareLiSter";
     description = "Provide detailed information on the hardware configuration of the machine";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ phreedom ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/system/stress-ng/default.nix b/pkgs/tools/system/stress-ng/default.nix
index 46a1fdfd8d3..3fda2ec6a37 100644
--- a/pkgs/tools/system/stress-ng/default.nix
+++ b/pkgs/tools/system/stress-ng/default.nix
@@ -1,14 +1,16 @@
-{ lib, stdenv, fetchurl
+{ lib, stdenv, fetchFromGitHub
 , attr, judy, keyutils, libaio, libapparmor, libbsd, libcap, libgcrypt, lksctp-tools, zlib
 }:
 
 stdenv.mkDerivation rec {
   pname = "stress-ng";
-  version = "0.13.03";
+  version = "0.13.09";
 
-  src = fetchurl {
-    url = "https://kernel.ubuntu.com/~cking/tarballs/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-PmDWBeN42GqFkaMNblV77XCdgqWxlhY3gALNj/ADeos=";
+  src = fetchFromGitHub {
+    owner = "ColinIanKing";
+    repo = pname;
+    rev = "V${version}";
+    hash = "sha256-BOOB5fA/Cy1gsRA4j8aj3lVY2y4OvIfoiRqOIY9nZzM=";
   };
 
   postPatch = ''
@@ -62,9 +64,9 @@ stdenv.mkDerivation rec {
       hardware. However, it has never been intended to be used as a precise benchmark
       test suite, so do NOT use it in this manner.
     '';
-    homepage = "https://kernel.ubuntu.com/~cking/stress-ng/";
-    downloadPage = "https://kernel.ubuntu.com/~cking/tarballs/stress-ng/";
-    changelog = "https://kernel.ubuntu.com/git/cking/stress-ng.git/plain/debian/changelog?h=V${version}";
+    homepage = "https://github.com/ColinIanKing/stress-ng";
+    downloadPage = "https://github.com/ColinIanKing/stress-ng/tags";
+    changelog = "https://github.com/ColinIanKing/stress-ng/raw/V${version}/debian/changelog";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ c0bw3b ];
     platforms = platforms.unix;
diff --git a/pkgs/tools/text/poedit/default.nix b/pkgs/tools/text/poedit/default.nix
index 4c45e5dbeea..fcb2a7019ac 100644
--- a/pkgs/tools/text/poedit/default.nix
+++ b/pkgs/tools/text/poedit/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "poedit";
-  version = "3.0";
+  version = "3.0.1";
 
   src = fetchFromGitHub {
     owner = "vslavik";
     repo = "poedit";
     rev = "v${version}-oss";
-    sha256 = "0bxhyxsa641ip6wab9ms9g4w6mb1bv46y5h5b436spl5c70rcn4z";
+    sha256 = "sha256-PBAOCAO3OrBE7lOho7nJNEpqwds7XiblN/f+GonrXHA=";
   };
 
   nativeBuildInputs = [ autoconf automake asciidoc wrapGAppsHook
diff --git a/pkgs/tools/typesetting/asciidoctor-with-extensions/Gemfile b/pkgs/tools/typesetting/asciidoctor-with-extensions/Gemfile
new file mode 100644
index 00000000000..feb1437d6d4
--- /dev/null
+++ b/pkgs/tools/typesetting/asciidoctor-with-extensions/Gemfile
@@ -0,0 +1,11 @@
+source 'https://rubygems.org'
+gem 'asciidoctor'
+gem 'asciidoctor-diagram'
+gem 'asciidoctor-pdf'
+gem 'asciidoctor-epub3'
+gem 'asciidoctor-mathematical'
+gem 'asciidoctor-bibtex'
+gem 'asciidoctor-revealjs'
+gem 'coderay'
+gem 'pygments.rb'
+gem 'rouge'
diff --git a/pkgs/tools/typesetting/asciidoctor-with-extensions/Gemfile.lock b/pkgs/tools/typesetting/asciidoctor-with-extensions/Gemfile.lock
new file mode 100644
index 00000000000..14829ed7b0a
--- /dev/null
+++ b/pkgs/tools/typesetting/asciidoctor-with-extensions/Gemfile.lock
@@ -0,0 +1,131 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    Ascii85 (1.1.0)
+    addressable (2.8.0)
+      public_suffix (>= 2.0.2, < 5.0)
+    afm (0.2.2)
+    asciidoctor (2.0.16)
+    asciidoctor-bibtex (0.8.0)
+      asciidoctor (~> 2.0)
+      bibtex-ruby (~> 5.1)
+      citeproc-ruby (~> 1)
+      csl-styles (~> 1)
+      latex-decode (~> 0.2)
+    asciidoctor-diagram (2.2.1)
+      asciidoctor (>= 1.5.7, < 3.x)
+      asciidoctor-diagram-ditaamini (~> 1.0)
+      asciidoctor-diagram-plantuml (~> 1.2021)
+      rexml
+    asciidoctor-diagram-ditaamini (1.0.1)
+    asciidoctor-diagram-plantuml (1.2021.8)
+    asciidoctor-epub3 (1.5.1)
+      asciidoctor (>= 1.5.6, < 3.0.0)
+      gepub (~> 1.0.0)
+      mime-types (~> 3.0)
+    asciidoctor-mathematical (0.3.5)
+      asciidoctor (~> 2.0)
+      asciimath (~> 2.0)
+      mathematical (~> 1.6.0)
+    asciidoctor-pdf (1.6.1)
+      asciidoctor (~> 2.0)
+      concurrent-ruby (~> 1.1)
+      prawn (~> 2.4.0)
+      prawn-icon (~> 3.0.0)
+      prawn-svg (~> 0.32.0)
+      prawn-table (~> 0.2.0)
+      prawn-templates (~> 0.1.0)
+      safe_yaml (~> 1.0.0)
+      treetop (~> 1.6.0)
+    asciidoctor-revealjs (4.1.0)
+      asciidoctor (>= 2.0.0, < 3.0.0)
+      concurrent-ruby (~> 1.0)
+      thread_safe (~> 0.3.5)
+    asciimath (2.0.3)
+    bibtex-ruby (5.1.6)
+      latex-decode (~> 0.0)
+    citeproc (1.0.10)
+      namae (~> 1.0)
+    citeproc-ruby (1.1.14)
+      citeproc (~> 1.0, >= 1.0.9)
+      csl (~> 1.6)
+    coderay (1.1.3)
+    concurrent-ruby (1.1.9)
+    csl (1.6.0)
+      namae (~> 1.0)
+      rexml
+    csl-styles (1.0.1.11)
+      csl (~> 1.0)
+    css_parser (1.10.0)
+      addressable
+    gepub (1.0.15)
+      nokogiri (>= 1.8.2, < 2.0)
+      rubyzip (> 1.1.1, < 2.4)
+    hashery (2.1.2)
+    i18n (1.8.11)
+      concurrent-ruby (~> 1.0)
+    latex-decode (0.3.2)
+    mathematical (1.6.14)
+      ruby-enum (~> 0.4)
+    mime-types (3.4.1)
+      mime-types-data (~> 3.2015)
+    mime-types-data (3.2021.1115)
+    mini_portile2 (2.6.1)
+    namae (1.1.1)
+    nokogiri (1.12.5)
+      mini_portile2 (~> 2.6.1)
+      racc (~> 1.4)
+    pdf-core (0.9.0)
+    pdf-reader (2.6.0)
+      Ascii85 (~> 1.0)
+      afm (~> 0.2.1)
+      hashery (~> 2.0)
+      ruby-rc4
+      ttfunk
+    polyglot (0.3.5)
+    prawn (2.4.0)
+      pdf-core (~> 0.9.0)
+      ttfunk (~> 1.7)
+    prawn-icon (3.0.0)
+      prawn (>= 1.1.0, < 3.0.0)
+    prawn-svg (0.32.0)
+      css_parser (~> 1.6)
+      prawn (>= 0.11.1, < 3)
+      rexml (~> 3.2)
+    prawn-table (0.2.2)
+      prawn (>= 1.3.0, < 3.0.0)
+    prawn-templates (0.1.2)
+      pdf-reader (~> 2.0)
+      prawn (~> 2.2)
+    public_suffix (4.0.6)
+    pygments.rb (2.2.0)
+    racc (1.6.0)
+    rexml (3.2.5)
+    rouge (3.26.1)
+    ruby-enum (0.9.0)
+      i18n
+    ruby-rc4 (0.1.5)
+    rubyzip (2.3.2)
+    safe_yaml (1.0.5)
+    thread_safe (0.3.6)
+    treetop (1.6.11)
+      polyglot (~> 0.3)
+    ttfunk (1.7.0)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  asciidoctor
+  asciidoctor-bibtex
+  asciidoctor-diagram
+  asciidoctor-epub3
+  asciidoctor-mathematical
+  asciidoctor-pdf
+  asciidoctor-revealjs
+  coderay
+  pygments.rb
+  rouge
+
+BUNDLED WITH
+   2.2.24
diff --git a/pkgs/tools/typesetting/asciidoctor-with-extensions/default.nix b/pkgs/tools/typesetting/asciidoctor-with-extensions/default.nix
new file mode 100644
index 00000000000..6bb0eac62f1
--- /dev/null
+++ b/pkgs/tools/typesetting/asciidoctor-with-extensions/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, bundlerApp
+, bundlerUpdateScript
+, makeWrapper
+}:
+
+bundlerApp {
+  pname = "asciidoctor";
+  gemdir = ./.;
+
+  exes = [
+    "asciidoctor"
+    "asciidoctor-pdf"
+    "asciidoctor-epub3"
+    "asciidoctor-revealjs"
+  ];
+
+  passthru = {
+    updateScript = bundlerUpdateScript "asciidoctor-with-extensions";
+  };
+
+  meta = with lib; {
+    description = "A faster Asciidoc processor written in Ruby, with many extensions enabled";
+    homepage = "https://asciidoctor.org/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ doronbehar ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/tools/typesetting/asciidoctor-with-extensions/gemset.nix b/pkgs/tools/typesetting/asciidoctor-with-extensions/gemset.nix
new file mode 100644
index 00000000000..6bd49e09962
--- /dev/null
+++ b/pkgs/tools/typesetting/asciidoctor-with-extensions/gemset.nix
@@ -0,0 +1,538 @@
+{
+  addressable = {
+    dependencies = ["public_suffix"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "022r3m9wdxljpbya69y2i3h9g3dhhfaqzidf95m6qjzms792jvgp";
+      type = "gem";
+    };
+    version = "2.8.0";
+  };
+  afm = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "06kj9hgd0z8pj27bxp2diwqh6fv7qhwwm17z64rhdc4sfn76jgn8";
+      type = "gem";
+    };
+    version = "0.2.2";
+  };
+  Ascii85 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ds4v9xgsyvijnlflak4dzf1qwmda9yd5bv8jwsb56nngd399rlw";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  asciidoctor = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10h4pmmkbcrpy7bn76wxzkb0hriabh1k3ii1g8lm0mdji5drlhq2";
+      type = "gem";
+    };
+    version = "2.0.16";
+  };
+  asciidoctor-bibtex = {
+    dependencies = ["asciidoctor" "bibtex-ruby" "citeproc-ruby" "csl-styles" "latex-decode"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0fx80bpykixvnlscyz2c4dnjr1063r5ar7j1zn2977vsr8fi8ial";
+      type = "gem";
+    };
+    version = "0.8.0";
+  };
+  asciidoctor-diagram = {
+    dependencies = ["asciidoctor" "asciidoctor-diagram-ditaamini" "asciidoctor-diagram-plantuml" "rexml"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1z1ilpczjaydhcwpz3yygn03yrx2ljjj55xczwkrlb8rzgh03br3";
+      type = "gem";
+    };
+    version = "2.2.1";
+  };
+  asciidoctor-diagram-ditaamini = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nva5n6nyns0xp77d1dxng1rjhc8ma6gyd8hczjq3h9qqxcw2q4h";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  asciidoctor-diagram-plantuml = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0n018kmqzapf5y1bacb5yyvb9jfwxdkfqnviwxivwz9322b9w6j7";
+      type = "gem";
+    };
+    version = "1.2021.8";
+  };
+  asciidoctor-epub3 = {
+    dependencies = ["asciidoctor" "gepub" "mime-types"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05lylv2k18vcnf3647n47zdqxpa70bg16znzn252ymp8say25zzg";
+      type = "gem";
+    };
+    version = "1.5.1";
+  };
+  asciidoctor-mathematical = {
+    dependencies = ["asciidoctor" "asciimath" "mathematical"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1lxfq7qn3ql642pva6jh3h1abm9j9daxg5icfn1h73k6cjsmcisp";
+      type = "gem";
+    };
+    version = "0.3.5";
+  };
+  asciidoctor-pdf = {
+    dependencies = ["asciidoctor" "concurrent-ruby" "prawn" "prawn-icon" "prawn-svg" "prawn-table" "prawn-templates" "safe_yaml" "treetop"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17d3fa6ix6r5ikydqz41r620mm98s076wdg4w6ydsr655r7mvnpk";
+      type = "gem";
+    };
+    version = "1.6.1";
+  };
+  asciidoctor-revealjs = {
+    dependencies = ["asciidoctor" "concurrent-ruby" "thread_safe"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03vmbcc3x059h17ry4qwk1p0yar9wgh87l2qssi307gy45cjw2mq";
+      type = "gem";
+    };
+    version = "4.1.0";
+  };
+  asciimath = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0h4fz93pf96y5syxwpv0vibjf7lidv2718ikpvyd2vy8c1am8zyn";
+      type = "gem";
+    };
+    version = "2.0.3";
+  };
+  bibtex-ruby = {
+    dependencies = ["latex-decode"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0adh2x935r69nm8qmns5fjsjw034xlyaqddzza2jr2npvf41g34r";
+      type = "gem";
+    };
+    version = "5.1.6";
+  };
+  citeproc = {
+    dependencies = ["namae"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13vl5sjmksk5a8kjcqnjxh7kn9gn1n4f9p1rvqfgsfhs54p0m6l2";
+      type = "gem";
+    };
+    version = "1.0.10";
+  };
+  citeproc-ruby = {
+    dependencies = ["citeproc" "csl"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0a8ahyhhmdinl4kcyv51r74ipnclmfyz4zjv366dns8v49n5vkk3";
+      type = "gem";
+    };
+    version = "1.1.14";
+  };
+  coderay = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jvxqxzply1lwp7ysn94zjhh57vc14mcshw1ygw14ib8lhc00lyw";
+      type = "gem";
+    };
+    version = "1.1.3";
+  };
+  concurrent-ruby = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nwad3211p7yv9sda31jmbyw6sdafzmdi2i2niaz6f0wk5nq9h0f";
+      type = "gem";
+    };
+    version = "1.1.9";
+  };
+  csl = {
+    dependencies = ["namae" "rexml"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0n8iqmzvvqy2b1wfr4c7yj28x4z3zgm36628y8ybl49dgnmjycrk";
+      type = "gem";
+    };
+    version = "1.6.0";
+  };
+  csl-styles = {
+    dependencies = ["csl"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0l29qlk7i74088fpba5iqhhgiqkj7glcmc42nbmvgqysx577nag8";
+      type = "gem";
+    };
+    version = "1.0.1.11";
+  };
+  css_parser = {
+    dependencies = ["addressable"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1q8gj3wkc2mbzsqw5zcsr3kyzrrb2pda03pi769rjbvqr94g3bm5";
+      type = "gem";
+    };
+    version = "1.10.0";
+  };
+  gepub = {
+    dependencies = ["nokogiri" "rubyzip"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08fny807zd4700f263ckc76bladjipsniyk3clv8a7x76x3fqshx";
+      type = "gem";
+    };
+    version = "1.0.15";
+  };
+  hashery = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qj8815bf7q6q7llm5rzdz279gzmpqmqqicxnzv066a020iwqffj";
+      type = "gem";
+    };
+    version = "2.1.2";
+  };
+  i18n = {
+    dependencies = ["concurrent-ruby"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vdd1kii40qhbr9n8qx71k2gskq6rkl8ygy8hw5hfj8bb5a364xf";
+      type = "gem";
+    };
+    version = "1.8.11";
+  };
+  latex-decode = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1wnxg82lfkb8bl5la9nmg1434rpkcygygm0ckixjn6ah2dy6i53m";
+      type = "gem";
+    };
+    version = "0.3.2";
+  };
+  mathematical = {
+    dependencies = ["ruby-enum"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05mn68gxhfa37qsnzsmdqaa005hf511j5lga76qsrad2gcnhan1b";
+      type = "gem";
+    };
+    version = "1.6.14";
+  };
+  mime-types = {
+    dependencies = ["mime-types-data"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ipw892jbksbxxcrlx9g5ljq60qx47pm24ywgfbyjskbcl78pkvb";
+      type = "gem";
+    };
+    version = "3.4.1";
+  };
+  mime-types-data = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03m3fkix2haah20kvh1jgv262yg9jlzn6wq0y31kafxk8fysfy27";
+      type = "gem";
+    };
+    version = "3.2021.1115";
+  };
+  mini_portile2 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1lvxm91hi0pabnkkg47wh1siv56s6slm2mdq1idfm86dyfidfprq";
+      type = "gem";
+    };
+    version = "2.6.1";
+  };
+  namae = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1j3nl1klkx3gymrdxfc1hlq4a8qlvhhl9aj5v1v08b9fz27sky0l";
+      type = "gem";
+    };
+    version = "1.1.1";
+  };
+  nokogiri = {
+    dependencies = ["mini_portile2" "racc"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1v02g7k7cxiwdcahvlxrmizn3avj2q6nsjccgilq1idc89cr081b";
+      type = "gem";
+    };
+    version = "1.12.5";
+  };
+  pdf-core = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fz0yj4zrlii2j08kaw11j769s373ayz8jrdhxwwjzmm28pqndjg";
+      type = "gem";
+    };
+    version = "0.9.0";
+  };
+  pdf-reader = {
+    dependencies = ["Ascii85" "afm" "hashery" "ruby-rc4" "ttfunk"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0zgv9pp9cqd1cf8bwk7pb5lkm81gn7znnan0a7s42wd0qavs4nnz";
+      type = "gem";
+    };
+    version = "2.6.0";
+  };
+  polyglot = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1bqnxwyip623d8pr29rg6m8r0hdg08fpr2yb74f46rn1wgsnxmjr";
+      type = "gem";
+    };
+    version = "0.3.5";
+  };
+  prawn = {
+    dependencies = ["pdf-core" "ttfunk"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1g9avv2rprsjisdk137s9ljr05r7ajhm78hxa1vjsv0jyx22f1l2";
+      type = "gem";
+    };
+    version = "2.4.0";
+  };
+  prawn-icon = {
+    dependencies = ["prawn"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xdnjik5zinnkjavmybbh2s52wzcpb8hzaqckiv0mxp0vs0x9j6s";
+      type = "gem";
+    };
+    version = "3.0.0";
+  };
+  prawn-svg = {
+    dependencies = ["css_parser" "prawn" "rexml"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0mbxzw7r7hv43db9422flc24ib9d8bdy1nasbni2h998jc5a5lb6";
+      type = "gem";
+    };
+    version = "0.32.0";
+  };
+  prawn-table = {
+    dependencies = ["prawn"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nxd6qmxqwl850icp18wjh5k0s3amxcajdrkjyzpfgq0kvilcv9k";
+      type = "gem";
+    };
+    version = "0.2.2";
+  };
+  prawn-templates = {
+    dependencies = ["pdf-reader" "prawn"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1w9irn3rllm992c6j7fsx81gg539i7yy8zfddyw7q53hnlys0yhi";
+      type = "gem";
+    };
+    version = "0.1.2";
+  };
+  public_suffix = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xqcgkl7bwws1qrlnmxgh8g4g9m10vg60bhlw40fplninb3ng6d9";
+      type = "gem";
+    };
+    version = "4.0.6";
+  };
+  "pygments.rb" = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mshqjh8v0v8k29f8annqfr4qlgkp39nbwx3sgm69aymv4skfddb";
+      type = "gem";
+    };
+    version = "2.2.0";
+  };
+  racc = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0la56m0z26j3mfn1a9lf2l03qx1xifanndf9p3vx1azf6sqy7v9d";
+      type = "gem";
+    };
+    version = "1.6.0";
+  };
+  rexml = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08ximcyfjy94pm1rhcx04ny1vx2sk0x4y185gzn86yfsbzwkng53";
+      type = "gem";
+    };
+    version = "3.2.5";
+  };
+  rouge = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "197k0vskf72wxx0gzwld2jzg27bb7982xlvnzy9adlvkzp7nh8vf";
+      type = "gem";
+    };
+    version = "3.26.1";
+  };
+  ruby-enum = {
+    dependencies = ["i18n"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pys90hxylhyg969iw9lz3qai5lblf8xwbdg1g5aj52731a9k83p";
+      type = "gem";
+    };
+    version = "0.9.0";
+  };
+  ruby-rc4 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00vci475258mmbvsdqkmqadlwn6gj9m01sp7b5a3zd90knil1k00";
+      type = "gem";
+    };
+    version = "0.1.5";
+  };
+  rubyzip = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0grps9197qyxakbpw02pda59v45lfgbgiyw48i0mq9f2bn9y6mrz";
+      type = "gem";
+    };
+    version = "2.3.2";
+  };
+  safe_yaml = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0j7qv63p0vqcd838i2iy2f76c3dgwzkiz1d1xkg7n0pbnxj2vb56";
+      type = "gem";
+    };
+    version = "1.0.5";
+  };
+  thread_safe = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
+      type = "gem";
+    };
+    version = "0.3.6";
+  };
+  treetop = {
+    dependencies = ["polyglot"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0697qz1akblf8r3wi0s2dsjh468hfsd57fb0mrp93z35y2ni6bhh";
+      type = "gem";
+    };
+    version = "1.6.11";
+  };
+  ttfunk = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15iaxz9iak5643bq2bc0jkbjv8w2zn649lxgvh5wg48q9d4blw13";
+      type = "gem";
+    };
+    version = "1.7.0";
+  };
+}
diff --git a/pkgs/tools/typesetting/asciidoctor/Gemfile b/pkgs/tools/typesetting/asciidoctor/Gemfile
index 702dabee2e0..32e18b53aa6 100644
--- a/pkgs/tools/typesetting/asciidoctor/Gemfile
+++ b/pkgs/tools/typesetting/asciidoctor/Gemfile
@@ -1,10 +1,6 @@
 source 'https://rubygems.org'
 gem 'asciidoctor'
-gem 'asciidoctor-diagram'
 gem 'asciidoctor-pdf'
-gem 'asciidoctor-epub3'
-gem 'asciidoctor-mathematical'
-gem 'asciidoctor-revealjs'
 gem 'coderay'
 gem 'pygments.rb'
 gem 'rouge'
diff --git a/pkgs/tools/typesetting/asciidoctor/Gemfile.lock b/pkgs/tools/typesetting/asciidoctor/Gemfile.lock
index e7a1bdcfd80..5c607d269b2 100644
--- a/pkgs/tools/typesetting/asciidoctor/Gemfile.lock
+++ b/pkgs/tools/typesetting/asciidoctor/Gemfile.lock
@@ -6,21 +6,6 @@ GEM
       public_suffix (>= 2.0.2, < 5.0)
     afm (0.2.2)
     asciidoctor (2.0.16)
-    asciidoctor-diagram (2.2.1)
-      asciidoctor (>= 1.5.7, < 3.x)
-      asciidoctor-diagram-ditaamini (~> 1.0)
-      asciidoctor-diagram-plantuml (~> 1.2021)
-      rexml
-    asciidoctor-diagram-ditaamini (1.0.1)
-    asciidoctor-diagram-plantuml (1.2021.8)
-    asciidoctor-epub3 (1.5.1)
-      asciidoctor (>= 1.5.6, < 3.0.0)
-      gepub (~> 1.0.0)
-      mime-types (~> 3.0)
-    asciidoctor-mathematical (0.3.5)
-      asciidoctor (~> 2.0)
-      asciimath (~> 2.0)
-      mathematical (~> 1.6.0)
     asciidoctor-pdf (1.6.1)
       asciidoctor (~> 2.0)
       concurrent-ruby (~> 1.1)
@@ -31,32 +16,13 @@ GEM
       prawn-templates (~> 0.1.0)
       safe_yaml (~> 1.0.0)
       treetop (~> 1.6.0)
-    asciidoctor-revealjs (4.1.0)
-      asciidoctor (>= 2.0.0, < 3.0.0)
-      concurrent-ruby (~> 1.0)
-      thread_safe (~> 0.3.5)
-    asciimath (2.0.3)
     coderay (1.1.3)
     concurrent-ruby (1.1.9)
     css_parser (1.10.0)
       addressable
-    gepub (1.0.15)
-      nokogiri (>= 1.8.2, < 2.0)
-      rubyzip (> 1.1.1, < 2.4)
     hashery (2.1.2)
-    i18n (1.8.11)
-      concurrent-ruby (~> 1.0)
-    mathematical (1.6.14)
-      ruby-enum (~> 0.4)
-    mime-types (3.3.1)
-      mime-types-data (~> 3.2015)
-    mime-types-data (3.2021.0901)
-    mini_portile2 (2.6.1)
-    nokogiri (1.12.5)
-      mini_portile2 (~> 2.6.1)
-      racc (~> 1.4)
     pdf-core (0.9.0)
-    pdf-reader (2.5.0)
+    pdf-reader (2.6.0)
       Ascii85 (~> 1.0)
       afm (~> 0.2.1)
       hashery (~> 2.0)
@@ -79,15 +45,10 @@ GEM
       prawn (~> 2.2)
     public_suffix (4.0.6)
     pygments.rb (2.2.0)
-    racc (1.6.0)
     rexml (3.2.5)
     rouge (3.26.1)
-    ruby-enum (0.9.0)
-      i18n
     ruby-rc4 (0.1.5)
-    rubyzip (2.3.2)
     safe_yaml (1.0.5)
-    thread_safe (0.3.6)
     treetop (1.6.11)
       polyglot (~> 0.3)
     ttfunk (1.7.0)
@@ -97,11 +58,7 @@ PLATFORMS
 
 DEPENDENCIES
   asciidoctor
-  asciidoctor-diagram
-  asciidoctor-epub3
-  asciidoctor-mathematical
   asciidoctor-pdf
-  asciidoctor-revealjs
   coderay
   pygments.rb
   rouge
diff --git a/pkgs/tools/typesetting/asciidoctor/default.nix b/pkgs/tools/typesetting/asciidoctor/default.nix
index 73fb46d2e60..5f78c12508d 100644
--- a/pkgs/tools/typesetting/asciidoctor/default.nix
+++ b/pkgs/tools/typesetting/asciidoctor/default.nix
@@ -1,39 +1,26 @@
-{ lib, bundlerApp, makeWrapper,
-  # Optional dependencies, can be null
-  epubcheck,
-  bundlerUpdateScript
+{ lib
+, bundlerApp
+, bundlerUpdateScript
 }:
 
-let
-  app = bundlerApp {
-    pname = "asciidoctor";
-    gemdir = ./.;
+bundlerApp {
+  pname = "asciidoctor";
+  gemdir = ./.;
 
-    exes = [
-      "asciidoctor"
-      "asciidoctor-pdf"
-      "asciidoctor-epub3"
-      "asciidoctor-revealjs"
-    ];
+  exes = [
+    "asciidoctor"
+    "asciidoctor-pdf"
+  ];
 
-    buildInputs = [ makeWrapper ];
-
-    postBuild = ''
-        wrapProgram "$out/bin/asciidoctor-epub3" \
-          ${lib.optionalString (epubcheck != null) "--set EPUBCHECK ${epubcheck}/bin/epubcheck"}
-      '';
-
-    passthru = {
-      updateScript = bundlerUpdateScript "asciidoctor";
-    };
+  passthru = {
+    updateScript = bundlerUpdateScript "asciidoctor";
+  };
 
-    meta = with lib; {
-      description = "A faster Asciidoc processor written in Ruby";
-      homepage = "https://asciidoctor.org/";
-      license = licenses.mit;
-      maintainers = with maintainers; [ gpyh nicknovitski ];
-      platforms = platforms.unix;
-    };
+  meta = with lib; {
+    description = "A faster Asciidoc processor written in Ruby";
+    homepage = "https://asciidoctor.org/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ gpyh nicknovitski ];
+    platforms = platforms.unix;
   };
-in
-  app
+}
diff --git a/pkgs/tools/typesetting/asciidoctor/gemset.nix b/pkgs/tools/typesetting/asciidoctor/gemset.nix
index b227121d6b8..b57d1e5ac4a 100644
--- a/pkgs/tools/typesetting/asciidoctor/gemset.nix
+++ b/pkgs/tools/typesetting/asciidoctor/gemset.nix
@@ -40,59 +40,6 @@
     };
     version = "2.0.16";
   };
-  asciidoctor-diagram = {
-    dependencies = ["asciidoctor" "asciidoctor-diagram-ditaamini" "asciidoctor-diagram-plantuml" "rexml"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1z1ilpczjaydhcwpz3yygn03yrx2ljjj55xczwkrlb8rzgh03br3";
-      type = "gem";
-    };
-    version = "2.2.1";
-  };
-  asciidoctor-diagram-ditaamini = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1nva5n6nyns0xp77d1dxng1rjhc8ma6gyd8hczjq3h9qqxcw2q4h";
-      type = "gem";
-    };
-    version = "1.0.1";
-  };
-  asciidoctor-diagram-plantuml = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0n018kmqzapf5y1bacb5yyvb9jfwxdkfqnviwxivwz9322b9w6j7";
-      type = "gem";
-    };
-    version = "1.2021.8";
-  };
-  asciidoctor-epub3 = {
-    dependencies = ["asciidoctor" "gepub" "mime-types"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "05lylv2k18vcnf3647n47zdqxpa70bg16znzn252ymp8say25zzg";
-      type = "gem";
-    };
-    version = "1.5.1";
-  };
-  asciidoctor-mathematical = {
-    dependencies = ["asciidoctor" "asciimath" "mathematical"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1lxfq7qn3ql642pva6jh3h1abm9j9daxg5icfn1h73k6cjsmcisp";
-      type = "gem";
-    };
-    version = "0.3.5";
-  };
   asciidoctor-pdf = {
     dependencies = ["asciidoctor" "concurrent-ruby" "prawn" "prawn-icon" "prawn-svg" "prawn-table" "prawn-templates" "safe_yaml" "treetop"];
     groups = ["default"];
@@ -104,27 +51,6 @@
     };
     version = "1.6.1";
   };
-  asciidoctor-revealjs = {
-    dependencies = ["asciidoctor" "concurrent-ruby" "thread_safe"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "03vmbcc3x059h17ry4qwk1p0yar9wgh87l2qssi307gy45cjw2mq";
-      type = "gem";
-    };
-    version = "4.1.0";
-  };
-  asciimath = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0h4fz93pf96y5syxwpv0vibjf7lidv2718ikpvyd2vy8c1am8zyn";
-      type = "gem";
-    };
-    version = "2.0.3";
-  };
   coderay = {
     groups = ["default"];
     platforms = [];
@@ -156,17 +82,6 @@
     };
     version = "1.10.0";
   };
-  gepub = {
-    dependencies = ["nokogiri" "rubyzip"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "08fny807zd4700f263ckc76bladjipsniyk3clv8a7x76x3fqshx";
-      type = "gem";
-    };
-    version = "1.0.15";
-  };
   hashery = {
     groups = ["default"];
     platforms = [];
@@ -177,70 +92,6 @@
     };
     version = "2.1.2";
   };
-  i18n = {
-    dependencies = ["concurrent-ruby"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0vdd1kii40qhbr9n8qx71k2gskq6rkl8ygy8hw5hfj8bb5a364xf";
-      type = "gem";
-    };
-    version = "1.8.11";
-  };
-  mathematical = {
-    dependencies = ["ruby-enum"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "05mn68gxhfa37qsnzsmdqaa005hf511j5lga76qsrad2gcnhan1b";
-      type = "gem";
-    };
-    version = "1.6.14";
-  };
-  mime-types = {
-    dependencies = ["mime-types-data"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1zj12l9qk62anvk9bjvandpa6vy4xslil15wl6wlivyf51z773vh";
-      type = "gem";
-    };
-    version = "3.3.1";
-  };
-  mime-types-data = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1z5wvk6qi4ws1kjh7xn1rfirqw5m72bwvqacck1fjpbh33pcrwxv";
-      type = "gem";
-    };
-    version = "3.2021.0901";
-  };
-  mini_portile2 = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1lvxm91hi0pabnkkg47wh1siv56s6slm2mdq1idfm86dyfidfprq";
-      type = "gem";
-    };
-    version = "2.6.1";
-  };
-  nokogiri = {
-    dependencies = ["mini_portile2" "racc"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1v02g7k7cxiwdcahvlxrmizn3avj2q6nsjccgilq1idc89cr081b";
-      type = "gem";
-    };
-    version = "1.12.5";
-  };
   pdf-core = {
     groups = ["default"];
     platforms = [];
@@ -257,10 +108,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "14cxj3ra9nnn334qpm2vsx9s0zk3095s8ih6cwcp47h3hv03c73y";
+      sha256 = "0zgv9pp9cqd1cf8bwk7pb5lkm81gn7znnan0a7s42wd0qavs4nnz";
       type = "gem";
     };
-    version = "2.5.0";
+    version = "2.6.0";
   };
   polyglot = {
     groups = ["default"];
@@ -347,16 +198,6 @@
     };
     version = "2.2.0";
   };
-  racc = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0la56m0z26j3mfn1a9lf2l03qx1xifanndf9p3vx1azf6sqy7v9d";
-      type = "gem";
-    };
-    version = "1.6.0";
-  };
   rexml = {
     groups = ["default"];
     platforms = [];
@@ -377,17 +218,6 @@
     };
     version = "3.26.1";
   };
-  ruby-enum = {
-    dependencies = ["i18n"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1pys90hxylhyg969iw9lz3qai5lblf8xwbdg1g5aj52731a9k83p";
-      type = "gem";
-    };
-    version = "0.9.0";
-  };
   ruby-rc4 = {
     groups = ["default"];
     platforms = [];
@@ -398,16 +228,6 @@
     };
     version = "0.1.5";
   };
-  rubyzip = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0grps9197qyxakbpw02pda59v45lfgbgiyw48i0mq9f2bn9y6mrz";
-      type = "gem";
-    };
-    version = "2.3.2";
-  };
   safe_yaml = {
     groups = ["default"];
     platforms = [];
@@ -418,16 +238,6 @@
     };
     version = "1.0.5";
   };
-  thread_safe = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
-      type = "gem";
-    };
-    version = "0.3.6";
-  };
   treetop = {
     dependencies = ["polyglot"];
     groups = ["default"];
diff --git a/pkgs/tools/typesetting/htmldoc/default.nix b/pkgs/tools/typesetting/htmldoc/default.nix
index aaea9090b72..e29447011bc 100644
--- a/pkgs/tools/typesetting/htmldoc/default.nix
+++ b/pkgs/tools/typesetting/htmldoc/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "htmldoc";
-  version = "1.9.12";
+  version = "1.9.13";
   src = fetchFromGitHub {
     owner = "michaelrsweet";
     repo = "htmldoc";
     rev = "v${version}";
-    sha256 = "1dqima0g3j301wwzjxdhzk5pvfj724rl615gf8ssxxajfnid1gl0";
+    sha256 = "sha256-wAqH3BKNYbOXMbnaRhz4QZ/49stxC2Qf+yatKBv0i68=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/tools/typesetting/pdftk/default.nix b/pkgs/tools/typesetting/pdftk/default.nix
index c1f04616729..354ac0af017 100644
--- a/pkgs/tools/typesetting/pdftk/default.nix
+++ b/pkgs/tools/typesetting/pdftk/default.nix
@@ -2,13 +2,13 @@
 
 let
   pname = "pdftk";
-  version = "3.2.1";
+  version = "3.3.1";
 
   src = fetchFromGitLab {
     owner = "pdftk-java";
     repo = "pdftk";
     rev = "v${version}";
-    sha256 = "056db8rjczdfkq7fm3bv5g15y042rc9hb4zh5qccjrdw630vk9y4";
+    sha256 = "1bah0y7nj4r0xwj74lxixhcsc51c93s6m6agkgciv4p1z69y0m66";
   };
 
   deps = stdenv.mkDerivation {
@@ -32,7 +32,7 @@ let
 
     outputHashAlgo = "sha256";
     outputHashMode = "recursive";
-    outputHash = "0p59myc5m3ds7fh0zdz3n7l7hx6dj8bpyqxzlhdrqybsyxwpw4w3";
+    outputHash = "06i2la72ag26phlcl52qnjnkscg6adyydwbdylnwbij73q5g15v4";
   };
 
   # Point to our local deps repo
diff --git a/pkgs/tools/wayland/wayland-proxy-virtwl/default.nix b/pkgs/tools/wayland/wayland-proxy-virtwl/default.nix
index 8673200172e..4008461cc15 100644
--- a/pkgs/tools/wayland/wayland-proxy-virtwl/default.nix
+++ b/pkgs/tools/wayland/wayland-proxy-virtwl/default.nix
@@ -1,17 +1,18 @@
 { lib
 , fetchFromGitHub
 , ocamlPackages
+, buildPackages
 }:
 
 ocamlPackages.buildDunePackage rec {
   pname = "wayland-proxy-virtwl";
-  version = "unstable-2021-04-15";
+  version = "unstable-2021-12-05";
 
   src = fetchFromGitHub {
     owner = "talex5";
     repo = pname;
-    rev = "09321a28f3d4c0fa7e41ebb3014106b62090b649";
-    sha256 = "03rc2jp5d2y9y7mfis6kk9gchd49gvq0jg6fq5gi9r21ckb4k5v4";
+    rev = "d7f58d405514dd031f2f12e402c8c6a58e62a885";
+    sha256 = "0riwaqdlrx2gzkrb02v4zdl4ivpmz9g5w87lj3bhqs0l3s6c249s";
   };
 
   postPatch = ''
@@ -22,12 +23,19 @@ ocamlPackages.buildDunePackage rec {
   useDune2 = true;
   minimumOCamlVersion = "4.08";
 
+  nativeBuildInputs = [
+    buildPackages.ocamlPackages.ppx_cstruct
+  ];
+
   buildInputs = with ocamlPackages; [
     wayland
     cmdliner
     logs
+    cstruct-lwt
   ];
 
+  doCheck = true;
+
   meta = {
     homepage = "https://github.com/talex5/wayland-virtwl-proxy";
     description = "Proxy Wayland connections across a VM boundary";
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index 3b4fb0cd607..672fdf21b02 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -384,6 +384,7 @@ mapAliases ({
   jbuilder = dune_1; # added 2018-09-09
   jikes = throw "jikes was deprecated on 2019-10-07: abandoned by upstream";
   joseki = apache-jena-fuseki; # added 2016-02-28
+  journalbeat7 = throw "journalbeat has been removed upstream. Use filebeat with the journald input instead.";
   jvmci8 = throw "graalvm8 and its tools were deprecated in favor of graalvm8-ce"; # added 2021-10-15
   json_glib = json-glib; # added 2018-02-25
   kafkacat = kcat; # added 2021-10-07
@@ -839,6 +840,7 @@ mapAliases ({
   scaff = throw "scaff is deprecated - replaced by https://gitlab.com/jD91mZM2/inc (not in nixpkgs yet)"; # added 2020-03-01
   scim = sc-im; # added 2016-01-22
   scollector = bosun; # added 2018-04-25
+  scyther = throw "scyther has been removed since it currently only supports Python 2, see https://github.com/cascremers/scyther/issues/20"; # added 2021-10-07
   sdlmame = mame; # added 2019-10-30
   seeks = throw "seeks has been removed from nixpkgs, as it was unmaintained"; # added 2020-06-21
   seg3d = throw "seg3d has been removed from nixpkgs (2019-11-10)";
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index ad90577a7e5..35df2181c85 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -186,6 +186,8 @@ with pkgs;
 
   antsimulator = callPackage ../games/antsimulator { };
 
+  astrolog = callPackage ../applications/science/astronomy/astrolog { };
+
   atkinson-hyperlegible = callPackage ../data/fonts/atkinson-hyperlegible { };
 
   atuin = callPackage ../tools/misc/atuin {
@@ -488,7 +490,7 @@ with pkgs;
     cacert = buildPackages.cacert;
     git-lfs = buildPackages.git-lfs;
   }) // { # fetchgit is a function, so we use // instead of passthru.
-    tests = callPackages ../build-support/fetchgit/tests.nix {};
+    tests = pkgs.tests.fetchgit;
   };
 
   fetchgitLocal = callPackage ../build-support/fetchgitlocal { };
@@ -531,7 +533,7 @@ with pkgs;
 
   fetchpatch = callPackage ../build-support/fetchpatch { }
     // {
-      tests = callPackages ../build-support/fetchpatch/tests.nix { };
+      tests = pkgs.tests.fetchpatch;
     };
 
   fetchs3 = callPackage ../build-support/fetchs3 { };
@@ -549,7 +551,7 @@ with pkgs;
 
   fetchFirefoxAddon = callPackage ../build-support/fetchfirefoxaddon { }
     // {
-      tests = callPackages ../build-support/fetchfirefoxaddon/tests.nix { };
+      tests = pkgs.tests.fetchFirefoxAddon;
     };
 
   fetchNextcloudApp = callPackage ../build-support/fetchnextcloudapp {};
@@ -698,11 +700,21 @@ with pkgs;
           --replace " @CC@ " " ${cc}/bin/cc ${san} "
       '';
     in
-      makeSetupHook { deps = [ dieHook ]; } script;
+      makeSetupHook {
+        deps = [ dieHook cc ];
+        substitutions.passthru.tests = callPackage ../test/make-binary-wrapper {
+          makeBinaryWrapper = makeBinaryWrapper.override {
+            sanitizers = (if stdenv.isDarwin && stdenv.isAarch64
+              then [ ]
+              else [ "undefined" "address" ]
+            );
+          };
+        };
+      } script;
   in
     lib.makeOverridable f {
-      cc = stdenv.cc.cc;
-      sanitizers = [ "undefined" "address" ];
+      cc = stdenv.cc;
+      sanitizers = [ ];
     };
 
   makeModulesClosure = { kernel, firmware, rootModules, allowMissing ? false }:
@@ -989,6 +1001,8 @@ with pkgs;
 
   godns = callPackage ../tools/networking/godns { };
 
+  godspeed = callPackage ../tools/networking/godspeed { };
+
   ksnip = libsForQt5.callPackage ../tools/misc/ksnip { };
 
   linux-router = callPackage ../tools/networking/linux-router { };
@@ -1799,6 +1813,8 @@ with pkgs;
 
   gomatrix = callPackage ../applications/misc/gomatrix { };
 
+  gomapenum = callPackage ../tools/security/gomapenum { };
+
   gopacked = callPackage ../applications/misc/gopacked { };
 
   gucci = callPackage ../tools/text/gucci { };
@@ -1873,6 +1889,8 @@ with pkgs;
 
   pacparser = callPackage ../tools/networking/pacparser { };
 
+  opencbm = callPackage ../tools/misc/opencbm { };
+
   parquet-tools = callPackage ../tools/misc/parquet-tools { };
 
   pass = callPackage ../tools/security/pass { };
@@ -2138,8 +2156,7 @@ with pkgs;
     filebeat7
     heartbeat7
     metricbeat7
-    packetbeat7
-    journalbeat7;
+    packetbeat7;
 
   filebeat = filebeat6;
   heartbeat = heartbeat6;
@@ -3078,6 +3095,8 @@ with pkgs;
 
   gh-ost = callPackage ../tools/misc/gh-ost { };
 
+  ghdorker = callPackage ../tools/security/ghdorker { };
+
   ghidra-bin = callPackage ../tools/security/ghidra { };
 
   gif-for-cli = callPackage ../tools/misc/gif-for-cli { };
@@ -3368,7 +3387,9 @@ with pkgs;
 
   merriweather-sans = callPackage ../data/fonts/merriweather-sans { };
 
-  meson = callPackage ../development/tools/build-managers/meson { };
+  # TODO: call a sprintable to deprecate Meson 0.57 as soon as possible
+  meson = callPackage ../development/tools/build-managers/meson/0.57 { };
+  meson_0_60 = callPackage ../development/tools/build-managers/meson/0.60 { };
 
   meson-tools = callPackage ../misc/meson-tools { };
 
@@ -3790,10 +3811,9 @@ with pkgs;
     enableExtraPlugins = true;
   });
 
-  asciidoctor = callPackage ../tools/typesetting/asciidoctor {
-    # epubcheck pulls in Java, which is problematic on some platforms
-    epubcheck = null;
-  };
+  asciidoctor = callPackage ../tools/typesetting/asciidoctor { };
+
+  asciidoctor-with-extensions = callPackage ../tools/typesetting/asciidoctor-with-extensions { };
 
   asciidoctorj = callPackage ../tools/typesetting/asciidoctorj { };
 
@@ -4285,11 +4305,9 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
   };
 
-  code-browser-qt = libsForQt5.callPackage ../applications/editors/code-browser { withQt = true;
-                                                                                };
-  code-browser-gtk = callPackage ../applications/editors/code-browser { withGtk = true;
-                                                                        qtbase = qt5.qtbase;
-                                                                      };
+  code-browser-qt = libsForQt5.callPackage ../applications/editors/code-browser { withQt = true; };
+  code-browser-gtk2 = callPackage ../applications/editors/code-browser { withGtk2 = true; };
+  code-browser-gtk = callPackage ../applications/editors/code-browser { withGtk3 = true; };
 
   c14 = callPackage ../applications/networking/c14 { };
 
@@ -4998,8 +5016,8 @@ with pkgs;
 
   # The latest version used by elasticsearch, logstash, kibana and the the beats from elastic.
   # When updating make sure to update all plugins or they will break!
-  elk6Version = "6.8.3";
-  elk7Version = "7.11.1";
+  elk6Version = "6.8.21";
+  elk7Version = "7.16.1";
 
   elasticsearch6 = callPackage ../servers/search/elasticsearch/6.x.nix {
     util-linux = util-linuxMinimal;
@@ -5598,6 +5616,8 @@ with pkgs;
 
   ghr = callPackage ../applications/version-management/git-and-tools/ghr { };
 
+  ghrepo-stats = with python3Packages; toPythonApplication ghrepo-stats;
+
   gibberish-detector = with python3Packages; toPythonApplication gibberish-detector;
 
   gibo = callPackage ../tools/misc/gibo { };
@@ -5675,6 +5695,8 @@ with pkgs;
 
   git-cola = callPackage ../applications/version-management/git-and-tools/git-cola { };
 
+  git-credential-1password = callPackage ../applications/version-management/git-and-tools/git-credential-1password { };
+
   git-crecord = callPackage ../applications/version-management/git-crecord { };
 
   git-crypt = callPackage ../applications/version-management/git-and-tools/git-crypt { };
@@ -5997,6 +6019,7 @@ with pkgs;
 
   goverlay = callPackage ../tools/graphics/goverlay {
     inherit (qt5) wrapQtAppsHook;
+    inherit (plasma5Packages) breeze-qt5;
   };
 
   gpart = callPackage ../tools/filesystems/gpart { };
@@ -7461,10 +7484,26 @@ with pkgs;
 
   liquidctl = with python3Packages; toPythonApplication liquidctl;
 
+  lmp = callPackage ../tools/security/lmp { };
+
   localtime = callPackage ../tools/system/localtime { };
 
+  log4j-detect = callPackage ../tools/security/log4j-detect { };
+
+  log4j-scan = callPackage ../tools/security/log4j-scan { };
+
+  log4j-sniffer = callPackage ../tools/security/log4j-sniffer { };
+
+  log4j-vuln-scanner = callPackage ../tools/security/log4j-vuln-scanner { };
+
+  log4jcheck = callPackage ../tools/security/log4jcheck { };
+
+  log4shell-detector = callPackage ../tools/security/log4shell-detector { };
+
   logcheck = callPackage ../tools/system/logcheck { };
 
+  logmap = callPackage ../tools/security/logmap { };
+
   logmein-hamachi = callPackage ../tools/networking/logmein-hamachi { };
 
   logkeys = callPackage ../tools/security/logkeys { };
@@ -7648,9 +7687,7 @@ with pkgs;
 
   mednafen-server = callPackage ../misc/emulators/mednafen/server.nix { };
 
-  mednaffe = callPackage ../misc/emulators/mednaffe {
-    gtk2 = null;
-  };
+  mednaffe = callPackage ../misc/emulators/mednaffe { };
 
   megacli = callPackage ../tools/misc/megacli { };
 
@@ -8326,7 +8363,9 @@ with pkgs;
 
   openrgb = libsForQt5.callPackage ../applications/misc/openrgb { };
 
-  openrussian-cli = callPackage ../misc/openrussian-cli { };
+  openrussian-cli = callPackage ../misc/openrussian-cli {
+    luaPackages = lua53Packages;
+  };
 
   opensc = callPackage ../tools/security/opensc {
     inherit (darwin.apple_sdk.frameworks) Carbon PCSC;
@@ -8485,7 +8524,7 @@ with pkgs;
 
   pamtester = callPackage ../tools/security/pamtester { };
 
-  pantheon-tweaks = callPackage ../applications/system/pantheon-tweaks { };
+  pantheon-tweaks = callPackage ../desktops/pantheon/third-party/pantheon-tweaks { };
 
   paperless-ng = callPackage ../applications/office/paperless-ng { };
 
@@ -10598,7 +10637,6 @@ with pkgs;
 
   sssd = callPackage ../os-specific/linux/sssd {
     inherit (perlPackages) Po4a;
-    inherit (python27Packages) ldap;
   };
 
   sentry-cli = callPackage ../development/tools/sentry-cli {
@@ -10968,6 +11006,8 @@ with pkgs;
 
   chase = callPackage ../tools/system/chase { };
 
+  wingpanel-indicator-ayatana = callPackage ../desktops/pantheon/third-party/wingpanel-indicator-ayatana { };
+
   wimlib = callPackage ../tools/archivers/wimlib { };
 
   wipe = callPackage ../tools/security/wipe { };
@@ -13096,7 +13136,7 @@ with pkgs;
   squeak = callPackage ../development/compilers/squeak { };
 
   squirrel-sql = callPackage ../development/tools/database/squirrel-sql {
-    drivers = [ mssql_jdbc mysql_jdbc postgresql_jdbc ];
+    drivers = [ jtds_jdbc mssql_jdbc mysql_jdbc postgresql_jdbc ];
   };
 
   stalin = callPackage ../development/compilers/stalin { };
@@ -13519,6 +13559,13 @@ with pkgs;
   phpExtensions = php.extensions;
   phpPackages = php.packages;
 
+  # Import PHP81 interpreter, extensions and packages
+  php81 = callPackage ../development/interpreters/php/8.1.nix {
+    stdenv = if stdenv.cc.isClang then llvmPackages.stdenv else stdenv;
+  };
+  php81Extensions = recurseIntoAttrs php81.extensions;
+  php81Packages = recurseIntoAttrs php81.packages;
+
   # Import PHP80 interpreter, extensions and packages
   php80 = callPackage ../development/interpreters/php/8.0.nix {
     stdenv = if stdenv.cc.isClang then llvmPackages.stdenv else stdenv;
@@ -13605,7 +13652,7 @@ with pkgs;
   python3Packages = python3.pkgs;
 
   pythonInterpreters = callPackage ./../development/interpreters/python { };
-  inherit (pythonInterpreters) python27 python37 python38 python39 python310 python3Minimal pypy27 pypy38;
+  inherit (pythonInterpreters) python27 python37 python38 python39 python310 python3Minimal pypy27 pypy38 pypy37 rustpython;
 
   # Python package sets.
   python27Packages = python27.pkgs;
@@ -13617,6 +13664,8 @@ with pkgs;
   pypy2Packages = pypy2.pkgs;
   pypy27Packages = pypy27.pkgs;
   pypy3Packages = pypy3.pkgs;
+  pypy37Packages = pypy37.pkgs;
+  pypy38Packages = pypy38.pkgs;
 
   py3c = callPackage ../development/libraries/py3c { };
 
@@ -14784,7 +14833,7 @@ with pkgs;
   img = callPackage ../development/tools/img { };
 
   include-what-you-use = callPackage ../development/tools/analysis/include-what-you-use {
-    llvmPackages = llvmPackages_12;
+    llvmPackages = llvmPackages_13;
   };
 
   indent = callPackage ../development/tools/misc/indent { };
@@ -14931,6 +14980,8 @@ with pkgs;
 
   lttng-ust = callPackage ../development/tools/misc/lttng-ust { };
 
+  lttng-ust_2_12 = callPackage ../development/tools/misc/lttng-ust/2.12.nix { };
+
   lttv = callPackage ../development/tools/misc/lttv { };
 
   luaformatter = callPackage ../development/tools/luaformatter
@@ -15003,6 +15054,7 @@ with pkgs;
   nimbo = with python3Packages; callPackage ../applications/misc/nimbo { };
 
   gn = callPackage ../development/tools/build-managers/gn { };
+  gn1924 = callPackage ../development/tools/build-managers/gn/rev1924.nix { };
 
   nixbang = callPackage ../development/tools/misc/nixbang {
     pythonPackages = python3Packages;
@@ -15850,6 +15902,8 @@ with pkgs;
 
   buddy = callPackage ../development/libraries/buddy { };
 
+  buildkit-nix = callPackage ../applications/virtualization/buildkit-nix { };
+
   bulletml = callPackage ../development/libraries/bulletml { };
 
   bwidget = callPackage ../development/libraries/bwidget { };
@@ -18311,6 +18365,8 @@ with pkgs;
 
   libstrophe = callPackage ../development/libraries/libstrophe { };
 
+  libspatialaudio = callPackage ../development/libraries/libspatialaudio { };
+
   libspatialindex = callPackage ../development/libraries/libspatialindex { };
 
   libspatialite = callPackage ../development/libraries/libspatialite { };
@@ -18768,6 +18824,10 @@ with pkgs;
 
   mqtt-bench = callPackage ../applications/misc/mqtt-bench {};
 
+  mqttui = callPackage ../tools/networking/mqttui {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
   msgpack = callPackage ../development/libraries/msgpack { };
 
   msoffcrypto-tool = with python3.pkgs; toPythonApplication msoffcrypto-tool;
@@ -19210,6 +19270,8 @@ with pkgs;
 
   prime-server = callPackage ../development/libraries/prime-server { };
 
+  primecount = callPackage ../development/libraries/science/math/primecount { };
+
   primesieve = callPackage ../development/libraries/science/math/primesieve { };
 
   prison = callPackage ../development/libraries/prison { };
@@ -20663,6 +20725,8 @@ with pkgs;
     mod_wsgi2 = callPackage ../servers/http/apache-modules/mod_wsgi { python = python2; ncurses = null; };
     mod_wsgi3 = callPackage ../servers/http/apache-modules/mod_wsgi { python = python3; };
 
+    mod_itk = callPackage ../servers/http/apache-modules/mod_itk { };
+
     php = pkgs.php.override { inherit apacheHttpd; };
 
     subversion = pkgs.subversion.override { httpServer = true; inherit apacheHttpd; };
@@ -20793,6 +20857,7 @@ with pkgs;
   envoy = callPackage ../servers/http/envoy {
     go = go_1_15;
     jdk = openjdk11;
+    gn = gn1924;
   };
 
   etcd = callPackage ../servers/etcd { };
@@ -21312,7 +21377,16 @@ with pkgs;
   };
 
   influxdb = callPackage ../servers/nosql/influxdb { };
-  influxdb2 = callPackage ../servers/nosql/influxdb2 { };
+  influxdb2-server = callPackage ../servers/nosql/influxdb2 {
+    buildGoModule = buildGo117Module;
+  };
+  influxdb2-cli = callPackage ../servers/nosql/influxdb2/cli.nix {
+    buildGoModule = buildGo117Module;
+  };
+  # For backwards compatibility with older versions of influxdb2,
+  # which bundled the server and CLI into the same derivation. Will be
+  # removed in a few releases.
+  influxdb2 = callPackage ../servers/nosql/influxdb2/combined.nix { };
 
   mysql57 = callPackage ../servers/sql/mysql/5.7.x.nix {
     inherit (darwin) cctools developer_cmds;
@@ -21332,6 +21406,7 @@ with pkgs;
   mysql_jdbc = callPackage ../servers/sql/mysql/jdbc { };
 
   mssql_jdbc = callPackage ../servers/sql/mssql/jdbc { };
+  jtds_jdbc = callPackage ../servers/sql/mssql/jdbc/jtds.nix { };
 
   azuredatastudio = callPackage ../applications/misc/azuredatastudio { };
 
@@ -23907,6 +23982,8 @@ with pkgs;
 
   undefined-medium = callPackage ../data/fonts/undefined-medium { };
 
+  unfonts-core = callPackage ../data/fonts/unfonts-core { };
+
   uni-vga = callPackage ../data/fonts/uni-vga
     { inherit (buildPackages.xorg) fonttosfnt mkfontscale; };
 
@@ -24028,6 +24105,8 @@ with pkgs;
 
   foxitreader = libsForQt512.callPackage ../applications/misc/foxitreader { };
 
+  pdfstudio = callPackage ../applications/misc/pdfstudio { };
+
   aeolus = callPackage ../applications/audio/aeolus { };
 
   aewan = callPackage ../applications/editors/aewan { };
@@ -24162,7 +24241,14 @@ with pkgs;
 
   audacity-gtk2 = callPackage ../applications/audio/audacity { wxGTK = wxGTK31-gtk2; };
   audacity-gtk3 = callPackage ../applications/audio/audacity { wxGTK = wxGTK31-gtk3; };
-  audacity = audacity-gtk2;
+  audacity =
+    if stdenv.isDarwin then
+      callPackage ../applications/audio/audacity {
+        inherit (darwin.apple_sdk.frameworks) AppKit AudioToolbox AudioUnit Carbon Cocoa CoreAudio CoreAudioKit CoreServices;
+        suil = suil-qt5;
+      }
+    else
+      audacity-gtk2;
 
   audio-recorder = callPackage ../applications/audio/audio-recorder { };
 
@@ -26095,6 +26181,8 @@ with pkgs;
 
   icecat-bin = callPackage ../applications/networking/browsers/icecat-bin { };
 
+  icon-library = callPackage ../applications/graphics/icon-library { };
+
   id3v2 = callPackage ../applications/audio/id3v2 { };
 
   ideamaker = libsForQt5.callPackage ../applications/misc/ideamaker { };
@@ -26344,6 +26432,8 @@ with pkgs;
 
   kbibtex = libsForQt5.callPackage ../applications/office/kbibtex { };
 
+  kbst = callPackage ../applications/networking/cluster/kbst { };
+
   kaidan = libsForQt5.callPackage ../applications/networking/instant-messengers/kaidan { };
 
   kde-gruvbox = callPackage ../data/themes/kde-gruvbox { };
@@ -26452,6 +26542,8 @@ with pkgs;
 
   kubeconform = callPackage ../applications/networking/cluster/kubeconform { };
 
+  kubecolor = callPackage ../applications/networking/cluster/kubecolor { };
+
   kubectl = callPackage ../applications/networking/cluster/kubectl { };
 
   kubebuilder = callPackage ../applications/networking/cluster/kubebuilder { };
@@ -27058,6 +27150,8 @@ with pkgs;
 
   rofi-power-menu = callPackage ../applications/misc/rofi-power-menu { };
 
+  rofi-pulse-select = callPackage ../applications/audio/rofi-pulse-select { };
+
   rofi-vpn = callPackage ../applications/networking/rofi-vpn { };
 
   ympd = callPackage ../applications/audio/ympd { };
@@ -27189,9 +27283,7 @@ with pkgs;
 
   ninjas2 = callPackage ../applications/audio/ninjas2 {};
 
-  nncp = callPackage ../tools/misc/nncp {
-    go = go_1_15;
-  };
+  nncp = callPackage ../tools/misc/nncp { };
 
   notion = callPackage ../applications/window-managers/notion { };
 
@@ -28286,6 +28378,8 @@ with pkgs;
 
   spotify-qt = libsForQt5.callPackage ../applications/audio/spotify-qt { };
 
+  spotify-tray = callPackage ../applications/misc/spotify-tray { };
+
   spotify-tui = callPackage ../applications/audio/spotify-tui {
     inherit (darwin.apple_sdk.frameworks) AppKit Security;
   };
@@ -28545,6 +28639,10 @@ with pkgs;
 
   sylpheed = callPackage ../applications/networking/mailreaders/sylpheed { };
 
+  symbolic-preview = callPackage ../applications/graphics/symbolic-preview {
+    libhandy = libhandy_0;
+  };
+
   symlinks = callPackage ../tools/system/symlinks { };
 
   syncplay = python3.pkgs.callPackage ../applications/networking/syncplay { };
@@ -28705,10 +28803,19 @@ with pkgs;
   thunderbird = wrapThunderbird thunderbird-unwrapped { };
   thunderbird-wayland = wrapThunderbird thunderbird-unwrapped { forceWayland = true; };
 
-  thunderbolt = callPackage ../os-specific/linux/thunderbolt {};
-
   thunderbird-bin = thunderbird-bin-91;
-  thunderbird-bin-91 = callPackage ../applications/networking/mailreaders/thunderbird-bin { };
+  thunderbird-bin-unwrapped = thunderbird-bin-91-unwrapped;
+
+  thunderbird-bin-91 = wrapThunderbird thunderbird-bin-91-unwrapped {
+    applicationName = "thunderbird";
+    pname = "thunderbird-bin";
+    desktopName = "Thunderbird";
+  };
+  thunderbird-bin-91-unwrapped = callPackage ../applications/networking/mailreaders/thunderbird-bin {
+    inherit (gnome) adwaita-icon-theme;
+  };
+
+  thunderbolt = callPackage ../os-specific/linux/thunderbolt {};
 
   ticpp = callPackage ../development/libraries/ticpp { };
 
@@ -29363,7 +29470,7 @@ with pkgs;
   };
 
   xastir = callPackage ../applications/misc/xastir {
-    rastermagick = imagemagick;
+    rastermagick = imagemagick6;
     inherit (xorg) libXt;
   };
 
@@ -29430,8 +29537,6 @@ with pkgs;
 
   xdg-desktop-portal-gtk = callPackage ../development/libraries/xdg-desktop-portal-gtk { };
 
-  xdg-desktop-portal-pantheon = callPackage ../development/libraries/xdg-desktop-portal-pantheon { };
-
   xdg-desktop-portal-wlr = callPackage ../development/libraries/xdg-desktop-portal-wlr { };
 
   xdg-user-dirs = callPackage ../tools/X11/xdg-user-dirs { };
@@ -29649,6 +29754,8 @@ with pkgs;
 
   ytalk = callPackage ../applications/networking/instant-messengers/ytalk { };
 
+  ytarchive = callPackage ../tools/misc/ytarchive { };
+
   ytcc = callPackage ../tools/networking/ytcc { };
 
   ytmdesktop = callPackage ../applications/audio/ytmdesktop { };
@@ -30242,7 +30349,7 @@ with pkgs;
 
   fishfight = callPackage ../games/fishfight {
     inherit (xorg) libX11 libXi;
-    inherit (darwin.apple_sdk.frameworks) AudioToolbox Cocoa CoreAudio CoreFoundation IOKit OpenGL;
+    inherit (darwin.apple_sdk.frameworks) AudioToolbox Cocoa CoreAudio OpenGL;
   };
 
   flightgear = libsForQt5.callPackage ../games/flightgear { };
@@ -31567,6 +31674,8 @@ with pkgs;
   sage = callPackage ../applications/science/math/sage { };
   sageWithDoc = sage.override { withDoc = true; };
 
+  subread = callPackage ../applications/science/biology/subread { };
+
   suitesparse_4_2 = callPackage ../development/libraries/science/math/suitesparse/4.2.nix { };
   suitesparse_4_4 = callPackage ../development/libraries/science/math/suitesparse/4.4.nix {};
   suitesparse_5_3 = callPackage ../development/libraries/science/math/suitesparse {};
@@ -31662,8 +31771,6 @@ with pkgs;
 
   plm = callPackage ../applications/science/programming/plm { };
 
-  scyther = callPackage ../applications/science/programming/scyther { };
-
   ### SCIENCE/LOGIC
 
   abc-verifier = callPackage ../applications/science/logic/abc {};
@@ -32003,7 +32110,6 @@ with pkgs;
 
   mxnet = callPackage ../applications/science/math/mxnet {
     inherit (linuxPackages) nvidia_x11;
-    stdenv = gcc9Stdenv;
   };
 
   wxmaxima = callPackage ../applications/science/math/wxmaxima { wxGTK = wxGTK30; };
@@ -32202,6 +32308,8 @@ with pkgs;
 
   antimicrox = libsForQt5.callPackage ../tools/misc/antimicrox { };
 
+  ares = callPackage ../misc/emulators/ares { };
+
   atari800 = callPackage ../misc/emulators/atari800 { };
 
   ataripp = callPackage ../misc/emulators/atari++ { };
@@ -32408,6 +32516,8 @@ with pkgs;
   fahcontrol = callPackage ../applications/science/misc/foldingathome/control.nix {};
   fahviewer = callPackage ../applications/science/misc/foldingathome/viewer.nix {};
 
+  fbmark = callPackage ../tools/misc/fbmark { };
+
   foma = callPackage ../tools/misc/foma { };
 
   foo2zjs = callPackage ../misc/drivers/foo2zjs {};
@@ -32489,6 +32599,8 @@ with pkgs;
 
   hjson = with python3Packages; toPythonApplication hjson;
 
+  hjson-go = callPackage ../development/tools/hjson-go { };
+
   epkowa = callPackage ../misc/drivers/epkowa { };
 
   utsushi = callPackage ../misc/drivers/utsushi { };
@@ -32607,6 +32719,7 @@ with pkgs;
     nixStable
     nix_2_3
     nix_2_4
+    nix_2_5
     nixUnstable;
 
   nixStatic = pkgsStatic.nix;
diff --git a/pkgs/top-level/impure.nix b/pkgs/top-level/impure.nix
index 6f7383c8e7a..242596d28c6 100644
--- a/pkgs/top-level/impure.nix
+++ b/pkgs/top-level/impure.nix
@@ -1,14 +1,13 @@
 /* Impure default args for `pkgs/top-level/default.nix`. See that file
    for the meaning of each argument. */
 
-with builtins;
 
 let
 
   homeDir = builtins.getEnv "HOME";
 
   # Return ‘x’ if it evaluates, or ‘def’ if it throws an exception.
-  try = x: def: let res = tryEval x; in if res.success then res.value else def;
+  try = x: def: let res = builtins.tryEval x; in if res.success then res.value else def;
 
 in
 
@@ -25,20 +24,20 @@ in
 , # Fallback: The contents of the configuration file found at $NIXPKGS_CONFIG or
   # $HOME/.config/nixpkgs/config.nix.
   config ? let
-      configFile = getEnv "NIXPKGS_CONFIG";
+      configFile = builtins.getEnv "NIXPKGS_CONFIG";
       configFile2 = homeDir + "/.config/nixpkgs/config.nix";
       configFile3 = homeDir + "/.nixpkgs/config.nix"; # obsolete
     in
-      if configFile != "" && pathExists configFile then import configFile
-      else if homeDir != "" && pathExists configFile2 then import configFile2
-      else if homeDir != "" && pathExists configFile3 then import configFile3
+      if configFile != "" && builtins.pathExists configFile then import configFile
+      else if homeDir != "" && builtins.pathExists configFile2 then import configFile2
+      else if homeDir != "" && builtins.pathExists configFile3 then import configFile3
       else {}
 
 , # Overlays are used to extend Nixpkgs collection with additional
   # collections of packages.  These collection of packages are part of the
   # fix-point made by Nixpkgs.
   overlays ? let
-      isDir = path: pathExists (path + "/.");
+      isDir = path: builtins.pathExists (path + "/.");
       pathOverlays = try (toString <nixpkgs-overlays>) "";
       homeOverlaysFile = homeDir + "/.config/nixpkgs/overlays.nix";
       homeOverlaysDir = homeDir + "/.config/nixpkgs/overlays";
@@ -46,25 +45,25 @@ in
         # check if the path is a directory or a file
         if isDir path then
           # it's a directory, so the set of overlays from the directory, ordered lexicographically
-          let content = readDir path; in
+          let content = builtins.readDir path; in
           map (n: import (path + ("/" + n)))
-            (builtins.filter (n: builtins.match ".*\\.nix" n != null || pathExists (path + ("/" + n + "/default.nix")))
-              (attrNames content))
+            (builtins.filter (n: builtins.match ".*\\.nix" n != null || builtins.pathExists (path + ("/" + n + "/default.nix")))
+              (builtins.attrNames content))
         else
           # it's a file, so the result is the contents of the file itself
           import path;
     in
-      if pathOverlays != "" && pathExists pathOverlays then overlays pathOverlays
-      else if pathExists homeOverlaysFile && pathExists homeOverlaysDir then
+      if pathOverlays != "" && builtins.pathExists pathOverlays then overlays pathOverlays
+      else if builtins.pathExists homeOverlaysFile && builtins.pathExists homeOverlaysDir then
         throw ''
           Nixpkgs overlays can be specified with ${homeOverlaysFile} or ${homeOverlaysDir}, but not both.
           Please remove one of them and try again.
         ''
-      else if pathExists homeOverlaysFile then
+      else if builtins.pathExists homeOverlaysFile then
         if isDir homeOverlaysFile then
           throw (homeOverlaysFile + " should be a file")
         else overlays homeOverlaysFile
-      else if pathExists homeOverlaysDir then
+      else if builtins.pathExists homeOverlaysDir then
         if !(isDir homeOverlaysDir) then
           throw (homeOverlaysDir + " should be a directory")
         else overlays homeOverlaysDir
diff --git a/pkgs/top-level/kodi-packages.nix b/pkgs/top-level/kodi-packages.nix
index 175e940eed2..ed5799eab4f 100644
--- a/pkgs/top-level/kodi-packages.nix
+++ b/pkgs/top-level/kodi-packages.nix
@@ -36,7 +36,7 @@ let self = rec {
 
   # package update scripts
 
-  addonUpdateScript = callPackage ../applications/video/kodi-packages/addon-update-script { };
+  addonUpdateScript = callPackage ../applications/video/kodi/addons/addon-update-script { };
 
   # package builders
 
@@ -46,112 +46,112 @@ let self = rec {
 
   # regular packages
 
-  kodi-platform = callPackage ../applications/video/kodi-packages/kodi-platform { };
+  kodi-platform = callPackage ../applications/video/kodi/addons/kodi-platform { };
 
   # addon packages
 
-  a4ksubtitles = callPackage ../applications/video/kodi-packages/a4ksubtitles { };
+  a4ksubtitles = callPackage ../applications/video/kodi/addons/a4ksubtitles { };
 
   controllers = {
-    default = callPackage ../applications/video/kodi-packages/controllers { controller = "default"; };
+    default = callPackage ../applications/video/kodi/addons/controllers { controller = "default"; };
 
-    dreamcast = callPackage ../applications/video/kodi-packages/controllers { controller = "dreamcast"; };
+    dreamcast = callPackage ../applications/video/kodi/addons/controllers { controller = "dreamcast"; };
 
-    gba = callPackage ../applications/video/kodi-packages/controllers { controller = "gba"; };
+    gba = callPackage ../applications/video/kodi/addons/controllers { controller = "gba"; };
 
-    genesis = callPackage ../applications/video/kodi-packages/controllers { controller = "genesis"; };
+    genesis = callPackage ../applications/video/kodi/addons/controllers { controller = "genesis"; };
 
-    mouse = callPackage ../applications/video/kodi-packages/controllers { controller = "mouse"; };
+    mouse = callPackage ../applications/video/kodi/addons/controllers { controller = "mouse"; };
 
-    n64 = callPackage ../applications/video/kodi-packages/controllers { controller = "n64"; };
+    n64 = callPackage ../applications/video/kodi/addons/controllers { controller = "n64"; };
 
-    nes = callPackage ../applications/video/kodi-packages/controllers { controller = "nes"; };
+    nes = callPackage ../applications/video/kodi/addons/controllers { controller = "nes"; };
 
-    ps = callPackage ../applications/video/kodi-packages/controllers { controller = "ps"; };
+    ps = callPackage ../applications/video/kodi/addons/controllers { controller = "ps"; };
 
-    snes = callPackage ../applications/video/kodi-packages/controllers { controller = "snes"; };
+    snes = callPackage ../applications/video/kodi/addons/controllers { controller = "snes"; };
   };
 
-  iagl = callPackage ../applications/video/kodi-packages/iagl { };
+  iagl = callPackage ../applications/video/kodi/addons/iagl { };
 
-  libretro = callPackage ../applications/video/kodi-packages/libretro { };
+  libretro = callPackage ../applications/video/kodi/addons/libretro { };
 
-  libretro-genplus = callPackage ../applications/video/kodi-packages/libretro-genplus { inherit genesis-plus-gx; };
+  libretro-genplus = callPackage ../applications/video/kodi/addons/libretro-genplus { inherit genesis-plus-gx; };
 
-  libretro-mgba = callPackage ../applications/video/kodi-packages/libretro-mgba { inherit mgba; };
+  libretro-mgba = callPackage ../applications/video/kodi/addons/libretro-mgba { inherit mgba; };
 
-  libretro-snes9x = callPackage ../applications/video/kodi-packages/libretro-snes9x { inherit snes9x; };
+  libretro-snes9x = callPackage ../applications/video/kodi/addons/libretro-snes9x { inherit snes9x; };
 
-  jellyfin = callPackage ../applications/video/kodi-packages/jellyfin { };
+  jellyfin = callPackage ../applications/video/kodi/addons/jellyfin { };
 
-  joystick = callPackage ../applications/video/kodi-packages/joystick { };
+  joystick = callPackage ../applications/video/kodi/addons/joystick { };
 
-  keymap = callPackage ../applications/video/kodi-packages/keymap { };
+  keymap = callPackage ../applications/video/kodi/addons/keymap { };
 
-  netflix = callPackage ../applications/video/kodi-packages/netflix { };
+  netflix = callPackage ../applications/video/kodi/addons/netflix { };
 
-  svtplay = callPackage ../applications/video/kodi-packages/svtplay { };
+  svtplay = callPackage ../applications/video/kodi/addons/svtplay { };
 
-  steam-controller = callPackage ../applications/video/kodi-packages/steam-controller { };
+  steam-controller = callPackage ../applications/video/kodi/addons/steam-controller { };
 
-  steam-launcher = callPackage ../applications/video/kodi-packages/steam-launcher { };
+  steam-launcher = callPackage ../applications/video/kodi/addons/steam-launcher { };
 
-  steam-library = callPackage ../applications/video/kodi-packages/steam-library { };
+  steam-library = callPackage ../applications/video/kodi/addons/steam-library { };
 
-  pdfreader = callPackage ../applications/video/kodi-packages/pdfreader { };
+  pdfreader = callPackage ../applications/video/kodi/addons/pdfreader { };
 
-  pvr-hts = callPackage ../applications/video/kodi-packages/pvr-hts { };
+  pvr-hts = callPackage ../applications/video/kodi/addons/pvr-hts { };
 
-  pvr-hdhomerun = callPackage ../applications/video/kodi-packages/pvr-hdhomerun { };
+  pvr-hdhomerun = callPackage ../applications/video/kodi/addons/pvr-hdhomerun { };
 
-  pvr-iptvsimple = callPackage ../applications/video/kodi-packages/pvr-iptvsimple { };
+  pvr-iptvsimple = callPackage ../applications/video/kodi/addons/pvr-iptvsimple { };
 
-  osmc-skin = callPackage ../applications/video/kodi-packages/osmc-skin { };
+  osmc-skin = callPackage ../applications/video/kodi/addons/osmc-skin { };
 
-  vfs-sftp = callPackage ../applications/video/kodi-packages/vfs-sftp { };
+  vfs-sftp = callPackage ../applications/video/kodi/addons/vfs-sftp { };
 
-  vfs-libarchive = callPackage ../applications/video/kodi-packages/vfs-libarchive { };
+  vfs-libarchive = callPackage ../applications/video/kodi/addons/vfs-libarchive { };
 
-  youtube = callPackage ../applications/video/kodi-packages/youtube { };
+  youtube = callPackage ../applications/video/kodi/addons/youtube { };
 
   # addon packages (dependencies)
 
-  archive_tool = callPackage ../applications/video/kodi-packages/archive_tool { };
+  archive_tool = callPackage ../applications/video/kodi/addons/archive_tool { };
 
-  certifi = callPackage ../applications/video/kodi-packages/certifi { };
+  certifi = callPackage ../applications/video/kodi/addons/certifi { };
 
-  chardet = callPackage ../applications/video/kodi-packages/chardet { };
+  chardet = callPackage ../applications/video/kodi/addons/chardet { };
 
-  dateutil = callPackage ../applications/video/kodi-packages/dateutil { };
+  dateutil = callPackage ../applications/video/kodi/addons/dateutil { };
 
-  defusedxml = callPackage ../applications/video/kodi-packages/defusedxml { };
+  defusedxml = callPackage ../applications/video/kodi/addons/defusedxml { };
 
-  idna = callPackage ../applications/video/kodi-packages/idna { };
+  idna = callPackage ../applications/video/kodi/addons/idna { };
 
-  inputstream-adaptive = callPackage ../applications/video/kodi-packages/inputstream-adaptive { };
+  inputstream-adaptive = callPackage ../applications/video/kodi/addons/inputstream-adaptive { };
 
-  inputstream-ffmpegdirect = callPackage ../applications/video/kodi-packages/inputstream-ffmpegdirect { };
+  inputstream-ffmpegdirect = callPackage ../applications/video/kodi/addons/inputstream-ffmpegdirect { };
 
-  inputstream-rtmp = callPackage ../applications/video/kodi-packages/inputstream-rtmp { };
+  inputstream-rtmp = callPackage ../applications/video/kodi/addons/inputstream-rtmp { };
 
-  inputstreamhelper = callPackage ../applications/video/kodi-packages/inputstreamhelper { };
+  inputstreamhelper = callPackage ../applications/video/kodi/addons/inputstreamhelper { };
 
-  kodi-six = callPackage ../applications/video/kodi-packages/kodi-six { };
+  kodi-six = callPackage ../applications/video/kodi/addons/kodi-six { };
 
-  myconnpy = callPackage ../applications/video/kodi-packages/myconnpy { };
+  myconnpy = callPackage ../applications/video/kodi/addons/myconnpy { };
 
-  requests = callPackage ../applications/video/kodi-packages/requests { };
+  requests = callPackage ../applications/video/kodi/addons/requests { };
 
-  requests-cache = callPackage ../applications/video/kodi-packages/requests-cache { };
+  requests-cache = callPackage ../applications/video/kodi/addons/requests-cache { };
 
-  routing = callPackage ../applications/video/kodi-packages/routing { };
+  routing = callPackage ../applications/video/kodi/addons/routing { };
 
-  signals = callPackage ../applications/video/kodi-packages/signals { };
+  signals = callPackage ../applications/video/kodi/addons/signals { };
 
-  six = callPackage ../applications/video/kodi-packages/six { };
+  six = callPackage ../applications/video/kodi/addons/six { };
 
-  urllib3 = callPackage ../applications/video/kodi-packages/urllib3 { };
+  urllib3 = callPackage ../applications/video/kodi/addons/urllib3 { };
 
-  websocket = callPackage ../applications/video/kodi-packages/websocket { };
+  websocket = callPackage ../applications/video/kodi/addons/websocket { };
 
 }; in self
diff --git a/pkgs/top-level/linux-kernels.nix b/pkgs/top-level/linux-kernels.nix
index 37a5fea9e2e..5adb2cc1736 100644
--- a/pkgs/top-level/linux-kernels.nix
+++ b/pkgs/top-level/linux-kernels.nix
@@ -292,10 +292,14 @@ in {
 
     it87 = callPackage ../os-specific/linux/it87 {};
 
+    asus-ec-sensors = callPackage ../os-specific/linux/asus-ec-sensors {};
+
     asus-wmi-sensors = callPackage ../os-specific/linux/asus-wmi-sensors {};
 
     ena = callPackage ../os-specific/linux/ena {};
 
+    liquidtux = callPackage ../os-specific/linux/liquidtux {};
+
     v4l2loopback = callPackage ../os-specific/linux/v4l2loopback { };
 
     lttng-modules = callPackage ../os-specific/linux/lttng-modules { };
diff --git a/pkgs/top-level/nim-packages.nix b/pkgs/top-level/nim-packages.nix
index 6c8c5ff7cc7..fa78e6ed9aa 100644
--- a/pkgs/top-level/nim-packages.nix
+++ b/pkgs/top-level/nim-packages.nix
@@ -48,8 +48,6 @@ lib.makeScope newScope (self:
 
     pixie = callPackage ../development/nim-packages/pixie { };
 
-    python = callPackage ../development/nim-packages/python { };
-
     redis = callPackage ../development/nim-packages/redis { };
 
     redpool = callPackage ../development/nim-packages/redpool { };
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 9609c122727..339b237493c 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -9043,10 +9043,10 @@ let
 
   Future = buildPerlModule {
     pname = "Future";
-    version = "0.46";
+    version = "0.47";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/P/PE/PEVANS/Future-0.46.tar.gz";
-      sha256 = "0zx4cabzz5zyzvyvc7mvl0cc7zkslp0jnxsv41yii76dal8blcbq";
+      url = "mirror://cpan/authors/id/P/PE/PEVANS/Future-0.47.tar.gz";
+      sha256 = "1pmhkhrmvaf8c3jbrfqqhmxjrzcsxdn2q7apj033gwxggland88h";
     };
     buildInputs = [ TestFatal TestIdentity TestRefcount ];
     meta = {
@@ -17635,10 +17635,10 @@ let
 
   PerlCritic = buildPerlModule {
     pname = "Perl-Critic";
-    version = "1.138";
+    version = "1.140";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/P/PE/PETDANCE/Perl-Critic-1.138.tar.gz";
-      sha256 = "2ad194f91ef24df4698369c2562d4164e9bf74f2d5565c681841abf79789ed82";
+      url = "mirror://cpan/authors/id/P/PE/PETDANCE/Perl-Critic-1.140.tar.gz";
+      sha256 = "1nzxpn71mrpp85yxrxlraj52q2skvf9ja887ls11d57h6smg1vmz";
     };
     buildInputs = [ TestDeep ];
     nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
@@ -17849,10 +17849,10 @@ let
 
   PerlTidy = buildPerlPackage rec {
     pname = "Perl-Tidy";
-    version = "20201207";
+    version = "20211029";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SH/SHANCOCK/Perl-Tidy-20201207.tar.gz";
-      sha256 = "049x02awvpfr7m8dai04ya61jzs6cl45qplxzx7nf8x6jgj08i9f";
+      url = "mirror://cpan/authors/id/S/SH/SHANCOCK/Perl-Tidy-20211029.tar.gz";
+      sha256 = "1nhfi3gb8gif9p34m4ycqw0k8992yy42c21hk9b99l2pdbiv20zc";
     };
     meta = {
       description = "Indent and reformat perl scripts";
@@ -18090,6 +18090,22 @@ let
     };
   };
 
+  PLS = buildPerlPackage {
+    pname = "PLS";
+    version = "0.897";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MR/MREISNER/PLS-0.897.tar.gz";
+      sha256 = "0278anidj7bgassj32g20cbki2kkqakkr3axyq4k90nj4snw7p6x";
+    };
+    propagatedBuildInputs = [ Future IOAsync PPI PPR PathTiny PerlCritic PerlTidy PodMarkdown URI ];
+    meta = {
+      homepage = "https://github.com/FractalBoy/perl-language-server";
+      description = "Perl Language Server";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.artturin ];
+    };
+  };
+
   Po4a = callPackage ../development/perl-modules/Po4a { };
 
   PodMinimumVersion = buildPerlPackage {
@@ -18219,6 +18235,20 @@ let
     };
   };
 
+  PPR = buildPerlPackage {
+    pname = "PPR";
+    version = "0.000028";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DC/DCONWAY/PPR-0.000028.tar.gz";
+      sha256 = "1adrd189rnfl1fgv14inchvrgjqjbpnviisqsz3y8ds3gisafzfk";
+    };
+    meta = {
+      description = "Pattern-based Perl Recognizer";
+      license = lib.licenses.artistic2;
+      maintainers = [ maintainers.artturin ];
+    };
+  };
+
   ProcBackground = buildPerlPackage {
     pname = "Proc-Background";
     version = "1.21";
diff --git a/pkgs/top-level/php-packages.nix b/pkgs/top-level/php-packages.nix
index 6426b7846f5..25dda001720 100644
--- a/pkgs/top-level/php-packages.nix
+++ b/pkgs/top-level/php-packages.nix
@@ -107,7 +107,11 @@ lib.makeScope pkgs.newScope (self: with self; {
           (dep: "mkdir -p ext; ln -s ${dep.dev}/include ext/${dep.extensionName}")
           internalDeps}
       '';
-      checkPhase = "runHook preCheck; NO_INTERACTON=yes make test; runHook postCheck";
+      checkPhase = ''
+        runHook preCheck
+        NO_INTERACTON=yes SKIP_PERF_SENSITIVE=yes make test
+        runHook postCheck
+      '';
       outputs = [ "out" "dev" ];
       installPhase = ''
         mkdir -p $out/lib/php/extensions
@@ -543,7 +547,11 @@ lib.makeScope pkgs.newScope (self: with self; {
         { name = "sysvsem"; }
         { name = "sysvshm"; }
         { name = "tidy"; configureFlags = [ "--with-tidy=${html-tidy}" ]; doCheck = false; }
-        { name = "tokenizer"; }
+        {
+          name = "tokenizer";
+          patches = lib.optional (lib.versionAtLeast php.version "8.1")
+            ../development/interpreters/php/fix-tokenizer-php81.patch;
+        }
         {
           name = "wddx";
           buildInputs = [ libxml2 ];
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index f38132cac2b..ed9b6739da6 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -381,6 +381,8 @@ in {
 
   aiorun = callPackage ../development/python-modules/aiorun { };
 
+  aiosenz = callPackage ../development/python-modules/aiosenz { };
+
   aioserial = callPackage ../development/python-modules/aioserial { };
 
   aioshelly = callPackage ../development/python-modules/aioshelly { };
@@ -751,6 +753,8 @@ in {
 
   automat = callPackage ../development/python-modules/automat { };
 
+  automate-home = callPackage ../development/python-modules/automate-home { };
+
   autopage = callPackage ../development/python-modules/autopage { };
 
   autopep8 = callPackage ../development/python-modules/autopep8 { };
@@ -1292,6 +1296,8 @@ in {
 
   breezy = callPackage ../development/python-modules/breezy { };
 
+  brelpy = callPackage ../development/python-modules/brelpy { };
+
   broadlink = callPackage ../development/python-modules/broadlink { };
 
   brother = callPackage ../development/python-modules/brother { };
@@ -2556,6 +2562,8 @@ in {
 
   eradicate = callPackage ../development/python-modules/eradicate { };
 
+  esprima = callPackage ../development/python-modules/esprima { };
+
   escapism = callPackage ../development/python-modules/escapism { };
 
   etcd = callPackage ../development/python-modules/etcd { };
@@ -2680,6 +2688,8 @@ in {
 
   fastcache = callPackage ../development/python-modules/fastcache { };
 
+  fastcore = callPackage ../development/python-modules/fastcore { };
+
   fastdiff = callPackage ../development/python-modules/fastdiff { };
 
   fastdtw = callPackage ../development/python-modules/fastdtw { };
@@ -2875,6 +2885,8 @@ in {
 
   flask-seasurf = callPackage ../development/python-modules/flask-seasurf { };
 
+  flask-session = callPackage ../development/python-modules/flask-session { };
+
   flask-silk = callPackage ../development/python-modules/flask-silk { };
 
   flask-socketio = callPackage ../development/python-modules/flask-socketio { };
@@ -3074,6 +3086,10 @@ in {
 
   geeknote = callPackage ../development/python-modules/geeknote { };
 
+  gehomesdk = callPackage ../development/python-modules/gehomesdk { };
+
+  gekitchen = callPackage ../development/python-modules/gekitchen { };
+
   gemfileparser = callPackage ../development/python-modules/gemfileparser { };
 
   genanki = callPackage ../development/python-modules/genanki { };
@@ -3144,10 +3160,14 @@ in {
 
   gflags = callPackage ../development/python-modules/gflags { };
 
+  ghapi = callPackage ../development/python-modules/ghapi { };
+
   ghdiff = callPackage ../development/python-modules/ghdiff { };
 
   ghp-import = callPackage ../development/python-modules/ghp-import { };
 
+  ghrepo-stats = callPackage ../development/python-modules/ghrepo-stats { };
+
   gibberish-detector = callPackage ../development/python-modules/gibberish-detector { };
 
   gidgethub = callPackage ../development/python-modules/gidgethub { };
@@ -3340,6 +3360,8 @@ in {
 
   gorilla = callPackage ../development/python-modules/gorilla { };
 
+  goveelights = callPackage ../development/python-modules/goveelights { };
+
   gpapi = callPackage ../development/python-modules/gpapi { };
 
   gplaycli = callPackage ../development/python-modules/gplaycli { };
@@ -4619,6 +4641,8 @@ in {
 
   loo-py = callPackage ../development/python-modules/loo-py { };
 
+  losant-rest = callPackage ../development/python-modules/losant-rest { };
+
   lsassy = callPackage ../development/python-modules/lsassy { };
 
   luddite = callPackage ../development/python-modules/luddite { };
@@ -4835,6 +4859,8 @@ in {
 
   merkletools = callPackage ../development/python-modules/merkletools { };
 
+  meross-iot = callPackage ../development/python-modules/meross-iot { };
+
   mesa = callPackage ../development/python-modules/mesa { };
 
   meshio = callPackage ../development/python-modules/meshio { };
@@ -5180,6 +5206,8 @@ in {
 
   neo = callPackage ../development/python-modules/neo { };
 
+  neo4j-driver = callPackage ../development/python-modules/neo4j-driver { };
+
   nessclient = callPackage ../development/python-modules/nessclient { };
 
   nest-asyncio = callPackage ../development/python-modules/nest-asyncio { };
@@ -5417,6 +5445,8 @@ in {
 
   omegaconf = callPackage ../development/python-modules/omegaconf { };
 
+  omnikinverter = callPackage ../development/python-modules/omnikinverter { };
+
   omnilogic = callPackage ../development/python-modules/omnilogic { };
 
   ondilo = callPackage ../development/python-modules/ondilo { };
@@ -5869,6 +5899,8 @@ in {
 
   ppdeep = callPackage ../development/python-modules/ppdeep { };
 
+  proxy_tools = callPackage ../development/python-modules/proxy_tools { };
+
   pyaehw4a1 = callPackage ../development/python-modules/pyaehw4a1 { };
 
   pyatag = callPackage ../development/python-modules/pyatag { };
@@ -6187,6 +6219,8 @@ in {
 
   proxmoxer = callPackage ../development/python-modules/proxmoxer { };
 
+  proxy-py = callPackage ../development/python-modules/proxy-py { };
+
   psautohint = callPackage ../development/python-modules/psautohint { };
 
   psd-tools = callPackage ../development/python-modules/psd-tools { };
@@ -6510,6 +6544,8 @@ in {
 
   pydub = callPackage ../development/python-modules/pydub { };
 
+  pyduke-energy = callPackage ../development/python-modules/pyduke-energy { };
+
   pydy = callPackage ../development/python-modules/pydy { };
 
   pydyf = callPackage ../development/python-modules/pydyf { };
@@ -7523,6 +7559,8 @@ in {
 
   pytest-isort = callPackage ../development/python-modules/pytest-isort { };
 
+  pytest-json-report = callPackage ../development/python-modules/pytest-json-report { };
+
   pytest-lazy-fixture = callPackage ../development/python-modules/pytest-lazy-fixture { };
 
   pytest-localserver = callPackage ../development/python-modules/pytest-localserver { };
@@ -8059,6 +8097,8 @@ in {
     inherit (pkgs) libxml2;
   };
 
+  pyweatherflowrest = callPackage ../development/python-modules/pyweatherflowrest { };
+
   pywebpush = callPackage ../development/python-modules/pywebpush { };
 
   pywebview = callPackage ../development/python-modules/pywebview { };
@@ -8172,6 +8212,8 @@ in {
 
   quantities = callPackage ../development/python-modules/quantities { };
 
+  quantum-gateway = callPackage ../development/python-modules/quantum-gateway { };
+
   querystring_parser = callPackage ../development/python-modules/querystring-parser { };
 
   questionary = callPackage ../development/python-modules/questionary { };
@@ -9105,6 +9147,8 @@ in {
 
   sqlalchemy-migrate = callPackage ../development/python-modules/sqlalchemy-migrate { };
 
+  sqlalchemy-mixins = callPackage ../development/python-modules/sqlalchemy-mixins { };
+
   sqlalchemy-utils = callPackage ../development/python-modules/sqlalchemy-utils { };
 
   sqlitedict = callPackage ../development/python-modules/sqlitedict { };
@@ -9386,6 +9430,8 @@ in {
     inherit (pkgs.darwin.apple_sdk.frameworks) Foundation Security;
     flatbuffers-core = pkgs.flatbuffers;
     flatbuffers-python = self.flatbuffers;
+    protobuf-core = pkgs.protobuf;
+    protobuf-python = self.protobuf;
     lmdb-core = pkgs.lmdb;
   };
 
@@ -10014,6 +10060,8 @@ in {
 
   vowpalwabbit = callPackage ../development/python-modules/vowpalwabbit { };
 
+  vpk = callPackage ../development/python-modules/vpk { };
+
   vsts = callPackage ../development/python-modules/vsts { };
 
   vsts-cd-manager = callPackage ../development/python-modules/vsts-cd-manager { };
diff --git a/pkgs/top-level/python2-packages.nix b/pkgs/top-level/python2-packages.nix
index df66908d513..64e8abd224b 100644
--- a/pkgs/top-level/python2-packages.nix
+++ b/pkgs/top-level/python2-packages.nix
@@ -396,6 +396,8 @@ with self; with super; {
 
   pip = callPackage ../development/python-modules/pip/20.nix { };
 
+  platformdirs = callPackage ../development/python-modules/platformdirs/2.nix { };
+
   pluggy = callPackage ../development/python-modules/pluggy/0.nix { };
 
   postorius = disabled super.postorius;
diff --git a/pkgs/top-level/release-haskell.nix b/pkgs/top-level/release-haskell.nix
index f6e34e7084b..72f981b7845 100644
--- a/pkgs/top-level/release-haskell.nix
+++ b/pkgs/top-level/release-haskell.nix
@@ -310,7 +310,8 @@ let
       cabal2nix-unstable = released ++ [ compilerNames.ghc921 ];
       funcmp = released ++ [ compilerNames.ghc921 ];
       haskell-language-server = released;
-      hoogle = released;
+      hoogle = released ++ [ compilerNames.ghc921 ];
+      hlint = released ++ [ compilerNames.ghc921 ];
       hsdns = released ++ [ compilerNames.ghc921 ];
       jailbreak-cabal = released ++ [ compilerNames.ghc921 ];
       language-nix = released ++ [ compilerNames.ghc921 ];