about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/basic-eval.yml2
-rw-r--r--.github/workflows/manual-nixos.yml2
-rw-r--r--.github/workflows/manual-nixpkgs.yml2
-rw-r--r--.mailmap1
-rw-r--r--doc/build-helpers/testers.chapter.md76
-rw-r--r--lib/licenses.nix11
-rw-r--r--maintainers/maintainer-list.nix92
-rw-r--r--maintainers/scripts/pluginupdate.py2
-rw-r--r--maintainers/team-list.nix1
-rw-r--r--nixos/doc/manual/release-notes/rl-2211.section.md2
-rw-r--r--nixos/doc/manual/release-notes/rl-2405.section.md78
-rw-r--r--nixos/doc/manual/release-notes/rl-2411.section.md2
-rw-r--r--nixos/modules/config/no-x-libs.nix4
-rw-r--r--nixos/modules/module-list.nix3
-rw-r--r--nixos/modules/programs/less.nix4
-rw-r--r--nixos/modules/programs/steam.nix29
-rw-r--r--nixos/modules/programs/wayland/hyprland.nix100
-rw-r--r--nixos/modules/programs/wayland/hyprlock.nix25
-rw-r--r--nixos/modules/programs/wayland/lib.nix12
-rw-r--r--nixos/modules/programs/wayland/river.nix58
-rw-r--r--nixos/modules/programs/wayland/sway.nix178
-rw-r--r--nixos/modules/programs/wayland/wayland-session.nix31
-rw-r--r--nixos/modules/services/cluster/rke2/default.nix311
-rw-r--r--nixos/modules/services/desktop-managers/lomiri.nix4
-rw-r--r--nixos/modules/services/hardware/nvidia-container-toolkit/default.nix8
-rw-r--r--nixos/modules/services/misc/devpi-server.nix8
-rw-r--r--nixos/modules/services/misc/ollama.nix33
-rw-r--r--nixos/modules/services/monitoring/grafana.nix100
-rw-r--r--nixos/modules/services/networking/ssh/sshd.nix19
-rw-r--r--nixos/modules/services/wayland/hypridle.nix26
-rw-r--r--nixos/modules/system/boot/systemd/sysusers.nix21
-rw-r--r--nixos/tests/all-tests.nix1
-rw-r--r--nixos/tests/ayatana-indicators.nix2
-rw-r--r--nixos/tests/gnome-extensions.nix5
-rw-r--r--nixos/tests/grafana/provision/default.nix41
-rw-r--r--nixos/tests/ollama.nix8
-rw-r--r--nixos/tests/openssh.nix12
-rw-r--r--nixos/tests/rke2/default.nix13
-rw-r--r--nixos/tests/rke2/multi-node.nix176
-rw-r--r--nixos/tests/rke2/single-node.nix75
-rw-r--r--nixos/tests/teleport.nix1
-rw-r--r--pkgs/applications/audio/ledfx/default.nix6
-rw-r--r--pkgs/applications/audio/mixxx/default.nix6
-rw-r--r--pkgs/applications/audio/pyradio/default.nix4
-rw-r--r--pkgs/applications/audio/tidal-hifi/default.nix4
-rw-r--r--pkgs/applications/audio/waylyrics/default.nix6
-rw-r--r--pkgs/applications/blockchains/besu/default.nix27
-rw-r--r--pkgs/applications/editors/gnome-builder/default.nix12
-rw-r--r--pkgs/applications/editors/vim/plugins/deprecated.json6
-rw-r--r--pkgs/applications/editors/vim/plugins/generated.nix451
-rw-r--r--pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix36
-rw-r--r--pkgs/applications/editors/vim/plugins/overrides.nix7
-rw-r--r--pkgs/applications/editors/vim/plugins/vim-plugin-names3
-rw-r--r--pkgs/applications/editors/vscode/extensions/default.nix2
-rw-r--r--pkgs/applications/emulators/retroarch/hashes.json78
-rw-r--r--pkgs/applications/graphics/figma-linux/default.nix4
-rw-r--r--pkgs/applications/graphics/komikku/default.nix4
-rw-r--r--pkgs/applications/misc/1password-gui/default.nix18
-rw-r--r--pkgs/applications/misc/1password/default.nix10
-rw-r--r--pkgs/applications/misc/gmnitohtml/default.nix10
-rw-r--r--pkgs/applications/misc/gum/default.nix6
-rw-r--r--pkgs/applications/misc/kiln/default.nix6
-rw-r--r--pkgs/applications/misc/oxker/default.nix6
-rw-r--r--pkgs/applications/misc/phoc/default.nix2
-rw-r--r--pkgs/applications/misc/remnote/default.nix63
-rw-r--r--pkgs/applications/misc/uni/default.nix6
-rw-r--r--pkgs/applications/networking/blocky/default.nix6
-rw-r--r--pkgs/applications/networking/browsers/floorp/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/netsurf/libparserutils.nix5
-rw-r--r--pkgs/applications/networking/browsers/polypane/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/argo/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/argocd/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/atlantis/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/civo/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/helmfile/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/kubecm/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/kubeseal/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/kubeshark/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/kyverno/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/pachyderm/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/rke2/default.nix42
-rw-r--r--pkgs/applications/networking/cluster/roxctl/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/tftui/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/zarf/default.nix6
-rw-r--r--pkgs/applications/networking/coreth/default.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/chatty/default.nix14
-rw-r--r--pkgs/applications/networking/instant-messengers/discord/default.nix28
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/zoom-us/default.nix12
-rw-r--r--pkgs/applications/networking/juju/default.nix6
-rw-r--r--pkgs/applications/networking/mailreaders/mutt/default.nix18
-rw-r--r--pkgs/applications/networking/sync/desync/default.nix6
-rw-r--r--pkgs/applications/office/qownnotes/default.nix4
-rw-r--r--pkgs/applications/office/zk/default.nix8
-rw-r--r--pkgs/applications/radio/cloudlog/default.nix4
-rw-r--r--pkgs/applications/radio/quisk/default.nix4
-rw-r--r--pkgs/applications/science/biology/last/default.nix4
-rw-r--r--pkgs/applications/science/biology/sratoolkit/default.nix2
-rw-r--r--pkgs/applications/science/logic/hol_light/default.nix22
-rw-r--r--pkgs/applications/science/math/fricas/default.nix19
-rw-r--r--pkgs/applications/science/math/gretl/default.nix4
-rw-r--r--pkgs/applications/science/math/sage/sage-src.nix11
-rw-r--r--pkgs/applications/science/math/sage/sagedoc.nix4
-rw-r--r--pkgs/applications/science/misc/openrefine/default.nix20
-rw-r--r--pkgs/applications/science/misc/snakemake/default.nix4
-rw-r--r--pkgs/applications/terminal-emulators/kitty/default.nix6
-rw-r--r--pkgs/applications/version-management/commitizen/default.nix4
-rw-r--r--pkgs/applications/version-management/gitea/default.nix4
-rw-r--r--pkgs/applications/video/kodi/addons/controller-topology-project/default.nix8
-rw-r--r--pkgs/applications/video/kodi/addons/invidious/default.nix3
-rw-r--r--pkgs/applications/video/kodi/addons/orftvthek/default.nix4
-rw-r--r--pkgs/applications/video/lightworks/default.nix6
-rw-r--r--pkgs/applications/video/mpv/scripts/mpvacious.nix4
-rw-r--r--pkgs/applications/video/mpv/scripts/videoclip.nix6
-rw-r--r--pkgs/applications/video/ustreamer/default.nix15
-rw-r--r--pkgs/applications/virtualization/singularity/packages.nix6
-rw-r--r--pkgs/build-support/testers/default.nix4
-rw-r--r--pkgs/build-support/testers/lychee.nix69
-rw-r--r--pkgs/build-support/testers/test/default.nix2
-rw-r--r--pkgs/by-name/_6/_64gram/package.nix4
-rw-r--r--pkgs/by-name/ap/api-linter/package.nix6
-rw-r--r--pkgs/by-name/ar/arc-browser/package.nix4
-rw-r--r--pkgs/by-name/as/ast-grep/package.nix6
-rw-r--r--pkgs/by-name/ay/ayatana-indicator-datetime/package.nix4
-rw-r--r--pkgs/by-name/ay/ayatana-indicator-power/package.nix4
-rw-r--r--pkgs/by-name/be/beekeeper-studio/package.nix4
-rw-r--r--pkgs/by-name/be/bend/package.nix9
-rw-r--r--pkgs/by-name/bi/bitwarden-cli/package.nix6
-rw-r--r--pkgs/by-name/bo/bombsquad/package.nix36
-rw-r--r--pkgs/by-name/bo/boogie/package.nix4
-rw-r--r--pkgs/by-name/bq/bqn/001-libbqn-path.patch (renamed from pkgs/development/interpreters/bqn/mlochbaum-bqn/001-libbqn-path.patch)0
-rw-r--r--pkgs/by-name/bq/bqn/package.nix (renamed from pkgs/development/interpreters/bqn/mlochbaum-bqn/default.nix)46
-rw-r--r--pkgs/by-name/ca/caligula/package.nix6
-rw-r--r--pkgs/by-name/ca/castero/package.nix5
-rw-r--r--pkgs/by-name/ch/ch341eeprom/package.nix34
-rw-r--r--pkgs/by-name/cl/clash-verge-rev/package.nix4
-rw-r--r--pkgs/by-name/co/cosmic-icons/package.nix6
-rw-r--r--pkgs/by-name/cr/crunchy-cli/Cargo.lock17
-rw-r--r--pkgs/by-name/cr/crunchy-cli/package.nix5
-rw-r--r--pkgs/by-name/db/dbeaver-bin/package.nix2
-rw-r--r--pkgs/by-name/el/element-call/name.patch10
-rw-r--r--pkgs/by-name/el/element-call/package.json129
-rw-r--r--pkgs/by-name/el/element-call/package.nix58
-rw-r--r--pkgs/by-name/er/errands/package.nix11
-rw-r--r--pkgs/by-name/es/espflash/package.nix6
-rw-r--r--pkgs/by-name/fe/felix-fm/package.nix (renamed from pkgs/applications/file-managers/felix-fm/default.nix)19
-rw-r--r--pkgs/by-name/ff/fflogs/package.nix4
-rw-r--r--pkgs/by-name/fi/files-cli/package.nix6
-rw-r--r--pkgs/by-name/fl/flarectl/package.nix6
-rw-r--r--pkgs/by-name/fl/flashmq/package.nix4
-rw-r--r--pkgs/by-name/fl/flawz/package.nix57
-rw-r--r--pkgs/by-name/fo/font-manager/package.nix (renamed from pkgs/applications/misc/font-manager/default.nix)18
-rw-r--r--pkgs/by-name/fo/fooyin/package.nix4
-rw-r--r--pkgs/by-name/fw/fwupd/package.nix4
-rw-r--r--pkgs/by-name/g3/g3kb-switch/package.nix4
-rw-r--r--pkgs/by-name/ga/gamescope/package.nix4
-rw-r--r--pkgs/by-name/gh/gh-eco/package.nix45
-rw-r--r--pkgs/by-name/gh/ghciwatch/package.nix6
-rw-r--r--pkgs/by-name/gn/gnome-monitor-config/package.nix48
-rw-r--r--pkgs/by-name/gr/graphite-cli/package-lock.json29
-rw-r--r--pkgs/by-name/gr/graphite-cli/package.nix6
-rw-r--r--pkgs/by-name/gr/grype/package.nix5
-rw-r--r--pkgs/by-name/ha/havn/package.nix37
-rw-r--r--pkgs/by-name/hi/hieroglyphic/Cargo.lock1448
-rw-r--r--pkgs/by-name/hi/hieroglyphic/package.nix18
-rw-r--r--pkgs/by-name/hi/hifile/package.nix4
-rw-r--r--pkgs/by-name/hy/hyprcursor/package.nix4
-rw-r--r--pkgs/by-name/ic/icewm/package.nix3
-rw-r--r--pkgs/by-name/ic/icloudpd/package.nix4
-rw-r--r--pkgs/by-name/im/immich-go/package.nix4
-rw-r--r--pkgs/by-name/ja/jailer/package.nix6
-rw-r--r--pkgs/by-name/ja/jan/package.nix4
-rw-r--r--pkgs/by-name/jn/jnv/package.nix6
-rw-r--r--pkgs/by-name/jq/jq-zsh-plugin/package.nix44
-rw-r--r--pkgs/by-name/ju/junest/package.nix33
-rw-r--r--pkgs/by-name/ka/kanidm/package.nix5
-rw-r--r--pkgs/by-name/ka/karmor/package.nix6
-rw-r--r--pkgs/by-name/ko/koboldcpp/package.nix154
-rw-r--r--pkgs/by-name/ku/kube-state-metrics/package.nix32
-rw-r--r--pkgs/by-name/la/labwc-tweaks-gtk/package.nix8
-rw-r--r--pkgs/by-name/la/laravel/composer.lock3764
-rw-r--r--pkgs/by-name/la/laravel/package.nix36
-rw-r--r--pkgs/by-name/le/lefthook/package.nix6
-rw-r--r--pkgs/by-name/le/less/package.nix3
-rw-r--r--pkgs/by-name/le/letterpress/package.nix85
-rw-r--r--pkgs/by-name/li/libdjinterop/package.nix4
-rw-r--r--pkgs/by-name/li/libideviceactivation/package.nix55
-rw-r--r--pkgs/by-name/li/libitl/package.nix32
-rw-r--r--pkgs/by-name/li/libmsgraph/package.nix13
-rw-r--r--pkgs/by-name/li/lint-staged/package.nix6
-rw-r--r--pkgs/by-name/li/live555/package.nix36
-rw-r--r--pkgs/by-name/lk/lk-jwt-service/package.nix30
-rw-r--r--pkgs/by-name/lo/logiops/package.nix4
-rw-r--r--pkgs/by-name/ma/maa-assistant-arknights/fastdeploy-ppocr.nix8
-rw-r--r--pkgs/by-name/ma/maa-assistant-arknights/package.nix21
-rw-r--r--pkgs/by-name/ma/maa-assistant-arknights/pin.json8
-rw-r--r--pkgs/by-name/ma/malwoverview/package.nix2
-rw-r--r--pkgs/by-name/ma/matugen/package.nix2
-rw-r--r--pkgs/by-name/mi/mini-calc/package.nix6
-rw-r--r--pkgs/by-name/mi/misconfig-mapper/package.nix4
-rw-r--r--pkgs/by-name/mp/mpack/CVE-2011-4919.patch (renamed from pkgs/tools/networking/mpack/CVE-2011-4919.patch)0
-rw-r--r--pkgs/by-name/mp/mpack/build-fix.patch (renamed from pkgs/tools/networking/mpack/build-fix.patch)0
-rw-r--r--pkgs/by-name/mp/mpack/package.nix (renamed from pkgs/tools/networking/mpack/default.nix)25
-rw-r--r--pkgs/by-name/mp/mpack/sendmail-via-execvp.diff (renamed from pkgs/tools/networking/mpack/sendmail-via-execvp.diff)0
-rw-r--r--pkgs/by-name/ni/nimble/lock.json26
-rw-r--r--pkgs/by-name/ni/nimble/package.nix60
-rw-r--r--pkgs/by-name/ni/nix-janitor/package.nix17
-rw-r--r--pkgs/by-name/no/node-hp-scan-to/package.nix6
-rw-r--r--pkgs/by-name/op/openvas-scanner/package.nix4
-rw-r--r--pkgs/by-name/pa/pacu/package.nix4
-rw-r--r--pkgs/by-name/pa/pantheon-tweaks/package.nix4
-rw-r--r--pkgs/by-name/pe/peergos/package.nix4
-rw-r--r--pkgs/by-name/pi/pinact/package.nix6
-rw-r--r--pkgs/by-name/pm/pm2/package.nix6
-rw-r--r--pkgs/by-name/pm/pmbootstrap/package.nix (renamed from pkgs/tools/misc/pmbootstrap/default.nix)32
-rw-r--r--pkgs/by-name/po/poptracker/package.nix10
-rw-r--r--pkgs/by-name/pr/pretix/package.nix16
-rw-r--r--pkgs/by-name/pr/pretix/plugins/pages.nix4
-rw-r--r--pkgs/by-name/pr/pretix/plugins/passbook.nix4
-rw-r--r--pkgs/by-name/py/pyprland/package.nix4
-rw-r--r--pkgs/by-name/py/pyright/package.nix8
-rw-r--r--pkgs/by-name/re/reproxy/package.nix6
-rw-r--r--pkgs/by-name/sa/samrewritten/package.nix2
-rw-r--r--pkgs/by-name/sa/sarasa-gothic/package.nix4
-rw-r--r--pkgs/by-name/sh/shopware-cli/package.nix6
-rw-r--r--pkgs/by-name/sk/sketchybar-app-font/package.nix8
-rw-r--r--pkgs/by-name/sl/slumber/package.nix6
-rw-r--r--pkgs/by-name/sm/smile/package.nix18
-rw-r--r--pkgs/by-name/sm/smplayer/package.nix (renamed from pkgs/applications/video/smplayer/default.nix)28
-rw-r--r--pkgs/by-name/st/stackit-cli/package.nix6
-rw-r--r--pkgs/by-name/st/sttr/package.nix4
-rw-r--r--pkgs/by-name/sy/syft/package.nix6
-rw-r--r--pkgs/by-name/te/templ/package.nix4
-rw-r--r--pkgs/by-name/te/tenv/package.nix6
-rw-r--r--pkgs/by-name/ty/typstyle/package.nix6
-rw-r--r--pkgs/by-name/un/unison-fsmonitor/package.nix6
-rw-r--r--pkgs/by-name/uv/uv/Cargo.lock5
-rw-r--r--pkgs/by-name/uv/uv/package.nix4
-rw-r--r--pkgs/by-name/vi/vim-startuptime/package.nix39
-rw-r--r--pkgs/by-name/vi/vinegar/package.nix64
-rw-r--r--pkgs/by-name/wa/wayfreeze/package.nix33
-rw-r--r--pkgs/by-name/wi/wiper/package.nix34
-rw-r--r--pkgs/by-name/wl/wldash/0001-Update-Cargo.lock.patch25
-rw-r--r--pkgs/by-name/wl/wldash/0002-Update-fontconfig.patch112
-rw-r--r--pkgs/by-name/wl/wldash/package.nix77
-rw-r--r--pkgs/by-name/zs/zsh-wd/package.nix37
-rw-r--r--pkgs/data/fonts/monocraft/default.nix14
-rw-r--r--pkgs/data/icons/whitesur-icon-theme/default.nix4
-rw-r--r--pkgs/data/themes/kwin-decorations/kde-rounded-corners/default.nix4
-rw-r--r--pkgs/desktops/deepin/go-package/dde-daemon/default.nix19
-rw-r--r--pkgs/desktops/deepin/library/dtk6core/default.nix6
-rw-r--r--pkgs/desktops/gnome/apps/file-roller/default.nix4
-rw-r--r--pkgs/desktops/gnome/apps/gnome-maps/default.nix4
-rw-r--r--pkgs/desktops/gnome/core/evince/default.nix12
-rw-r--r--pkgs/desktops/gnome/core/gnome-control-center/default.nix2
-rw-r--r--pkgs/desktops/gnome/core/gnome-initial-setup/default.nix14
-rw-r--r--pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix4
-rw-r--r--pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix4
-rw-r--r--pkgs/desktops/gnome/core/gnome-shell/default.nix11
-rw-r--r--pkgs/desktops/gnome/core/gnome-software/default.nix12
-rw-r--r--pkgs/desktops/gnome/core/gnome-terminal/default.nix10
-rw-r--r--pkgs/desktops/gnome/core/gucharmap/default.nix12
-rw-r--r--pkgs/desktops/gnome/core/mutter/default.nix10
-rw-r--r--pkgs/desktops/gnome/core/nautilus/default.nix4
-rw-r--r--pkgs/desktops/gnome/core/rygel/default.nix14
-rw-r--r--pkgs/desktops/gnome/extensions/extensionOverrides.nix17
-rw-r--r--pkgs/desktops/gnome/extensions/extensionOverridesPatches/mullvadindicator_at_pobega.github.com.patch25
-rw-r--r--pkgs/desktops/gnome/extensions/extensionOverridesPatches/system-monitor_at_gnome-shell-extensions.gcampax.github.com.patch25
-rw-r--r--pkgs/desktops/gnome/extensions/extensions.json497
-rw-r--r--pkgs/desktops/gnome/games/aisleriot/default.nix10
-rw-r--r--pkgs/desktops/gnome/misc/geary/default.nix4
-rw-r--r--pkgs/desktops/lomiri/applications/lomiri/default.nix2
-rw-r--r--pkgs/desktops/lomiri/services/lomiri-indicator-network/default.nix3
-rw-r--r--pkgs/desktops/lomiri/services/telephony-service/default.nix2
-rw-r--r--pkgs/desktops/pantheon/desktop/gala/default.nix7
-rw-r--r--pkgs/development/compilers/corretto/17.nix19
-rw-r--r--pkgs/development/compilers/gleam/default.nix8
-rw-r--r--pkgs/development/compilers/gnu-smalltalk/0000-fix_mkorder.patch21
-rw-r--r--pkgs/development/compilers/gnu-smalltalk/default.nix6
-rw-r--r--pkgs/development/compilers/go/1.22.nix8
-rw-r--r--pkgs/development/compilers/hvm/default.nix9
-rw-r--r--pkgs/development/compilers/jetbrains-jdk/default.nix10
-rw-r--r--pkgs/development/compilers/llvm/18/default.nix2
-rw-r--r--pkgs/development/compilers/openjdk/17.nix6
-rw-r--r--pkgs/development/compilers/openjdk/openjfx/17.nix6
-rwxr-xr-xpkgs/development/compilers/semeru-bin/generate-sources.py4
-rw-r--r--pkgs/development/compilers/semeru-bin/jdk-darwin.nix8
-rw-r--r--pkgs/development/compilers/semeru-bin/jdk-linux.nix8
-rw-r--r--pkgs/development/compilers/semeru-bin/sources.json240
-rw-r--r--pkgs/development/coq-modules/mathcomp-infotheo/default.nix2
-rw-r--r--pkgs/development/haskell-modules/configuration-darwin.nix8
-rw-r--r--pkgs/development/interpreters/bqn/cbqn/cbqn-bytecode.nix35
-rw-r--r--pkgs/development/interpreters/bqn/cbqn/default.nix108
-rw-r--r--pkgs/development/interpreters/bqn/cbqn/replxx.nix37
-rw-r--r--pkgs/development/interpreters/bqn/cbqn/singeli.nix37
-rw-r--r--pkgs/development/interpreters/bqn/cbqn/sources.nix60
-rw-r--r--pkgs/development/libraries/assimp/default.nix4
-rw-r--r--pkgs/development/libraries/dbxml/default.nix2
-rw-r--r--pkgs/development/libraries/editline/default.nix2
-rw-r--r--pkgs/development/libraries/geos/3.11.nix5
-rw-r--r--pkgs/development/libraries/gnome-online-accounts/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/bad/default.nix9
-rw-r--r--pkgs/development/libraries/gstreamer/rs/default.nix3
-rw-r--r--pkgs/development/libraries/gvfs/default.nix14
-rw-r--r--pkgs/development/libraries/libadwaita/default.nix4
-rw-r--r--pkgs/development/libraries/libcxxrt/default.nix6
-rw-r--r--pkgs/development/libraries/libgeotiff/default.nix4
-rw-r--r--pkgs/development/libraries/libgtop/default.nix12
-rw-r--r--pkgs/development/libraries/libshumate/default.nix21
-rw-r--r--pkgs/development/libraries/libuninameslist/default.nix4
-rw-r--r--pkgs/development/libraries/libxml2/default.nix11
-rw-r--r--pkgs/development/libraries/motif/default.nix26
-rw-r--r--pkgs/development/libraries/opencv/3.x.nix4
-rw-r--r--pkgs/development/libraries/openxr-loader/default.nix4
-rw-r--r--pkgs/development/libraries/protobuf/27.nix6
-rw-r--r--pkgs/development/libraries/rnnoise-plugin/default.nix4
-rw-r--r--pkgs/development/libraries/sentry-native/default.nix4
-rw-r--r--pkgs/development/libraries/tbb/2020_3.nix1
-rw-r--r--pkgs/development/libraries/vte/default.nix4
-rw-r--r--pkgs/development/libraries/xdg-desktop-portal-gnome/default.nix12
-rw-r--r--pkgs/development/libraries/xgboost/default.nix34
-rw-r--r--pkgs/development/ocaml-modules/bytestring/default.nix45
-rw-r--r--pkgs/development/ocaml-modules/colors/default.nix35
-rw-r--r--pkgs/development/ocaml-modules/config/default.nix27
-rw-r--r--pkgs/development/ocaml-modules/eio/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/gluon/default.nix42
-rw-r--r--pkgs/development/ocaml-modules/libc/default.nix26
-rw-r--r--pkgs/development/ocaml-modules/minttea/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/rio/default.nix30
-rw-r--r--pkgs/development/ocaml-modules/riot/default.nix30
-rw-r--r--pkgs/development/ocaml-modules/spices/default.nix34
-rw-r--r--pkgs/development/php-packages/mongodb/default.nix4
-rw-r--r--pkgs/development/python-modules/accelerate/default.nix1
-rw-r--r--pkgs/development/python-modules/aioshutil/default.nix22
-rw-r--r--pkgs/development/python-modules/aioswitcher/default.nix4
-rw-r--r--pkgs/development/python-modules/amcrest/default.nix15
-rw-r--r--pkgs/development/python-modules/apricot-select/default.nix20
-rw-r--r--pkgs/development/python-modules/asyncwhois/default.nix4
-rw-r--r--pkgs/development/python-modules/ax/default.nix7
-rw-r--r--pkgs/development/python-modules/bugsnag/default.nix4
-rw-r--r--pkgs/development/python-modules/cleanlab/default.nix47
-rw-r--r--pkgs/development/python-modules/clickgen/default.nix4
-rw-r--r--pkgs/development/python-modules/deepdiff/default.nix1
-rw-r--r--pkgs/development/python-modules/django-import-export/default.nix4
-rw-r--r--pkgs/development/python-modules/django-modeltranslation/default.nix4
-rw-r--r--pkgs/development/python-modules/dploot/default.nix4
-rw-r--r--pkgs/development/python-modules/elasticsearch8/default.nix4
-rw-r--r--pkgs/development/python-modules/foolscap/default.nix20
-rw-r--r--pkgs/development/python-modules/goodwe/default.nix4
-rw-r--r--pkgs/development/python-modules/gophish/default.nix65
-rw-r--r--pkgs/development/python-modules/heatzypy/default.nix4
-rw-r--r--pkgs/development/python-modules/huggingface-hub/default.nix4
-rw-r--r--pkgs/development/python-modules/import-expression/default.nix24
-rw-r--r--pkgs/development/python-modules/latex2pydata/default.nix34
-rw-r--r--pkgs/development/python-modules/ledgerblue/default.nix4
-rw-r--r--pkgs/development/python-modules/litellm/default.nix4
-rw-r--r--pkgs/development/python-modules/llama-index-core/default.nix4
-rw-r--r--pkgs/development/python-modules/model-checker/default.nix4
-rw-r--r--pkgs/development/python-modules/okonomiyaki/default.nix2
-rw-r--r--pkgs/development/python-modules/ome-zarr/default.nix4
-rw-r--r--pkgs/development/python-modules/oslo-db/default.nix4
-rw-r--r--pkgs/development/python-modules/oslo-log/default.nix4
-rw-r--r--pkgs/development/python-modules/pdfplumber/default.nix4
-rw-r--r--pkgs/development/python-modules/peaqevcore/default.nix4
-rw-r--r--pkgs/development/python-modules/plugp100/default.nix51
-rw-r--r--pkgs/development/python-modules/plugwise/default.nix4
-rw-r--r--pkgs/development/python-modules/ptpython/default.nix4
-rw-r--r--pkgs/development/python-modules/publicsuffixlist/default.nix4
-rw-r--r--pkgs/development/python-modules/pycaption/default.nix4
-rw-r--r--pkgs/development/python-modules/pyexploitdb/default.nix4
-rw-r--r--pkgs/development/python-modules/pymongo-inmemory/default.nix4
-rw-r--r--pkgs/development/python-modules/pyquil/default.nix13
-rw-r--r--pkgs/development/python-modules/pystray/default.nix18
-rw-r--r--pkgs/development/python-modules/pytest-testinfra/default.nix4
-rw-r--r--pkgs/development/python-modules/pytubefix/default.nix28
-rw-r--r--pkgs/development/python-modules/pyxnat/default.nix32
-rw-r--r--pkgs/development/python-modules/qcs-api-client/default.nix6
-rw-r--r--pkgs/development/python-modules/qcs-sdk-python/Cargo.lock24
-rw-r--r--pkgs/development/python-modules/qcs-sdk-python/default.nix6
-rw-r--r--pkgs/development/python-modules/quil/default.nix6
-rw-r--r--pkgs/development/python-modules/resend/default.nix4
-rw-r--r--pkgs/development/python-modules/scikit-fmm/default.nix34
-rw-r--r--pkgs/development/python-modules/shiboken2/default.nix3
-rw-r--r--pkgs/development/python-modules/stripe/default.nix4
-rw-r--r--pkgs/development/python-modules/tencentcloud-sdk-python/default.nix4
-rw-r--r--pkgs/development/python-modules/teslajsonpy/default.nix4
-rw-r--r--pkgs/development/python-modules/types-requests/default.nix4
-rw-r--r--pkgs/development/python-modules/vnoise/default.nix35
-rw-r--r--pkgs/development/python-modules/xyzservices/default.nix12
-rw-r--r--pkgs/development/python-modules/yara-python/default.nix13
-rw-r--r--pkgs/development/python-modules/ytmusicapi/default.nix4
-rw-r--r--pkgs/development/python-modules/zconfig/default.nix7
-rw-r--r--pkgs/development/python-modules/zipfile2/default.nix2
-rw-r--r--pkgs/development/r-modules/default.nix37
-rw-r--r--pkgs/development/r-modules/patches/immunotation.patch47
-rw-r--r--pkgs/development/rocm-modules/5/rocm-runtime/default.nix4
-rw-r--r--pkgs/development/rocm-modules/6/rocm-runtime/default.nix4
-rw-r--r--pkgs/development/tools/algolia-cli/default.nix4
-rw-r--r--pkgs/development/tools/analysis/checkstyle/default.nix4
-rw-r--r--pkgs/development/tools/analysis/tflint-plugins/tflint-ruleset-google.nix6
-rw-r--r--pkgs/development/tools/bazel-gazelle/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/buck2/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/buck2/hashes.json10
-rw-r--r--pkgs/development/tools/build-managers/scala-cli/sources.json10
-rw-r--r--pkgs/development/tools/buildah/default.nix4
-rw-r--r--pkgs/development/tools/coder/default.nix20
-rw-r--r--pkgs/development/tools/database/clickhouse-backup/default.nix4
-rw-r--r--pkgs/development/tools/database/vitess/default.nix6
-rw-r--r--pkgs/development/tools/devpod/default.nix4
-rw-r--r--pkgs/development/tools/earthly/default.nix6
-rw-r--r--pkgs/development/tools/extism-cli/default.nix6
-rw-r--r--pkgs/development/tools/firebase-tools/default.nix6
-rw-r--r--pkgs/development/tools/ginkgo/default.nix4
-rw-r--r--pkgs/development/tools/golangci-lint/default.nix6
-rw-r--r--pkgs/development/tools/jaq/default.nix6
-rw-r--r--pkgs/development/tools/language-servers/neocmakelsp/default.nix6
-rw-r--r--pkgs/development/tools/micronaut/default.nix4
-rw-r--r--pkgs/development/tools/misc/binutils/default.nix15
-rw-r--r--pkgs/development/tools/misc/blackfire/php-probe.nix32
-rw-r--r--pkgs/development/tools/misc/ctags/wrapped.nix146
-rw-r--r--pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix4
-rw-r--r--pkgs/development/tools/okteto/default.nix4
-rw-r--r--pkgs/development/tools/ols/default.nix6
-rw-r--r--pkgs/development/tools/rubyfmt/default.nix2
-rw-r--r--pkgs/development/tools/rust/cargo-dist/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-public-api/default.nix6
-rw-r--r--pkgs/development/tools/sentry-cli/default.nix6
-rw-r--r--pkgs/development/tools/wasmedge/default.nix4
-rw-r--r--pkgs/development/tools/xqilla/default.nix15
-rw-r--r--pkgs/development/web/bun/default.nix10
-rw-r--r--pkgs/games/chiaki4deck/default.nix4
-rw-r--r--pkgs/games/fheroes2/default.nix4
-rw-r--r--pkgs/games/minetest/default.nix5
-rw-r--r--pkgs/games/nile/default.nix6
-rw-r--r--pkgs/games/shattered-pixel-dungeon/experienced-pixel-dungeon.nix6
-rw-r--r--pkgs/games/shattered-pixel-dungeon/shorter-pixel-dungeon.nix6
-rw-r--r--pkgs/misc/seafile-shared/default.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/common-config.nix12
-rw-r--r--pkgs/os-specific/linux/kernel/hardened/patches.json80
-rw-r--r--pkgs/os-specific/linux/kernel/kernels-org.json4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-libre.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-rt-5.10.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/linux-rt-6.1.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/linux-rt-6.6.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/zen-kernels.nix8
-rw-r--r--pkgs/os-specific/linux/lttng-modules/default.nix4
-rw-r--r--pkgs/os-specific/linux/pcm/default.nix4
-rw-r--r--pkgs/pkgs-lib/formats.nix5
-rw-r--r--pkgs/pkgs-lib/formats/hocon/default.nix1
-rw-r--r--pkgs/pkgs-lib/formats/java-properties/default.nix3
-rw-r--r--pkgs/pkgs-lib/formats/libconfig/default.nix1
-rw-r--r--pkgs/servers/adguardhome/bins.nix28
-rw-r--r--pkgs/servers/adguardhome/default.nix2
-rw-r--r--pkgs/servers/apcupsd/default.nix2
-rw-r--r--pkgs/servers/brickd/default.nix2
-rw-r--r--pkgs/servers/dns/dnsdist/default.nix2
-rw-r--r--pkgs/servers/dns/pdns/default.nix2
-rw-r--r--pkgs/servers/freeradius/default.nix2
-rw-r--r--pkgs/servers/ftp/vsftpd/default.nix2
-rw-r--r--pkgs/servers/gopher/gofish/default.nix2
-rw-r--r--pkgs/servers/gpm/default.nix2
-rw-r--r--pkgs/servers/headphones/default.nix4
-rw-r--r--pkgs/servers/home-assistant/custom-lovelace-modules/android-tv-card/default.nix6
-rw-r--r--pkgs/servers/home-assistant/stubs.nix4
-rw-r--r--pkgs/servers/http/angie/default.nix6
-rw-r--r--pkgs/servers/http/apache-modules/mod_tile/default.nix2
-rw-r--r--pkgs/servers/http/gatling/default.nix2
-rw-r--r--pkgs/servers/http/hiawatha/default.nix2
-rw-r--r--pkgs/servers/http/lwan/default.nix2
-rw-r--r--pkgs/servers/http/nginx/generic.nix15
-rw-r--r--pkgs/servers/http/webfs/default.nix2
-rw-r--r--pkgs/servers/icecast/default.nix2
-rw-r--r--pkgs/servers/icecream/default.nix2
-rw-r--r--pkgs/servers/identd/nullidentdmod/default.nix2
-rw-r--r--pkgs/servers/identd/oidentd/default.nix2
-rw-r--r--pkgs/servers/irc/charybdis/default.nix2
-rw-r--r--pkgs/servers/irc/ngircd/default.nix2
-rw-r--r--pkgs/servers/jellyfin/default.nix38
-rw-r--r--pkgs/servers/jellyfin/web.nix19
-rw-r--r--pkgs/servers/klipper/default.nix6
-rw-r--r--pkgs/servers/kwakd/default.nix2
-rw-r--r--pkgs/servers/ldap/389/default.nix19
-rw-r--r--pkgs/servers/limesurvey/default.nix2
-rw-r--r--pkgs/servers/mail/nullmailer/default.nix2
-rw-r--r--pkgs/servers/mail/postgrey/default.nix2
-rw-r--r--pkgs/servers/mail/postsrsd/default.nix2
-rw-r--r--pkgs/servers/mail/smtprelay/default.nix6
-rw-r--r--pkgs/servers/mail/sympa/default.nix2
-rw-r--r--pkgs/servers/minio/default.nix6
-rw-r--r--pkgs/servers/monitoring/buildkite-agent-metrics/default.nix6
-rw-r--r--pkgs/servers/monitoring/consul-alerts/default.nix2
-rw-r--r--pkgs/servers/monitoring/fusion-inventory/default.nix2
-rw-r--r--pkgs/servers/monitoring/grafana-image-renderer/default.nix6
-rw-r--r--pkgs/servers/monitoring/grafana-image-renderer/package.json15
-rw-r--r--pkgs/servers/monitoring/grafana/default.nix21
-rw-r--r--pkgs/servers/monitoring/lcdproc/default.nix2
-rw-r--r--pkgs/servers/monitoring/munin/default.nix2
-rw-r--r--pkgs/servers/monitoring/nagios/default.nix2
-rw-r--r--pkgs/servers/monitoring/nagios/plugins/check_ssl_cert.nix4
-rw-r--r--pkgs/servers/monitoring/plugins/esxi.nix2
-rw-r--r--pkgs/servers/monitoring/plugins/labs_consol_de.nix2
-rw-r--r--pkgs/servers/monitoring/plugins/wmiplus/default.nix2
-rw-r--r--pkgs/servers/monitoring/zabbix/agent.nix2
-rw-r--r--pkgs/servers/monitoring/zabbix/proxy.nix2
-rw-r--r--pkgs/servers/monitoring/zabbix/server.nix2
-rw-r--r--pkgs/servers/monitoring/zabbix/web.nix2
-rw-r--r--pkgs/servers/photofield/default.nix15
-rw-r--r--pkgs/servers/search/sphinxsearch/default.nix2
-rw-r--r--pkgs/servers/sftpgo/default.nix2
-rw-r--r--pkgs/servers/sickbeard/sickgear.nix4
-rw-r--r--pkgs/servers/silc-server/default.nix2
-rw-r--r--pkgs/servers/sql/mariadb/default.nix2
-rw-r--r--pkgs/servers/sql/mysql/8.0.x.nix2
-rw-r--r--pkgs/servers/sql/mysql/jdbc/default.nix2
-rw-r--r--pkgs/servers/sql/percona-server/lts.nix2
-rw-r--r--pkgs/servers/sql/postgresql/ext/pg_similarity.nix2
-rw-r--r--pkgs/servers/sql/postgresql/ext/postgis.nix2
-rw-r--r--pkgs/servers/tailscale/default.nix11
-rw-r--r--pkgs/servers/teleport/13/Cargo.lock1956
-rw-r--r--pkgs/servers/teleport/13/default.nix17
-rw-r--r--pkgs/servers/teleport/14/Cargo.lock18
-rw-r--r--pkgs/servers/teleport/14/default.nix10
-rw-r--r--pkgs/servers/teleport/15/Cargo.lock48
-rw-r--r--pkgs/servers/teleport/15/default.nix10
-rw-r--r--pkgs/servers/teleport/default.nix1
-rw-r--r--pkgs/servers/ums/default.nix2
-rw-r--r--pkgs/servers/uwsgi/default.nix2
-rw-r--r--pkgs/servers/web-apps/discourse/asserts_patch-package_from_path.patch13
-rw-r--r--pkgs/servers/web-apps/discourse/assets_rake_command.patch18
-rw-r--r--pkgs/servers/web-apps/discourse/default.nix74
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-assign/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-bbcode-color/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-calendar/Gemfile.lock20
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-calendar/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-calendar/gemset.nix68
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-chat-integration/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-checklist/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-data-explorer/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-docs/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-github/Gemfile.lock18
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-github/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-github/gemset.nix44
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-math/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/Gemfile2
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/Gemfile.lock8
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/gemset.nix8
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-openid-connect/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile.lock2
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-reactions/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-saved-searches/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-solved/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-spoiler-alert/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-voting/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-yearly-review/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/prebuild-theme-transpiler.patch21
-rw-r--r--pkgs/servers/web-apps/discourse/rubyEnv/Gemfile49
-rw-r--r--pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock331
-rw-r--r--pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix536
-rw-r--r--pkgs/servers/web-apps/discourse/unicorn_logging_and_timeout.patch13
-rwxr-xr-xpkgs/servers/web-apps/discourse/update.py53
-rw-r--r--pkgs/servers/web-apps/dokuwiki/default.nix2
-rw-r--r--pkgs/servers/web-apps/engelsystem/default.nix2
-rw-r--r--pkgs/servers/web-apps/freshrss/default.nix4
-rw-r--r--pkgs/servers/web-apps/wordpress/generic.nix2
-rw-r--r--pkgs/servers/xmpp/ejabberd/default.nix2
-rw-r--r--pkgs/shells/jush/default.nix29
-rw-r--r--pkgs/shells/liquidprompt/default.nix33
-rw-r--r--pkgs/shells/zsh/zsh-abbr/default.nix4
-rw-r--r--pkgs/tools/admin/granted/default.nix4
-rw-r--r--pkgs/tools/admin/meshcentral/default.nix8
-rw-r--r--pkgs/tools/admin/meshcentral/package.json9
-rw-r--r--pkgs/tools/admin/meshcentral/yarn.lock2053
-rw-r--r--pkgs/tools/admin/pulumi-bin/data.nix322
-rw-r--r--pkgs/tools/admin/salt/default.nix4
-rw-r--r--pkgs/tools/filesystems/gcsfuse/default.nix6
-rw-r--r--pkgs/tools/graphics/mangohud/default.nix14
-rw-r--r--pkgs/tools/graphics/mangohud/hardcode-dependencies.patch7
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-bamboo/default.nix17
-rw-r--r--pkgs/tools/inputmethods/keymapper/default.nix8
-rw-r--r--pkgs/tools/misc/esphome/default.nix4
-rw-r--r--pkgs/tools/misc/fluent-bit/default.nix4
-rw-r--r--pkgs/tools/misc/gh-eco/default.nix33
-rw-r--r--pkgs/tools/misc/lazydocker/default.nix4
-rw-r--r--pkgs/tools/misc/plantuml/default.nix4
-rw-r--r--pkgs/tools/misc/trash-cli/default.nix8
-rw-r--r--pkgs/tools/misc/you-get/default.nix4
-rw-r--r--pkgs/tools/networking/croc/default.nix5
-rw-r--r--pkgs/tools/networking/croc/test-local-relay.nix7
-rw-r--r--pkgs/tools/networking/lychee/default.nix13
-rw-r--r--pkgs/tools/networking/lychee/tests/fail-emptyDirectory.nix28
-rw-r--r--pkgs/tools/networking/lychee/tests/fail.nix21
-rw-r--r--pkgs/tools/networking/lychee/tests/network.nix66
-rw-r--r--pkgs/tools/networking/lychee/tests/ok.nix12
-rw-r--r--pkgs/tools/networking/miniupnpc/default.nix15
-rw-r--r--pkgs/tools/networking/oneshot/default.nix4
-rw-r--r--pkgs/tools/networking/sish/default.nix4
-rw-r--r--pkgs/tools/networking/zerotierone/default.nix13
-rw-r--r--pkgs/tools/package-management/nix/common.nix3
-rw-r--r--pkgs/tools/package-management/nix/default.nix13
-rw-r--r--pkgs/tools/security/cnspec/default.nix6
-rw-r--r--pkgs/tools/security/faraday-agent-dispatcher/default.nix17
-rw-r--r--pkgs/tools/security/ghidra/build.nix54
-rw-r--r--pkgs/tools/security/ghidra/with-extensions.nix8
-rw-r--r--pkgs/tools/security/httpx/default.nix6
-rw-r--r--pkgs/tools/security/jwt-cli/default.nix6
-rw-r--r--pkgs/tools/security/kubescape/default.nix6
-rw-r--r--pkgs/tools/security/oauth2c/default.nix6
-rw-r--r--pkgs/tools/security/smbmap/default.nix23
-rw-r--r--pkgs/tools/security/trufflehog/default.nix6
-rw-r--r--pkgs/tools/text/ansifilter/default.nix2
-rw-r--r--pkgs/tools/text/crowdin-cli/default.nix4
-rw-r--r--pkgs/tools/text/mdbook-i18n-helpers/default.nix6
-rw-r--r--pkgs/tools/text/percollate/default.nix8
-rw-r--r--pkgs/tools/typesetting/tex/tetex/default.nix5
-rw-r--r--pkgs/tools/typesetting/tex/texpresso/default.nix4
-rw-r--r--pkgs/tools/typesetting/tex/texpresso/tectonic.nix4
-rw-r--r--pkgs/top-level/aliases.nix24
-rw-r--r--pkgs/top-level/all-packages.nix53
-rw-r--r--pkgs/top-level/beam-packages.nix16
-rw-r--r--pkgs/top-level/linux-kernels.nix1
-rw-r--r--pkgs/top-level/ocaml-packages.nix14
-rw-r--r--pkgs/top-level/python-packages.nix10
624 files changed, 13461 insertions, 6856 deletions
diff --git a/.github/workflows/basic-eval.yml b/.github/workflows/basic-eval.yml
index 1f787397f2611..a5ada7a6e210f 100644
--- a/.github/workflows/basic-eval.yml
+++ b/.github/workflows/basic-eval.yml
@@ -20,7 +20,7 @@ jobs:
     steps:
     - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
     - uses: cachix/install-nix-action@8887e596b4ee1134dae06b98d573bd674693f47c # v26
-    - uses: cachix/cachix-action@18cf96c7c98e048e10a83abd92116114cd8504be # v14
+    - uses: cachix/cachix-action@ad2ddac53f961de1989924296a1f236fcfbaa4fc # v15
       with:
         # This cache is for the nixpkgs repo checks and should not be trusted or used elsewhere.
         name: nixpkgs-ci
diff --git a/.github/workflows/manual-nixos.yml b/.github/workflows/manual-nixos.yml
index a72b1adfeac03..f841fcadc5005 100644
--- a/.github/workflows/manual-nixos.yml
+++ b/.github/workflows/manual-nixos.yml
@@ -22,7 +22,7 @@ jobs:
         with:
           # explicitly enable sandbox
           extra_nix_config: sandbox = true
-      - uses: cachix/cachix-action@18cf96c7c98e048e10a83abd92116114cd8504be # v14
+      - uses: cachix/cachix-action@ad2ddac53f961de1989924296a1f236fcfbaa4fc # v15
         with:
           # This cache is for the nixpkgs repo checks and should not be trusted or used elsewhere.
           name: nixpkgs-ci
diff --git a/.github/workflows/manual-nixpkgs.yml b/.github/workflows/manual-nixpkgs.yml
index 52aefa8472ed2..7b2cef0e108b5 100644
--- a/.github/workflows/manual-nixpkgs.yml
+++ b/.github/workflows/manual-nixpkgs.yml
@@ -24,7 +24,7 @@ jobs:
         with:
           # explicitly enable sandbox
           extra_nix_config: sandbox = true
-      - uses: cachix/cachix-action@18cf96c7c98e048e10a83abd92116114cd8504be # v14
+      - uses: cachix/cachix-action@ad2ddac53f961de1989924296a1f236fcfbaa4fc # v15
         with:
           # This cache is for the nixpkgs repo checks and should not be trusted or used elsewhere.
           name: nixpkgs-ci
diff --git a/.mailmap b/.mailmap
index ba9bcefb55e1c..ce432f161b878 100644
--- a/.mailmap
+++ b/.mailmap
@@ -10,6 +10,7 @@ Robert Hensing <robert@roberthensing.nl> <roberth@users.noreply.github.com>
 Sandro Jäckel <sandro.jaeckel@gmail.com>
 Sandro Jäckel <sandro.jaeckel@gmail.com> <sandro.jaeckel@sap.com>
 superherointj <5861043+superherointj@users.noreply.github.com>
+Tomodachi94 <tomodachi94@protonmail.com> Tomo <68489118+Tomodachi94@users.noreply.github.com>
 Vladimír Čunát <v@cunat.cz> <vcunat@gmail.com>
 Vladimír Čunát <v@cunat.cz> <vladimir.cunat@nic.cz>
 Yifei Sun <ysun@hey.com> StepBroBD <Hi@StepBroBD.com>
diff --git a/doc/build-helpers/testers.chapter.md b/doc/build-helpers/testers.chapter.md
index b734cbbbd4e29..80d293cf1c70c 100644
--- a/doc/build-helpers/testers.chapter.md
+++ b/doc/build-helpers/testers.chapter.md
@@ -40,6 +40,82 @@ If the `moduleNames` argument is omitted, `hasPkgConfigModules` will use `meta.p
 
 :::
 
+## `lycheeLinkCheck` {#tester-lycheeLinkCheck}
+
+Check a packaged static site's links with the [`lychee` package](https://search.nixos.org/packages?show=lychee&type=packages&query=lychee).
+
+You may use Nix to reproducibly build static websites, such as for software documentation.
+Some packages will install documentation in their `out` or `doc` outputs, or maybe you have dedicated package where you've made your static site reproducible by running a generator, such as [Hugo](https://gohugo.io/) or [mdBook](https://rust-lang.github.io/mdBook/), in a derivation.
+
+If you have a static site that can be built with Nix, you can use `lycheeLinkCheck` to check that the hyperlinks in your site are correct, and do so as part of your Nix workflow and CI.
+
+:::{.example #ex-lycheelinkcheck}
+
+# Check hyperlinks in the `nix` documentation
+
+```nix
+testers.lycheeLinkCheck {
+  site = nix.doc + "/share/doc/nix/manual";
+}
+```
+
+:::
+
+### Return value {#tester-lycheeLinkCheck-return}
+
+This tester produces a package that does not produce useful outputs, but only succeeds if the hyperlinks in your site are correct. The build log will list the broken links.
+
+It has two modes:
+
+- Build the returned derivation; its build process will check that internal hyperlinks are correct. This runs in the sandbox, so it will not check external hyperlinks, but it is quick and reliable.
+
+- Invoke the `.online` attribute with [`nix run`](https://nixos.org/manual/nix/stable/command-ref/new-cli/nix3-run) ([experimental](https://nixos.org/manual/nix/stable/contributing/experimental-features#xp-feature-nix-command)). This runs outside the sandbox, and checks that both internal and external hyperlinks are correct.
+  Example:
+
+  ```shell
+  nix run nixpkgs#lychee.tests.ok.online
+  ```
+
+### Inputs {#tester-lycheeLinkCheck-inputs}
+
+`site` (path or derivation) {#tester-lycheeLinkCheck-param-site}
+
+: The path to the files to check.
+
+`remap` (attribe set, optional) {#tester-lycheeLinkCheck-param-remap}
+
+: An attribute set where the attribute names are regular expressions.
+  The values should be strings, derivations, or path values.
+
+  In the returned check's default configuration, external URLs are only checked when you run the `.online` attribute.
+
+  By adding remappings, you can check offline that URLs to external resources are correct, by providing a stand-in from the file system.
+
+  Before checking the existence of a URL, the regular expressions are matched and replaced by their corresponding values.
+
+  Example:
+
+  ```nix
+  {
+    "https://nix\\.dev/manual/nix/[a-z0-9.-]*" = "${nix.doc}/share/doc/nix/manual";
+    "https://nixos\\.org/manual/nix/(un)?stable" = "${emptyDirectory}/placeholder-to-disallow-old-nix-docs-urls";
+  }
+  ```
+
+  Store paths in the attribute values are automatically prefixed with `file://`, because lychee requires this for paths in the file system.
+  If this is a problem, or if you need to control the order in which replacements are performed, use `extraConfig.remap` instead.
+
+`extraConfig` (attribute set) {#tester-lycheeLinkCheck-param-extraConfig}
+
+: Extra configuration to pass to `lychee` in its [configuration file](https://github.com/lycheeverse/lychee/blob/master/lychee.example.toml).
+  It is automatically [translated](https://nixos.org/manual/nixos/stable/index.html#sec-settings-nix-representable) to TOML.
+
+  Example: `{ "include_verbatim" = true; }`
+
+`lychee` (derivation, optional) {#tester-lycheeLinkCheck-param-lychee}
+
+: The `lychee` package to use.
+
 ## `testVersion` {#tester-testVersion}
 
 Checks that the output from running a command contains the specified version string in it as a whole word.
diff --git a/lib/licenses.nix b/lib/licenses.nix
index 7d2a22bc25a47..8dbdf27fa845a 100644
--- a/lib/licenses.nix
+++ b/lib/licenses.nix
@@ -902,6 +902,17 @@ in mkLicense lset) ({
     free = false;
   };
 
+  ncbiPd = {
+    spdxId = "NCBI-PD";
+    fullname = "NCBI Public Domain Notice";
+    # Due to United States copyright law, anything with this "license" does not have a copyright in the
+    # jurisdiction of the United States. However, other jurisdictions may assign the United States
+    # government copyright to the work, and the license explicitly states that in such a case, no license
+    # is granted. This is nonfree and nonredistributable in most jurisdictions other than the United States.
+    free = false;
+    redistributable = false;
+  };
+
   ncsa = {
     spdxId = "NCSA";
     fullName = "University of Illinois/NCSA Open Source License";
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index 1785b1acdb261..fd3ea9c13f9c8 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -272,6 +272,12 @@
     githubId = 381298;
     name = "9R";
   };
+  _9yokuro = {
+    email = "xzstd099@protonmail.com";
+    github = "9yokuro";
+    githubId = 119095935;
+    name = "9yokuro";
+  };
   A1ca7raz = {
     email = "aya@wtm.moe";
     github = "A1ca7raz";
@@ -1168,12 +1174,30 @@
     githubId = 858965;
     name = "Andrew Morsillo";
   };
+  amyipdev = {
+    email = "amy@amyip.net";
+    github = "amyipdev";
+    githubId = 46307646;
+    name = "Amy Parker";
+    keys = [{
+      fingerprint = "7786 034B D521 49F5 1B0A  2A14 B112 2F04 E962 DDC5";
+    }];
+  };
   amz-x = {
     email = "mail@amz-x.com";
     github = "amz-x";
     githubId = 18249234;
     name = "Christopher Crouse";
   };
+  anas = {
+    email = "anas.elgarhy.dev@gmail.com";
+    github = "0x61nas";
+    githubId = 44965145;
+    name = "Anas Elgarhy";
+    keys = [{
+      fingerprint = "E10B D192 9231 08C7 3C35 7EC3 83E0 3DC6 F383 4086";
+    }];
+  };
   AnatolyPopov = {
     email = "aipopov@live.ru";
     github = "AnatolyPopov";
@@ -1882,6 +1906,12 @@
       fingerprint = "BF47 81E1 F304 1ADF 18CE  C401 DE16 C7D1 536D A72F";
     }];
   };
+  astronaut0212 = {
+    email = "goatastronaut0212@proton.me";
+    github = "goatastronaut0212";
+    githubId = 119769817;
+    name = "goatastronaut0212";
+  };
   astsmtl = {
     email = "astsmtl@yandex.ru";
     github = "astsmtl";
@@ -2035,6 +2065,12 @@
     githubId = 1217745;
     name = "Aldwin Vlasblom";
   };
+  aveltras = {
+    email = "romain.viallard@outlook.fr";
+    github = "aveltras";
+    githubId = 790607;
+    name = "Romain Viallard";
+  };
   averagebit = {
     email = "averagebit@pm.me";
     github = "averagebit";
@@ -3808,6 +3844,15 @@
     githubId = 199180;
     name = "Claes Wallin";
   };
+  clebs = {
+    email = "borja.clemente@gmail.com";
+    github = "clebs";
+    githubId = 1059661;
+    name = "Borja Clemente";
+    keys = [{
+      fingerprint = "C4E1 58BD FD33 3C77 B6C7  178E 2539 757E F64C 60DD";
+    }];
+  };
   cleeyv = {
     email = "cleeyv@riseup.net";
     github = "cleeyv";
@@ -9376,6 +9421,12 @@
     githubId = 2377;
     name = "Jonathan del Strother";
   };
+  jdev082 = {
+    email = "jdev0894@gmail.com";
+    github = "jdev082";
+    githubId = 92550746;
+    name = "jdev082";
+  };
   jdreaver = {
     email = "johndreaver@gmail.com";
     github = "jdreaver";
@@ -10189,7 +10240,7 @@
     githubId = 27734541;
   };
   jtbx = {
-    email = "jtbx@duck.com";
+    email = "jeremy@baxters.nz";
     name = "Jeremy Baxter";
     github = "jtbx";
     githubId = 92071952;
@@ -12889,6 +12940,12 @@
       fingerprint = "1DE4 424D BF77 1192 5DC4  CF5E 9AED 8814 81D8 444E";
     }];
   };
+  maxstrid = {
+    email = "mxwhenderson@gmail.com";
+    github = "maxstrid";
+    githubId = 115441224;
+    name = "Maxwell Henderson";
+  };
   maxux = {
     email = "root@maxux.net";
     github = "maxux";
@@ -15990,6 +16047,12 @@
     githubId = 43863;
     name = "Philip Taron";
   };
+  philtaken = {
+    email = "philipp.herzog@protonmail.com";
+    github = "philtaken";
+    githubId = 13309623;
+    name = "Philipp Herzog";
+  };
   phip1611 = {
     email = "phip1611@gmail.com";
     github = "phip1611";
@@ -16708,6 +16771,12 @@
     github = "PhilippWoelfel";
     githubId = 19400064;
   };
+  pyle = {
+    name = "Adam Pyle";
+    email = "adam@pyle.dev";
+    github = "pyle";
+    githubId = 7279609;
+  };
   pyrolagus = {
     email = "pyrolagus@gmail.com";
     github = "PyroLagus";
@@ -17698,8 +17767,12 @@
   RossComputerGuy = {
     name = "Tristan Ross";
     email = "tristan.ross@midstall.com";
+    matrix = "@rosscomputerguy:matrix.org";
     github = "RossComputerGuy";
     githubId = 19699320;
+    keys = [{
+      fingerprint = "FD5D F7A8 85BB 378A 0157  5356 B09C 4220 3566 9AF8";
+    }];
   };
   rostan-t = {
     name = "Rostan Tabet";
@@ -19771,12 +19844,6 @@
     githubId = 36031171;
     name = "Supa";
   };
-  superbo = {
-    email = "supernbo@gmail.com";
-    github = "SuperBo";
-    githubId = 2666479;
-    name = "Y Nguyen";
-  };
   superherointj = {
     email = "sergiomarcelo@yandex.com";
     github = "superherointj";
@@ -20818,11 +20885,14 @@
     name = "Tomkoid";
   };
   tomodachi94 = {
-    email = "tomodachi94+nixpkgs@protonmail.com";
+    email = "tomodachi94@protonmail.com";
     matrix = "@tomodachi94:matrix.org";
     github = "tomodachi94";
     githubId = 68489118;
     name = "Tomodachi94";
+    keys = [{
+      fingerprint = "B208 D6E5 B8ED F47D 5687  627B 2E27 5F21 C4D5 54A3";
+    }];
   };
   tomsiewert = {
     email = "tom@siewert.io";
@@ -22905,6 +22975,12 @@
     githubId = 3248;
     name = "zimbatm";
   };
+  zimeg = {
+    email = "zim@o526.net";
+    github = "zimeg";
+    githubId = 18134219;
+    name = "zimeg";
+  };
   Zimmi48 = {
     email = "theo.zimmermann@telecom-paris.fr";
     github = "Zimmi48";
diff --git a/maintainers/scripts/pluginupdate.py b/maintainers/scripts/pluginupdate.py
index 239f529f9eaa3..8ae86e2e93a49 100644
--- a/maintainers/scripts/pluginupdate.py
+++ b/maintainers/scripts/pluginupdate.py
@@ -108,7 +108,7 @@ class Repo:
 
     @property
     def name(self):
-        return self.uri.split("/")[-1]
+        return self.uri.strip("/").split("/")[-1]
 
     @property
     def branch(self):
diff --git a/maintainers/team-list.nix b/maintainers/team-list.nix
index b2539cf31c82e..61c3d7873411b 100644
--- a/maintainers/team-list.nix
+++ b/maintainers/team-list.nix
@@ -236,7 +236,6 @@ with lib.maintainers; {
     members = [
       cole-h
       grahamc
-      hoverbear
     ];
     scope = "Group registration for packages maintained by Determinate Systems.";
     shortName = "Determinate Systems employees";
diff --git a/nixos/doc/manual/release-notes/rl-2211.section.md b/nixos/doc/manual/release-notes/rl-2211.section.md
index 77cb6c9baadbc..4630b0987436c 100644
--- a/nixos/doc/manual/release-notes/rl-2211.section.md
+++ b/nixos/doc/manual/release-notes/rl-2211.section.md
@@ -366,7 +366,7 @@ In addition to numerous new and upgraded packages, this release includes the fol
       __Note:__ secrets from these files will be leaked into the store unless you use a
       [**file**-provider or env-var](https://grafana.com/docs/grafana/latest/setup-grafana/configure-grafana/#file-provider) for secrets!
 
-    - [services.grafana.provision.notifiers](#opt-services.grafana.provision.notifiers) is not affected by this change because
+    - `services.grafana.provision.notifiers` is not affected by this change because
       this feature is deprecated by Grafana and will probably be removed in Grafana 10.
       It's recommended to use `services.grafana.provision.alerting.contactPoints` instead.
 
diff --git a/nixos/doc/manual/release-notes/rl-2405.section.md b/nixos/doc/manual/release-notes/rl-2405.section.md
index 4187d4a58afec..caf8a4f261120 100644
--- a/nixos/doc/manual/release-notes/rl-2405.section.md
+++ b/nixos/doc/manual/release-notes/rl-2405.section.md
@@ -22,13 +22,13 @@ In addition to numerous new and upgraded packages, this release has the followin
 
   This makes `nix run nixpkgs#hello` and `nix-build '<nixpkgs>' -A hello` work out of the box with no added configuration, reusing dependencies already on the system.
 
-  This may be undesirable if nix commands are not going to be run on the built system since it adds nixpkgs to the system closure. For such closure-size-constrained non-interactive systems, this setting should be disabled.
+  This may be undesirable if Nix commands are not going to be run on the built system since it adds nixpkgs to the system closure. For such closure-size-constrained non-interactive systems, this setting should be disabled.
 
-  To disable this, set [nixpkgs.flake.setNixPath](#opt-nixpkgs.flake.setNixPath) and [nixpkgs.flake.setFlakeRegistry](#opt-nixpkgs.flake.setFlakeRegistry) to false.
+  To disable it, set [nixpkgs.flake.setNixPath](#opt-nixpkgs.flake.setNixPath) and [nixpkgs.flake.setFlakeRegistry](#opt-nixpkgs.flake.setFlakeRegistry) to false.
 
 - NixOS AMIs are now uploaded regularly to a new AWS Account.
   Instructions on how to use them can be found on <https://nixos.github.io/amis>.
-  We are working on integration the data into the NixOS homepage.
+  We are working on integrating the data into the NixOS homepage.
   The list in `nixos/modules/virtualisation/amazon-ec2-amis.nix` will stop
   being updated and will be removed in the future.
 
@@ -45,9 +45,9 @@ In addition to numerous new and upgraded packages, this release has the followin
 - Lomiri (formerly known as Unity8) desktop mode, using Mir 2.x to function as a Wayland compositor, is now available and can be installed with `services.desktopManager.lomiri.enable = true`. Note that some core applications, services and indicators have yet to be packaged, and some functions may remain incomplete, but the base experience should be there.
 
 - MATE has been updated to 1.28.
-  - To properly support panel plugins built with Wayland (in-process) support, we are introducing `services.xserver.desktopManager.mate.extraPanelApplets` option, please use that for installing panel applets.
-  - Similarly, please use `services.xserver.desktopManager.mate.extraCajaExtensions` option for installing Caja extensions.
-  - To use the Wayland session, enable `services.xserver.desktopManager.mate.enableWaylandSession`. This is opt-in for now as it is in early stage and introduces a new set of Wayfire closure. Due to [known issues with LightDM](https://github.com/canonical/lightdm/issues/63), we suggest using SDDM for display manager.
+  - To properly support panel plugins built with Wayland (in-process) support, we are introducing the `services.xserver.desktopManager.mate.extraPanelApplets` option, please use that for installing panel applets.
+  - Similarly, please use the `services.xserver.desktopManager.mate.extraCajaExtensions` option for installing Caja extensions.
+  - To use the Wayland session, enable `services.xserver.desktopManager.mate.enableWaylandSession`. This is opt-in for now as it is in early an stage and introduces a new set of Wayfire closures. Due to [known issues with LightDM](https://github.com/canonical/lightdm/issues/63), we suggest using SDDM as the display manager.
 
 - Plasma 6 is now available and can be installed with `services.xserver.desktopManager.plasma6.enable = true;`. Plasma 5 will likely be deprecated in the next release (24.11). Note that Plasma 6 runs as Wayland by default, and the X11 session needs to be explicitly selected if necessary.
 
@@ -65,7 +65,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 - [armagetronad](https://wiki.armagetronad.org), a mid-2000s 3D lightcycle game widely played at iD Tech Camps. You can define multiple servers using `services.armagetronad.<server>.enable`.
 
 - [BenchExec](https://github.com/sosy-lab/benchexec), a framework for reliable benchmarking and resource measurement, available as [programs.benchexec](#opt-programs.benchexec.enable),
-  As well as related programs
+  as well as related programs
   [CPU Energy Meter](https://github.com/sosy-lab/cpu-energy-meter), available as [programs.cpu-energy-meter](#opt-programs.cpu-energy-meter.enable), and
   [PQoS Wrapper](https://gitlab.com/sosy-lab/software/pqos-wrapper), available as [programs.pqos-wrapper](#opt-programs.pqos-wrapper.enable).
 
@@ -111,7 +111,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - [Jottacloud Command-line Tool](https://docs.jottacloud.com/en/articles/1436834-jottacloud-command-line-tool), a CLI for the [Jottacloud](https://jottacloud.com/) cloud storage provider. Available as [services.jotta-cli](#opt-services.jotta-cli.enable).
 
-- [keto](https://www.ory.sh/keto/), a permission & access control server, the first open source implementation of ["Zanzibar: Google's Consistent, Global Authorization System"](https://research.google/pubs/zanzibar-googles-consistent-global-authorization-system/).
+- [keto](https://www.ory.sh/keto/), a permission & access control server, the first open source implementation of [*Zanzibar: Google's Consistent, Global Authorization System*](https://research.google/pubs/zanzibar-googles-consistent-global-authorization-system/).
 
 - [manticoresearch](https://manticoresearch.com), easy to use open source fast database for search. Available as [services.manticore](#opt-services.manticore.enable).
 
@@ -153,7 +153,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - [private-gpt](https://github.com/zylon-ai/private-gpt), a service to interact with your documents using the power of LLMs, 100% privately, no data leaks. Available as [services.private-gpt](#opt-services.private-gpt.enable).
 
-- [Prometheus DNSSEC Exporter](https://github.com/chrj/prometheus-dnssec-exporter), check for validity and expiration in DNSSEC signatures and expose metrics for Prometheus. Available as [services.prometheus.exporters.dnssec](#opt-services.prometheus.exporters.dnssec.enable).
+- [Prometheus DNSSEC Exporter](https://github.com/chrj/prometheus-dnssec-exporter): check for validity and expiration in DNSSEC signatures and expose metrics for Prometheus. Available as [services.prometheus.exporters.dnssec](#opt-services.prometheus.exporters.dnssec.enable).
 
 - [prometheus-nats-exporter](https://github.com/nats-io/prometheus-nats-exporter), a Prometheus exporter for NATS. Available as [services.prometheus.exporters.nats](#opt-services.prometheus.exporters.nats.enable).
 
@@ -205,6 +205,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - [your_spotify](https://github.com/Yooooomi/your_spotify), a self hosted Spotify tracking dashboard. Available as [services.your_spotify](#opt-services.your_spotify.enable)
 
+- [RKE2](https://github.com/rancher/rke2), also known as RKE Government, is Rancher's next-generation Kubernetes distribution. Available as [services.rke2](#opt-services.rke2.enable).
+
 ## Backward Incompatibilities {#sec-release-24.05-incompatibilities}
 
 <!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
@@ -231,7 +233,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - `chromium` and `ungoogled-chromium` had a long-standing issue regarding Widevine DRM handling in nixpkgs fixed.
   `chromium` now no longer automatically downloads Widevine when encountering DRM protected content.
-  To be able to play DRM protected content in `chromium` now, you have to explicitly opt-in as originally intended using `chromium.override { enableWideVine = true; }`.
+  To be able to play DRM protected content in `chromium`, you now have to explicitly opt-in as originally intended using `chromium.override { enableWideVine = true; }`.
   This override was added almost 10 years ago.
 
 - `craftos-pc` package has been updated to v2.8, which includes [breaking changes](https://github.com/MCJack123/craftos2/releases/tag/v2.8).
@@ -257,13 +259,13 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
   such as tensorflow. The original runfile-based `cudatoolkit` is still
   available as `cudatoolkit-legacy-runfile`.
 
-- `cudaPackages.nsight_systems` now has most vendored third party-libraries removed, though we now only ship it for `cudaPackages_11_8` and later, due to outdated dependencies. Users comfortable with the vendored dependencies may use `overrideAttrs` to amend the `postPatch` phase and the `meta.broken` correspondingly. Alternatively, one could package the deprecated `boost170` locally, as required for `cudaPackages_11_4.nsight_systems`.
+- `cudaPackages.nsight_systems` now has most vendored third-party libraries removed, though we now only ship it for `cudaPackages_11_8` and later, due to outdated dependencies. Users comfortable with the vendored dependencies may use `overrideAttrs` to amend the `postPatch` phase and the `meta.broken` correspondingly. Alternatively, one could package the deprecated `boost170` locally, as required for `cudaPackages_11_4.nsight_systems`.
 
 - `cudaPackages.autoFixElfFiles` has been deprecated for `pkgs.autoFixElfFiles`. Functionality has not changed, but the setuphook has been renamed and moved to the top-level package scope.
 
 - `davfs2`'s `services.davfs2.extraConfig` setting has been deprecated and converted to the free-form type option named `services.davfs2.settings` according to RFC42.
 
-- `dwarf-fortress` has been updated to version 50, and its derivations continue to menace with spikes of Nix and bash [TODO what does this mean?]. Version 50 is identical to the version on Steam, but without the paid elements like tilepacks.
+- `dwarf-fortress` has been updated to version 50, which is identical to the version on Steam, but without the paid elements like tilepacks.
   dfhack and Dwarf Therapist still work, and older versions are still packaged in case you'd like to roll back. Note that DF 50 saves will not be compatible with DF 0.47 and earlier.
   See [Bay 12 Games](http://www.bay12games.com/dwarves/) for more details on what's new in Dwarf Fortress.
 
@@ -273,14 +275,14 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - `erlang-ls` package no longer ships the `els_dap` binary as of v0.51.0.
 
-- `erlang_node_short_name`, `erlang_node_name`, `port` and `options` configuration parameters are gone, and have been replaced with an `environment` parameter.
+- `erlang_node_short_name`, `erlang_node_name`: `port` and `options` configuration parameters are gone, and have been replaced with an `environment` parameter.
     Use the appropriate [environment variables](https://hexdocs.pm/livebook/readme.html#environment-variables) inside `environment` to configure the service instead.
 
 - `firefox-devedition`, `firefox-beta`, `firefox-esr` executable file names for now match their package names, which is consistent with the `firefox-*-bin` packages. The desktop entries are also updated so that you can have multiple editions of firefox in your app launcher.
 
-- `gauge` now supports installing plugins using nix. For the old imperative approach, switch to `gauge-unwrapped`.
+- `gauge` now supports installing plugins using Nix. For the old imperative approach, switch to `gauge-unwrapped`.
   You can load plugins from an existing gauge manifest file using `gauge.fromManifest ./path/to/manifest.json` or
-  specify plugins in nix using `gauge.withPlugins (p: with p; [ js html-report xml-report ])`.
+  specify plugins in Nix using `gauge.withPlugins (p: with p; [ js html-report xml-report ])`.
 
 - `gitea` has been updated to 1.21, which introduces several breaking changes, including:
   - Custom themes and other assets that were previously stored in `custom/public/*` now belong in `custom/public/assets/*`
@@ -306,7 +308,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - `himalaya` has been updated to v1.0.0-beta.4, which introduces breaking changes. Check out the [release note](https://github.com/soywod/himalaya/releases/tag/v1.0.0-beta.4) for details.
 
-- `halloy` has been updated to 2024.5, which introduced a breaking change by switching the config format from YAML to TOML. See https://github.com/squidowl/halloy/releases/tag/2024.5 for details.
+- `halloy` has been updated to 2024.5, which introduced a breaking change by switching the config format from YAML to TOML. See <https://github.com/squidowl/halloy/releases/tag/2024.5> for details.
 
 - `hvm` was updated to version 2.
 
@@ -314,7 +316,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - `idris2` was updated to v0.7.0. This version introduces breaking changes. Check out the [changelog](https://github.com/idris-lang/Idris2/blob/v0.7.0/CHANGELOG.md#v070) for details.
 
-- `inetutils` now has a lower priority to avoid shadowing the commonly used `util-linux`. If one wishes to restore the default priority, simply use `lib.setPrio 5 inetutils` or override with `meta.priority = 5`.
+- `inetutils` now has a lower priority to avoid shadowing the commonly-used `util-linux`. If one wishes to restore the default priority, simply use `lib.setPrio 5 inetutils` or override with `meta.priority = 5`.
 
 - `jdt-language-server` package now uses upstream's provided python wrapper instead of our own custom wrapper. This results in the following breaking and notable changes:
 
@@ -326,7 +328,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - `julia` environments can now be built with arbitrary packages from the ecosystem using the `.withPackages` function. For example: `julia.withPackages ["Plots"]`.
 
-- `k3s` has been updated to version [v1.30](https://github.com/k3s-io/k3s/releases/tag/v1.30.0%2Bk3s1), previous supported versions are available under release specific names (e.g. k3s_1_27, k3s_1_28, and k3s_1_29) and present to help you migrate to the latest supported version. See [changelog and upgrade notes](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.30.md#changelog-since-v1290) for more information.
+- `k3s` has been updated to version [v1.30](https://github.com/k3s-io/k3s/releases/tag/v1.30.0%2Bk3s1), previous supported versions are available under release-specific names (e.g. k3s_1_27, k3s_1_28, and k3s_1_29) in order to help you migrate to the latest supported version. See [changelog and upgrade notes](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.30.md#changelog-since-v1290) for more information.
 
 - `k9s` was updated to v0.31. There have been various breaking changes in the config file format,
   check out the changelog of [v0.29](https://github.com/derailed/k9s/releases/tag/v0.29.0),
@@ -340,12 +342,12 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - `livebook` package is now built as a `mix release` instead of an `escript`.
   This means that configuration now has to be done using [environment variables](https://hexdocs.pm/livebook/readme.html#environment-variables) instead of command line arguments.
-  This has the further implication that the `livebook` service configuration has changed.
+  This has the further consequence that the `livebook` service configuration has changed.
 
 - `lua` interpreters default LUA_PATH and LUA_CPATH are not overriden by nixpkgs
   anymore, we patch LUA_ROOT instead which is more respectful to upstream.
 
-- `luarocks-packages-updater`'s .csv format used to define lua packages to be updated, has changed: `src` (URL of a git repository) has now become `rockspec` (URL of a rockspec) to remove ambiguity regarding which rockspec to use and simplify implementation.
+- `luarocks-packages-updater`'s .csv format, used to define lua packages to be updated, has changed: `src` (URL of a git repository) has now become `rockspec` (URL of a rockspec) to remove ambiguity regarding which rockspec to use and simplify implementation.
 
 - `mkosi` was updated to v22. Parts of the user interface have changed. Consult the
   release notes of [v19](https://github.com/systemd/mkosi/releases/tag/v19),
@@ -355,7 +357,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 
 - `mongodb-4_4` has been removed as it has reached end of life. Consequently, `unifi7` and `unifi8` now use MongoDB 5.0 by default.
 
-- `mongodb-5_0` and newer requires a cpu with the avx instruction set to run.
+- `mongodb-5_0` and newer requires a cpu with the AVX instruction set to run.
 
 - `neo4j` has been updated to version 5. You may want to read the [release notes for Neo4j 5](https://neo4j.com/release-notes/database/neo4j-5/).
 
@@ -375,7 +377,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
   `CONFIG_FILE_NAME` includes `bpf_pinning`, `ematch_map`, `group`, `nl_protos`, `rt_dsfield`, `rt_protos`, `rt_realms`, `rt_scopes`, and `rt_tables`.
 
 - `nextcloud26` has been removed since it's not maintained anymore by upstream. The latest available version of Nextcloud is now v29 (available as `pkgs.nextcloud29`). The installation logic is as follows:
-  - If [`services.nextcloud.package`](#opt-services.nextcloud.package) is specified explicitly, this package will be installed (**recommended**)
+  - If [`services.nextcloud.package`](#opt-services.nextcloud.package) is specified explicitly, this package will be installed (**recommended**).
   - If [`system.stateVersion`](#opt-system.stateVersion) is >=24.05, `pkgs.nextcloud29` will be installed by default.
   - If [`system.stateVersion`](#opt-system.stateVersion) is >=23.11, `pkgs.nextcloud27` will be installed by default.
   - Please note that an upgrade from v27 (or older) to v29 directly is not possible. Please upgrade to `nextcloud28` (or earlier) first. Nextcloud prohibits skipping major versions while upgrading. You can upgrade by declaring [`services.nextcloud.package = pkgs.nextcloud28;`](options.html#opt-services.nextcloud.package).
@@ -412,7 +414,7 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
 - `pipewire` and `wireplumber` modules have removed support for using
 `environment.etc."pipewire/..."` and `environment.etc."wireplumber/..."`.
 Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for PipeWire and
-`services.pipewire.wireplumber.configPackages` for WirePlumber instead."
+`services.pipewire.wireplumber.configPackages` for WirePlumber instead.
 
 - `power.ups` now generates `upsd.conf`, `upsd.users` and `upsmon.conf` automatically from a set of new configuration options. This breaks compatibility with existing `power.ups` setups where these files were created manually. Back up these files before upgrading NixOS.
 
@@ -444,7 +446,7 @@ Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for Pi
 - `frr` was updated to 10.0, which introduces the default of `enforce-first-as` for BGP. Please disable again if needed.
 
 - `services.aria2.rpcSecret` has been replaced with `services.aria2.rpcSecretFile`.
-  This was done so that secrets aren't stored in the world-readable nix store.
+  This was done so that secrets aren't stored in the world-readable Nix store.
   To migrate, you will have to create a file with the same exact string, and change
   your module options to point to that file. For example, `services.aria2.rpcSecret =
   "mysecret"` becomes `services.aria2.rpcSecretFile = "/path/to/secret_file"`
@@ -456,7 +458,7 @@ Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for Pi
 - `services.frp.settings` now generates the frp configuration file in TOML format as [recommended by upstream](https://github.com/fatedier/frp#configuration-files), instead of the legacy INI format. This has also introduced other changes in the configuration file structure and options:
   - The `settings.common` section in the configuration is no longer valid and all the options form inside it now go directly under `settings`.
   - Configuration option names have been changed from snake_case to camelCase. For example: `server_addr` becomes `serverAddr`, `server_port` becomes `serverPort` etc.
-  - Proxies are now defined with a new option `settings.proxies` which takes a list of proxies.
+  - Proxies are now defined with a new option, `settings.proxies`, which takes a list of proxies.
   - Consult the [upstream documentation](https://github.com/fatedier/frp#example-usage) for more details on the changes.
 
 - `services.hledger-web.capabilities` options has been replaced by a new option `services.hledger-web.allow`.
@@ -516,13 +518,11 @@ Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for Pi
   - to get previous behaviour of upstream defaults, set it to `null`
   - default value has changed from `[]` to `null`, in order to preserve default behaviour
 
-can now be used to disable the upstream fallback servers entirely by setting it to an empty list. To get the previous behaviour of the upstream defaults set it to null, the new default, instead.
-
 - `services.vikunja` systemd service now uses `vikunja` as dynamic user instead of `vikunja-api`. Database users might need to be changed.
 
 - `services.vikunja.setupNginx` setting has been removed. Users now need to set up the webserver configuration on their own with a proxy pass to the vikunja service.
 
-- `services.vmagent` module deprecates `dataDir`, `group` and `user` setting in favor of systemd provided CacheDirectory and DynamicUser.
+- `services.vmagent` module deprecates `dataDir`, `group` and `user` settings in favor of the systemd-provided CacheDirectory and DynamicUser.
 
 - `services.vmagent.remoteWriteUrl` setting has been renamed to `services.vmagent.remoteWrite.url` and now defaults to `null`.
 
@@ -544,9 +544,9 @@ can now be used to disable the upstream fallback servers entirely by setting it
 
   - Remove swap policy. This helps prevent killing processes when user's swap is small.
 
-  - Expand the memory pressure policy to `system.slice`, `user-.slice`, and all user owned slices. Reference: [commit](https://src.fedoraproject.org/rpms/systemd/c/7665e1796f915dedbf8e014f0a78f4f576d609bb).
+  - Expand the memory pressure policy to `system.slice`, `user-.slice`, and all user-owned slices. Reference: [commit](https://src.fedoraproject.org/rpms/systemd/c/7665e1796f915dedbf8e014f0a78f4f576d609bb).
 
-  - `systemd.oomd.enableUserServices` is renamed to `systemd.oomd.enableUserSlices`.
+  - Rename `systemd.oomd.enableUserServices` to `systemd.oomd.enableUserSlices`.
 
 - `systemd.sysusers.enable` option was added. If enabled, users and
   groups are created with systemd-sysusers instead of with a custom perl script.
@@ -575,11 +575,11 @@ can now be used to disable the upstream fallback servers entirely by setting it
 
 - `xxd` has been moved from `vim` default output to its own output to reduce closure size. The canonical way to reference it across all platforms is `unixtools.xxd`.
 
-- `youtrack` is bumped to 2023.3. The update is not performed automatically, it requires manual interaction. See the YouTrack section in the manual for details.
+- `youtrack` was bumped to 2023.3. The update is not performed automatically, it requires manual interaction. See the YouTrack section in the manual for details.
 
 - Ada packages (libraries and tools) have been moved into the `gnatPackages` scope. `gnatPackages` uses the default GNAT compiler, `gnat12Packages` and `gnat13Packages` use the respective matching compiler version.
 
-- Paths provided as `restartTriggers` and `reloadTriggers` for systemd units will now be copied into the nix store to make the behavior consistent.
+- Paths provided as `restartTriggers` and `reloadTriggers` for systemd units will now be copied into the Nix store to make the behavior consistent.
   Previously, `restartTriggers = [ ./config.txt ]`, if defined in a flake, would trigger a restart when any part of the flake changed; and if not defined in a flake, would never trigger a restart even if the contents of `config.txt` changed.
 
 - A warning has been added for services that are
@@ -619,16 +619,16 @@ can now be used to disable the upstream fallback servers entirely by setting it
 
 - `castopod` has some migration actions to be taken in case of a S3 setup. Some new features may also need some manual migration actions. See [https://code.castopod.org/adaures/castopod/-/releases](https://code.castopod.org/adaures/castopod/-/releases) for more information.
 
-- `cinnamon` has been updated to 6.0. Please beware that the [Wayland session](https://blog.linuxmint.com/?p=4591) is still experimental in this release and could potentially [affect Xorg sessions](https://blog.linuxmint.com/?p=4639). We suggest a reboot when switching between sessions.
+- `cinnamon` has been updated to 6.0. Please be aware that the [Wayland session](https://blog.linuxmint.com/?p=4591) is still experimental in this release and could potentially [affect Xorg sessions](https://blog.linuxmint.com/?p=4639). We suggest a reboot when switching between sessions.
 
-- `documentation.man.mandoc` now uses `MANPATH` by defaultwas to set the directories where mandoc will search for manual pages.
+- `documentation.man.mandoc` now, by default, uses `MANPATH` to set the directories where mandoc will search for manual pages.
   This enables mandoc to find manual pages in Nix profiles. To set the manual search paths via the `mandoc.conf` configuration file like before, use `documentation.man.mandoc.settings.manpath` instead.
 
 - `drbd` out-of-tree Linux kernel driver has been added in version 9.2.7. With it the DRBD 9.x features can be used instead of the 8.x features provided by the 8.4.11 in-tree driver.
 
 - `garage` has been updated to v1.x.x. Users should read the [upstream release notes](https://git.deuxfleurs.fr/Deuxfleurs/garage/releases/tag/v1.0.0) and follow the documentation when changing over their `services.garage.package` and performing this manual upgrade.
 
-- `hardware.pulseaudio` module now sets permission of pulse user home directory to 755 when running in "systemWide" mode. It fixes [issue 114399](https://github.com/NixOS/nixpkgs/issues/114399).
+- `hardware.pulseaudio` module now sets permissions of pulse user home directory to 755 when running in systemWide mode. It fixes [issue 114399](https://github.com/NixOS/nixpkgs/issues/114399).
 
 - `kavita` has been updated to 0.8.0, requiring a manual forced library scan on all libraries for migration. Refer to upstream's [release notes](https://github.com/Kareadita/Kavita/releases/tag/v0.8.0) for details.
 
@@ -636,7 +636,7 @@ can now be used to disable the upstream fallback servers entirely by setting it
 
 - `libass` now uses the native CoreText backend on Darwin, which may fix subtitle rendering issues with `mpv`, `ffmpeg`, etc.
 
-- `libjxl` version bumped from 0.8.2 to 0.9.1 [dropped support for the butteraugli API](https://github.com/libjxl/libjxl/pull/2576). You will no longer be able to set `enableButteraugli` on `libaom`.
+- `libjxl` version was bumped from 0.8.2 to 0.9.1 [dropped support for the butteraugli API](https://github.com/libjxl/libjxl/pull/2576). You will no longer be able to set `enableButteraugli` on `libaom`.
 
 - [`lilypond`](https://lilypond.org/index.html) and [`denemo`](https://www.denemo.org) are now compiled with Guile 3.0.
 
@@ -649,9 +649,9 @@ can now be used to disable the upstream fallback servers entirely by setting it
 
 - `mpich` now requires `withPm` to be a list, e.g. `"hydra:gforker"` becomes `[ "hydra" "gforker" ]`.
 
-- `nextcloud-setup.service` no longer changes the group of each file & directory inside `/var/lib/nextcloud/{config,data,store-apps}` if one of these directories has the wrong owner group. This was part of transitioning the group used for `/var/lib/nextcloud`, but isn't necessary anymore.
+- `nextcloud-setup.service` no longer changes the group of each file and directory inside `/var/lib/nextcloud/{config,data,store-apps}` if one of these directories has the wrong owner group. This was part of transitioning the group used for `/var/lib/nextcloud`, but isn't necessary anymore.
 
-- `oils-for-unix`, the oil shell's c++ version is now available. The python version is still available as `oil`.
+- `oils-for-unix`, the oil shell's C++ version is now available. The Python version is still available as `oil`.
 
 - `pkgsExtraHardening`, a new top-level package set, was added. This is a set of packages built with stricter hardening flags - those that have not yet received enough testing to be applied universally, those that are more likely to cause build failures or those that have drawbacks to their use (e.g. performance or required hardware features).
 
@@ -720,7 +720,7 @@ can now be used to disable the upstream fallback servers entirely by setting it
 - `services.zfs.zed.enableMail` now uses the global `sendmail` wrapper defined by an email module
   (such as msmtp or Postfix). It no longer requires using a special ZFS build with email support.
 
-- `sonarr` version bumped to from 3.0.10 to 4.0.3. Consequently existing config database files will be upgraded automatically, but note that some old apparently-working configs [might actually be corrupt and fail to upgrade cleanly](https://forums.sonarr.tv/t/sonarr-v4-released/33089).
+- `sonarr` version was bumped to from 3.0.10 to 4.0.3. Consequently existing config database files will be upgraded automatically, but note that some old apparently-working configs [might actually be corrupt and fail to upgrade cleanly](https://forums.sonarr.tv/t/sonarr-v4-released/33089).
 
 - `stdenv`: The `--replace` flag in `substitute`, `substituteInPlace`, `substituteAll`, `substituteAllStream`, and `substituteStream` is now deprecated if favor of the new `--replace-fail`, `--replace-warn` and `--replace-quiet`. The deprecated `--replace` equates to `--replace-warn`.
 
diff --git a/nixos/doc/manual/release-notes/rl-2411.section.md b/nixos/doc/manual/release-notes/rl-2411.section.md
index 343c1fc5933d9..2338cf6e6fee9 100644
--- a/nixos/doc/manual/release-notes/rl-2411.section.md
+++ b/nixos/doc/manual/release-notes/rl-2411.section.md
@@ -12,6 +12,8 @@
 
 ## Backward Incompatibilities {#sec-release-24.11-incompatibilities}
 
+- `nginx` package no longer includes `gd` and `geoip` dependencies. For enabling it, override `nginx` package with the optionals `withImageFilter` and `withGeoIP`.
+
 - `nvimpager` was updated to version 0.13.0, which changes the order of user and
   nvimpager settings: user commands in `-c` and `--cmd` now override the
   respective default settings because they are executed later.
diff --git a/nixos/modules/config/no-x-libs.nix b/nixos/modules/config/no-x-libs.nix
index eb593b2e7729f..87b6fea92ba4a 100644
--- a/nixos/modules/config/no-x-libs.nix
+++ b/nixos/modules/config/no-x-libs.nix
@@ -46,8 +46,9 @@ with lib;
       graphviz = super.graphviz-nox;
       gst_all_1 = super.gst_all_1 // {
         gst-plugins-bad = super.gst_all_1.gst-plugins-bad.override { guiSupport = false; };
-        gst-plugins-base = super.gst_all_1.gst-plugins-base.override { enableWayland = false; enableX11 = false; };
+        gst-plugins-base = super.gst_all_1.gst-plugins-base.override { enableGl = false; enableWayland = false; enableX11 = false; };
         gst-plugins-good = super.gst_all_1.gst-plugins-good.override { enableWayland = false; enableX11 = false; gtkSupport = false; qt5Support = false; qt6Support = false; };
+        gst-plugins-rs = super.gst_all_1.gst-plugins-rs.override { withGtkPlugins = false; };
       };
       imagemagick = super.imagemagick.override { libX11Support = false; libXtSupport = false; };
       imagemagickBig = super.imagemagickBig.override { libX11Support = false; libXtSupport = false; };
@@ -71,6 +72,7 @@ with lib;
       networkmanager-vpnc = super.networkmanager-vpnc.override { withGnome = false; };
       pango = super.pango.override { x11Support = false; };
       pinentry-curses = super.pinentry-curses.override { withLibsecret = false; };
+      pinentry-tty = super.pinentry-tty.override { withLibsecret = false; };
       pipewire = super.pipewire.override { vulkanSupport = false; x11Support = false; };
       pythonPackagesExtensions = super.pythonPackagesExtensions ++ [
         (python-final: python-prev: {
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 76fa899ef7cef..159696be8b6d0 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -292,6 +292,7 @@
   ./programs/virt-manager.nix
   ./programs/wavemon.nix
   ./programs/wayland/cardboard.nix
+  ./programs/wayland/hyprlock.nix
   ./programs/wayland/hyprland.nix
   ./programs/wayland/labwc.nix
   ./programs/wayland/river.nix
@@ -417,6 +418,7 @@
   ./services/cluster/kubernetes/scheduler.nix
   ./services/cluster/pacemaker/default.nix
   ./services/cluster/patroni/default.nix
+  ./services/cluster/rke2/default.nix
   ./services/cluster/spark/default.nix
   ./services/computing/boinc/client.nix
   ./services/computing/foldingathome/client.nix
@@ -1325,6 +1327,7 @@
   ./services/video/unifi-video.nix
   ./services/video/v4l2-relayd.nix
   ./services/wayland/cage.nix
+  ./services/wayland/hypridle.nix
   ./services/web-apps/akkoma.nix
   ./services/web-apps/alps.nix
   ./services/web-apps/anuko-time-tracker.nix
diff --git a/nixos/modules/programs/less.nix b/nixos/modules/programs/less.nix
index c904fc2089aa3..50ea1586f6880 100644
--- a/nixos/modules/programs/less.nix
+++ b/nixos/modules/programs/less.nix
@@ -35,6 +35,8 @@ in
       # therefore also enables this module
       enable = lib.mkEnableOption "less, a file pager";
 
+      package = lib.mkPackageOption pkgs "less" { };
+
       configFile = lib.mkOption {
         type = lib.types.nullOr lib.types.path;
         default = null;
@@ -110,7 +112,7 @@ in
 
   config = lib.mkIf cfg.enable {
 
-    environment.systemPackages = [ pkgs.less ];
+    environment.systemPackages = [ cfg.package ];
 
     environment.variables = {
       LESSKEYIN_SYSTEM = builtins.toString lessKey;
diff --git a/nixos/modules/programs/steam.nix b/nixos/modules/programs/steam.nix
index 31577ac2de454..5138588dbd3e5 100644
--- a/nixos/modules/programs/steam.nix
+++ b/nixos/modules/programs/steam.nix
@@ -55,6 +55,7 @@ in {
             then [ package ] ++ extraPackages
             else [ package32 ] ++ extraPackages32;
         in prevLibs ++ additionalLibs;
+        extraPkgs = p: (cfg.extraPackages ++ lib.optionals (prev ? extraPkgs) (prev.extraPkgs p));
       } // lib.optionalAttrs (cfg.gamescopeSession.enable && gamescopeCfg.capSysNice)
       {
         buildFHSEnv = pkgs.buildFHSEnv.override {
@@ -71,6 +72,19 @@ in {
       '';
     };
 
+    extraPackages = lib.mkOption {
+      type = lib.types.listOf lib.types.package;
+      default = [ ];
+      example = lib.literalExpression ''
+        with pkgs; [
+          gamescope
+        ]
+      '';
+      description = ''
+        Additional packages to add to the Steam environment.
+      '';
+    };
+
     extraCompatPackages = lib.mkOption {
       type = lib.types.listOf lib.types.package;
       default = [ ];
@@ -88,6 +102,19 @@ in {
       '';
     };
 
+    fontPackages = lib.mkOption {
+      type = lib.types.listOf lib.types.package;
+      # `fonts.packages` is a list of paths now, filter out which are not packages
+      default = builtins.filter lib.types.package.check config.fonts.packages;
+      defaultText = lib.literalExpression "builtins.filter lib.types.package.check config.fonts.packages";
+      example = lib.literalExpression "with pkgs; [ source-han-sans ]";
+      description = ''
+        Font packages to use in Steam.
+
+        Defaults to system fonts, but could be overridden to use other fonts — useful for users who would like to customize CJK fonts used in Steam. According to the [upstream issue](https://github.com/ValveSoftware/steam-for-linux/issues/10422#issuecomment-1944396010), Steam only follows the per-user fontconfig configuration.
+      '';
+    };
+
     remotePlay.openFirewall = lib.mkOption {
       type = lib.types.bool;
       default = false;
@@ -165,6 +192,8 @@ in {
       };
     };
 
+    programs.steam.extraPackages = cfg.fontPackages;
+
     programs.gamescope.enable = lib.mkDefault cfg.gamescopeSession.enable;
     services.displayManager.sessionPackages = lib.mkIf cfg.gamescopeSession.enable [ gamescopeSessionFile ];
 
diff --git a/nixos/modules/programs/wayland/hyprland.nix b/nixos/modules/programs/wayland/hyprland.nix
index c963429f2e2a9..f5ca741f94328 100644
--- a/nixos/modules/programs/wayland/hyprland.nix
+++ b/nixos/modules/programs/wayland/hyprland.nix
@@ -1,46 +1,41 @@
-{ config
-, lib
-, pkgs
-, ...
-}:
+{ config, lib, pkgs, ... }:
+
 let
   cfg = config.programs.hyprland;
 
-  finalPortalPackage = cfg.portalPackage.override {
-    hyprland = cfg.finalPackage;
-  };
+  wayland-lib = import ./lib.nix { inherit lib; };
 in
 {
   options.programs.hyprland = {
-    enable = lib.mkEnableOption null // {
-      description = ''
-        Whether to enable Hyprland, the dynamic tiling Wayland compositor that doesn't sacrifice on its looks.
-
-        You can manually launch Hyprland by executing {command}`Hyprland` on a TTY.
-
-        A configuration file will be generated in {file}`~/.config/hypr/hyprland.conf`.
-        See <https://wiki.hyprland.org> for more information.
+    enable = lib.mkEnableOption ''
+      Hyprland, the dynamic tiling Wayland compositor that doesn't sacrifice on its looks.
+      You can manually launch Hyprland by executing {command}`Hyprland` on a TTY.
+      A configuration file will be generated in {file}`~/.config/hypr/hyprland.conf`.
+      See <https://wiki.hyprland.org> for more information'';
+
+    package = lib.mkPackageOption pkgs "hyprland" {
+      extraDescription = ''
+        If the package is not overridable with `enableXWayland`, then the module option
+        {option}`xwayland` will have no effect.
       '';
-    };
-
-    package = lib.mkPackageOption pkgs "hyprland" { };
-
-    finalPackage = lib.mkOption {
-      type = lib.types.package;
-      readOnly = true;
-      default = cfg.package.override {
+    } // {
+      apply = p: wayland-lib.genFinalPackage p {
         enableXWayland = cfg.xwayland.enable;
       };
-      defaultText = lib.literalExpression
-        "`programs.hyprland.package` with applied configuration";
-      description = ''
-        The Hyprland package after applying configuration.
-      '';
     };
 
-    portalPackage = lib.mkPackageOption pkgs "xdg-desktop-portal-hyprland" { };
+    portalPackage = lib.mkPackageOption pkgs "xdg-desktop-portal-hyprland" {
+      extraDescription = ''
+        If the package is not overridable with `hyprland`, then the Hyprland package
+        used by the portal may differ from the one set in the module option {option}`package`.
+      '';
+    } // {
+      apply = p: wayland-lib.genFinalPackage p {
+        hyprland = cfg.package;
+      };
+    };
 
-    xwayland.enable = lib.mkEnableOption ("XWayland") // { default = true; };
+    xwayland.enable = lib.mkEnableOption "XWayland" // { default = true; };
 
     systemd.setPath.enable = lib.mkEnableOption null // {
       default = true;
@@ -53,33 +48,30 @@ in
     };
   };
 
-  config = lib.mkIf cfg.enable {
-    environment.systemPackages = [ cfg.finalPackage ];
-
-    fonts.enableDefaultPackages = lib.mkDefault true;
-    hardware.opengl.enable = lib.mkDefault true;
+  config = lib.mkIf cfg.enable (lib.mkMerge [
+    {
+      environment.systemPackages = [ cfg.package ];
 
-    programs = {
-      dconf.enable = lib.mkDefault true;
-      xwayland.enable = lib.mkDefault cfg.xwayland.enable;
-    };
-
-    security.polkit.enable = true;
+      # To make a Hyprland session available if a display manager like SDDM is enabled:
+      services.displayManager.sessionPackages = [ cfg.package ];
 
-    services.displayManager.sessionPackages = [ cfg.finalPackage ];
+      xdg.portal = {
+        extraPortals = [ cfg.portalPackage ];
+        configPackages = lib.mkDefault [ cfg.package ];
+      };
 
-    xdg.portal = {
-      enable = lib.mkDefault true;
-      extraPortals = [ finalPortalPackage ];
-      configPackages = lib.mkDefault [ cfg.finalPackage ];
-    };
+      systemd = lib.mkIf cfg.systemd.setPath.enable {
+        user.extraConfig = ''
+          DefaultEnvironment="PATH=$PATH:/run/current-system/sw/bin:/etc/profiles/per-user/%u/bin:/run/wrappers/bin"
+        '';
+      };
+    }
 
-    systemd = lib.mkIf cfg.systemd.setPath.enable {
-      user.extraConfig = ''
-        DefaultEnvironment="PATH=$PATH:/run/current-system/sw/bin:/etc/profiles/per-user/%u/bin:/run/wrappers/bin"
-      '';
-    };
-  };
+    (import ./wayland-session.nix {
+      inherit lib pkgs;
+      xwayland = cfg.xwayland.enable;
+    })
+  ]);
 
   imports = [
     (lib.mkRemovedOptionModule
diff --git a/nixos/modules/programs/wayland/hyprlock.nix b/nixos/modules/programs/wayland/hyprlock.nix
new file mode 100644
index 0000000000000..6c60765e80cc7
--- /dev/null
+++ b/nixos/modules/programs/wayland/hyprlock.nix
@@ -0,0 +1,25 @@
+{ lib, pkgs, config, ... }:
+
+let
+  cfg = config.programs.hyprlock;
+in
+{
+  options.programs.hyprlock = {
+    enable = lib.mkEnableOption "hyprlock, Hyprland's GPU-accelerated screen locking utility";
+    package = lib.mkPackageOption pkgs "hyprlock" { };
+  };
+
+  config = lib.mkIf cfg.enable {
+    environment.systemPackages = [
+      cfg.package
+    ];
+
+    # Hyprlock needs Hypridle systemd service to be running to detect idle time
+    services.hypridle.enable = true;
+
+    # Hyprlock needs PAM access to authenticate, else it fallbacks to su
+    security.pam.services.hyprlock = {};
+  };
+
+  meta.maintainers = with lib.maintainers; [ johnrtitor ];
+}
diff --git a/nixos/modules/programs/wayland/lib.nix b/nixos/modules/programs/wayland/lib.nix
new file mode 100644
index 0000000000000..0f275d3f18c56
--- /dev/null
+++ b/nixos/modules/programs/wayland/lib.nix
@@ -0,0 +1,12 @@
+{ lib }:
+
+{
+  genFinalPackage = pkg: args:
+    let
+      expectedArgs = with lib;
+        lib.naturalSort (lib.attrNames args);
+      existingArgs = with lib;
+        naturalSort (intersectLists expectedArgs (attrNames (functionArgs pkg.override)));
+    in
+      if existingArgs != expectedArgs then pkg else pkg.override args;
+}
diff --git a/nixos/modules/programs/wayland/river.nix b/nixos/modules/programs/wayland/river.nix
index 6f8bafb155064..0980bd28cf828 100644
--- a/nixos/modules/programs/wayland/river.nix
+++ b/nixos/modules/programs/wayland/river.nix
@@ -1,37 +1,40 @@
-{
-  config,
-  pkgs,
-  lib,
-  ...
-}:
+{ config, lib, pkgs, ... }:
+
 let
   cfg = config.programs.river;
-in {
+
+  wayland-lib = import ./lib.nix { inherit lib; };
+in
+{
   options.programs.river = {
     enable = lib.mkEnableOption "river, a dynamic tiling Wayland compositor";
 
     package = lib.mkPackageOption pkgs "river" {
       nullable = true;
       extraDescription = ''
+        If the package is not overridable with `xwaylandSupport`, then the module option
+        {option}`xwayland` will have no effect.
+
         Set to `null` to not add any River package to your path.
         This should be done if you want to use the Home Manager River module to install River.
       '';
+    } // {
+      apply = p: if p == null then null else
+        wayland-lib.genFinalPackage p {
+          xwaylandSupport = cfg.xwayland.enable;
+        };
     };
 
+    xwayland.enable = lib.mkEnableOption "XWayland" // { default = true; };
+
     extraPackages = lib.mkOption {
       type = with lib.types; listOf package;
-      default = with pkgs; [
-        swaylock
-        foot
-        dmenu
-      ];
+      default = with pkgs; [ swaylock foot dmenu ];
       defaultText = lib.literalExpression ''
         with pkgs; [ swaylock foot dmenu ];
       '';
       example = lib.literalExpression ''
-        with pkgs; [
-          termite rofi light
-        ]
+        with pkgs; [ termite rofi light ]
       '';
       description = ''
         Extra packages to be installed system wide. See
@@ -41,19 +44,22 @@ in {
     };
   };
 
-  config =
-    lib.mkIf cfg.enable (lib.mkMerge [
-      {
-        environment.systemPackages = lib.optional (cfg.package != null) cfg.package ++ cfg.extraPackages;
+  config = lib.mkIf cfg.enable (lib.mkMerge [
+    {
+      environment.systemPackages = lib.optional (cfg.package != null) cfg.package ++ cfg.extraPackages;
+
+      # To make a river session available if a display manager like SDDM is enabled:
+      services.displayManager.sessionPackages = lib.optional (cfg.package != null) cfg.package;
 
-        # To make a river session available if a display manager like SDDM is enabled:
-        services.displayManager.sessionPackages = lib.optionals (cfg.package != null) [ cfg.package ];
+      # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1050913
+      xdg.portal.config.river.default = lib.mkDefault [ "wlr" "gtk" ];
+    }
 
-        # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1050913
-        xdg.portal.config.river.default = lib.mkDefault [ "wlr" "gtk" ];
-      }
-      (import ./wayland-session.nix { inherit lib pkgs; })
-    ]);
+    (import ./wayland-session.nix {
+      inherit lib pkgs;
+      xwayland = cfg.xwayland.enable;
+    })
+  ]);
 
   meta.maintainers = with lib.maintainers; [ GaetanLepage ];
 }
diff --git a/nixos/modules/programs/wayland/sway.nix b/nixos/modules/programs/wayland/sway.nix
index cec634b6b0338..31821a84a5bd7 100644
--- a/nixos/modules/programs/wayland/sway.nix
+++ b/nixos/modules/programs/wayland/sway.nix
@@ -1,52 +1,11 @@
-{ config, pkgs, lib, ... }:
+{ config, lib, pkgs, ... }:
 
 let
   cfg = config.programs.sway;
 
-  wrapperOptions = lib.types.submodule {
-    options =
-      let
-        mkWrapperFeature  = default: description: lib.mkOption {
-          type = lib.types.bool;
-          inherit default;
-          example = !default;
-          description = "Whether to make use of the ${description}";
-        };
-      in {
-        base = mkWrapperFeature true ''
-          base wrapper to execute extra session commands and prepend a
-          dbus-run-session to the sway command.
-        '';
-        gtk = mkWrapperFeature false ''
-          wrapGAppsHook wrapper to execute sway with required environment
-          variables for GTK applications.
-        '';
-    };
-  };
-
-  genFinalPackage = pkg:
-    let
-      expectedArgs = lib.naturalSort [
-        "extraSessionCommands"
-        "extraOptions"
-        "withBaseWrapper"
-        "withGtkWrapper"
-        "isNixOS"
-      ];
-      existedArgs = with lib;
-        naturalSort
-        (intersectLists expectedArgs (attrNames (functionArgs pkg.override)));
-    in if existedArgs != expectedArgs then
-      pkg
-    else
-      pkg.override {
-        extraSessionCommands = cfg.extraSessionCommands;
-        extraOptions = cfg.extraOptions;
-        withBaseWrapper = cfg.wrapperFeatures.base;
-        withGtkWrapper = cfg.wrapperFeatures.gtk;
-        isNixOS = true;
-      };
-in {
+  wayland-lib = import ./lib.nix { inherit lib; };
+in
+{
   options.programs.sway = {
     enable = lib.mkEnableOption ''
       Sway, the i3-compatible tiling Wayland compositor. You can manually launch
@@ -55,28 +14,36 @@ in {
       <https://github.com/swaywm/sway/wiki> and
       "man 5 sway" for more information'';
 
-    package = lib.mkOption {
-      type = with lib.types; nullOr package;
-      default = pkgs.sway;
-      apply = p: if p == null then null else genFinalPackage p;
-      defaultText = lib.literalExpression "pkgs.sway";
-      description = ''
-        Sway package to use. If the package does not contain the override arguments
-        `extraSessionCommands`, `extraOptions`, `withBaseWrapper`, `withGtkWrapper`,
-        `isNixOS`, then the module options {option}`wrapperFeatures`,
-        {option}`wrapperFeatures` and {option}`wrapperFeatures` will have no effect.
-        Set to `null` to not add any Sway package to your path. This should be done if
-        you want to use the Home Manager Sway module to install Sway.
+    package = lib.mkPackageOption pkgs "sway" {
+      nullable = true;
+      extraDescription = ''
+        If the package is not overridable with `extraSessionCommands`, `extraOptions`,
+        `withBaseWrapper`, `withGtkWrapper`, `enableXWayland` and `isNixOS`,
+        then the module options {option}`wrapperFeatures`, {option}`extraSessionCommands`,
+        {option}`extraOptions` and {option}`xwayland` will have no effect.
+
+        Set to `null` to not add any Sway package to your path.
+        This should be done if you want to use the Home Manager Sway module to install Sway.
       '';
+    } // {
+      apply = p: if p == null then null else
+        wayland-lib.genFinalPackage p {
+          extraSessionCommands = cfg.extraSessionCommands;
+          extraOptions = cfg.extraOptions;
+          withBaseWrapper = cfg.wrapperFeatures.base;
+          withGtkWrapper = cfg.wrapperFeatures.gtk;
+          enableXWayland = cfg.xwayland.enable;
+          isNixOS = true;
+        };
     };
 
-    wrapperFeatures = lib.mkOption {
-      type = wrapperOptions;
-      default = { };
-      example = { gtk = true; };
-      description = ''
-        Attribute set of features to enable in the wrapper.
-      '';
+    wrapperFeatures = {
+      base = lib.mkEnableOption ''
+        the base wrapper to execute extra session commands and prepend a
+        dbus-run-session to the sway command'' // { default = true; };
+      gtk = lib.mkEnableOption ''
+        the wrapGAppsHook wrapper to execute sway with required environment
+        variables for GTK applications'';
     };
 
     extraSessionCommands = lib.mkOption {
@@ -114,19 +81,16 @@ in {
       '';
     };
 
+    xwayland.enable = lib.mkEnableOption "XWayland" // { default = true; };
+
     extraPackages = lib.mkOption {
       type = with lib.types; listOf package;
-      default = with pkgs; [
-        swaylock swayidle foot dmenu wmenu
-      ];
+      default = with pkgs; [ swaylock swayidle foot dmenu wmenu ];
       defaultText = lib.literalExpression ''
         with pkgs; [ swaylock swayidle foot dmenu wmenu ];
       '';
       example = lib.literalExpression ''
-        with pkgs; [
-          i3status i3status-rust
-          termite rofi light
-        ]
+        with pkgs; [ i3status i3status-rust termite rofi light ]
       '';
       description = ''
         Extra packages to be installed system wide. See
@@ -135,46 +99,50 @@ in {
         for a list of useful software.
       '';
     };
-
   };
 
-  config = lib.mkIf cfg.enable
-    (lib.mkMerge [
-      {
-        assertions = [
-          {
-            assertion = cfg.extraSessionCommands != "" -> cfg.wrapperFeatures.base;
-            message = ''
-              The extraSessionCommands for Sway will not be run if
-              wrapperFeatures.base is disabled.
-            '';
-          }
-        ];
-
-        environment = {
-          systemPackages = lib.optional (cfg.package != null) cfg.package ++ cfg.extraPackages;
-          # Needed for the default wallpaper:
-          pathsToLink = lib.optionals (cfg.package != null) [ "/share/backgrounds/sway" ];
-          etc = {
-            "sway/config.d/nixos.conf".source = pkgs.writeText "nixos.conf" ''
-              # Import the most important environment variables into the D-Bus and systemd
-              # user environments (e.g. required for screen sharing and Pinentry prompts):
-              exec dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP
-            '';
-          } // lib.optionalAttrs (cfg.package != null) {
-            "sway/config".source = lib.mkOptionDefault "${cfg.package}/etc/sway/config";
-          };
+  config = lib.mkIf cfg.enable (lib.mkMerge [
+    {
+      assertions = [
+        {
+          assertion = cfg.extraSessionCommands != "" -> cfg.wrapperFeatures.base;
+          message = ''
+            The extraSessionCommands for Sway will not be run if wrapperFeatures.base is disabled.
+          '';
+        }
+      ];
+
+      environment = {
+        systemPackages = lib.optional (cfg.package != null) cfg.package ++ cfg.extraPackages;
+
+        # Needed for the default wallpaper:
+        pathsToLink = lib.optional (cfg.package != null) "/share/backgrounds/sway";
+
+        etc = {
+          "sway/config.d/nixos.conf".source = pkgs.writeText "nixos.conf" ''
+            # Import the most important environment variables into the D-Bus and systemd
+            # user environments (e.g. required for screen sharing and Pinentry prompts):
+            exec dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP
+          '';
+        } // lib.optionalAttrs (cfg.package != null) {
+          "sway/config".source = lib.mkOptionDefault "${cfg.package}/etc/sway/config";
         };
+      };
+
+      programs.gnupg.agent.pinentryPackage = lib.mkDefault pkgs.pinentry-gnome3;
 
-        programs.gnupg.agent.pinentryPackage = lib.mkDefault pkgs.pinentry-gnome3;
+      # To make a Sway session available if a display manager like SDDM is enabled:
+      services.displayManager.sessionPackages = lib.optional (cfg.package != null) cfg.package;
 
-        # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1050913
-        xdg.portal.config.sway.default = lib.mkDefault [ "wlr" "gtk" ];
+      # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1050913
+      xdg.portal.config.sway.default = lib.mkDefault [ "wlr" "gtk" ];
+    }
 
-        # To make a Sway session available if a display manager like SDDM is enabled:
-        services.displayManager.sessionPackages = lib.optionals (cfg.package != null) [ cfg.package ]; }
-      (import ./wayland-session.nix { inherit lib pkgs; })
-    ]);
+    (import ./wayland-session.nix {
+      inherit lib pkgs;
+      xwayland = cfg.xwayland.enable;
+    })
+  ]);
 
   meta.maintainers = with lib.maintainers; [ primeos colemickens ];
 }
diff --git a/nixos/modules/programs/wayland/wayland-session.nix b/nixos/modules/programs/wayland/wayland-session.nix
index 47ee0788e0f38..e9c12da156abc 100644
--- a/nixos/modules/programs/wayland/wayland-session.nix
+++ b/nixos/modules/programs/wayland/wayland-session.nix
@@ -1,23 +1,18 @@
-{ lib, pkgs, ... }: {
-    security = {
-      polkit.enable = true;
-      pam.services.swaylock = {};
-    };
+{ lib, pkgs, xwayland ? true }:
 
-    hardware.opengl.enable = lib.mkDefault true;
-    fonts.enableDefaultPackages = lib.mkDefault true;
+{
+  security = {
+    polkit.enable = true;
+    pam.services.swaylock = {};
+  };
 
-    programs = {
-      dconf.enable = lib.mkDefault true;
-      xwayland.enable = lib.mkDefault true;
-    };
+  hardware.opengl.enable = lib.mkDefault true;
+  fonts.enableDefaultPackages = lib.mkDefault true;
 
-    xdg.portal = {
-      enable = lib.mkDefault true;
+  programs = {
+    dconf.enable = lib.mkDefault true;
+    xwayland.enable = lib.mkDefault xwayland;
+  };
 
-      extraPortals = [
-        # For screen sharing
-        pkgs.xdg-desktop-portal-wlr
-      ];
-    };
+  xdg.portal.wlr.enable = lib.mkDefault true;
 }
diff --git a/nixos/modules/services/cluster/rke2/default.nix b/nixos/modules/services/cluster/rke2/default.nix
new file mode 100644
index 0000000000000..9ddbd299fdf8d
--- /dev/null
+++ b/nixos/modules/services/cluster/rke2/default.nix
@@ -0,0 +1,311 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+let
+  cfg = config.services.rke2;
+in
+{
+  imports = [ ];
+
+  options.services.rke2 = {
+    enable = mkEnableOption "rke2";
+
+    package = mkPackageOption pkgs "rke2" { };
+
+    role = mkOption {
+      type = types.enum [ "server" "agent" ];
+      description = ''
+        Whether rke2 should run as a server or agent.
+
+        If it's a server:
+
+        - By default it also runs workloads as an agent.
+        - any optionals is allowed.
+
+        If it's an agent:
+
+        - `serverAddr` is required.
+        - `token` or `tokenFile` is required.
+        - `agentToken` or `agentTokenFile` or `disable` or `cni` are not allowed.
+      '';
+      default = "server";
+    };
+
+    configPath = mkOption {
+      type = types.path;
+      description = "Load configuration from FILE.";
+      default = "/etc/rancher/rke2/config.yaml";
+    };
+
+    debug = mkOption {
+      type = types.bool;
+      description = "Turn on debug logs.";
+      default = false;
+    };
+
+    dataDir = mkOption {
+      type = types.path;
+      description = "The folder to hold state in.";
+      default = "/var/lib/rancher/rke2";
+    };
+
+    token = mkOption {
+      type = types.str;
+      description = ''
+        Shared secret used to join a server or agent to a cluster.
+
+        > WARNING: This option will expose store your token unencrypted world-readable in the nix store.
+        If this is undesired use the `tokenFile` option instead.
+      '';
+      default = "";
+    };
+
+    tokenFile = mkOption {
+      type = types.nullOr types.path;
+      description = "File path containing rke2 token to use when connecting to the server.";
+      default = null;
+    };
+
+    disable = mkOption {
+      type = types.listOf types.str;
+      description = "Do not deploy packaged components and delete any deployed components.";
+      default = [ ];
+    };
+
+    nodeName = mkOption {
+      type = types.nullOr types.str;
+      description = "Node name.";
+      default = null;
+    };
+
+    nodeLabel = mkOption {
+      type = types.listOf types.str;
+      description = "Registering and starting kubelet with set of labels.";
+      default = [ ];
+    };
+
+    nodeTaint = mkOption {
+      type = types.listOf types.str;
+      description = "Registering kubelet with set of taints.";
+      default = [ ];
+    };
+
+    nodeIP = mkOption {
+      type = types.nullOr types.str;
+      description = "IPv4/IPv6 addresses to advertise for node.";
+      default = null;
+    };
+
+    agentToken = mkOption {
+      type = types.str;
+      description = ''
+        Shared secret used to join agents to the cluster, but not servers.
+
+        > **WARNING**: This option will expose store your token unencrypted world-readable in the nix store.
+        If this is undesired use the `agentTokenFile` option instead.
+      '';
+      default = "";
+    };
+
+    agentTokenFile = mkOption {
+      type = types.nullOr types.path;
+      description = "File path containing rke2 agent token to use when connecting to the server.";
+      default = null;
+    };
+
+    serverAddr = mkOption {
+      type = types.str;
+      description = "The rke2 server to connect to, used to join a cluster.";
+      example = "https://10.0.0.10:6443";
+      default = "";
+    };
+
+    selinux = mkOption {
+      type = types.bool;
+      description = "Enable SELinux in containerd.";
+      default = false;
+    };
+
+    cni = mkOption {
+      type = types.enum [ "none" "canal" "cilium" "calico" "flannel" ];
+      description = ''
+        CNI Plugins to deploy, one of `none`, `calico`, `canal`, `cilium` or `flannel`.
+
+        All CNI plugins get installed via a helm chart after the main components are up and running
+        and can be [customized by modifying the helm chart options](https://docs.rke2.io/helm).
+
+        [Learn more about RKE2 and CNI plugins](https://docs.rke2.io/networking/basic_network_options)
+
+        > **WARNING**: Flannel support in RKE2 is currently experimental.
+      '';
+      default = "canal";
+    };
+
+    cisHardening = mkOption {
+      type = types.bool;
+      description = ''
+        Enable CIS Hardening for RKE2.
+
+        It will set the configurations and controls required to address Kubernetes benchmark controls
+        from the Center for Internet Security (CIS).
+
+        Learn more about [CIS Hardening for RKE2](https://docs.rke2.io/security/hardening_guide).
+
+        > **NOTICE**:
+        >
+        > You may need restart the `systemd-sysctl` muaually by:
+        >
+        > ```shell
+        > sudo systemctl restart systemd-sysctl
+        > ```
+      '';
+      default = false;
+    };
+
+    extraFlags = mkOption {
+      type = types.listOf types.str;
+      description = ''
+        Extra flags to pass to the rke2 service/agent.
+
+        Here you can find all the available flags:
+
+        - [Server Configuration Reference](https://docs.rke2.io/reference/server_config)
+        - [Agent Configuration Reference](https://docs.rke2.io/reference/linux_agent_config)
+      '';
+      example = [ "--disable-kube-proxy" "--cluster-cidr=10.24.0.0/16" ];
+      default = [ ];
+    };
+
+    environmentVars = mkOption {
+      type = types.attrsOf types.str;
+      description = ''
+        Environment variables for configuring the rke2 service/agent.
+
+        Here you can find all the available environment variables:
+
+        - [Server Configuration Reference](https://docs.rke2.io/reference/server_config)
+        - [Agent Configuration Reference](https://docs.rke2.io/reference/linux_agent_config)
+
+        Besides the options above, you can also active environment variables by edit/create those files:
+
+        - `/etc/default/rke2`
+        - `/etc/sysconfig/rke2`
+        - `/usr/local/lib/systemd/system/rke2.env`
+      '';
+      # See: https://github.com/rancher/rke2/blob/master/bundle/lib/systemd/system/rke2-server.env#L1
+      default = {
+        HOME = "/root";
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    assertions = [
+      {
+        assertion = cfg.role == "agent" -> (builtins.pathExists cfg.configPath || cfg.serverAddr != "");
+        message = "serverAddr or configPath (with 'server' key) should be set if role is 'agent'";
+      }
+      {
+        assertion = cfg.role == "agent" -> (builtins.pathExists cfg.configPath || cfg.tokenFile != null || cfg.token != "");
+        message = "token or tokenFile or configPath (with 'token' or 'token-file' keys) should be set if role is 'agent'";
+      }
+      {
+        assertion = cfg.role == "agent" -> ! (cfg.agentTokenFile != null || cfg.agentToken != "");
+        message = "agentToken or agentTokenFile should be set if role is 'agent'";
+      }
+      {
+        assertion = cfg.role == "agent" -> ! (cfg.disable != [ ]);
+        message = "disable should not be set if role is 'agent'";
+      }
+      {
+        assertion = cfg.role == "agent" -> ! (cfg.cni != "canal");
+        message = "cni should not be set if role is 'agent'";
+      }
+    ];
+
+    environment.systemPackages = [ config.services.rke2.package ];
+    # To configure NetworkManager to ignore calico/flannel related network interfaces.
+    # See: https://docs.rke2.io/known_issues#networkmanager
+    environment.etc."NetworkManager/conf.d/rke2-canal.conf" = {
+      enable = config.networking.networkmanager.enable;
+      text = ''
+        [keyfile]
+        unmanaged-devices=interface-name:cali*;interface-name:flannel*
+      '';
+    };
+    # See: https://docs.rke2.io/security/hardening_guide#set-kernel-parameters
+    boot.kernel.sysctl = mkIf cfg.cisHardening {
+      "vm.panic_on_oom" = 0;
+      "vm.overcommit_memory" = 1;
+      "kernel.panic" = 10;
+      "kernel.panic_on_oops" = 1;
+    };
+
+    systemd.services.rke2 = {
+      description = "Rancher Kubernetes Engine v2";
+      documentation = [ "https://github.com/rancher/rke2#readme" ];
+      after = [ "network-online.target" ];
+      wants = [ "network-online.target" ];
+      wantedBy = [ "multi-user.target" ];
+      serviceConfig = {
+        Type = if cfg.role == "agent" then "exec" else "notify";
+        EnvironmentFile = [
+          "-/etc/default/%N"
+          "-/etc/sysconfig/%N"
+          "-/usr/local/lib/systemd/system/%N.env"
+        ];
+        Environment = mapAttrsToList (k: v: "${k}=${v}") cfg.environmentVars;
+        KillMode = "process";
+        Delegate = "yes";
+        LimitNOFILE = 1048576;
+        LimitNPROC = "infinity";
+        LimitCORE = "infinity";
+        TasksMax = "infinity";
+        TimeoutStartSec = 0;
+        Restart = "always";
+        RestartSec = "5s";
+        ExecStartPre = [
+          # There is a conflict between RKE2 and `nm-cloud-setup.service`. This service add a routing table that
+          # interfere with the CNI plugin's configuration. This script checks if the service is enabled and if so,
+          # failed the RKE2 start.
+          # See: https://github.com/rancher/rke2/issues/1053
+          (pkgs.writeScript "check-nm-cloud-setup.sh" ''
+            #! ${pkgs.runtimeShell}
+            set -x
+            ! /run/current-system/systemd/bin/systemctl is-enabled --quiet nm-cloud-setup.service
+          '')
+          "-${pkgs.kmod}/bin/modprobe br_netfilter"
+          "-${pkgs.kmod}/bin/modprobe overlay"
+        ];
+        ExecStart = "${cfg.package}/bin/rke2 '${cfg.role}' ${escapeShellArgs (
+             (optional (cfg.configPath != "/etc/rancher/rke2/config.yaml") "--config=${cfg.configPath}")
+          ++ (optional cfg.debug "--debug")
+          ++ (optional (cfg.dataDir != "/var/lib/rancher/rke2") "--data-dir=${cfg.dataDir}")
+          ++ (optional (cfg.token != "") "--token=${cfg.token}")
+          ++ (optional (cfg.tokenFile != null) "--token-file=${cfg.tokenFile}")
+          ++ (optionals (cfg.role == "server" && cfg.disable != [ ]) (map (d: "--disable=${d}") cfg.disable))
+          ++ (optional (cfg.nodeName != null) "--node-name=${cfg.nodeName}")
+          ++ (optionals (cfg.nodeLabel != [ ]) (map (l: "--node-label=${l}") cfg.nodeLabel))
+          ++ (optionals (cfg.nodeTaint != [ ]) (map (t: "--node-taint=${t}") cfg.nodeTaint))
+          ++ (optional (cfg.nodeIP != null) "--node-ip=${cfg.nodeIP}")
+          ++ (optional (cfg.role == "server" && cfg.agentToken != "") "--agent-token=${cfg.agentToken}")
+          ++ (optional (cfg.role == "server" && cfg.agentTokenFile != null) "--agent-token-file=${cfg.agentTokenFile}")
+          ++ (optional (cfg.serverAddr != "") "--server=${cfg.serverAddr}")
+          ++ (optional cfg.selinux "--selinux")
+          ++ (optional (cfg.role == "server" && cfg.cni != "canal") "--cni=${cfg.cni}")
+          ++ (optional cfg.cisHardening "--profile=${if cfg.package.version >= "1.25" then "cis-1.23" else "cis-1.6"}")
+          ++ cfg.extraFlags
+        )}";
+        ExecStopPost = let
+          killProcess = pkgs.writeScript "kill-process.sh" ''
+            #! ${pkgs.runtimeShell}
+            /run/current-system/systemd/bin/systemd-cgls /system.slice/$1 | \
+            ${pkgs.gnugrep}/bin/grep -Eo '[0-9]+ (containerd|kubelet)' | \
+            ${pkgs.gawk}/bin/awk '{print $1}' | \
+            ${pkgs.findutils}/bin/xargs -r ${pkgs.util-linux}/bin/kill
+          '';
+        in "-${killProcess} %n";
+      };
+    };
+  };
+}
diff --git a/nixos/modules/services/desktop-managers/lomiri.nix b/nixos/modules/services/desktop-managers/lomiri.nix
index 06930b15a0084..214ec17e0dc43 100644
--- a/nixos/modules/services/desktop-managers/lomiri.nix
+++ b/nixos/modules/services/desktop-managers/lomiri.nix
@@ -34,7 +34,7 @@ in {
         morph-browser
         qtmir # not having its desktop file for Xwayland available causes any X11 application to crash the session
         suru-icon-theme
-        telephony-service
+        # telephony-service # currently broken: https://github.com/NixOS/nixpkgs/pull/314043
       ]);
     };
 
@@ -79,7 +79,7 @@ in {
       ] ++ lib.optionals (config.hardware.pulseaudio.enable || config.services.pipewire.pulse.enable) [
         ayatana-indicator-sound
       ]) ++ (with pkgs.lomiri; [
-        telephony-service
+        # telephony-service # currently broken: https://github.com/NixOS/nixpkgs/pull/314043
       ] ++ lib.optionals config.networking.networkmanager.enable [
         lomiri-indicator-network
       ]);
diff --git a/nixos/modules/services/hardware/nvidia-container-toolkit/default.nix b/nixos/modules/services/hardware/nvidia-container-toolkit/default.nix
index 6c6bc667e6498..bd12667a56474 100644
--- a/nixos/modules/services/hardware/nvidia-container-toolkit/default.nix
+++ b/nixos/modules/services/hardware/nvidia-container-toolkit/default.nix
@@ -69,14 +69,18 @@
     virtualisation.docker.daemon.settings = lib.mkIf
       (config.hardware.nvidia-container-toolkit.enable &&
        (lib.versionAtLeast config.virtualisation.docker.package.version "25")) {
-      features.cdi = true;
-    };
+         features.cdi = true;
+       };
 
     hardware.nvidia-container-toolkit.mounts = let
       nvidia-driver = config.hardware.nvidia.package;
     in (lib.mkMerge [
       [{ hostPath = pkgs.addDriverRunpath.driverLink;
          containerPath = pkgs.addDriverRunpath.driverLink; }
+       { hostPath = "${lib.getLib nvidia-driver}/etc";
+         containerPath = "${lib.getLib nvidia-driver}/etc"; }
+       { hostPath = "${lib.getLib nvidia-driver}/share";
+         containerPath = "${lib.getLib nvidia-driver}/share"; }
        { hostPath = "${lib.getLib pkgs.glibc}/lib";
          containerPath = "${lib.getLib pkgs.glibc}/lib"; }
        { hostPath = "${lib.getLib pkgs.glibc}/lib64";
diff --git a/nixos/modules/services/misc/devpi-server.nix b/nixos/modules/services/misc/devpi-server.nix
index 0234db4bc2c5b..92c0c6206c8b3 100644
--- a/nixos/modules/services/misc/devpi-server.nix
+++ b/nixos/modules/services/misc/devpi-server.nix
@@ -74,8 +74,9 @@ in
       # have 0600 permissions.
       preStart =
         ''
-          cp ${cfg.secretFile} ${runtimeDir}/${secretsFileName}
-          chmod 0600 ${runtimeDir}/*${secretsFileName}
+          ${optionalString (!isNull cfg.secretFile)
+            "install -Dm 0600 \${CREDENTIALS_DIRECTORY}/devpi-secret ${runtimeDir}/${secretsFileName}"
+          }
 
           if [ -f ${serverDir}/.nodeinfo ]; then
             # already initialized the package index, exit gracefully
@@ -85,6 +86,9 @@ in
         + strings.optionalString cfg.replica "--role=replica --master-url=${cfg.primaryUrl}";
 
       serviceConfig = {
+        LoadCredential = lib.mkIf (! isNull cfg.secretFile) [
+          "devpi-secret:${cfg.secretFile}"
+        ];
         Restart = "always";
         ExecStart =
           let
diff --git a/nixos/modules/services/misc/ollama.nix b/nixos/modules/services/misc/ollama.nix
index c0341984aa351..6f00dbfa75312 100644
--- a/nixos/modules/services/misc/ollama.nix
+++ b/nixos/modules/services/misc/ollama.nix
@@ -11,6 +11,11 @@ let
   };
 in
 {
+  imports = [
+    (lib.mkRemovedOptionModule [ "services" "ollama" "listenAddress" ]
+      "Use `services.ollama.host` and `services.ollama.port` instead.")
+  ];
+
   options = {
     services.ollama = {
       enable = lib.mkEnableOption "ollama server for local large language models";
@@ -64,12 +69,20 @@ in
           See also `services.ollama.sandbox`.
         '';
       };
-      listenAddress = lib.mkOption {
+      host = lib.mkOption {
         type = types.str;
-        default = "127.0.0.1:11434";
-        example = "0.0.0.0:11111";
+        default = "127.0.0.1";
+        example = "0.0.0.0";
+        description = ''
+          The host address which the ollama server HTTP interface listens to.
+        '';
+      };
+      port = lib.mkOption {
+        type = types.nullOr types.ints.u16;
+        default = 11434;
+        example = 11111;
         description = ''
-          The address which the ollama server HTTP interface binds and listens to.
+          Which port the ollama server listens to. Set to `null` to not specify a port.
         '';
       };
       acceleration = lib.mkOption {
@@ -80,9 +93,9 @@ in
           What interface to use for hardware acceleration.
 
           - `null`: default behavior
-            if `nixpkgs.config.rocmSupport` is enabled, uses `"rocm"`
-            if `nixpkgs.config.cudaSupport` is enabled, uses `"cuda"`
-            otherwise defaults to `false`
+            - if `nixpkgs.config.rocmSupport` is enabled, uses `"rocm"`
+            - if `nixpkgs.config.cudaSupport` is enabled, uses `"cuda"`
+            - otherwise defaults to `false`
           - `false`: disable GPU, only use CPU
           - `"rocm"`: supported by most modern AMD GPUs
           - `"cuda"`: supported by most modern NVIDIA GPUs
@@ -114,7 +127,11 @@ in
       environment = cfg.environmentVariables // {
         HOME = cfg.home;
         OLLAMA_MODELS = cfg.models;
-        OLLAMA_HOST = cfg.listenAddress;
+        OLLAMA_HOST =
+          if cfg.port == null then
+            cfg.host
+          else
+            "${cfg.host}:${toString cfg.port}";
       };
       serviceConfig = {
         ExecStart = "${lib.getExe ollamaPackage} serve";
diff --git a/nixos/modules/services/monitoring/grafana.nix b/nixos/modules/services/monitoring/grafana.nix
index 9d453c5394824..32919950adc1e 100644
--- a/nixos/modules/services/monitoring/grafana.nix
+++ b/nixos/modules/services/monitoring/grafana.nix
@@ -47,13 +47,6 @@ let
   datasourceFileOrDir = mkProvisionCfg "datasource" "datasources" cfg.provision.datasources;
   dashboardFileOrDir = mkProvisionCfg "dashboard" "providers" cfg.provision.dashboards;
 
-  notifierConfiguration = {
-    apiVersion = 1;
-    notifiers = cfg.provision.notifiers;
-  };
-
-  notifierFileOrDir = pkgs.writeText "notifier.yaml" (builtins.toJSON notifierConfiguration);
-
   generateAlertingProvisioningYaml = x:
     if (cfg.provision.alerting."${x}".path == null)
     then provisioningSettingsFormat.generate "${x}.yaml" cfg.provision.alerting."${x}".settings
@@ -74,10 +67,9 @@ let
     fi
   '';
   provisionConfDir = pkgs.runCommand "grafana-provisioning" { nativeBuildInputs = [ pkgs.xorg.lndir ]; } ''
-    mkdir -p $out/{alerting,datasources,dashboards,notifiers,plugins}
+    mkdir -p $out/{alerting,datasources,dashboards,plugins}
     ${ln { src = datasourceFileOrDir;    dir = "datasources"; filename = "datasource"; }}
     ${ln { src = dashboardFileOrDir;     dir = "dashboards";  filename = "dashboard"; }}
-    ${ln { src = notifierFileOrDir;      dir = "notifiers";   filename = "notifier"; }}
     ${ln { src = rulesFileOrDir;         dir = "alerting";    filename = "rules"; }}
     ${ln { src = contactPointsFileOrDir; dir = "alerting";    filename = "contactPoints"; }}
     ${ln { src = policiesFileOrDir;      dir = "alerting";    filename = "policies"; }}
@@ -161,73 +153,13 @@ let
       };
     };
   };
-
-  grafanaTypes.notifierConfig = types.submodule {
-    options = {
-      name = mkOption {
-        type = types.str;
-        default = "default";
-        description = "Notifier name.";
-      };
-      type = mkOption {
-        type = types.enum [ "dingding" "discord" "email" "googlechat" "hipchat" "kafka" "line" "teams" "opsgenie" "pagerduty" "prometheus-alertmanager" "pushover" "sensu" "sensugo" "slack" "telegram" "threema" "victorops" "webhook" ];
-        description = "Notifier type.";
-      };
-      uid = mkOption {
-        type = types.str;
-        description = "Unique notifier identifier.";
-      };
-      org_id = mkOption {
-        type = types.int;
-        default = 1;
-        description = "Organization ID.";
-      };
-      org_name = mkOption {
-        type = types.str;
-        default = "Main Org.";
-        description = "Organization name.";
-      };
-      is_default = mkOption {
-        type = types.bool;
-        description = "Is the default notifier.";
-        default = false;
-      };
-      send_reminder = mkOption {
-        type = types.bool;
-        default = true;
-        description = "Should the notifier be sent reminder notifications while alerts continue to fire.";
-      };
-      frequency = mkOption {
-        type = types.str;
-        default = "5m";
-        description = "How frequently should the notifier be sent reminders.";
-      };
-      disable_resolve_message = mkOption {
-        type = types.bool;
-        default = false;
-        description = "Turn off the message that sends when an alert returns to OK.";
-      };
-      settings = mkOption {
-        type = types.nullOr types.attrs;
-        default = null;
-        description = "Settings for the notifier type.";
-      };
-      secure_settings = mkOption {
-        type = types.nullOr types.attrs;
-        default = null;
-        description = ''
-          Secure settings for the notifier type. Please note that the contents of this option
-          will end up in a world-readable Nix store. Use the file provider
-          pointing at a reasonably secured file in the local filesystem
-          to work around that. Look at the documentation for details:
-          <https://grafana.com/docs/grafana/latest/setup-grafana/configure-grafana/#file-provider>
-        '';
-      };
-    };
-  };
 in
 {
   imports = [
+    (mkRemovedOptionModule [ "services" "grafana" "provision" "notifiers" ] ''
+      Notifiers (services.grafana.provision.notifiers) were removed in Grafana 11.
+    '')
+
     (mkRenamedOptionModule [ "services" "grafana" "protocol" ] [ "services" "grafana" "settings" "server" "protocol" ])
     (mkRenamedOptionModule [ "services" "grafana" "addr" ] [ "services" "grafana" "settings" "server" "http_addr" ])
     (mkRenamedOptionModule [ "services" "grafana" "port" ] [ "services" "grafana" "settings" "server" "http_port" ])
@@ -1256,15 +1188,6 @@ in
         };
       };
 
-
-      notifiers = mkOption {
-        description = "Grafana notifier configuration.";
-        default = [ ];
-        type = types.listOf grafanaTypes.notifierConfig;
-        apply = x: map _filter x;
-      };
-
-
       alerting = {
         rules = {
           path = mkOption {
@@ -1746,12 +1669,6 @@ in
             Use file provider or an env-var instead.
           '';
 
-        # Warn about deprecated notifiers.
-        deprecatedNotifiers = optional (cfg.provision.notifiers != [ ]) ''
-          Notifiers are deprecated upstream and will be removed in Grafana 11.
-          Use `services.grafana.provision.alerting.contactPoints` instead.
-        '';
-
         # Ensure that `secureJsonData` of datasources provisioned via `datasources.settings`
         # only uses file/env providers.
         secureJsonDataWithoutFileProvider = optional
@@ -1770,15 +1687,10 @@ in
             Declarations in the `secureJsonData`-block of a datasource will be leaked to the
             Nix store unless a file-provider or an env-var is used!
           '';
-
-        notifierSecureSettingsWithoutFileProvider = optional
-          (any (x: x.secure_settings != null) cfg.provision.notifiers)
-          "Notifier secure settings will be stored as plaintext in the Nix store! Use file provider instead.";
       in
       passwordWithoutFileProvider
-      ++ deprecatedNotifiers
       ++ secureJsonDataWithoutFileProvider
-      ++ notifierSecureSettingsWithoutFileProvider;
+      ;
 
     environment.systemPackages = [ cfg.package ];
 
diff --git a/nixos/modules/services/networking/ssh/sshd.nix b/nixos/modules/services/networking/ssh/sshd.nix
index 0fdb708bf052f..d877a80798cd8 100644
--- a/nixos/modules/services/networking/ssh/sshd.nix
+++ b/nixos/modules/services/networking/ssh/sshd.nix
@@ -5,11 +5,11 @@ with lib;
 let
 
   # The splicing information needed for nativeBuildInputs isn't available
-  # on the derivations likely to be used as `cfgc.package`.
+  # on the derivations likely to be used as `cfg.package`.
   # This middle-ground solution ensures *an* sshd can do their basic validation
   # on the configuration.
   validationPackage = if pkgs.stdenv.buildPlatform == pkgs.stdenv.hostPlatform
-    then cfgc.package
+    then cfg.package
     else pkgs.buildPackages.openssh;
 
   # dont use the "=" operator
@@ -169,6 +169,13 @@ in
         '';
       };
 
+      package = mkOption {
+        type = types.package;
+        default = config.programs.ssh.package;
+        defaultText = literalExpression "programs.ssh.package";
+        description = "OpenSSH package to use for sshd.";
+      };
+
       startWhenNeeded = mkOption {
         type = types.bool;
         default = false;
@@ -544,8 +551,8 @@ in
       };
     users.groups.sshd = {};
 
-    services.openssh.moduliFile = mkDefault "${cfgc.package}/etc/ssh/moduli";
-    services.openssh.sftpServerExecutable = mkDefault "${cfgc.package}/libexec/sftp-server";
+    services.openssh.moduliFile = mkDefault "${cfg.package}/etc/ssh/moduli";
+    services.openssh.sftpServerExecutable = mkDefault "${cfg.package}/libexec/sftp-server";
 
     environment.etc = authKeysFiles // authPrincipalsFiles //
       { "ssh/moduli".source = cfg.moduliFile;
@@ -559,7 +566,7 @@ in
             wantedBy = optional (!cfg.startWhenNeeded) "multi-user.target";
             after = [ "network.target" ];
             stopIfChanged = false;
-            path = [ cfgc.package pkgs.gawk ];
+            path = [ cfg.package pkgs.gawk ];
             environment.LD_LIBRARY_PATH = nssModulesPath;
 
             restartTriggers = optionals (!cfg.startWhenNeeded) [
@@ -593,7 +600,7 @@ in
             serviceConfig =
               { ExecStart =
                   (optionalString cfg.startWhenNeeded "-") +
-                  "${cfgc.package}/bin/sshd " + (optionalString cfg.startWhenNeeded "-i ") +
+                  "${cfg.package}/bin/sshd " + (optionalString cfg.startWhenNeeded "-i ") +
                   "-D " +  # don't detach into a daemon process
                   "-f /etc/ssh/sshd_config";
                 KillMode = "process";
diff --git a/nixos/modules/services/wayland/hypridle.nix b/nixos/modules/services/wayland/hypridle.nix
new file mode 100644
index 0000000000000..5442802df9871
--- /dev/null
+++ b/nixos/modules/services/wayland/hypridle.nix
@@ -0,0 +1,26 @@
+{ lib, pkgs, config, ... }:
+
+let
+  cfg = config.services.hypridle;
+in
+{
+  options.services.hypridle = {
+    enable = lib.mkEnableOption "hypridle, Hyprland's idle daemon";
+    package = lib.mkPackageOption pkgs "hypridle" { };
+  };
+
+  config = lib.mkIf cfg.enable {
+    environment.systemPackages = [
+      cfg.package
+    ];
+
+    systemd.user.services.hypridle = {
+      description = "Hypridle idle daemon";
+      wantedBy = [ "graphical-session.target" ];
+      partOf = [ "graphical-session.target" ];
+      script = lib.getExe cfg.package;
+    };
+  };
+
+  meta.maintainers = with lib.maintainers; [ johnrtitor ];
+}
diff --git a/nixos/modules/system/boot/systemd/sysusers.nix b/nixos/modules/system/boot/systemd/sysusers.nix
index de70009705973..476251e140456 100644
--- a/nixos/modules/system/boot/systemd/sysusers.nix
+++ b/nixos/modules/system/boot/systemd/sysusers.nix
@@ -12,7 +12,7 @@ let
     ${lib.concatLines (lib.mapAttrsToList
       (username: opts:
         let
-          uid = if opts.uid == null then "-" else toString opts.uid;
+          uid = if opts.uid == null then "/var/lib/nixos/uid/${username}" else toString opts.uid;
         in
           ''u ${username} ${uid}:${opts.group} "${opts.description}" ${opts.home} ${utils.toShellPath opts.shell}''
       )
@@ -21,7 +21,7 @@ let
 
     # Groups
     ${lib.concatLines (lib.mapAttrsToList
-      (groupname: opts: ''g ${groupname} ${if opts.gid == null then "-" else toString opts.gid}'') userCfg.groups)
+      (groupname: opts: ''g ${groupname} ${if opts.gid == null then "/var/lib/nixos/gid/${groupname}" else toString opts.gid}'') userCfg.groups)
     }
 
     # Group membership
@@ -106,6 +106,23 @@ in
             };
           })
           (lib.filterAttrs (_username: opts: opts.home != "/var/empty") userCfg.users);
+
+        # Create uid/gid marker files for those without an explicit id
+        tmpfiles.settings.nixos-uid = lib.mapAttrs'
+          (username: opts: lib.nameValuePair "/var/lib/nixos/uid/${username}" {
+            f = {
+              user = username;
+            };
+          })
+          (lib.filterAttrs (_username: opts: opts.uid == null) userCfg.users);
+
+        tmpfiles.settings.nixos-gid = lib.mapAttrs'
+          (groupname: opts: lib.nameValuePair "/var/lib/nixos/gid/${groupname}" {
+            f = {
+              group = groupname;
+            };
+          })
+          (lib.filterAttrs (_groupname: opts: opts.gid == null) userCfg.groups);
       })
 
       (lib.mkIf config.users.mutableUsers {
diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix
index 035c288c22e5c..a2408a43ecc92 100644
--- a/nixos/tests/all-tests.nix
+++ b/nixos/tests/all-tests.nix
@@ -800,6 +800,7 @@ in {
   restic-rest-server = handleTest ./restic-rest-server.nix {};
   restic = handleTest ./restic.nix {};
   retroarch = handleTest ./retroarch.nix {};
+  rke2 = handleTestOn ["aarch64-linux" "x86_64-linux"] ./rke2 {};
   rkvm = handleTest ./rkvm {};
   robustirc-bridge = handleTest ./robustirc-bridge.nix {};
   roundcube = handleTest ./roundcube.nix {};
diff --git a/nixos/tests/ayatana-indicators.nix b/nixos/tests/ayatana-indicators.nix
index cfd4d8099d112..ccb1e059a6973 100644
--- a/nixos/tests/ayatana-indicators.nix
+++ b/nixos/tests/ayatana-indicators.nix
@@ -35,7 +35,7 @@ in {
         ayatana-indicator-sound
       ] ++ (with pkgs.lomiri; [
         lomiri-indicator-network
-        telephony-service
+        # telephony-service # currently broken: https://github.com/NixOS/nixpkgs/pull/314043
       ]);
     };
 
diff --git a/nixos/tests/gnome-extensions.nix b/nixos/tests/gnome-extensions.nix
index 51ccabd7e6a65..332cf44b0ed4f 100644
--- a/nixos/tests/gnome-extensions.nix
+++ b/nixos/tests/gnome-extensions.nix
@@ -84,7 +84,6 @@ import ./make-test-python.nix (
       "dash-to-dock"
       "dash-to-panel"
       "ddterm"
-      "emoji-selector"
       "gsconnect"
       "system-monitor-next"
       "desktop-icons-ng-ding"
@@ -138,11 +137,11 @@ import ./make-test-python.nix (
             # Enable and optionally disable
 
             machine.succeed(f"${run "gnome-extensions enable {extension}"}")
-            checkState("ENABLED", extension)
+            checkState("ACTIVE", extension)
 
             if disable:
                 machine.succeed(f"${run "gnome-extensions disable {extension}"}")
-                checkState("DISABLED", extension)
+                checkState("INACTIVE", extension)
     ''
     + lib.concatLines (map (e: ''checkExtension("${e}", False)'') alwaysOnExtensions)
     + lib.concatLines (map (e: ''checkExtension("${e}", True)'') testExtensions)
diff --git a/nixos/tests/grafana/provision/default.nix b/nixos/tests/grafana/provision/default.nix
index d33d16ce12099..f9dd8b2961ac7 100644
--- a/nixos/tests/grafana/provision/default.nix
+++ b/nixos/tests/grafana/provision/default.nix
@@ -1,7 +1,7 @@
 import ../../make-test-python.nix ({ lib, pkgs, ... }:
 
 let
-  inherit (lib) mkMerge nameValuePair maintainers;
+  inherit (lib) mkMerge maintainers;
 
   baseGrafanaConf = {
     services.grafana = {
@@ -33,35 +33,6 @@ let
   };
 
   extraNodeConfs = {
-    provisionLegacyNotifiers = {
-      services.grafana.provision = {
-        datasources.settings = {
-          apiVersion = 1;
-          datasources = [{
-            name = "Test Datasource";
-            type = "testdata";
-            access = "proxy";
-            uid = "test_datasource";
-          }];
-        };
-        dashboards.settings = {
-          apiVersion = 1;
-          providers = [{
-            name = "default";
-            options.path = "/var/lib/grafana/dashboards";
-          }];
-        };
-        notifiers = [{
-          uid = "test_notifiers";
-          name = "Test Notifiers";
-          type = "email";
-          settings = {
-            singleEmail = true;
-            addresses = "test@test.com";
-          };
-        }];
-      };
-    };
     provisionNix = {
       services.grafana.provision = {
         datasources.settings = {
@@ -242,15 +213,5 @@ in {
             machine.succeed(
                 "curl -sSfN -u testadmin:snakeoilpwd http://127.0.0.1:3000/api/v1/provisioning/mute-timings | grep Test\ Mute\ Timing"
             )
-
-    with subtest("Successful notifiers provision"):
-        provisionLegacyNotifiers.wait_for_unit("grafana.service")
-        provisionLegacyNotifiers.wait_for_open_port(3000)
-        print(provisionLegacyNotifiers.succeed(
-            "curl -sSfN -u testadmin:snakeoilpwd http://127.0.0.1:3000/api/alert-notifications/uid/test_notifiers"
-        ))
-        provisionLegacyNotifiers.succeed(
-            "curl -sSfN -u testadmin:snakeoilpwd http://127.0.0.1:3000/api/alert-notifications/uid/test_notifiers | grep Test\ Notifiers"
-        )
   '';
 })
diff --git a/nixos/tests/ollama.nix b/nixos/tests/ollama.nix
index 4b21f445cdbd3..30e475553eb1a 100644
--- a/nixos/tests/ollama.nix
+++ b/nixos/tests/ollama.nix
@@ -1,10 +1,10 @@
 import ./make-test-python.nix ({ pkgs, lib, ... }:
 let
-  mainPort = "11434";
-  altPort = "11435";
+  mainPort = 11434;
+  altPort = 11435;
 
   curlRequest = port: request:
-    "curl http://127.0.0.1:${port}/api/generate -d '${builtins.toJSON request}'";
+    "curl http://127.0.0.1:${toString port}/api/generate -d '${builtins.toJSON request}'";
 
   prompt = {
     model = "tinydolphin";
@@ -38,7 +38,7 @@ in
 
     altAddress = { ... }: {
       services.ollama.enable = true;
-      services.ollama.listenAddress = "127.0.0.1:${altPort}";
+      services.ollama.port = altPort;
     };
   };
 
diff --git a/nixos/tests/openssh.nix b/nixos/tests/openssh.nix
index 140723a2df810..3929522a39e73 100644
--- a/nixos/tests/openssh.nix
+++ b/nixos/tests/openssh.nix
@@ -111,11 +111,11 @@ in {
     server-no-openssl =
       { ... }:
       {
-        programs.ssh.package = pkgs.opensshPackages.openssh.override {
-          linkOpenssl = false;
-        };
         services.openssh = {
           enable = true;
+          package = pkgs.opensshPackages.openssh.override {
+            linkOpenssl = false;
+          };
           hostKeys = [
             { type = "ed25519"; path = "/etc/ssh/ssh_host_ed25519_key"; }
           ];
@@ -136,11 +136,11 @@ in {
     server-no-pam =
       { pkgs, ... }:
       {
-        programs.ssh.package = pkgs.opensshPackages.openssh.override {
-          withPAM = false;
-        };
         services.openssh = {
           enable = true;
+          package = pkgs.opensshPackages.openssh.override {
+            withPAM = false;
+          };
           settings = {
             UsePAM = false;
           };
diff --git a/nixos/tests/rke2/default.nix b/nixos/tests/rke2/default.nix
new file mode 100644
index 0000000000000..e8a5f382b735f
--- /dev/null
+++ b/nixos/tests/rke2/default.nix
@@ -0,0 +1,13 @@
+{ system ? builtins.currentSystem
+, pkgs ? import ../../.. { inherit system; }
+, lib ? pkgs.lib
+}:
+let
+  allRKE2 = lib.filterAttrs (n: _: lib.strings.hasPrefix "rke2" n) pkgs;
+in
+{
+  # Run a single node rke2 cluster and verify a pod can run
+  singleNode = lib.mapAttrs (_: rke2: import ./single-node.nix { inherit system pkgs rke2; }) allRKE2;
+  # Run a multi-node rke2 cluster and verify pod networking works across nodes
+  multiNode = lib.mapAttrs (_: rke2: import ./multi-node.nix { inherit system pkgs rke2; }) allRKE2;
+}
diff --git a/nixos/tests/rke2/multi-node.nix b/nixos/tests/rke2/multi-node.nix
new file mode 100644
index 0000000000000..ddf0b60f6fba4
--- /dev/null
+++ b/nixos/tests/rke2/multi-node.nix
@@ -0,0 +1,176 @@
+import ../make-test-python.nix ({ pkgs, lib, rke2, ... }:
+  let
+    pauseImage = pkgs.dockerTools.streamLayeredImage {
+      name = "test.local/pause";
+      tag = "local";
+      contents = pkgs.buildEnv {
+        name = "rke2-pause-image-env";
+        paths = with pkgs; [ tini bashInteractive coreutils socat ];
+      };
+      config.Entrypoint = [ "/bin/tini" "--" "/bin/sleep" "inf" ];
+    };
+    # A daemonset that responds 'server' on port 8000
+    networkTestDaemonset = pkgs.writeText "test.yml" ''
+      apiVersion: apps/v1
+      kind: DaemonSet
+      metadata:
+        name: test
+        labels:
+          name: test
+      spec:
+        selector:
+          matchLabels:
+            name: test
+        template:
+          metadata:
+            labels:
+              name: test
+          spec:
+            containers:
+            - name: test
+              image: test.local/pause:local
+              imagePullPolicy: Never
+              resources:
+                limits:
+                  memory: 20Mi
+              command: ["socat", "TCP4-LISTEN:8000,fork", "EXEC:echo server"]
+    '';
+    tokenFile = pkgs.writeText "token" "p@s$w0rd";
+    agentTokenFile = pkgs.writeText "agent-token" "p@s$w0rd";
+  in
+  {
+    name = "${rke2.name}-multi-node";
+    meta.maintainers = rke2.meta.maintainers;
+
+    nodes = {
+      server1 = { pkgs, ... }: {
+        networking.firewall.enable = false;
+        networking.useDHCP = false;
+        networking.defaultGateway = "192.168.1.1";
+        networking.interfaces.eth1.ipv4.addresses = pkgs.lib.mkForce [
+          { address = "192.168.1.1"; prefixLength = 24; }
+        ];
+
+        virtualisation.memorySize = 1536;
+        virtualisation.diskSize = 4096;
+
+        services.rke2 = {
+          enable = true;
+          role = "server";
+          inherit tokenFile;
+          inherit agentTokenFile;
+          nodeName = "${rke2.name}-server1";
+          package = rke2;
+          nodeIP = "192.168.1.1";
+          disable = [
+            "rke2-coredns"
+            "rke2-metrics-server"
+            "rke2-ingress-nginx"
+          ];
+          extraFlags = [
+            "--cluster-reset"
+          ];
+        };
+      };
+
+      server2 = { pkgs, ... }: {
+        networking.firewall.enable = false;
+        networking.useDHCP = false;
+        networking.defaultGateway = "192.168.1.2";
+        networking.interfaces.eth1.ipv4.addresses = pkgs.lib.mkForce [
+          { address = "192.168.1.2"; prefixLength = 24; }
+        ];
+
+        virtualisation.memorySize = 1536;
+        virtualisation.diskSize = 4096;
+
+        services.rke2 = {
+          enable = true;
+          role = "server";
+          serverAddr = "https://192.168.1.1:6443";
+          inherit tokenFile;
+          inherit agentTokenFile;
+          nodeName = "${rke2.name}-server2";
+          package = rke2;
+          nodeIP = "192.168.1.2";
+          disable = [
+            "rke2-coredns"
+            "rke2-metrics-server"
+            "rke2-ingress-nginx"
+          ];
+        };
+      };
+
+      agent1 = { pkgs, ... }: {
+        networking.firewall.enable = false;
+        networking.useDHCP = false;
+        networking.defaultGateway = "192.168.1.3";
+        networking.interfaces.eth1.ipv4.addresses = pkgs.lib.mkForce [
+          { address = "192.168.1.3"; prefixLength = 24; }
+        ];
+
+        virtualisation.memorySize = 1536;
+        virtualisation.diskSize = 4096;
+
+        services.rke2 = {
+          enable = true;
+          role = "agent";
+          tokenFile = agentTokenFile;
+          serverAddr = "https://192.168.1.2:6443";
+          nodeName = "${rke2.name}-agent1";
+          package = rke2;
+          nodeIP = "192.168.1.3";
+        };
+      };
+    };
+
+    testScript = let
+      kubectl = "${pkgs.kubectl}/bin/kubectl --kubeconfig=/etc/rancher/rke2/rke2.yaml";
+      ctr = "${pkgs.containerd}/bin/ctr -a /run/k3s/containerd/containerd.sock";
+      jq = "${pkgs.jq}/bin/jq";
+      ping = "${pkgs.iputils}/bin/ping";
+    in ''
+      machines = [server1, server2, agent1]
+
+      for machine in machines:
+          machine.start()
+          machine.wait_for_unit("rke2")
+
+      # wait for the agent to show up
+      server1.succeed("${kubectl} get node ${rke2.name}-agent1")
+
+      for machine in machines:
+          machine.succeed("${pauseImage} | ${ctr} image import -")
+
+      server1.succeed("${kubectl} cluster-info")
+      server1.wait_until_succeeds("${kubectl} get serviceaccount default")
+
+      # Now create a pod on each node via a daemonset and verify they can talk to each other.
+      server1.succeed("${kubectl} apply -f ${networkTestDaemonset}")
+      server1.wait_until_succeeds(
+          f'[ "$(${kubectl} get ds test -o json | ${jq} .status.numberReady)" -eq {len(machines)} ]'
+      )
+
+      # Get pod IPs
+      pods = server1.succeed("${kubectl} get po -o json | ${jq} '.items[].metadata.name' -r").splitlines()
+      pod_ips = [
+          server1.succeed(f"${kubectl} get po {n} -o json | ${jq} '.status.podIP' -cr").strip() for n in pods
+      ]
+
+      # Verify each server can ping each pod ip
+      for pod_ip in pod_ips:
+          server1.succeed(f"${ping} -c 1 {pod_ip}")
+          agent1.succeed(f"${ping} -c 1 {pod_ip}")
+
+      # Verify the pods can talk to each other
+      resp = server1.wait_until_succeeds(f"${kubectl} exec {pods[0]} -- socat TCP:{pod_ips[1]}:8000 -")
+      assert resp.strip() == "server"
+      resp = server1.wait_until_succeeds(f"${kubectl} exec {pods[1]} -- socat TCP:{pod_ips[0]}:8000 -")
+      assert resp.strip() == "server"
+
+      # Cleanup
+      server1.succeed("${kubectl} delete -f ${networkTestDaemonset}")
+      for machine in machines:
+          machine.shutdown()
+    '';
+  })
diff --git a/nixos/tests/rke2/single-node.nix b/nixos/tests/rke2/single-node.nix
new file mode 100644
index 0000000000000..5a512eacca0f1
--- /dev/null
+++ b/nixos/tests/rke2/single-node.nix
@@ -0,0 +1,75 @@
+import ../make-test-python.nix ({ pkgs, lib, rke2, ... }:
+  let
+    pauseImage = pkgs.dockerTools.streamLayeredImage {
+      name = "test.local/pause";
+      tag = "local";
+      contents = pkgs.buildEnv {
+        name = "rke2-pause-image-env";
+        paths = with pkgs; [ tini (hiPrio coreutils) busybox ];
+      };
+      config.Entrypoint = [ "/bin/tini" "--" "/bin/sleep" "inf" ];
+    };
+    testPodYaml = pkgs.writeText "test.yaml" ''
+      apiVersion: v1
+      kind: Pod
+      metadata:
+        name: test
+      spec:
+        containers:
+        - name: test
+          image: test.local/pause:local
+          imagePullPolicy: Never
+          command: ["sh", "-c", "sleep inf"]
+    '';
+  in
+  {
+    name = "${rke2.name}-single-node";
+    meta.maintainers = rke2.meta.maintainers;
+
+    nodes.machine = { pkgs, ... }: {
+      networking.firewall.enable = false;
+      networking.useDHCP = false;
+      networking.defaultGateway = "192.168.1.1";
+      networking.interfaces.eth1.ipv4.addresses = pkgs.lib.mkForce [
+        { address = "192.168.1.1"; prefixLength = 24; }
+      ];
+
+      virtualisation.memorySize = 1536;
+      virtualisation.diskSize = 4096;
+
+      services.rke2 = {
+        enable = true;
+        role = "server";
+        package = rke2;
+        nodeIP = "192.168.1.1";
+        disable = [
+          "rke2-coredns"
+          "rke2-metrics-server"
+          "rke2-ingress-nginx"
+        ];
+        extraFlags = [
+          "--cluster-reset"
+        ];
+      };
+    };
+
+    testScript = let
+      kubectl = "${pkgs.kubectl}/bin/kubectl --kubeconfig=/etc/rancher/rke2/rke2.yaml";
+      ctr = "${pkgs.containerd}/bin/ctr -a /run/k3s/containerd/containerd.sock";
+    in ''
+      start_all()
+
+      machine.wait_for_unit("rke2")
+      machine.succeed("${kubectl} cluster-info")
+      machine.wait_until_succeeds(
+        "${pauseImage} | ${ctr} -n k8s.io image import -"
+      )
+
+      machine.wait_until_succeeds("${kubectl} get serviceaccount default")
+      machine.succeed("${kubectl} apply -f ${testPodYaml}")
+      machine.succeed("${kubectl} wait --for 'condition=Ready' pod/test")
+      machine.succeed("${kubectl} delete -f ${testPodYaml}")
+
+      machine.shutdown()
+    '';
+  })
diff --git a/nixos/tests/teleport.nix b/nixos/tests/teleport.nix
index 2fb347155759a..3621cce0599e1 100644
--- a/nixos/tests/teleport.nix
+++ b/nixos/tests/teleport.nix
@@ -9,7 +9,6 @@ with import ../lib/testing-python.nix { inherit system pkgs; };
 let
   packages = with pkgs; {
     "default" = teleport;
-    "13" = teleport_13;
     "14" = teleport_14;
   };
 
diff --git a/pkgs/applications/audio/ledfx/default.nix b/pkgs/applications/audio/ledfx/default.nix
index bcbe1bc397d3e..f45c7dc3af558 100644
--- a/pkgs/applications/audio/ledfx/default.nix
+++ b/pkgs/applications/audio/ledfx/default.nix
@@ -6,12 +6,12 @@
 
 python3.pkgs.buildPythonPackage rec {
   pname = "ledfx";
-  version = "2.0.96";
+  version = "2.0.99";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-nvPHAnoD5j1rneeuMufQkXj8YWXau2zJYug+Avpe87I=";
+    hash = "sha256-pwrAVcIwZ3RDYFMDk80q5aVSqLTQ5weZqgB3GRRu2ig=";
   };
 
   pythonRelaxDeps = true;
@@ -58,6 +58,7 @@ python3.pkgs.buildPythonPackage rec {
     sounddevice
     stupidartnet
     uvloop
+    vnoise
     voluptuous
     zeroconf
   ];
@@ -71,5 +72,6 @@ python3.pkgs.buildPythonPackage rec {
     changelog = "https://github.com/LedFx/LedFx/blob/${version}/CHANGELOG.rst";
     license = licenses.gpl3Only;
     maintainers = teams.c3d2.members;
+    mainProgram = "ledfx";
   };
 }
diff --git a/pkgs/applications/audio/mixxx/default.nix b/pkgs/applications/audio/mixxx/default.nix
index 0ebc6c604bdc9..0f65d5cea8c7c 100644
--- a/pkgs/applications/audio/mixxx/default.nix
+++ b/pkgs/applications/audio/mixxx/default.nix
@@ -57,13 +57,13 @@
 
 mkDerivation rec {
   pname = "mixxx";
-  version = "2.4.0";
+  version = "2.4.1";
 
   src = fetchFromGitHub {
     owner = "mixxxdj";
     repo = "mixxx";
     rev = version;
-    hash = "sha256-JSWUzerm7D6AKq6g/9eRrt3EE2movRdM+VLUg07sLHo=";
+    hash = "sha256-BOdXgA+z3sFE4ngAEhSbp1gDbsti1STJY2Yy6Hp+zTE=";
   };
 
   nativeBuildInputs = [ cmake pkg-config wrapGAppsHook3 ];
@@ -147,7 +147,7 @@ mkDerivation rec {
     description = "Digital DJ mixing software";
     mainProgram = "mixxx";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ goibhniu bfortz ];
+    maintainers = with maintainers; [ goibhniu bfortz benley ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/audio/pyradio/default.nix b/pkgs/applications/audio/pyradio/default.nix
index 45cec01bd6985..7f6d3c87e5ba6 100644
--- a/pkgs/applications/audio/pyradio/default.nix
+++ b/pkgs/applications/audio/pyradio/default.nix
@@ -6,13 +6,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "pyradio";
-  version = "0.9.3.6";
+  version = "0.9.3.7";
 
   src = fetchFromGitHub {
     owner = "coderholic";
     repo = "pyradio";
     rev = "refs/tags/${version}";
-    hash = "sha256-As4xjwJtEKlnFuBigC7nN0kAPe0+99rE9KZ0F6i7qIQ=";
+    hash = "sha256-NwDVytD6nIM++ixGmLh02FIE+hLKHBwwD3aEAXVZn7I=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/audio/tidal-hifi/default.nix b/pkgs/applications/audio/tidal-hifi/default.nix
index 744508f404d9b..85cf351904919 100644
--- a/pkgs/applications/audio/tidal-hifi/default.nix
+++ b/pkgs/applications/audio/tidal-hifi/default.nix
@@ -36,11 +36,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "tidal-hifi";
-  version = "5.12.0";
+  version = "5.13.0";
 
   src = fetchurl {
     url = "https://github.com/Mastermindzh/tidal-hifi/releases/download/${finalAttrs.version}/tidal-hifi_${finalAttrs.version}_amd64.deb";
-    sha256 = "sha256-DwUKoDaXA99ILxlyay5dRL/ewnzyqSSR6fxPxkr8X34=";
+    sha256 = "sha256-d7JAvpZKdhG9BzCdfwyPlmXcqE49heVLskusaB0uOhg=";
   };
 
   nativeBuildInputs = [ autoPatchelfHook dpkg makeWrapper ];
diff --git a/pkgs/applications/audio/waylyrics/default.nix b/pkgs/applications/audio/waylyrics/default.nix
index a7be3babf5626..5d209e5a61ef0 100644
--- a/pkgs/applications/audio/waylyrics/default.nix
+++ b/pkgs/applications/audio/waylyrics/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "waylyrics";
-  version = "0.3.8";
+  version = "0.3.9";
 
   src = fetchFromGitHub {
     owner = "waylyrics";
     repo = "waylyrics";
     rev = "v${version}";
-    hash = "sha256-ZOz8LkMznSX/7nSu7IpZ8kVemo2AuRLOgrS3WWg+BXU=";
+    hash = "sha256-RLqBjN5haZKjbTK8U2Y62IY+D9lR3NaHK3erAcauhzE=";
   };
 
-  cargoHash = "sha256-mURcz3i98qlsn/rzZjeJncyVX5xsuqWY2/PcNA6WAWQ=";
+  cargoHash = "sha256-yEoYPG362rloCXVO23/qR8vbmxHv2hot3AhYgJknrOY=";
 
   nativeBuildInputs = [ pkg-config wrapGAppsHook4 ];
   buildInputs = [ openssl dbus ];
diff --git a/pkgs/applications/blockchains/besu/default.nix b/pkgs/applications/blockchains/besu/default.nix
index f599c44b5a62a..d897cb0fe716a 100644
--- a/pkgs/applications/blockchains/besu/default.nix
+++ b/pkgs/applications/blockchains/besu/default.nix
@@ -1,6 +1,6 @@
-{ lib, stdenv, fetchurl, makeWrapper, jre }:
+{ lib, stdenv, fetchurl, makeWrapper, jemalloc, jre, runCommand, testers }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: rec {
   pname = "besu";
   version = "24.1.2";
 
@@ -9,6 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-CC24z0+2dSeqDddX5dJUs7SX9QJ8Iyh/nAp0pqdDvwg=";
   };
 
+  buildInputs = lib.optionals stdenv.isLinux [ jemalloc ];
   nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
@@ -16,9 +17,27 @@ stdenv.mkDerivation rec {
     cp -r bin $out/
     mkdir -p $out/lib
     cp -r lib $out/
-    wrapProgram $out/bin/${pname} --set JAVA_HOME "${jre}"
+    wrapProgram $out/bin/${pname} \
+      --set JAVA_HOME "${jre}" \
+      --suffix ${if stdenv.isDarwin then "DYLD_LIBRARY_PATH" else "LD_LIBRARY_PATH"} : ${lib.makeLibraryPath buildInputs}
   '';
 
+  passthru.tests = {
+    version = testers.testVersion {
+      package = finalAttrs.finalPackage;
+      version = "v${version}";
+    };
+    jemalloc = runCommand "${pname}-test-jemalloc"
+      {
+        nativeBuildInputs = [ finalAttrs.finalPackage ];
+        meta.platforms = with lib.platforms; linux;
+      } ''
+      # Expect to find this string in the output, ignore other failures.
+      (besu 2>&1 || true) | grep -q "# jemalloc: ${jemalloc.version}"
+      mkdir $out
+    '';
+  };
+
   meta = with lib; {
     description = "An enterprise-grade Java-based, Apache 2.0 licensed Ethereum client";
     homepage = "https://www.hyperledger.org/projects/besu";
@@ -27,4 +46,4 @@ stdenv.mkDerivation rec {
     platforms = platforms.all;
     maintainers = with maintainers; [ mmahut ];
   };
-}
+})
diff --git a/pkgs/applications/editors/gnome-builder/default.nix b/pkgs/applications/editors/gnome-builder/default.nix
index f0e7b272f8a73..f2d138489224b 100644
--- a/pkgs/applications/editors/gnome-builder/default.nix
+++ b/pkgs/applications/editors/gnome-builder/default.nix
@@ -40,15 +40,15 @@
 , xvfb-run
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "gnome-builder";
-  version = "46.1";
+  version = "46.2";
 
   outputs = [ "out" "devdoc" ];
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    hash = "sha256-lhaWbVIqLIUCizPAm605cudp6fkK91VNXnGDfb3HiHE=";
+    url = "mirror://gnome/sources/gnome-builder/${lib.versions.major finalAttrs.version}/gnome-builder-${finalAttrs.version}.tar.xz";
+    hash = "sha256-DIV7iQA7JHh/Kx0qrhLSdaB0xmhLSIA7SMACdtk3GWM=";
   };
 
   patches = [
@@ -154,7 +154,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru.updateScript = gnome.updateScript {
-    packageName = pname;
+    packageName = "gnome-builder";
   };
 
   meta = with lib; {
@@ -175,4 +175,4 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     mainProgram = "gnome-builder";
   };
-}
+})
diff --git a/pkgs/applications/editors/vim/plugins/deprecated.json b/pkgs/applications/editors/vim/plugins/deprecated.json
index cac73390ae166..afe840b06b5eb 100644
--- a/pkgs/applications/editors/vim/plugins/deprecated.json
+++ b/pkgs/applications/editors/vim/plugins/deprecated.json
@@ -8,11 +8,11 @@
         "new": "cmp-tmux"
     },
     "fern-vim": {
-        "date": "2024-05-25",
+        "date": "2024-05-27",
         "new": "vim-fern"
     },
     "gina-vim": {
-        "date": "2024-05-25",
+        "date": "2024-05-27",
         "new": "vim-gina"
     },
     "gist-vim": {
@@ -60,7 +60,7 @@
         "new": "vim-suda"
     },
     "vim-fsharp": {
-        "date": "2024-05-25",
+        "date": "2024-05-27",
         "new": "zarchive-vim-fsharp"
     },
     "vim-jade": {
diff --git a/pkgs/applications/editors/vim/plugins/generated.nix b/pkgs/applications/editors/vim/plugins/generated.nix
index 2ee527ffef923..5bc0633addd43 100644
--- a/pkgs/applications/editors/vim/plugins/generated.nix
+++ b/pkgs/applications/editors/vim/plugins/generated.nix
@@ -185,24 +185,24 @@ final: prev:
 
   LazyVim = buildVimPlugin {
     pname = "LazyVim";
-    version = "2024-05-23";
+    version = "2024-05-27";
     src = fetchFromGitHub {
       owner = "LazyVim";
       repo = "LazyVim";
-      rev = "0f6ff53ce336082869314db11e9dfa487cf83292";
-      sha256 = "104yrrgc0x3bgaynr5207l1f0kjsf34fmhwqwbmzyjphpjgykk1c";
+      rev = "91fe7ef56815263b6a0f4a5c23c4bd1134c77849";
+      sha256 = "1pwghqdj95yfyqs9bry3hyk44vh6jc8jvzm6nq6aayzrriav11ds";
     };
     meta.homepage = "https://github.com/LazyVim/LazyVim/";
   };
 
   LeaderF = buildVimPlugin {
     pname = "LeaderF";
-    version = "2024-05-24";
+    version = "2024-05-27";
     src = fetchFromGitHub {
       owner = "Yggdroot";
       repo = "LeaderF";
-      rev = "7c60ba4c6f6803ade667f4b463dcdb1d169c7c54";
-      sha256 = "177iyc4m80i0c540rvsa36654whwpjlbirhdg4yih5sjgsfxf4qv";
+      rev = "a7270479cf65e76a1c400a6d4fe51bea8f14fbe1";
+      sha256 = "1ig2pvzwiadbhpx344vh8945yrlr8dwg0v0aibc02q6g07rqysnr";
     };
     meta.homepage = "https://github.com/Yggdroot/LeaderF/";
   };
@@ -317,12 +317,12 @@ final: prev:
 
   SchemaStore-nvim = buildVimPlugin {
     pname = "SchemaStore.nvim";
-    version = "2024-05-22";
+    version = "2024-05-27";
     src = fetchFromGitHub {
       owner = "b0o";
       repo = "SchemaStore.nvim";
-      rev = "9a5992a881583d886bfbb46631a09f736f0fae50";
-      sha256 = "0b3plas4wxfq0a4dv1kgwh58yki3xixwfhpggvz5a713ypriy91k";
+      rev = "931f9f3b7b60ec976159cb01b4a40da3829ac2fd";
+      sha256 = "10qzfz0r72sp26fa9kvfa2qvswkkdl0q891gp648zjsqrz4gmykq";
     };
     meta.homepage = "https://github.com/b0o/SchemaStore.nvim/";
   };
@@ -1543,12 +1543,12 @@ final: prev:
 
   cmake-tools-nvim = buildVimPlugin {
     pname = "cmake-tools.nvim";
-    version = "2024-05-20";
+    version = "2024-05-27";
     src = fetchFromGitHub {
       owner = "Civitasv";
       repo = "cmake-tools.nvim";
-      rev = "d84e9ec2b71f18a39e8d8c4301796c77d64b80ef";
-      sha256 = "0qjpjxjj7y6x27lfbk1rylf20xyfy39waxr7qp689fisw4ppva6l";
+      rev = "131540d8015a63511904570e7205eefa49aa74a7";
+      sha256 = "0mzdd2kl5lgsb6dip85988ncp2pqdfl1jqixgakvf2vqgb11xijn";
     };
     meta.homepage = "https://github.com/Civitasv/cmake-tools.nvim/";
   };
@@ -1567,14 +1567,13 @@ final: prev:
 
   cmp-async-path = buildVimPlugin {
     pname = "cmp-async-path";
-    version = "2024-02-02";
-    src = fetchFromGitHub {
-      owner = "FelipeLema";
-      repo = "cmp-async-path";
-      rev = "9d581eec5acf812316913565c135b0d1ee2c9a71";
-      sha256 = "0dv00zsgyjqk98cnxkmc4hjqgsm5mhjg4q2j7xkwz17kq59fiv26";
+    version = "2024-03-25";
+    src = fetchgit {
+      url = "https://codeberg.org/FelipeLema/cmp-async-path/";
+      rev = "7df7f3721c45aac26b6e0474087538f4681c9c7a";
+      sha256 = "15k6q1hfv9bggzz8vh9pd5mz9vay2cr6xp7bb4iqhahsgyr9c99d";
     };
-    meta.homepage = "https://github.com/FelipeLema/cmp-async-path/";
+    meta.homepage = "https://codeberg.org/FelipeLema/cmp-async-path/";
   };
 
   cmp-beancount = buildVimPlugin {
@@ -1903,12 +1902,12 @@ final: prev:
 
   cmp-nvim-ultisnips = buildVimPlugin {
     pname = "cmp-nvim-ultisnips";
-    version = "2023-07-05";
+    version = "2024-05-27";
     src = fetchFromGitHub {
       owner = "quangnguyen30192";
       repo = "cmp-nvim-ultisnips";
-      rev = "24bca5c3e137b28cd87442d4fc51a2b312dd99cc";
-      sha256 = "0frkj8xv1jm96klsff4x2hbqbbyxbfz9iaxq3wx1bldhdb71r88r";
+      rev = "baac332791a2910190b5c6eec3b79b72c53227d9";
+      sha256 = "05v7a91gv3p115sv3wzlia9f48g8wpnqda66m0rsg8qdl3shjznh";
     };
     meta.homepage = "https://github.com/quangnguyen30192/cmp-nvim-ultisnips/";
   };
@@ -2443,12 +2442,12 @@ final: prev:
 
   compiler-nvim = buildVimPlugin {
     pname = "compiler.nvim";
-    version = "2024-05-24";
+    version = "2024-05-27";
     src = fetchFromGitHub {
       owner = "Zeioth";
       repo = "compiler.nvim";
-      rev = "8e4ec33a140afb7746be96630a991d7dd777d9cc";
-      sha256 = "100mya60dj15d4fw5zcxibmnwyd4x6ns648fw8bybych7znlvfqr";
+      rev = "1cf17971b21415d634fe4c8af791f0b1b4d3a727";
+      sha256 = "0rzm7pvgdsfbxxhz8n78xv8ys3l51fb8szxyfmgbbpqpp84jj77d";
     };
     meta.homepage = "https://github.com/Zeioth/compiler.nvim/";
   };
@@ -2648,12 +2647,12 @@ final: prev:
 
   coq_nvim = buildVimPlugin {
     pname = "coq_nvim";
-    version = "2024-05-24";
+    version = "2024-05-27";
     src = fetchFromGitHub {
       owner = "ms-jpq";
       repo = "coq_nvim";
-      rev = "251ea08a3f6e0267d45a420bd90f7a6d24548c8b";
-      sha256 = "05bjiml624pbfl2gcmiqgl8aa033fmzkhj467ghbs7blqa4c80vc";
+      rev = "055d7aa94d14eabf16656e6d9e433ad81bc96b94";
+      sha256 = "08kqb3kljrmjl3lhma6xg7a2mr5hg64wi87a3phrpfg448aa2rhn";
     };
     meta.homepage = "https://github.com/ms-jpq/coq_nvim/";
   };
@@ -2792,12 +2791,12 @@ final: prev:
 
   cyberdream-nvim = buildVimPlugin {
     pname = "cyberdream.nvim";
-    version = "2024-05-24";
+    version = "2024-05-25";
     src = fetchFromGitHub {
       owner = "scottmckendry";
       repo = "cyberdream.nvim";
-      rev = "0c1706f09788e8c2dd36dd33dd60474c672dde51";
-      sha256 = "13msyqvz3c1jjq301ggaklmyyk8z9k525plxix1v3d7nws7gvjcd";
+      rev = "9eb7c63091d7369eba9015e9c656ca644ba6a3a4";
+      sha256 = "1mwx1ag0na59isqz2x18nf8d49w3g2zhrx9gxw7hkym0gagwfln9";
     };
     meta.homepage = "https://github.com/scottmckendry/cyberdream.nvim/";
   };
@@ -3346,12 +3345,12 @@ final: prev:
 
   dropbar-nvim = buildVimPlugin {
     pname = "dropbar.nvim";
-    version = "2024-05-16";
+    version = "2024-05-25";
     src = fetchFromGitHub {
       owner = "Bekaboo";
       repo = "dropbar.nvim";
-      rev = "9fc10fa1a34ec3e55b470962e4e94644611bd209";
-      sha256 = "135qc6ix0kav0knq4y5843525z5kh1rs2d56k71rk9986kb4vlk1";
+      rev = "2b546383bdf4daa254ac70c760ee1e5524bc60b1";
+      sha256 = "0x52s0s0skqim321frhi9kd9h0d391fngmrc25bgn47s4wkfkp38";
     };
     meta.homepage = "https://github.com/Bekaboo/dropbar.nvim/";
   };
@@ -3516,12 +3515,12 @@ final: prev:
 
   eva01-vim = buildVimPlugin {
     pname = "eva01.vim";
-    version = "2024-05-20";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "hachy";
       repo = "eva01.vim";
-      rev = "e4fbc4712121a606d54c8f613a4147f38d187b33";
-      sha256 = "132a91lwryqzw277l01d04aqc87ckyxwqzkjnzmdqg8dlh8br8j9";
+      rev = "54412cbd92e74f43f4fc4479d12726f09723ce55";
+      sha256 = "1gimw4sjnkkr9lw6951fx0ksaii64jc3mfc071dzj0ildrn323w8";
     };
     meta.homepage = "https://github.com/hachy/eva01.vim/";
   };
@@ -3700,8 +3699,8 @@ final: prev:
     src = fetchFromGitHub {
       owner = "glacambre";
       repo = "firenvim";
-      rev = "c1cb477b2d9b36bbcfb0e5e8c62393dcdc27f5fe";
-      sha256 = "0ybhg1k1m01lgxr280jq90x3xv8d69zq0iylz3bmx79w56baiw3c";
+      rev = "cf4ff99033640b5ec33890bcdc892ddc436ed8e5";
+      sha256 = "0gg6jj94bb7inq9hkqd49kbzv0aakd4qb5qyvnbfch4jzjg4d2v6";
     };
     meta.homepage = "https://github.com/glacambre/firenvim/";
   };
@@ -3973,24 +3972,24 @@ final: prev:
 
   fzf-lua = buildNeovimPlugin {
     pname = "fzf-lua";
-    version = "2024-05-24";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "ibhagwan";
       repo = "fzf-lua";
-      rev = "0c4458b0f0d12970e54c8cd7c5ad60676edcf764";
-      sha256 = "00mc5n9szvbs8lg8cgikxhb7hijgpvgvd312ni0zgypfwhbvp0aj";
+      rev = "b92220ec838c195eb1c711daa69c905b1d7b8d8c";
+      sha256 = "0hsppxwwm6zzsh414pwdc0xcrgz8cz8xb2ya9z1b0g8dlcwkkjsj";
     };
     meta.homepage = "https://github.com/ibhagwan/fzf-lua/";
   };
 
   fzf-vim = buildVimPlugin {
     pname = "fzf.vim";
-    version = "2024-05-25";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "junegunn";
       repo = "fzf.vim";
-      rev = "42507c3bea0513010c686aff81f3152fb0cf7e95";
-      sha256 = "15jdh7wg53c984zw836qfmfqd3sxksi97x1kbhx3c9f977lb85cc";
+      rev = "0a80e43f9027ec64213d602dbb0b22d65a072ca8";
+      sha256 = "1bir6rwdfmz55npf79m2ipfsznzkx075sns7kdqlbq9z8r2swldb";
     };
     meta.homepage = "https://github.com/junegunn/fzf.vim/";
   };
@@ -4081,12 +4080,12 @@ final: prev:
 
   git-conflict-nvim = buildVimPlugin {
     pname = "git-conflict.nvim";
-    version = "2024-05-25";
+    version = "2024-05-27";
     src = fetchFromGitHub {
       owner = "akinsho";
       repo = "git-conflict.nvim";
-      rev = "7590af1754263ab32966b12e93f41d7807074c73";
-      sha256 = "11ibyp2q7w6mz3wz9929shgia0a1kzkh4x6zi0iyh3c7dwxmjn5y";
+      rev = "5a8b94276bbd9c18ecb0763061b101217cecba9d";
+      sha256 = "0ga7xf7mv9sf297y2lpnd2nf15wrmh6j08hk1f7qrvnr4i4d181h";
     };
     meta.homepage = "https://github.com/akinsho/git-conflict.nvim/";
   };
@@ -4489,11 +4488,11 @@ final: prev:
 
   hare-vim = buildVimPlugin {
     pname = "hare.vim";
-    version = "2024-05-23";
+    version = "2024-05-24";
     src = fetchgit {
       url = "https://git.sr.ht/~sircmpwn/hare.vim";
-      rev = "ae3458ae1b3b8a867adfac4208c6b057a02752b1";
-      sha256 = "1pbkkc7711qfir9vmgs21xsd97fayd3rvx3bzp5g61h18naa1m5s";
+      rev = "e0d38c0563224aa7b0101f64640788691f6c15b9";
+      sha256 = "1csc5923acy7awgix0qfkal39v4shzw5vyvw56vkmazvc8n8rqs6";
     };
     meta.homepage = "https://git.sr.ht/~sircmpwn/hare.vim";
   };
@@ -4536,12 +4535,12 @@ final: prev:
 
   haskell-tools-nvim = buildNeovimPlugin {
     pname = "haskell-tools.nvim";
-    version = "2024-05-20";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "MrcJkb";
       repo = "haskell-tools.nvim";
-      rev = "810cfb90d9a683ff3ad07a35004bf2193fd8ad41";
-      sha256 = "1p5f9v84p1yl8knzwi4amv3npylripjy5wn6yxy5vdhs0rnd0gdy";
+      rev = "25bf71d959d05545421ee6947262a15e7bdbe113";
+      sha256 = "1mkl4vigsbacimv66xj294w4fm88milr66ja6l7abal0rgg7hjqq";
     };
     meta.homepage = "https://github.com/MrcJkb/haskell-tools.nvim/";
   };
@@ -4644,11 +4643,11 @@ final: prev:
 
   himalaya-vim = buildVimPlugin {
     pname = "himalaya-vim";
-    version = "2024-05-18";
+    version = "2024-05-27";
     src = fetchgit {
       url = "https://git.sr.ht/~soywod/himalaya-vim";
-      rev = "afe37d38509f347e93757910875984b48baa34f0";
-      sha256 = "0k5g7sxgrhzcn20br8d102r6lq10ccd2rbmsqaa3fffarr555v39";
+      rev = "cea041c927a04a841aea53abcedd4a0d153d4ca8";
+      sha256 = "0yrilhvqklfbfknkdskywf95mfhbr9rfjs2gmppnzgfs7fg6jn63";
     };
     meta.homepage = "https://git.sr.ht/~soywod/himalaya-vim";
   };
@@ -4703,12 +4702,12 @@ final: prev:
 
   hop-nvim = buildVimPlugin {
     pname = "hop.nvim";
-    version = "2024-04-25";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "smoka7";
       repo = "hop.nvim";
-      rev = "6ff23501a1fd1c75c91dfd99ff5befcfdb02c11d";
-      sha256 = "0a621aljh16apa8vc6nf4l4h2h7amxdwx5hqw3fmiipxc9g9cczr";
+      rev = "036462a345792279c58f2f6445756efab706f04a";
+      sha256 = "0das4rci4p3zfmjxkm8rax5pwp81bvssz0cnyzgjqjbzxfijd6px";
     };
     meta.homepage = "https://github.com/smoka7/hop.nvim/";
   };
@@ -5136,12 +5135,12 @@ final: prev:
 
   jsonfly-nvim = buildVimPlugin {
     pname = "jsonfly.nvim";
-    version = "2024-05-12";
+    version = "2024-05-25";
     src = fetchFromGitHub {
       owner = "Myzel394";
       repo = "jsonfly.nvim";
-      rev = "5a2a67bff2f8e3347dea82bd74d25bfe248bf637";
-      sha256 = "18lmrccnhl2czbffnjk2z5n7pprjlk11vjvjw1jry8lgicfhvxv8";
+      rev = "ddbc0849cb2618b6bbb4d5a807985954f859da8e";
+      sha256 = "13rdviwxb9ppnz35a42l7mg2x9lkgahp8r4sc4hcff4vczj8rg5d";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/Myzel394/jsonfly.nvim/";
@@ -5149,12 +5148,12 @@ final: prev:
 
   julia-vim = buildVimPlugin {
     pname = "julia-vim";
-    version = "2024-04-23";
+    version = "2024-05-25";
     src = fetchFromGitHub {
       owner = "JuliaEditorSupport";
       repo = "julia-vim";
-      rev = "16b0cc336eb1b74205396a7677940d88976e2365";
-      sha256 = "0r34z1c760h86axrihxg5fhz945710p29j8xc0xdr2lyv2d17kdn";
+      rev = "7946ce330b6287c9293aece5b14feafa1125779e";
+      sha256 = "0j80pvv3k21zqx0bik257xmmj4a7cjx3d1fp787k1gksr7zcxpby";
     };
     meta.homepage = "https://github.com/JuliaEditorSupport/julia-vim/";
   };
@@ -5173,12 +5172,12 @@ final: prev:
 
   kanagawa-nvim = buildVimPlugin {
     pname = "kanagawa.nvim";
-    version = "2024-04-29";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "rebelot";
       repo = "kanagawa.nvim";
-      rev = "860e4f80df71221d18bf2cd9ef1deb4d364274d2";
-      sha256 = "1cmlv5r9ckihk0y496lr5zy2baks2qxkvfnd0l49bv3rp9zfbym1";
+      rev = "08ed29989834f5f2606cb1ef9d5b24c5ea7b8fa5";
+      sha256 = "1whdsamsl0qss92hmby1q8ch6r6hvfsz87kv4gr1aqpi51vdxyrn";
     };
     meta.homepage = "https://github.com/rebelot/kanagawa.nvim/";
   };
@@ -5293,12 +5292,12 @@ final: prev:
 
   lazy-nvim = buildVimPlugin {
     pname = "lazy.nvim";
-    version = "2024-05-21";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "lazy.nvim";
-      rev = "8f19915175395680808de529e4220da8dafc0759";
-      sha256 = "0abvisck8cnydm9cf89qfkr2yhmdpzc1jn180v5ar4gv7al9g2wv";
+      rev = "24fa2a97085ca8a7220b5b078916f81e316036fd";
+      sha256 = "1x1470s79nailpad1hyd9mnfd823aw58mgh6crh6xm8xj54mxcy6";
     };
     meta.homepage = "https://github.com/folke/lazy.nvim/";
   };
@@ -5317,12 +5316,12 @@ final: prev:
 
   lean-nvim = buildVimPlugin {
     pname = "lean.nvim";
-    version = "2024-05-22";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "Julian";
       repo = "lean.nvim";
-      rev = "59de4adaee51271ab74adad4e2c1f31368e6e1bc";
-      sha256 = "19ngg8lhisxiyzg6xmxhbdmi3wvkxaxfp02x1xlgpxzj7c7nz41i";
+      rev = "8473b85f7e5819293b705036508fdfa653671518";
+      sha256 = "0n1zml22h4siwdwvr929nxbh1q1bpylp2ynvd8dazxd1prr40k63";
     };
     meta.homepage = "https://github.com/Julian/lean.nvim/";
   };
@@ -5545,12 +5544,12 @@ final: prev:
 
   lir-nvim = buildVimPlugin {
     pname = "lir.nvim";
-    version = "2024-03-15";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "tamago324";
       repo = "lir.nvim";
-      rev = "7a9d45de08fecd23a04aca1f96688d744830029e";
-      sha256 = "17pvzsk1w50bdl9ddrgylck7sam41vvz4x4pm5jkxc4bs7vvffd8";
+      rev = "5b1a927cfee45845d7d4450a1e8f2f63cf0baaac";
+      sha256 = "0c5b4lrk8d37nmybavbv0pmr10162kpgpzslxjag3q30ljxnspwp";
     };
     meta.homepage = "https://github.com/tamago324/lir.nvim/";
   };
@@ -5677,12 +5676,12 @@ final: prev:
 
   lsp-overloads-nvim = buildVimPlugin {
     pname = "lsp-overloads.nvim";
-    version = "2024-04-13";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "Issafalcon";
       repo = "lsp-overloads.nvim";
-      rev = "be3486a501fdda84ea91a0949178b75e8476030d";
-      sha256 = "097vn7y6gal2fimpvvqm70jz6im3pnb370dxvc7zmw1yrr3zjhc4";
+      rev = "78f4cf53ff72a234d7903c1d41872c8b21c6007b";
+      sha256 = "03791qzm3qv2gw176bwki4dmizjy3myzdm2c62y4hjafx4y9mn8d";
     };
     meta.homepage = "https://github.com/Issafalcon/lsp-overloads.nvim/";
   };
@@ -5713,12 +5712,12 @@ final: prev:
 
   lsp-zero-nvim = buildVimPlugin {
     pname = "lsp-zero.nvim";
-    version = "2024-05-08";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "VonHeikemen";
       repo = "lsp-zero.nvim";
-      rev = "f12d50716e8e59ea9f5cf484eac6968c33a95917";
-      sha256 = "07dsgbgqmdlv2lv498lwzb8vq7fl4hdlr4psym6ilssmqjc6xkx2";
+      rev = "16de3b18c5f7b6230d89b8e64ce9a4801b6f8d08";
+      sha256 = "1z39f3qagyhrm90hz4pilbqnbyncpxgzsx236yw9mdgfqni912ms";
     };
     meta.homepage = "https://github.com/VonHeikemen/lsp-zero.nvim/";
   };
@@ -5748,12 +5747,12 @@ final: prev:
 
   lsp_signature-nvim = buildVimPlugin {
     pname = "lsp_signature.nvim";
-    version = "2024-05-23";
+    version = "2024-05-25";
     src = fetchFromGitHub {
       owner = "ray-x";
       repo = "lsp_signature.nvim";
-      rev = "43729353dec224fa620a877639b8b0744112b286";
-      sha256 = "0jar4apzhqhv6r1sslwys6pwq82ah00v98zky2zz50fvc5j13nb0";
+      rev = "529e8861d0410389f0163a5e5c2199d4a4ef5bf6";
+      sha256 = "0w620hqpscllmcg0m4gdgsr863vp21dzc4kp21m9pkdhf7hfh1p0";
     };
     meta.homepage = "https://github.com/ray-x/lsp_signature.nvim/";
   };
@@ -5784,12 +5783,12 @@ final: prev:
 
   lspsaga-nvim = buildVimPlugin {
     pname = "lspsaga.nvim";
-    version = "2024-05-24";
+    version = "2024-05-27";
     src = fetchFromGitHub {
       owner = "nvimdev";
       repo = "lspsaga.nvim";
-      rev = "0e2e116ade87034b2983ba0d5460af731fb1fc28";
-      sha256 = "04n2f5m71jkxyrkc4bcxfxba3ap4pg6qvrxa3zwr1g38ah5dnb76";
+      rev = "200256d256ca596812b2ee6374244bb4dfe6974e";
+      sha256 = "1vwzf0l4bjzr8facglydpxawycdll94p03b49xj6cj3izch7jhzn";
     };
     meta.homepage = "https://github.com/nvimdev/lspsaga.nvim/";
   };
@@ -5915,6 +5914,18 @@ final: prev:
     meta.homepage = "https://github.com/iamcco/markdown-preview.nvim/";
   };
 
+  markdown-nvim = buildVimPlugin {
+    pname = "markdown.nvim";
+    version = "2024-04-23";
+    src = fetchFromGitHub {
+      owner = "tadmccorkle";
+      repo = "markdown.nvim";
+      rev = "951b7b567668608d60637d2c9e97f4baea5fdbbe";
+      sha256 = "1n8521s77c1a2gz3di5k2v6apkssyja4xsks2f9p3fkm78lr447b";
+    };
+    meta.homepage = "https://github.com/tadmccorkle/markdown.nvim/";
+  };
+
   markid = buildVimPlugin {
     pname = "markid";
     version = "2023-10-18";
@@ -6085,12 +6096,12 @@ final: prev:
 
   mini-nvim = buildVimPlugin {
     pname = "mini.nvim";
-    version = "2024-05-24";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "echasnovski";
       repo = "mini.nvim";
-      rev = "aa81e45b5977c1db3680c5ef4c016276cf1c7645";
-      sha256 = "0xwq1sfam453nib66mvzx8cm04y6jfyp7bl3gcvgijz9gnccsbg6";
+      rev = "b0b435873375c4341f2ecbcb95e9e645abe0d679";
+      sha256 = "1pwvnij3y6nk39al3401kppbxj99p88v6dfwax59fmmjls1rnlyh";
     };
     meta.homepage = "https://github.com/echasnovski/mini.nvim/";
   };
@@ -6121,12 +6132,12 @@ final: prev:
 
   mkdnflow-nvim = buildVimPlugin {
     pname = "mkdnflow.nvim";
-    version = "2024-04-25";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "jakewvincent";
       repo = "mkdnflow.nvim";
-      rev = "4c8890890426d57f20fc6d459c7631e0bbb50975";
-      sha256 = "1vwqg20d83gcfjwmay6yz96n4qnjlampkw58i9r03s0k3kwyik28";
+      rev = "ff300eb9a36e156e0f9d5f134d11c1a84870d7b3";
+      sha256 = "1s7dkvcrxjjrxm5nficc6bbw63gkfz6j2hpgi87kd83rd5s98n5n";
     };
     meta.homepage = "https://github.com/jakewvincent/mkdnflow.nvim/";
   };
@@ -6157,12 +6168,12 @@ final: prev:
 
   modus-themes-nvim = buildVimPlugin {
     pname = "modus-themes.nvim";
-    version = "2024-05-22";
+    version = "2024-05-27";
     src = fetchFromGitHub {
       owner = "miikanissi";
       repo = "modus-themes.nvim";
-      rev = "05aff2a9026e92b1f03a4bd5f3b76651f206b74a";
-      sha256 = "0mnlx4kzp74h899rki4j48id340ryx98jvm2pv1l9dps94gknnv0";
+      rev = "4b3c2d0cafa20e63abb89ed08176611117262993";
+      sha256 = "1pd2mggmg3i2bnslilpvs9ppbi9kb040yjvis6dlazyfghq8s2rx";
     };
     meta.homepage = "https://github.com/miikanissi/modus-themes.nvim/";
   };
@@ -6517,12 +6528,12 @@ final: prev:
 
   neoconf-nvim = buildVimPlugin {
     pname = "neoconf.nvim";
-    version = "2024-05-25";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "neoconf.nvim";
-      rev = "4c6813145e07b276ee9d0704ffa7f2b2ed598cbe";
-      sha256 = "1qq5a9kfyvagk156q9ixy59nk6bmyivd50c0psl4mavg2j715nk8";
+      rev = "4e204e0d423e70293b81ba1655ed17e1f3c97986";
+      sha256 = "0zji4fnrmq402xy66ga01vhf14jawkjr9jsdiwd7q7jg95bzqdhk";
     };
     meta.homepage = "https://github.com/folke/neoconf.nvim/";
   };
@@ -6589,12 +6600,12 @@ final: prev:
 
   neogit = buildVimPlugin {
     pname = "neogit";
-    version = "2024-05-24";
+    version = "2024-05-25";
     src = fetchFromGitHub {
       owner = "NeogitOrg";
       repo = "neogit";
-      rev = "69e0f1264f583dbe85a6bcd63c5ec9cb29f94571";
-      sha256 = "1rbic1jsnc0lw2fwkivc40fhf7yl7siy7yb0pai3prf5xpibvrbg";
+      rev = "70ad95be902ee69b56410a5cfc690dd03104edb3";
+      sha256 = "0b2z8kr588vgl88f6pw2ycgz4434m5bjfc9zbs7wl9494gfzfil6";
     };
     meta.homepage = "https://github.com/NeogitOrg/neogit/";
   };
@@ -6661,12 +6672,12 @@ final: prev:
 
   neorg = buildVimPlugin {
     pname = "neorg";
-    version = "2024-05-24";
+    version = "2024-05-25";
     src = fetchFromGitHub {
       owner = "nvim-neorg";
       repo = "neorg";
-      rev = "17b875e465ca8d6867e6e0e3673c017a14b9d4d1";
-      sha256 = "02dchv310yhsj49wc7b8ais1iyagbwmq2pxp2znzyaqyqcx6ylrb";
+      rev = "bd9ee52fff219fcdf59105505f8039fdc9b7c193";
+      sha256 = "1ihn62n96bj0c9dcvasasz83wrlwjbzgs10ysa542sxwlycdayp8";
     };
     meta.homepage = "https://github.com/nvim-neorg/neorg/";
   };
@@ -6685,12 +6696,12 @@ final: prev:
 
   neoscroll-nvim = buildVimPlugin {
     pname = "neoscroll.nvim";
-    version = "2024-04-30";
+    version = "2024-05-27";
     src = fetchFromGitHub {
       owner = "karb94";
       repo = "neoscroll.nvim";
-      rev = "e78657719485c5663b88e5d96ffcfb6a2fe3eec0";
-      sha256 = "19f7q9d0gx1g08c4cyd66c4ldznzgrzi632kv7z0cbk58hisac3d";
+      rev = "a731f66f1d39ec6175fd201c5bf849e54abda99c";
+      sha256 = "1f9f5gqn1kbrhwfblqcsjacm7y17qai931xmrlny7hqlv1c6a26i";
     };
     meta.homepage = "https://github.com/karb94/neoscroll.nvim/";
   };
@@ -6782,12 +6793,12 @@ final: prev:
 
   neotest-dotnet = buildVimPlugin {
     pname = "neotest-dotnet";
-    version = "2024-04-13";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "Issafalcon";
       repo = "neotest-dotnet";
-      rev = "3844d16706d7655f4c84387bdb68eb8fb0155ef2";
-      sha256 = "0dh66m1yyzzsrcxrhaydqm7ymqspggnd345c8mfjprp7312x3yc5";
+      rev = "4cbf726f4ac0d6fee3cf3a7e6cc52e1a171b9e8c";
+      sha256 = "0g3q4f18i6a3vjhxp7axgjch0g2x7mf82qa3cz2wbnii54pqvzs2";
     };
     meta.homepage = "https://github.com/Issafalcon/neotest-dotnet/";
   };
@@ -6856,12 +6867,12 @@ final: prev:
 
   neotest-haskell = buildVimPlugin {
     pname = "neotest-haskell";
-    version = "2024-05-20";
+    version = "2024-05-27";
     src = fetchFromGitHub {
       owner = "MrcJkb";
       repo = "neotest-haskell";
-      rev = "6b680e07b99bdad50e71ccec4258801198926415";
-      sha256 = "0gm0qicrd8hgvmahblwf88rdmcw4a97wff0ab6ifcrvn34ayw2kn";
+      rev = "bcdb1dfae72930b1f581cf6d7e3f99848df6d3f0";
+      sha256 = "07grifk655fi3n7khrgfpc7xd7rpsfcjlhh6z2zn471sdpr1j3gd";
     };
     meta.homepage = "https://github.com/MrcJkb/neotest-haskell/";
   };
@@ -7156,12 +7167,12 @@ final: prev:
 
   nfnl = buildVimPlugin {
     pname = "nfnl";
-    version = "2024-03-31";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "Olical";
       repo = "nfnl";
-      rev = "d6b33ae7376dda6f26cca8365d9beaf66f43c410";
-      sha256 = "1m6zdzkaynja934bzdqhw78zc58j70c00l6c8yh04iaxn41vi155";
+      rev = "982bff3c583c994d064a8887190b57ceb11db073";
+      sha256 = "132n6mcz039siwiw136d87iv3qn2cvqcijw30430vnd9kfa3qpi6";
     };
     meta.homepage = "https://github.com/Olical/nfnl/";
   };
@@ -7240,12 +7251,12 @@ final: prev:
 
   nlsp-settings-nvim = buildVimPlugin {
     pname = "nlsp-settings.nvim";
-    version = "2024-05-24";
+    version = "2024-05-27";
     src = fetchFromGitHub {
       owner = "tamago324";
       repo = "nlsp-settings.nvim";
-      rev = "31ebcb6475c5926700025b63d970ea41bc0e9387";
-      sha256 = "13dpnqs0j94j2k4094h676mhvr4s3jpv5r225684qxlnp49yfbws";
+      rev = "a3ba8ac15d104b9bef1117c3eb5910118e03a3b3";
+      sha256 = "09nbhs85i2y882yp09zn0bviw48pj8478dhabxyb8hhldc78p08v";
     };
     meta.homepage = "https://github.com/tamago324/nlsp-settings.nvim/";
   };
@@ -7276,12 +7287,12 @@ final: prev:
 
   no-neck-pain-nvim = buildVimPlugin {
     pname = "no-neck-pain.nvim";
-    version = "2024-05-19";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "shortcuts";
       repo = "no-neck-pain.nvim";
-      rev = "37ce6377d7c16d3be2efa055bc41cd82a3f3b92c";
-      sha256 = "0yzkgf3m75wm28ipa7dgz42mmr3cgy8ihhfv1m3g65vy3fngfiqm";
+      rev = "741ad26c4acc45f2164a3933f7825b0e555b724d";
+      sha256 = "04yfraal84zin7gvhfrx9v5359m3s3gvrxydw7xp5rz2rvsraqn3";
     };
     meta.homepage = "https://github.com/shortcuts/no-neck-pain.nvim/";
   };
@@ -7648,24 +7659,24 @@ final: prev:
 
   nvim-dap = buildVimPlugin {
     pname = "nvim-dap";
-    version = "2024-05-23";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "mfussenegger";
       repo = "nvim-dap";
-      rev = "c65c163daa47e0623dd85d2303fce0c22e52ad01";
-      sha256 = "1kh4kzzn75vy9cwlspydqfvaarxgyp8dj4j15cr2r4aldqrfg2cw";
+      rev = "922ebc75c2fa9305e36402fbd8c984c8638770a0";
+      sha256 = "0icaw880k3ah5p7gs6kbyhf94m6brpd6191sbi0bqd0r5lbsyf5v";
     };
     meta.homepage = "https://github.com/mfussenegger/nvim-dap/";
   };
 
   nvim-dap-go = buildVimPlugin {
     pname = "nvim-dap-go";
-    version = "2024-05-02";
+    version = "2024-05-27";
     src = fetchFromGitHub {
       owner = "leoluz";
       repo = "nvim-dap-go";
-      rev = "5faf165f5062187320eaf9d177c3c1f647adc22e";
-      sha256 = "1ml1ln2psdb14bgrpa2zpalgqhimj0qzd28cnkzhhsdg49a19hyk";
+      rev = "a0c5a2b991d7e9304a9a032cf177e22a4b0acda1";
+      sha256 = "1msz8fiwsvjdda870k2y85plb4wg7xs3fh5w7hg8iwgmx6ykxh07";
     };
     meta.homepage = "https://github.com/leoluz/nvim-dap-go/";
   };
@@ -7792,12 +7803,12 @@ final: prev:
 
   nvim-highlight-colors = buildVimPlugin {
     pname = "nvim-highlight-colors";
-    version = "2024-05-24";
+    version = "2024-05-25";
     src = fetchFromGitHub {
       owner = "brenoprata10";
       repo = "nvim-highlight-colors";
-      rev = "953607cac7d923a3bf8608af372d2a30466efa7e";
-      sha256 = "1k741f3gh4hjv87kzxp8ra6vr9q6cjrv41dmk8jr15vkx6yi3vz5";
+      rev = "582064092cff170331064b7d198a5b97cb261fca";
+      sha256 = "0krkwmcivlf7v6168n03w5sg5xgifb8ybj6f8y8wrknakp144lig";
     };
     meta.homepage = "https://github.com/brenoprata10/nvim-highlight-colors/";
   };
@@ -7959,12 +7970,12 @@ final: prev:
 
   nvim-lspconfig = buildVimPlugin {
     pname = "nvim-lspconfig";
-    version = "2024-05-23";
+    version = "2024-05-27";
     src = fetchFromGitHub {
       owner = "neovim";
       repo = "nvim-lspconfig";
-      rev = "b972e7154bc94ab4ecdbb38c8edbccac36f83996";
-      sha256 = "0ccpa1x905mhz44mrss63parz4zsqiixk472b4h0zqga74y2mhrw";
+      rev = "d70633830acf605ec03d9728698d9e7232442eb4";
+      sha256 = "0bmy62prgmvczc0b0sd0w752gyzw7x0qpizpwmifrrqmj5nxhc6n";
     };
     meta.homepage = "https://github.com/neovim/nvim-lspconfig/";
   };
@@ -8007,24 +8018,24 @@ final: prev:
 
   nvim-luapad = buildVimPlugin {
     pname = "nvim-luapad";
-    version = "2022-12-11";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "rafcamlet";
       repo = "nvim-luapad";
-      rev = "a5b3d6aa1fe5fe75e6124927392a9d3a60a0ecce";
-      sha256 = "05b2wnw9p5wpcc85fh40ddw90ls4k0mcmpa5rcadhy5c4xaf3q2h";
+      rev = "176686eb616a5ada5dfc748f2b5109194bbe8a71";
+      sha256 = "1rqyzf6nfcs8kdyjgm3rw76ns4sqrhl5lhfyx2h7rj9j8pncchh7";
     };
     meta.homepage = "https://github.com/rafcamlet/nvim-luapad/";
   };
 
   nvim-metals = buildVimPlugin {
     pname = "nvim-metals";
-    version = "2024-05-24";
+    version = "2024-05-25";
     src = fetchFromGitHub {
       owner = "scalameta";
       repo = "nvim-metals";
-      rev = "db53eb0b4d06dfda58e9004e6ea50facbb2a2a40";
-      sha256 = "1890h9ql237wvlx5fcp9q96njca7156hirc7palcg3hv6b1dqbl0";
+      rev = "1b87e6bfa4174b5fbaee9ca7ec79d8eae8df7f18";
+      sha256 = "13yi6wby4ybdh536ghjsvp2svzszzc08wi2lxx9rsqcm22aah0sm";
     };
     meta.homepage = "https://github.com/scalameta/nvim-metals/";
   };
@@ -8223,12 +8234,12 @@ final: prev:
 
   nvim-snippets = buildVimPlugin {
     pname = "nvim-snippets";
-    version = "2024-05-25";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "garymjr";
       repo = "nvim-snippets";
-      rev = "343c687b463ff0c71febd4582076fa5b96214475";
-      sha256 = "16r9vl52yf6r85x80jb53sx810vb7z08rxq2bq6qsjwh18ya8z0n";
+      rev = "67f44a552f03b5de23af1900d01af3256a3da2bc";
+      sha256 = "0gmk6jfcxvp700p5sgr6gxlwwv7l4d3kb2jdxn5xlbma24zfi1g8";
     };
     meta.homepage = "https://github.com/garymjr/nvim-snippets/";
   };
@@ -8275,8 +8286,8 @@ final: prev:
     src = fetchFromGitHub {
       owner = "nvim-pack";
       repo = "nvim-spectre";
-      rev = "5690ea46baf08bbc1623980012e14b6239ce582e";
-      sha256 = "14m9hp7rr7qldqsl40k1jiqyk44bndq4pfibb08xcqp8hqn8f3q1";
+      rev = "366f46fdd4a1593cc237aea13d5ef113739a472c";
+      sha256 = "sha256-JS0kfM+uxwC/z8bdkdkaC+MAJIyvlvXsi3BDJuBxADA=";
     };
     meta.homepage = "https://github.com/nvim-pack/nvim-spectre/";
   };
@@ -8343,24 +8354,24 @@ final: prev:
 
   nvim-tree-lua = buildVimPlugin {
     pname = "nvim-tree.lua";
-    version = "2024-05-25";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "nvim-tree";
       repo = "nvim-tree.lua";
-      rev = "4c8ddee4539052f8e94c907c4e02a3ffd2511ea4";
-      sha256 = "1zagbg2hw166jq487hh5xvm79g42091k829734z5mj6qac7z2n0n";
+      rev = "517e4fbb9ef3c0986da7047f44b4b91a2400f93c";
+      sha256 = "0gjy4sal4ka37xwigms8ycpra634jnqmkqizqa7ayc6989vpv8hk";
     };
     meta.homepage = "https://github.com/nvim-tree/nvim-tree.lua/";
   };
 
   nvim-treesitter = buildVimPlugin {
     pname = "nvim-treesitter";
-    version = "2024-05-25";
+    version = "2024-05-27";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter";
-      rev = "78e11ab7cedabe5dfb3b600c6682712271c59acf";
-      sha256 = "0iw08iqy4rwhns6fkpz5rljlq4c2ddjc8c7ww2lnj2dhp2bng78h";
+      rev = "aa02427dfeaead86fae038024ae7b29299f08b8c";
+      sha256 = "0f6mxl0fza8nibvnfyjb3xsyl4zd9pqw524nlhnjr3f9f47l5s87";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter/";
   };
@@ -8716,12 +8727,12 @@ final: prev:
 
   onedarkpro-nvim = buildVimPlugin {
     pname = "onedarkpro.nvim";
-    version = "2024-05-19";
+    version = "2024-05-25";
     src = fetchFromGitHub {
       owner = "olimorris";
       repo = "onedarkpro.nvim";
-      rev = "a017303959616a8090d0e331a75f65bc67321c05";
-      sha256 = "1np2giszfc24jlf6iw0qbblr18kccik66dgzh20xnzh3k7pvxh7r";
+      rev = "13c3244b2520a832989d797d69436df7d27e20b9";
+      sha256 = "121wyddlriik7qpci5lwhcnmd5qlj6gfmsqdj9m4475l8qik5nq7";
     };
     meta.homepage = "https://github.com/olimorris/onedarkpro.nvim/";
   };
@@ -8800,12 +8811,12 @@ final: prev:
 
   orgmode = buildVimPlugin {
     pname = "orgmode";
-    version = "2024-05-22";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "nvim-orgmode";
       repo = "orgmode";
-      rev = "c4f11c722f1c1aec096a1d32daaf8bf1d6172bf2";
-      sha256 = "020r7ip90b4gdcf4syk2fgm1v59xcc41g9k33crvglcjd0x72pnq";
+      rev = "cb3c9bf6caf3411af88a9a1a0b7eb9be57b9741c";
+      sha256 = "001qaggpnm0whyr6f42m8xjh720qkqz6b7j8rla9rf0lb691s6yz";
     };
     meta.homepage = "https://github.com/nvim-orgmode/orgmode/";
   };
@@ -8824,12 +8835,12 @@ final: prev:
 
   otter-nvim = buildVimPlugin {
     pname = "otter.nvim";
-    version = "2024-05-11";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "jmbuhr";
       repo = "otter.nvim";
-      rev = "5cd161f28835fada50d99c89dc05041565a27bdb";
-      sha256 = "18vl93j93s9i22ybw3vl129kvhz8382yg8b1r1m0xnfyiklpkzg5";
+      rev = "083407ae9405b414ac4828e19f9b1e9f0e1ac102";
+      sha256 = "1y27r8ha63ws9gncv0ajskhn73jqj1hd30avlfc89qvbbyh74h0b";
     };
     meta.homepage = "https://github.com/jmbuhr/otter.nvim/";
   };
@@ -9630,12 +9641,12 @@ final: prev:
 
   rustaceanvim = buildNeovimPlugin {
     pname = "rustaceanvim";
-    version = "2024-05-24";
+    version = "2024-05-27";
     src = fetchFromGitHub {
       owner = "mrcjkb";
       repo = "rustaceanvim";
-      rev = "90bfbc588fef7e44d82e5aba8dfc787e8d3f5d1a";
-      sha256 = "019qr9vj59w00qkpcvg6p2w3d89nq4hlibv0c7lwzy4ms08j81jg";
+      rev = "691901d6e241382261c1a99da4e8180e5563d8af";
+      sha256 = "055xc2s9a6p0i71v90rdqq17i5ai52zf1hgl61jrbx7bfy847f2v";
     };
     meta.homepage = "https://github.com/mrcjkb/rustaceanvim/";
   };
@@ -9798,12 +9809,12 @@ final: prev:
 
   sg-nvim = buildVimPlugin {
     pname = "sg.nvim";
-    version = "2024-05-24";
+    version = "2024-05-25";
     src = fetchFromGitHub {
       owner = "sourcegraph";
       repo = "sg.nvim";
-      rev = "437b2f59bed01ad22a6d9d1da8482f9e90fb5321";
-      sha256 = "14njc84vgfgn3ddk0s26s4v9l41jlx8mw96k40jls0mmj1qcd28n";
+      rev = "8bdd4d19da2268072708d5fe18fda9c23e16509d";
+      sha256 = "03qkd7xxi4q7mw1sgnsa9pmkk8012ndg9ij5ssw8l689v5dx6377";
     };
     meta.homepage = "https://github.com/sourcegraph/sg.nvim/";
   };
@@ -10635,8 +10646,8 @@ final: prev:
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope-frecency.nvim";
-      rev = "08e3ad80fcaab1c4735d7b241050312570345490";
-      sha256 = "0yvrwpm7jakmpy2imbx1m7ca9xm2iid3yw7j0mlp777g5xwjw38v";
+      rev = "8783a062f76ffa2c328fa98288a404f478d78908";
+      sha256 = "11l67p7w72xr8vxrwnzm7glanh9cpg33ah3r6x1syaq63l9b0s72";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope-frecency.nvim/";
   };
@@ -10716,12 +10727,12 @@ final: prev:
 
   telescope-manix = buildNeovimPlugin {
     pname = "telescope-manix";
-    version = "2024-05-20";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "MrcJkb";
       repo = "telescope-manix";
-      rev = "dde735eb5b5f3cb896dd86a6f3cb5600296c667b";
-      sha256 = "1y21h35msqqwfx1rrr9s823bnar8macinq3pq88703268wz99ap6";
+      rev = "487f66ef0522163f9cefc95a874587f438f9db65";
+      sha256 = "0340dx3gix5cbrcap8npg47ij9751gbk42av5ppki6zwdcdb0205";
     };
     meta.homepage = "https://github.com/MrcJkb/telescope-manix/";
   };
@@ -10861,12 +10872,12 @@ final: prev:
 
   telescope-nvim = buildNeovimPlugin {
     pname = "telescope.nvim";
-    version = "2024-05-25";
+    version = "2024-05-27";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope.nvim";
-      rev = "c2ce039188e22288449e43b77710036e69a45a70";
-      sha256 = "0cxd6zai11li2aqlp34yf899z2xplbsldxwc0pxfwkv926169p8q";
+      rev = "4c96370cf93e2ba287548da12d673442d0ffecc3";
+      sha256 = "1q4sfk9wk4qhsviinqqvw3w8h4nminnjbv4i1d0dgx5x61khw830";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope.nvim/";
   };
@@ -11126,12 +11137,12 @@ final: prev:
 
   tokyonight-nvim = buildVimPlugin {
     pname = "tokyonight.nvim";
-    version = "2024-05-21";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "tokyonight.nvim";
-      rev = "b9b494fa7f7bbf2fe0747b47fa290fb7a4eddcc7";
-      sha256 = "197hl8p51ff3aa7a8k3m2a176cj9hv6m29xl97i2x0s1020hl2m6";
+      rev = "0fae425aaab04a5f97666bd431b96f2f19c36935";
+      sha256 = "1rhbvnhlg6a3hsyw6dw7gfp6skgpp1ciz97cjg782l94mz94lv35";
     };
     meta.homepage = "https://github.com/folke/tokyonight.nvim/";
   };
@@ -12567,12 +12578,12 @@ final: prev:
 
   vim-dadbod-ui = buildVimPlugin {
     pname = "vim-dadbod-ui";
-    version = "2024-05-21";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "kristijanhusak";
       repo = "vim-dadbod-ui";
-      rev = "5aa854ee6017e9a3463d3dc8eee5aac93739f021";
-      sha256 = "132bc3rr9jh139ik7cabin6nd4vgmaxyrm579ajxk75v98vigc8g";
+      rev = "70cd6278f826e0bd5415449b2a1cd0cb08c4351a";
+      sha256 = "07rmk6vavxjc7k9ldb0dvkgrpl26lgcaqhh2szggln7jz4dm1jw8";
     };
     meta.homepage = "https://github.com/kristijanhusak/vim-dadbod-ui/";
   };
@@ -13047,12 +13058,12 @@ final: prev:
 
   vim-flog = buildVimPlugin {
     pname = "vim-flog";
-    version = "2024-01-24";
+    version = "2024-05-25";
     src = fetchFromGitHub {
       owner = "rbong";
       repo = "vim-flog";
-      rev = "6289ab2e237ceeefdbcc7eb584b63d144bf88d94";
-      sha256 = "0l085wk1plzxg3hxj9gjqg9ws8b43g2wbzjralzfj0r3py7icnb5";
+      rev = "2f0836128cac9368176a564b237382d1766723f0";
+      sha256 = "1nwxia9dcj7kqai1ig3a1z1bkzk6dx56bdr1g070kn5pli7w051b";
     };
     meta.homepage = "https://github.com/rbong/vim-flog/";
   };
@@ -13865,12 +13876,12 @@ final: prev:
 
   vim-just = buildVimPlugin {
     pname = "vim-just";
-    version = "2024-05-01";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "NoahTheDuke";
       repo = "vim-just";
-      rev = "a621ede3bcf551144358c112ba1f4e6c2e84e092";
-      sha256 = "1ih2jd14faq80jdxrz42pdmcnz3k5pl4h5hn90x03w1m14bkpmxz";
+      rev = "c78416aebe147ac7db304c26b32a52dae5985f6e";
+      sha256 = "0v3wdwzfrfsaric95hdinz2bsa37x0z2k22ryyqcblj3jxvkllw0";
     };
     meta.homepage = "https://github.com/NoahTheDuke/vim-just/";
   };
@@ -14129,12 +14140,12 @@ final: prev:
 
   vim-lsp-settings = buildVimPlugin {
     pname = "vim-lsp-settings";
-    version = "2024-05-23";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "mattn";
       repo = "vim-lsp-settings";
-      rev = "c70fa0e674b67f9ea8d266c153455f08c9cace95";
-      sha256 = "1rjifvx3dmc0vvas5l447xihpm070wvyrdzxnx09rbqs46g2wl9a";
+      rev = "30d161ae373954d4fa64ed7ec5458b436dd2b055";
+      sha256 = "1qn2xvrzg138rxqb97597p6hjrp1dlhgbhvx0mqwycd7vc68xv1z";
     };
     meta.homepage = "https://github.com/mattn/vim-lsp-settings/";
   };
@@ -15630,12 +15641,12 @@ final: prev:
 
   vim-spirv = buildVimPlugin {
     pname = "vim-spirv";
-    version = "2024-05-25";
+    version = "2024-05-27";
     src = fetchFromGitHub {
       owner = "kbenzie";
       repo = "vim-spirv";
-      rev = "972e74481a84e6944c1ed59d434147500114f5a6";
-      sha256 = "11k3wlv30ib2zry3d9nigp095j7lwmywy7c3vf9hfpzjd8vaa0sj";
+      rev = "1bce90503e4bfb74d8141ce0744304652d0c9808";
+      sha256 = "0mnq9lpk1nwz5qm9vr3vsrhxwdfg9dgk5k3s05h4y4cyq7cjk3hf";
     };
     meta.homepage = "https://github.com/kbenzie/vim-spirv/";
   };
@@ -16015,12 +16026,12 @@ final: prev:
 
   vim-tmux-navigator = buildVimPlugin {
     pname = "vim-tmux-navigator";
-    version = "2024-05-18";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "christoomey";
       repo = "vim-tmux-navigator";
-      rev = "c600cf10db1bf933aab9e357158bf9b202ecf99b";
-      sha256 = "10by5i45il119qzy24042w559m65drsjf2l5dc60im62xz4zqcj8";
+      rev = "5b3c701686fb4e6629c100ed32e827edf8dad01e";
+      sha256 = "0kcrz2hlv672v0967n7zz1f5xl8vh41nmps0pvms9bplw1p5nzx3";
     };
     meta.homepage = "https://github.com/christoomey/vim-tmux-navigator/";
   };
@@ -16904,12 +16915,12 @@ final: prev:
 
   wrapping-nvim = buildVimPlugin {
     pname = "wrapping.nvim";
-    version = "2024-04-07";
+    version = "2024-05-25";
     src = fetchFromGitHub {
       owner = "andrewferrier";
       repo = "wrapping.nvim";
-      rev = "d1ac69c0db82ff0c7540088a0f91d74ad7378c3d";
-      sha256 = "0cmvgmynr3jkp9ikygrn773f3j8n6580ajvv29p8lzg6h5pvafdc";
+      rev = "3a823200c297885b70515fa8d974e1763c578e26";
+      sha256 = "1srk34zppj7lyw69yh5w7014s1mh5bdn7k74yacifwrwnwwdxj5n";
     };
     meta.homepage = "https://github.com/andrewferrier/wrapping.nvim/";
   };
@@ -16964,24 +16975,24 @@ final: prev:
 
   yanky-nvim = buildVimPlugin {
     pname = "yanky.nvim";
-    version = "2024-05-22";
+    version = "2024-05-27";
     src = fetchFromGitHub {
       owner = "gbprod";
       repo = "yanky.nvim";
-      rev = "8756d19923ad871eb95f543a8a98c026b4a8494f";
-      sha256 = "05pqf5zacfzm4xgjf0clwyla2p8q2x0w9q3q9ydbv70kmyw29334";
+      rev = "32882f6d3e7bbc8687a71540a695853036511b2c";
+      sha256 = "1x8rx7w1kgzk5lj6l1d9qgn336z2n2fxh9y1wx8ih8pw6244kymq";
     };
     meta.homepage = "https://github.com/gbprod/yanky.nvim/";
   };
 
   yats-vim = buildVimPlugin {
     pname = "yats.vim";
-    version = "2024-05-23";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "HerringtonDarkholme";
       repo = "yats.vim";
-      rev = "9201234ce1b2b3abf9be113a27966f591ceb0bf5";
-      sha256 = "0vrl667sfhyxjsnk37ls4xqdijckl7ddw2ggf6xfs3hvam6zbv1p";
+      rev = "1c6d78191995fbba4be594e9941938af015f2e11";
+      sha256 = "02rgnbgjmkf8niw27k0m8m0fh7ydbdy5f9zdi1zfiqxfznhik3qx";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/HerringtonDarkholme/yats.vim/";
@@ -17097,12 +17108,12 @@ final: prev:
 
   zk-nvim = buildVimPlugin {
     pname = "zk-nvim";
-    version = "2024-04-14";
+    version = "2024-05-25";
     src = fetchFromGitHub {
       owner = "zk-org";
       repo = "zk-nvim";
-      rev = "e2b6d62b18a88249016bf917d4e5bb0e417ac974";
-      sha256 = "16mmrl34f1bsr1dfl1drg62wwycc23n9w0qczmqz7ylpgb6k8i02";
+      rev = "66b9b490e930fb77f93a2a0c64e0da9a5144fd0a";
+      sha256 = "1qqyaps2gcbw6dlxchiapbypl4f2igb3s6mln1hsf92wqajimykl";
     };
     meta.homepage = "https://github.com/zk-org/zk-nvim/";
   };
@@ -17133,12 +17144,12 @@ final: prev:
 
   catppuccin-nvim = buildVimPlugin {
     pname = "catppuccin-nvim";
-    version = "2024-05-08";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "catppuccin";
       repo = "nvim";
-      rev = "d97387aea8264f484bb5d5e74f2182a06c83e0d8";
-      sha256 = "1wybci6cjadjd5z0wkx2jmwb9ir72s4g4qrd9qsjl2qjfiaf26k9";
+      rev = "5215ea59df6d0a7e27da9a5cd1165e06d1b04cbe";
+      sha256 = "13kghcr5krv7hbd8p11rjpd0im8cz1jy11m8gsj0259wbbxx4csh";
     };
     meta.homepage = "https://github.com/catppuccin/nvim/";
   };
@@ -17253,12 +17264,12 @@ final: prev:
 
   nvchad-ui = buildVimPlugin {
     pname = "nvchad-ui";
-    version = "2024-05-22";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "nvchad";
       repo = "ui";
-      rev = "5fe258afeb248519fc2a1681b48d24208ed22abe";
-      sha256 = "08j2j7qcq3xkxyfn1cm3vjdbd43mmjr65m65zhbxs9vdy56rz0bc";
+      rev = "b23a4dea45107305513e3c407179199cc2f1945e";
+      sha256 = "14kn4zrkmqc50g13q2hp9gk8y19dxzk99y0iardc8sfphc03mwrz";
     };
     meta.homepage = "https://github.com/nvchad/ui/";
   };
@@ -17301,12 +17312,12 @@ final: prev:
 
   rose-pine = buildVimPlugin {
     pname = "rose-pine";
-    version = "2024-05-14";
+    version = "2024-05-26";
     src = fetchFromGitHub {
       owner = "rose-pine";
       repo = "neovim";
-      rev = "b6fe88c3282cf9f117a3e836d761c2d78d02f417";
-      sha256 = "1fwwp7szzz2yp4z5hngqn8ll8765xv0nlhgcb75yj257kz7x5lq1";
+      rev = "87aa437172357ad8f916942bca249ceadc6c68b1";
+      sha256 = "0zyj66wi3fw6qsy35xwlv0g9x8yr4142ggf372mq4ivd3z8p344s";
     };
     meta.homepage = "https://github.com/rose-pine/neovim/";
   };
diff --git a/pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix b/pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix
index 275aca51ab30f..164b69b48ba75 100644
--- a/pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix
+++ b/pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix
@@ -193,12 +193,12 @@
   };
   c = buildGrammar {
     language = "c";
-    version = "0.0.0+rev=82fb86a";
+    version = "0.0.0+rev=00ed08f";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-c";
-      rev = "82fb86aa544843bd17a9f0f3dc16edf645a34349";
-      hash = "sha256-wiCgRSrJodNq7WVQTIDsQ6K/ZrgnSFdGG9kDegu6zGs=";
+      rev = "00ed08f1a6c18141bfd7a81638e4d239a0bb55cc";
+      hash = "sha256-ucbHLS2xyGo1uyKZv/K1HNXuMo4GpTY327cgdVS9F3c=";
     };
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-c";
   };
@@ -325,12 +325,12 @@
   };
   cpp = buildGrammar {
     language = "cpp";
-    version = "0.0.0+rev=2369fa9";
+    version = "0.0.0+rev=d29fbff";
     src = fetchFromGitHub {
       owner = "tree-sitter";
       repo = "tree-sitter-cpp";
-      rev = "2369fa991eba294e9238e28280ffcd58132f94bc";
-      hash = "sha256-reDeaGf7jDaNzPW7ivvq3n9Tl/SuZYs/O/d93whHa7U=";
+      rev = "d29fbff09a8c9ff4f3074de2595dfca12cb33da9";
+      hash = "sha256-3akSuQltFMF6I32HwRU08+Hcl9ojxPGk2ZuOX3gAObw=";
     };
     meta.homepage = "https://github.com/tree-sitter/tree-sitter-cpp";
   };
@@ -503,12 +503,12 @@
   };
   earthfile = buildGrammar {
     language = "earthfile";
-    version = "0.0.0+rev=91fc943";
+    version = "0.0.0+rev=336001d";
     src = fetchFromGitHub {
       owner = "glehmann";
       repo = "tree-sitter-earthfile";
-      rev = "91fc9434283aec06139e37fc007ad00922f278b4";
-      hash = "sha256-MMz4Af3U5PXuojOmMHL8cYEjklPBHnffEOJX2lAVqjw=";
+      rev = "336001d79dd62668088bc6fe6d72a774a449fa2d";
+      hash = "sha256-DOsW62ZgjUZhm1LNOkW2lR1JA6NUqi239x5zIARt4NM=";
     };
     meta.homepage = "https://github.com/glehmann/tree-sitter-earthfile";
   };
@@ -526,12 +526,12 @@
   };
   eds = buildGrammar {
     language = "eds";
-    version = "0.0.0+rev=fde6202";
+    version = "0.0.0+rev=5517bdb";
     src = fetchFromGitHub {
       owner = "uyha";
       repo = "tree-sitter-eds";
-      rev = "fde62029d4c715562230070b9af51a9500c2ce10";
-      hash = "sha256-E+VDOAnmbyUXzwhu+j2DXXBpuiI/d9gZdGsikAboLP4=";
+      rev = "5517bdb90c90703df49579a4b04689a614780be2";
+      hash = "sha256-dOWHqvnNe/RfCp4QbIThHaX2gUMCiY3DU2crzOxIo/g=";
     };
     meta.homepage = "https://github.com/uyha/tree-sitter-eds";
   };
@@ -2110,12 +2110,12 @@
   };
   query = buildGrammar {
     language = "query";
-    version = "0.0.0+rev=a12c4a1";
+    version = "0.0.0+rev=f767fb0";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "tree-sitter-query";
-      rev = "a12c4a1cd8aa6e0340ecb7089a05cd345a12bae3";
-      hash = "sha256-LeyYv4qNvCIagMwdJ0eyXx/1RCD+sL7oWRCkfNe/8V4=";
+      rev = "f767fb0ac5e711b6d44c5e0c8d1f349687a86ce0";
+      hash = "sha256-snr0ze1VCaAf448mHkrB9qbWTMvjSlPdVl2VtesMIHI=";
     };
     meta.homepage = "https://github.com/nvim-treesitter/tree-sitter-query";
   };
@@ -2397,12 +2397,12 @@
   };
   solidity = buildGrammar {
     language = "solidity";
-    version = "0.0.0+rev=b5a23ea";
+    version = "0.0.0+rev=2c5f1e7";
     src = fetchFromGitHub {
       owner = "JoranHonig";
       repo = "tree-sitter-solidity";
-      rev = "b5a23ead0f69d38b5c9a630f52f5c129132c16ed";
-      hash = "sha256-xOW5C/Bcx2xg/6MPYulQkolWGwyQ+htRKvTnkFnqzOE=";
+      rev = "2c5f1e7318fe7d9c8eb38d7d64ebe558d9f41ebc";
+      hash = "sha256-7gJq1NSUAamMz2y8xLDcwlNAxmCHup6azxx1YICnvT4=";
     };
     meta.homepage = "https://github.com/JoranHonig/tree-sitter-solidity";
   };
diff --git a/pkgs/applications/editors/vim/plugins/overrides.nix b/pkgs/applications/editors/vim/plugins/overrides.nix
index 13d3d3447b06b..8f24b92251c9f 100644
--- a/pkgs/applications/editors/vim/plugins/overrides.nix
+++ b/pkgs/applications/editors/vim/plugins/overrides.nix
@@ -1091,19 +1091,18 @@
 
         cargoHash = "sha256-7V4RyWIo9gL3ir4Pay8CMIVn6cXjJi9sgKVOENG4muQ=";
 
-
         preCheck = ''
           mkdir tests/tmp/
         '';
       };
     in
-    (lib.optionalAttrs stdenv.isLinux {
+    {
       dependencies = with self;
         [ plenary-nvim ];
       postInstall = ''
         ln -s ${spectre_oxi}/lib/libspectre_oxi.* $out/lua/spectre_oxi.so
       '';
-    }));
+    });
 
   nvim-teal-maker = super.nvim-teal-maker.overrideAttrs {
     postPatch = ''
@@ -1225,7 +1224,7 @@
         pname = "sg-nvim-rust";
         inherit (old) version src;
 
-        cargoHash = "sha256-bK4gyK6kqeRyoH7hnRHZURCjcxemIdqs71Qgb/Cl1pw=";
+        cargoHash = "sha256-dqa5Rd3NeOSqv18F1QdkrWEypJ0bvVwIDwrMOyBVsDM=";
 
         nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/applications/editors/vim/plugins/vim-plugin-names b/pkgs/applications/editors/vim/plugins/vim-plugin-names
index 8e25dd040a68e..96365ee1f5e8b 100644
--- a/pkgs/applications/editors/vim/plugins/vim-plugin-names
+++ b/pkgs/applications/editors/vim/plugins/vim-plugin-names
@@ -130,7 +130,7 @@ https://github.com/laytan/cloak.nvim/,HEAD,
 https://github.com/asheq/close-buffers.vim/,HEAD,
 https://github.com/Civitasv/cmake-tools.nvim/,,
 https://github.com/winston0410/cmd-parser.nvim/,,
-https://github.com/FelipeLema/cmp-async-path/,HEAD,
+https://codeberg.org/FelipeLema/cmp-async-path/,,
 https://github.com/crispgm/cmp-beancount/,HEAD,
 https://github.com/hrsh7th/cmp-buffer/,,
 https://github.com/hrsh7th/cmp-calc/,,
@@ -495,6 +495,7 @@ https://github.com/mkasa/lushtags/,,
 https://github.com/WhiteBlackGoose/magma-nvim-goose/,HEAD,
 https://github.com/winston0410/mark-radar.nvim/,HEAD,
 https://github.com/iamcco/markdown-preview.nvim/,,
+https://github.com/tadmccorkle/markdown.nvim/,HEAD,
 https://github.com/David-Kunz/markid/,HEAD,
 https://github.com/chentoast/marks.nvim/,,
 https://github.com/williamboman/mason-lspconfig.nvim/,HEAD,
diff --git a/pkgs/applications/editors/vscode/extensions/default.nix b/pkgs/applications/editors/vscode/extensions/default.nix
index 145652d8e32ed..5f3bb150e6439 100644
--- a/pkgs/applications/editors/vscode/extensions/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/default.nix
@@ -3094,7 +3094,7 @@ let
         };
         meta = {
           description = "Open any folder or repository inside a Docker container.";
-          downloadPage = "Use a container as your development environment";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers";
           homepage = "https://code.visualstudio.com/docs/devcontainers/containers";
           license = lib.licenses.unfree;
           maintainers = [ lib.maintainers.anthonyroussel ];
diff --git a/pkgs/applications/emulators/retroarch/hashes.json b/pkgs/applications/emulators/retroarch/hashes.json
index a7655cb9bb3c3..e27eafce9d517 100644
--- a/pkgs/applications/emulators/retroarch/hashes.json
+++ b/pkgs/applications/emulators/retroarch/hashes.json
@@ -85,10 +85,10 @@
         "src": {
             "owner": "libretro",
             "repo": "beetle-psx-libretro",
-            "rev": "1743ca1a97cc90eac463def2e6118602b3d230c0",
-            "hash": "sha256-0ViuIo+iEIthRayJQeedOo2L+uTsJQh6PTJ21zlC/f0="
+            "rev": "f7d733b935be185da633be660c73d8f91d6c6883",
+            "hash": "sha256-hX56CqsWkxNlaSzOtaemIWEO0Ov9InmcLmRUJjtn4FQ="
         },
-        "version": "unstable-2024-05-17"
+        "version": "unstable-2024-05-24"
     },
     "beetle-saturn": {
         "fetcher": "fetchFromGitHub",
@@ -287,31 +287,31 @@
         "src": {
             "owner": "libretro",
             "repo": "fbneo",
-            "rev": "312473be86f25e1a0456d4bb9d12462d90d59131",
-            "hash": "sha256-QU+ZG1onr3BtXZAUT9o5LypFozZsAF6biTj05sKtV+s="
+            "rev": "4e0738a16d64adb4c468db4144ec3b51f9217660",
+            "hash": "sha256-Se7QLJ1YVbEcwLOrKwTKTS6rgBw5Q9B4T2J40IgvOk0="
         },
-        "version": "unstable-2024-05-20"
+        "version": "unstable-2024-05-28"
     },
     "fceumm": {
         "fetcher": "fetchFromGitHub",
         "src": {
             "owner": "libretro",
             "repo": "libretro-fceumm",
-            "rev": "aebea8783652bc75b21b9d2dcb28cedf1fa78e8a",
-            "hash": "sha256-4ux8pI2d8djkwY0M+h5tlXrLGIDHnMFiFqAWKrZAsxA="
+            "rev": "0dc5915f0ba10d4bb63b35fbfa57b81a3dd0955e",
+            "hash": "sha256-fLgJ3EWOaHMpBxPqhjcyYKuwVzIiAmKhk0KUmUswlmY="
         },
-        "version": "unstable-2024-04-06"
+        "version": "unstable-2024-05-27"
     },
     "flycast": {
         "fetcher": "fetchFromGitHub",
         "src": {
             "owner": "flyinghead",
             "repo": "flycast",
-            "rev": "0fa3e9a37b37d2ab200a910ff2a5736ca8c57a1b",
-            "hash": "sha256-c2cDQ2MSsP/rUrX89Mj5Gplb0WS2EjjOBCNd5QFbuHw=",
+            "rev": "90896368b80531e492fede0e17c54f7e6855a13b",
+            "hash": "sha256-7JhHpNYxC6oNyvLCMmBie0pkPgWJ9hxfeYRxmmgpBso=",
             "fetchSubmodules": true
         },
-        "version": "unstable-2024-05-21"
+        "version": "unstable-2024-05-27"
     },
     "fmsx": {
         "fetcher": "fetchFromGitHub",
@@ -358,10 +358,10 @@
         "src": {
             "owner": "libretro",
             "repo": "Genesis-Plus-GX",
-            "rev": "58cf8471e3aa09ac4cb4c4b2dc5fdf3d1d54d626",
-            "hash": "sha256-y1pVoKrIV5n2wKoUIkUEor2CKTx9CyvkDagkByuFeiE="
+            "rev": "d2f1241b8665b525f95506afb5f079167f2b1ab6",
+            "hash": "sha256-DtnPtXYdxQ5XB6Og+XYpN1uRHJR3B1EpVsdCN3V8YZg="
         },
-        "version": "unstable-2024-05-17"
+        "version": "unstable-2024-05-25"
     },
     "gpsp": {
         "fetcher": "fetchFromGitHub",
@@ -429,20 +429,20 @@
         "src": {
             "owner": "libretro",
             "repo": "mame2003-libretro",
-            "rev": "cb2c76b2185c6600d1985b041eae001c674ffc08",
-            "hash": "sha256-HBDJsYEC4G/wELYe8IGfq+9Hv2Sx+v52YxYfLQRZ+ns="
+            "rev": "73e97290df6d3c4148c73e849a1f274ae1571da2",
+            "hash": "sha256-osVwOUFygdsxHXKx5eg3TxJeRBiv3PmXMlAO0x/p1EY="
         },
-        "version": "unstable-2024-05-21"
+        "version": "unstable-2024-05-27"
     },
     "mame2003-plus": {
         "fetcher": "fetchFromGitHub",
         "src": {
             "owner": "libretro",
             "repo": "mame2003-plus-libretro",
-            "rev": "97dfe652dba01872bc5dd5d13a0dfb6588286adf",
-            "hash": "sha256-BQoc8y0eJkK8PpPqHjQ8qKp8/xrjl789bxNy+RdU3Sc="
+            "rev": "7e0673fb35f716a5c0aab601c23118f8a2c4f7d2",
+            "hash": "sha256-6tzUIyrmsGIXY1MiikcP6cfeVrvx+3LxhHBBKvyDRPU="
         },
-        "version": "unstable-2024-05-21"
+        "version": "unstable-2024-05-28"
     },
     "mame2010": {
         "fetcher": "fetchFromGitHub",
@@ -652,32 +652,32 @@
         "src": {
             "owner": "jpd002",
             "repo": "Play-",
-            "rev": "0efd17e79dc470c86cd1363a93130888c1e7a528",
-            "hash": "sha256-+f1xOSqKUJmM0bhtsPR9zk6mybo2HOXLURtYVb6qBGU=",
+            "rev": "5b80de936ee267b5bfcbaf3a25f8307d718e09d6",
+            "hash": "sha256-ATTNivOCLp0Ze1RJfO7YWZzw7foPz/6OjVoa/4P3M4E=",
             "fetchSubmodules": true
         },
-        "version": "unstable-2024-05-17"
+        "version": "unstable-2024-05-27"
     },
     "ppsspp": {
         "fetcher": "fetchFromGitHub",
         "src": {
             "owner": "hrydgard",
             "repo": "ppsspp",
-            "rev": "1a01e4fd2e1ad1a6c5a7a1511ddeb495f525ae9e",
-            "hash": "sha256-MWXfHbWQXi/UflOV4zchrBVdh+Nt04HnvoTbpLNyq/Q=",
+            "rev": "e69870033ef07831ecea1e68ff8ac49da1dd7fff",
+            "hash": "sha256-L9NfESAHjCzdRzNoyzPZ0CJXZ8VguD91SVDlSSGGx0I=",
             "fetchSubmodules": true
         },
-        "version": "unstable-2024-05-21"
+        "version": "unstable-2024-05-28"
     },
     "prboom": {
         "fetcher": "fetchFromGitHub",
         "src": {
             "owner": "libretro",
             "repo": "libretro-prboom",
-            "rev": "ab05295d81fed2bb9db9f68a7ceeec7a544191d8",
-            "hash": "sha256-ekVVxYg+Uet3pfir6P7PwI87p5XF2ATbFbux1t38ETs="
+            "rev": "9d412db570d3291829b308e6d1ac17f04acdda17",
+            "hash": "sha256-50Nl8IyaQRLOQtTRYhJFwTH8ojMxNVVn/c+oGCeJts0="
         },
-        "version": "unstable-2024-05-07"
+        "version": "unstable-2024-05-23"
     },
     "prosystem": {
         "fetcher": "fetchFromGitHub",
@@ -694,10 +694,10 @@
         "src": {
             "owner": "libretro",
             "repo": "libretro-uae",
-            "rev": "3432007d28ef173707e2b32bd931932e5b74085d",
-            "hash": "sha256-spkl8A4mijM4uSpFojAFiYZl7tetWpCBKCDMUM8byUU="
+            "rev": "4493a194dd42e593914c26952ee8cb4ba750f596",
+            "hash": "sha256-uSnxx85+AX/15UvyOOiVApKT5I9SjKITfi5Osd4nBSE="
         },
-        "version": "unstable-2024-05-20"
+        "version": "unstable-2024-05-25"
     },
     "quicknes": {
         "fetcher": "fetchFromGitHub",
@@ -754,10 +754,10 @@
         "src": {
             "owner": "snes9xgit",
             "repo": "snes9x",
-            "rev": "738e53989e29c912eba3be4656df18cecc76e69b",
-            "hash": "sha256-riz4WBK/Qrw6QuIyi6ylNdDBxYOq1SsltC7/GAunZbM="
+            "rev": "a277d7f9e88fa377f9cc6f26c1f6008d0499d36e",
+            "hash": "sha256-8fdBgQeZAEyKnBInOeqsaIw20ztn5eeU34+CnoM+xng="
         },
-        "version": "unstable-2024-05-19"
+        "version": "unstable-2024-05-26"
     },
     "snes9x2002": {
         "fetcher": "fetchFromGitHub",
@@ -814,10 +814,10 @@
         "src": {
             "owner": "libretro",
             "repo": "swanstation",
-            "rev": "6a0cc4a1cf3b8a89150160f631f477c36dc6e559",
-            "hash": "sha256-YciqQW5Q9NYbzdsWeYc92CDWBaXT3HZmDsd3WkqPYzo="
+            "rev": "d5169ed204838b622551c82b3c20df376324870f",
+            "hash": "sha256-ixLd2xdy6r5irNEhBDbdMpvRR7clnHr1LrTywuqkr84="
         },
-        "version": "unstable-2024-05-21"
+        "version": "unstable-2024-05-27"
     },
     "tgbdual": {
         "fetcher": "fetchFromGitHub",
diff --git a/pkgs/applications/graphics/figma-linux/default.nix b/pkgs/applications/graphics/figma-linux/default.nix
index 6c794c9706bb2..55583cd188090 100644
--- a/pkgs/applications/graphics/figma-linux/default.nix
+++ b/pkgs/applications/graphics/figma-linux/default.nix
@@ -10,11 +10,11 @@
 with lib;
 stdenv.mkDerivation (finalAttrs: {
   pname = "figma-linux";
-  version = "0.11.3";
+  version = "0.11.4";
 
   src = fetchurl {
     url = "https://github.com/Figma-Linux/figma-linux/releases/download/v${finalAttrs.version}/figma-linux_${finalAttrs.version}_linux_amd64.deb";
-    hash = "sha256-9UfyCqgsg9XAFyZ7V7TogkQou4x+ixFUfjXZ1/qlDmA=";
+    hash = "sha256-ukUsNgWOtIRe54vsmRdI62syjIPwSsgNV7kITCw0YUQ=";
   };
 
   nativeBuildInputs = [ autoPatchelfHook dpkg wrapGAppsHook3 ];
diff --git a/pkgs/applications/graphics/komikku/default.nix b/pkgs/applications/graphics/komikku/default.nix
index bdc81a532fdc1..ffc612a33bfc7 100644
--- a/pkgs/applications/graphics/komikku/default.nix
+++ b/pkgs/applications/graphics/komikku/default.nix
@@ -19,7 +19,7 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "komikku";
-  version = "1.46.0";
+  version = "1.47.0";
 
   format = "other";
 
@@ -28,7 +28,7 @@ python3.pkgs.buildPythonApplication rec {
     owner = "valos";
     repo = "Komikku";
     rev = "v${version}";
-    hash = "sha256-0yobGclfZzv0S0HtqeTr4vzK5d6PTQNWMszP0B4k770=";
+    hash = "sha256-ZYQjH3NUPeq5XgCZ6L78lJpgbK69ZMf2AzztbCgbYBo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/1password-gui/default.nix b/pkgs/applications/misc/1password-gui/default.nix
index c151bedd29e61..965d6b487a057 100644
--- a/pkgs/applications/misc/1password-gui/default.nix
+++ b/pkgs/applications/misc/1password-gui/default.nix
@@ -9,43 +9,43 @@
 let
 
   pname = "1password";
-  version = if channel == "stable" then "8.10.30" else "8.10.30-20.BETA";
+  version = if channel == "stable" then "8.10.33" else "8.10.34-10.BETA";
 
   sources = {
     stable = {
       x86_64-linux = {
         url = "https://downloads.1password.com/linux/tar/stable/x86_64/1password-${version}.x64.tar.gz";
-        hash = "sha256-q1PKFpBgjada7jmeXZYmH8dvy2A4lwfrQ0jQSoHVNcg=";
+        hash = "sha256-njSvRi/sA7l5+XxfCpv3FY9SmCv5oPix9l2EZewZg1M=";
       };
       aarch64-linux = {
         url = "https://downloads.1password.com/linux/tar/stable/aarch64/1password-${version}.arm64.tar.gz";
-        hash = "sha256-Zv/mnykPi9PCDX44JtGi0GPrOujSmjx1BBJuEB81CwE=";
+        hash = "sha256-g4RMTlBQvJQaPD/6scYjpe7NWrL6gkjvh5b9LubTWaE=";
       };
       x86_64-darwin = {
         url = "https://downloads.1password.com/mac/1Password-${version}-x86_64.zip";
-        hash = "sha256-unC1cz5ooSdu4Csf7/daCyPdMy3/Lp3a76B7TBa/VXk=";
+        hash = "sha256-YzAYMk3SR+paIQYAZCx840u/k77soy17F15owpqRAU0=";
       };
       aarch64-darwin = {
         url = "https://downloads.1password.com/mac/1Password-${version}-aarch64.zip";
-        hash = "sha256-DS6oCdr6srF+diL68a2gOskS4x+uj1i8DtL3uaaxv/I=";
+        hash = "sha256-FlJnPMIv7mWh3dSACq01f16mB9EkVD2LOg3IIpvjwdY=";
       };
     };
     beta = {
       x86_64-linux = {
         url = "https://downloads.1password.com/linux/tar/beta/x86_64/1password-${version}.x64.tar.gz";
-        hash = "sha256-6I/3o+33sIkfyef8xGUWczaWykHPcvvAGv0xy/jCkKI=";
+        hash = "sha256-eX7D8D5KErFIQtyvg4oT+lR3A7sfRFpDMT7duigZTz0=";
       };
       aarch64-linux = {
         url = "https://downloads.1password.com/linux/tar/beta/aarch64/1password-${version}.arm64.tar.gz";
-        hash = "sha256-ph6DBBUzdUHtYCAQiA1me3bevtVPEgIxtwbgbdgQcGY=";
+        hash = "sha256-dajdeU8TtD9Dbnp2MFedAl8tuQr275cUqGAnm/VF+OE=";
       };
       x86_64-darwin = {
         url = "https://downloads.1password.com/mac/1Password-${version}-x86_64.zip";
-        hash = "sha256-XzZOj1pfoCTGMTsqZlI8hKTDRJ4w7debAPYHIIwsyyY=";
+        hash = "sha256-Dm8v7B8qDSBe1i7OJKQFn7YDPkw3Qj8YVtQkaQmdKuc=";
       };
       aarch64-darwin = {
         url = "https://downloads.1password.com/mac/1Password-${version}-aarch64.zip";
-        hash = "sha256-s+hnKhI2s6E1ZyJQxs3Wggy60LxCEr+u3tRtjTgjmZk=";
+        hash = "sha256-QSxJoVPlOQU7hbvbuVcB/kf5umRjJQuygMkXq6lE1CQ=";
       };
     };
   };
diff --git a/pkgs/applications/misc/1password/default.nix b/pkgs/applications/misc/1password/default.nix
index 71f93ae40e7a4..9ecc38a9abbbc 100644
--- a/pkgs/applications/misc/1password/default.nix
+++ b/pkgs/applications/misc/1password/default.nix
@@ -12,12 +12,12 @@ let
     if extension == "zip" then fetchzip args else fetchurl args;
 
   pname = "1password-cli";
-  version = "2.28.0";
+  version = "2.29.0";
   sources = rec {
-    aarch64-linux = fetch "linux_arm64" "sha256-rF0HWKLdLDmT5nXqZyn+nwd3DZxkP76Jm+xofvA1dpU=" "zip";
-    i686-linux = fetch "linux_386" "sha256-b9OPsZJTGoAeedj/dv88lkX2Q4p9HG585mWyl7ZfDz4=" "zip";
-    x86_64-linux = fetch "linux_amd64" "sha256-5ZiMQaQLYUR9BZroyG0o+M79cR4GQb6rDyVmIcTZh3o=" "zip";
-    aarch64-darwin = fetch "apple_universal" "sha256-5VmogWqCYMdrg9dyRt4lurPmSRdUUHt4LT3lkOEKdEI=" "pkg";
+    aarch64-linux = fetch "linux_arm64" "sha256-sBbdkoacGI/gawM4YH+BBCLDhC2B+cE4iKVGHBhwkic=" "zip";
+    i686-linux = fetch "linux_386" "sha256-TTd5juT0Aqp1+OfunXcuk0KbL6HIHQV31+1Q1e0GYMY=" "zip";
+    x86_64-linux = fetch "linux_amd64" "sha256-Bb6fNoeNxlbDfwt7Jr8BaKCmFUwSdsLQdVoCmQCNmLA=" "zip";
+    aarch64-darwin = fetch "apple_universal" "sha256-/ryklZnGhrgJggDIa8HmuDsHAXkdrWeXKCQGGVwUAAo=" "pkg";
     x86_64-darwin = aarch64-darwin;
   };
   platforms = builtins.attrNames sources;
diff --git a/pkgs/applications/misc/gmnitohtml/default.nix b/pkgs/applications/misc/gmnitohtml/default.nix
index 837379890b4cb..a1a080ac029ec 100644
--- a/pkgs/applications/misc/gmnitohtml/default.nix
+++ b/pkgs/applications/misc/gmnitohtml/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "gmnitohtml";
-  version = "0.1.2";
+  version = "0.1.3";
 
   src = fetchFromSourcehut {
     owner = "~adnano";
     repo = pname;
     rev = version;
-    hash = "sha256-nKNSLVBBdZI5mkbEUkMv0CIOQIyH3OX+SEFf5O47DFY=";
+    hash = "sha256-9lsZgh/OyxAu1rsixD6XUgQzR1xDGOxGt0sR12zrs2M=";
   };
-  vendorHash = "sha256-Cx8x8AISRVTA4Ufd73vOVky97LX23NkizHDingr/zVk=";
+  vendorHash = "sha256-ppplXXqb2DM/AU+B+LefndrBiiTgCRNw6hEupfeWr+o=";
 
   ldflags = [ "-s" "-w" ];
 
@@ -18,11 +18,11 @@ buildGoModule rec {
   nativeBuildInputs = [ scdoc installShellFiles ];
 
   postBuild = ''
-    make gmnitohtml.1
+    make docs
   '';
 
   postInstall = ''
-    installManPage gmnitohtml.1
+    installManPage docs/gmnitohtml.1
   '';
 
   doInstallCheck = true;
diff --git a/pkgs/applications/misc/gum/default.nix b/pkgs/applications/misc/gum/default.nix
index 258079f61c93d..d4a67e5f8a87d 100644
--- a/pkgs/applications/misc/gum/default.nix
+++ b/pkgs/applications/misc/gum/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "gum";
-  version = "0.14.0";
+  version = "0.14.1";
 
   src = fetchFromGitHub {
     owner = "charmbracelet";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-TpLaZ/935S57K60NdgJXVY+YQEedralZMoQHWRgkH+A=";
+    hash = "sha256-rQSSbDHMSWJDSxn/SNNMaOrdZJUhQPnZutmpY9828t0=";
   };
 
-  vendorHash = "sha256-UgpOHZ/CEnGsmUTyNrhh+qDmKEplr18b/OrO2qcIhF4=";
+  vendorHash = "sha256-pkQ8UvWLIWH8gXux/dd0HLdiz7RDrmFJ8SX63Q+nNyw=";
 
   nativeBuildInputs = [
     installShellFiles
diff --git a/pkgs/applications/misc/kiln/default.nix b/pkgs/applications/misc/kiln/default.nix
index cafa43fa4f8cf..14cf734d9860a 100644
--- a/pkgs/applications/misc/kiln/default.nix
+++ b/pkgs/applications/misc/kiln/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "kiln";
-  version = "0.4.0";
+  version = "0.4.1";
 
   src = fetchFromSourcehut {
     owner = "~adnano";
     repo = "kiln";
     rev = version;
-    hash = "sha256-BMYySYbV4Exl0gCUt+95FnOoIhKM1UO4cw8gCw3Zf9M=";
+    hash = "sha256-BbKd+0Dmo6RaoS0N7rQmSGJasuJb6dl43GZ7LdMBy/o=";
   };
 
   nativeBuildInputs = [ scdoc installShellFiles ];
 
-  vendorHash = "sha256-C1ueL/zmPzFbpNo5BF56/t74nwCUvb2Vu1exssPqOPE=";
+  vendorHash = "sha256-3s1+/RxOTNVFX9FnS94jLVGSr5IjZC/XucmnkxHhk5Q=";
 
   postInstall = ''
     scdoc < docs/kiln.1.scd > docs/kiln.1
diff --git a/pkgs/applications/misc/oxker/default.nix b/pkgs/applications/misc/oxker/default.nix
index 9e7c983d48018..081240b155d57 100644
--- a/pkgs/applications/misc/oxker/default.nix
+++ b/pkgs/applications/misc/oxker/default.nix
@@ -2,14 +2,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "oxker";
-  version = "0.6.3";
+  version = "0.6.4";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-L03r4PHCu+jsUC5vVSG77SR2ak/AsuVAhTd7P1WibAk=";
+    sha256 = "sha256-dBehxqr/UCXIQDMrGFN6ID+v0NYi50JTHuML3su2O0A=";
   };
 
-  cargoHash = "sha256-5UxbZZdVioy1OZCbE6qESGKVnVT6TS4VHzsKlQ8XP2c=";
+  cargoHash = "sha256-wI7yqRvaszBP4OtlWbWIZ9RLf5y7dx2KufYLaK+PWps=";
 
   meta = with lib; {
     description = "A simple tui to view & control docker containers";
diff --git a/pkgs/applications/misc/phoc/default.nix b/pkgs/applications/misc/phoc/default.nix
index 534556e231dec..7f75f856e7fdb 100644
--- a/pkgs/applications/misc/phoc/default.nix
+++ b/pkgs/applications/misc/phoc/default.nix
@@ -13,6 +13,7 @@
 , gnome-desktop
 , glib
 , gtk3
+, json-glib
 , wayland
 , libdrm
 , libxkbcommon
@@ -51,6 +52,7 @@ stdenv.mkDerivation (finalAttrs: {
     gnome-desktop
     # For keybindings settings schemas
     gnome.mutter
+    json-glib
     wayland
     finalAttrs.wlroots
     xorg.xcbutilwm
diff --git a/pkgs/applications/misc/remnote/default.nix b/pkgs/applications/misc/remnote/default.nix
index 198922f1876c8..f09a0181e71fa 100644
--- a/pkgs/applications/misc/remnote/default.nix
+++ b/pkgs/applications/misc/remnote/default.nix
@@ -1,50 +1,25 @@
-{ lib, stdenv, fetchurl, appimageTools, makeDesktopItem }:
-
-stdenv.mkDerivation (finalAttrs: let
-  inherit (finalAttrs) pname version src appexec icon desktopItem;
-
-in
 {
+  lib,
+  fetchurl,
+  appimageTools,
+}:
+let
   pname = "remnote";
-  version = "1.16.4";
-
+  version = "1.16.18";
   src = fetchurl {
-    url = "https://download.remnote.io/remnote-desktop/RemNote-${version}.AppImage";
-    hash = "sha256-dgbQ0cbPq7BSQ9VwwH6+GoAxb85HDxRixfjeDJBtOrg=";
-  };
-
-  appexec = appimageTools.wrapType2 {
-    inherit pname version src;
-  };
-
-  icon = fetchurl {
-    url = "https://www.remnote.io/icon.png";
-    hash = "sha256-r5D7fNefKPdjtmV7f/88Gn3tqeEG8LGuD4nHI/sCk94=";
+    url = "https://download2.remnote.io/remnote-desktop2/RemNote-${version}.AppImage";
+    hash = "sha256-ps7Rl1oA2QOPvO2XeCY8DrWtCV9WPlX9jbhypz2ZARA=";
   };
-
-  desktopItem = makeDesktopItem {
-    type = "Application";
-    name = "remnote";
-    desktopName = "RemNote";
-    comment = "Spaced Repetition";
-    icon = "remnote";
-    exec = "remnote %u";
-    categories = [ "Office" ];
-    mimeTypes = [ "x-scheme-handler/remnote" "x-scheme-handler/rn" ];
-  };
-
-  dontUnpack = true;
-  dontConfigure = true;
-  dontBuild = true;
-
-  installPhase = ''
-    runHook preInstall
-
-    install -Dm755 ${appexec}/bin/remnote $out/bin/remnote
-    install -Dm444 "${desktopItem}/share/applications/"* -t $out/share/applications/
-    install -Dm444 ${icon} $out/share/pixmaps/remnote.png
-
-    runHook postInstall
+  appimageContents = appimageTools.extractType2 { inherit pname version src; };
+in
+appimageTools.wrapType2 {
+  inherit pname version src;
+
+  extraInstallCommands = ''
+    install -Dm444 ${appimageContents}/remnote.desktop -t $out/share/applications
+    substituteInPlace $out/share/applications/remnote.desktop \
+      --replace-fail 'Exec=AppRun --no-sandbox %U' 'Exec=remnote %u'
+    install -Dm444 ${appimageContents}/remnote.png -t $out/share/pixmaps
   '';
 
   meta = with lib; {
@@ -55,4 +30,4 @@ in
     platforms = [ "x86_64-linux" ];
     mainProgram = "remnote";
   };
-})
+}
diff --git a/pkgs/applications/misc/uni/default.nix b/pkgs/applications/misc/uni/default.nix
index 57f88ab6eafef..5773c13ae68e8 100644
--- a/pkgs/applications/misc/uni/default.nix
+++ b/pkgs/applications/misc/uni/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "uni";
-  version = "2.6.0";
+  version = "2.7.0";
 
   src = fetchFromGitHub {
     owner = "arp242";
     repo = "uni";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Ij/jUbXl3GkeNZmGJ82i++6VkOW46YFI9m83otY6M7Q=";
+    hash = "sha256-ociPkuRtpBS+x1zSVNYk8oqAsJZGv31/TUUUlBOYhJA=";
   };
 
-  vendorHash = "sha256-88SSrGvZSs6Opi3IKSNNqptuOWMmtTQ4ZDR7ViuGugk=";
+  vendorHash = "sha256-/PvBn2RRYuVpjnrIL1xAcVqAKZuIV2KTSyVtBW1kqj4=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/applications/networking/blocky/default.nix b/pkgs/applications/networking/blocky/default.nix
index 6d2bf82cbb7fb..47e16239f8445 100644
--- a/pkgs/applications/networking/blocky/default.nix
+++ b/pkgs/applications/networking/blocky/default.nix
@@ -6,20 +6,20 @@
 
 buildGoModule rec {
   pname = "blocky";
-  version = "0.23";
+  version = "0.24";
 
   src = fetchFromGitHub {
     owner = "0xERR0R";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-IB5vi+nFXbV94YFtY2eMKTgzUgX8q8i8soSrso2zaD4=";
+    hash = "sha256-K+Zdb6l2WUhxVm/gi9U2vVR69bxr2ntLyIrkwTuc0Do=";
   };
 
   # needs network connection and fails at
   # https://github.com/0xERR0R/blocky/blob/development/resolver/upstream_resolver_test.go
   doCheck = false;
 
-  vendorHash = "sha256-h1CkvI7M1kt2Ix3D8+gDl97CFElV+0/9Eram1burOaM=";
+  vendorHash = "sha256-I4UXTynulsRuu9U8tsLbPQO1MMPfUC5dAZE420sW1sU=";
 
   ldflags = [ "-s" "-w" "-X github.com/0xERR0R/blocky/util.Version=${version}" ];
 
diff --git a/pkgs/applications/networking/browsers/floorp/default.nix b/pkgs/applications/networking/browsers/floorp/default.nix
index 7b015bafbb0fa..30c7d10fb025e 100644
--- a/pkgs/applications/networking/browsers/floorp/default.nix
+++ b/pkgs/applications/networking/browsers/floorp/default.nix
@@ -7,7 +7,7 @@
 
 ((buildMozillaMach rec {
   pname = "floorp";
-  packageVersion = "11.13.2";
+  packageVersion = "11.13.3";
   applicationName = "Floorp";
   binaryName = "floorp";
   branding = "browser/branding/official";
@@ -22,7 +22,7 @@
     repo = "Floorp";
     fetchSubmodules = true;
     rev = "v${packageVersion}";
-    hash = "sha256-sFtGtxk3vdR5JoZb1yiITybIfGmOYzKLb9NtbhWjBt8=";
+    hash = "sha256-9EDTVckSqv/nyDi4qjMd54I69WiqM8v6om7zQLT+pQc=";
   };
 
   extraConfigureFlags = [
diff --git a/pkgs/applications/networking/browsers/netsurf/libparserutils.nix b/pkgs/applications/networking/browsers/netsurf/libparserutils.nix
index a7db88925768e..73c8448f2604d 100644
--- a/pkgs/applications/networking/browsers/netsurf/libparserutils.nix
+++ b/pkgs/applications/networking/browsers/netsurf/libparserutils.nix
@@ -3,7 +3,7 @@
 , fetchurl
 , perl
 , buildsystem
-, iconv
+, libiconv
 }:
 
 stdenv.mkDerivation (finalAttrs: {
@@ -18,7 +18,8 @@ stdenv.mkDerivation (finalAttrs: {
   buildInputs = [
     perl
     buildsystem
-    iconv
+  ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
+    libiconv
   ];
 
   makeFlags = [
diff --git a/pkgs/applications/networking/browsers/polypane/default.nix b/pkgs/applications/networking/browsers/polypane/default.nix
index d00ce931a26fc..46e09803dbf70 100644
--- a/pkgs/applications/networking/browsers/polypane/default.nix
+++ b/pkgs/applications/networking/browsers/polypane/default.nix
@@ -2,12 +2,12 @@
 
 let
   pname = "polypane";
-  version = "19.0.1";
+  version = "19.0.2";
 
   src = fetchurl {
     url = "https://github.com/firstversionist/${pname}/releases/download/v${version}/${pname}-${version}.AppImage";
     name = "${pname}-${version}.AppImage";
-    sha256 = "sha256-wy+MzuGQ1+Ayj6SgyItKdy6nldTBy3p24xWlgFwcW+0=";
+    sha256 = "sha256-MyQiq2Lo/XtmJ7D1VZXncYWq53Bu3O3WBT/PkdJuEZM=";
   };
 
   appimageContents = appimageTools.extractType2 {
diff --git a/pkgs/applications/networking/cluster/argo/default.nix b/pkgs/applications/networking/cluster/argo/default.nix
index 52012a3617090..e66bfb0a9a10b 100644
--- a/pkgs/applications/networking/cluster/argo/default.nix
+++ b/pkgs/applications/networking/cluster/argo/default.nix
@@ -34,16 +34,16 @@ let
 in
 buildGoModule rec {
   pname = "argo";
-  version = "3.5.6";
+  version = "3.5.7";
 
   src = fetchFromGitHub {
     owner = "argoproj";
     repo = "argo";
     rev = "refs/tags/v${version}";
-    hash = "sha256-CcPY9eEpvDTIxilxHI+VBVVRxZy/82fi6uayBrGR/Dc=";
+    hash = "sha256-OJkC+uqOuXA6NBpVxmQAFs+N99d4Zonh9dcZnuB26Ts=";
   };
 
-  vendorHash = "sha256-ttpDGeANQyrTfRyNGFkmJFpE+nnjz8PZN+0HScBJ1yg=";
+  vendorHash = "sha256-O7Lv5RLcqB4JbdXHKXFWkg/dvids8QH619urpeACuN8=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/networking/cluster/argocd/default.nix b/pkgs/applications/networking/cluster/argocd/default.nix
index fc26ce3d5ba8b..175bdfdcb90a0 100644
--- a/pkgs/applications/networking/cluster/argocd/default.nix
+++ b/pkgs/applications/networking/cluster/argocd/default.nix
@@ -2,17 +2,17 @@
 
 buildGoModule rec {
   pname = "argocd";
-  version = "2.11.1";
+  version = "2.11.2";
 
   src = fetchFromGitHub {
     owner = "argoproj";
     repo = "argo-cd";
     rev = "v${version}";
-    hash = "sha256-v3Y85e0I5CCL4+cT4O/VhKRIHKiw088XbqjuwZr0CeM=";
+    hash = "sha256-lePMdjWq4qFQcxFZzfLyTsMwgcmjIoBmosZs5G4CWvc=";
   };
 
   proxyVendor = true; # darwin/linux hash mismatch
-  vendorHash = "sha256-+YRLIQWInGCV2ORuABvM4cCjiMznENmAmE2jF9Eql6w=";
+  vendorHash = "sha256-atgNLlHoX+KBtJcYZNqNsYBK0cVGI/k2mXvmcr6wWN4=";
 
   # Set target as ./cmd per cli-local
   # https://github.com/argoproj/argo-cd/blob/master/Makefile#L227
diff --git a/pkgs/applications/networking/cluster/atlantis/default.nix b/pkgs/applications/networking/cluster/atlantis/default.nix
index 799633712128b..0f1eb350b9fe1 100644
--- a/pkgs/applications/networking/cluster/atlantis/default.nix
+++ b/pkgs/applications/networking/cluster/atlantis/default.nix
@@ -2,20 +2,20 @@
 
 buildGoModule rec {
   pname = "atlantis";
-  version = "0.27.3";
+  version = "0.28.0";
 
   src = fetchFromGitHub {
     owner = "runatlantis";
     repo = "atlantis";
     rev = "v${version}";
-    hash = "sha256-BC4WSyKnDM9RhM+2iU9dBZLbtxDM/UoMmIDTP6DB3no=";
+    hash = "sha256-ROve0R2k65CChu1nlkObvipxi66TA2XTTRmQ8qpJLO8=";
   };
   ldflags = [
     "-X=main.version=${version}"
     "-X=main.date=1970-01-01T00:00:00Z"
   ];
 
-  vendorHash = "sha256-6Di8XLX1rOjVnIA+5kQB59aZ3qRmkjciWD0+GD9Lpzw=";
+  vendorHash = "sha256-eYS7dO9BCnn9p1HgDOt4vliPYLsR0TaNwSpUoMO6eAk=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/applications/networking/cluster/civo/default.nix b/pkgs/applications/networking/cluster/civo/default.nix
index b3443453245dc..0397fa3d08cc2 100644
--- a/pkgs/applications/networking/cluster/civo/default.nix
+++ b/pkgs/applications/networking/cluster/civo/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "civo";
-  version = "1.0.83";
+  version = "1.0.84";
 
   src = fetchFromGitHub {
     owner  = "civo";
     repo   = "cli";
     rev    = "v${version}";
-    sha256 = "sha256-jRs8RMdTq5xylcYBN59+JzXlJlTJRp7bJVMvEmvzSnc=";
+    sha256 = "sha256-LKdH9gF4GOYenjlSHQalA7EUY1Lu6Bz6oMpAkqHnkMo=";
   };
 
-  vendorHash = "sha256-NYNp4KGcVma4ltkq2SJZJOaeKS0j/X2TlUrOnptxiYE=";
+  vendorHash = "sha256-bEyknQc7TCxbWj7VsjJ2WGz65BG8HaP8ldL2kb+bbtc=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/applications/networking/cluster/helmfile/default.nix b/pkgs/applications/networking/cluster/helmfile/default.nix
index f0fa298e77862..a541f60a18ed5 100644
--- a/pkgs/applications/networking/cluster/helmfile/default.nix
+++ b/pkgs/applications/networking/cluster/helmfile/default.nix
@@ -8,16 +8,16 @@
 
 buildGo122Module rec {
   pname = "helmfile";
-  version = "0.162.0";
+  version = "0.165.0";
 
   src = fetchFromGitHub {
     owner = "helmfile";
     repo = "helmfile";
     rev = "v${version}";
-    hash = "sha256-BiouIaiYveQe0sTgvuf1R1S0qydLpoxWl958zyVFvWE=";
+    hash = "sha256-fXrfthjWaCo0p7NwP9EWa0uFeCCHInzi7h2tgawHlh0=";
   };
 
-  vendorHash = "sha256-z6UfyruXLzcH9iLgsM6Wmb1i8PWrroAbhGi2fphYBoA=";
+  vendorHash = "sha256-nWfj/E3Lg58wZ27LEI91+Ns9lj+unK6xYTEcxdAFOXI=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/networking/cluster/kubecm/default.nix b/pkgs/applications/networking/cluster/kubecm/default.nix
index 5fe9f237b6faf..5be7992474d96 100644
--- a/pkgs/applications/networking/cluster/kubecm/default.nix
+++ b/pkgs/applications/networking/cluster/kubecm/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kubecm";
-  version = "0.28.0";
+  version = "0.29.0";
 
   src = fetchFromGitHub {
     owner = "sunny0826";
     repo = "kubecm";
     rev = "v${version}";
-    hash = "sha256-v2frNvJUvDjPhV1RCR3DHk04kYEqP6hMXeA4j3cWlss=";
+    hash = "sha256-zspAtLomgdIymP3xj3VG2rAhMJAquJCNWRdAM5wPcLg=";
   };
 
-  vendorHash = "sha256-uM9/rqu5WOXK6bqxhtmje+Zd9dtdv3qwt+Xr0SJHjPs=";
+  vendorHash = "sha256-eWKGmVkvMP/vN03pWiShPzZN0vSkhneSK48S4AVBdkM=";
   ldflags = [ "-s" "-w" "-X github.com/sunny0826/kubecm/version.Version=${version}"];
 
   doCheck = false;
diff --git a/pkgs/applications/networking/cluster/kubeseal/default.nix b/pkgs/applications/networking/cluster/kubeseal/default.nix
index d6a3f9826dff5..7db64aa5b36d4 100644
--- a/pkgs/applications/networking/cluster/kubeseal/default.nix
+++ b/pkgs/applications/networking/cluster/kubeseal/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kubeseal";
-  version = "0.26.2";
+  version = "0.26.3";
 
   src = fetchFromGitHub {
     owner = "bitnami-labs";
     repo = "sealed-secrets";
     rev = "v${version}";
-    sha256 = "sha256-96yaWHRfEHjXYZ9Hsh9bXk5O5viSOYhmwJ18JCbtv2U=";
+    sha256 = "sha256-2MU1/znfp2LfojfgFPovgcJbZLtqY+6O7YKZNhPIT8k=";
   };
 
-  vendorHash = "sha256-91GKy7tNKSOiJmpArgp56RXegYP7sdGpaRAxS9xwTXA=";
+  vendorHash = "sha256-B50+G29ze1jPBTlFA0nvMfh25t4Xb3YCxEkPkjxKMj0=";
 
   subPackages = [ "cmd/kubeseal" ];
 
diff --git a/pkgs/applications/networking/cluster/kubeshark/default.nix b/pkgs/applications/networking/cluster/kubeshark/default.nix
index a5fd286984c13..020c4df7f3349 100644
--- a/pkgs/applications/networking/cluster/kubeshark/default.nix
+++ b/pkgs/applications/networking/cluster/kubeshark/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kubeshark";
-  version = "52.3.0";
+  version = "52.3.59";
 
   src = fetchFromGitHub {
     owner = "kubeshark";
     repo = "kubeshark";
     rev = "v${version}";
-    hash = "sha256-7tTXhILWnYRFyKBw1Im9Q9/oqlKJAP478qiBEoTUGMc=";
+    hash = "sha256-7IpI9iyeS/2Z4QXomstT4EtNjBl6ud3g2ChC8UmkmZM=";
   };
 
-  vendorHash = "sha256-SmvO9DYOXxnmN2dmHPPOguVwEbWSH/xNLBB+idpzopo=";
+  vendorHash = "sha256-0WRmAqslZj63m+kCFKIBgoRX47ZyRuU7ZihmF6wmZy4=";
 
   ldflags = let t = "github.com/kubeshark/kubeshark"; in [
    "-s" "-w"
diff --git a/pkgs/applications/networking/cluster/kyverno/default.nix b/pkgs/applications/networking/cluster/kyverno/default.nix
index b80e2726bffc8..92c36cce4ec20 100644
--- a/pkgs/applications/networking/cluster/kyverno/default.nix
+++ b/pkgs/applications/networking/cluster/kyverno/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "kyverno";
-  version = "1.12.1";
+  version = "1.12.2";
 
   src = fetchFromGitHub {
     owner = "kyverno";
     repo = "kyverno";
     rev = "v${version}";
-    hash = "sha256-2x5xLh+v1/RXG3h93Ff49pT9NwHWNx4tubnmCf0SAdY=";
+    hash = "sha256-gR/gpoldtwW0bVjWr5xwbfcKb6VJ43otWnSFrcYerII=";
   };
 
   ldflags = [
@@ -18,7 +18,7 @@ buildGoModule rec {
     "-X github.com/kyverno/kyverno/pkg/version.BuildTime=1970-01-01_00:00:00"
   ];
 
-  vendorHash = "sha256-5tBHmHfBHTsAVDk3i0z2R2amTfOvWHJutTNW2ofGZuQ=";
+  vendorHash = "sha256-sSsLs3EedStYlMYKFXIMdNHtrG8ijyu9+2MCYjjzZR4=";
 
   subPackages = [ "cmd/cli/kubectl-kyverno" ];
 
diff --git a/pkgs/applications/networking/cluster/pachyderm/default.nix b/pkgs/applications/networking/cluster/pachyderm/default.nix
index 1694359a02b24..092eeb2a9d8ef 100644
--- a/pkgs/applications/networking/cluster/pachyderm/default.nix
+++ b/pkgs/applications/networking/cluster/pachyderm/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "pachyderm";
-  version = "2.9.5";
+  version = "2.10.1";
 
   src = fetchFromGitHub {
     owner = "pachyderm";
     repo = "pachyderm";
     rev = "v${version}";
-    hash = "sha256-9ykJMK51fm36sbICyuHJR7dSRnwIHhaQV2foKOuFmz0=";
+    hash = "sha256-ok3TaQ8Vn+dDnlfJ/5n6qFTkYER/jVhFRPAqzGXp1iI=";
   };
 
-  vendorHash = "sha256-bAB2vMPHIcJaMobPukQyKiCq0Af0n4b5mjImTswGFTo=";
+  vendorHash = "sha256-AxKhxXZQ2sBvXs9C6b7WkjpNsYl6MSO/C2ttmRRtBGw=";
 
   subPackages = [ "src/server/cmd/pachctl" ];
 
diff --git a/pkgs/applications/networking/cluster/rke2/default.nix b/pkgs/applications/networking/cluster/rke2/default.nix
index 99b0998582f4e..2ac749148f0f0 100644
--- a/pkgs/applications/networking/cluster/rke2/default.nix
+++ b/pkgs/applications/networking/cluster/rke2/default.nix
@@ -1,4 +1,11 @@
-{ lib, stdenv, buildGoModule, fetchFromGitHub }:
+{ lib, stdenv, buildGoModule, fetchFromGitHub, makeWrapper, nix-update-script
+
+# Runtime dependencies
+, procps, coreutils, util-linux, ethtool, socat, iptables, bridge-utils, iproute2, kmod, lvm2
+
+# Testing dependencies
+, nixosTests, testers, rke2
+}:
 
 buildGoModule rec {
   pname = "rke2";
@@ -21,14 +28,45 @@ buildGoModule rec {
     sed -e 's/STATIC_FLAGS=.*/STATIC_FLAGS=/g' -i scripts/build-binary
   '';
 
+  nativeBuildInputs = [ makeWrapper ];
+
+  # Important utilities used by the kubelet.
+  # See: https://github.com/kubernetes/kubernetes/issues/26093#issuecomment-237202494
+  # Notice the list in that issue is stale, but as a redundancy reservation.
+  buildInputs = [
+    procps # pidof pkill
+    coreutils # uname touch env nice du
+    util-linux # lsblk fsck mkfs nsenter mount umount
+    ethtool # ethtool
+    socat # socat
+    iptables # iptables iptables-restore iptables-save
+    bridge-utils # brctl
+    iproute2 # ip tc
+    kmod # modprobe
+    lvm2 # dmsetup
+  ];
+
   buildPhase = ''
     DRONE_TAG="v${version}" ./scripts/build-binary
   '';
 
   installPhase = ''
     install -D ./bin/rke2 $out/bin/rke2
+    wrapProgram $out/bin/rke2 \
+      --prefix PATH : ${lib.makeBinPath buildInputs}
   '';
 
+  passthru.updateScript = nix-update-script { };
+
+  passthru.tests = {
+    version = testers.testVersion {
+      package = rke2;
+      version = "v${version}";
+    };
+  } // lib.optionalAttrs stdenv.isLinux {
+    inherit (nixosTests) rke2;
+  };
+
   meta = with lib; {
     homepage = "https://github.com/rancher/rke2";
     description = "RKE2, also known as RKE Government, is Rancher's next-generation Kubernetes distribution.";
@@ -36,6 +74,6 @@ buildGoModule rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ zimbatm zygot ];
     mainProgram = "rke2";
-    broken = stdenv.isDarwin;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/networking/cluster/roxctl/default.nix b/pkgs/applications/networking/cluster/roxctl/default.nix
index abcb6fd4299ac..abc77155eb5ce 100644
--- a/pkgs/applications/networking/cluster/roxctl/default.nix
+++ b/pkgs/applications/networking/cluster/roxctl/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "roxctl";
-  version = "4.3.5";
+  version = "4.4.2";
 
   src = fetchFromGitHub {
     owner = "stackrox";
     repo = "stackrox";
     rev = version;
-    sha256 = "sha256-zTZ03Qtb3ndBf1MunhYS8rzPReExzEPGxCh1JexkwuA=";
+    sha256 = "sha256-OHDQr83EQn0qjObuzldRAa9fDv1itqipkDRcKdt3kxg=";
   };
 
-  vendorHash = "sha256-Sl5eIK8PWeGi2V7q/Qm5Gfjj1A9nQPtM0BGdO6inPxk=";
+  vendorHash = "sha256-SLr7h830lZpou2FyYqqUsYzRsh/QzMgkTArAJjHzCx0=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/applications/networking/cluster/tftui/default.nix b/pkgs/applications/networking/cluster/tftui/default.nix
index f7faea2dd1956..e72723425f66b 100644
--- a/pkgs/applications/networking/cluster/tftui/default.nix
+++ b/pkgs/applications/networking/cluster/tftui/default.nix
@@ -7,14 +7,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "tftui";
-  version = "0.13.1";
+  version = "0.13.2";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "idoavrah";
     repo = "terraform-tui";
     rev = "refs/tags/v${version}";
-    hash = "sha256-5eMOd+jpJh5jxthzk5JCl3vvri0PtffolSzdHY/3nbg=";
+    hash = "sha256-/y1dgQtpaIRVvhb/esJns3UPwKU1bAFHSQ8tCWzIuIw=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/applications/networking/cluster/zarf/default.nix b/pkgs/applications/networking/cluster/zarf/default.nix
index 4feb61699e568..e580dd7e6ff27 100644
--- a/pkgs/applications/networking/cluster/zarf/default.nix
+++ b/pkgs/applications/networking/cluster/zarf/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "zarf";
-  version = "0.33.2";
+  version = "0.34.0";
 
   src = fetchFromGitHub {
     owner = "defenseunicorns";
     repo = "zarf";
     rev = "v${version}";
-    hash = "sha256-BafS+++8iTVT38pneqCfAQFg15PpXOW/Bv8anmdHZTg=";
+    hash = "sha256-o3sfvzUCCW7hwNDrWH1IiRyZHkVnxffJdLS8BqzD5Ng=";
   };
 
-  vendorHash = "sha256-4AN/0OgFX+5uymN/QfOr0sZipTmszhieOPmReKciFtg=";
+  vendorHash = "sha256-Co9xKC7J0WGoaYxa+YukrP+6aOuhweZyXaH5wD97ioA=";
   proxyVendor = true;
 
   preBuild = ''
diff --git a/pkgs/applications/networking/coreth/default.nix b/pkgs/applications/networking/coreth/default.nix
index e5af4fa397ed9..519482a1cb7dd 100644
--- a/pkgs/applications/networking/coreth/default.nix
+++ b/pkgs/applications/networking/coreth/default.nix
@@ -6,19 +6,19 @@
 
 buildGoModule rec {
   pname = "coreth";
-  version = "0.13.3";
+  version = "0.13.4";
 
   src = fetchFromGitHub {
     owner = "ava-labs";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-XVACkk/DUI4AIPRSQgu0g9WHmedjqscZbcz84HIi7jY=";
+    hash = "sha256-jksJgWh2FyP2iYOgA9XiRKUpKvINfIv8ini3X36Zy9U=";
   };
 
   # go mod vendor has a bug, see: golang/go#57529
   proxyVendor = true;
 
-  vendorHash = "sha256-zqvo0hZIOyF5Bzig1hi4KRUDETNiiy1Ll/FFO9hRmYU=";
+  vendorHash = "sha256-2shBVIn/qJQlY+f0xsS9NTZkzcWEnhJpEezNYT6+8F4=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/applications/networking/instant-messengers/chatty/default.nix b/pkgs/applications/networking/instant-messengers/chatty/default.nix
index ea43f470e8bb6..c939412e152f0 100644
--- a/pkgs/applications/networking/instant-messengers/chatty/default.nix
+++ b/pkgs/applications/networking/instant-messengers/chatty/default.nix
@@ -15,6 +15,7 @@
 , gnome-desktop
 , gspell
 , gtk4
+, gtksourceview5
 , gst_all_1
 , json-glib
 , libgcrypt
@@ -28,17 +29,17 @@
 , plugins ? [ ]
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "chatty";
-  version = "0.8.2";
+  version = "0.8.3";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "World";
     repo = "Chatty";
-    rev = "v${version}";
+    rev = "v${finalAttrs.version}";
     fetchSubmodules = true;
-    hash = "sha256-7SdoN9JjGwELOdISJwS1Afcydp/rE2uq/tHO/UrFKNU=";
+    hash = "sha256-Ywed/8PhOgmzcka+5dyxjmWTcDBPF90LW+C2eeQmyLo=";
   };
 
   nativeBuildInputs = [
@@ -59,6 +60,7 @@ stdenv.mkDerivation rec {
     gnome-desktop
     gspell
     gtk4
+    gtksourceview5
     gst_all_1.gstreamer
     json-glib
     libgcrypt
@@ -82,9 +84,9 @@ stdenv.mkDerivation rec {
     description = "XMPP and SMS messaging via libpurple and ModemManager";
     mainProgram = "chatty";
     homepage = "https://gitlab.gnome.org/World/Chatty";
-    changelog = "https://gitlab.gnome.org/World/Chatty/-/blob/${src.rev}/NEWS";
+    changelog = "https://gitlab.gnome.org/World/Chatty/-/blob/${finalAttrs.src.rev}/NEWS";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dotlambda ];
     platforms = platforms.linux;
   };
-}
+})
diff --git a/pkgs/applications/networking/instant-messengers/discord/default.nix b/pkgs/applications/networking/instant-messengers/discord/default.nix
index 863e27823bf58..09840fbe61393 100644
--- a/pkgs/applications/networking/instant-messengers/discord/default.nix
+++ b/pkgs/applications/networking/instant-messengers/discord/default.nix
@@ -3,14 +3,14 @@ let
   versions =
     if stdenv.isLinux then {
       stable = "0.0.54";
-      ptb = "0.0.84";
-      canary = "0.0.382";
-      development = "0.0.18";
+      ptb = "0.0.85";
+      canary = "0.0.402";
+      development = "0.0.19";
     } else {
-      stable = "0.0.303";
-      ptb = "0.0.113";
-      canary = "0.0.492";
-      development = "0.0.40";
+      stable = "0.0.305";
+      ptb = "0.0.114";
+      canary = "0.0.510";
+      development = "0.0.41";
     };
   version = versions.${branch};
   srcs = rec {
@@ -21,33 +21,33 @@ let
       };
       ptb = fetchurl {
         url = "https://dl-ptb.discordapp.net/apps/linux/${version}/discord-ptb-${version}.tar.gz";
-        hash = "sha256-0bOsmy2ldZT7S4tVOkihE5eLiujXC/ugF8CKXfBXHNU=";
+        hash = "sha256-2RyilxldJX2wqKlEcrp6srj0O7UNHMxySRJD1xBfqMk=";
       };
       canary = fetchurl {
         url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz";
-        hash = "sha256-MXMq4V+21KPHoCUs5x1rNRbkfw6+3cF7xSSNguiqOfc=";
+        hash = "sha256-YE+sHmEkUCHLflSUgf4aotWWdzhbFyzozc3vLcJ96yA=";
       };
       development = fetchurl {
         url = "https://dl-development.discordapp.net/apps/linux/${version}/discord-development-${version}.tar.gz";
-        hash = "sha256-SoJ4/jXl0axQyeqv8CPSzM+lBsYq/QelHctRAeoscdA=";
+        hash = "sha256-RP6SUM4DW3JhddSbJX6Xg8EE4iqCkSOgBL1oa7Zwp/E=";
       };
     };
     x86_64-darwin = {
       stable = fetchurl {
         url = "https://dl.discordapp.net/apps/osx/${version}/Discord.dmg";
-        hash = "sha256-B4r0W//d3761ufQr4PAt4ZuPMrOC7Zfo8Q3lHqKxkJ0=";
+        hash = "sha256-UEKsweUvtVKXZDrdIYuo3FPSPrnY3ECIilntBs9ZrGU=";
       };
       ptb = fetchurl {
         url = "https://dl-ptb.discordapp.net/apps/osx/${version}/DiscordPTB.dmg";
-        hash = "sha256-hdT33jK0nHvY3rIh9i1eDq5j46xS9xInRxzGCUP/hi8=";
+        hash = "sha256-ahCgJ1aSLL7Mhx5Jjkeuqqlis8gqxHbIhQvlbUK2wIU=";
       };
       canary = fetchurl {
         url = "https://dl-canary.discordapp.net/apps/osx/${version}/DiscordCanary.dmg";
-        hash = "sha256-74XQu4PGW3eW4wPICGsAVlR4SQkDXJWZ1p/G7Bwq950=";
+        hash = "sha256-viWOmu1+6tpzNDN/q0kXRMo+rohOP6/L7ke2EeBEADg=";
       };
       development = fetchurl {
         url = "https://dl-development.discordapp.net/apps/osx/${version}/DiscordDevelopment.dmg";
-        hash = "sha256-uPz3uWPAqp3JeL9E+coMrb2Hc+Zn0YGF9Jw3BTKYRlw=";
+        hash = "sha256-RiGyca/zjPpENgcq9KnRh5G4YArrUOQeueUdUBgZgjo=";
       };
     };
     aarch64-darwin = x86_64-darwin;
diff --git a/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/default.nix b/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/default.nix
index c478d24a6c8f6..935e11103b828 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/default.nix
@@ -15,6 +15,7 @@
 , qtsvg
 , qtimageformats
 , gtk3
+, glib-networking
 , boost
 , fmt
 , libdbusmenu
@@ -137,6 +138,7 @@ stdenv.mkDerivation rec {
   ] ++ lib.optionals stdenv.isLinux [
     qtwayland
     gtk3
+    glib-networking
     fmt
     libdbusmenu
     alsa-lib
diff --git a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
index c6de2bc44cee1..2fe3b8b7a3f45 100644
--- a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
+++ b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
@@ -48,23 +48,23 @@ let
   # and often with different versions.  We write them on three lines
   # like this (rather than using {}) so that the updater script can
   # find where to edit them.
-  versions.aarch64-darwin = "6.0.2.33403";
-  versions.x86_64-darwin = "6.0.2.33403";
-  versions.x86_64-linux = "6.0.2.4680";
+  versions.aarch64-darwin = "6.0.11.35001";
+  versions.x86_64-darwin = "6.0.11.35001";
+  versions.x86_64-linux = "6.0.10.5325";
 
   srcs = {
     aarch64-darwin = fetchurl {
       url = "https://zoom.us/client/${versions.aarch64-darwin}/zoomusInstallerFull.pkg?archType=arm64";
       name = "zoomusInstallerFull.pkg";
-      hash = "sha256-2JQf+gvMUUBsPuiP0VKkX9UR6IqL0NK0gtG4TdugJQ4=";
+      hash = "sha256-U8CdizMicbBLrKWYSRYl8u5tD/1276HwdHlr4kVHbiQ=";
     };
     x86_64-darwin = fetchurl {
       url = "https://zoom.us/client/${versions.x86_64-darwin}/zoomusInstallerFull.pkg";
-      hash = "sha256-M6JsABqbzvj6rlHI2QyqRH6R+hQkf0yx10t4lDVppso=";
+      hash = "sha256-iAETUWviaaQeEg6/FM1GWSJ3Qyvc0zBfuqOfA6X7HpY=";
     };
     x86_64-linux = fetchurl {
       url = "https://zoom.us/client/${versions.x86_64-linux}/zoom_x86_64.pkg.tar.xz";
-      hash = "sha256-027oAblhH8EJWRXKIEs9upNvjsSFkA0wxK1t8m8nwj8=";
+      hash = "sha256-EStiiTUwSZFM9hyYXHDErlb0m6yjRwNl7O7XLXtkvjI=";
     };
   };
 
diff --git a/pkgs/applications/networking/juju/default.nix b/pkgs/applications/networking/juju/default.nix
index 8780e74a73e84..34f703b4b134f 100644
--- a/pkgs/applications/networking/juju/default.nix
+++ b/pkgs/applications/networking/juju/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "juju";
-  version = "3.3.5";
+  version = "3.5.0";
 
   src = fetchFromGitHub {
     owner = "juju";
     repo = "juju";
     rev = "v${version}";
-    hash = "sha256-sp4KLRKII1oEmdbCHzs5fbE/68NbKrHE3bxO14byYFk=";
+    hash = "sha256-35m6e7AWhYnCl+s/i78krYA8As14inI3os8HMBJwCJY=";
   };
 
-  vendorHash = "sha256-a50W9V1xxmItHS2DZkkXYEZ7I6aJxDo1+IriOlMPDyw=";
+  vendorHash = "sha256-4G4GspvNMVbfJJ8MfQtrhp5MRcDw0nhHvdlNdRJgpIM=";
 
   subPackages = [
     "cmd/juju"
diff --git a/pkgs/applications/networking/mailreaders/mutt/default.nix b/pkgs/applications/networking/mailreaders/mutt/default.nix
index 7da31db64e08a..817e3a4c99d9d 100644
--- a/pkgs/applications/networking/mailreaders/mutt/default.nix
+++ b/pkgs/applications/networking/mailreaders/mutt/default.nix
@@ -39,13 +39,18 @@ stdenv.mkDerivation rec {
     sha256 = "0b4i00chvx6zj9pcb06x2jysmrcb2znn831lcy32cgfds6gr3nsi";
   });
 
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    perl which
+  ];
+
   buildInputs =
-    [ ncurses which perl ]
+    [ ncurses ]
     ++ lib.optional headerCache  gdbm
     ++ lib.optional sslSupport   openssl
     ++ lib.optional gssSupport   libkrb5
-    ++ lib.optional saslSupport  cyrus_sasl
-    ++ lib.optional gpgmeSupport gpgme;
+    ++ lib.optional saslSupport  cyrus_sasl;
 
   configureFlags = [
     (lib.enableFeature headerCache  "hcache")
@@ -66,9 +71,10 @@ stdenv.mkDerivation rec {
     # set by the installer, and removing the need for the group 'mail'
     # I set the value 'mailbox' because it is a default in the configure script
     "--with-homespool=mailbox"
-  ] ++ lib.optional sslSupport  "--with-ssl"
-    ++ lib.optional gssSupport  "--with-gss"
-    ++ lib.optional saslSupport "--with-sasl";
+  ] ++ lib.optional sslSupport   "--with-ssl"
+    ++ lib.optional gssSupport   "--with-gss"
+    ++ lib.optional saslSupport  "--with-sasl"
+    ++ lib.optional gpgmeSupport "--with-gpgme-prefix=${lib.getDev gpgme}";
 
   postPatch = lib.optionalString (smimeSupport || gpgmeSupport) ''
     sed -i 's#/usr/bin/openssl#${openssl}/bin/openssl#' smime_keys.pl
diff --git a/pkgs/applications/networking/sync/desync/default.nix b/pkgs/applications/networking/sync/desync/default.nix
index e2c43315338ed..88fc9be1a9ea0 100644
--- a/pkgs/applications/networking/sync/desync/default.nix
+++ b/pkgs/applications/networking/sync/desync/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "desync";
-  version = "0.9.5";
+  version = "0.9.6";
 
   src = fetchFromGitHub {
     owner = "folbricht";
     repo = "desync";
     rev = "refs/tags/v${version}";
-    hash = "sha256-FeZhLY0fUUNNqa6qZZnh2z06+NgcAI6gY8LRR4xI5sM=";
+    hash = "sha256-TwzD9WYi4cdDPKKV2XoqkGWJ9CzIwoxeFll8LqNWf/E=";
   };
 
-  vendorHash = "sha256-1RuqlDU809mtGn0gOFH/AW6HJo1cQqt8spiLp3/FpcI=";
+  vendorHash = "sha256-CBw5FFGQgvdYoOUZ6E1F/mxqzNKOwh2IZbsh0dAsLEE=";
 
   # nix builder doesn't have access to test data; tests fail for reasons unrelated to binary being bad.
   doCheck = false;
diff --git a/pkgs/applications/office/qownnotes/default.nix b/pkgs/applications/office/qownnotes/default.nix
index e417fee4a433a..3003475b22771 100644
--- a/pkgs/applications/office/qownnotes/default.nix
+++ b/pkgs/applications/office/qownnotes/default.nix
@@ -21,14 +21,14 @@
 let
   pname = "qownnotes";
   appname = "QOwnNotes";
-  version = "24.5.4";
+  version = "24.5.8";
 in
 stdenv.mkDerivation {
   inherit pname version;
 
   src = fetchurl {
     url = "https://github.com/pbek/QOwnNotes/releases/download/v${version}/qownnotes-${version}.tar.xz";
-    hash = "sha256-OxCkIN596Zzjd2ldRn7MRpSupb2fhbZH4Hwr16Mz6Fo=";
+    hash = "sha256-ciTgJxDRQdPiQuXsiesYgvwSIdtJnkzYwQhvoKYS6mo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/office/zk/default.nix b/pkgs/applications/office/zk/default.nix
index 6cdbb0d63af25..96429770662a1 100644
--- a/pkgs/applications/office/zk/default.nix
+++ b/pkgs/applications/office/zk/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "zk";
-  version = "0.14.0";
+  version = "0.14.1";
 
   src = fetchFromGitHub {
-    owner = "mickael-menu";
+    owner = "zk-org";
     repo = "zk";
     rev = "v${version}";
-    sha256 = "sha256-c0Grk5Bs9MOzuvWYbp+Y6cHouljUWoM3i7vFmQRFR18=";
+    sha256 = "sha256-PbF2k7b03Oo3fIWIN4BHUZJ625HUeX+htT9FTINowIs=";
   };
 
-  vendorHash = "sha256-23m0fHYJl3X2uHCFnMYID9umTjZvGFoOKTtRrerlWKg=";
+  vendorHash = "sha256-UZsJa5hmMQwe9lhrp4ey8GGTkWUF8xJW+LPWMR0qfoo=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/radio/cloudlog/default.nix b/pkgs/applications/radio/cloudlog/default.nix
index 162c9cac96589..76ed366bce645 100644
--- a/pkgs/applications/radio/cloudlog/default.nix
+++ b/pkgs/applications/radio/cloudlog/default.nix
@@ -8,13 +8,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "cloudlog";
-  version = "2.6.12";
+  version = "2.6.13";
 
   src = fetchFromGitHub {
     owner = "magicbug";
     repo = "Cloudlog";
     rev = version;
-    hash = "sha256-djY+TqkA+YFCmUwZd1x4YeJDOS6ZtxDb4EhBmyftSzI=";
+    hash = "sha256-jhg6Rdd/QhsKZHaeE/2Rh0o0uLD5Jd+3mfXmkpbFcEM=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/radio/quisk/default.nix b/pkgs/applications/radio/quisk/default.nix
index 733f908ffc44f..6593d276a51f6 100644
--- a/pkgs/applications/radio/quisk/default.nix
+++ b/pkgs/applications/radio/quisk/default.nix
@@ -8,11 +8,11 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "quisk";
-  version = "4.2.33";
+  version = "4.2.34";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-41eyqYxRg0crtN6qp239eHWSFPt7XuJneTAndZuS3EY=";
+    sha256 = "sha256-PwBQmL6CnDp55eLhXr3vpJXf4DcKAwzFSCnzxt5Nob4=";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/science/biology/last/default.nix b/pkgs/applications/science/biology/last/default.nix
index 85fb1ca80ac65..700b2cf3b4548 100644
--- a/pkgs/applications/science/biology/last/default.nix
+++ b/pkgs/applications/science/biology/last/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "last";
-  version = "1543";
+  version = "1544";
 
   src = fetchFromGitLab {
     owner = "mcfrith";
     repo = "last";
     rev = "refs/tags/${version}";
-    hash = "sha256-APHPv7Q64JITfHsvjCThZ6hvGHerk6wjOm32KdTv4k8=";
+    hash = "sha256-jxNudfUvSqV1QUzdvG8LWtL977oho9QuOQImmwbQiIM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/science/biology/sratoolkit/default.nix b/pkgs/applications/science/biology/sratoolkit/default.nix
index a36157ed5d169..fa406716fd0f1 100644
--- a/pkgs/applications/science/biology/sratoolkit/default.nix
+++ b/pkgs/applications/science/biology/sratoolkit/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/ncbi/sra-tools";
     description = "The SRA Toolkit and SDK from NCBI is a collection of tools and libraries for using data in the INSDC Sequence Read Archives.";
-    license = licenses.publicDomain;
+    license = licenses.ncbiPd;
     maintainers = with maintainers; [ thyol ];
     platforms = [ "x86_64-linux" ];
   };
diff --git a/pkgs/applications/science/logic/hol_light/default.nix b/pkgs/applications/science/logic/hol_light/default.nix
index 813397ba01f93..0e3dee4b0c0ad 100644
--- a/pkgs/applications/science/logic/hol_light/default.nix
+++ b/pkgs/applications/science/logic/hol_light/default.nix
@@ -1,8 +1,12 @@
-{ lib, stdenv, runtimeShell, fetchFromGitHub, fetchpatch, ocaml, findlib, num, camlp5, camlp-streams }:
+{ lib, stdenv, runtimeShell, fetchFromGitHub, fetchpatch, ocaml, findlib, num, zarith, camlp5, camlp-streams }:
 
 let
+  use_zarith = lib.versionAtLeast ocaml.version "4.14";
   load_num =
-    lib.optionalString (num != null) ''
+    if use_zarith then ''
+      -I ${zarith}/lib/ocaml/${ocaml.version}/site-lib/zarith \
+      -I ${zarith}/lib/ocaml/${ocaml.version}/site-lib/stublibs \
+    '' else lib.optionalString (num != null) ''
       -I ${num}/lib/ocaml/${ocaml.version}/site-lib/num \
       -I ${num}/lib/ocaml/${ocaml.version}/site-lib/top-num \
       -I ${num}/lib/ocaml/${ocaml.version}/site-lib/stublibs \
@@ -22,18 +26,15 @@ let
     '';
 in
 
-lib.throwIf (lib.versionAtLeast ocaml.version "5.0")
-  "hol_light is not available for OCaml ${ocaml.version}"
-
 stdenv.mkDerivation {
   pname = "hol_light";
-  version = "unstable-2023-11-03";
+  version = "unstable-2024-05-10";
 
   src = fetchFromGitHub {
     owner = "jrh13";
     repo = "hol-light";
-    rev = "dcd765c6032f52a0c0bf21fce5da4794a823e880";
-    hash = "sha256-k2RBNDo4tc3eobKB84Y2xr0UQJvef0hv6jyFCaDCQFM=";
+    rev = "d8366986e22555c4e4c8ff49667d646d15c35f14";
+    hash = "sha256-dN9X7yQlFof759I5lxxL4DxDe8V3XAhCRaryO9NabY4=";
   };
 
   patches = [
@@ -46,7 +47,10 @@ stdenv.mkDerivation {
   strictDeps = true;
 
   nativeBuildInputs = [ ocaml findlib camlp5 ];
-  propagatedBuildInputs = [ camlp-streams num ];
+  propagatedBuildInputs = [
+    camlp-streams
+    (if use_zarith then zarith else num)
+  ];
 
   installPhase = ''
     mkdir -p "$out/lib/hol_light" "$out/bin"
diff --git a/pkgs/applications/science/math/fricas/default.nix b/pkgs/applications/science/math/fricas/default.nix
index 355238ace15ce..41dc9d66b8a74 100644
--- a/pkgs/applications/science/math/fricas/default.nix
+++ b/pkgs/applications/science/math/fricas/default.nix
@@ -1,20 +1,27 @@
-{ lib, stdenv, fetchurl, sbcl, libX11, libXpm, libICE, libSM, libXt, libXau, libXdmcp }:
+{ lib, stdenv, fetchFromGitHub, sbcl, libX11, libXpm, libICE, libSM, libXt, libXau, libXdmcp }:
 
 stdenv.mkDerivation rec {
   pname = "fricas";
-  version = "1.3.9";
+  version = "1.3.10";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/fricas/fricas/${version}/fricas-${version}-full.tar.bz2";
-    sha256 = "sha256-5RPcffM0GN0l6r8IgHJlwdxwwp2y4kIdJ5M3JnGZCzc=";
+  src = fetchFromGitHub {
+    owner = "fricas";
+    repo = "fricas";
+    rev = version;
+    sha256 = "sha256-T1xDndDnHq/hmhTWWO3Eu0733u8+C8sJMCF6pbLU2GI=";
   };
 
   buildInputs = [ sbcl libX11 libXpm libICE libSM libXt libXau libXdmcp ];
 
+  # Remove when updating to next version
+  configurePhase = ''
+    ./configure --prefix=$out --with-lisp='sbcl --dynamic-space-size 3072'
+  '';
+
   dontStrip = true;
 
   meta = {
-    homepage = "https://fricas.sourceforge.net/";
+    homepage = "https://fricas.github.io";
     description = "An advanced computer algebra system";
     license = lib.licenses.bsd3;
 
diff --git a/pkgs/applications/science/math/gretl/default.nix b/pkgs/applications/science/math/gretl/default.nix
index 552639de6c532..d99a49acd9c62 100644
--- a/pkgs/applications/science/math/gretl/default.nix
+++ b/pkgs/applications/science/math/gretl/default.nix
@@ -19,11 +19,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gretl";
-  version = "2024a";
+  version = "2024b";
 
   src = fetchurl {
     url = "mirror://sourceforge/gretl/gretl-${finalAttrs.version}.tar.xz";
-    hash = "sha256-6ha0d/n75Xf0hZM0GRHLOnM274P1h2MerB/8SHWTh+o=";
+    hash = "sha256-mkmOmKO2tiAysZhwC8kNuCXNml8NdFPfaNFykdxYFAY=";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/science/math/sage/sage-src.nix b/pkgs/applications/science/math/sage/sage-src.nix
index b1c9c62a5748b..de0c2e3b1e20e 100644
--- a/pkgs/applications/science/math/sage/sage-src.nix
+++ b/pkgs/applications/science/math/sage/sage-src.nix
@@ -61,12 +61,19 @@ stdenv.mkDerivation rec {
       hash = "sha256-uCXchYx26DdxTjR1k2748KCEHPnekKS2fAM7SpyhNvM=";
     })
 
-    # https://github.com/sagemath/sage/pull/37763
+    # https://github.com/sagemath/sage/pull/37763, landed in 10.4.beta2
     (fetchpatch {
       name = "scipy-fault-tolerance.patch";
-      url = "https://github.com/sagemath/sage/commit/547d502ed56f9fd44eb5d9b4ee0824746c60fef7.diff";
+      url = "https://github.com/sagemath/sage/commit/551139c09f26a5da96b1187c3f0dd17b8d80ef84.diff";
       hash = "sha256-PR4przrZ3ieHaW2nSY7l7VhNfrUupu9yCIrXpeyoAgg=";
     })
+
+    # first two commits from https://github.com/sagemath/sage/pull/38100
+    (fetchpatch {
+      name = "sphinx-7.3-update.patch";
+      url = "https://github.com/sagemath/sage/compare/10.4.beta7...d2932e142991b442a3eee5dc4f8949e3f7e6fe5c.patch";
+      hash = "sha256-g6w0ImE0d2ocKnbGMQikcz9eI9r3/gESlA1NrQfGimk=";
+    })
   ];
 
   # Patches needed because of package updates. We could just pin the versions of
diff --git a/pkgs/applications/science/math/sage/sagedoc.nix b/pkgs/applications/science/math/sage/sagedoc.nix
index 5e2191486bf08..cbf593398ac44 100644
--- a/pkgs/applications/science/math/sage/sagedoc.nix
+++ b/pkgs/applications/science/math/sage/sagedoc.nix
@@ -24,10 +24,6 @@ stdenv.mkDerivation rec {
     export HOME="$TMPDIR/sage_home"
     mkdir -p "$HOME"
 
-    # adapted from src/doc/Makefile (doc-src target), which tries to call Sage from PATH
-    mkdir -p $SAGE_DOC_SRC_OVERRIDE/en/reference/repl
-    ${sage-with-env}/bin/sage -advanced > $SAGE_DOC_SRC_OVERRIDE/en/reference/repl/options.txt
-
     # needed to link them in the sage docs using intersphinx
     export PPLPY_DOCS=${python3.pkgs.pplpy.doc}/share/doc/pplpy
 
diff --git a/pkgs/applications/science/misc/openrefine/default.nix b/pkgs/applications/science/misc/openrefine/default.nix
index 9f2ef0f29b31f..6a9d4be6c50b2 100644
--- a/pkgs/applications/science/misc/openrefine/default.nix
+++ b/pkgs/applications/science/misc/openrefine/default.nix
@@ -15,12 +15,12 @@ let
     inherit jdk;
   };
 
-  version = "3.7.9";
+  version = "3.8.1";
   src = fetchFromGitHub {
     owner = "openrefine";
     repo = "openrefine";
     rev = version;
-    hash = "sha256-wtg0BOGr/aJPZeFQbJSBHtTVfpcSCSHP++8AnpS8pgQ=";
+    hash = "sha256-MnFwFJdKIU7D8GQgnDvCO+P8r8h1Se/wmbt/Z3EX+3Q=";
   };
 
   npmPkg = buildNpmPackage {
@@ -29,7 +29,7 @@ let
     pname = "openrefine-npm";
     sourceRoot = "${src.name}/main/webapp";
 
-    npmDepsHash = "sha256-8GhcL4tohQ5u2HeYN6JyTMMobUOqAL8ETCLiP1SoDSk=";
+    npmDepsHash = "sha256-u9qledNFqGgMmOIsm2T8w3UoaLbb7WtksUw6xLoRgU8=";
 
     # package.json doesn't supply a version, which npm doesn't like - fix this.
     # directly referencing jq because buildNpmPackage doesn't pass
@@ -56,19 +56,11 @@ in maven'.buildMavenPackage {
     cp -r ${npmPkg} main/webapp/modules/core/3rdparty
   '';
   mvnParameters = "-DskipTests=true -pl !packaging";
-  mvnHash = "sha256-MqE+iloqzBav6E3/rf1LP5BlKhW/FBIt6+6U+S8UJWA=";
+  mvnHash = "sha256-0qsKUMV9M0ZaddR5ust8VikSrsutdxVNNezKqR+F/6M=";
 
   nativeBuildInputs = [ makeWrapper ];
 
-  installPhase = let
-    gitProperties = writeText "git.properties" (builtins.toJSON {
-      "git.build.version" = version;
-      "git.branch" = "none";
-      "git.build.time" = "1970-01-01T00:00:00+0000";
-      "git.commit.id.abbrev" = "none";
-      "git.commit.id.describe" = "none";
-    });
-  in ''
+  installPhase = ''
     mkdir -p $out/lib/server/target/lib
     cp -r server/target/lib/* $out/lib/server/target/lib/
     cp server/target/openrefine-*-server.jar $out/lib/server/target/lib/
@@ -85,8 +77,6 @@ in maven'.buildMavenPackage {
       done
     )
 
-    cp ${gitProperties} $out/lib/webapp/WEB-INF/classes/git.properties
-
     mkdir -p $out/etc
     cp refine.ini $out/etc/
 
diff --git a/pkgs/applications/science/misc/snakemake/default.nix b/pkgs/applications/science/misc/snakemake/default.nix
index 1a171f2c7db5d..56d1d7206249d 100644
--- a/pkgs/applications/science/misc/snakemake/default.nix
+++ b/pkgs/applications/science/misc/snakemake/default.nix
@@ -6,14 +6,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "snakemake";
-  version = "8.11.4";
+  version = "8.11.6";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "snakemake";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-nfPA2sQCeRc12A4rrlo17UPpiB8plKYbiumZjS7Yhz8=";
+    hash = "sha256-00Zh8NenBikdingmx34WYYH5SF+yazeAs+7h1/3UIJY=";
     # https://github.com/python-versioneer/python-versioneer/issues/217
     postFetch = ''
       sed -i "$out"/snakemake/_version.py -e 's#git_refnames = ".*"#git_refnames = " (tag: v${version})"#'
diff --git a/pkgs/applications/terminal-emulators/kitty/default.nix b/pkgs/applications/terminal-emulators/kitty/default.nix
index 5e31ac572cab3..708ffd8ecbbe9 100644
--- a/pkgs/applications/terminal-emulators/kitty/default.nix
+++ b/pkgs/applications/terminal-emulators/kitty/default.nix
@@ -31,20 +31,20 @@
 with python3Packages;
 buildPythonApplication rec {
   pname = "kitty";
-  version = "0.34.1";
+  version = "0.35.0";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "kovidgoyal";
     repo = "kitty";
     rev = "refs/tags/v${version}";
-    hash = "sha256-r7KZcSqREILMp0F9ajeHS5sglq/o88h2t+4BgbABjOY=";
+    hash = "sha256-d/pPoa+bY7FAjFcd+32aXKDevJRoCGA209uLZ/4WRpQ=";
   };
 
   goModules = (buildGo122Module {
     pname = "kitty-go-modules";
     inherit src version;
-    vendorHash = "sha256-HNE0MWjL0PH20Glzb0GV6+lQu/Lslx8k/+YvlLHbHww=";
+    vendorHash = "sha256-rEG3mmghvEih2swm+2gp/G9EC2YdyjaOnvq+tALC3jo=";
   }).goModules;
 
   buildInputs = [
diff --git a/pkgs/applications/version-management/commitizen/default.nix b/pkgs/applications/version-management/commitizen/default.nix
index d9dfb5af12bc8..f0cfc626c4fa7 100644
--- a/pkgs/applications/version-management/commitizen/default.nix
+++ b/pkgs/applications/version-management/commitizen/default.nix
@@ -11,7 +11,7 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "commitizen";
-  version = "3.26.0";
+  version = "3.27.0";
   format = "pyproject";
 
   disabled = python3.pythonOlder "3.8";
@@ -20,7 +20,7 @@ python3.pkgs.buildPythonApplication rec {
     owner = "commitizen-tools";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-tj+zH94IiFqkmkIqyNmgQgQNjvqWgCviLzfGrrCHX1k=";
+    hash = "sha256-Bfz9MBpFsbAcsyQ7CYyObE14q7UE9ZyeY1GVFb9maKk=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/applications/version-management/gitea/default.nix b/pkgs/applications/version-management/gitea/default.nix
index 4b2105fda93c0..f7ef0d83c1324 100644
--- a/pkgs/applications/version-management/gitea/default.nix
+++ b/pkgs/applications/version-management/gitea/default.nix
@@ -20,12 +20,12 @@
 
 buildGoModule rec {
   pname = "gitea";
-  version = "1.21.11";
+  version = "1.22.0";
 
   # not fetching directly from the git repo, because that lacks several vendor files for the web UI
   src = fetchurl {
     url = "https://dl.gitea.com/gitea/${version}/gitea-src-${version}.tar.gz";
-    hash = "sha256-TxysXw3lVdV/hlILztM+D7wIpeqXfglAy7Ak2AxnlEM=";
+    hash = "sha256-bU4u/RsE12InXjJ2ZvIL31z9AzB7XULyV0+ytAYnyjg=";
   };
 
   vendorHash = null;
diff --git a/pkgs/applications/video/kodi/addons/controller-topology-project/default.nix b/pkgs/applications/video/kodi/addons/controller-topology-project/default.nix
index cfaef2bb7f98e..5b55ab9d1282f 100644
--- a/pkgs/applications/video/kodi/addons/controller-topology-project/default.nix
+++ b/pkgs/applications/video/kodi/addons/controller-topology-project/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchFromGitHub, toKodiAddon, addonDir }:
 let
-  drv = stdenv.mkDerivation {
+  drv = stdenv.mkDerivation rec {
     pname = "controller-topology-project";
-    version = "unstable-2022-11-19";
+    version = "1.0.0";
 
     src = fetchFromGitHub {
       owner = "kodi-game";
       repo = "controller-topology-project";
-      rev = "d96894ca68678000f26f56d14aa3ceea47b1a3a8";
-      sha256 = "sha256-KfDr2bSJFey/aNO5WzoOQ8Mz0v4uitKkOesymIMZH1o=";
+      rev = "v${version}";
+      sha256 = "sha256-6g4dyR34b0YgxlzRRS2C/gY3wjlO9MMYEB2fHLSCqC4=";
     };
 
     postPatch = ''
diff --git a/pkgs/applications/video/kodi/addons/invidious/default.nix b/pkgs/applications/video/kodi/addons/invidious/default.nix
index 36ae8608837d2..b975bf48f9d4c 100644
--- a/pkgs/applications/video/kodi/addons/invidious/default.nix
+++ b/pkgs/applications/video/kodi/addons/invidious/default.nix
@@ -1,4 +1,4 @@
-{ lib, rel, buildKodiAddon, fetchzip, addonUpdateScript, requests, inputstream-adaptive, inputstreamhelper }:
+{ lib, rel, buildKodiAddon, fetchzip, addonUpdateScript, infotagger, requests, inputstream-adaptive, inputstreamhelper }:
 
 buildKodiAddon rec {
   pname = "invidious";
@@ -11,6 +11,7 @@ buildKodiAddon rec {
   };
 
   propagatedBuildInputs = [
+    infotagger
     requests
     inputstream-adaptive
     inputstreamhelper
diff --git a/pkgs/applications/video/kodi/addons/orftvthek/default.nix b/pkgs/applications/video/kodi/addons/orftvthek/default.nix
index 4a6b4480b0506..45bdbf213bafd 100644
--- a/pkgs/applications/video/kodi/addons/orftvthek/default.nix
+++ b/pkgs/applications/video/kodi/addons/orftvthek/default.nix
@@ -3,13 +3,13 @@
 buildKodiAddon rec {
   pname = "orftvthek";
   namespace = "plugin.video.orftvthek";
-  version = "0.12.9";
+  version = "0.12.12";
 
   src = fetchFromGitHub {
     owner = "s0faking";
     repo = namespace;
     rev = version;
-    sha256 = "sha256-bqGY9PPukn5/HJa3OqU5NM+ReeDJdVn60jXh1+2Qef8=";
+    sha256 = "sha256-4VLr4DFxioCrlq5JtiPyd7E4a+++cWgxCnRb3KPppWE=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/applications/video/lightworks/default.nix b/pkgs/applications/video/lightworks/default.nix
index f08b014273c03..ea2f0bde5e33c 100644
--- a/pkgs/applications/video/lightworks/default.nix
+++ b/pkgs/applications/video/lightworks/default.nix
@@ -27,15 +27,15 @@ let
   ];
 
   lightworks = stdenv.mkDerivation rec {
-    version = "2023.1";
-    rev = "141770";
+    version = "2023.2";
+    rev = "146240";
     pname = "lightworks";
 
     src =
       if stdenv.hostPlatform.system == "x86_64-linux" then
         fetchurl {
           url = "https://cdn.lwks.com/releases/${version}/lightworks_${version}_r${rev}.deb";
-          sha256 = "sha256-QRbghrZQbprl2wUBKNMJVBeW0Ek6nWvo4006jyPYIBg=";
+          sha256 = "sha256-sVEDCZZsY5OwuWebrhatzZiws89/tEKIdgY54PN0Ddo=";
         }
       else throw "${pname}-${version} is not supported on ${stdenv.hostPlatform.system}";
 
diff --git a/pkgs/applications/video/mpv/scripts/mpvacious.nix b/pkgs/applications/video/mpv/scripts/mpvacious.nix
index 4269131f09045..659dc498f0b11 100644
--- a/pkgs/applications/video/mpv/scripts/mpvacious.nix
+++ b/pkgs/applications/video/mpv/scripts/mpvacious.nix
@@ -10,13 +10,13 @@
 
 buildLua rec {
   pname = "mpvacious";
-  version = "0.33";
+  version = "0.34";
 
   src = fetchFromGitHub {
     owner = "Ajatt-Tools";
     repo = "mpvacious";
     rev = "v${version}";
-    sha256 = "sha256-VHMXW2AzgX88EDnNshxo9Gh8mpXzRoTAq+58HKasUdo=";
+    sha256 = "sha256-YsbeMWGpRi9wUdnrMA2YQXXWQUALxDOTs+gBJ56okkI=";
   };
   passthru.updateScript = gitUpdater { rev-prefix = "v"; };
 
diff --git a/pkgs/applications/video/mpv/scripts/videoclip.nix b/pkgs/applications/video/mpv/scripts/videoclip.nix
index 6e22e1ae68d76..82f912677f14c 100644
--- a/pkgs/applications/video/mpv/scripts/videoclip.nix
+++ b/pkgs/applications/video/mpv/scripts/videoclip.nix
@@ -10,13 +10,13 @@
 }:
 buildLua {
   pname = "videoclip";
-  version = "0-unstable-2024-03-08";
+  version = "0-unstable-2024-05-26";
 
   src = fetchFromGitHub {
     owner = "Ajatt-Tools";
     repo = "videoclip";
-    rev = "0e3f2245b03e888c14c093a50261e0f54ecdf8e8";
-    hash = "sha256-Sg6LHU9OVmVx3cTs8Y0WL8wACb5BlVyeBRccoX+7BXY=";
+    rev = "4fd40d66c95905ed828ca77b7120732014b93ac5";
+    hash = "sha256-Q40a7BBY4c7I5g9HkeV6Twv/PDPBDKTlnxkILw99pxU=";
   };
 
   patchPhase =
diff --git a/pkgs/applications/video/ustreamer/default.nix b/pkgs/applications/video/ustreamer/default.nix
index 294e250f7c8e1..230012dbc5323 100644
--- a/pkgs/applications/video/ustreamer/default.nix
+++ b/pkgs/applications/video/ustreamer/default.nix
@@ -1,19 +1,24 @@
-{ lib, stdenv, fetchFromGitHub, libbsd, libevent, libjpeg }:
+{ lib, stdenv, fetchFromGitHub, libbsd, libevent, libjpeg, libdrm, pkg-config }:
 
 stdenv.mkDerivation rec {
   pname = "ustreamer";
-  version = "6.4";
+  version = "6.12";
 
   src = fetchFromGitHub {
     owner = "pikvm";
     repo = "ustreamer";
     rev = "v${version}";
-    hash = "sha256-pTfct+nki1t7ltCUnxSyOkDocSr2pkoqOldkECtNfDU=";
+    hash = "sha256-iaCgPHgklk7tbhJhQmyjKggb1bMWBD+Zurgfk9sCQ3E=";
   };
 
-  buildInputs = [ libbsd libevent libjpeg ];
+  buildInputs = [ libbsd libevent libjpeg libdrm ];
 
-  makeFlags = [ "PREFIX=${placeholder "out"}" ];
+  nativeBuildInputs = [ pkg-config ];
+
+  makeFlags = [
+    "PREFIX=${placeholder "out"}"
+    "WITH_V4P=1"
+  ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/applications/virtualization/singularity/packages.nix b/pkgs/applications/virtualization/singularity/packages.nix
index 8711ab197fa71..eca8c914e6aae 100644
--- a/pkgs/applications/virtualization/singularity/packages.nix
+++ b/pkgs/applications/virtualization/singularity/packages.nix
@@ -9,20 +9,20 @@ let
     callPackage
       (import ./generic.nix rec {
         pname = "apptainer";
-        version = "1.3.1";
+        version = "1.3.2";
         projectName = "apptainer";
 
         src = fetchFromGitHub {
           owner = "apptainer";
           repo = "apptainer";
           rev = "refs/tags/v${version}";
-          hash = "sha256-XhJecINx8jC6pRzIoM4nC6Aunj40xL8EmYIA4UizfAY=";
+          hash = "sha256-NseigaPmRKDsBk8v7RpYf+uoEGvQHVnqOMO49kP0mQ8=";
         };
 
         # Update by running
         # nix-prefetch -E "{ sha256 }: ((import ./. { }).apptainer.override { vendorHash = sha256; }).goModules"
         # at the root directory of the Nixpkgs repository
-        vendorHash = "sha256-MXW1U13uDRAx4tqZvqsuJvoD22nEL2gcxiGaa/6zwU0=";
+        vendorHash = "sha256-W853++SSvkAYYUczbl8vnoBQZnimUdsAEXp4MCkLPBU=";
 
         extraDescription = " (previously known as Singularity)";
         extraMeta.homepage = "https://apptainer.org";
diff --git a/pkgs/build-support/testers/default.nix b/pkgs/build-support/testers/default.nix
index 362622d9b7ee8..dbf9a6d6cb05b 100644
--- a/pkgs/build-support/testers/default.nix
+++ b/pkgs/build-support/testers/default.nix
@@ -1,6 +1,10 @@
 { pkgs, pkgsLinux, buildPackages, lib, callPackage, runCommand, stdenv, substituteAll, testers }:
 # Documentation is in doc/builders/testers.chapter.md
 {
+  # See https://nixos.org/manual/nixpkgs/unstable/#tester-lycheeLinkCheck
+  # or doc/builders/testers.chapter.md
+  inherit (callPackage ./lychee.nix {}) lycheeLinkCheck;
+
   # See https://nixos.org/manual/nixpkgs/unstable/#tester-testBuildFailure
   # or doc/builders/testers.chapter.md
   testBuildFailure = drv: drv.overrideAttrs (orig: {
diff --git a/pkgs/build-support/testers/lychee.nix b/pkgs/build-support/testers/lychee.nix
new file mode 100644
index 0000000000000..80088dc4f9638
--- /dev/null
+++ b/pkgs/build-support/testers/lychee.nix
@@ -0,0 +1,69 @@
+deps@{ formats, lib, lychee, stdenv, writeShellApplication }:
+let
+  inherit (lib) mapAttrsToList throwIf;
+  inherit (lib.strings) hasInfix hasPrefix escapeNixString;
+
+  toURL = v:
+    let s = "${v}";
+    in if hasPrefix builtins.storeDir s
+    then # lychee requires that paths on the file system are prefixed with file://
+      "file://${s}"
+    else s;
+
+  withCheckedName = name:
+    throwIf (hasInfix " " name) ''
+      lycheeLinkCheck: remap patterns must not contain spaces.
+      A space marks the end of the regex in lychee.toml.
+
+      Please change attribute name 'remap.${escapeNixString name}'
+    '';
+
+  # See https://nixos.org/manual/nixpkgs/unstable/#tester-lycheeLinkCheck
+  # or doc/builders/testers.chapter.md
+  lycheeLinkCheck = {
+    site,
+    remap ? { },
+    lychee ? deps.lychee,
+    extraConfig ? { },
+  }:
+    stdenv.mkDerivation (finalAttrs: {
+      name = "lychee-link-check";
+      inherit site;
+      nativeBuildInputs = [ finalAttrs.passthru.lychee ];
+      configFile = (formats.toml {}).generate "lychee.toml" finalAttrs.passthru.config;
+
+      # These can be overriden with overrideAttrs if needed.
+      passthru = {
+        inherit lychee remap;
+        config = {
+          include_fragments = true;
+        } // lib.optionalAttrs (finalAttrs.passthru.remap != { }) {
+          remap =
+            mapAttrsToList
+              (name: value: withCheckedName name "${name} ${toURL value}")
+              finalAttrs.passthru.remap;
+        } // extraConfig;
+        online = writeShellApplication {
+          name = "run-lychee-online";
+          runtimeInputs = [ finalAttrs.passthru.lychee ];
+          # Comment out to run shellcheck:
+          checkPhase = "";
+          text = ''
+            site=${finalAttrs.site}
+            configFile=${finalAttrs.configFile}
+            echo Checking links on $site
+            exec lychee --config $configFile $site "$@"
+          '';
+        };
+      };
+      buildCommand = ''
+        echo Checking internal links on $site
+        lychee --offline --config $configFile $site
+        touch $out
+      '';
+    });
+
+in
+{
+  inherit lycheeLinkCheck;
+}
diff --git a/pkgs/build-support/testers/test/default.nix b/pkgs/build-support/testers/test/default.nix
index da67711156bed..a815fe63e416e 100644
--- a/pkgs/build-support/testers/test/default.nix
+++ b/pkgs/build-support/testers/test/default.nix
@@ -12,6 +12,8 @@ let
 
 in
 lib.recurseIntoAttrs {
+  lycheeLinkCheck = lib.recurseIntoAttrs pkgs.lychee.tests;
+
   hasPkgConfigModules = pkgs.callPackage ../hasPkgConfigModules/tests.nix { };
 
   runNixOSTest-example = pkgs-with-overlay.testers.runNixOSTest ({ lib, ... }: {
diff --git a/pkgs/by-name/_6/_64gram/package.nix b/pkgs/by-name/_6/_64gram/package.nix
index 0cf62f11f3f3a..67774f29c1e7a 100644
--- a/pkgs/by-name/_6/_64gram/package.nix
+++ b/pkgs/by-name/_6/_64gram/package.nix
@@ -7,7 +7,7 @@
 
 telegram-desktop.overrideAttrs (old: rec {
   pname = "64gram";
-  version = "1.1.22";
+  version = "1.1.23";
 
   src = fetchFromGitHub {
     owner = "TDesktop-x64";
@@ -15,7 +15,7 @@ telegram-desktop.overrideAttrs (old: rec {
     rev = "v${version}";
 
     fetchSubmodules = true;
-    hash = "sha256-Fhix+kCqUTr9qGMzDc2undxmhjmM6fPorZebeqXNHHE=";
+    hash = "sha256-0/1qxz8MCDve8eazb9WT8t/UqWs/I1Mo9orhVXkxmqc=";
   };
 
   passthru.updateScript = nix-update-script {};
diff --git a/pkgs/by-name/ap/api-linter/package.nix b/pkgs/by-name/ap/api-linter/package.nix
index 4eb4301ef65f1..3f5a972fa4779 100644
--- a/pkgs/by-name/ap/api-linter/package.nix
+++ b/pkgs/by-name/ap/api-linter/package.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "api-linter";
-  version = "1.66.0";
+  version = "1.66.1";
 
   src = fetchFromGitHub {
     owner = "googleapis";
     repo = "api-linter";
     rev = "v${version}";
-    hash = "sha256-PwsqED6jIiPapthdhl7XxGwp+H3gjGfn2DGl1mWuano=";
+    hash = "sha256-gaXvkWexvpKOiUEk4OOHla8HmT0sAT94peljH9q9N7c=";
   };
 
-  vendorHash = "sha256-mJT5gqMCe1NuUBoSRqYTp64UK2vZ+GJwgnb0ILQPkno=";
+  vendorHash = "sha256-czLcy/9QbBuKu3lPISx3Pzf2ccvdp7gF0SWVbSZ6Nn8=";
 
   subPackages = [ "cmd/api-linter" ];
 
diff --git a/pkgs/by-name/ar/arc-browser/package.nix b/pkgs/by-name/ar/arc-browser/package.nix
index 2813e0f39791e..732451d0250b9 100644
--- a/pkgs/by-name/ar/arc-browser/package.nix
+++ b/pkgs/by-name/ar/arc-browser/package.nix
@@ -9,11 +9,11 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "arc-browser";
-  version = "1.43.1-50198";
+  version = "1.44.2-50412";
 
   src = fetchurl {
     url = "https://releases.arc.net/release/Arc-${finalAttrs.version}.dmg";
-    hash = "sha256-++C3COEs0ycfj+vV4PdlWloc4M0hGZG5fdJ+rbyBo7w=";
+    hash = "sha256-0UrvCTGnbt+jQ4UpEt5vsgKZ/UDJz3I1obK4GPshNjg=";
   };
 
   nativeBuildInputs = [ undmg ];
diff --git a/pkgs/by-name/as/ast-grep/package.nix b/pkgs/by-name/as/ast-grep/package.nix
index 4e001f3445a66..b62c88d05a593 100644
--- a/pkgs/by-name/as/ast-grep/package.nix
+++ b/pkgs/by-name/as/ast-grep/package.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "ast-grep";
-  version = "0.22.3";
+  version = "0.22.4";
 
   src = fetchFromGitHub {
     owner = "ast-grep";
     repo = "ast-grep";
     rev = version;
-    hash = "sha256-Q2xVB9GZBtXx67rKpeTpy1llXCBpgn9vdZmYkQVHtp8=";
+    hash = "sha256-AzwwOJ2SS+5wM/+357mXg+QMwXVPToKiTaFP+LZXP+U=";
   };
 
-  cargoHash = "sha256-0N98WvNLlflNCu7I2nHDSgFHDmbMVqwu4YkqA9GNSwM=";
+  cargoHash = "sha256-fyEncz5eVe8OPNQO4TJQXBMfOcybesoBBNRv3T1EooU=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/by-name/ay/ayatana-indicator-datetime/package.nix b/pkgs/by-name/ay/ayatana-indicator-datetime/package.nix
index 06ba4efc13863..0f7ce4b43d113 100644
--- a/pkgs/by-name/ay/ayatana-indicator-datetime/package.nix
+++ b/pkgs/by-name/ay/ayatana-indicator-datetime/package.nix
@@ -31,13 +31,13 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "ayatana-indicator-datetime";
-  version = "24.2.0";
+  version = "24.5.0";
 
   src = fetchFromGitHub {
     owner = "AyatanaIndicators";
     repo = "ayatana-indicator-datetime";
     rev = finalAttrs.version;
-    hash = "sha256-J3Yp7Dx4UvvdlM8Cp1sPe4Ftm/aAmNzpo4re/jF7pRo=";
+    hash = "sha256-lY49v2uZ7BawQoN/hmN6pbetHlSGjMHbS6S8Wl1bDmQ=";
   };
 
   postPatch = ''
diff --git a/pkgs/by-name/ay/ayatana-indicator-power/package.nix b/pkgs/by-name/ay/ayatana-indicator-power/package.nix
index 74df2f6eb95fb..047087660b8a0 100644
--- a/pkgs/by-name/ay/ayatana-indicator-power/package.nix
+++ b/pkgs/by-name/ay/ayatana-indicator-power/package.nix
@@ -21,13 +21,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "ayatana-indicator-power";
-  version = "24.1.0";
+  version = "24.5.0";
 
   src = fetchFromGitHub {
     owner = "AyatanaIndicators";
     repo = "ayatana-indicator-power";
     rev = "refs/tags/${finalAttrs.version}";
-    hash = "sha256-VUDNy6pPOsjioV5UNiKm8dzYb02ZrZ8CiIiJmAoQYaM=";
+    hash = "sha256-LS50YJ5MA1enBk2nxm0BFu2cuC53CZCvtZRE+PWjs+M=";
   };
 
   postPatch = ''
diff --git a/pkgs/by-name/be/beekeeper-studio/package.nix b/pkgs/by-name/be/beekeeper-studio/package.nix
index 0a62c91c8e7e7..041551d744961 100644
--- a/pkgs/by-name/be/beekeeper-studio/package.nix
+++ b/pkgs/by-name/be/beekeeper-studio/package.nix
@@ -7,7 +7,7 @@
 
 let
   pname = "beekeeper-studio";
-  version = "4.3.1";
+  version = "4.3.4";
 
   plat = {
     aarch64-linux = "-arm64";
@@ -16,7 +16,7 @@ let
 
   hash = {
     aarch64-linux = "sha256-7ZjyzWeu19zUX1u8t0hMu8F+1LN5/CtEotLNe/5rwPM=";
-    x86_64-linux = "sha256-vhKvOPPo/a9gwQ8FsC28dStQHI8SYzEbhdEW4elD7bU=";
+    x86_64-linux = "sha256-RT+A2rq0rMv2o0au5cfcZJysGy+7xYvBDfEJ/TyJmZw=";
   }.${stdenv.hostPlatform.system};
 
   src = fetchurl {
diff --git a/pkgs/by-name/be/bend/package.nix b/pkgs/by-name/be/bend/package.nix
index b743f4da1fe65..d904cd8528749 100644
--- a/pkgs/by-name/be/bend/package.nix
+++ b/pkgs/by-name/be/bend/package.nix
@@ -1,6 +1,5 @@
 {
   rustPlatform,
-  fetchCrate,
   fetchFromGitHub,
   lib,
   makeWrapper,
@@ -9,18 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "Bend";
-  version = "0.2.9";
+  version = "0.2.22";
 
   src = fetchFromGitHub {
     owner = "HigherOrderCO";
     repo = "Bend";
     rev = "refs/tags/${version}";
-    hash = "sha256-MEfB2SBJN7uEwfZGoEL7DQXsr1fccdZyGyzHtNv9wow=";
+    hash = "sha256-5qcj3KfgcB5tbVSJUSOVQDAhEpPE8SFoT0g9syHbFCA=";
   };
 
-  cargoHash = "sha256-+i+Y3MgCBVN3REmPwAjm2SiF9FJ0i05czmPKB8JtAFM=";
-
-  RUSTC_BOOTSTRAP = true;
+  cargoHash = "sha256-gSAIidMEYJDZHgIWNgYJVqyhpD7M+CMCD+1mEXGztIk=";
 
   nativeBuildInputs = [
     hvm
diff --git a/pkgs/by-name/bi/bitwarden-cli/package.nix b/pkgs/by-name/bi/bitwarden-cli/package.nix
index 656c1e60ec212..690535b3a7b4a 100644
--- a/pkgs/by-name/bi/bitwarden-cli/package.nix
+++ b/pkgs/by-name/bi/bitwarden-cli/package.nix
@@ -10,18 +10,18 @@
 
 buildNpmPackage rec {
   pname = "bitwarden-cli";
-  version = "2024.3.1";
+  version = "2024.4.1";
 
   src = fetchFromGitHub {
     owner = "bitwarden";
     repo = "clients";
     rev = "cli-v${version}";
-    hash = "sha256-JBEP4dNGL4rYKl2qNyhB2y/wZunikaGFltGVXLxgMWI=";
+    hash = "sha256-Dz7EActqXd97kNxEaNINj2O6TLZWEgHHg1lOIa2+Lt4=";
   };
 
   nodejs = nodejs_18;
 
-  npmDepsHash = "sha256-vNudSHIMmF7oXGz+ZymQahyHebs/CBDc6Oy1g0A5nqA=";
+  npmDepsHash = "sha256-fjYez3nSDsG5kYtrun3CkDCz1GNAjNlwPzEL+/9qQRU=";
 
   nativeBuildInputs = [
     python3
diff --git a/pkgs/by-name/bo/bombsquad/package.nix b/pkgs/by-name/bo/bombsquad/package.nix
index 0813d02525aab..61baff9e2d924 100644
--- a/pkgs/by-name/bo/bombsquad/package.nix
+++ b/pkgs/by-name/bo/bombsquad/package.nix
@@ -16,13 +16,14 @@
   copyDesktopItems,
   writeShellApplication,
   commandLineArgs ? "",
+  genericUpdater,
 }:
 let
   archive =
     {
       x86_64-linux = {
         name = "BombSquad_Linux_x86_64";
-        hash = "sha256-VLNO0TxI/KBj8RkpGjo9Rx40f7fuV3pK2kIoKff9sRU=";
+        hash = "sha256-YrbDhdVtNtxeE3fIRPIODwVO3lrxz7OAAYc7doBBQj8=";
       };
       aarch-64-linux = {
         name = "BombSquad_Linux_Arm64";
@@ -33,7 +34,7 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   name = "bombsquad";
-  version = "1.7.34";
+  version = "1.7.35";
   sourceRoot = ".";
   src = fetchurl {
     url = "https://files.ballistica.net/bombsquad/builds/${archive.name}_${finalAttrs.version}.tar.gz";
@@ -86,18 +87,20 @@ stdenv.mkDerivation (finalAttrs: {
     runHook postInstall
   '';
 
-  passthru.updateScript = lib.getExe (writeShellApplication {
-    name = "bombsquad-versionLister";
-    runtimeInputs = [
-      curl
-      gnugrep
-    ];
-    text = ''
-      curl -sL "https://files.ballistica.net/bombsquad/builds/CHANGELOG.md" \
-          | grep -oP '^### \K\d+\.\d+\.\d+' \
-          | head -n 1
-    '';
-  });
+  passthru.updateScript = genericUpdater {
+    versionLister = lib.getExe (writeShellApplication {
+      name = "bombsquad-versionLister";
+      runtimeInputs = [
+        curl
+        gnugrep
+      ];
+      text = ''
+        curl -sL "https://files.ballistica.net/bombsquad/builds/CHANGELOG.md" \
+            | grep -oP '^### \K\d+\.\d+\.\d+' \
+            | head -n 1
+      '';
+    });
+  };
 
   meta = {
     description = "A free, multiplayer, arcade-style game for up to eight players that combines elements of fighting games and first-person shooters (FPS)";
@@ -107,7 +110,10 @@ stdenv.mkDerivation (finalAttrs: {
       mit
       unfree
     ];
-    maintainers = with lib.maintainers; [ syedahkam coffeeispower ];
+    maintainers = with lib.maintainers; [
+      syedahkam
+      coffeeispower
+    ];
     mainProgram = "bombsquad";
     platforms = lib.platforms.linux;
   };
diff --git a/pkgs/by-name/bo/boogie/package.nix b/pkgs/by-name/bo/boogie/package.nix
index 2961632b88282..54664469ca2c0 100644
--- a/pkgs/by-name/bo/boogie/package.nix
+++ b/pkgs/by-name/bo/boogie/package.nix
@@ -2,13 +2,13 @@
 
 buildDotnetModule rec {
   pname = "Boogie";
-  version = "3.1.5";
+  version = "3.1.6";
 
   src = fetchFromGitHub {
     owner = "boogie-org";
     repo = "boogie";
     rev = "v${version}";
-    sha256 = "sha256-/6x4NzlSJ2uswVlfFpevXaQxUxPnh3KvnbPIb8SFX9E=";
+    sha256 = "sha256-Bli/vEzzVQTWicQJskK9cQC2XsFRwMxX9cAePXN511c=";
   };
 
   projectFile = [ "Source/Boogie.sln" ];
diff --git a/pkgs/development/interpreters/bqn/mlochbaum-bqn/001-libbqn-path.patch b/pkgs/by-name/bq/bqn/001-libbqn-path.patch
index b23c3de44af6d..b23c3de44af6d 100644
--- a/pkgs/development/interpreters/bqn/mlochbaum-bqn/001-libbqn-path.patch
+++ b/pkgs/by-name/bq/bqn/001-libbqn-path.patch
diff --git a/pkgs/development/interpreters/bqn/mlochbaum-bqn/default.nix b/pkgs/by-name/bq/bqn/package.nix
index d217ec99ebe5a..ca9a99c67e630 100644
--- a/pkgs/development/interpreters/bqn/mlochbaum-bqn/default.nix
+++ b/pkgs/by-name/bq/bqn/package.nix
@@ -5,15 +5,15 @@
 , nodejs
 }:
 
-stdenvNoCC.mkDerivation rec {
+stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "bqn";
-  version = "unstable-2023-05-17";
+  version = "0-unstable-2024-05-13";
 
   src = fetchFromGitHub {
     owner = "mlochbaum";
     repo = "BQN";
-    rev = "070bd07dc10c291695215265218ec0ff856ce457";
-    hash = "sha256-GRIIzJwlJ+JTBHXZjoX/9vLFbAC7zyeuqVcrA/Jm/NA=";
+    rev = "c971a177421d532a13c4b7515535552df19681e1";
+    hash = "sha256-Fru1IIb4IxBQxrEEBoRYStxBqYJJqd+Q+Hwyk++QA68=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -21,44 +21,42 @@ stdenvNoCC.mkDerivation rec {
   buildInputs = [ nodejs ];
 
   patches = [
-    # Creates a @libbqn@ substitution variable, to be filled in the fixupPhase
+    # Creates a @libbqn@ substitution variable, to be filled in postFixup
     ./001-libbqn-path.patch
   ];
 
-  dontConfigure = true;
-
-  dontBuild = true;
-
   installPhase = ''
     runHook preInstall
 
-    mkdir -p $out/bin $out/share/${pname}
-    cp bqn.js $out/share/${pname}/bqn.js
-    cp docs/bqn.js $out/share/${pname}/libbqn.js
+    mkdir -p $out/bin $out/share/bqn
+    cp bqn.js $out/share/bqn/bqn.js
+    cp docs/bqn.js $out/share/bqn/libbqn.js
 
     makeWrapper "${lib.getBin nodejs}/bin/node" "$out/bin/mbqn" \
-      --add-flags "$out/share/${pname}/bqn.js"
+      --add-flags "$out/share/bqn/bqn.js"
 
     ln -s $out/bin/mbqn $out/bin/bqn
 
     runHook postInstall
   '';
 
-  fixupPhase = ''
-    runHook preFixup
+  postFixup = ''
+    substituteInPlace $out/share/bqn/bqn.js \
+      --subst-var-by "libbqn" "$out/share/bqn/libbqn.js"
+  '';
 
-    substituteInPlace $out/share/${pname}/bqn.js \
-      --subst-var-by "libbqn" "$out/share/${pname}/libbqn.js"
+  dontConfigure = true;
 
-    runHook postFixup
-  '';
+  dontBuild = true;
+
+  strictDeps = true;
 
-  meta = with lib; {
+  meta = {
     homepage = "https://github.com/mlochbaum/BQN/";
     description = "The original BQN implementation in Javascript";
-    license = licenses.isc;
-    maintainers = with maintainers; [ AndersonTorres ];
-    platforms = platforms.all;
+    license = lib.licenses.isc;
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    inherit (nodejs.meta) platforms;
   };
-}
+})
 # TODO: install docs and other stuff
diff --git a/pkgs/by-name/ca/caligula/package.nix b/pkgs/by-name/ca/caligula/package.nix
index 0109720abe982..a97fa34fd0201 100644
--- a/pkgs/by-name/ca/caligula/package.nix
+++ b/pkgs/by-name/ca/caligula/package.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "caligula";
-  version = "0.4.6";
+  version = "0.4.7";
 
   src = fetchFromGitHub {
     owner = "ifd3f";
     repo = "caligula";
     rev = "v${version}";
-    hash = "sha256-nLt+PDPdW7oEMoWqW0iO4nXGlwk7UymWShn0azQt2ro=";
+    hash = "sha256-fi4W7Z32S30kzKNVEDbV8PRyTW9fZxumBGtLn8SkI5Y=";
   };
 
-  cargoHash = "sha256-8K3twPL7lNUmUUjD+nKATGgcjgoCuFO+bvlujVySXj0=";
+  cargoHash = "sha256-ma7JVbWSiKfkCXCDwA8DFm2+KPrWR+8nSdgGSqehNg8=";
 
   buildInputs = lib.optionals stdenv.isDarwin (
     with darwin.apple_sdk.frameworks; [
diff --git a/pkgs/by-name/ca/castero/package.nix b/pkgs/by-name/ca/castero/package.nix
index 6359c5c69536c..0b9f727dda921 100644
--- a/pkgs/by-name/ca/castero/package.nix
+++ b/pkgs/by-name/ca/castero/package.nix
@@ -15,8 +15,7 @@ python3.pkgs.buildPythonApplication rec {
     hash = "sha256-6/7oCKBMEcQeJ8PaFP15Xef9sQRYCpigtzINv2M6GUY=";
   };
 
-  nativeBuildInputs = with python3.pkgs; [
-    setuptools
+  build-system = with python3.pkgs; [
     wheel
   ];
 
@@ -29,7 +28,7 @@ python3.pkgs.buildPythonApplication rec {
     lxml
     mpv
     python-vlc
-  ];
+  ] ++ requests.optional-dependencies.socks;
 
   nativeCheckInputs = with python3.pkgs; [
     pytestCheckHook
diff --git a/pkgs/by-name/ch/ch341eeprom/package.nix b/pkgs/by-name/ch/ch341eeprom/package.nix
index 1c4661398e54a..b5e8c6f5e2ca6 100644
--- a/pkgs/by-name/ch/ch341eeprom/package.nix
+++ b/pkgs/by-name/ch/ch341eeprom/package.nix
@@ -1,25 +1,25 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, libusb1
-,
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  libusb1,
+  unstableGitUpdater,
 }:
+
 stdenv.mkDerivation {
   pname = "ch341eeprom";
-  version = "0-unstable-2021-01-05";
+  version = "0-unstable-2024-05-06";
 
   src = fetchFromGitHub {
     owner = "command-tab";
     repo = "ch341eeprom";
-    rev = "d5b2fba35a33a1cddd7a3e920e1df933f21ba9b0";
-    hash = "sha256-QUl5ErOfEfDhk1fF+BNu6n0Bake3IagNfn4I43b6Uns=";
+    rev = "7cffbef7552d93162bd90cae836a45e94acb93fb";
+    hash = "sha256-8pvQ2hBP3Rf8+MWsmMY53BghFiC5/b9k8vUjU2K6Ib4=";
   };
 
   buildInputs = [ libusb1 ];
 
-  makeFlags = [
-    "CC=${stdenv.cc.targetPrefix}cc"
-  ];
+  makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
 
   installPhase = ''
     runHook preInstall
@@ -27,12 +27,16 @@ stdenv.mkDerivation {
     runHook postInstall
   '';
 
-  meta = with lib; {
+  passthru = {
+    updateScript = unstableGitUpdater { hardcodeZeroVersion = true; };
+  };
+
+  meta = {
     description = "A libusb based programming tool for 24Cxx serial EEPROMs using the WinChipHead CH341A IC";
     homepage = "https://github.com/command-tab/ch341eeprom";
-    license = licenses.gpl3Plus;
-    platforms = platforms.darwin ++ platforms.linux;
+    license = lib.licenses.gpl3Plus;
     mainProgram = "ch341eeprom";
-    maintainers = with maintainers; [ xokdvium ];
+    maintainers = with lib.maintainers; [ xokdvium ];
+    platforms = with lib.platforms; darwin ++ linux;
   };
 }
diff --git a/pkgs/by-name/cl/clash-verge-rev/package.nix b/pkgs/by-name/cl/clash-verge-rev/package.nix
index 754588c9fd7b2..9030bc20d139a 100644
--- a/pkgs/by-name/cl/clash-verge-rev/package.nix
+++ b/pkgs/by-name/cl/clash-verge-rev/package.nix
@@ -5,11 +5,11 @@
 
 clash-verge.overrideAttrs (old: rec {
   pname = "clash-verge-rev";
-  version = "1.6.2";
+  version = "1.6.4";
 
   src = fetchurl {
     url = "https://github.com/clash-verge-rev/clash-verge-rev/releases/download/v${version}/clash-verge_${version}_amd64.deb";
-    hash = "sha256-7Nto/vEsatQ9cMNM+6aOw5jBvF/hUxElJ/SRm12yJFA=";
+    hash = "sha256-OhrC0trcl/zSCZSc4Tx9BDgqBxYiINF69LGVJQ0QGsw=";
   };
 
   meta = old.meta // (with lib; {
diff --git a/pkgs/by-name/co/cosmic-icons/package.nix b/pkgs/by-name/co/cosmic-icons/package.nix
index c201943f9474e..40fbd905de840 100644
--- a/pkgs/by-name/co/cosmic-icons/package.nix
+++ b/pkgs/by-name/co/cosmic-icons/package.nix
@@ -8,13 +8,13 @@
 }:
 stdenvNoCC.mkDerivation rec {
   pname = "cosmic-icons";
-  version = "0-unstable-2024-05-02";
+  version = "0-unstable-2024-05-21";
 
   src = fetchFromGitHub {
     owner = "pop-os";
     repo = pname;
-    rev = "f48101c38db7e725d31591ec49896a2f525886e2";
-    sha256 = "sha256-M9n09uEM4ee8FZYTsaAu+8E0YRxQAGBvylKDHv1dp5M=";
+    rev = "9aad1ab6d5538938e69955b5f74576ac020be425";
+    sha256 = "sha256-ln2spVA8dlXi/B0ro/FIoWiIClPmwH9E9IqhrKPedys=";
   };
 
   nativeBuildInputs = [ just ];
diff --git a/pkgs/by-name/cr/crunchy-cli/Cargo.lock b/pkgs/by-name/cr/crunchy-cli/Cargo.lock
index 5ea720f25c615..8400022acb91d 100644
--- a/pkgs/by-name/cr/crunchy-cli/Cargo.lock
+++ b/pkgs/by-name/cr/crunchy-cli/Cargo.lock
@@ -349,7 +349,7 @@ checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
 
 [[package]]
 name = "crunchy-cli"
-version = "3.6.4"
+version = "3.6.6"
 dependencies = [
  "chrono",
  "clap",
@@ -362,7 +362,7 @@ dependencies = [
 
 [[package]]
 name = "crunchy-cli-core"
-version = "3.6.4"
+version = "3.6.6"
 dependencies = [
  "anyhow",
  "async-speed-limit",
@@ -400,9 +400,9 @@ dependencies = [
 
 [[package]]
 name = "crunchyroll-rs"
-version = "0.11.1"
+version = "0.11.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58580acc9c0abf96a231ec8b1a4597ea55d9426ea17f684ce3582e2b26437bbb"
+checksum = "1d33b8d77c80dea79e66993cb67963b2171dcf0b8fbc87591c58f2dadfea8da2"
 dependencies = [
  "async-trait",
  "chrono",
@@ -426,9 +426,9 @@ dependencies = [
 
 [[package]]
 name = "crunchyroll-rs-internal"
-version = "0.11.1"
+version = "0.11.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce3c844dec8a3390f8c9853b5cf1d65c3d38fd0657b8b5d0e008db8945dea326"
+checksum = "fa51945265f25c45f7d53bd70e5263dd023c0be45e38eaba886a971cb645d797"
 dependencies = [
  "darling",
  "quote",
@@ -1519,8 +1519,9 @@ checksum = "b833d8d034ea094b1ea68aa6d5c740e0d04bad9d16568d08ba6f76823a114316"
 
 [[package]]
 name = "rsubs-lib"
-version = "0.3.0"
-source = "git+https://github.com/crunchy-labs/rsubs-lib.git?rev=1c51f60#1c51f60b8c48f1a8f7b261372b237d89bdc17dd4"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d01f7609f0b1bc4fe24b352e8d1792c7d71cc43aea797e14b87974cd009ab402"
 dependencies = [
  "regex",
  "serde",
diff --git a/pkgs/by-name/cr/crunchy-cli/package.nix b/pkgs/by-name/cr/crunchy-cli/package.nix
index 7a618986734cf..7ab919f6c2f49 100644
--- a/pkgs/by-name/cr/crunchy-cli/package.nix
+++ b/pkgs/by-name/cr/crunchy-cli/package.nix
@@ -10,20 +10,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "crunchy-cli";
-  version = "3.6.4";
+  version = "3.6.6";
 
   src = fetchFromGitHub {
     owner = "crunchy-labs";
     repo = "crunchy-cli";
     rev = "v${version}";
-    hash = "sha256-ujR/ZTQoNdxVuGd8fie7JwVINqcjwAwyou+iCihYOY0=";
+    hash = "sha256-LVJRv8YUTfavc0ZrK2fIlgc5npQKwEZosoLEYw/V/pw=";
   };
 
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
       "native-tls-0.2.11" = "sha256-r+uvpwf1qgOVYuh+3xYOOsDWyCJnyG4Qc8i7RV2nzy4=";
-      "rsubs-lib-0.3.0" = "sha256-hn0/KxUHgmC3hs8sAMkJKxR7WIjc8YGq9DJU2SriO1A=";
     };
   };
 
diff --git a/pkgs/by-name/db/dbeaver-bin/package.nix b/pkgs/by-name/db/dbeaver-bin/package.nix
index c4998ec7ce903..4f516930c313a 100644
--- a/pkgs/by-name/db/dbeaver-bin/package.nix
+++ b/pkgs/by-name/db/dbeaver-bin/package.nix
@@ -5,6 +5,7 @@
 , openjdk17
 , gnused
 , autoPatchelfHook
+, wrapGAppsHook3
 }:
 
 stdenvNoCC.mkDerivation (finalAttrs: {
@@ -15,6 +16,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
     makeWrapper
     gnused
     autoPatchelfHook
+    wrapGAppsHook3
   ];
 
   src =
diff --git a/pkgs/by-name/el/element-call/name.patch b/pkgs/by-name/el/element-call/name.patch
new file mode 100644
index 0000000000000..fa6ab068d18ca
--- /dev/null
+++ b/pkgs/by-name/el/element-call/name.patch
@@ -0,0 +1,10 @@
+diff --git a/package.json b/package.json
+index e25221f2..5268d11a 100644
+--- a/package.json
++++ b/package.json
+@@ -1,4 +1,5 @@
+ {
++  "name": "element-call",
+   "version": "0.0.0",
+   "type": "module",
+   "scripts": {
\ No newline at end of file
diff --git a/pkgs/by-name/el/element-call/package.json b/pkgs/by-name/el/element-call/package.json
new file mode 100644
index 0000000000000..173927845525c
--- /dev/null
+++ b/pkgs/by-name/el/element-call/package.json
@@ -0,0 +1,129 @@
+{
+  "name": "element-call",
+  "version": "0.0.0",
+  "type": "module",
+  "scripts": {
+    "dev": "vite",
+    "build": "NODE_OPTIONS=--max-old-space-size=16384 vite build",
+    "serve": "vite preview",
+    "prettier:check": "prettier -c .",
+    "prettier:format": "prettier -w .",
+    "lint": "yarn lint:types && yarn lint:eslint",
+    "lint:eslint": "eslint --max-warnings 0 src",
+    "lint:eslint-fix": "eslint --max-warnings 0 src --fix",
+    "lint:types": "tsc",
+    "i18n": "node_modules/i18next-parser/bin/cli.js",
+    "i18n:check": "node_modules/i18next-parser/bin/cli.js --fail-on-warnings --fail-on-update",
+    "test": "vitest",
+    "test:coverage": "vitest run --coverage",
+    "backend": "docker-compose -f backend-docker-compose.yml up"
+  },
+  "dependencies": {
+    "@juggle/resize-observer": "^3.3.1",
+    "@livekit/components-core": "^0.10.0",
+    "@livekit/components-react": "^2.0.0",
+    "@matrix-org/olm": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.14.tgz",
+    "@opentelemetry/api": "^1.4.0",
+    "@opentelemetry/context-zone": "^1.9.1",
+    "@opentelemetry/exporter-jaeger": "^1.9.1",
+    "@opentelemetry/exporter-trace-otlp-http": "^0.48.0",
+    "@opentelemetry/instrumentation-document-load": "^0.36.0",
+    "@opentelemetry/instrumentation-user-interaction": "^0.36.0",
+    "@opentelemetry/sdk-trace-web": "^1.9.1",
+    "@radix-ui/react-dialog": "^1.0.4",
+    "@radix-ui/react-slider": "^1.1.2",
+    "@radix-ui/react-visually-hidden": "^1.0.3",
+    "@react-aria/button": "^3.3.4",
+    "@react-aria/focus": "^3.5.0",
+    "@react-aria/menu": "^3.3.0",
+    "@react-aria/overlays": "^3.7.3",
+    "@react-aria/select": "^3.6.0",
+    "@react-aria/tabs": "^3.1.0",
+    "@react-aria/tooltip": "^3.1.3",
+    "@react-aria/utils": "^3.10.0",
+    "@react-rxjs/core": "^0.10.7",
+    "@react-spring/web": "^9.4.4",
+    "@react-stately/collections": "^3.3.4",
+    "@react-stately/select": "^3.1.3",
+    "@react-stately/tooltip": "^3.0.5",
+    "@react-stately/tree": "^3.2.0",
+    "@sentry/react": "^7.0.0",
+    "@sentry/tracing": "^7.0.0",
+    "@types/lodash": "^4.14.199",
+    "@use-gesture/react": "^10.2.11",
+    "@vector-im/compound-design-tokens": "^1.0.0",
+    "@vector-im/compound-web": "^3.0.0",
+    "@vitejs/plugin-basic-ssl": "^1.0.1",
+    "@vitejs/plugin-react": "^4.0.1",
+    "buffer": "^6.0.3",
+    "classnames": "^2.3.1",
+    "events": "^3.3.0",
+    "i18next": "^23.0.0",
+    "i18next-browser-languagedetector": "^7.0.0",
+    "i18next-http-backend": "^2.0.0",
+    "livekit-client": "^2.0.2",
+    "lodash": "^4.17.21",
+    "matrix-js-sdk": "github:matrix-org/matrix-js-sdk#d55c6a36df539f6adacc335efe5b9be27c9cee4a",
+    "matrix-widget-api": "^1.3.1",
+    "normalize.css": "^8.0.1",
+    "pako": "^2.0.4",
+    "postcss-preset-env": "^9.0.0",
+    "posthog-js": "^1.29.0",
+    "react": "18",
+    "react-dom": "18",
+    "react-i18next": "^14.0.0",
+    "react-router-dom": "^5.2.0",
+    "react-use-clipboard": "^1.0.7",
+    "react-use-measure": "^2.1.1",
+    "rxjs": "^7.8.1",
+    "sdp-transform": "^2.14.1",
+    "tinyqueue": "^2.0.3",
+    "unique-names-generator": "^4.6.0",
+    "uuid": "9",
+    "vaul": "^0.9.0"
+  },
+  "devDependencies": {
+    "@babel/core": "^7.16.5",
+    "@babel/preset-env": "^7.22.20",
+    "@babel/preset-react": "^7.22.15",
+    "@babel/preset-typescript": "^7.23.0",
+    "@react-spring/rafz": "^9.7.3",
+    "@react-types/dialog": "^3.5.5",
+    "@sentry/vite-plugin": "^2.0.0",
+    "@testing-library/react": "^14.0.0",
+    "@testing-library/user-event": "^14.5.1",
+    "@types/content-type": "^1.1.5",
+    "@types/dom-screen-wake-lock": "^1.0.1",
+    "@types/dompurify": "^3.0.2",
+    "@types/grecaptcha": "^3.0.4",
+    "@types/node": "^20.0.0",
+    "@types/react-router-dom": "^5.3.3",
+    "@types/request": "^2.48.8",
+    "@types/sdp-transform": "^2.4.5",
+    "@types/uuid": "9",
+    "@typescript-eslint/eslint-plugin": "^7.0.0",
+    "@typescript-eslint/parser": "^7.0.0",
+    "babel-loader": "^9.0.0",
+    "babel-plugin-transform-vite-meta-env": "^1.0.3",
+    "eslint": "^8.14.0",
+    "eslint-config-google": "^0.14.0",
+    "eslint-config-prettier": "^9.0.0",
+    "eslint-plugin-deprecate": "^0.8.2",
+    "eslint-plugin-import": "^2.26.0",
+    "eslint-plugin-jsx-a11y": "^6.5.1",
+    "eslint-plugin-matrix-org": "^1.2.1",
+    "eslint-plugin-react": "^7.29.4",
+    "eslint-plugin-react-hooks": "^4.5.0",
+    "eslint-plugin-unicorn": "^51.0.0",
+    "i18next-parser": "^8.0.0",
+    "jsdom": "^24.0.0",
+    "prettier": "^3.0.0",
+    "sass": "^1.42.1",
+    "typescript": "^5.1.6",
+    "typescript-eslint-language-service": "^5.0.5",
+    "vite": "^5.0.0",
+    "vite-plugin-html-template": "^1.1.0",
+    "vite-plugin-svgr": "^4.0.0",
+    "vitest": "^1.2.2"
+  }
+}
diff --git a/pkgs/by-name/el/element-call/package.nix b/pkgs/by-name/el/element-call/package.nix
new file mode 100644
index 0000000000000..da7f41222c162
--- /dev/null
+++ b/pkgs/by-name/el/element-call/package.nix
@@ -0,0 +1,58 @@
+{ lib
+, stdenv
+, mkYarnPackage
+, fetchFromGitHub
+, fetchYarnDeps
+}:
+
+let
+  inherit (stdenv.hostPlatform) system;
+  throwSystem = throw "Unsupported system: ${system}";
+  offlineCacheHash = {
+    x86_64-linux = "sha256-mZCnvX6hzkdi/zjPiefcmbyC2kGemjS4w7WTVkyq8W0=";
+    aarch64-linux = "sha256-mZCnvX6hzkdi/zjPiefcmbyC2kGemjS4w7WTVkyq8W0=";
+    x86_64-darwin = "sha256-G4doEnZORJqcl3bWaKZPuQmBeXNXud06nLO12Afr9kM=";
+    aarch64-darwin = "sha256-G4doEnZORJqcl3bWaKZPuQmBeXNXud06nLO12Afr9kM=";
+  }.${system} or throwSystem;
+in
+mkYarnPackage rec {
+  pname = "element-call";
+  version = "0.5.16";
+
+  src = fetchFromGitHub {
+    owner = "element-hq";
+    repo = "element-call";
+    rev = "v${version}";
+    hash = "sha256-GTHM27i716RZk+kDELMg/lYy355/SZoQLXGPQ90M4xg=";
+  };
+
+  packageJSON = ./package.json;
+
+  patches = [ ./name.patch ];
+
+  offlineCache = fetchYarnDeps {
+    yarnLock = "${src}/yarn.lock";
+    hash = offlineCacheHash;
+  };
+
+  buildPhase = ''
+    runHook preBuild
+    yarn --offline run build
+    runHook postBuild
+  '';
+
+  preInstall = ''
+    mkdir $out
+    cp -R ./deps/element-call/dist $out
+  '';
+
+  doDist = false;
+
+  meta = with lib; {
+    homepage = "https://github.com/element-hq/element-call";
+    description = "Group calls powered by Matrix";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ kilimnik ];
+    mainProgram = "element-call";
+  };
+}
diff --git a/pkgs/by-name/er/errands/package.nix b/pkgs/by-name/er/errands/package.nix
index b5114b5e49e53..3c695781d28ee 100644
--- a/pkgs/by-name/er/errands/package.nix
+++ b/pkgs/by-name/er/errands/package.nix
@@ -17,7 +17,7 @@
 }:
 python3Packages.buildPythonApplication rec {
   pname = "errands";
-  version = "46.2";
+  version = "46.2.2";
 
   pyproject = false;
 
@@ -25,7 +25,7 @@ python3Packages.buildPythonApplication rec {
     owner = "mrvladus";
     repo = "Errands";
     rev = "refs/tags/${version}";
-    hash = "sha256-p/2dHLWSdDAe0+xTvOgmGscTUPLG+0ddIVHMcHY86xg=";
+    hash = "sha256-lX0exxZMbq/iC41bByMfT478vhOQadPJAN72PHiznKc=";
   };
 
   nativeBuildInputs = [
@@ -59,12 +59,13 @@ python3Packages.buildPythonApplication rec {
     makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
   '';
 
-  meta = with lib; {
+  meta = {
     description = "Manage your tasks";
+    changelog = "https://github.com/mrvladus/Errands/releases/tag/${version}";
     homepage = "https://github.com/mrvladus/Errands";
-    license = licenses.mit;
+    license = lib.licenses.mit;
     mainProgram = "errands";
-    maintainers = with maintainers; [
+    maintainers = with lib.maintainers; [
       luftmensch-luftmensch
       sund3RRR
     ];
diff --git a/pkgs/by-name/es/espflash/package.nix b/pkgs/by-name/es/espflash/package.nix
index 5615e3cf8cf8f..04ef9a62eaf7d 100644
--- a/pkgs/by-name/es/espflash/package.nix
+++ b/pkgs/by-name/es/espflash/package.nix
@@ -15,13 +15,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "espflash";
-  version = "3.0.0";
+  version = "3.1.0";
 
   src = fetchFromGitHub {
     owner = "esp-rs";
     repo = "espflash";
     rev = "v${version}";
-    hash = "sha256-0CnYdz1KG/y4B+dOp9rYE097ctf4GNmyqv3/xywdA6A=";
+    hash = "sha256-Tp74x5qgccq/7z1y0ozjiooPFxO7miDPuXBZ+XEKaW0=";
   };
 
   nativeBuildInputs = [
@@ -40,7 +40,7 @@ rustPlatform.buildRustPackage rec {
     SystemConfiguration
   ];
 
-  cargoHash = "sha256-CmhBl+d5odc0QL45aWCJcBZIVeJsdpxJweh7FT8cpyY=";
+  cargoHash = "sha256-kn79kNS+vres7rhHMANAofqFv0k8Bg4HVEWBJvz7CSY=";
 
   postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
     installShellCompletion --cmd espflash \
diff --git a/pkgs/applications/file-managers/felix-fm/default.nix b/pkgs/by-name/fe/felix-fm/package.nix
index f34be93fc3ca7..728b3aba99a21 100644
--- a/pkgs/applications/file-managers/felix-fm/default.nix
+++ b/pkgs/by-name/fe/felix-fm/package.nix
@@ -1,9 +1,11 @@
 { lib
 , rustPlatform
 , fetchFromGitHub
+, fetchpatch2
 , pkg-config
 , bzip2
 , libgit2
+, nix-update-script
 , zlib
 , zstd
 , zoxide
@@ -11,16 +13,25 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "felix";
-  version = "2.12.1";
+  version = "2.13.0";
 
   src = fetchFromGitHub {
     owner = "kyoheiu";
     repo = "felix";
     rev = "v${version}";
-    hash = "sha256-M+auLJeD5rDk5LJfTBg9asZ3J4DHsZG4UGRhXdZZVkc=";
+    hash = "sha256-7KuL3YkKhjcZSMSipbNITaA9/MGo54f3lz3fVOgy52s=";
   };
 
-  cargoHash = "sha256-GzaBaaGjBCz+xd1bpU2cebQvg5DO0qipHwhOerbq+ow=";
+  cargoPatches = [
+    # https://github.com/kyoheiu/felix/pull/292
+    (fetchpatch2 {
+      name = "update-cargo.lock-for-2.13.0.patch";
+      url = "https://github.com/kyoheiu/felix/commit/5085b147103878ee8138d4fcf7b204223ba2c3eb.patch";
+      hash = "sha256-7Bga9hcJCXExA/jnrR/HuZgOOVBbWs1tdTwxldcvdU8=";
+    })
+  ];
+
+  cargoHash = "sha256-FX3AsahU5ZLMuylwo1jihP9G4Dw1SFv1oMXcuOqDTF8=";
 
   nativeBuildInputs = [ pkg-config ];
 
@@ -45,6 +56,8 @@ rustPlatform.buildRustPackage rec {
     "--skip=state::tests::test_has_write_permission"
   ];
 
+  passthru.updateScript = nix-update-script { };
+
   meta = with lib; {
     description = "A tui file manager with vim-like key mapping";
     homepage = "https://github.com/kyoheiu/felix";
diff --git a/pkgs/by-name/ff/fflogs/package.nix b/pkgs/by-name/ff/fflogs/package.nix
index bc0ca54fcebbf..709f8d6d807af 100644
--- a/pkgs/by-name/ff/fflogs/package.nix
+++ b/pkgs/by-name/ff/fflogs/package.nix
@@ -5,10 +5,10 @@
 
 let
   pname = "fflogs";
-  version = "8.5.6";
+  version = "8.5.9";
   src = fetchurl {
     url = "https://github.com/RPGLogs/Uploaders-fflogs/releases/download/v${version}/fflogs-v${version}.AppImage";
-    hash = "sha256-mLqQ1T5mBNUkTkgbGO/nVkoSy6U7hVBk9EcYAjo3i3k=";
+    hash = "sha256-rVkrjDocAfOI2ymsa0XMsVvbVtUa72C314InN7ZTkZc=";
   };
   extracted = appimageTools.extractType2 { inherit pname version src; };
 in
diff --git a/pkgs/by-name/fi/files-cli/package.nix b/pkgs/by-name/fi/files-cli/package.nix
index 1bc90b5420cf7..7c5125c8add0b 100644
--- a/pkgs/by-name/fi/files-cli/package.nix
+++ b/pkgs/by-name/fi/files-cli/package.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "files-cli";
-  version = "2.13.50";
+  version = "2.13.53";
 
   src = fetchFromGitHub {
     repo = "files-cli";
     owner = "files-com";
     rev = "v${version}";
-    hash = "sha256-UeRB+vmnLr85oGwaiuyfe5pVCN1EmEQqyoU5tY2hst8=";
+    hash = "sha256-fUOcAluc/H6ZfE14FjLH60cQeUarJ+4PeIb6IkaBwtE=";
   };
 
-  vendorHash = "sha256-L6UnKbqS6aO8+XSPt5KaKGYr30y9RE+l4U3hapPHHvA=";
+  vendorHash = "sha256-yVr4u96L+Kgd1Qi2jhvWhwo/EnENwlZgJZtkGOWbteM=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/by-name/fl/flarectl/package.nix b/pkgs/by-name/fl/flarectl/package.nix
index c094fe961af9f..fb5786857ef40 100644
--- a/pkgs/by-name/fl/flarectl/package.nix
+++ b/pkgs/by-name/fl/flarectl/package.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "flarectl";
-  version = "0.95.0";
+  version = "0.96.0";
 
   src = fetchFromGitHub {
     owner = "cloudflare";
     repo = "cloudflare-go";
     rev = "v${version}";
-    hash = "sha256-GcmFRtQ8aqicvawCpFDo+oheUSOgKewBETIizPKcyGU=";
+    hash = "sha256-iqR+9qgHYCk7DGX64f50ANUYxTn0h4+AoBHE6yGAvtU=";
   };
 
-  vendorHash = "sha256-Jtap4hGwNr8lpXi6huGikL4iUSP242cIiFyvGveszq8=";
+  vendorHash = "sha256-SkJTLOJ6518MQ0pAPM3TR8T5dOSwEbyQNZHr1jq936A=";
 
   subPackages = [ "cmd/flarectl" ];
 
diff --git a/pkgs/by-name/fl/flashmq/package.nix b/pkgs/by-name/fl/flashmq/package.nix
index 1b243197b8b53..95e9d93a36c3f 100644
--- a/pkgs/by-name/fl/flashmq/package.nix
+++ b/pkgs/by-name/fl/flashmq/package.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "flashmq";
-  version = "1.13.0";
+  version = "1.13.1";
 
   src = fetchFromGitHub {
     owner = "halfgaar";
     repo = "FlashMQ";
     rev = "v${version}";
-    hash = "sha256-MoBLV39auDz5oicpX6CVvrHMifGpUozocq4E3J+8xWA=";
+    hash = "sha256-ZKDoh2eZDs7iQpfsvfsG7ic+A8NG+UUGgq9l2tmfhVI=";
   };
 
   nativeBuildInputs = [ cmake installShellFiles ];
diff --git a/pkgs/by-name/fl/flawz/package.nix b/pkgs/by-name/fl/flawz/package.nix
new file mode 100644
index 0000000000000..504dd849b5d90
--- /dev/null
+++ b/pkgs/by-name/fl/flawz/package.nix
@@ -0,0 +1,57 @@
+{ lib
+, fetchFromGitHub
+, rustPlatform
+, pkg-config
+, openssl
+, sqlite
+, installShellFiles
+, stdenv
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "flawz";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "orhun";
+    repo = "flawz";
+    rev = "v${version}";
+    hash = "sha256-eIZUKI/fdaSPHHEEaN/5s4I2LRX44FijUlKzzvuD42E=";
+  };
+
+  cargoHash = "sha256-UWjrVA5T78QLJtMug38y+egLnM+G7zmAIsNmqn2ZE5I=";
+
+  nativeBuildInputs = [ pkg-config installShellFiles ];
+
+  buildInputs = [ openssl sqlite ];
+  outputs = [ "out" "man" ];
+
+  postInstall = ''
+    export OUT_DIR=$(mktemp -d)
+
+    # Generate the man pages
+    cargo run --bin flawz-mangen
+    installManPage $OUT_DIR/flawz.1
+
+    # Generate shell completions
+    cargo run --bin flawz-completions
+    installShellCompletion \
+      --bash $OUT_DIR/flawz.bash \
+      --fish $OUT_DIR/flawz.fish \
+      --zsh $OUT_DIR/_flawz
+
+    # Clean up temporary directory
+    rm -rf $OUT_DIR
+  '';
+
+  meta = {
+    description = "Terminal UI for browsing CVEs";
+    homepage = "https://github.com/orhun/flawz";
+    changelog = "https://github.com/orhun/flawz/releases/tag/v${version}";
+    license = with lib.licenses; [ mit asl20 ];
+    mainProgram = "flawz";
+    maintainers = with lib.maintainers; [ anas ];
+    platforms = with lib.platforms; unix ++ windows;
+    broken = stdenv.isDarwin; # needing some apple_sdk packages
+  };
+}
diff --git a/pkgs/applications/misc/font-manager/default.nix b/pkgs/by-name/fo/font-manager/package.nix
index 95594cb030d06..0cfc68aa4fd2b 100644
--- a/pkgs/applications/misc/font-manager/default.nix
+++ b/pkgs/by-name/fo/font-manager/package.nix
@@ -16,7 +16,7 @@
 , gtk3
 , gnome
 , desktop-file-utils
-, fetchpatch2
+, nix-update-script
 , wrapGAppsHook3
 , gobject-introspection
 # withWebkit enables the "webkit" feature, also known as Google Fonts
@@ -25,25 +25,15 @@
 
 stdenv.mkDerivation rec {
   pname = "font-manager";
-  version = "0.8.8";
+  version = "0.8.9";
 
   src = fetchFromGitHub {
     owner = "FontManager";
     repo = "font-manager";
     rev = version;
-    hash = "sha256-M13Q9d2cKhc0tudkvw0zgqPAFTlmXwK+LltXeuDPWxo=";
+    hash = "sha256-LsQry6CjvVcJFRutKOaqA4lLP7Ek09Q/D/TPnSvx59Q=";
   };
 
-  patches = [
-    # see https://github.com/FontManager/font-manager/issues/355
-    # should be removed on next release
-    (fetchpatch2 {
-      name = "fix-build-with-newer-vala.patch";
-      url = "https://github.com/FontManager/font-manager/commit/600f498946c3904064b4e4fdf96e5841f6a827e4.patch";
-      hash = "sha256-DC9+pvG88t+PPdGQ2oemeEYK9PaD0C2yWBYYCh4Wn9g=";
-    })
-  ];
-
   nativeBuildInputs = [
     pkg-config
     meson
@@ -82,6 +72,8 @@ stdenv.mkDerivation rec {
     patchShebangs meson_post_install.py
   '';
 
+  passthru.updateScript = nix-update-script { };
+
   meta = with lib; {
     homepage = "https://fontmanager.github.io/";
     description = "Simple font management for GTK desktop environments";
diff --git a/pkgs/by-name/fo/fooyin/package.nix b/pkgs/by-name/fo/fooyin/package.nix
index afa5bf4047c6d..883aafdb928a7 100644
--- a/pkgs/by-name/fo/fooyin/package.nix
+++ b/pkgs/by-name/fo/fooyin/package.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "fooyin";
-  version = "0.4.2";
+  version = "0.4.3";
 
   src = fetchFromGitHub {
     owner = "ludouzi";
     repo = "fooyin";
     rev = "v" + finalAttrs.version;
-    hash = "sha256-1U7eqXVcp0lO/X92oNQ3mWdozgJ1eroQPojscSWH6+I=";
+    hash = "sha256-S74Y7Q3MmKfxMGyO8un+YDHmCJUYNKY6KqTSPn+CynE=";
   };
 
   buildInputs = [
diff --git a/pkgs/by-name/fw/fwupd/package.nix b/pkgs/by-name/fw/fwupd/package.nix
index 5e4b1d7ba7746..a691b94f24884 100644
--- a/pkgs/by-name/fw/fwupd/package.nix
+++ b/pkgs/by-name/fw/fwupd/package.nix
@@ -120,7 +120,7 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "fwupd";
-  version = "1.9.19";
+  version = "1.9.20";
 
   # libfwupd goes to lib
   # daemon, plug-ins and libfwupdplugin go to out
@@ -131,7 +131,7 @@ stdenv.mkDerivation (finalAttrs: {
     owner = "fwupd";
     repo = "fwupd";
     rev = finalAttrs.version;
-    hash = "sha256-PQwUBOsKejXpS3G3VSJgatCltGy+wejPXCdEsDw87jo=";
+    hash = "sha256-uPHZtl1jzx3rRHADXcQmpXwQrbUbIXuoww3fN4BUviE=";
   };
 
   patches = [
diff --git a/pkgs/by-name/g3/g3kb-switch/package.nix b/pkgs/by-name/g3/g3kb-switch/package.nix
index 91994eb36624b..f3a2650a5bc55 100644
--- a/pkgs/by-name/g3/g3kb-switch/package.nix
+++ b/pkgs/by-name/g3/g3kb-switch/package.nix
@@ -7,12 +7,12 @@
 }:
 stdenv.mkDerivation rec {
   pname = "g3kb-switch";
-  version = "1.4";
+  version = "1.5";
   src = fetchFromGitHub {
     owner = "lyokha";
     repo = "g3kb-switch";
     rev = version;
-    sha256 = "sha256-mcZduHcteZ+nS0YEZG5DfmpA8xrnLhwxumq6hLuLPIs=";
+    sha256 = "sha256-kTJfV0xQmWuxibUlfC1qJX2J2nrZ4wimdf/nGciQq0Y=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/ga/gamescope/package.nix b/pkgs/by-name/ga/gamescope/package.nix
index 3b60a9f40715f..d1c62b5609611 100644
--- a/pkgs/by-name/ga/gamescope/package.nix
+++ b/pkgs/by-name/ga/gamescope/package.nix
@@ -44,14 +44,14 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "gamescope";
-  version = "3.14.16";
+  version = "3.14.18";
 
   src = fetchFromGitHub {
     owner = "ValveSoftware";
     repo = "gamescope";
     rev = "refs/tags/${finalAttrs.version}";
     fetchSubmodules = true;
-    hash = "sha256-tijFVOIMW+nkot/uRP0PNZBYZkZMMt1PcAN5+3SWzW4=";
+    hash = "sha256-XcefR0wiDHQY7wMX+LQTEntffi2RdMW8m2HNQMz035A=";
   };
 
   patches = [
diff --git a/pkgs/by-name/gh/gh-eco/package.nix b/pkgs/by-name/gh/gh-eco/package.nix
new file mode 100644
index 0000000000000..002362001848a
--- /dev/null
+++ b/pkgs/by-name/gh/gh-eco/package.nix
@@ -0,0 +1,45 @@
+{
+  lib,
+  fetchFromGitHub,
+  buildGoModule,
+  fetchpatch,
+}:
+let
+  version = "0.1.3";
+in
+buildGoModule {
+  pname = "gh-eco";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "jrnxf";
+    repo = "gh-eco";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-TE1AymNlxjUtkBnBO/VBjYaqLuRyxL75s6sMidKUXTE=";
+  };
+
+  patches = [
+    # Fix package breaking on runtime by updating deps
+    (fetchpatch {
+      name = "update-deps.patch";
+      url = "https://github.com/jrnxf/gh-eco/commit/d45b1e7de8cbcb692def0e94111262cdeff2835d.patch";
+      hash = "sha256-vW5YX6C552dVYjBkYVoDbzT2PP8CaZzxh5g1TKHjrbU=";
+    })
+  ];
+
+  vendorHash = "sha256-O3FQ+Z3KVYgTafwVXUhrGRuOAWlWlOhtVegKVoZBnDE=";
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-X main.Version=${version}"
+  ];
+
+  meta = {
+    homepage = "https://github.com/coloradocolby/gh-eco";
+    description = "gh extension to explore the ecosystem";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ helium ];
+    mainProgram = "gh-eco";
+  };
+}
diff --git a/pkgs/by-name/gh/ghciwatch/package.nix b/pkgs/by-name/gh/ghciwatch/package.nix
index 4dcd45887a106..cf01e89b4c34c 100644
--- a/pkgs/by-name/gh/ghciwatch/package.nix
+++ b/pkgs/by-name/gh/ghciwatch/package.nix
@@ -8,16 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "ghciwatch";
-  version = "0.5.12";
+  version = "0.5.16";
 
   src = fetchFromGitHub {
     owner = "MercuryTechnologies";
     repo = "ghciwatch";
     rev = "v${version}";
-    hash = "sha256-XkwxAhZJFeAuWytCco4RFG1K/FJEiTmGDxOyY6KS/Ds=";
+    hash = "sha256-XKR/X27oScB9XdyXeYKD6nlnkBTLJLXkzsRgfS3ygVE=";
   };
 
-  cargoHash = "sha256-ToQes3WWnI7vDKSBQZEzpKFSex5oDdnOKjOC6MONrhg=";
+  cargoHash = "sha256-BKPzOv2RtcE4MzRyvHs3VmNME2uKtGXCqGrULfryacM=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.CoreFoundation
diff --git a/pkgs/by-name/gn/gnome-monitor-config/package.nix b/pkgs/by-name/gn/gnome-monitor-config/package.nix
new file mode 100644
index 0000000000000..ddbe66745393b
--- /dev/null
+++ b/pkgs/by-name/gn/gnome-monitor-config/package.nix
@@ -0,0 +1,48 @@
+{ lib
+, fetchFromGitHub
+, stdenv
+, meson
+, ninja
+, pkg-config
+, cairo
+, glib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gnome-monitor-config";
+  version = "0-unstable-2023-09-26";
+
+  src = fetchFromGitHub {
+    owner = "jadahl";
+    repo = "gnome-monitor-config";
+    rev = "04b854e6411cd9ca75582c108aea63ae3c202f0e";
+    hash = "sha256-uVWhQ5SCyadDkeOd+pY2cYZAQ0ZvWMlgndcr1ZIEf50=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+  ];
+
+  buildInputs = [
+    cairo
+    glib
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/bin
+    mv src/gnome-monitor-config $out/bin
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A program to help manage GNOME monitor configuration";
+    homepage = "https://github.com/jadahl/gnome-monitor-config";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ aveltras ];
+    platforms = platforms.linux;
+    mainProgram = "gnome-monitor-config";
+  };
+}
diff --git a/pkgs/by-name/gr/graphite-cli/package-lock.json b/pkgs/by-name/gr/graphite-cli/package-lock.json
index 72a0fa9474847..95b5700cb8bd2 100644
--- a/pkgs/by-name/gr/graphite-cli/package-lock.json
+++ b/pkgs/by-name/gr/graphite-cli/package-lock.json
@@ -1,12 +1,12 @@
 {
   "name": "@withgraphite/graphite-cli",
-  "version": "1.3.4",
+  "version": "1.3.5",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
       "name": "@withgraphite/graphite-cli",
-      "version": "1.3.4",
+      "version": "1.3.5",
       "hasInstallScript": true,
       "license": "None",
       "dependencies": {
@@ -126,17 +126,6 @@
         "node": ">=8"
       }
     },
-    "node_modules/lru-cache": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
-      "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
-      "dependencies": {
-        "yallist": "^4.0.0"
-      },
-      "engines": {
-        "node": ">=10"
-      }
-    },
     "node_modules/require-directory": {
       "version": "2.1.1",
       "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
@@ -146,12 +135,9 @@
       }
     },
     "node_modules/semver": {
-      "version": "7.6.0",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
-      "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
-      "dependencies": {
-        "lru-cache": "^6.0.0"
-      },
+      "version": "7.6.2",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
+      "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
       "bin": {
         "semver": "bin/semver.js"
       },
@@ -238,11 +224,6 @@
         "node": ">=10"
       }
     },
-    "node_modules/yallist": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
-      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
-    },
     "node_modules/yargs": {
       "version": "17.7.2",
       "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
diff --git a/pkgs/by-name/gr/graphite-cli/package.nix b/pkgs/by-name/gr/graphite-cli/package.nix
index df4f95b88bb50..a22f592a7bb1a 100644
--- a/pkgs/by-name/gr/graphite-cli/package.nix
+++ b/pkgs/by-name/gr/graphite-cli/package.nix
@@ -7,14 +7,14 @@
 
 buildNpmPackage rec {
   pname = "graphite-cli";
-  version = "1.3.4";
+  version = "1.3.5";
 
   src = fetchurl {
     url = "https://registry.npmjs.org/@withgraphite/graphite-cli/-/graphite-cli-${version}.tgz";
-    hash = "sha256-Rc/dj3r3EpMbxx9rYj4kXnstmUGLR46U+7v6n1jSaiQ=";
+    hash = "sha256-W/EFhlJeiZrBK9FG4DhR1iyU9YSSbaf/np2vQ8obA0M=";
   };
 
-  npmDepsHash = "sha256-w9d96SMLISPua9LMZscDjL7L8mGPO1RGyNjg8eU40hw=";
+  npmDepsHash = "sha256-X1FWYAuHouOXuAlgrbwgrbwaxKX5JS8iG0RnCPX5TvM=";
 
   postPatch = ''
     ln -s ${./package-lock.json} package-lock.json
diff --git a/pkgs/by-name/gr/grype/package.nix b/pkgs/by-name/gr/grype/package.nix
index 25cf7d472839b..2394ba2465722 100644
--- a/pkgs/by-name/gr/grype/package.nix
+++ b/pkgs/by-name/gr/grype/package.nix
@@ -93,6 +93,11 @@ buildGoModule rec {
     substituteInPlace grype/presenter/sarif/presenter_test.go \
       --replace-fail "Test_SarifIsValid" "SkipTest_SarifIsValid"
 
+    # May fail on NixOS, probably due bug in how syft handles tmpfs.
+    # See https://github.com/anchore/grype/issues/1822
+    substituteInPlace grype/distro/distro_test.go \
+      --replace-fail "Test_NewDistroFromRelease_Coverage" "SkipTest_NewDistroFromRelease_Coverage"
+
     # segfault
     rm grype/db/v5/namespace/cpe/namespace_test.go
   '';
diff --git a/pkgs/by-name/ha/havn/package.nix b/pkgs/by-name/ha/havn/package.nix
new file mode 100644
index 0000000000000..8612e7037abc1
--- /dev/null
+++ b/pkgs/by-name/ha/havn/package.nix
@@ -0,0 +1,37 @@
+{
+  lib,
+  fetchFromGitHub,
+  rustPlatform,
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "havn";
+  version = "0.1.11";
+
+  src = fetchFromGitHub {
+    owner = "mrjackwills";
+    repo = "havn";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-iotSSKId2y3Y7Dh8iSW1/y3xDbXHHPl6RQ3uA/+JdE8=";
+  };
+
+  cargoHash = "sha256-Tec1YeP1zwE8nurQOYxa9hzGBy3uxkjDUFlh0BppUTo=";
+
+  checkFlags = [
+    # Skip tests that require network access
+    "--skip=scanner::tests::test_scanner_1000_80_443"
+    "--skip=scanner::tests::test_scanner_all_80"
+    "--skip=scanner::tests::test_scanner_port_80"
+    "--skip=terminal::print::tests::test_terminal_monochrome_false"
+  ];
+
+  meta = {
+    homepage = "https://github.com/mrjackwills/havn";
+    description = "A fast configurable port scanner with reasonable defaults";
+    changelog = "https://github.com/mrjackwills/havn/blob/v${version}/CHANGELOG.md";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ luftmensch-luftmensch ];
+    mainProgram = "havn";
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/hi/hieroglyphic/Cargo.lock b/pkgs/by-name/hi/hieroglyphic/Cargo.lock
new file mode 100644
index 0000000000000..4c0e63991d32b
--- /dev/null
+++ b/pkgs/by-name/hi/hieroglyphic/Cargo.lock
@@ -0,0 +1,1448 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "anyhow"
+version = "1.0.82"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519"
+
+[[package]]
+name = "async-channel"
+version = "2.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "136d4d23bcc79e27423727b36823d86233aad06dfea531837b038394d11e9928"
+dependencies = [
+ "concurrent-queue",
+ "event-listener",
+ "event-listener-strategy",
+ "futures-core",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "autocfg"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80"
+
+[[package]]
+name = "base32"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23ce669cd6c8588f79e15cf450314f9638f967fc5770ff1c7c1deb0925ea7cfa"
+
+[[package]]
+name = "base64"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff"
+
+[[package]]
+name = "bitflags"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
+
+[[package]]
+name = "block"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
+
+[[package]]
+name = "cairo-rs"
+version = "0.19.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2ac2a4d0e69036cf0062976f6efcba1aaee3e448594e6514bb2ddf87acce562"
+dependencies = [
+ "bitflags",
+ "cairo-sys-rs",
+ "glib",
+ "libc",
+ "thiserror",
+]
+
+[[package]]
+name = "cairo-sys-rs"
+version = "0.19.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd3bb3119664efbd78b5e6c93957447944f16bdbced84c17a9f41c7829b81e64"
+dependencies = [
+ "glib-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "cc"
+version = "1.0.95"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d32a725bc159af97c3e629873bb9f88fb8cf8a4867175f76dc987815ea07c83b"
+
+[[package]]
+name = "cfg-expr"
+version = "0.15.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02"
+dependencies = [
+ "smallvec",
+ "target-lexicon",
+]
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "concurrent-queue"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-deque"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
+dependencies = [
+ "crossbeam-epoch",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-epoch"
+version = "0.9.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
+
+[[package]]
+name = "detexify"
+version = "0.4.0"
+source = "git+https://github.com/FineFindus/detexify-rust.git?rev=d3750a6531bc92826ad2a2bd013cc5fe06f9e3ae#d3750a6531bc92826ad2a2bd013cc5fe06f9e3ae"
+dependencies = [
+ "base32",
+ "base64",
+ "itertools 0.9.0",
+ "phf",
+ "phf_codegen",
+ "rayon",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "tuple",
+ "yaml-rust",
+]
+
+[[package]]
+name = "either"
+version = "1.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a47c1c47d2f5964e29c61246e81db715514cd532db6b5116a25ea3c03d6780a2"
+
+[[package]]
+name = "equivalent"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
+[[package]]
+name = "event-listener"
+version = "5.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d9944b8ca13534cdfb2800775f8dd4902ff3fc75a50101466decadfdf322a24"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener-strategy"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "332f51cb23d20b0de8458b86580878211da09bcd4503cb579c225b3d124cabb3"
+dependencies = [
+ "event-listener",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "field-offset"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f"
+dependencies = [
+ "memoffset",
+ "rustc_version",
+]
+
+[[package]]
+name = "futures-channel"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
+dependencies = [
+ "futures-core",
+]
+
+[[package]]
+name = "futures-core"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
+
+[[package]]
+name = "futures-executor"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
+dependencies = [
+ "futures-core",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-io"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
+
+[[package]]
+name = "futures-macro"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.60",
+]
+
+[[package]]
+name = "futures-task"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
+
+[[package]]
+name = "futures-util"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
+dependencies = [
+ "futures-core",
+ "futures-macro",
+ "futures-task",
+ "pin-project-lite",
+ "pin-utils",
+ "slab",
+]
+
+[[package]]
+name = "gdk-pixbuf"
+version = "0.19.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6a23f8a0b5090494fd04924662d463f8386cc678dd3915015a838c1a3679b92"
+dependencies = [
+ "gdk-pixbuf-sys",
+ "gio",
+ "glib",
+ "libc",
+]
+
+[[package]]
+name = "gdk-pixbuf-sys"
+version = "0.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3dcbd04c1b2c4834cc008b4828bc917d062483b88d26effde6342e5622028f96"
+dependencies = [
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "gdk4"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9100b25604183f2fd97f55ef087fae96ab4934d7215118a35303e422688e6e4b"
+dependencies = [
+ "cairo-rs",
+ "gdk-pixbuf",
+ "gdk4-sys",
+ "gio",
+ "glib",
+ "libc",
+ "pango",
+]
+
+[[package]]
+name = "gdk4-sys"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d0b76874c40bb8d1c7d03a7231e23ac75fa577a456cd53af32ec17ec8f121626"
+dependencies = [
+ "cairo-sys-rs",
+ "gdk-pixbuf-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "pango-sys",
+ "pkg-config",
+ "system-deps",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.1.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi",
+]
+
+[[package]]
+name = "gettext-rs"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e49ea8a8fad198aaa1f9655a2524b64b70eb06b2f3ff37da407566c93054f364"
+dependencies = [
+ "gettext-sys",
+ "locale_config",
+]
+
+[[package]]
+name = "gettext-sys"
+version = "0.21.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c63ce2e00f56a206778276704bbe38564c8695249fdc8f354b4ef71c57c3839d"
+dependencies = [
+ "cc",
+ "temp-dir",
+]
+
+[[package]]
+name = "gio"
+version = "0.19.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f91a0518c2ec539f099d3f945ab2d6a83ec372a9ef40a21906343b191182845"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "futures-util",
+ "gio-sys",
+ "glib",
+ "libc",
+ "pin-project-lite",
+ "smallvec",
+ "thiserror",
+]
+
+[[package]]
+name = "gio-sys"
+version = "0.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bcf8e1d9219bb294636753d307b030c1e8a032062cba74f493c431a5c8b81ce4"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+ "windows-sys",
+]
+
+[[package]]
+name = "glib"
+version = "0.19.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae1407b2ce171e654720be10d57d4054d3ff2f10a13d5b37e6819b41439832f7"
+dependencies = [
+ "bitflags",
+ "futures-channel",
+ "futures-core",
+ "futures-executor",
+ "futures-task",
+ "futures-util",
+ "gio-sys",
+ "glib-macros",
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "memchr",
+ "smallvec",
+ "thiserror",
+]
+
+[[package]]
+name = "glib-macros"
+version = "0.19.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d8bba315e8ce8aa59631545358450f4962557e89b5f7db7442e7153b47037f71"
+dependencies = [
+ "heck",
+ "proc-macro-crate",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.60",
+]
+
+[[package]]
+name = "glib-sys"
+version = "0.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "630f097773d7c7a0bb3258df4e8157b47dc98bbfa0e60ad9ab56174813feced4"
+dependencies = [
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "gobject-sys"
+version = "0.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c85e2b1080b9418dd0c58b498da3a5c826030343e0ef07bde6a955d28de54979"
+dependencies = [
+ "glib-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "graphene-rs"
+version = "0.19.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "99e4d388e96c5f29e2b2f67045d229ddf826d0a8d6d282f94ed3b34452222c91"
+dependencies = [
+ "glib",
+ "graphene-sys",
+ "libc",
+]
+
+[[package]]
+name = "graphene-sys"
+version = "0.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "236ed66cc9b18d8adf233716f75de803d0bf6fc806f60d14d948974a12e240d0"
+dependencies = [
+ "glib-sys",
+ "libc",
+ "pkg-config",
+ "system-deps",
+]
+
+[[package]]
+name = "gsk4"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c65036fc8f99579e8cb37b12487969b707ab23ec8ab953682ff347cbd15d396e"
+dependencies = [
+ "cairo-rs",
+ "gdk4",
+ "glib",
+ "graphene-rs",
+ "gsk4-sys",
+ "libc",
+ "pango",
+]
+
+[[package]]
+name = "gsk4-sys"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd24c814379f9c3199dc53e52253ee8d0f657eae389ab282c330505289d24738"
+dependencies = [
+ "cairo-sys-rs",
+ "gdk4-sys",
+ "glib-sys",
+ "gobject-sys",
+ "graphene-sys",
+ "libc",
+ "pango-sys",
+ "system-deps",
+]
+
+[[package]]
+name = "gtk4"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa82753b8c26277e4af1446c70e35b19aad4fb794a7b143859e7eeb9a4025d83"
+dependencies = [
+ "cairo-rs",
+ "field-offset",
+ "futures-channel",
+ "gdk-pixbuf",
+ "gdk4",
+ "gio",
+ "glib",
+ "graphene-rs",
+ "gsk4",
+ "gtk4-macros",
+ "gtk4-sys",
+ "libc",
+ "pango",
+]
+
+[[package]]
+name = "gtk4-macros"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "40300bf071d2fcd4c94eacc09e84ec6fe73129d2ceb635cf7e55b026b5443567"
+dependencies = [
+ "anyhow",
+ "proc-macro-crate",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "gtk4-sys"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0db1b104138f087ccdc81d2c332de5dd049b89de3d384437cc1093b17cd2da18"
+dependencies = [
+ "cairo-sys-rs",
+ "gdk-pixbuf-sys",
+ "gdk4-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "graphene-sys",
+ "gsk4-sys",
+ "libc",
+ "pango-sys",
+ "system-deps",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.14.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
+
+[[package]]
+name = "heck"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
+
+[[package]]
+name = "hieroglyphic"
+version = "1.1.0"
+dependencies = [
+ "async-channel",
+ "cairo-rs",
+ "detexify",
+ "gdk-pixbuf",
+ "gettext-rs",
+ "gtk4",
+ "itertools 0.12.1",
+ "libadwaita",
+ "pango",
+ "tracing",
+ "tracing-subscriber",
+]
+
+[[package]]
+name = "indexmap"
+version = "2.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
+dependencies = [
+ "equivalent",
+ "hashbrown",
+]
+
+[[package]]
+name = "itertools"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b"
+dependencies = [
+ "either",
+]
+
+[[package]]
+name = "itertools"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
+dependencies = [
+ "either",
+]
+
+[[package]]
+name = "itoa"
+version = "1.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "libadwaita"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91b4990248b9e1ec5e72094a2ccaea70ec3809f88f6fd52192f2af306b87c5d9"
+dependencies = [
+ "gdk-pixbuf",
+ "gdk4",
+ "gio",
+ "glib",
+ "gtk4",
+ "libadwaita-sys",
+ "libc",
+ "pango",
+]
+
+[[package]]
+name = "libadwaita-sys"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23a748e4e92be1265cd9e93d569c0b5dfc7814107985aa6743d670ab281ea1a8"
+dependencies = [
+ "gdk4-sys",
+ "gio-sys",
+ "glib-sys",
+ "gobject-sys",
+ "gtk4-sys",
+ "libc",
+ "pango-sys",
+ "system-deps",
+]
+
+[[package]]
+name = "libc"
+version = "0.2.153"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
+
+[[package]]
+name = "linked-hash-map"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
+
+[[package]]
+name = "locale_config"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08d2c35b16f4483f6c26f0e4e9550717a2f6575bcd6f12a53ff0c490a94a6934"
+dependencies = [
+ "lazy_static",
+ "objc",
+ "objc-foundation",
+ "regex",
+ "winapi",
+]
+
+[[package]]
+name = "log"
+version = "0.4.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
+
+[[package]]
+name = "malloc_buf"
+version = "0.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "memchr"
+version = "2.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
+
+[[package]]
+name = "memoffset"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "nu-ansi-term"
+version = "0.46.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
+dependencies = [
+ "overload",
+ "winapi",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.1.43"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31"
+dependencies = [
+ "num-traits 0.2.18",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "objc"
+version = "0.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1"
+dependencies = [
+ "malloc_buf",
+]
+
+[[package]]
+name = "objc-foundation"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9"
+dependencies = [
+ "block",
+ "objc",
+ "objc_id",
+]
+
+[[package]]
+name = "objc_id"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b"
+dependencies = [
+ "objc",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+
+[[package]]
+name = "overload"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
+
+[[package]]
+name = "pango"
+version = "0.19.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1264d13deb823cc652f26cfe59afb1ec4b9db2a5bd27c41b738c879cc1bfaa1"
+dependencies = [
+ "gio",
+ "glib",
+ "libc",
+ "pango-sys",
+]
+
+[[package]]
+name = "pango-sys"
+version = "0.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f52ef6a881c19fbfe3b1484df5cad411acaaba29dbec843941c3110d19f340ea"
+dependencies = [
+ "glib-sys",
+ "gobject-sys",
+ "libc",
+ "system-deps",
+]
+
+[[package]]
+name = "parking"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
+
+[[package]]
+name = "phf"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12"
+dependencies = [
+ "phf_shared",
+]
+
+[[package]]
+name = "phf_codegen"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815"
+dependencies = [
+ "phf_generator",
+ "phf_shared",
+]
+
+[[package]]
+name = "phf_generator"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526"
+dependencies = [
+ "phf_shared",
+ "rand",
+]
+
+[[package]]
+name = "phf_shared"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7"
+dependencies = [
+ "siphasher",
+]
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
+name = "pkg-config"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+
+[[package]]
+name = "proc-macro-crate"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284"
+dependencies = [
+ "toml_edit 0.21.1",
+]
+
+[[package]]
+name = "proc-macro-error"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
+dependencies = [
+ "proc-macro-error-attr",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro-error-attr"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.81"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.36"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "rand"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
+dependencies = [
+ "getrandom",
+ "libc",
+ "rand_chacha",
+ "rand_core",
+ "rand_hc",
+ "rand_pcg",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
+dependencies = [
+ "ppv-lite86",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "rand_hc"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
+dependencies = [
+ "rand_core",
+]
+
+[[package]]
+name = "rand_pcg"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429"
+dependencies = [
+ "rand_core",
+]
+
+[[package]]
+name = "rayon"
+version = "1.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa"
+dependencies = [
+ "either",
+ "rayon-core",
+]
+
+[[package]]
+name = "rayon-core"
+version = "1.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
+dependencies = [
+ "crossbeam-deque",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "regex"
+version = "1.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
+
+[[package]]
+name = "rustc_version"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+dependencies = [
+ "semver",
+]
+
+[[package]]
+name = "ryu"
+version = "1.0.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
+
+[[package]]
+name = "semver"
+version = "1.0.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
+
+[[package]]
+name = "serde"
+version = "1.0.198"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9846a40c979031340571da2545a4e5b7c4163bdae79b301d5f86d03979451fcc"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.198"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e88edab869b01783ba905e7d0153f9fc1a6505a96e4ad3018011eedb838566d9"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.60",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.116"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813"
+dependencies = [
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_spanned"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "sharded-slab"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
+dependencies = [
+ "lazy_static",
+]
+
+[[package]]
+name = "siphasher"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
+
+[[package]]
+name = "slab"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "smallvec"
+version = "1.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
+
+[[package]]
+name = "syn"
+version = "1.0.109"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.60"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "909518bc7b1c9b779f1bbf07f2929d35af9f0f37e47c6e9ef7f9dddc1e1821f3"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "system-deps"
+version = "6.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349"
+dependencies = [
+ "cfg-expr",
+ "heck",
+ "pkg-config",
+ "toml",
+ "version-compare",
+]
+
+[[package]]
+name = "target-lexicon"
+version = "0.12.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f"
+
+[[package]]
+name = "temp-dir"
+version = "0.1.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f227968ec00f0e5322f9b8173c7a0cbcff6181a0a5b28e9892491c286277231"
+
+[[package]]
+name = "thiserror"
+version = "1.0.59"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0126ad08bff79f29fc3ae6a55cc72352056dfff61e3ff8bb7129476d44b23aa"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.59"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d1cd413b5d558b4c5bf3680e324a6fa5014e7b7c067a51e69dbdf47eb7148b66"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.60",
+]
+
+[[package]]
+name = "thread_local"
+version = "1.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
+dependencies = [
+ "cfg-if",
+ "once_cell",
+]
+
+[[package]]
+name = "toml"
+version = "0.8.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3"
+dependencies = [
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "toml_edit 0.22.12",
+]
+
+[[package]]
+name = "toml_datetime"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.21.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1"
+dependencies = [
+ "indexmap",
+ "toml_datetime",
+ "winnow 0.5.40",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.22.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3328d4f68a705b2a4498da1d580585d39a6510f98318a2cec3018a7ec61ddef"
+dependencies = [
+ "indexmap",
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "winnow 0.6.6",
+]
+
+[[package]]
+name = "tracing"
+version = "0.1.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
+dependencies = [
+ "pin-project-lite",
+ "tracing-attributes",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-attributes"
+version = "0.1.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.60",
+]
+
+[[package]]
+name = "tracing-core"
+version = "0.1.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
+dependencies = [
+ "once_cell",
+ "valuable",
+]
+
+[[package]]
+name = "tracing-log"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
+dependencies = [
+ "log",
+ "once_cell",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-subscriber"
+version = "0.3.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
+dependencies = [
+ "nu-ansi-term",
+ "sharded-slab",
+ "smallvec",
+ "thread_local",
+ "tracing-core",
+ "tracing-log",
+]
+
+[[package]]
+name = "tuple"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "014493a81b7f393503eb896ab5b268532baff9359a7f4efe347dca3359f317f2"
+dependencies = [
+ "num-traits 0.1.43",
+ "serde",
+]
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+
+[[package]]
+name = "valuable"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
+
+[[package]]
+name = "version-compare"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b"
+
+[[package]]
+name = "version_check"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+
+[[package]]
+name = "wasi"
+version = "0.9.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows-sys"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
+dependencies = [
+ "windows_aarch64_gnullvm",
+ "windows_aarch64_msvc",
+ "windows_i686_gnu",
+ "windows_i686_gnullvm",
+ "windows_i686_msvc",
+ "windows_x86_64_gnu",
+ "windows_x86_64_gnullvm",
+ "windows_x86_64_msvc",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
+
+[[package]]
+name = "winnow"
+version = "0.5.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "winnow"
+version = "0.6.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0c976aaaa0e1f90dbb21e9587cdaf1d9679a1cde8875c0d6bd83ab96a208352"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "yaml-rust"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85"
+dependencies = [
+ "linked-hash-map",
+]
diff --git a/pkgs/by-name/hi/hieroglyphic/package.nix b/pkgs/by-name/hi/hieroglyphic/package.nix
index f130488e95b2c..38b8f1d04feb9 100644
--- a/pkgs/by-name/hi/hieroglyphic/package.nix
+++ b/pkgs/by-name/hi/hieroglyphic/package.nix
@@ -15,6 +15,7 @@
   libadwaita,
   darwin,
   gettext,
+  appstream,
 }:
 
 let
@@ -22,20 +23,22 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "hieroglyphic";
-  version = "1.0.1";
-  # Note: 1.1.0 requires a higher gtk4 version. This requirement could be patched out.
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "FineFindus";
     repo = "Hieroglyphic";
     rev = "refs/tags/v${finalAttrs.version}";
-    hash = "sha256-Twx3yM71xn2FT3CbiFGbo2knGvb4MBl6VwjWlbjfks0=";
+    hash = "sha256-8UUFatJwtxqumhHd0aiPk6nKsaaF/jIIqMFxXye0X8U=";
   };
 
-  cargoDeps = rustPlatform.fetchCargoTarball {
-    inherit (finalAttrs) src;
-    name = "${finalAttrs.pname}-${finalAttrs.version}";
-    hash = "sha256-Se/YCi0e+Uoh5guDteLRXZYyk7et0NA8cv+vNpLxzx4=";
+  # We have to use importCargoLock here because `cargo vendor` currently doesn't support workspace
+  # inheritance within Git dependencies, but importCargoLock does.
+  cargoDeps = rustPlatform.importCargoLock {
+    lockFile = ./Cargo.lock;
+    outputHashes = {
+      "detexify-0.4.0" = "sha256-BPOHNr3pwu2il3/ERko+WHAWby4rPR49i62tXDlDRu0=";
+    };
   };
 
   nativeBuildInputs = [
@@ -47,6 +50,7 @@ stdenv.mkDerivation (finalAttrs: {
     pkg-config
     wrapGAppsHook4
     desktop-file-utils
+    appstream
   ];
 
   buildInputs =
diff --git a/pkgs/by-name/hi/hifile/package.nix b/pkgs/by-name/hi/hifile/package.nix
index 4e06e08231dbf..43f6dfe82fa5d 100644
--- a/pkgs/by-name/hi/hifile/package.nix
+++ b/pkgs/by-name/hi/hifile/package.nix
@@ -1,12 +1,12 @@
 { lib, appimageTools, fetchurl }:
 
 let
-  version = "0.9.9.11";
+  version = "0.9.9.12";
   pname = "hifile";
 
   src = fetchurl {
     url = "https://www.hifile.app/files/HiFile-${version}.AppImage";
-    hash = "sha256-T/ig5Tfo58+yMp+kOEa96+QvABg6gTaIbdy53jWucvM=";
+    hash = "sha256-/1/5n+YDO1IhkUAjRIlr2NnNoU30u3gWbvhTLbN70q0=";
   };
 
   appimageContents = appimageTools.extractType2 {
diff --git a/pkgs/by-name/hy/hyprcursor/package.nix b/pkgs/by-name/hy/hyprcursor/package.nix
index eade6e69456bc..42885f20376f1 100644
--- a/pkgs/by-name/hy/hyprcursor/package.nix
+++ b/pkgs/by-name/hy/hyprcursor/package.nix
@@ -12,13 +12,13 @@
 }:
 stdenv.mkDerivation (finalAttrs: {
   pname = "hyprcursor";
-  version = "0.1.8";
+  version = "0.1.9";
 
   src = fetchFromGitHub {
     owner = "hyprwm";
     repo = "hyprcursor";
     rev = "refs/tags/v${finalAttrs.version}";
-    hash = "sha256-zJboXgWNpNhKyNF8H/3UYzWkx7w00TOCGKi3cwi+tsw=";
+    hash = "sha256-FIN1wMoyePBTtibCbaeJaoKNLuAYIGwLCWAYC1DJanw=";
   };
 
   patches = [
diff --git a/pkgs/by-name/ic/icewm/package.nix b/pkgs/by-name/ic/icewm/package.nix
index c4f7e28c7df7a..e19e9490a0edf 100644
--- a/pkgs/by-name/ic/icewm/package.nix
+++ b/pkgs/by-name/ic/icewm/package.nix
@@ -49,10 +49,13 @@ stdenv.mkDerivation (finalAttrs: {
     hash = "sha256-n0p8i6v6QreCFiChngHnx+5K4Djj34/+dmIA+bj/0cU=";
   };
 
+  strictDeps = true;
+
   nativeBuildInputs = [
     cmake
     perl
     pkg-config
+    gettext # msgmerge
   ];
 
   buildInputs = [
diff --git a/pkgs/by-name/ic/icloudpd/package.nix b/pkgs/by-name/ic/icloudpd/package.nix
index c123568a258fd..16620e77661b1 100644
--- a/pkgs/by-name/ic/icloudpd/package.nix
+++ b/pkgs/by-name/ic/icloudpd/package.nix
@@ -8,14 +8,14 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "icloudpd";
-  version = "1.17.6";
+  version = "1.18.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "icloud-photos-downloader";
     repo = "icloud_photos_downloader";
     rev = "v${version}";
-    hash = "sha256-KTMFT6L+5WexKZiMPjga/HzoGYNWVldoRoqBPSj2a/s=";
+    hash = "sha256-QVfzGL/W7EmJvGXM8ge4sxWhSyshHYPykudMO1IcZJs=";
   };
 
   pythonRelaxDeps = true;
diff --git a/pkgs/by-name/im/immich-go/package.nix b/pkgs/by-name/im/immich-go/package.nix
index 439c4768ea15e..9d8cfda974e15 100644
--- a/pkgs/by-name/im/immich-go/package.nix
+++ b/pkgs/by-name/im/immich-go/package.nix
@@ -1,13 +1,13 @@
 { lib, buildGoModule, fetchFromGitHub, nix-update-script, testers, immich-go }:
 buildGoModule rec {
   pname = "immich-go";
-  version = "0.14.1";
+  version = "0.15.0";
 
   src = fetchFromGitHub {
     owner = "simulot";
     repo = "immich-go";
     rev = "${version}";
-    hash = "sha256-5dgEyg55ffJLH8zxp6mFVsUqAzyPnY18XnX+jMethUc=";
+    hash = "sha256-gZVjs0aFwlx5joX7iqy7uDd23d/4LjP/t6u7z8X/P8o=";
 
     # Inspired by: https://github.com/NixOS/nixpkgs/blob/f2d7a289c5a5ece8521dd082b81ac7e4a57c2c5c/pkgs/applications/graphics/pdfcpu/default.nix#L20-L32
     # The intention here is to write the information into files in the `src`'s
diff --git a/pkgs/by-name/ja/jailer/package.nix b/pkgs/by-name/ja/jailer/package.nix
index 867d813b1f410..b47c51a78d170 100644
--- a/pkgs/by-name/ja/jailer/package.nix
+++ b/pkgs/by-name/ja/jailer/package.nix
@@ -13,13 +13,13 @@
 }:
 stdenv.mkDerivation (finalAttrs: {
   name = "jailer";
-  version = "16.1.4";
+  version = "16.2";
 
   src = fetchFromGitHub {
     owner = "Wisser";
     repo = "Jailer";
-    rev = "dcde48b2e0c7b68cc1b6f73c80fde06fdf31fdc6";
-    sha256 = "sha256-cPOWW2z44vCc/Fw1zYZUsYafgKr82e0g+K0Db5A9F5M=";
+    rev = "bc00c6883bac0d09b549e35a10e202da477e4cb1";
+    sha256 = "sha256-nXxTKbhvrBlorNqiF3wZDEgf1VrBamWw8ZSQSUqpGT8=";
   };
 
 
diff --git a/pkgs/by-name/ja/jan/package.nix b/pkgs/by-name/ja/jan/package.nix
index af4fc834ea16f..faa0c19d4ae56 100644
--- a/pkgs/by-name/ja/jan/package.nix
+++ b/pkgs/by-name/ja/jan/package.nix
@@ -5,10 +5,10 @@
 
 let
   pname = "jan";
-  version = "0.4.13";
+  version = "0.4.14";
   src = fetchurl {
     url = "https://github.com/janhq/jan/releases/download/v${version}/jan-linux-x86_64-${version}.AppImage";
-    hash = "sha256-6RjpkIMYScgJ2xTS7b2w90ixEm4ZHw8Izecjho93sRE=";
+    hash = "sha256-nqTvLZ0upNI82R4QaHTKaGQLVC3eHMVEHoOZ4JvXR1E=";
   };
 
   appimageContents = appimageTools.extractType2 { inherit pname version src; };
diff --git a/pkgs/by-name/jn/jnv/package.nix b/pkgs/by-name/jn/jnv/package.nix
index 740a536be0dfa..558094cb31000 100644
--- a/pkgs/by-name/jn/jnv/package.nix
+++ b/pkgs/by-name/jn/jnv/package.nix
@@ -7,16 +7,16 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "jnv";
-  version = "0.2.2";
+  version = "0.2.3";
 
   src = fetchFromGitHub {
     owner = "ynqa";
     repo = "jnv";
     rev = "v${version}";
-    hash = "sha256-IvpbVcTGGD7cn59SPlcqMuu9YXB3ur3AFaoWDVADoqI=";
+    hash = "sha256-yAyhXXWXsFkQq34aCG+IwE+wkYicu4vmOmX1uSs3R4o=";
   };
 
-  cargoHash = "sha256-dqWQi0DYl2P1qPzmtYOcarnfu2bfSnLk/SVQq5d+Z8Y=";
+  cargoHash = "sha256-PcEQSp4GrMRT6zjbINSZ3lojkpvCyZC2fRHqnG6aPOw=";
 
   nativeBuildInputs = [
     autoconf
diff --git a/pkgs/by-name/jq/jq-zsh-plugin/package.nix b/pkgs/by-name/jq/jq-zsh-plugin/package.nix
new file mode 100644
index 0000000000000..3e06f6d58872f
--- /dev/null
+++ b/pkgs/by-name/jq/jq-zsh-plugin/package.nix
@@ -0,0 +1,44 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  fzf,
+  jq,
+  nix-update-script,
+}:
+
+stdenv.mkDerivation rec {
+  pname = "jq-zsh-plugin";
+  version = "0.6.1";
+
+  src = fetchFromGitHub {
+    owner = "reegnz";
+    repo = "jq-zsh-plugin";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-q/xQZ850kifmd8rCMW+aAEhuA43vB9ZAW22sss9e4SE=";
+  };
+
+  strictDeps = true;
+  dontConfigure = true;
+  dontBuild = true;
+  installPhase = ''
+    mkdir -p $out/share/jq-zsh-plugin/
+    cp jq.plugin.zsh $out/share/jq-zsh-plugin
+    cp -r bin/ $out/share/jq-zsh-plugin
+    substituteInPlace $out/share/jq-zsh-plugin/bin/jq-repl --replace-fail "fzf \\" "${fzf}/bin/fzf \\"
+    substituteInPlace $out/share/jq-zsh-plugin/jq.plugin.zsh --replace-fail ":-jq" ":-${jq}/bin/jq"
+    substituteInPlace $out/share/jq-zsh-plugin/bin/jq-paths --replace-fail ":-jq" ":-${jq}/bin/jq"
+    substituteInPlace $out/share/jq-zsh-plugin/bin/jq-repl --replace-fail ":-jq" ":-${jq}/bin/jq"
+    substituteInPlace $out/share/jq-zsh-plugin/bin/jq-repl-preview --replace-fail ":-jq" ":-${jq}/bin/jq"
+  '';
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = {
+    description = "Interactively build jq expressions in Zsh";
+    homepage = "https://github.com/reegnz/jq-zsh-plugin";
+    license = lib.licenses.mit;
+    platforms = lib.platforms.unix;
+    maintainers = [ lib.maintainers.vinnymeller ];
+  };
+}
diff --git a/pkgs/by-name/ju/junest/package.nix b/pkgs/by-name/ju/junest/package.nix
new file mode 100644
index 0000000000000..a74a9815a81c5
--- /dev/null
+++ b/pkgs/by-name/ju/junest/package.nix
@@ -0,0 +1,33 @@
+{ lib, fetchFromGitHub, stdenvNoCC, wget }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "junest";
+  version = "7.4.8";
+
+  src = fetchFromGitHub {
+    owner = "fsquillace";
+    repo = "junest";
+    rev = "refs/tags/${version}";
+    hash = "sha256-9yrQ721fHUxXEZ0mh27SB8yoUH67ltOktUq3kr4qrBc=";
+  };
+
+  dontBuild = true;
+
+  installPhase = ''
+    mkdir -p $out/bin
+    mkdir -p $out/lib
+    cp -r $src/bin/ $out/
+    cp -r $src/lib/ $out/
+    substituteInPlace $out/lib/core/common.sh --replace-fail "wget" ${lib.getExe wget}
+  '';
+
+  meta = {
+    description = "Arch distro that runs on top of another without root";
+    homepage = "https://github.com/fsquillace/junest";
+    license = lib.licenses.gpl3Only;
+    mainProgram = "junest";
+    maintainers = with lib.maintainers; [ jdev082 ];
+    platforms = lib.platforms.linux;
+  };
+}
+
diff --git a/pkgs/by-name/ka/kanidm/package.nix b/pkgs/by-name/ka/kanidm/package.nix
index 430a2d6d66b2b..e034d6ee9680b 100644
--- a/pkgs/by-name/ka/kanidm/package.nix
+++ b/pkgs/by-name/ka/kanidm/package.nix
@@ -71,6 +71,11 @@ rustPlatform.buildRustPackage rec {
     cp -r server/web_ui/pkg $out/ui
   '';
 
+  # Not sure what pathological case it hits when compiling tests with LTO,
+  # but disabling it takes the total `cargo check` time from 40 minutes to
+  # around 5 on a 16-core machine.
+  cargoTestFlags = ["--config" ''profile.release.lto="off"''];
+
   preFixup = ''
     installShellCompletion \
       --bash $releaseDir/build/completions/*.bash \
diff --git a/pkgs/by-name/ka/karmor/package.nix b/pkgs/by-name/ka/karmor/package.nix
index b87c022d67a8e..30e943bd322f8 100644
--- a/pkgs/by-name/ka/karmor/package.nix
+++ b/pkgs/by-name/ka/karmor/package.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "karmor";
-  version = "1.2.1";
+  version = "1.2.2";
 
   src = fetchFromGitHub {
     owner = "kubearmor";
     repo = "kubearmor-client";
     rev = "v${version}";
-    hash = "sha256-NNCV/+Jh/tjc7SC4E9/gtiVthVmAxZBOyW3MFISbkH4=";
+    hash = "sha256-LdUu56y9jRPFOF/Tfo9GZYmOlZIUs7/byWj2yQw7BE4=";
   };
 
-  vendorHash = "sha256-CKOZxmUVZWFb7cc+amPwyMv5ScujWeipEqm95m63SYk=";
+  vendorHash = "sha256-r3Fy4nOjlvyHcvztSfOOE6PmOhhNcVdoIq+ie5jqwkw=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/by-name/ko/koboldcpp/package.nix b/pkgs/by-name/ko/koboldcpp/package.nix
new file mode 100644
index 0000000000000..e0c5aec6a2df6
--- /dev/null
+++ b/pkgs/by-name/ko/koboldcpp/package.nix
@@ -0,0 +1,154 @@
+{
+  lib,
+  fetchFromGitHub,
+  stdenv,
+  makeWrapper,
+  gitUpdater,
+  python311Packages,
+  tk,
+
+  darwin,
+
+  koboldLiteSupport ? true,
+
+  config,
+  cudaPackages ? { },
+
+  openblasSupport ? !stdenv.isDarwin,
+  openblas,
+
+  cublasSupport ? config.cudaSupport,
+
+  clblastSupport ? stdenv.isLinux,
+  clblast,
+  ocl-icd,
+
+  vulkanSupport ? true,
+  vulkan-loader,
+
+  metalSupport ? stdenv.isDarwin && stdenv.isAarch64,
+
+  # You can find list of x86_64 options here: https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html
+  # For ARM here: https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html
+  # If you set "march" to "native", specify "mtune" as well; otherwise, it will be set to "generic". (credit to: https://lemire.me/blog/2018/07/25/it-is-more-complicated-than-i-thought-mtune-march-in-gcc/)
+  # For example, if you have an AMD Ryzen CPU, you will set "march" to "x86-64" and "mtune" to "znver2"
+  march ? "",
+  mtune ? "",
+}:
+
+let
+  makeBool = option: bool: (if bool then "${option}=1" else "");
+
+  effectiveStdenv = if cublasSupport then cudaPackages.backendStdenv else stdenv;
+in
+effectiveStdenv.mkDerivation (finalAttrs: {
+  pname = "koboldcpp";
+  version = "1.66";
+
+  src = fetchFromGitHub {
+    owner = "LostRuins";
+    repo = "koboldcpp";
+    rev = "refs/tags/v${finalAttrs.version}";
+    sha256 = "sha256-3Gsbfxh3K3xa6Ofs9M9cfKWg0sxrolL8Ivx40iqvlA8=";
+  };
+
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [
+    makeWrapper
+    python311Packages.wrapPython
+  ];
+
+  pythonInputs = builtins.attrValues { inherit (python311Packages) tkinter customtkinter packaging; };
+
+  buildInputs =
+    [ tk ]
+    ++ finalAttrs.pythonInputs
+    ++ lib.optionals effectiveStdenv.isDarwin [
+      darwin.apple_sdk_11_0.frameworks.Accelerate
+      darwin.apple_sdk_11_0.frameworks.CoreVideo
+      darwin.apple_sdk_11_0.frameworks.CoreGraphics
+      darwin.apple_sdk_11_0.frameworks.CoreServices
+    ]
+    ++ lib.optionals metalSupport [
+      darwin.apple_sdk_11_0.frameworks.MetalKit
+      darwin.apple_sdk_11_0.frameworks.Foundation
+      darwin.apple_sdk_11_0.frameworks.MetalPerformanceShaders
+    ]
+    ++ lib.optionals openblasSupport [ openblas ]
+    ++ lib.optionals cublasSupport [
+      cudaPackages.libcublas
+      cudaPackages.cuda_nvcc
+      cudaPackages.cuda_cudart
+      cudaPackages.cuda_cccl
+    ]
+    ++ lib.optionals clblastSupport [
+      clblast
+      ocl-icd
+    ]
+    ++ lib.optionals vulkanSupport [ vulkan-loader ];
+
+  pythonPath = finalAttrs.pythonInputs;
+
+  darwinLdFlags = lib.optionals stdenv.isDarwin [
+    "-F${darwin.apple_sdk_11_0.frameworks.CoreServices}/Library/Frameworks"
+    "-F${darwin.apple_sdk_11_0.frameworks.Accelerate}/Library/Frameworks"
+    "-framework CoreServices"
+    "-framework Accelerate"
+  ];
+  metalLdFlags = lib.optionals metalSupport [
+    "-F${darwin.apple_sdk_11_0.frameworks.Foundation}/Library/Frameworks"
+    "-F${darwin.apple_sdk_11_0.frameworks.Metal}/Library/Frameworks"
+    "-framework Foundation"
+    "-framework Metal"
+  ];
+
+  env.NIX_LDFLAGS = lib.concatStringsSep " " (finalAttrs.darwinLdFlags ++ finalAttrs.metalLdFlags);
+
+  env.NIX_CFLAGS_COMPILE =
+    lib.optionalString (march != "") "-march=${march}" + lib.optionalString (mtune != "") "-mtune=${mtune}";
+
+  makeFlags = [
+    (makeBool "LLAMA_OPENBLAS" openblasSupport)
+    (makeBool "LLAMA_CUBLAS" cublasSupport)
+    (makeBool "LLAMA_CLBLAST" clblastSupport)
+    (makeBool "LLAMA_VULKAN" vulkanSupport)
+    (makeBool "LLAMA_METAL" metalSupport)
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p "$out/bin"
+
+    install -Dm755 koboldcpp.py "$out/bin/koboldcpp.unwrapped"
+    cp *.so "$out/bin"
+    cp *.embd "$out/bin"
+
+    ${lib.optionalString (!koboldLiteSupport) ''
+      rm "$out/bin/kcpp_docs.embd"
+      rm "$out/bin/klite.embd"
+    ''}
+
+    runHook postInstall
+  '';
+
+  postFixup = ''
+    wrapPythonProgramsIn "$out/bin" "$pythonPath"
+    makeWrapper "$out/bin/koboldcpp.unwrapped" "$out/bin/koboldcpp" \
+    --prefix PATH ${lib.makeBinPath [ tk ]}
+  '';
+
+  passthru.updateScript = gitUpdater { rev-prefix = "v"; };
+
+  meta = {
+    description = "A way to run various GGML and GGUF models";
+    license = lib.licenses.agpl3Only;
+    maintainers = with lib.maintainers; [
+      maxstrid
+      donteatoreo
+    ];
+    mainProgram = "koboldcpp";
+    platforms = lib.platforms.unix;
+  };
+})
diff --git a/pkgs/by-name/ku/kube-state-metrics/package.nix b/pkgs/by-name/ku/kube-state-metrics/package.nix
new file mode 100644
index 0000000000000..f7e0b0110c8da
--- /dev/null
+++ b/pkgs/by-name/ku/kube-state-metrics/package.nix
@@ -0,0 +1,32 @@
+{
+  lib,
+  buildGoModule,
+  fetchFromGitHub,
+}:
+
+buildGoModule rec {
+  pname = "kube-state-metrics";
+  version = "2.12.0";
+
+  src = fetchFromGitHub {
+    owner = "kubernetes";
+    repo = "kube-state-metrics";
+    rev = "v${version}";
+    hash = "sha256-EBSlufgzT4zgxTO5B0/RHHJJ2GgtU3U9ypd1QjC3knE=";
+  };
+
+  vendorHash = "sha256-A/oiFEWM3TOtk4V3xpehJ+5oKSyzYKZHVlp3wjykFRA=";
+
+  excludedPackages = [
+    "./tests/e2e"
+    "./tools"
+  ];
+
+  meta = {
+    homepage = "https://github.com/kubernetes/kube-state-metrics";
+    description = "Add-on agent to generate and expose k8s cluster-level metrics";
+    license = lib.licenses.asl20;
+    maintainers = [ lib.maintainers.eskytthe ];
+    platforms = lib.platforms.unix;
+  };
+}
diff --git a/pkgs/by-name/la/labwc-tweaks-gtk/package.nix b/pkgs/by-name/la/labwc-tweaks-gtk/package.nix
index 7d444421a0d86..a5ded72c8fb99 100644
--- a/pkgs/by-name/la/labwc-tweaks-gtk/package.nix
+++ b/pkgs/by-name/la/labwc-tweaks-gtk/package.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "labwc-tweaks-gtk";
-  version = "0-unstable-2024-05-19";
+  version = "0-unstable-2024-05-22";
 
   src = fetchFromGitHub {
     owner = "labwc";
     repo = "labwc-tweaks-gtk";
-    rev = "6f251c525a89bbe3dc3fd1bc8cd7cad4950b348a";
-    hash = "sha256-MVnEJ3tk/TDCxAG8v5TDAZUIWmlUrP6Bq1VyeM5VkZ4=";
+    rev = "485961aaaaa3c0158b6b31efd6e504db3c58dc27";
+    hash = "sha256-+X/inkxVPN26AYMqtq3uvfGPlVVhxQpEtF1A9uYAmfY=";
   };
 
   nativeBuildInputs = [
@@ -46,7 +46,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     homepage = "https://github.com/labwc/labwc-tweaks-gtk";
     description = "Configuration gui app for labwc; gtk fork";
-    mainProgram = "labwc-tweaks";
+    mainProgram = "labwc-tweaks-gtk";
     license = lib.licenses.gpl2Only;
     platforms = lib.platforms.unix;
     maintainers = with lib.maintainers; [ AndersonTorres romildo ];
diff --git a/pkgs/by-name/la/laravel/composer.lock b/pkgs/by-name/la/laravel/composer.lock
new file mode 100644
index 0000000000000..f4a977029e47b
--- /dev/null
+++ b/pkgs/by-name/la/laravel/composer.lock
@@ -0,0 +1,3764 @@
+{
+    "_readme": [
+        "This file locks the dependencies of your project to a known state",
+        "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
+        "This file is @generated automatically"
+    ],
+    "content-hash": "bbbf9f75876816a919d068f10bce5fcc",
+    "packages": [
+        {
+            "name": "carbonphp/carbon-doctrine-types",
+            "version": "3.2.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/CarbonPHP/carbon-doctrine-types.git",
+                "reference": "18ba5ddfec8976260ead6e866180bd5d2f71aa1d"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/CarbonPHP/carbon-doctrine-types/zipball/18ba5ddfec8976260ead6e866180bd5d2f71aa1d",
+                "reference": "18ba5ddfec8976260ead6e866180bd5d2f71aa1d",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^8.1"
+            },
+            "conflict": {
+                "doctrine/dbal": "<4.0.0 || >=5.0.0"
+            },
+            "require-dev": {
+                "doctrine/dbal": "^4.0.0",
+                "nesbot/carbon": "^2.71.0 || ^3.0.0",
+                "phpunit/phpunit": "^10.3"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Carbon\\Doctrine\\": "src/Carbon/Doctrine/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "KyleKatarn",
+                    "email": "kylekatarnls@gmail.com"
+                }
+            ],
+            "description": "Types to use Carbon in Doctrine",
+            "keywords": [
+                "carbon",
+                "date",
+                "datetime",
+                "doctrine",
+                "time"
+            ],
+            "support": {
+                "issues": "https://github.com/CarbonPHP/carbon-doctrine-types/issues",
+                "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/3.2.0"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/kylekatarnls",
+                    "type": "github"
+                },
+                {
+                    "url": "https://opencollective.com/Carbon",
+                    "type": "open_collective"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/nesbot/carbon",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-02-09T16:56:22+00:00"
+        },
+        {
+            "name": "doctrine/inflector",
+            "version": "2.0.10",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/doctrine/inflector.git",
+                "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/doctrine/inflector/zipball/5817d0659c5b50c9b950feb9af7b9668e2c436bc",
+                "reference": "5817d0659c5b50c9b950feb9af7b9668e2c436bc",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^7.2 || ^8.0"
+            },
+            "require-dev": {
+                "doctrine/coding-standard": "^11.0",
+                "phpstan/phpstan": "^1.8",
+                "phpstan/phpstan-phpunit": "^1.1",
+                "phpstan/phpstan-strict-rules": "^1.3",
+                "phpunit/phpunit": "^8.5 || ^9.5",
+                "vimeo/psalm": "^4.25 || ^5.4"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Doctrine\\Inflector\\": "lib/Doctrine/Inflector"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Guilherme Blanco",
+                    "email": "guilhermeblanco@gmail.com"
+                },
+                {
+                    "name": "Roman Borschel",
+                    "email": "roman@code-factory.org"
+                },
+                {
+                    "name": "Benjamin Eberlei",
+                    "email": "kontakt@beberlei.de"
+                },
+                {
+                    "name": "Jonathan Wage",
+                    "email": "jonwage@gmail.com"
+                },
+                {
+                    "name": "Johannes Schmitt",
+                    "email": "schmittjoh@gmail.com"
+                }
+            ],
+            "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.",
+            "homepage": "https://www.doctrine-project.org/projects/inflector.html",
+            "keywords": [
+                "inflection",
+                "inflector",
+                "lowercase",
+                "manipulation",
+                "php",
+                "plural",
+                "singular",
+                "strings",
+                "uppercase",
+                "words"
+            ],
+            "support": {
+                "issues": "https://github.com/doctrine/inflector/issues",
+                "source": "https://github.com/doctrine/inflector/tree/2.0.10"
+            },
+            "funding": [
+                {
+                    "url": "https://www.doctrine-project.org/sponsorship.html",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://www.patreon.com/phpdoctrine",
+                    "type": "patreon"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-02-18T20:23:39+00:00"
+        },
+        {
+            "name": "illuminate/collections",
+            "version": "v11.8.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/illuminate/collections.git",
+                "reference": "dad22e648ae0f4973470d82b4ae5f809540a87ff"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/illuminate/collections/zipball/dad22e648ae0f4973470d82b4ae5f809540a87ff",
+                "reference": "dad22e648ae0f4973470d82b4ae5f809540a87ff",
+                "shasum": ""
+            },
+            "require": {
+                "illuminate/conditionable": "^11.0",
+                "illuminate/contracts": "^11.0",
+                "illuminate/macroable": "^11.0",
+                "php": "^8.2"
+            },
+            "suggest": {
+                "symfony/var-dumper": "Required to use the dump method (^7.0)."
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "11.x-dev"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "helpers.php"
+                ],
+                "psr-4": {
+                    "Illuminate\\Support\\": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Taylor Otwell",
+                    "email": "taylor@laravel.com"
+                }
+            ],
+            "description": "The Illuminate Collections package.",
+            "homepage": "https://laravel.com",
+            "support": {
+                "issues": "https://github.com/laravel/framework/issues",
+                "source": "https://github.com/laravel/framework"
+            },
+            "time": "2024-05-20T13:26:28+00:00"
+        },
+        {
+            "name": "illuminate/conditionable",
+            "version": "v11.8.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/illuminate/conditionable.git",
+                "reference": "8a558fec063b6a63da1c3af1d219c0f998edffeb"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/illuminate/conditionable/zipball/8a558fec063b6a63da1c3af1d219c0f998edffeb",
+                "reference": "8a558fec063b6a63da1c3af1d219c0f998edffeb",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^8.0.2"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "11.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Illuminate\\Support\\": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Taylor Otwell",
+                    "email": "taylor@laravel.com"
+                }
+            ],
+            "description": "The Illuminate Conditionable package.",
+            "homepage": "https://laravel.com",
+            "support": {
+                "issues": "https://github.com/laravel/framework/issues",
+                "source": "https://github.com/laravel/framework"
+            },
+            "time": "2024-04-04T17:36:49+00:00"
+        },
+        {
+            "name": "illuminate/contracts",
+            "version": "v11.8.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/illuminate/contracts.git",
+                "reference": "8782f75e80ab3e6036842d24dbeead34a16f3a79"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/illuminate/contracts/zipball/8782f75e80ab3e6036842d24dbeead34a16f3a79",
+                "reference": "8782f75e80ab3e6036842d24dbeead34a16f3a79",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^8.2",
+                "psr/container": "^1.1.1|^2.0.1",
+                "psr/simple-cache": "^1.0|^2.0|^3.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "11.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Illuminate\\Contracts\\": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Taylor Otwell",
+                    "email": "taylor@laravel.com"
+                }
+            ],
+            "description": "The Illuminate Contracts package.",
+            "homepage": "https://laravel.com",
+            "support": {
+                "issues": "https://github.com/laravel/framework/issues",
+                "source": "https://github.com/laravel/framework"
+            },
+            "time": "2024-04-17T14:09:55+00:00"
+        },
+        {
+            "name": "illuminate/filesystem",
+            "version": "v11.8.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/illuminate/filesystem.git",
+                "reference": "56d387455019a0b3c19b76dc7ccb70e337ee7c4b"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/illuminate/filesystem/zipball/56d387455019a0b3c19b76dc7ccb70e337ee7c4b",
+                "reference": "56d387455019a0b3c19b76dc7ccb70e337ee7c4b",
+                "shasum": ""
+            },
+            "require": {
+                "illuminate/collections": "^11.0",
+                "illuminate/contracts": "^11.0",
+                "illuminate/macroable": "^11.0",
+                "illuminate/support": "^11.0",
+                "php": "^8.2",
+                "symfony/finder": "^7.0"
+            },
+            "suggest": {
+                "ext-fileinfo": "Required to use the Filesystem class.",
+                "ext-ftp": "Required to use the Flysystem FTP driver.",
+                "ext-hash": "Required to use the Filesystem class.",
+                "illuminate/http": "Required for handling uploaded files (^7.0).",
+                "league/flysystem": "Required to use the Flysystem local driver (^3.0.16).",
+                "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^3.0).",
+                "league/flysystem-ftp": "Required to use the Flysystem FTP driver (^3.0).",
+                "league/flysystem-sftp-v3": "Required to use the Flysystem SFTP driver (^3.0).",
+                "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).",
+                "symfony/filesystem": "Required to enable support for relative symbolic links (^7.0).",
+                "symfony/mime": "Required to enable support for guessing extensions (^7.0)."
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "11.x-dev"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "functions.php"
+                ],
+                "psr-4": {
+                    "Illuminate\\Filesystem\\": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Taylor Otwell",
+                    "email": "taylor@laravel.com"
+                }
+            ],
+            "description": "The Illuminate Filesystem package.",
+            "homepage": "https://laravel.com",
+            "support": {
+                "issues": "https://github.com/laravel/framework/issues",
+                "source": "https://github.com/laravel/framework"
+            },
+            "time": "2024-03-29T08:58:54+00:00"
+        },
+        {
+            "name": "illuminate/macroable",
+            "version": "v11.8.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/illuminate/macroable.git",
+                "reference": "5b6c7c7c5951e6e8fc22dd7e4363602df8294dfa"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/illuminate/macroable/zipball/5b6c7c7c5951e6e8fc22dd7e4363602df8294dfa",
+                "reference": "5b6c7c7c5951e6e8fc22dd7e4363602df8294dfa",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^8.2"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "11.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Illuminate\\Support\\": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Taylor Otwell",
+                    "email": "taylor@laravel.com"
+                }
+            ],
+            "description": "The Illuminate Macroable package.",
+            "homepage": "https://laravel.com",
+            "support": {
+                "issues": "https://github.com/laravel/framework/issues",
+                "source": "https://github.com/laravel/framework"
+            },
+            "time": "2024-05-16T21:43:47+00:00"
+        },
+        {
+            "name": "illuminate/support",
+            "version": "v11.8.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/illuminate/support.git",
+                "reference": "8deb8ba65ed7dc4e3f7b9b64ab70456250454824"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/illuminate/support/zipball/8deb8ba65ed7dc4e3f7b9b64ab70456250454824",
+                "reference": "8deb8ba65ed7dc4e3f7b9b64ab70456250454824",
+                "shasum": ""
+            },
+            "require": {
+                "doctrine/inflector": "^2.0",
+                "ext-ctype": "*",
+                "ext-filter": "*",
+                "ext-mbstring": "*",
+                "illuminate/collections": "^11.0",
+                "illuminate/conditionable": "^11.0",
+                "illuminate/contracts": "^11.0",
+                "illuminate/macroable": "^11.0",
+                "nesbot/carbon": "^2.72.2|^3.0",
+                "php": "^8.2",
+                "voku/portable-ascii": "^2.0"
+            },
+            "conflict": {
+                "tightenco/collect": "<5.5.33"
+            },
+            "replace": {
+                "spatie/once": "*"
+            },
+            "suggest": {
+                "illuminate/filesystem": "Required to use the composer class (^11.0).",
+                "league/commonmark": "Required to use Str::markdown() and Stringable::markdown() (^2.0.2).",
+                "ramsey/uuid": "Required to use Str::uuid() (^4.7).",
+                "symfony/process": "Required to use the composer class (^7.0).",
+                "symfony/uid": "Required to use Str::ulid() (^7.0).",
+                "symfony/var-dumper": "Required to use the dd function (^7.0).",
+                "vlucas/phpdotenv": "Required to use the Env class and env helper (^5.4.1)."
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "11.x-dev"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "helpers.php"
+                ],
+                "psr-4": {
+                    "Illuminate\\Support\\": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Taylor Otwell",
+                    "email": "taylor@laravel.com"
+                }
+            ],
+            "description": "The Illuminate Support package.",
+            "homepage": "https://laravel.com",
+            "support": {
+                "issues": "https://github.com/laravel/framework/issues",
+                "source": "https://github.com/laravel/framework"
+            },
+            "time": "2024-05-21T15:24:23+00:00"
+        },
+        {
+            "name": "laravel/prompts",
+            "version": "v0.1.22",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/laravel/prompts.git",
+                "reference": "37f94de71758dbfbccc9d299b0e5eb76e02a40f5"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/laravel/prompts/zipball/37f94de71758dbfbccc9d299b0e5eb76e02a40f5",
+                "reference": "37f94de71758dbfbccc9d299b0e5eb76e02a40f5",
+                "shasum": ""
+            },
+            "require": {
+                "ext-mbstring": "*",
+                "illuminate/collections": "^10.0|^11.0",
+                "php": "^8.1",
+                "symfony/console": "^6.2|^7.0"
+            },
+            "conflict": {
+                "illuminate/console": ">=10.17.0 <10.25.0",
+                "laravel/framework": ">=10.17.0 <10.25.0"
+            },
+            "require-dev": {
+                "mockery/mockery": "^1.5",
+                "pestphp/pest": "^2.3",
+                "phpstan/phpstan": "^1.11",
+                "phpstan/phpstan-mockery": "^1.1"
+            },
+            "suggest": {
+                "ext-pcntl": "Required for the spinner to be animated."
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "0.1.x-dev"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "src/helpers.php"
+                ],
+                "psr-4": {
+                    "Laravel\\Prompts\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "description": "Add beautiful and user-friendly forms to your command-line applications.",
+            "support": {
+                "issues": "https://github.com/laravel/prompts/issues",
+                "source": "https://github.com/laravel/prompts/tree/v0.1.22"
+            },
+            "time": "2024-05-10T19:22:18+00:00"
+        },
+        {
+            "name": "nesbot/carbon",
+            "version": "3.3.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/briannesbitt/Carbon.git",
+                "reference": "8ff64b92c1b1ec84fcde9f8bb9ff2ca34cb8a77a"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/8ff64b92c1b1ec84fcde9f8bb9ff2ca34cb8a77a",
+                "reference": "8ff64b92c1b1ec84fcde9f8bb9ff2ca34cb8a77a",
+                "shasum": ""
+            },
+            "require": {
+                "carbonphp/carbon-doctrine-types": "*",
+                "ext-json": "*",
+                "php": "^8.1",
+                "psr/clock": "^1.0",
+                "symfony/clock": "^6.3 || ^7.0",
+                "symfony/polyfill-mbstring": "^1.0",
+                "symfony/translation": "^4.4.18 || ^5.2.1|| ^6.0 || ^7.0"
+            },
+            "provide": {
+                "psr/clock-implementation": "1.0"
+            },
+            "require-dev": {
+                "doctrine/dbal": "^3.6.3 || ^4.0",
+                "doctrine/orm": "^2.15.2 || ^3.0",
+                "friendsofphp/php-cs-fixer": "^3.52.1",
+                "kylekatarnls/multi-tester": "^2.5.3",
+                "ondrejmirtes/better-reflection": "^6.25.0.4",
+                "phpmd/phpmd": "^2.15.0",
+                "phpstan/extension-installer": "^1.3.1",
+                "phpstan/phpstan": "^1.10.65",
+                "phpunit/phpunit": "^10.5.15",
+                "squizlabs/php_codesniffer": "^3.9.0"
+            },
+            "bin": [
+                "bin/carbon"
+            ],
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "3.x-dev",
+                    "dev-2.x": "2.x-dev"
+                },
+                "laravel": {
+                    "providers": [
+                        "Carbon\\Laravel\\ServiceProvider"
+                    ]
+                },
+                "phpstan": {
+                    "includes": [
+                        "extension.neon"
+                    ]
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Carbon\\": "src/Carbon/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Brian Nesbitt",
+                    "email": "brian@nesbot.com",
+                    "homepage": "https://markido.com"
+                },
+                {
+                    "name": "kylekatarnls",
+                    "homepage": "https://github.com/kylekatarnls"
+                }
+            ],
+            "description": "An API extension for DateTime that supports 281 different languages.",
+            "homepage": "https://carbon.nesbot.com",
+            "keywords": [
+                "date",
+                "datetime",
+                "time"
+            ],
+            "support": {
+                "docs": "https://carbon.nesbot.com/docs",
+                "issues": "https://github.com/briannesbitt/Carbon/issues",
+                "source": "https://github.com/briannesbitt/Carbon"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sponsors/kylekatarnls",
+                    "type": "github"
+                },
+                {
+                    "url": "https://opencollective.com/Carbon#sponsor",
+                    "type": "opencollective"
+                },
+                {
+                    "url": "https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=readme",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-05-01T06:54:22+00:00"
+        },
+        {
+            "name": "psr/clock",
+            "version": "1.0.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/php-fig/clock.git",
+                "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/php-fig/clock/zipball/e41a24703d4560fd0acb709162f73b8adfc3aa0d",
+                "reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^7.0 || ^8.0"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Psr\\Clock\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "PHP-FIG",
+                    "homepage": "https://www.php-fig.org/"
+                }
+            ],
+            "description": "Common interface for reading the clock.",
+            "homepage": "https://github.com/php-fig/clock",
+            "keywords": [
+                "clock",
+                "now",
+                "psr",
+                "psr-20",
+                "time"
+            ],
+            "support": {
+                "issues": "https://github.com/php-fig/clock/issues",
+                "source": "https://github.com/php-fig/clock/tree/1.0.0"
+            },
+            "time": "2022-11-25T14:36:26+00:00"
+        },
+        {
+            "name": "psr/container",
+            "version": "2.0.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/php-fig/container.git",
+                "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963",
+                "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.4.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.0.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Psr\\Container\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "PHP-FIG",
+                    "homepage": "https://www.php-fig.org/"
+                }
+            ],
+            "description": "Common Container Interface (PHP FIG PSR-11)",
+            "homepage": "https://github.com/php-fig/container",
+            "keywords": [
+                "PSR-11",
+                "container",
+                "container-interface",
+                "container-interop",
+                "psr"
+            ],
+            "support": {
+                "issues": "https://github.com/php-fig/container/issues",
+                "source": "https://github.com/php-fig/container/tree/2.0.2"
+            },
+            "time": "2021-11-05T16:47:00+00:00"
+        },
+        {
+            "name": "psr/simple-cache",
+            "version": "3.0.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/php-fig/simple-cache.git",
+                "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/764e0b3939f5ca87cb904f570ef9be2d78a07865",
+                "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.0.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "3.0.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Psr\\SimpleCache\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "PHP-FIG",
+                    "homepage": "https://www.php-fig.org/"
+                }
+            ],
+            "description": "Common interfaces for simple caching",
+            "keywords": [
+                "cache",
+                "caching",
+                "psr",
+                "psr-16",
+                "simple-cache"
+            ],
+            "support": {
+                "source": "https://github.com/php-fig/simple-cache/tree/3.0.0"
+            },
+            "time": "2021-10-29T13:26:27+00:00"
+        },
+        {
+            "name": "symfony/clock",
+            "version": "v7.0.7",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/clock.git",
+                "reference": "2008671acb4a30b01c453de193cf9c80549ebda6"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/clock/zipball/2008671acb4a30b01c453de193cf9c80549ebda6",
+                "reference": "2008671acb4a30b01c453de193cf9c80549ebda6",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.2",
+                "psr/clock": "^1.0",
+                "symfony/polyfill-php83": "^1.28"
+            },
+            "provide": {
+                "psr/clock-implementation": "1.0"
+            },
+            "type": "library",
+            "autoload": {
+                "files": [
+                    "Resources/now.php"
+                ],
+                "psr-4": {
+                    "Symfony\\Component\\Clock\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Decouples applications from the system clock",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "clock",
+                "psr20",
+                "time"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/clock/tree/v7.0.7"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-04-18T09:29:19+00:00"
+        },
+        {
+            "name": "symfony/console",
+            "version": "v7.0.7",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/console.git",
+                "reference": "c981e0e9380ce9f146416bde3150c79197ce9986"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/console/zipball/c981e0e9380ce9f146416bde3150c79197ce9986",
+                "reference": "c981e0e9380ce9f146416bde3150c79197ce9986",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.2",
+                "symfony/polyfill-mbstring": "~1.0",
+                "symfony/service-contracts": "^2.5|^3",
+                "symfony/string": "^6.4|^7.0"
+            },
+            "conflict": {
+                "symfony/dependency-injection": "<6.4",
+                "symfony/dotenv": "<6.4",
+                "symfony/event-dispatcher": "<6.4",
+                "symfony/lock": "<6.4",
+                "symfony/process": "<6.4"
+            },
+            "provide": {
+                "psr/log-implementation": "1.0|2.0|3.0"
+            },
+            "require-dev": {
+                "psr/log": "^1|^2|^3",
+                "symfony/config": "^6.4|^7.0",
+                "symfony/dependency-injection": "^6.4|^7.0",
+                "symfony/event-dispatcher": "^6.4|^7.0",
+                "symfony/http-foundation": "^6.4|^7.0",
+                "symfony/http-kernel": "^6.4|^7.0",
+                "symfony/lock": "^6.4|^7.0",
+                "symfony/messenger": "^6.4|^7.0",
+                "symfony/process": "^6.4|^7.0",
+                "symfony/stopwatch": "^6.4|^7.0",
+                "symfony/var-dumper": "^6.4|^7.0"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Component\\Console\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Fabien Potencier",
+                    "email": "fabien@symfony.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Eases the creation of beautiful and testable command line interfaces",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "cli",
+                "command-line",
+                "console",
+                "terminal"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/console/tree/v7.0.7"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-04-18T09:29:19+00:00"
+        },
+        {
+            "name": "symfony/deprecation-contracts",
+            "version": "v3.5.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/deprecation-contracts.git",
+                "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
+                "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.1"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "3.5-dev"
+                },
+                "thanks": {
+                    "name": "symfony/contracts",
+                    "url": "https://github.com/symfony/contracts"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "function.php"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "A generic function and convention to trigger deprecation notices",
+            "homepage": "https://symfony.com",
+            "support": {
+                "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-04-18T09:32:20+00:00"
+        },
+        {
+            "name": "symfony/finder",
+            "version": "v7.0.7",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/finder.git",
+                "reference": "4d58f0f4fe95a30d7b538d71197135483560b97c"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/finder/zipball/4d58f0f4fe95a30d7b538d71197135483560b97c",
+                "reference": "4d58f0f4fe95a30d7b538d71197135483560b97c",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.2"
+            },
+            "require-dev": {
+                "symfony/filesystem": "^6.4|^7.0"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Component\\Finder\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Fabien Potencier",
+                    "email": "fabien@symfony.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Finds files and directories via an intuitive fluent interface",
+            "homepage": "https://symfony.com",
+            "support": {
+                "source": "https://github.com/symfony/finder/tree/v7.0.7"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-04-28T11:44:19+00:00"
+        },
+        {
+            "name": "symfony/polyfill-ctype",
+            "version": "v1.29.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/polyfill-ctype.git",
+                "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ef4d7e442ca910c4764bce785146269b30cb5fc4",
+                "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.1"
+            },
+            "provide": {
+                "ext-ctype": "*"
+            },
+            "suggest": {
+                "ext-ctype": "For best performance"
+            },
+            "type": "library",
+            "extra": {
+                "thanks": {
+                    "name": "symfony/polyfill",
+                    "url": "https://github.com/symfony/polyfill"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "bootstrap.php"
+                ],
+                "psr-4": {
+                    "Symfony\\Polyfill\\Ctype\\": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Gert de Pagter",
+                    "email": "BackEndTea@gmail.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Symfony polyfill for ctype functions",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "compatibility",
+                "ctype",
+                "polyfill",
+                "portable"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/polyfill-ctype/tree/v1.29.0"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-01-29T20:11:03+00:00"
+        },
+        {
+            "name": "symfony/polyfill-intl-grapheme",
+            "version": "v1.29.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/polyfill-intl-grapheme.git",
+                "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/32a9da87d7b3245e09ac426c83d334ae9f06f80f",
+                "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.1"
+            },
+            "suggest": {
+                "ext-intl": "For best performance"
+            },
+            "type": "library",
+            "extra": {
+                "thanks": {
+                    "name": "symfony/polyfill",
+                    "url": "https://github.com/symfony/polyfill"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "bootstrap.php"
+                ],
+                "psr-4": {
+                    "Symfony\\Polyfill\\Intl\\Grapheme\\": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Symfony polyfill for intl's grapheme_* functions",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "compatibility",
+                "grapheme",
+                "intl",
+                "polyfill",
+                "portable",
+                "shim"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.29.0"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-01-29T20:11:03+00:00"
+        },
+        {
+            "name": "symfony/polyfill-intl-normalizer",
+            "version": "v1.29.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
+                "reference": "bc45c394692b948b4d383a08d7753968bed9a83d"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/bc45c394692b948b4d383a08d7753968bed9a83d",
+                "reference": "bc45c394692b948b4d383a08d7753968bed9a83d",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.1"
+            },
+            "suggest": {
+                "ext-intl": "For best performance"
+            },
+            "type": "library",
+            "extra": {
+                "thanks": {
+                    "name": "symfony/polyfill",
+                    "url": "https://github.com/symfony/polyfill"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "bootstrap.php"
+                ],
+                "psr-4": {
+                    "Symfony\\Polyfill\\Intl\\Normalizer\\": ""
+                },
+                "classmap": [
+                    "Resources/stubs"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Symfony polyfill for intl's Normalizer class and related functions",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "compatibility",
+                "intl",
+                "normalizer",
+                "polyfill",
+                "portable",
+                "shim"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.29.0"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-01-29T20:11:03+00:00"
+        },
+        {
+            "name": "symfony/polyfill-mbstring",
+            "version": "v1.29.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/polyfill-mbstring.git",
+                "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9773676c8a1bb1f8d4340a62efe641cf76eda7ec",
+                "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.1"
+            },
+            "provide": {
+                "ext-mbstring": "*"
+            },
+            "suggest": {
+                "ext-mbstring": "For best performance"
+            },
+            "type": "library",
+            "extra": {
+                "thanks": {
+                    "name": "symfony/polyfill",
+                    "url": "https://github.com/symfony/polyfill"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "bootstrap.php"
+                ],
+                "psr-4": {
+                    "Symfony\\Polyfill\\Mbstring\\": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Symfony polyfill for the Mbstring extension",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "compatibility",
+                "mbstring",
+                "polyfill",
+                "portable",
+                "shim"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.29.0"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-01-29T20:11:03+00:00"
+        },
+        {
+            "name": "symfony/polyfill-php80",
+            "version": "v1.29.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/polyfill-php80.git",
+                "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/87b68208d5c1188808dd7839ee1e6c8ec3b02f1b",
+                "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.1"
+            },
+            "type": "library",
+            "extra": {
+                "thanks": {
+                    "name": "symfony/polyfill",
+                    "url": "https://github.com/symfony/polyfill"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "bootstrap.php"
+                ],
+                "psr-4": {
+                    "Symfony\\Polyfill\\Php80\\": ""
+                },
+                "classmap": [
+                    "Resources/stubs"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Ion Bazan",
+                    "email": "ion.bazan@gmail.com"
+                },
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "compatibility",
+                "polyfill",
+                "portable",
+                "shim"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/polyfill-php80/tree/v1.29.0"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-01-29T20:11:03+00:00"
+        },
+        {
+            "name": "symfony/polyfill-php83",
+            "version": "v1.29.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/polyfill-php83.git",
+                "reference": "86fcae159633351e5fd145d1c47de6c528f8caff"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/86fcae159633351e5fd145d1c47de6c528f8caff",
+                "reference": "86fcae159633351e5fd145d1c47de6c528f8caff",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.1",
+                "symfony/polyfill-php80": "^1.14"
+            },
+            "type": "library",
+            "extra": {
+                "thanks": {
+                    "name": "symfony/polyfill",
+                    "url": "https://github.com/symfony/polyfill"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "bootstrap.php"
+                ],
+                "psr-4": {
+                    "Symfony\\Polyfill\\Php83\\": ""
+                },
+                "classmap": [
+                    "Resources/stubs"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "compatibility",
+                "polyfill",
+                "portable",
+                "shim"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/polyfill-php83/tree/v1.29.0"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-01-29T20:11:03+00:00"
+        },
+        {
+            "name": "symfony/process",
+            "version": "v7.0.7",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/process.git",
+                "reference": "3839e56b94dd1dbd13235d27504e66baf23faba0"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/process/zipball/3839e56b94dd1dbd13235d27504e66baf23faba0",
+                "reference": "3839e56b94dd1dbd13235d27504e66baf23faba0",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.2"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Component\\Process\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Fabien Potencier",
+                    "email": "fabien@symfony.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Executes commands in sub-processes",
+            "homepage": "https://symfony.com",
+            "support": {
+                "source": "https://github.com/symfony/process/tree/v7.0.7"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-04-18T09:29:19+00:00"
+        },
+        {
+            "name": "symfony/service-contracts",
+            "version": "v3.5.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/service-contracts.git",
+                "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f",
+                "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.1",
+                "psr/container": "^1.1|^2.0",
+                "symfony/deprecation-contracts": "^2.5|^3"
+            },
+            "conflict": {
+                "ext-psr": "<1.1|>=2"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "3.5-dev"
+                },
+                "thanks": {
+                    "name": "symfony/contracts",
+                    "url": "https://github.com/symfony/contracts"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Contracts\\Service\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Test/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Generic abstractions related to writing services",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "abstractions",
+                "contracts",
+                "decoupling",
+                "interfaces",
+                "interoperability",
+                "standards"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/service-contracts/tree/v3.5.0"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-04-18T09:32:20+00:00"
+        },
+        {
+            "name": "symfony/string",
+            "version": "v7.0.7",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/string.git",
+                "reference": "e405b5424dc2528e02e31ba26b83a79fd4eb8f63"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/string/zipball/e405b5424dc2528e02e31ba26b83a79fd4eb8f63",
+                "reference": "e405b5424dc2528e02e31ba26b83a79fd4eb8f63",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.2",
+                "symfony/polyfill-ctype": "~1.8",
+                "symfony/polyfill-intl-grapheme": "~1.0",
+                "symfony/polyfill-intl-normalizer": "~1.0",
+                "symfony/polyfill-mbstring": "~1.0"
+            },
+            "conflict": {
+                "symfony/translation-contracts": "<2.5"
+            },
+            "require-dev": {
+                "symfony/error-handler": "^6.4|^7.0",
+                "symfony/http-client": "^6.4|^7.0",
+                "symfony/intl": "^6.4|^7.0",
+                "symfony/translation-contracts": "^2.5|^3.0",
+                "symfony/var-exporter": "^6.4|^7.0"
+            },
+            "type": "library",
+            "autoload": {
+                "files": [
+                    "Resources/functions.php"
+                ],
+                "psr-4": {
+                    "Symfony\\Component\\String\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "grapheme",
+                "i18n",
+                "string",
+                "unicode",
+                "utf-8",
+                "utf8"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/string/tree/v7.0.7"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-04-18T09:29:19+00:00"
+        },
+        {
+            "name": "symfony/translation",
+            "version": "v7.0.7",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/translation.git",
+                "reference": "1515e03afaa93e6419aba5d5c9d209159317100b"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/translation/zipball/1515e03afaa93e6419aba5d5c9d209159317100b",
+                "reference": "1515e03afaa93e6419aba5d5c9d209159317100b",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.2",
+                "symfony/polyfill-mbstring": "~1.0",
+                "symfony/translation-contracts": "^2.5|^3.0"
+            },
+            "conflict": {
+                "symfony/config": "<6.4",
+                "symfony/console": "<6.4",
+                "symfony/dependency-injection": "<6.4",
+                "symfony/http-client-contracts": "<2.5",
+                "symfony/http-kernel": "<6.4",
+                "symfony/service-contracts": "<2.5",
+                "symfony/twig-bundle": "<6.4",
+                "symfony/yaml": "<6.4"
+            },
+            "provide": {
+                "symfony/translation-implementation": "2.3|3.0"
+            },
+            "require-dev": {
+                "nikic/php-parser": "^4.18|^5.0",
+                "psr/log": "^1|^2|^3",
+                "symfony/config": "^6.4|^7.0",
+                "symfony/console": "^6.4|^7.0",
+                "symfony/dependency-injection": "^6.4|^7.0",
+                "symfony/finder": "^6.4|^7.0",
+                "symfony/http-client-contracts": "^2.5|^3.0",
+                "symfony/http-kernel": "^6.4|^7.0",
+                "symfony/intl": "^6.4|^7.0",
+                "symfony/polyfill-intl-icu": "^1.21",
+                "symfony/routing": "^6.4|^7.0",
+                "symfony/service-contracts": "^2.5|^3",
+                "symfony/yaml": "^6.4|^7.0"
+            },
+            "type": "library",
+            "autoload": {
+                "files": [
+                    "Resources/functions.php"
+                ],
+                "psr-4": {
+                    "Symfony\\Component\\Translation\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Fabien Potencier",
+                    "email": "fabien@symfony.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Provides tools to internationalize your application",
+            "homepage": "https://symfony.com",
+            "support": {
+                "source": "https://github.com/symfony/translation/tree/v7.0.7"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-04-18T09:29:19+00:00"
+        },
+        {
+            "name": "symfony/translation-contracts",
+            "version": "v3.5.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/translation-contracts.git",
+                "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/b9d2189887bb6b2e0367a9fc7136c5239ab9b05a",
+                "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.1"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "3.5-dev"
+                },
+                "thanks": {
+                    "name": "symfony/contracts",
+                    "url": "https://github.com/symfony/contracts"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Contracts\\Translation\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Test/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Generic abstractions related to translation",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "abstractions",
+                "contracts",
+                "decoupling",
+                "interfaces",
+                "interoperability",
+                "standards"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/translation-contracts/tree/v3.5.0"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-04-18T09:32:20+00:00"
+        },
+        {
+            "name": "voku/portable-ascii",
+            "version": "2.0.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/voku/portable-ascii.git",
+                "reference": "b56450eed252f6801410d810c8e1727224ae0743"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/voku/portable-ascii/zipball/b56450eed252f6801410d810c8e1727224ae0743",
+                "reference": "b56450eed252f6801410d810c8e1727224ae0743",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=7.0.0"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "~6.0 || ~7.0 || ~9.0"
+            },
+            "suggest": {
+                "ext-intl": "Use Intl for transliterator_transliterate() support"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "voku\\": "src/voku/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Lars Moelleken",
+                    "homepage": "http://www.moelleken.org/"
+                }
+            ],
+            "description": "Portable ASCII library - performance optimized (ascii) string functions for php.",
+            "homepage": "https://github.com/voku/portable-ascii",
+            "keywords": [
+                "ascii",
+                "clean",
+                "php"
+            ],
+            "support": {
+                "issues": "https://github.com/voku/portable-ascii/issues",
+                "source": "https://github.com/voku/portable-ascii/tree/2.0.1"
+            },
+            "funding": [
+                {
+                    "url": "https://www.paypal.me/moelleken",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/voku",
+                    "type": "github"
+                },
+                {
+                    "url": "https://opencollective.com/portable-ascii",
+                    "type": "open_collective"
+                },
+                {
+                    "url": "https://www.patreon.com/voku",
+                    "type": "patreon"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/voku/portable-ascii",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2022-03-08T17:03:00+00:00"
+        }
+    ],
+    "packages-dev": [
+        {
+            "name": "myclabs/deep-copy",
+            "version": "1.11.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/myclabs/DeepCopy.git",
+                "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
+                "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^7.1 || ^8.0"
+            },
+            "conflict": {
+                "doctrine/collections": "<1.6.8",
+                "doctrine/common": "<2.13.3 || >=3,<3.2.2"
+            },
+            "require-dev": {
+                "doctrine/collections": "^1.6.8",
+                "doctrine/common": "^2.13.3 || ^3.2.2",
+                "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13"
+            },
+            "type": "library",
+            "autoload": {
+                "files": [
+                    "src/DeepCopy/deep_copy.php"
+                ],
+                "psr-4": {
+                    "DeepCopy\\": "src/DeepCopy/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "description": "Create deep copies (clones) of your objects",
+            "keywords": [
+                "clone",
+                "copy",
+                "duplicate",
+                "object",
+                "object graph"
+            ],
+            "support": {
+                "issues": "https://github.com/myclabs/DeepCopy/issues",
+                "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1"
+            },
+            "funding": [
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2023-03-08T13:26:56+00:00"
+        },
+        {
+            "name": "nikic/php-parser",
+            "version": "v5.0.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/nikic/PHP-Parser.git",
+                "reference": "139676794dc1e9231bf7bcd123cfc0c99182cb13"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/139676794dc1e9231bf7bcd123cfc0c99182cb13",
+                "reference": "139676794dc1e9231bf7bcd123cfc0c99182cb13",
+                "shasum": ""
+            },
+            "require": {
+                "ext-ctype": "*",
+                "ext-json": "*",
+                "ext-tokenizer": "*",
+                "php": ">=7.4"
+            },
+            "require-dev": {
+                "ircmaxell/php-yacc": "^0.0.7",
+                "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
+            },
+            "bin": [
+                "bin/php-parse"
+            ],
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "5.0-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "PhpParser\\": "lib/PhpParser"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Nikita Popov"
+                }
+            ],
+            "description": "A PHP parser written in PHP",
+            "keywords": [
+                "parser",
+                "php"
+            ],
+            "support": {
+                "issues": "https://github.com/nikic/PHP-Parser/issues",
+                "source": "https://github.com/nikic/PHP-Parser/tree/v5.0.2"
+            },
+            "time": "2024-03-05T20:51:40+00:00"
+        },
+        {
+            "name": "phar-io/manifest",
+            "version": "2.0.4",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/phar-io/manifest.git",
+                "reference": "54750ef60c58e43759730615a392c31c80e23176"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176",
+                "reference": "54750ef60c58e43759730615a392c31c80e23176",
+                "shasum": ""
+            },
+            "require": {
+                "ext-dom": "*",
+                "ext-libxml": "*",
+                "ext-phar": "*",
+                "ext-xmlwriter": "*",
+                "phar-io/version": "^3.0.1",
+                "php": "^7.2 || ^8.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.0.x-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Arne Blankerts",
+                    "email": "arne@blankerts.de",
+                    "role": "Developer"
+                },
+                {
+                    "name": "Sebastian Heuer",
+                    "email": "sebastian@phpeople.de",
+                    "role": "Developer"
+                },
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de",
+                    "role": "Developer"
+                }
+            ],
+            "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
+            "support": {
+                "issues": "https://github.com/phar-io/manifest/issues",
+                "source": "https://github.com/phar-io/manifest/tree/2.0.4"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/theseer",
+                    "type": "github"
+                }
+            ],
+            "time": "2024-03-03T12:33:53+00:00"
+        },
+        {
+            "name": "phar-io/version",
+            "version": "3.2.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/phar-io/version.git",
+                "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
+                "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^7.2 || ^8.0"
+            },
+            "type": "library",
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Arne Blankerts",
+                    "email": "arne@blankerts.de",
+                    "role": "Developer"
+                },
+                {
+                    "name": "Sebastian Heuer",
+                    "email": "sebastian@phpeople.de",
+                    "role": "Developer"
+                },
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de",
+                    "role": "Developer"
+                }
+            ],
+            "description": "Library for handling version information and constraints",
+            "support": {
+                "issues": "https://github.com/phar-io/version/issues",
+                "source": "https://github.com/phar-io/version/tree/3.2.1"
+            },
+            "time": "2022-02-21T01:04:05+00:00"
+        },
+        {
+            "name": "phpstan/phpstan",
+            "version": "1.11.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/phpstan/phpstan.git",
+                "reference": "0d5d4294a70deb7547db655c47685d680e39cfec"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/phpstan/phpstan/zipball/0d5d4294a70deb7547db655c47685d680e39cfec",
+                "reference": "0d5d4294a70deb7547db655c47685d680e39cfec",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^7.2|^8.0"
+            },
+            "conflict": {
+                "phpstan/phpstan-shim": "*"
+            },
+            "bin": [
+                "phpstan",
+                "phpstan.phar"
+            ],
+            "type": "library",
+            "autoload": {
+                "files": [
+                    "bootstrap.php"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "description": "PHPStan - PHP Static Analysis Tool",
+            "keywords": [
+                "dev",
+                "static analysis"
+            ],
+            "support": {
+                "docs": "https://phpstan.org/user-guide/getting-started",
+                "forum": "https://github.com/phpstan/phpstan/discussions",
+                "issues": "https://github.com/phpstan/phpstan/issues",
+                "security": "https://github.com/phpstan/phpstan/security/policy",
+                "source": "https://github.com/phpstan/phpstan-src"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/ondrejmirtes",
+                    "type": "github"
+                },
+                {
+                    "url": "https://github.com/phpstan",
+                    "type": "github"
+                }
+            ],
+            "time": "2024-05-24T13:23:04+00:00"
+        },
+        {
+            "name": "phpunit/php-code-coverage",
+            "version": "10.1.14",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
+                "reference": "e3f51450ebffe8e0efdf7346ae966a656f7d5e5b"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/e3f51450ebffe8e0efdf7346ae966a656f7d5e5b",
+                "reference": "e3f51450ebffe8e0efdf7346ae966a656f7d5e5b",
+                "shasum": ""
+            },
+            "require": {
+                "ext-dom": "*",
+                "ext-libxml": "*",
+                "ext-xmlwriter": "*",
+                "nikic/php-parser": "^4.18 || ^5.0",
+                "php": ">=8.1",
+                "phpunit/php-file-iterator": "^4.0",
+                "phpunit/php-text-template": "^3.0",
+                "sebastian/code-unit-reverse-lookup": "^3.0",
+                "sebastian/complexity": "^3.0",
+                "sebastian/environment": "^6.0",
+                "sebastian/lines-of-code": "^2.0",
+                "sebastian/version": "^4.0",
+                "theseer/tokenizer": "^1.2.0"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^10.1"
+            },
+            "suggest": {
+                "ext-pcov": "PHP extension that provides line coverage",
+                "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "10.1-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de",
+                    "role": "lead"
+                }
+            ],
+            "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
+            "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
+            "keywords": [
+                "coverage",
+                "testing",
+                "xunit"
+            ],
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
+                "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
+                "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.14"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sebastianbergmann",
+                    "type": "github"
+                }
+            ],
+            "time": "2024-03-12T15:33:41+00:00"
+        },
+        {
+            "name": "phpunit/php-file-iterator",
+            "version": "4.1.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
+                "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/a95037b6d9e608ba092da1b23931e537cadc3c3c",
+                "reference": "a95037b6d9e608ba092da1b23931e537cadc3c3c",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.1"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^10.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "4.0-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de",
+                    "role": "lead"
+                }
+            ],
+            "description": "FilterIterator implementation that filters files based on a list of suffixes.",
+            "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
+            "keywords": [
+                "filesystem",
+                "iterator"
+            ],
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
+                "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy",
+                "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/4.1.0"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sebastianbergmann",
+                    "type": "github"
+                }
+            ],
+            "time": "2023-08-31T06:24:48+00:00"
+        },
+        {
+            "name": "phpunit/php-invoker",
+            "version": "4.0.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/php-invoker.git",
+                "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7",
+                "reference": "f5e568ba02fa5ba0ddd0f618391d5a9ea50b06d7",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.1"
+            },
+            "require-dev": {
+                "ext-pcntl": "*",
+                "phpunit/phpunit": "^10.0"
+            },
+            "suggest": {
+                "ext-pcntl": "*"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "4.0-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de",
+                    "role": "lead"
+                }
+            ],
+            "description": "Invoke callables with a timeout",
+            "homepage": "https://github.com/sebastianbergmann/php-invoker/",
+            "keywords": [
+                "process"
+            ],
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/php-invoker/issues",
+                "source": "https://github.com/sebastianbergmann/php-invoker/tree/4.0.0"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sebastianbergmann",
+                    "type": "github"
+                }
+            ],
+            "time": "2023-02-03T06:56:09+00:00"
+        },
+        {
+            "name": "phpunit/php-text-template",
+            "version": "3.0.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/php-text-template.git",
+                "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/0c7b06ff49e3d5072f057eb1fa59258bf287a748",
+                "reference": "0c7b06ff49e3d5072f057eb1fa59258bf287a748",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.1"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^10.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "3.0-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de",
+                    "role": "lead"
+                }
+            ],
+            "description": "Simple template engine.",
+            "homepage": "https://github.com/sebastianbergmann/php-text-template/",
+            "keywords": [
+                "template"
+            ],
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/php-text-template/issues",
+                "security": "https://github.com/sebastianbergmann/php-text-template/security/policy",
+                "source": "https://github.com/sebastianbergmann/php-text-template/tree/3.0.1"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sebastianbergmann",
+                    "type": "github"
+                }
+            ],
+            "time": "2023-08-31T14:07:24+00:00"
+        },
+        {
+            "name": "phpunit/php-timer",
+            "version": "6.0.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/php-timer.git",
+                "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/e2a2d67966e740530f4a3343fe2e030ffdc1161d",
+                "reference": "e2a2d67966e740530f4a3343fe2e030ffdc1161d",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.1"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^10.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "6.0-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de",
+                    "role": "lead"
+                }
+            ],
+            "description": "Utility class for timing",
+            "homepage": "https://github.com/sebastianbergmann/php-timer/",
+            "keywords": [
+                "timer"
+            ],
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/php-timer/issues",
+                "source": "https://github.com/sebastianbergmann/php-timer/tree/6.0.0"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sebastianbergmann",
+                    "type": "github"
+                }
+            ],
+            "time": "2023-02-03T06:57:52+00:00"
+        },
+        {
+            "name": "phpunit/phpunit",
+            "version": "10.5.20",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/phpunit.git",
+                "reference": "547d314dc24ec1e177720d45c6263fb226cc2ae3"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/547d314dc24ec1e177720d45c6263fb226cc2ae3",
+                "reference": "547d314dc24ec1e177720d45c6263fb226cc2ae3",
+                "shasum": ""
+            },
+            "require": {
+                "ext-dom": "*",
+                "ext-json": "*",
+                "ext-libxml": "*",
+                "ext-mbstring": "*",
+                "ext-xml": "*",
+                "ext-xmlwriter": "*",
+                "myclabs/deep-copy": "^1.10.1",
+                "phar-io/manifest": "^2.0.3",
+                "phar-io/version": "^3.0.2",
+                "php": ">=8.1",
+                "phpunit/php-code-coverage": "^10.1.5",
+                "phpunit/php-file-iterator": "^4.0",
+                "phpunit/php-invoker": "^4.0",
+                "phpunit/php-text-template": "^3.0",
+                "phpunit/php-timer": "^6.0",
+                "sebastian/cli-parser": "^2.0",
+                "sebastian/code-unit": "^2.0",
+                "sebastian/comparator": "^5.0",
+                "sebastian/diff": "^5.0",
+                "sebastian/environment": "^6.0",
+                "sebastian/exporter": "^5.1",
+                "sebastian/global-state": "^6.0.1",
+                "sebastian/object-enumerator": "^5.0",
+                "sebastian/recursion-context": "^5.0",
+                "sebastian/type": "^4.0",
+                "sebastian/version": "^4.0"
+            },
+            "suggest": {
+                "ext-soap": "To be able to generate mocks based on WSDL files"
+            },
+            "bin": [
+                "phpunit"
+            ],
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "10.5-dev"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "src/Framework/Assert/Functions.php"
+                ],
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de",
+                    "role": "lead"
+                }
+            ],
+            "description": "The PHP Unit Testing framework.",
+            "homepage": "https://phpunit.de/",
+            "keywords": [
+                "phpunit",
+                "testing",
+                "xunit"
+            ],
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/phpunit/issues",
+                "security": "https://github.com/sebastianbergmann/phpunit/security/policy",
+                "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.20"
+            },
+            "funding": [
+                {
+                    "url": "https://phpunit.de/sponsors.html",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/sebastianbergmann",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-04-24T06:32:35+00:00"
+        },
+        {
+            "name": "sebastian/cli-parser",
+            "version": "2.0.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/cli-parser.git",
+                "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/c34583b87e7b7a8055bf6c450c2c77ce32a24084",
+                "reference": "c34583b87e7b7a8055bf6c450c2c77ce32a24084",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.1"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^10.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "2.0-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de",
+                    "role": "lead"
+                }
+            ],
+            "description": "Library for parsing CLI options",
+            "homepage": "https://github.com/sebastianbergmann/cli-parser",
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/cli-parser/issues",
+                "security": "https://github.com/sebastianbergmann/cli-parser/security/policy",
+                "source": "https://github.com/sebastianbergmann/cli-parser/tree/2.0.1"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sebastianbergmann",
+                    "type": "github"
+                }
+            ],
+            "time": "2024-03-02T07:12:49+00:00"
+        },
+        {
+            "name": "sebastian/code-unit",
+            "version": "2.0.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/code-unit.git",
+                "reference": "a81fee9eef0b7a76af11d121767abc44c104e503"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/a81fee9eef0b7a76af11d121767abc44c104e503",
+                "reference": "a81fee9eef0b7a76af11d121767abc44c104e503",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.1"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^10.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "2.0-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de",
+                    "role": "lead"
+                }
+            ],
+            "description": "Collection of value objects that represent the PHP code units",
+            "homepage": "https://github.com/sebastianbergmann/code-unit",
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/code-unit/issues",
+                "source": "https://github.com/sebastianbergmann/code-unit/tree/2.0.0"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sebastianbergmann",
+                    "type": "github"
+                }
+            ],
+            "time": "2023-02-03T06:58:43+00:00"
+        },
+        {
+            "name": "sebastian/code-unit-reverse-lookup",
+            "version": "3.0.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
+                "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/5e3a687f7d8ae33fb362c5c0743794bbb2420a1d",
+                "reference": "5e3a687f7d8ae33fb362c5c0743794bbb2420a1d",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.1"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^10.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "3.0-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de"
+                }
+            ],
+            "description": "Looks up which function or method a line of code belongs to",
+            "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues",
+                "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/3.0.0"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sebastianbergmann",
+                    "type": "github"
+                }
+            ],
+            "time": "2023-02-03T06:59:15+00:00"
+        },
+        {
+            "name": "sebastian/comparator",
+            "version": "5.0.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/comparator.git",
+                "reference": "2db5010a484d53ebf536087a70b4a5423c102372"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2db5010a484d53ebf536087a70b4a5423c102372",
+                "reference": "2db5010a484d53ebf536087a70b4a5423c102372",
+                "shasum": ""
+            },
+            "require": {
+                "ext-dom": "*",
+                "ext-mbstring": "*",
+                "php": ">=8.1",
+                "sebastian/diff": "^5.0",
+                "sebastian/exporter": "^5.0"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^10.3"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "5.0-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de"
+                },
+                {
+                    "name": "Jeff Welch",
+                    "email": "whatthejeff@gmail.com"
+                },
+                {
+                    "name": "Volker Dusch",
+                    "email": "github@wallbash.com"
+                },
+                {
+                    "name": "Bernhard Schussek",
+                    "email": "bschussek@2bepublished.at"
+                }
+            ],
+            "description": "Provides the functionality to compare PHP values for equality",
+            "homepage": "https://github.com/sebastianbergmann/comparator",
+            "keywords": [
+                "comparator",
+                "compare",
+                "equality"
+            ],
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/comparator/issues",
+                "security": "https://github.com/sebastianbergmann/comparator/security/policy",
+                "source": "https://github.com/sebastianbergmann/comparator/tree/5.0.1"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sebastianbergmann",
+                    "type": "github"
+                }
+            ],
+            "time": "2023-08-14T13:18:12+00:00"
+        },
+        {
+            "name": "sebastian/complexity",
+            "version": "3.2.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/complexity.git",
+                "reference": "68ff824baeae169ec9f2137158ee529584553799"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/68ff824baeae169ec9f2137158ee529584553799",
+                "reference": "68ff824baeae169ec9f2137158ee529584553799",
+                "shasum": ""
+            },
+            "require": {
+                "nikic/php-parser": "^4.18 || ^5.0",
+                "php": ">=8.1"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^10.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "3.2-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de",
+                    "role": "lead"
+                }
+            ],
+            "description": "Library for calculating the complexity of PHP code units",
+            "homepage": "https://github.com/sebastianbergmann/complexity",
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/complexity/issues",
+                "security": "https://github.com/sebastianbergmann/complexity/security/policy",
+                "source": "https://github.com/sebastianbergmann/complexity/tree/3.2.0"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sebastianbergmann",
+                    "type": "github"
+                }
+            ],
+            "time": "2023-12-21T08:37:17+00:00"
+        },
+        {
+            "name": "sebastian/diff",
+            "version": "5.1.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/diff.git",
+                "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/c41e007b4b62af48218231d6c2275e4c9b975b2e",
+                "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.1"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^10.0",
+                "symfony/process": "^6.4"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "5.1-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de"
+                },
+                {
+                    "name": "Kore Nordmann",
+                    "email": "mail@kore-nordmann.de"
+                }
+            ],
+            "description": "Diff implementation",
+            "homepage": "https://github.com/sebastianbergmann/diff",
+            "keywords": [
+                "diff",
+                "udiff",
+                "unidiff",
+                "unified diff"
+            ],
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/diff/issues",
+                "security": "https://github.com/sebastianbergmann/diff/security/policy",
+                "source": "https://github.com/sebastianbergmann/diff/tree/5.1.1"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sebastianbergmann",
+                    "type": "github"
+                }
+            ],
+            "time": "2024-03-02T07:15:17+00:00"
+        },
+        {
+            "name": "sebastian/environment",
+            "version": "6.1.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/environment.git",
+                "reference": "8074dbcd93529b357029f5cc5058fd3e43666984"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/8074dbcd93529b357029f5cc5058fd3e43666984",
+                "reference": "8074dbcd93529b357029f5cc5058fd3e43666984",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.1"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^10.0"
+            },
+            "suggest": {
+                "ext-posix": "*"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "6.1-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de"
+                }
+            ],
+            "description": "Provides functionality to handle HHVM/PHP environments",
+            "homepage": "https://github.com/sebastianbergmann/environment",
+            "keywords": [
+                "Xdebug",
+                "environment",
+                "hhvm"
+            ],
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/environment/issues",
+                "security": "https://github.com/sebastianbergmann/environment/security/policy",
+                "source": "https://github.com/sebastianbergmann/environment/tree/6.1.0"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sebastianbergmann",
+                    "type": "github"
+                }
+            ],
+            "time": "2024-03-23T08:47:14+00:00"
+        },
+        {
+            "name": "sebastian/exporter",
+            "version": "5.1.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/exporter.git",
+                "reference": "955288482d97c19a372d3f31006ab3f37da47adf"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/955288482d97c19a372d3f31006ab3f37da47adf",
+                "reference": "955288482d97c19a372d3f31006ab3f37da47adf",
+                "shasum": ""
+            },
+            "require": {
+                "ext-mbstring": "*",
+                "php": ">=8.1",
+                "sebastian/recursion-context": "^5.0"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^10.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "5.1-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de"
+                },
+                {
+                    "name": "Jeff Welch",
+                    "email": "whatthejeff@gmail.com"
+                },
+                {
+                    "name": "Volker Dusch",
+                    "email": "github@wallbash.com"
+                },
+                {
+                    "name": "Adam Harvey",
+                    "email": "aharvey@php.net"
+                },
+                {
+                    "name": "Bernhard Schussek",
+                    "email": "bschussek@gmail.com"
+                }
+            ],
+            "description": "Provides the functionality to export PHP variables for visualization",
+            "homepage": "https://www.github.com/sebastianbergmann/exporter",
+            "keywords": [
+                "export",
+                "exporter"
+            ],
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/exporter/issues",
+                "security": "https://github.com/sebastianbergmann/exporter/security/policy",
+                "source": "https://github.com/sebastianbergmann/exporter/tree/5.1.2"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sebastianbergmann",
+                    "type": "github"
+                }
+            ],
+            "time": "2024-03-02T07:17:12+00:00"
+        },
+        {
+            "name": "sebastian/global-state",
+            "version": "6.0.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/global-state.git",
+                "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/987bafff24ecc4c9ac418cab1145b96dd6e9cbd9",
+                "reference": "987bafff24ecc4c9ac418cab1145b96dd6e9cbd9",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.1",
+                "sebastian/object-reflector": "^3.0",
+                "sebastian/recursion-context": "^5.0"
+            },
+            "require-dev": {
+                "ext-dom": "*",
+                "phpunit/phpunit": "^10.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "6.0-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de"
+                }
+            ],
+            "description": "Snapshotting of global state",
+            "homepage": "https://www.github.com/sebastianbergmann/global-state",
+            "keywords": [
+                "global state"
+            ],
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/global-state/issues",
+                "security": "https://github.com/sebastianbergmann/global-state/security/policy",
+                "source": "https://github.com/sebastianbergmann/global-state/tree/6.0.2"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sebastianbergmann",
+                    "type": "github"
+                }
+            ],
+            "time": "2024-03-02T07:19:19+00:00"
+        },
+        {
+            "name": "sebastian/lines-of-code",
+            "version": "2.0.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/lines-of-code.git",
+                "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/856e7f6a75a84e339195d48c556f23be2ebf75d0",
+                "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0",
+                "shasum": ""
+            },
+            "require": {
+                "nikic/php-parser": "^4.18 || ^5.0",
+                "php": ">=8.1"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^10.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "2.0-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de",
+                    "role": "lead"
+                }
+            ],
+            "description": "Library for counting the lines of code in PHP source code",
+            "homepage": "https://github.com/sebastianbergmann/lines-of-code",
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/lines-of-code/issues",
+                "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy",
+                "source": "https://github.com/sebastianbergmann/lines-of-code/tree/2.0.2"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sebastianbergmann",
+                    "type": "github"
+                }
+            ],
+            "time": "2023-12-21T08:38:20+00:00"
+        },
+        {
+            "name": "sebastian/object-enumerator",
+            "version": "5.0.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/object-enumerator.git",
+                "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/202d0e344a580d7f7d04b3fafce6933e59dae906",
+                "reference": "202d0e344a580d7f7d04b3fafce6933e59dae906",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.1",
+                "sebastian/object-reflector": "^3.0",
+                "sebastian/recursion-context": "^5.0"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^10.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "5.0-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de"
+                }
+            ],
+            "description": "Traverses array structures and object graphs to enumerate all referenced objects",
+            "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/object-enumerator/issues",
+                "source": "https://github.com/sebastianbergmann/object-enumerator/tree/5.0.0"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sebastianbergmann",
+                    "type": "github"
+                }
+            ],
+            "time": "2023-02-03T07:08:32+00:00"
+        },
+        {
+            "name": "sebastian/object-reflector",
+            "version": "3.0.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/object-reflector.git",
+                "reference": "24ed13d98130f0e7122df55d06c5c4942a577957"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/24ed13d98130f0e7122df55d06c5c4942a577957",
+                "reference": "24ed13d98130f0e7122df55d06c5c4942a577957",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.1"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^10.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "3.0-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de"
+                }
+            ],
+            "description": "Allows reflection of object attributes, including inherited and non-public ones",
+            "homepage": "https://github.com/sebastianbergmann/object-reflector/",
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/object-reflector/issues",
+                "source": "https://github.com/sebastianbergmann/object-reflector/tree/3.0.0"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sebastianbergmann",
+                    "type": "github"
+                }
+            ],
+            "time": "2023-02-03T07:06:18+00:00"
+        },
+        {
+            "name": "sebastian/recursion-context",
+            "version": "5.0.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/recursion-context.git",
+                "reference": "05909fb5bc7df4c52992396d0116aed689f93712"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/05909fb5bc7df4c52992396d0116aed689f93712",
+                "reference": "05909fb5bc7df4c52992396d0116aed689f93712",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.1"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^10.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "5.0-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de"
+                },
+                {
+                    "name": "Jeff Welch",
+                    "email": "whatthejeff@gmail.com"
+                },
+                {
+                    "name": "Adam Harvey",
+                    "email": "aharvey@php.net"
+                }
+            ],
+            "description": "Provides functionality to recursively process PHP variables",
+            "homepage": "https://github.com/sebastianbergmann/recursion-context",
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/recursion-context/issues",
+                "source": "https://github.com/sebastianbergmann/recursion-context/tree/5.0.0"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sebastianbergmann",
+                    "type": "github"
+                }
+            ],
+            "time": "2023-02-03T07:05:40+00:00"
+        },
+        {
+            "name": "sebastian/type",
+            "version": "4.0.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/type.git",
+                "reference": "462699a16464c3944eefc02ebdd77882bd3925bf"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/462699a16464c3944eefc02ebdd77882bd3925bf",
+                "reference": "462699a16464c3944eefc02ebdd77882bd3925bf",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.1"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^10.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "4.0-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de",
+                    "role": "lead"
+                }
+            ],
+            "description": "Collection of value objects that represent the types of the PHP type system",
+            "homepage": "https://github.com/sebastianbergmann/type",
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/type/issues",
+                "source": "https://github.com/sebastianbergmann/type/tree/4.0.0"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sebastianbergmann",
+                    "type": "github"
+                }
+            ],
+            "time": "2023-02-03T07:10:45+00:00"
+        },
+        {
+            "name": "sebastian/version",
+            "version": "4.0.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/sebastianbergmann/version.git",
+                "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c51fa83a5d8f43f1402e3f32a005e6262244ef17",
+                "reference": "c51fa83a5d8f43f1402e3f32a005e6262244ef17",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=8.1"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "4.0-dev"
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Sebastian Bergmann",
+                    "email": "sebastian@phpunit.de",
+                    "role": "lead"
+                }
+            ],
+            "description": "Library that helps with managing the version number of Git-hosted PHP projects",
+            "homepage": "https://github.com/sebastianbergmann/version",
+            "support": {
+                "issues": "https://github.com/sebastianbergmann/version/issues",
+                "source": "https://github.com/sebastianbergmann/version/tree/4.0.1"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/sebastianbergmann",
+                    "type": "github"
+                }
+            ],
+            "time": "2023-02-07T11:34:05+00:00"
+        },
+        {
+            "name": "theseer/tokenizer",
+            "version": "1.2.3",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/theseer/tokenizer.git",
+                "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
+                "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2",
+                "shasum": ""
+            },
+            "require": {
+                "ext-dom": "*",
+                "ext-tokenizer": "*",
+                "ext-xmlwriter": "*",
+                "php": "^7.2 || ^8.0"
+            },
+            "type": "library",
+            "autoload": {
+                "classmap": [
+                    "src/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD-3-Clause"
+            ],
+            "authors": [
+                {
+                    "name": "Arne Blankerts",
+                    "email": "arne@blankerts.de",
+                    "role": "Developer"
+                }
+            ],
+            "description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
+            "support": {
+                "issues": "https://github.com/theseer/tokenizer/issues",
+                "source": "https://github.com/theseer/tokenizer/tree/1.2.3"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/theseer",
+                    "type": "github"
+                }
+            ],
+            "time": "2024-03-03T12:36:25+00:00"
+        }
+    ],
+    "aliases": [],
+    "minimum-stability": "dev",
+    "stability-flags": [],
+    "prefer-stable": true,
+    "prefer-lowest": false,
+    "platform": {
+        "php": "^8.2"
+    },
+    "platform-dev": [],
+    "plugin-api-version": "2.6.0"
+}
diff --git a/pkgs/by-name/la/laravel/package.nix b/pkgs/by-name/la/laravel/package.nix
new file mode 100644
index 0000000000000..cbb87fe248a48
--- /dev/null
+++ b/pkgs/by-name/la/laravel/package.nix
@@ -0,0 +1,36 @@
+{
+  lib,
+  fetchFromGitHub,
+  makeWrapper,
+  php,
+}:
+php.buildComposerProject (finalAttrs: {
+  pname = "laravel";
+  version = "5.8.1";
+
+  src = fetchFromGitHub {
+    owner = "laravel";
+    repo = "installer";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-LQABZnmKgJ8qkymmSjhjc+x1qZ/tFqFyQbfeGZECxok=";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  composerLock = ./composer.lock;
+  vendorHash = "sha256-f18N2qNCUFetCaHaC4X6Benq70x21SVQ3YSs8kovK1g=";
+
+  postInstall = ''
+    wrapProgram $out/bin/laravel \
+      --suffix PATH : ${lib.makeBinPath [ php.packages.composer ]}
+  '';
+
+  meta = {
+    description = "The Laravel application installer.";
+    homepage = "https://laravel.com/docs#creating-a-laravel-project";
+    changelog = "https://github.com/laravel/installer/releases/tag/v${finalAttrs.version}";
+    license = lib.licenses.mit;
+    mainProgram = "laravel";
+    maintainers = with lib.maintainers; [ heisfer ];
+  };
+})
diff --git a/pkgs/by-name/le/lefthook/package.nix b/pkgs/by-name/le/lefthook/package.nix
index 0cde03e8ae816..a0af5cff5b8d9 100644
--- a/pkgs/by-name/le/lefthook/package.nix
+++ b/pkgs/by-name/le/lefthook/package.nix
@@ -6,7 +6,7 @@
 
 let
   pname = "lefthook";
-  version = "1.6.12";
+  version = "1.6.13";
 in
 buildGoModule {
   inherit pname version;
@@ -15,10 +15,10 @@ buildGoModule {
     owner = "evilmartians";
     repo = "lefthook";
     rev = "v${version}";
-    hash = "sha256-j39A+cHu1MUa7kP46JY8pADsOejsMX0rcBHQZflhWe8=";
+    hash = "sha256-D1YZu/s5Olv1fATbThMq1Hu+xUTd0EMqJSO7iha4gX0=";
   };
 
-  vendorHash = "sha256-sDqP+fzAFavqtvJ98nwsD5+GxNhmLgtOkTzIK06wp9E=";
+  vendorHash = "sha256-M5lIfgUYMwLJu5NB54aZLofEegZiW+AUoSaVOul1ud8=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/by-name/le/less/package.nix b/pkgs/by-name/le/less/package.nix
index f7791a2636eb7..326e4e2df0173 100644
--- a/pkgs/by-name/le/less/package.nix
+++ b/pkgs/by-name/le/less/package.nix
@@ -4,6 +4,7 @@
 , fetchpatch
 , ncurses
 , pcre2
+, withSecure ? false
 }:
 
 stdenv.mkDerivation (finalAttrs: {
@@ -37,7 +38,7 @@ stdenv.mkDerivation (finalAttrs: {
     # Look for 'sysless' in /etc.
     "--sysconfdir=/etc"
     "--with-regex=pcre2"
-  ];
+  ] ++ lib.optional withSecure "--with-secure";
 
   meta = {
     homepage = "https://www.greenwoodsoftware.com/less/";
diff --git a/pkgs/by-name/le/letterpress/package.nix b/pkgs/by-name/le/letterpress/package.nix
new file mode 100644
index 0000000000000..d68796e879dc0
--- /dev/null
+++ b/pkgs/by-name/le/letterpress/package.nix
@@ -0,0 +1,85 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitLab,
+  fetchpatch,
+  wrapGAppsHook4,
+  appstream,
+  blueprint-compiler,
+  desktop-file-utils,
+  gettext,
+  gobject-introspection,
+  jp2a,
+  libadwaita,
+  meson,
+  ninja,
+  pkg-config,
+  python3Packages,
+}:
+python3Packages.buildPythonApplication rec {
+  pname = "letterpress";
+  version = "2.1";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    owner = "World";
+    repo = "letterpress";
+    rev = version;
+    hash = "sha256-9U8iH3V4WMljdtWLmb0RlexLeAN5StJ0c9RlEB2E7Xs=";
+  };
+
+  patches = [
+    # Fix application segmentation fault on file chooser dialog opening
+    # https://gitlab.gnome.org/World/Letterpress/-/merge_requests/16
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/World/Letterpress/-/commit/15059eacca14204d1092a6e32ef30c6ce4df6d36.patch";
+      hash = "sha256-pjg/O9advtkZ0l73GQtL/GYcTWeOs5l3VGOdnsZCWI0=";
+    })
+  ];
+
+  runtimeDeps = [
+    jp2a
+  ];
+
+  buildInputs = [
+    libadwaita
+  ];
+
+  nativeBuildInputs = [
+    appstream
+    blueprint-compiler
+    desktop-file-utils
+    gettext
+    gobject-introspection
+    meson
+    ninja
+    pkg-config
+    wrapGAppsHook4
+  ];
+
+  dependencies = with python3Packages; [
+    pillow
+    pygobject3
+  ];
+
+  pyproject = false; # built by meson
+  dontWrapGApps = true; # prevent double wrapping
+
+  preFixup = ''
+    makeWrapperArgs+=(''${gappsWrapperArgs[@]} --prefix PATH : ${ lib.makeBinPath runtimeDeps })
+  '';
+
+  meta = with lib; {
+    description = "Create beautiful ASCII art";
+    longDescription = ''
+      Letterpress converts your images into a picture made up of ASCII characters.
+      You can save the output to a file, copy it, and even change its resolution!
+      High-res output can still be viewed comfortably by lowering the zoom factor.
+    '';
+    homepage = "https://apps.gnome.org/Letterpress/";
+    license = licenses.gpl3Plus;
+    maintainers = [ maintainers.dawidd6 ];
+    platforms = platforms.linux;
+    mainProgram = "letterpress";
+  };
+}
diff --git a/pkgs/by-name/li/libdjinterop/package.nix b/pkgs/by-name/li/libdjinterop/package.nix
index 93bf2bc8a7ecf..2432c24de8b93 100644
--- a/pkgs/by-name/li/libdjinterop/package.nix
+++ b/pkgs/by-name/li/libdjinterop/package.nix
@@ -17,8 +17,8 @@ stdenv.mkDerivation {
   src = fetchFromGitHub {
     owner = "xsco";
     repo = "libdjinterop";
-    rev = "0.20.1";
-    hash = "sha256-/iXSRJVFPWqUTVz7z0BNWCq5LOqdNuTI+wx/34JAZfc=";
+    rev = "0.20.2";
+    hash = "sha256-eTr9ax/bZWazLhLLQG6XUgqiM+7LVieh5ruA0EaUaj0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/li/libideviceactivation/package.nix b/pkgs/by-name/li/libideviceactivation/package.nix
new file mode 100644
index 0000000000000..74ee9ddc2cc9c
--- /dev/null
+++ b/pkgs/by-name/li/libideviceactivation/package.nix
@@ -0,0 +1,55 @@
+{
+  stdenv,
+  fetchFromGitHub,
+  lib,
+  pkg-config,
+  automake,
+  autoreconfHook,
+  libtool,
+  libplist,
+  libimobiledevice,
+  libxml2,
+  curl,
+  usbmuxd,
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "libideviceactivation";
+  version = "1.1.1";
+
+  src = fetchFromGitHub {
+    owner = "libimobiledevice";
+    repo = "libideviceactivation";
+    rev = "refs/tags/${finalAttrs.version}";
+    hash = "sha256-owcQpCN4+A785oy9pCboJIyfpgZ6X+8PRzqGtWpYl2w=";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+    automake
+    autoreconfHook
+  ];
+
+  buildInputs = [
+    libtool
+    libplist
+    libimobiledevice
+    libxml2
+    curl
+    usbmuxd
+  ];
+
+  installFlags = [ "PREFIX=$(out)" ];
+
+  meta = {
+    description = "A library to manage the activation process of Apple iOS devices.";
+    homepage = "https://libimobiledevice.org";
+    license = with lib.licenses; [
+      lgpl21
+      gpl3
+    ];
+    mainProgram = "ideviceactivation";
+    platforms = lib.platforms.linux;
+    maintainers = with lib.maintainers; [ clebs ];
+  };
+})
diff --git a/pkgs/by-name/li/libitl/package.nix b/pkgs/by-name/li/libitl/package.nix
new file mode 100644
index 0000000000000..e1d3a21e72917
--- /dev/null
+++ b/pkgs/by-name/li/libitl/package.nix
@@ -0,0 +1,32 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, fetchpatch
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "libitl";
+  version = "0.1.8-unstable-2024-05-26";
+
+  nativeBuildInputs = [ cmake ];
+
+  src = fetchFromGitHub {
+    owner = "arabeyes-org";
+    repo = "ITL";
+    rev = "07de1851722d0818d1f981df234e1b585eb60e05";
+    hash = "sha256-bhejnA7FfuopR27heliaE/vNd1Rqvnjj3n/vkjmimAw=";
+  };
+
+  meta = with lib; {
+    description = "Islamic Tools and Libraries (ITL)";
+    longDescription = ''
+      The Islamic Tools and Libraries (ITL) project provides
+      a fully featured library for performing common Islamic calculations.
+    '';
+    homepage = "https://www.arabeyes.org/ITL";
+    license = licenses.lgpl21Only;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ amyipdev ];
+  };
+})
diff --git a/pkgs/by-name/li/libmsgraph/package.nix b/pkgs/by-name/li/libmsgraph/package.nix
index a3cb929f8041c..011d4bab9a81b 100644
--- a/pkgs/by-name/li/libmsgraph/package.nix
+++ b/pkgs/by-name/li/libmsgraph/package.nix
@@ -7,23 +7,23 @@
 , ninja
 , pkg-config
 , uhttpmock_1_0
+, libxml2
 , glib
 , gnome-online-accounts
 , json-glib
-, librest_1_0
 , libsoup_3
 , gnome
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "libmsgraph";
-  version = "0.2.1";
+  version = "0.2.2";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/msgraph/${lib.versions.majorMinor finalAttrs.version}/msgraph-${finalAttrs.version}.tar.xz";
-    hash = "sha256-4OWeqorj4KSOwKbC/tBHCFanCSSOkhK2odA33leS7Ls=";
+    hash = "sha256-EsyVT3ULsTes6FAP6TVdJubgDvbMqrKVDp02DpJ1gzU=";
   };
 
   nativeBuildInputs = [
@@ -36,21 +36,16 @@ stdenv.mkDerivation (finalAttrs: {
 
   buildInputs = [
     uhttpmock_1_0
+    libxml2
   ];
 
   propagatedBuildInputs = [
     glib
     gnome-online-accounts
     json-glib
-    librest_1_0
     libsoup_3
   ];
 
-  mesonFlags = [
-    # https://gitlab.gnome.org/GNOME/msgraph/-/merge_requests/9
-    "-Dc_args=-Wno-error=format-security"
-  ];
-
   postFixup = ''
     # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
     moveToOutput "share/doc/msgraph-0" "$devdoc"
diff --git a/pkgs/by-name/li/lint-staged/package.nix b/pkgs/by-name/li/lint-staged/package.nix
index 9c3eddd9ddaed..82a8de430623d 100644
--- a/pkgs/by-name/li/lint-staged/package.nix
+++ b/pkgs/by-name/li/lint-staged/package.nix
@@ -2,16 +2,16 @@
 
 buildNpmPackage rec {
   pname = "lint-staged";
-  version = "15.2.4";
+  version = "15.2.5";
 
   src = fetchFromGitHub {
     owner = "okonet";
     repo = "lint-staged";
     rev = "v${version}";
-    hash = "sha256-TGJz1jWXTNlTfHe1ed4jjR6SBlXriIAQJXQ4W6b7dQU=";
+    hash = "sha256-Mr8Gtm5kXv+ZcLAMCe8JadJwlTRjD29xojN6Tyzdfb8=";
   };
 
-  npmDepsHash = "sha256-2Lv7k41hWVHF5PGdpYlMoFAj/zDPuRg6ydXaWTpUR/g=";
+  npmDepsHash = "sha256-BAVxloOuHodxPLoN5iMQcL04rdmkIEL6UYPnp2HbTe0=";
 
   dontNpmBuild = true;
 
diff --git a/pkgs/by-name/li/live555/package.nix b/pkgs/by-name/li/live555/package.nix
index e8fb1309844b8..2a49aaa0db4dc 100644
--- a/pkgs/by-name/li/live555/package.nix
+++ b/pkgs/by-name/li/live555/package.nix
@@ -10,7 +10,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "live555";
-  version = "2024.05.05";
+  version = "2024.05.15";
 
   src = fetchurl {
     urls = [
@@ -19,7 +19,7 @@ stdenv.mkDerivation (finalAttrs: {
       "https://download.videolan.org/contrib/live555/live.${finalAttrs.version}.tar.gz"
       "mirror://sourceforge/slackbuildsdirectlinks/live.${finalAttrs.version}.tar.gz"
     ];
-    hash = "sha256-jGT1jg5pa4bwIcxUy7/svIhU2HCxx2TNMkWvBfN33nM=";
+    hash = "sha256-Mgkf5XiFBEEDTTx+YlV12wE4zpmPPqaUPv9KcEK38D0=";
   };
 
   patches = [
@@ -38,12 +38,25 @@ stdenv.mkDerivation (finalAttrs: {
     openssl
   ];
 
-  strictDeps = true;
+  makeFlags = [
+    "PREFIX=${placeholder "out"}"
+    "C_COMPILER=$(CC)"
+    "CPLUSPLUS_COMPILER=$(CXX)"
+    "LIBRARY_LINK=$(AR) cr "
+    "LINK=$(CXX) -o "
+  ];
 
-  # Since NIX_CFLAGS_COMPILE does not differentiate C and C++ toolchains, we
-  # set CXXFLAGS directly
+  # Since NIX_CFLAGS_COMPILE affects both C and C++ toolchains, we set CXXFLAGS
+  # directly
   env.CXXFLAGS = "-std=c++20";
 
+  strictDeps = true;
+
+  enableParallelBuilding = true;
+
+  # required for whitespaces in makeFlags
+  __structuredAttrs = true;
+
   postPatch = ''
     substituteInPlace config.macosx-catalina \
       --replace '/usr/lib/libssl.46.dylib' "${lib.getLib openssl}/lib/libssl.dylib" \
@@ -75,19 +88,6 @@ stdenv.mkDerivation (finalAttrs: {
     runHook postConfigure
   '';
 
-  makeFlags = [
-    "PREFIX=${placeholder "out"}"
-    "C_COMPILER=$(CC)"
-    "CPLUSPLUS_COMPILER=$(CXX)"
-    "LIBRARY_LINK=$(AR) cr "
-    "LINK=$(CXX) -o "
-  ];
-
-  # required for whitespaces in makeFlags
-  __structuredAttrs = true;
-
-  enableParallelBuilding = true;
-
   passthru.tests = {
     # Downstream dependency
     inherit vlc;
diff --git a/pkgs/by-name/lk/lk-jwt-service/package.nix b/pkgs/by-name/lk/lk-jwt-service/package.nix
new file mode 100644
index 0000000000000..42e4441c6a117
--- /dev/null
+++ b/pkgs/by-name/lk/lk-jwt-service/package.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "lk-jwt-service";
+  version = "0-unstable-2024-04-27";
+
+  src = fetchFromGitHub {
+    owner = "element-hq";
+    repo = "lk-jwt-service";
+    rev = "4a295044a4d0bd2af4474bf6a8a14fd0596ecf9e";
+    hash = "sha256-dN4iJ8P0u5dbZ93mp/FumcvByP7EpQhOvR+Oe4COWXQ=";
+  };
+
+  vendorHash = "sha256-9qOApmmOW+N1L/9hj9tVy0hLIUI36WL2TGWUcM3ajeM=";
+
+  postInstall = ''
+    mv $out/bin/ec-lms $out/bin/lk-jwt-service
+  '';
+
+  meta = with lib; {
+    description = "Minimal service to provide LiveKit JWTs using Matrix OpenID Connect";
+    homepage = "https://github.com/element-hq/lk-jwt-service";
+    license = licenses.agpl3Plus;
+    maintainers = with maintainers; [ kilimnik ];
+    mainProgram = "lk-jwt-service";
+  };
+}
diff --git a/pkgs/by-name/lo/logiops/package.nix b/pkgs/by-name/lo/logiops/package.nix
index fea73c79268b5..cdd75e4963f31 100644
--- a/pkgs/by-name/lo/logiops/package.nix
+++ b/pkgs/by-name/lo/logiops/package.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation (oldAttrs: {
   pname = "logiops";
-  version = "0.3.3";
+  version = "0.3.4";
 
   src = fetchFromGitHub {
     owner = "PixlOne";
     repo = "logiops";
     rev = "v${oldAttrs.version}";
-    sha256 = "sha256-9nFTud5szQN8jpG0e/Bkp+I9ELldfo66SdfVCUTuekg=";
+    sha256 = "sha256-IL7jQA3lGhxVLYCFRgeXdadaBlQr+Op9cedHBlLUCWY=";
     # In v0.3.0, the `ipcgull` submodule was added as a dependency
     # https://github.com/PixlOne/logiops/releases/tag/v0.3.0
     fetchSubmodules = true;
diff --git a/pkgs/by-name/ma/maa-assistant-arknights/fastdeploy-ppocr.nix b/pkgs/by-name/ma/maa-assistant-arknights/fastdeploy-ppocr.nix
index a8a4b2f53160b..8cd3d355091e6 100644
--- a/pkgs/by-name/ma/maa-assistant-arknights/fastdeploy-ppocr.nix
+++ b/pkgs/by-name/ma/maa-assistant-arknights/fastdeploy-ppocr.nix
@@ -23,11 +23,11 @@ effectiveStdenv.mkDerivation (finalAttrs: {
   version = "0-unstable-2023-10-09";
 
   src = fetchFromGitHub {
-    owner = "Cryolitia";
+    owner = "MaaAssistantArknights";
     repo = "FastDeploy";
-    # follows https://github.com/MaaAssistantArknights/MaaDeps/blob/master/vcpkg-overlay/ports/maa-fastdeploy/portfile.cmake#L4
-    rev = "2e68908141f6950bc5d22ba84f514e893cc238ea";
-    hash = "sha256-BWO4lKZhwNG6mbkC70hPgMNjabTnEV5XMo0bLV/gvQs=";
+    # follows but not fully follows https://github.com/MaaAssistantArknights/MaaDeps/blob/master/vcpkg-overlay/ports/maa-fastdeploy/portfile.cmake#L4
+    rev = "0db6000aaac250824266ac37451f43ce272d80a3";
+    hash = "sha256-5TItnPDc5WShpZAgBYeqgI9KKkk3qw/M8HPMlq/H4BM=";
   };
 
   outputs = [ "out" "cmake" ];
diff --git a/pkgs/by-name/ma/maa-assistant-arknights/package.nix b/pkgs/by-name/ma/maa-assistant-arknights/package.nix
index c53c52562db8c..0ba554a04cf71 100644
--- a/pkgs/by-name/ma/maa-assistant-arknights/package.nix
+++ b/pkgs/by-name/ma/maa-assistant-arknights/package.nix
@@ -29,27 +29,6 @@ stdenv.mkDerivation (finalAttr: {
     hash = if isBeta then sources.beta.hash else sources.stable.hash;
   };
 
-  # https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=maa-assistant-arknights
-  postPatch = ''
-    substituteInPlace CMakeLists.txt \
-      --replace-fail 'RUNTIME DESTINATION .' ' ' \
-      --replace-fail 'LIBRARY DESTINATION .' ' ' \
-      --replace-fail 'PUBLIC_HEADER DESTINATION .' ' '
-
-    substituteInPlace CMakeLists.txt \
-      --replace-fail 'find_package(asio ' '# find_package(asio ' \
-      --replace-fail 'asio::asio' ' '
-
-    shopt -s globstar nullglob
-
-    substituteInPlace src/MaaCore/**/{*.h,*.cpp,*.hpp,*.cc} \
-      --replace 'onnxruntime/core/session/' ""
-    substituteInPlace CMakeLists.txt \
-      --replace-fail 'ONNXRuntime' 'onnxruntime'
-
-    cp -v ${fastdeploy.cmake}/Findonnxruntime.cmake cmake/
-  '';
-
   nativeBuildInputs = [
     asio
     cmake
diff --git a/pkgs/by-name/ma/maa-assistant-arknights/pin.json b/pkgs/by-name/ma/maa-assistant-arknights/pin.json
index c6056d3c9deb6..8c2eabfcaefd1 100644
--- a/pkgs/by-name/ma/maa-assistant-arknights/pin.json
+++ b/pkgs/by-name/ma/maa-assistant-arknights/pin.json
@@ -1,10 +1,10 @@
 {
   "stable": {
-    "version": "5.2.3",
-    "hash": "sha256-fjlvP5PPmSSNYefYRrEBVdhbN3yZ0pCbvIe763U5y5o="
+    "version": "5.3.1",
+    "hash": "sha256-4Bz9r4UcaUI5v1upwdD0HclXIUBcNpfnA2iWwofk1zw="
   },
   "beta": {
-    "version": "5.2.3",
-    "hash": "sha256-fjlvP5PPmSSNYefYRrEBVdhbN3yZ0pCbvIe763U5y5o="
+    "version": "5.3.1",
+    "hash": "sha256-4Bz9r4UcaUI5v1upwdD0HclXIUBcNpfnA2iWwofk1zw="
   }
 }
diff --git a/pkgs/by-name/ma/malwoverview/package.nix b/pkgs/by-name/ma/malwoverview/package.nix
index 9724c4b162be0..4028ae8fac3ce 100644
--- a/pkgs/by-name/ma/malwoverview/package.nix
+++ b/pkgs/by-name/ma/malwoverview/package.nix
@@ -5,7 +5,7 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "malwoverview";
-  version = "5.4.3";
+  version = "5.4.4";
   pyproject = true;
 
   src = fetchFromGitHub {
diff --git a/pkgs/by-name/ma/matugen/package.nix b/pkgs/by-name/ma/matugen/package.nix
index f2b80a0a76adb..d739ed720ef04 100644
--- a/pkgs/by-name/ma/matugen/package.nix
+++ b/pkgs/by-name/ma/matugen/package.nix
@@ -25,7 +25,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "A material you color generation tool";
-    homepage = "git@github.com:InioX/matugen.git";
+    homepage = "https://github.com/InioX/matugen";
     changelog = "https://github.com/InioX/matugen/blob/${src.rev}/CHANGELOG.md";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ lampros ];
diff --git a/pkgs/by-name/mi/mini-calc/package.nix b/pkgs/by-name/mi/mini-calc/package.nix
index d240aa7bbe694..6c968a97b418c 100644
--- a/pkgs/by-name/mi/mini-calc/package.nix
+++ b/pkgs/by-name/mi/mini-calc/package.nix
@@ -9,16 +9,16 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "mini-calc";
-  version = "3.0.1";
+  version = "3.1.0";
 
   src = fetchFromGitHub {
     owner = "coco33920";
     repo = "calc";
     rev = version;
-    hash = "sha256-vQQ0JKqNhcJ4UhbPzg3OmA2lmZ3HqNB3Ag68OffIXt0=";
+    hash = "sha256-wROeUi1j5oEUpr7nRge6bRUO0E8W2E34M7DeyK0xmjM=";
   };
 
-  cargoHash = "sha256-PfhcQnAWK8/R+HTx/iHibqMvpjPDKUZssDbO9XgkOuk=";
+  cargoHash = "sha256-QPkaSJNoxnheECwcK129+PNeRm6+DFOw1wmwBev6oXc=";
 
   nativeBuildInputs = [ makeWrapper ];
   postFixup = ''
diff --git a/pkgs/by-name/mi/misconfig-mapper/package.nix b/pkgs/by-name/mi/misconfig-mapper/package.nix
index ab4945b3a9088..8d081453481fe 100644
--- a/pkgs/by-name/mi/misconfig-mapper/package.nix
+++ b/pkgs/by-name/mi/misconfig-mapper/package.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "misconfig-mapper";
-  version = "1.2.0";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "intigriti";
     repo = "misconfig-mapper";
     rev = "refs/tags/v${version}";
-    hash = "sha256-sG0irM7IdXxWrexN4vR+e8V0KeW+9c7umKj0hnIZwLs=";
+    hash = "sha256-LrXx5OFpF+qsEhblBaXqsSGtw/Kp9FqjouCbMywpKg0=";
   };
 
   vendorHash = "sha256-lkVTgnWdk9eW6QtKScK8NckcXGzsHeIwjSoUx85AGU8=";
diff --git a/pkgs/tools/networking/mpack/CVE-2011-4919.patch b/pkgs/by-name/mp/mpack/CVE-2011-4919.patch
index 10b9a1116ef39..10b9a1116ef39 100644
--- a/pkgs/tools/networking/mpack/CVE-2011-4919.patch
+++ b/pkgs/by-name/mp/mpack/CVE-2011-4919.patch
diff --git a/pkgs/tools/networking/mpack/build-fix.patch b/pkgs/by-name/mp/mpack/build-fix.patch
index 0329bedd07f39..0329bedd07f39 100644
--- a/pkgs/tools/networking/mpack/build-fix.patch
+++ b/pkgs/by-name/mp/mpack/build-fix.patch
diff --git a/pkgs/tools/networking/mpack/default.nix b/pkgs/by-name/mp/mpack/package.nix
index 669ef500c4556..d428fbe664c92 100644
--- a/pkgs/tools/networking/mpack/default.nix
+++ b/pkgs/by-name/mp/mpack/package.nix
@@ -1,4 +1,10 @@
-{ lib, stdenv, fetchurl }:
+{
+  lib,
+  stdenv,
+  fetchurl,
+  testers,
+  mpack,
+}:
 
 stdenv.mkDerivation rec {
   pname = "mpack";
@@ -9,7 +15,11 @@ stdenv.mkDerivation rec {
     sha256 = "0k590z96509k96zxmhv72gkwhrlf55jkmyqlzi72m61r7axhhh97";
   };
 
-  patches = [ ./build-fix.patch ./sendmail-via-execvp.diff ./CVE-2011-4919.patch ];
+  patches = [
+    ./build-fix.patch
+    ./sendmail-via-execvp.diff
+    ./CVE-2011-4919.patch
+  ];
 
   postPatch = ''
     for f in *.{c,man,pl,unix} ; do
@@ -28,9 +38,20 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.tests = {
+    version = testers.testVersion {
+      command = ''
+        mpack 2>&1 || echo "mpack exited with error code $?"
+      '';
+      package = mpack;
+      version = "mpack version ${version}";
+    };
+  };
+
   meta = with lib; {
     description = "Utilities for encoding and decoding binary files in MIME";
     license = licenses.free;
     platforms = platforms.linux;
+    maintainers = with maintainers; [ tomodachi94 ];
   };
 }
diff --git a/pkgs/tools/networking/mpack/sendmail-via-execvp.diff b/pkgs/by-name/mp/mpack/sendmail-via-execvp.diff
index 8f10901038d6b..8f10901038d6b 100644
--- a/pkgs/tools/networking/mpack/sendmail-via-execvp.diff
+++ b/pkgs/by-name/mp/mpack/sendmail-via-execvp.diff
diff --git a/pkgs/by-name/ni/nimble/lock.json b/pkgs/by-name/ni/nimble/lock.json
new file mode 100644
index 0000000000000..5fe2cca79da16
--- /dev/null
+++ b/pkgs/by-name/ni/nimble/lock.json
@@ -0,0 +1,26 @@
+{
+  "depends": [
+    {
+      "method": "fetchzip",
+      "packages": [
+        "checksums"
+      ],
+      "path": "/nix/store/z6799507gzbw46lzbi1i8mwm0nbvrvnx-source",
+      "rev": "7ff0b762332d2591bbeb65df9bb86d52ea44ec01",
+      "sha256": "11612prr2wwbx414ip0zjh1fv638dgfvzxfd6v2f432n0wfwhjhj",
+      "srcDir": "src",
+      "url": "https://github.com/nim-lang/checksums/archive/7ff0b762332d2591bbeb65df9bb86d52ea44ec01.tar.gz"
+    },
+    {
+      "method": "fetchzip",
+      "packages": [
+        "sat"
+      ],
+      "path": "/nix/store/lwg9fm34h5xv0dvxij9r5m2y6pn1zsvx-source",
+      "rev": "a53d9d6e0470f78f8ba14652d981e7bcdbcd579f",
+      "sha256": "1dxbc41wbvkpdp6q3qz1r38lpn32447qkkgyh2s12ym6bx4ynni4",
+      "srcDir": "src",
+      "url": "https://github.com/nim-lang/sat/archive/a53d9d6e0470f78f8ba14652d981e7bcdbcd579f.tar.gz"
+    }
+  ]
+}
diff --git a/pkgs/by-name/ni/nimble/package.nix b/pkgs/by-name/ni/nimble/package.nix
index 4e7457a88182b..213f621fd8667 100644
--- a/pkgs/by-name/ni/nimble/package.nix
+++ b/pkgs/by-name/ni/nimble/package.nix
@@ -1,31 +1,43 @@
-{ lib, buildNimPackage, fetchFromGitHub, nim, makeWrapper }:
+{
+  lib,
+  buildNimPackage,
+  fetchFromGitHub,
+  nim,
+  openssl,
+  makeWrapper,
+}:
 
-buildNimPackage (final: prev: {
-  pname = "nimble";
-  version = "0.14.2";
+buildNimPackage (
+  final: prev: {
+    pname = "nimble";
+    version = "0-unstable-2024-05-14";
 
-  requiredNimVersion = 1;
+    src = fetchFromGitHub {
+      owner = "nim-lang";
+      repo = "nimble";
+      rev = "f8bd7b5fa6ea7a583b411b5959b06e6b5eb23667";
+      hash = "sha256-aRDaucD6wOUPtXLIrahvK0vBfurdgFrk+swzqzMA09w=";
+    };
 
-  src = fetchFromGitHub {
-    owner = "nim-lang";
-    repo = "nimble";
-    rev = "v${final.version}";
-    hash = "sha256-8b5yKvEl7c7wA/8cpdaN2CSvawQJzuRce6mULj3z/mI=";
-  };
+    lockFile = ./lock.json;
 
-  nativeBuildInputs = [ makeWrapper ];
+    nativeBuildInputs = [ makeWrapper ];
+    buildInputs = [ openssl ];
 
-  doCheck = false; # it works on their machine
+    nimFlags = [ "--define:git_revision_override=${final.src.rev}" ];
 
-  postInstall = ''
-    wrapProgram $out/bin/nimble \
-      --suffix PATH : ${lib.makeBinPath [ nim ]}
-  '';
+    doCheck = false; # it works on their machine
 
-  meta = {
-    description = "Package manager for the Nim programming language";
-    homepage = "https://github.com/nim-lang/nimble";
-    license = lib.licenses.bsd3;
-    mainProgram = "nimble";
-  };
-})
+    postInstall = ''
+      wrapProgram $out/bin/nimble \
+        --suffix PATH : ${lib.makeBinPath [ nim ]}
+    '';
+
+    meta = {
+      description = "Package manager for the Nim programming language";
+      homepage = "https://github.com/nim-lang/nimble";
+      license = lib.licenses.bsd3;
+      mainProgram = "nimble";
+    };
+  }
+)
diff --git a/pkgs/by-name/ni/nix-janitor/package.nix b/pkgs/by-name/ni/nix-janitor/package.nix
index f12e765fd0002..25595ee83822e 100644
--- a/pkgs/by-name/ni/nix-janitor/package.nix
+++ b/pkgs/by-name/ni/nix-janitor/package.nix
@@ -2,21 +2,32 @@
   lib,
   rustPlatform,
   fetchFromGitHub,
+  installShellFiles,
   nix-update-script,
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "nix-janitor";
-  version = "0.2.0";
+  version = "0.3.1";
 
   src = fetchFromGitHub {
     owner = "nobbz";
     repo = "nix-janitor";
     rev = "refs/tags/${version}";
-    hash = "sha256-nGtbBNU6xFWXnmL1AaUbSpO0z5Kq2t/Mn8sqwzjNlkE=";
+    hash = "sha256-xoVByI17rt2SCY3ULg12S8QsoXGhQWZlOpPpK2mfcPY=";
   };
 
-  cargoHash = "sha256-j3i4c3KjI8ehg42FqbPp+8M15zT9Bu76P4zv8ApUoeA=";
+  cargoHash = "sha256-QG2hHM4KBSU6+droew2WnOFxWRTpk9griIPMD8MLSbw=";
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  postInstall = ''
+    for shell in bash fish zsh; do
+      completionFile=janitor.$shell
+      $out/bin/janitor --completions $shell > $completionFile
+      installShellCompletion $completionFile
+    done
+  '';
 
   passthru.updateScript = nix-update-script { };
 
diff --git a/pkgs/by-name/no/node-hp-scan-to/package.nix b/pkgs/by-name/no/node-hp-scan-to/package.nix
index 93ea3b3a760a9..86498d2b7fd52 100644
--- a/pkgs/by-name/no/node-hp-scan-to/package.nix
+++ b/pkgs/by-name/no/node-hp-scan-to/package.nix
@@ -10,18 +10,18 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "node-hp-scan-to";
-  version = "1.4.2";
+  version = "1.4.3";
 
   src = fetchFromGitHub {
     owner = "manuc66";
     repo = "node-hp-scan-to";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-/aoR2ccDYTkdmcj4k2zf8VJydQufZ2ucqyZ1OH9jRt0=";
+    hash = "sha256-/XUqCL2F1iMYUoCbGgL9YKs+8wIFHvmh2O0LMbDU8yE=";
   };
 
   offlineCache = fetchYarnDeps {
     yarnLock = "${finalAttrs.src}/yarn.lock";
-    hash = "sha256-Mhlw/3js35TOVDADsPScE9kfv9rmF+u1LzDmKkzunM0=";
+    hash = "sha256-pxeYumHuomOFyCi8XhYTYQNcsGOUvjOg36bFD0yhdLk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/op/openvas-scanner/package.nix b/pkgs/by-name/op/openvas-scanner/package.nix
index f732a8226ce17..9ca1d240ba8f8 100644
--- a/pkgs/by-name/op/openvas-scanner/package.nix
+++ b/pkgs/by-name/op/openvas-scanner/package.nix
@@ -31,13 +31,13 @@
 
 stdenv.mkDerivation rec {
   pname = "openvas-scanner";
-  version = "23.3.0";
+  version = "23.3.1";
 
   src = fetchFromGitHub {
     owner = "greenbone";
     repo = "openvas-scanner";
     rev = "refs/tags/v${version}";
-    hash = "sha256-CkwDhHPdTbXNrqY/obg1rOtGB1HC+fUwZ5+5d82vlV4=";
+    hash = "sha256-0vcGKC979bJLhq/9e+DYaRrsUktjMyMuZNqZYK6BCWQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/pa/pacu/package.nix b/pkgs/by-name/pa/pacu/package.nix
index ff69f23d6b298..46143afdb5e38 100644
--- a/pkgs/by-name/pa/pacu/package.nix
+++ b/pkgs/by-name/pa/pacu/package.nix
@@ -12,14 +12,14 @@ let
 in
 python.pkgs.buildPythonApplication rec {
   pname = "pacu";
-  version = "1.5.3";
+  version = "1.6.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "RhinoSecurityLabs";
     repo = "pacu";
     rev = "refs/tags/v${version}";
-    hash = "sha256-DLyTWyfDOawtBZ7rIzVc0PFgagpM7qbaAbOJE6nh0Wo=";
+    hash = "sha256-Td5H4O6/7Gh/rvP191xjCJmIbyc4ezZC5Fh4FZ39ZUM=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/by-name/pa/pantheon-tweaks/package.nix b/pkgs/by-name/pa/pantheon-tweaks/package.nix
index 26630f6f72df6..fc49c062d907b 100644
--- a/pkgs/by-name/pa/pantheon-tweaks/package.nix
+++ b/pkgs/by-name/pa/pantheon-tweaks/package.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pantheon-tweaks";
-  version = "2.0.1";
+  version = "2.0.2";
 
   src = fetchFromGitHub {
     owner = "pantheon-tweaks";
     repo = pname;
     rev = version;
-    hash = "sha256-P3eM+xgsAMvqr2mIEjkQSjhxvQAwtSNItxAUcjO3ciY=";
+    hash = "sha256-7a6maEpvmIS+Raawr9ec44nCbuj83EUnd+8RqYgWy24=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/pe/peergos/package.nix b/pkgs/by-name/pe/peergos/package.nix
index dc142f44ce591..ed147d218ee08 100644
--- a/pkgs/by-name/pe/peergos/package.nix
+++ b/pkgs/by-name/pe/peergos/package.nix
@@ -9,10 +9,10 @@
 
 stdenv.mkDerivation rec {
   pname = "peergos";
-  version = "0.17.0";
+  version = "0.18.0";
   src = fetchurl {
     url = "https://github.com/Peergos/web-ui/releases/download/v${version}/Peergos.jar";
-    hash = "sha256-sQPEKvtQDRQ4dF22tZjPhK7DLtDVAcudxoA4+GOeeZA=";
+    hash = "sha256-qscNGuptkRd7bQhIq51bJ/cH2Gzn60lB4IUT9RK6eIo=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/by-name/pi/pinact/package.nix b/pkgs/by-name/pi/pinact/package.nix
index 7e710c8f270ec..1c32aac2180de 100644
--- a/pkgs/by-name/pi/pinact/package.nix
+++ b/pkgs/by-name/pi/pinact/package.nix
@@ -7,18 +7,18 @@
 
 let
   pname = "pinact";
-  version = "0.1.3";
+  version = "0.2.0";
   src = fetchFromGitHub {
     owner = "suzuki-shunsuke";
     repo = "pinact";
     rev = "v${version}";
-    hash = "sha256-ifUnF7u4/vMy89xb7sk4tPKQYdFBYAIHc0GYVBMWvWM=";
+    hash = "sha256-ndlyfp+neoOEzofIlQEQp/6masnzMQFWAPmhan3hlb0=";
   };
 in
 buildGoModule {
   inherit pname version src;
 
-  vendorHash = "sha256-ht4eV62w9AWKYahrd83LmBI+Tu2Q64YA3t90N4BR1e4=";
+  vendorHash = "sha256-qu4CHh2013q7e7mBuymlKEhjpdtSOaWGVutjegoVP7E=";
 
   doCheck = true;
 
diff --git a/pkgs/by-name/pm/pm2/package.nix b/pkgs/by-name/pm/pm2/package.nix
index 1b29f2fa52dc0..12473ffc21965 100644
--- a/pkgs/by-name/pm/pm2/package.nix
+++ b/pkgs/by-name/pm/pm2/package.nix
@@ -5,16 +5,16 @@
 
 buildNpmPackage rec {
   pname = "pm2";
-  version = "5.3.1";
+  version = "5.4.0";
 
   src = fetchFromGitHub {
     owner = "Unitech";
     repo = "pm2";
     rev = "v${version}";
-    hash = "sha256-thShqrnM5S3/IImEm+2vHVRLCsLJN5NGaSRYubtULW0=";
+    hash = "sha256-hmciDjlmlIaqOWl9rYWQ6muq6LFzQb5tfpdzL0vV/ZM=";
   };
 
-  npmDepsHash = "sha256-6M8kwiCHaQzcFyUUx7Yax/dobATWXG0Di7enEzlO8YE=";
+  npmDepsHash = "sha256-je+GwPkUiGPWgKQgSPlx2OEWMbDKdwEM/idTjgINLHY=";
 
   dontNpmBuild = true;
 
diff --git a/pkgs/tools/misc/pmbootstrap/default.nix b/pkgs/by-name/pm/pmbootstrap/package.nix
index 03cc7997e2252..666f12396681a 100644
--- a/pkgs/tools/misc/pmbootstrap/default.nix
+++ b/pkgs/by-name/pm/pmbootstrap/package.nix
@@ -1,15 +1,24 @@
-{ stdenv, lib, git, openssl, buildPythonApplication, pytestCheckHook, ps
-, fetchPypi, fetchFromGitLab, sudo }:
+{ stdenv
+, lib
+, git
+, openssl
+, ps
+, fetchFromGitLab
+, sudo
+, python3Packages
+, gitUpdater
+}:
 
-buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
   pname = "pmbootstrap";
-  version = "2.2.0";
+  version = "2.3.1";
+  pyproject = true;
 
   src = fetchFromGitLab {
     owner = "postmarketos";
     repo = pname;
     rev = version;
-    hash = "sha256-wRJvvABIUPh79QfS8VcwRueB/vO9oGcqyE/OugfTsd8=";
+    hash = "sha256-0hC84Gyfr1FOpZGAc7pAhz/QBSTA5A/Lu/ZJdzlEcX4=";
   };
 
   pmb_test = "${src}/test";
@@ -17,7 +26,14 @@ buildPythonApplication rec {
   # Tests depend on sudo
   doCheck = stdenv.isLinux;
 
-  nativeCheckInputs = [ pytestCheckHook git openssl ps sudo ];
+  nativeCheckInputs = [
+    python3Packages.pytestCheckHook
+    python3Packages.setuptools
+    git
+    openssl
+    ps
+    sudo
+  ];
 
   # Add test dependency in PATH
   preCheck = "export PYTHONPATH=$PYTHONPATH:${pmb_test}";
@@ -93,12 +109,14 @@ buildPythonApplication rec {
 
   makeWrapperArgs = [ "--prefix PATH : ${lib.makeBinPath [ git openssl ]}" ];
 
+  passthru.updateScript = gitUpdater { };
+
   meta = with lib; {
     description =
       "Sophisticated chroot/build/flash tool to develop and install postmarketOS";
     homepage = "https://gitlab.com/postmarketOS/pmbootstrap";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ onny ];
+    maintainers = with maintainers; [ onny lucasew ];
     mainProgram = "pmbootstrap";
   };
 }
diff --git a/pkgs/by-name/po/poptracker/package.nix b/pkgs/by-name/po/poptracker/package.nix
index 6ef94feb3484a..4fb90aa82c37c 100644
--- a/pkgs/by-name/po/poptracker/package.nix
+++ b/pkgs/by-name/po/poptracker/package.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "poptracker";
-  version = "0.25.7";
+  version = "0.26.1";
 
   src = fetchFromGitHub {
     owner = "black-sliver";
     repo = "PopTracker";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-wP2d8cWNg80KUyw1xPQMriNRg3UyXgKaSoJ17U5vqCE=";
+    hash = "sha256-NeUIU+vXML9lP+JL7MJyGNxZB0ggAngOpf8mMgOE+r8=";
     fetchSubmodules = true;
   };
 
@@ -57,7 +57,7 @@ stdenv.mkDerivation (finalAttrs: {
     runHook postInstall
   '';
 
-  meta = with lib; {
+  meta = {
     description = "Scriptable tracker for randomized games";
     longDescription = ''
       Universal, scriptable randomizer tracking solution that is open source. Supports auto-tracking.
@@ -66,8 +66,8 @@ stdenv.mkDerivation (finalAttrs: {
     '';
     homepage = "https://github.com/black-sliver/PopTracker";
     changelog = "https://github.com/black-sliver/PopTracker/releases/tag/v${finalAttrs.version}";
-    license = licenses.gpl3Only;
-    maintainers = with maintainers; [ freyacodes ];
+    license = lib.licenses.gpl3Only;
+    maintainers = with lib.maintainers; [ freyacodes pyrox0 ];
     mainProgram = "poptracker";
     platforms = [ "x86_64-linux" ];
   };
diff --git a/pkgs/by-name/pr/pretix/package.nix b/pkgs/by-name/pr/pretix/package.nix
index a45fdbdf2ff31..8234f49fcf134 100644
--- a/pkgs/by-name/pr/pretix/package.nix
+++ b/pkgs/by-name/pr/pretix/package.nix
@@ -29,13 +29,13 @@ let
   };
 
   pname = "pretix";
-  version = "2024.4.0";
+  version = "2024.5.0";
 
   src = fetchFromGitHub {
     owner = "pretix";
     repo = "pretix";
     rev = "refs/tags/v${version}";
-    hash = "sha256-+F5EOMMkO1ngGeFscDipwbldsY0AhOUKbjqgNpuph4g=";
+    hash = "sha256-dLzCugbRQSGuOwe99a3WLMffisyvYWNRdSdcdW9knjY=";
   };
 
   npmDeps = buildNpmPackage {
@@ -43,7 +43,7 @@ let
     inherit version src;
 
     sourceRoot = "${src.name}/src/pretix/static/npm_dir";
-    npmDepsHash = "sha256-0Q/BCRHlnyQJlCF3PgIP9q3Qyr/ff+GP0lPIwPsIMSU=";
+    npmDepsHash = "sha256-SEgAC3dmnxG1xM9QZQ/e+6NFOwXU3tXlbfZCzrAMFO0=";
 
     dontBuild = true;
 
@@ -81,15 +81,15 @@ python.pkgs.buildPythonApplication rec {
       --replace-fail psycopg2-binary psycopg2 \
       --replace-fail vat_moss_forked==2020.3.20.0.11.0 vat-moss \
       --replace-fail "bleach==5.0.*" bleach \
-      --replace-fail "django-hierarkey==1.1.*" django-hierarkey \
+      --replace-fail "django-oauth-toolkit==2.3.*" django-oauth-toolkit \
       --replace-fail "djangorestframework==3.15.*" djangorestframework \
       --replace-fail "dnspython==2.6.*" dnspython \
       --replace-fail "importlib_metadata==7.*" importlib_metadata \
       --replace-fail "markdown==3.6" markdown \
-      --replace-fail "protobuf==5.26.*" protobuf \
+      --replace-fail "protobuf==5.27.*" protobuf \
       --replace-fail "pycryptodome==3.20.*" pycryptodome \
-      --replace-fail "pypdf==3.9.*" pypdf \
       --replace-fail "python-dateutil==2.9.*" python-dateutil \
+      --replace-fail "requests==2.32.*" "requests" \
       --replace-fail "stripe==7.9.*" stripe
   '';
 
@@ -179,7 +179,9 @@ python.pkgs.buildPythonApplication rec {
     vobject
     webauthn
     zeep
-  ] ++ plugins;
+  ]
+  ++ django.optional-dependencies.argon2
+  ++ plugins;
 
   optional-dependencies = with python.pkgs; {
     memcached = [
diff --git a/pkgs/by-name/pr/pretix/plugins/pages.nix b/pkgs/by-name/pr/pretix/plugins/pages.nix
index 91f8ef032f773..0edc1f9c34894 100644
--- a/pkgs/by-name/pr/pretix/plugins/pages.nix
+++ b/pkgs/by-name/pr/pretix/plugins/pages.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "pretix-pages";
-  version = "1.6.0";
+  version = "1.6.1";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "pretix";
     repo = "pretix-pages";
     rev = "v${version}";
-    hash = "sha256-cO5tAiOifLpqFEQwYgrGoByUecpzvue8YmChpPwm+y0=";
+    hash = "sha256-u2POt3v0OpjbauDCX8Uclvqd1+jujvVrzUIYrvDv/qI=";
   };
 
   build-system = [
diff --git a/pkgs/by-name/pr/pretix/plugins/passbook.nix b/pkgs/by-name/pr/pretix/plugins/passbook.nix
index b7d380aa681d9..ccb14543b7ab0 100644
--- a/pkgs/by-name/pr/pretix/plugins/passbook.nix
+++ b/pkgs/by-name/pr/pretix/plugins/passbook.nix
@@ -17,14 +17,14 @@
 
 buildPythonPackage rec {
   pname = "pretix-passbook";
-  version = "1.13.1";
+  version = "1.13.2";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "pretix";
     repo = "pretix-passbook";
     rev = "v${version}";
-    hash = "sha256-bp64wCEMon05JhOaDr/cVbqUxc+7ndcsSuSesxJt8GE=";
+    hash = "sha256-rdX93AFoLLsA44a9sSgcQrCJiOlhe3j5WTBO+MHZ/X8=";
   };
 
   patches = [
diff --git a/pkgs/by-name/py/pyprland/package.nix b/pkgs/by-name/py/pyprland/package.nix
index 3af5128c129b5..3f4a57d7bcfc4 100644
--- a/pkgs/by-name/py/pyprland/package.nix
+++ b/pkgs/by-name/py/pyprland/package.nix
@@ -7,7 +7,7 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "pyprland";
-  version = "2.3.2";
+  version = "2.3.4";
   format = "pyproject";
 
   disabled = python3Packages.pythonOlder "3.10";
@@ -16,7 +16,7 @@ python3Packages.buildPythonApplication rec {
     owner = "hyprland-community";
     repo = "pyprland";
     rev = "refs/tags/${version}";
-    hash = "sha256-3Y+5tOKd4Z7xwTU4OoEQffw70kb29wxKFC9Oh0bCO4k=";
+    hash = "sha256-mwBzLbKB/bO0Yl4VMA3roqiVs0FmmF1vfB+e+xhHe9c=";
   };
 
   nativeBuildInputs = with python3Packages; [ poetry-core ];
diff --git a/pkgs/by-name/py/pyright/package.nix b/pkgs/by-name/py/pyright/package.nix
index 1f91e91abba03..12e7bebed001e 100644
--- a/pkgs/by-name/py/pyright/package.nix
+++ b/pkgs/by-name/py/pyright/package.nix
@@ -1,13 +1,13 @@
 { lib, buildNpmPackage, fetchFromGitHub, runCommand, jq }:
 
 let
-  version = "1.1.362";
+  version = "1.1.364";
 
   src = fetchFromGitHub {
     owner = "Microsoft";
     repo = "pyright";
     rev = "${version}";
-    hash = "sha256-sz+Om2bfsJJTe2W8l49pI+K9phCTwoczeG1Q7qlMIig=";
+    hash = "sha256-7XQ/DGba00sEg/DxcKuX2ehc4V96557yvtGXFFyHD74=";
   };
 
   patchedPackageJSON = runCommand "package.json" { } ''
@@ -37,7 +37,7 @@ let
     pname = "pyright-internal";
     inherit version src;
     sourceRoot = "${src.name}/packages/pyright-internal";
-    npmDepsHash = "sha256-xcr9j5/90gfV/r0yI9ifj6Nrr9WrawwvukuVkl387r4=";
+    npmDepsHash = "sha256-ce3338ugei4R7CYKn3676ijpgYKcuyY8CgkWbf8unKw=";
     dontNpmBuild = true;
     installPhase = ''
       runHook preInstall
@@ -51,7 +51,7 @@ buildNpmPackage rec {
   inherit version src;
 
   sourceRoot = "${src.name}/packages/pyright";
-  npmDepsHash = "sha256-79tXMdOt1XH3KTT46bq35J4AcCVyoB2d4KEkr9EjqVY=";
+  npmDepsHash = "sha256-E6txhG+1DNcAR9Nia8ggWL0tDaTXs9sF4je5nDqroys=";
 
   postPatch = ''
     chmod +w ../../
diff --git a/pkgs/by-name/re/reproxy/package.nix b/pkgs/by-name/re/reproxy/package.nix
index f90ad1246cf85..c41334aa6be57 100644
--- a/pkgs/by-name/re/reproxy/package.nix
+++ b/pkgs/by-name/re/reproxy/package.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "reproxy";
-  version = "1.1.1";
+  version = "1.2.2";
 
   src = fetchFromGitHub {
     owner = "umputun";
     repo = "reproxy";
     rev = "v${version}";
-    hash = "sha256-/ydpqi7O4z41YxYb/RngPWk/79h3MIxAopzqIDMgw1g=";
+    hash = "sha256-UQ20mP+7AsrkNN+tvaRb8BcpHu76bpmswtR2PL4/JsE=";
   };
 
   vendorHash = null;
@@ -19,7 +19,7 @@ buildGoModule rec {
 
   checkFlags = [
     # Requires network access or fluky
-    "-skip=^Test(_MainWithPlugin|_MainWithSSL|_Main|Http_matchHandler|Http_withBasicAuth|File_Events|File_Events_BusyListener)$"
+    "-skip=^Test(_MainWithPlugin|_MainWithSSL|_Main|Http_health|Http_matchHandler|Http_withBasicAuth|File_Events|File_Events_BusyListener)$"
   ];
 
   postInstall = ''
diff --git a/pkgs/by-name/sa/samrewritten/package.nix b/pkgs/by-name/sa/samrewritten/package.nix
index 1cbaf4b79db81..375e3be3385a4 100644
--- a/pkgs/by-name/sa/samrewritten/package.nix
+++ b/pkgs/by-name/sa/samrewritten/package.nix
@@ -43,6 +43,6 @@ stdenv.mkDerivation (finalAttrs: {
     homepage = "https://github.com/PaulCombal/SamRewritten";
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ ludovicopiero ];
-    platforms = lib.platforms.linux;
+    platforms = [ "x86_64-linux" ];
   };
 })
diff --git a/pkgs/by-name/sa/sarasa-gothic/package.nix b/pkgs/by-name/sa/sarasa-gothic/package.nix
index 9c77d1070ee66..a83fd13547b72 100644
--- a/pkgs/by-name/sa/sarasa-gothic/package.nix
+++ b/pkgs/by-name/sa/sarasa-gothic/package.nix
@@ -7,13 +7,13 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "sarasa-gothic";
-  version = "1.0.12";
+  version = "1.0.13";
 
   src = fetchurl {
     # Use the 'ttc' files here for a smaller closure size.
     # (Using 'ttf' files gives a closure size about 15x larger, as of November 2021.)
     url = "https://github.com/be5invis/Sarasa-Gothic/releases/download/v${finalAttrs.version}/Sarasa-TTC-${finalAttrs.version}.zip";
-    hash = "sha256-icZT/CEvCCbDTklcca3LjtX7wnvx35wg4RyK1jHDmwk=";
+    hash = "sha256-dsYYzE5NrJgFCzV8fp6eUD+8bDf6qDP8/tBNRKhnytY=";
   };
 
   sourceRoot = ".";
diff --git a/pkgs/by-name/sh/shopware-cli/package.nix b/pkgs/by-name/sh/shopware-cli/package.nix
index 899b956b50a68..0362ee92ed060 100644
--- a/pkgs/by-name/sh/shopware-cli/package.nix
+++ b/pkgs/by-name/sh/shopware-cli/package.nix
@@ -9,18 +9,18 @@
 
 buildGoModule rec {
   pname = "shopware-cli";
-  version = "0.4.43";
+  version = "0.4.44";
   src = fetchFromGitHub {
     repo = "shopware-cli";
     owner = "FriendsOfShopware";
     rev = version;
-    hash = "sha256-c8CaPxV54bF4Unlz15SIh64jiGZMZywcKOzdZ74AtaM=";
+    hash = "sha256-i9FRt86kd2bUW5fyn/qRRSzXRSqUHTGlxOnzehEfnxU=";
   };
 
   nativeBuildInputs = [ installShellFiles makeWrapper ];
   nativeCheckInputs = [ git dart-sass ];
 
-  vendorHash = "sha256-7K56fBX4y2UPofksAl6+u7jBg5tySvtrutUJXDJ/qz4=";
+  vendorHash = "sha256-j1zKugueG4QaCetwfZXnWqo5SciX2N/dr0VD4d0ITS4=";
 
   postInstall = ''
     export HOME="$(mktemp -d)"
diff --git a/pkgs/by-name/sk/sketchybar-app-font/package.nix b/pkgs/by-name/sk/sketchybar-app-font/package.nix
index e13b23e3fbbc8..d64cef79acf5e 100644
--- a/pkgs/by-name/sk/sketchybar-app-font/package.nix
+++ b/pkgs/by-name/sk/sketchybar-app-font/package.nix
@@ -18,7 +18,7 @@ lib.checkListOfEnum "sketchybar-app-font: artifacts" artifacts artifactList
   in
   {
     pname = "sketchybar-app-font";
-    version = "2.0.18";
+    version = "2.0.19";
 
     srcs = selectedSources;
 
@@ -52,15 +52,15 @@ lib.checkListOfEnum "sketchybar-app-font: artifacts" artifacts artifactList
       sources = {
         font = fetchurl {
           url = "https://github.com/kvndrsslr/sketchybar-app-font/releases/download/v${finalAttrs.version}/sketchybar-app-font.ttf";
-          hash = "sha256-ajwyBUfgvIUcac8gdFUnzGJCXsUcOJnscIdtrxo7ZqY=";
+          hash = "sha256-AH4Zkaccms1gNt7ZHZRHYPOx/iLpbcA4MiyBStHRDfU=";
         };
         lua = fetchurl {
           url = "https://github.com/kvndrsslr/sketchybar-app-font/releases/download/v${finalAttrs.version}/icon_map.lua";
-          hash = "sha256-jxIBLE1UDD1S8nu4b9y7AUYb0XHH/3iknhmBloi1Qrs=";
+          hash = "sha256-AGcHBgOZY2EBR0WEfaQhEsTRdo8QfEawx6Q2rdBuKIg=";
         };
         shell = fetchurl {
           url = "https://github.com/kvndrsslr/sketchybar-app-font/releases/download/v${finalAttrs.version}/icon_map.sh";
-          hash = "sha256-I0t9KbC3Cs73021z9lm7TZUhmwdIaIgPVuLe8IjwkCU=";
+          hash = "sha256-fdKnweYF92zCLVBVXTjLWK9vdzMD8FvOHjEo2vqPbhQ=";
         };
       };
 
diff --git a/pkgs/by-name/sl/slumber/package.nix b/pkgs/by-name/sl/slumber/package.nix
index 2cb38167c0572..fb485e4986248 100644
--- a/pkgs/by-name/sl/slumber/package.nix
+++ b/pkgs/by-name/sl/slumber/package.nix
@@ -7,16 +7,16 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "slumber";
-  version = "1.3.1";
+  version = "1.3.2";
 
   src = fetchFromGitHub {
     owner = "LucasPickering";
     repo = "slumber";
     rev = "v${version}";
-    hash = "sha256-BPOBIE/nAupBwjKYnEfrHQQ8EEA3ZbuU/D0fqio4Ir0=";
+    hash = "sha256-aYNsTAqMcoOSRXWclrVR5DWQCTSDHXSQsSJn37yYPY8=";
   };
 
-  cargoHash = "sha256-+GXLCxitYjNK9Eg93Do1q6DglJ5QQi1KSZ6GNmJ1jG8=";
+  cargoHash = "sha256-uSKE8jFLYCEac2PR97VSPBnqllTsXkYZUO0b+xHR/CA=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.AppKit ];
 
diff --git a/pkgs/by-name/sm/smile/package.nix b/pkgs/by-name/sm/smile/package.nix
index 1c95965fde22f..3285177141976 100644
--- a/pkgs/by-name/sm/smile/package.nix
+++ b/pkgs/by-name/sm/smile/package.nix
@@ -13,28 +13,20 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "smile";
-  version = "2.9.0";
-  format = "other";
+  version = "2.9.5";
+  pyproject = false; # Builds with meson
 
   src = fetchFromGitHub {
     owner = "mijorus";
     repo = "smile";
     rev = version;
-    hash = "sha256-tXbRel+rtaE2zPO8NOc4X+Ktk4PdRHBMtpsGLbvuHZk=";
+    hash = "sha256-WwkwJXRnIvBS0cdcmJhErZLe0wwvarUdE7rpx7qcd2E=";
   };
 
-  postPatch = ''
-    patchShebangs build-aux/meson/postinstall.py
-
-    substituteInPlace build-aux/meson/postinstall.py \
-      --replace-fail gtk-update-icon-cache gtk4-update-icon-cache
-  '';
-
   nativeBuildInputs = [
     desktop-file-utils # for update-desktop-database
     glib # for glib-compile-resources
     gobject-introspection
-    gtk4 # for gtk4-update-icon-cache
     meson
     ninja
     wrapGAppsHook4
@@ -44,7 +36,7 @@ python3.pkgs.buildPythonApplication rec {
     libadwaita
   ];
 
-  propagatedBuildInputs = with python3.pkgs; [
+  dependencies = with python3.pkgs; [
     dbus-python
     manimpango
     pygobject3
@@ -63,6 +55,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://mijorus.it/projects/smile/";
     license = lib.licenses.gpl3Plus;
     mainProgram = "smile";
-    maintainers = with lib.maintainers; [ koppor ];
+    maintainers = with lib.maintainers; [ koppor aleksana ];
   };
 }
diff --git a/pkgs/applications/video/smplayer/default.nix b/pkgs/by-name/sm/smplayer/package.nix
index 513468cb16cf0..f835c1808bc32 100644
--- a/pkgs/applications/video/smplayer/default.nix
+++ b/pkgs/by-name/sm/smplayer/package.nix
@@ -1,20 +1,22 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, qmake
-, qtscript
-, wrapQtAppsHook
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  qt5,
 }:
 
+let
+  inherit (qt5) qmake qtscript wrapQtAppsHook;
+in
 stdenv.mkDerivation (finalAttrs: {
   pname = "smplayer";
-  version = "23.12.0";
+  version = "24.5.0";
 
   src = fetchFromGitHub {
     owner = "smplayer-dev";
     repo = "smplayer";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-ip4y9GF2u1yl1Ts8T9XcFg9wdXVTYXfDrrPuHLz6oSs=";
+    hash = "sha256-KblVDlE8EglMMAclGFZm81obipm6/JLUvsn5sLrpKqc=";
   };
 
   nativeBuildInputs = [
@@ -22,15 +24,11 @@ stdenv.mkDerivation (finalAttrs: {
     wrapQtAppsHook
   ];
 
-  buildInputs = [
-    qtscript
-  ];
+  buildInputs = [ qtscript ];
 
   dontUseQmakeConfigure = true;
 
-  makeFlags = [
-    "PREFIX=${placeholder "out"}"
-  ];
+  makeFlags = [ "PREFIX=${placeholder "out"}" ];
 
   meta = {
     homepage = "https://www.smplayer.info";
@@ -53,7 +51,7 @@ stdenv.mkDerivation (finalAttrs: {
       options of MPlayer, SMPlayer adds other interesting features like the
       possibility to play Youtube videos or download subtitles.
     '';
-    changelog = "https://github.com/smplayer-dev/smplayer/releases/tag/v${finalAttrs.version}";
+    changelog = "https://github.com/smplayer-dev/smplayer/releases/tag/${finalAttrs.src.rev}";
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ AndersonTorres ];
     platforms = lib.platforms.linux;
diff --git a/pkgs/by-name/st/stackit-cli/package.nix b/pkgs/by-name/st/stackit-cli/package.nix
index 1a786eafebe64..9b42ee570840d 100644
--- a/pkgs/by-name/st/stackit-cli/package.nix
+++ b/pkgs/by-name/st/stackit-cli/package.nix
@@ -12,16 +12,16 @@
 
 buildGoModule rec {
   pname = "stackit-cli";
-  version = "0.6.0";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "stackitcloud";
     repo = "stackit-cli";
     rev = "v${version}";
-    hash = "sha256-Rd4kuU1iMCxuNhL0GwAX625hIAv6O2URmP7JTeMduMo";
+    hash = "sha256-grwfljZlXjtNHwf6Zgu/SKC2Agmtj63ixmT6KVBGpiM=";
   };
 
-  vendorHash = "sha256-PRCra/i4n+YvYC+onBYO/uZ8JlyTjibfZsGMM53COcw=";
+  vendorHash = "sha256-VcIPLAiZjO1M+vB9CeilVyFVWKo88isrve2APmCZdN8=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/by-name/st/sttr/package.nix b/pkgs/by-name/st/sttr/package.nix
index a645940a59a3b..7c9256b2ae35c 100644
--- a/pkgs/by-name/st/sttr/package.nix
+++ b/pkgs/by-name/st/sttr/package.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "sttr";
-  version = "0.2.20";
+  version = "0.2.21";
 
   src = fetchFromGitHub {
     owner = "abhimanyu003";
     repo = "sttr";
     rev = "v${version}";
-    hash = "sha256-8xIVLUbqk7bPjDTO2tdU9dGslBEorQusaJSAuFhRZYw=";
+    hash = "sha256-XBg/t2hspKdgkRgU95VLfi74cnA9OZ03x4deFOu+2do=";
   };
 
   vendorHash = "sha256-OuPPK4ordP/yzH+0sCRKO9szJ81LUbvM2Z8U88O6Qwc=";
diff --git a/pkgs/by-name/sy/syft/package.nix b/pkgs/by-name/sy/syft/package.nix
index f2c220b43f569..fdd416c135b07 100644
--- a/pkgs/by-name/sy/syft/package.nix
+++ b/pkgs/by-name/sy/syft/package.nix
@@ -7,13 +7,13 @@
 
 buildGoModule rec {
   pname = "syft";
-  version = "1.4.1";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "anchore";
     repo = "syft";
     rev = "refs/tags/v${version}";
-    hash = "sha256-fFJcRNqXhhdxsxQkP5S8xSeeUOa+KbS9CkUs1sbNuOg=";
+    hash = "sha256-sBV2/2AuKIMgU0oP0p2CukCMYQBSs623vV6BZBTWYqg=";
     # populate values that require us to use git. By doing this in postFetch we
     # can delete .git afterwards and maintain better reproducibility of the src.
     leaveDotGit = true;
@@ -28,7 +28,7 @@ buildGoModule rec {
   # hash mismatch with darwin
   proxyVendor = true;
 
-  vendorHash = "sha256-vuKvQjWMFHtTjTb7Sg/jXvzpR2IxrHaWyfibTQdpSd4=";
+  vendorHash = "sha256-b7iDqobrXbXy1SlyDuHDoSYdbQg3WCcHS0SAVj929qw=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/by-name/te/templ/package.nix b/pkgs/by-name/te/templ/package.nix
index 53fc9775300e1..bbf839f15e59f 100644
--- a/pkgs/by-name/te/templ/package.nix
+++ b/pkgs/by-name/te/templ/package.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "templ";
-  version = "0.2.697";
+  version = "0.2.707";
 
   src = fetchFromGitHub {
     owner = "a-h";
     repo = "templ";
     rev = "v${version}";
-    hash = "sha256-z/sb4AlFOU20sBEAu12VSXqhHQuqvj3mUu7JTvyc1pI=";
+    hash = "sha256-4TkK8zeoWWGmcBg8YwALo2EyKfOyq5ut/3TjG81a+8M=";
   };
 
   vendorHash = "sha256-Fa6bmG0yfbICMfHlM52V+obxoVsQa4VNydIHXS+lGxw=";
diff --git a/pkgs/by-name/te/tenv/package.nix b/pkgs/by-name/te/tenv/package.nix
index 494495c95a695..c0d3e972801c3 100644
--- a/pkgs/by-name/te/tenv/package.nix
+++ b/pkgs/by-name/te/tenv/package.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "tenv";
-  version = "1.11.2";
+  version = "1.11.5";
 
   src = fetchFromGitHub {
     owner = "tofuutils";
     repo = "tenv";
     rev = "v${version}";
-    hash = "sha256-HlAnCmkMLtQWv63BW0pUns76AylZ1RcKN3D6qpMRo5w=";
+    hash = "sha256-GQZQJdhQxg2i61Wiazeag6XBYPmOdQ1nAv5ROJH50ns=";
   };
 
-  vendorHash = "sha256-teog4VJGDOYsABuE2/fvOtcWvC8mM36rJQI6KZb3eS8=";
+  vendorHash = "sha256-OrMCzqqOFQkI8IwcfO/JVPyd/sw+Ud0VySV7UPiucwc=";
 
   # Tests disabled for requiring network access to release.hashicorp.com
   doCheck = false;
diff --git a/pkgs/by-name/ty/typstyle/package.nix b/pkgs/by-name/ty/typstyle/package.nix
index 0a92f4db41b42..f308dc0bff729 100644
--- a/pkgs/by-name/ty/typstyle/package.nix
+++ b/pkgs/by-name/ty/typstyle/package.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "typstyle";
-  version = "0.11.23";
+  version = "0.11.24";
 
   src = fetchFromGitHub {
     owner = "Enter-tainer";
     repo = "typstyle";
     rev = "refs/tags/v${version}";
-    hash = "sha256-42wpXEQdvVgN4aIXUp/t1jnPxqOW9ChxD0YB07PGE5o=";
+    hash = "sha256-FLvbY+0TozOWZ+JTX//psNjle5GxcyeZXzMOf4/s1v0=";
   };
 
-  cargoHash = "sha256-Zp094Hs3850foQ1oGz56qEHY1dDIkXS+iDC7hJlOET0=";
+  cargoHash = "sha256-VA2WNheQltgCaWwtpbEAn2qtlA0fTeEbCjvgkjF+nvw=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/by-name/un/unison-fsmonitor/package.nix b/pkgs/by-name/un/unison-fsmonitor/package.nix
index 6cc8913d3982a..b351071b6d307 100644
--- a/pkgs/by-name/un/unison-fsmonitor/package.nix
+++ b/pkgs/by-name/un/unison-fsmonitor/package.nix
@@ -7,15 +7,15 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "unison-fsmonitor";
-  version = "0.3.3";
+  version = "0.3.4";
 
   src = fetchFromGitHub {
     owner = "autozimu";
     repo = "unison-fsmonitor";
     rev = "v${version}";
-    hash = "sha256-JA0WcHHDNuQOal/Zy3yDb+O3acZN3rVX1hh0rOtRR+8=";
+    hash = "sha256-U/KMKYqYVSeYBmW+PnXtvjnyUTjTJgtpwy1GPefqJOk=";
   };
-  cargoHash = "sha256-aqAa0F1NSJI1nckTjG5C7VLxaLjJgD+9yK/IpclSMqs=";
+  cargoHash = "sha256-eKRayFU3xq2uo6YeFqcTPLInZYlympH6Z01vOCVsVqQ=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.CoreServices
diff --git a/pkgs/by-name/uv/uv/Cargo.lock b/pkgs/by-name/uv/uv/Cargo.lock
index 14ac3d02a94d8..a7b1c73e7ea4f 100644
--- a/pkgs/by-name/uv/uv/Cargo.lock
+++ b/pkgs/by-name/uv/uv/Cargo.lock
@@ -4471,7 +4471,7 @@ checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0"
 
 [[package]]
 name = "uv"
-version = "0.2.3"
+version = "0.2.4"
 dependencies = [
  "anstream",
  "anyhow",
@@ -4496,7 +4496,6 @@ dependencies = [
  "miette",
  "mimalloc",
  "owo-colors",
- "pep440_rs",
  "pep508_rs",
  "platform-tags",
  "predicates",
@@ -5057,7 +5056,7 @@ dependencies = [
 
 [[package]]
 name = "uv-version"
-version = "0.2.3"
+version = "0.2.4"
 
 [[package]]
 name = "uv-virtualenv"
diff --git a/pkgs/by-name/uv/uv/package.nix b/pkgs/by-name/uv/uv/package.nix
index 1e1d4fc100653..0650e2c2551ba 100644
--- a/pkgs/by-name/uv/uv/package.nix
+++ b/pkgs/by-name/uv/uv/package.nix
@@ -16,14 +16,14 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "uv";
-  version = "0.2.3";
+  version = "0.2.4";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "astral-sh";
     repo = "uv";
     rev = "refs/tags/${version}";
-    hash = "sha256-NwIjuOsf6tv+kVEXA2GvQkVwDznZs5fnnkzcnVoOGpY=";
+    hash = "sha256-x0uFBHfH+RXMS67y7NdikqNzXrNVv40HGVV6TVqR5NY=";
   };
 
   cargoDeps = rustPlatform.importCargoLock {
diff --git a/pkgs/by-name/vi/vim-startuptime/package.nix b/pkgs/by-name/vi/vim-startuptime/package.nix
new file mode 100644
index 0000000000000..9dd40ea475585
--- /dev/null
+++ b/pkgs/by-name/vi/vim-startuptime/package.nix
@@ -0,0 +1,39 @@
+{
+  pkgs,
+  lib,
+  buildGoModule,
+  fetchFromGitHub
+}:
+let
+  pname = "vim-startuptime";
+  version = "1.3.2";
+in
+buildGoModule {
+  inherit pname version;
+  ldflags = [
+    "-s"
+    "-w"
+  ];
+
+  src = fetchFromGitHub {
+    owner = "rhysd";
+    repo = "vim-startuptime";
+    rev = "v${version}";
+    hash = "sha256-d6AXTWTUawkBCXCvMs3C937qoRUZmy0qCFdSLcWh0BE=";
+  };
+
+  nativeCheckInputs = with pkgs; [
+    vim
+    neovim
+  ];
+
+  vendorHash = null;
+
+  meta = with lib; {
+    homepage = "https://github.com/rhysd/vim-startuptime";
+    description = "A small Go program for better `vim --startuptime` alternative";
+    maintainers = with maintainers; [ _9yokuro ];
+    license = licenses.mit;
+    mainProgram = "vim-startuptime";
+  };
+}
diff --git a/pkgs/by-name/vi/vinegar/package.nix b/pkgs/by-name/vi/vinegar/package.nix
index 19dd302094435..f77d8127367bc 100644
--- a/pkgs/by-name/vi/vinegar/package.nix
+++ b/pkgs/by-name/vi/vinegar/package.nix
@@ -10,40 +10,66 @@
 , vulkan-headers
 , wine64Packages
 , fetchpatch
+, fetchFromGitLab
+, fetchurl
+,
 }:
 let
-  # wine-staging doesn't support overrideAttrs for now
+  stagingPatch = fetchFromGitLab {
+    sha256 = "sha256-VQ4j4PuXRoXbCUZ16snVO+jRvuKD4Rjn14R7bhwdAco=";
+    domain = "gitlab.winehq.org";
+    owner = "wine";
+    repo = "wine-staging";
+    rev = "v9.2";
+  };
+
   wine = wine64Packages.staging.overrideDerivation (oldAttrs: {
-    patches =
-      (oldAttrs.patches or [])
+    prePatch = ''
+      patchShebangs tools
+      cp -r ${stagingPatch}/patches ${stagingPatch}/staging .
+      chmod +w patches
+      patchShebangs ./patches/gitapply.sh
+      python3 ./staging/patchinstall.py --destdir="$PWD" --all
+    '';
+    patches = (oldAttrs.patches or [ ])
       ++ [
-        # upstream issue: https://bugs.winehq.org/show_bug.cgi?id=55604
-        # Here are the currently applied patches for Roblox to run under WINE:
-        (fetchpatch {
-          name = "vinegar-wine-segregrevert.patch";
-          url = "https://raw.githubusercontent.com/flathub/org.vinegarhq.Vinegar/e24cb9dfa996bcfeaa46504c0375660fe271148d/patches/wine/segregrevert.patch";
-          hash = "sha256-+3Nld81nG3GufI4jAF6yrWfkJmsSCOku39rx0Hov29c=";
-        })
-        (fetchpatch {
-          name = "vinegar-wine-mouselock.patch";
-          url = "https://raw.githubusercontent.com/flathub/org.vinegarhq.Vinegar/e24cb9dfa996bcfeaa46504c0375660fe271148d/patches/wine/mouselock.patch";
-          hash = "sha256-0AGA4AQbxTL5BGVbm072moav7xVA3zpotYqM8pcEDa4=";
-        })
-      ];
+      (fetchurl {
+        name = "childwindow.patch";
+        hash = "sha256-u3mDvlbhQnfh2tUKb8jNJA0tTcLIaKVLfY8ktJmeRns=";
+        url = "https://raw.githubusercontent.com/flathub/org.vinegarhq.Vinegar/9f43ce33a691afb50562d95adfc6719a3b58ddb7/patches/wine/childwindow.patch";
+      })
+      (fetchpatch {
+        name = "mouselock.patch";
+        hash = "sha256-0AGA4AQbxTL5BGVbm072moav7xVA3zpotYqM8pcEDa4=";
+        url = "https://raw.githubusercontent.com/flathub/org.vinegarhq.Vinegar/9f43ce33a691afb50562d95adfc6719a3b58ddb7/patches/wine/mouselock.patch";
+      })
+      (fetchpatch {
+        name = "segregrevert.patch";
+        hash = "sha256-+3Nld81nG3GufI4jAF6yrWfkJmsSCOku39rx0Hov29c=";
+        url = "https://raw.githubusercontent.com/flathub/org.vinegarhq.Vinegar/9f43ce33a691afb50562d95adfc6719a3b58ddb7/patches/wine/segregrevert.patch";
+      })
+    ];
+    src = fetchFromGitLab rec {
+      sha256 = "sha256-GlPH34dr9aHx7xvlcbtDMn/wrY//DP58ilXjhQXgihQ=";
+      domain = "gitlab.winehq.org";
+      owner = "wine";
+      repo = "wine";
+      rev = "wine-9.2";
+    };
   });
 in
 buildGoModule rec {
   pname = "vinegar";
-  version = "1.7.3";
+  version = "1.7.4";
 
   src = fetchFromGitHub {
     owner = "vinegarhq";
     repo = "vinegar";
     rev = "v${version}";
-    hash = "sha256-aKL+4jw/uMbbvLRCBHstCTrcQ1PTYSCwMNgXTvSvMeY=";
+    hash = "sha256-4tkcrUzW8la5WiDtGUvvsRzFqZM1gqnWWAzXc82hirM=";
   };
 
-  vendorHash = "sha256-OaMfWecOPQh6quXjYkZLyBDHZ9TINSA7Ue/Y0sz5ZYY=";
+  vendorHash = "sha256-pi9FjKYXH8cqTx2rTRCyT4+pOM5HnIKosEcmcpbuywQ=";
 
   nativeBuildInputs = [ pkg-config makeBinaryWrapper ];
   buildInputs = [ libGL libxkbcommon xorg.libX11 xorg.libXcursor xorg.libXfixes wayland vulkan-headers wine ];
diff --git a/pkgs/by-name/wa/wayfreeze/package.nix b/pkgs/by-name/wa/wayfreeze/package.nix
new file mode 100644
index 0000000000000..41be346327b6d
--- /dev/null
+++ b/pkgs/by-name/wa/wayfreeze/package.nix
@@ -0,0 +1,33 @@
+{
+  lib,
+  fetchFromGitHub,
+  rustPlatform,
+  libxkbcommon
+}:
+
+rustPlatform.buildRustPackage {
+  pname = "wayfreeze";
+  version = "0-unstable-2024-05-23";
+
+  src = fetchFromGitHub {
+    owner = "Jappie3";
+    repo = "wayfreeze";
+    rev = "069dea0b832bd5b7a7872a57bd53f51cd377f206";
+    hash = "sha256-3btFzZbkHT6kBBA3M7OwFsD710VpMiHSXIpHmvCD/es=";
+  };
+
+  cargoHash = "sha256-3OjZhWAgfmMZ0OGeRawk3KZpPqz1QCVkwsyGM+E7o88=";
+
+  buildInputs = [
+    libxkbcommon
+  ];
+
+  meta = with lib; {
+    description = "A tool to freeze the screen of a Wayland compositor";
+    homepage = "https://github.com/Jappie3/wayfreeze";
+    license = licenses.agpl3Only;
+    maintainers = with lib.maintainers; [ purrpurrn ];
+    mainProgram = "wayfreeze";
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/wi/wiper/package.nix b/pkgs/by-name/wi/wiper/package.nix
new file mode 100644
index 0000000000000..3eb069de236a1
--- /dev/null
+++ b/pkgs/by-name/wi/wiper/package.nix
@@ -0,0 +1,34 @@
+{
+  lib,
+  stdenv,
+  darwin,
+  rustPlatform,
+  fetchFromGitHub,
+}:
+let
+  version = "0.2.1";
+in
+rustPlatform.buildRustPackage {
+  pname = "wiper";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "ikebastuz";
+    repo = "wiper";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-IheSAPk1l6wJ2v4RLPIPvY/5XMfh+vJLyQ/Lc7RrCJQ=";
+  };
+
+  cargoHash = "sha256-gYWTv0AXOmpx9Nc8akBMVWkESI0AtnGgvfH9hQZ0peo=";
+
+  buildInputs = lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Foundation ];
+
+  meta = {
+    description = "Disk analyser and cleanup tool";
+    changelog = "https://github.com/ikebastuz/wiper/releases/tag/v${version}";
+    homepage = "https://github.com/ikebastuz/wiper";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ isabelroses ];
+    mainProgram = "wiper";
+  };
+}
diff --git a/pkgs/by-name/wl/wldash/0001-Update-Cargo.lock.patch b/pkgs/by-name/wl/wldash/0001-Update-Cargo.lock.patch
new file mode 100644
index 0000000000000..a699d19c1398a
--- /dev/null
+++ b/pkgs/by-name/wl/wldash/0001-Update-Cargo.lock.patch
@@ -0,0 +1,25 @@
+From 2538e41f001fa363d3459efe3b8102a354b06dd0 Mon Sep 17 00:00:00 2001
+From: Kenny Levinsen <kl@kl.wtf>
+Date: Sun, 16 Jan 2022 23:16:30 +0100
+Subject: [PATCH 1/2] Update Cargo.lock
+
+---
+ Cargo.lock | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Cargo.lock b/Cargo.lock
+index 3da9a07..1ad4a86 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -796,7 +796,7 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+ 
+ [[package]]
+ name = "wldash"
+-version = "0.2.0"
++version = "0.3.0"
+ dependencies = [
+  "alsa",
+  "bitflags",
+-- 
+2.44.0
+
diff --git a/pkgs/by-name/wl/wldash/0002-Update-fontconfig.patch b/pkgs/by-name/wl/wldash/0002-Update-fontconfig.patch
new file mode 100644
index 0000000000000..b4bc177249665
--- /dev/null
+++ b/pkgs/by-name/wl/wldash/0002-Update-fontconfig.patch
@@ -0,0 +1,112 @@
+From b2ae30bab412472f1d2ff90439134a8a465fdf9a Mon Sep 17 00:00:00 2001
+From: Kenny Levinsen <kl@kl.wtf>
+Date: Mon, 2 May 2022 11:21:47 +0200
+Subject: [PATCH 2/2] Update fontconfig
+
+---
+ Cargo.lock | 38 +++++++++++++++++++++++++++++---------
+ Cargo.toml |  2 +-
+ 2 files changed, 30 insertions(+), 10 deletions(-)
+
+diff --git a/Cargo.lock b/Cargo.lock
+index 1ad4a86..6821181 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -137,7 +137,16 @@ version = "0.4.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "b11f15d1e3268f140f68d390637d5e76d849782d971ae7063e0da69fe9709a76"
+ dependencies = [
+- "libloading",
++ "libloading 0.6.7",
++]
++
++[[package]]
++name = "dlib"
++version = "0.5.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ac1b7517328c04c2aa68422fc60a41b92208182142ed04a25879c26c8f878794"
++dependencies = [
++ "libloading 0.7.3",
+ ]
+ 
+ [[package]]
+@@ -166,9 +175,9 @@ checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed"
+ 
+ [[package]]
+ name = "fontconfig"
+-version = "0.2.0"
++version = "0.5.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a5570e7ce35ffb621b31934530c4b3b8ce9fdd8bf8436e98f9c7ebadff2ef259"
++checksum = "a25320ad784a9578ada0b395dd7dcd2321109404bbb341ec27e64b01a1e49b47"
+ dependencies = [
+  "yeslogic-fontconfig-sys",
+ ]
+@@ -237,6 +246,16 @@ dependencies = [
+  "winapi",
+ ]
+ 
++[[package]]
++name = "libloading"
++version = "0.7.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd"
++dependencies = [
++ "cfg-if 1.0.0",
++ "winapi",
++]
++
+ [[package]]
+ name = "libpulse-binding"
+ version = "2.23.0"
+@@ -398,9 +417,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "once_cell"
+-version = "1.5.2"
++version = "1.10.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "13bd41f508810a131401606d54ac32a467c97172d74ba7662562ebba5ad07fa0"
++checksum = "87f3e037eac156d1775da914196f0f37741a274155e34a0b7e427c35d2a2ecb9"
+ 
+ [[package]]
+ name = "opaque-debug"
+@@ -803,7 +822,7 @@ dependencies = [
+  "byteorder",
+  "chrono",
+  "dbus",
+- "dlib",
++ "dlib 0.4.2",
+  "fontconfig",
+  "fuzzy-matcher",
+  "itertools",
+@@ -843,11 +862,12 @@ dependencies = [
+ 
+ [[package]]
+ name = "yeslogic-fontconfig-sys"
+-version = "2.11.1"
++version = "3.0.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "e194a0c5cd1b5c87215eed9d26aca9799fa1b599fe2e178977d6f8ccc812e3d3"
++checksum = "cb3f5a91c31bef6650d3a1b69192b4217fd88e4cfedc8101813e4dc3394ecbb8"
+ dependencies = [
+  "const-cstr",
+- "libc",
++ "dlib 0.5.0",
++ "once_cell",
+  "pkg-config",
+ ]
+diff --git a/Cargo.toml b/Cargo.toml
+index abb3807..691daa7 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -46,5 +46,5 @@ serde_yaml = { version = "0.8", optional = true }
+ 
+ libpulse-binding = { version = "2.22", optional = true }
+ alsa = { version = "0.4.0", optional = true }
+-fontconfig = "0.2.0"
++fontconfig = "0.5.0"
+ unicode-segmentation = "1.6.0"
+-- 
+2.44.0
+
diff --git a/pkgs/by-name/wl/wldash/package.nix b/pkgs/by-name/wl/wldash/package.nix
new file mode 100644
index 0000000000000..ab45f201e8e63
--- /dev/null
+++ b/pkgs/by-name/wl/wldash/package.nix
@@ -0,0 +1,77 @@
+{
+  lib,
+  alsa-lib,
+  dbus,
+  fetchFromGitHub,
+  fontconfig,
+  libffi,
+  libpulseaudio,
+  libxkbcommon,
+  pkg-config,
+  rustPlatform,
+  wayland,
+  enableAlsaWidget ? true,
+  enablePulseaudioWidget ? true,
+}:
+
+let
+  pname = "wldash";
+  version = "0.3.0";
+  libraryPath = lib.makeLibraryPath [
+    wayland
+    libxkbcommon
+  ];
+in
+rustPlatform.buildRustPackage {
+  inherit pname version;
+
+  buildNoDefaultFeatures = true;
+  buildFeatures =
+    [
+      "yaml-cfg"
+      "json-cfg"
+    ]
+    ++ lib.optionals enableAlsaWidget [ "alsa-widget" ]
+    ++ lib.optionals enablePulseaudioWidget [ "pulseaudio-widget" ];
+
+  src = fetchFromGitHub {
+    owner = "kennylevinsen";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-ZzsBD3KKTT+JGiFCpdumPyVAE2gEJvzCq+nRnK3RdxI=";
+  };
+
+  strictDeps = true;
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs =
+    [
+      dbus
+      fontconfig
+    ]
+    ++ lib.optionals enableAlsaWidget [ alsa-lib ]
+    ++ lib.optionals enablePulseaudioWidget [ libpulseaudio ];
+
+  cargoPatches = [
+    ./0001-Update-Cargo.lock.patch
+    ./0002-Update-fontconfig.patch
+  ];
+
+  cargoSha256 = "sha256-Y7nhj8VpO6sEzVkM3uPv8Tlk2jPn3c/uPJqFc/HjHI0=";
+
+  dontPatchELF = true;
+
+  postInstall = ''
+    patchelf --set-rpath ${libraryPath}:$(patchelf --print-rpath $out/bin/wldash) $out/bin/wldash
+  '';
+
+  meta = {
+    description = "Wayland launcher/dashboard";
+    homepage = "https://github.com/kennylevinsen/wldash";
+    license = lib.licenses.gpl3;
+    maintainers = with lib.maintainers; [ bbenno ];
+    mainProgram = "wldash";
+    platforms = lib.platforms.linux;
+    sourceProvenance = with lib.sourceTypes; [ fromSource ];
+  };
+}
diff --git a/pkgs/by-name/zs/zsh-wd/package.nix b/pkgs/by-name/zs/zsh-wd/package.nix
new file mode 100644
index 0000000000000..c55830b655c2f
--- /dev/null
+++ b/pkgs/by-name/zs/zsh-wd/package.nix
@@ -0,0 +1,37 @@
+{ lib, stdenvNoCC, fetchFromGitHub, installShellFiles }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "wd";
+  version = "0.7.0";
+
+  src = fetchFromGitHub {
+    owner = "mfaerevaag";
+    repo = "wd";
+    rev = "v${version}";
+    sha256 = "sha256-u3n+JzInv8VajWAFXECuEOWuQurX8iWklwV2LG4Tj24=";
+  };
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  installPhase = ''
+    install -Dm755 wd.plugin.zsh $out/share/wd/wd.plugin.zsh
+    install -Dm755 wd.sh $out/share/wd/wd.sh
+    installManPage wd.1
+    installShellCompletion --zsh _wd.sh
+  '';
+
+  meta = with lib; {
+    description = "Jump to custom directories in zsh";
+    longDescription = ''
+      `wd` (warp directory) lets you jump to custom directories in zsh, without
+      using `cd`. Why? Because `cd` seems inefficient when the folder is
+      frequently visited or has a long path.
+    '';
+    homepage = "https://github.com/mfaerevaag/wd";
+    changelog = "https://github.com/mfaerevaag/wd/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = [ maintainers.zimeg ];
+    mainProgram = "wd";
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/data/fonts/monocraft/default.nix b/pkgs/data/fonts/monocraft/default.nix
index c1e4be656ce15..3af786b6da8e7 100644
--- a/pkgs/data/fonts/monocraft/default.nix
+++ b/pkgs/data/fonts/monocraft/default.nix
@@ -1,13 +1,13 @@
-{ stdenv, lib, fetchurl }:
+{ stdenvNoCC, lib, fetchurl }:
 
 let
-  version = "2.4";
+  version = "3.0";
   relArtifact = name: hash: fetchurl {
     inherit name hash;
     url = "https://github.com/IdreesInc/Monocraft/releases/download/v${version}/${name}";
   };
 in
-stdenv.mkDerivation {
+stdenvNoCC.mkDerivation {
   pname = "monocraft";
   inherit version;
 
@@ -18,16 +18,14 @@ stdenv.mkDerivation {
     (relArtifact "Monocraft-nerd-fonts-patched.ttf" "sha256-QxMp8UwcRjWySNHWoNeX2sX9teZ4+tCFj+DG41azsXw=")
   ];
 
-  sourceRoot = ".";
-  unpackCmd = ''cp "$curSrc" $(basename $curSrc)'';
-
+  dontUnpack = true;
   dontConfigure = true;
   dontBuild = true;
 
   installPhase = ''
     runHook preInstall
-    install -Dm644 -t $out/share/fonts/opentype *.otf
-    install -Dm644 -t $out/share/fonts/truetype *.ttf
+    find $srcs -name '*.otf' -exec install -Dm644 --target $out/share/fonts/opentype {} +
+    find $srcs -name '*.ttf' -exec install -Dm644 --target $out/share/fonts/truetype {} +
     runHook postInstall
   '';
 
diff --git a/pkgs/data/icons/whitesur-icon-theme/default.nix b/pkgs/data/icons/whitesur-icon-theme/default.nix
index 70f5357a89f84..588389f856ed2 100644
--- a/pkgs/data/icons/whitesur-icon-theme/default.nix
+++ b/pkgs/data/icons/whitesur-icon-theme/default.nix
@@ -27,13 +27,13 @@ lib.checkListOfEnum "${pname}: theme variants" [
 
 stdenvNoCC.mkDerivation rec {
   inherit pname;
-  version = "2024-04-22";
+  version = "2024-05-28";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
     rev = version;
-    hash = "sha256-CnAnD5ky+LNcyE59O/iGeoe+1JyhtPM/XUHwU5d8FA4=";
+    hash = "sha256-60pz/ET3jorEui31Aq6I3LMTz0djwWUv7poEI0USzJw=";
   };
 
   nativeBuildInputs = [ gtk3 jdupes ];
diff --git a/pkgs/data/themes/kwin-decorations/kde-rounded-corners/default.nix b/pkgs/data/themes/kwin-decorations/kde-rounded-corners/default.nix
index e7b5f13e6a7a6..59ba5a80b3db6 100644
--- a/pkgs/data/themes/kwin-decorations/kde-rounded-corners/default.nix
+++ b/pkgs/data/themes/kwin-decorations/kde-rounded-corners/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "kde-rounded-corners";
-  version = "0.6.5";
+  version = "0.6.6";
 
   src = fetchFromGitHub {
     owner = "matinlotfali";
     repo = "KDE-Rounded-Corners";
     rev = "v${version}";
-    hash = "sha256-g7gNFv4/ighfxYz/VXF5KvcoT6t4lT5soDLlV3oAKvc=";
+    hash = "sha256-pmUuYD0RPyF5I2p5MBErziehBrfc5MswQVvfwl4ozg8=";
   };
 
   nativeBuildInputs = [ cmake extra-cmake-modules wrapQtAppsHook ];
diff --git a/pkgs/desktops/deepin/go-package/dde-daemon/default.nix b/pkgs/desktops/deepin/go-package/dde-daemon/default.nix
index 4a63b779c4c5d..14fe7c03c3e38 100644
--- a/pkgs/desktops/deepin/go-package/dde-daemon/default.nix
+++ b/pkgs/desktops/deepin/go-package/dde-daemon/default.nix
@@ -64,23 +64,26 @@ buildGoModule rec {
 
   postPatch = ''
     substituteInPlace session/eventlog/{app_event.go,login_event.go} \
-      --replace "/bin/bash" "${runtimeShell}"
+      --replace-fail "/bin/bash" "${runtimeShell}"
 
     substituteInPlace inputdevices/layout_list.go \
-      --replace "/usr/share/X11/xkb" "${xkeyboard_config}/share/X11/xkb"
+      --replace-fail "/usr/share/X11/xkb" "${xkeyboard_config}/share/X11/xkb"
 
-    substituteInPlace bin/dde-system-daemon/wallpaper.go accounts1/user.go \
-      --replace "/usr/share/wallpapers" "/run/current-system/sw/share/wallpapers"
+    substituteInPlace accounts1/user.go \
+      --replace-fail "/usr/share/wallpapers" "/run/current-system/sw/share/wallpapers"
 
     substituteInPlace timedate1/zoneinfo/zone.go \
-      --replace "/usr/share/dde" "$out/share/dde" \
-      --replace "/usr/share/zoneinfo" "${tzdata}/share/zoneinfo"
+      --replace-fail "/usr/share/dde" "$out/share/dde" \
+      --replace-fail "/usr/share/zoneinfo" "${tzdata}/share/zoneinfo"
 
     substituteInPlace accounts1/image_blur.go grub2/modify_manger.go \
-      --replace "/usr/lib/deepin-api" "/run/current-system/sw/lib/deepin-api"
+      --replace-fail "/usr/lib/deepin-api" "/run/current-system/sw/lib/deepin-api"
 
     substituteInPlace accounts1/user_chpwd_union_id.go \
-      --replace "/usr/lib/dde-control-center" "/run/current-system/sw/lib/dde-control-center"
+      --replace-fail "/usr/lib/dde-control-center" "/run/current-system/sw/lib/dde-control-center"
+
+    substituteInPlace system/uadp1/crypto.go \
+      --replace-fail "/usr/share/uadp" "/var/lib/dde-daemon/uadp"
 
     for file in $(grep "/usr/lib/deepin-daemon" * -nR |awk -F: '{print $1}')
     do
diff --git a/pkgs/desktops/deepin/library/dtk6core/default.nix b/pkgs/desktops/deepin/library/dtk6core/default.nix
index d86bebdea1d83..8acd1aa986868 100644
--- a/pkgs/desktops/deepin/library/dtk6core/default.nix
+++ b/pkgs/desktops/deepin/library/dtk6core/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , lib
 , fetchFromGitHub
+, fetchpatch
 , cmake
 , pkg-config
 , doxygen
@@ -27,6 +28,11 @@ stdenv.mkDerivation (finalAttrs: {
   patches = [
     ./fix-pkgconfig-path.patch
     ./fix-pri-path.patch
+    (fetchpatch {
+      name = "fix-build-on-qt-6_7_1.patch";
+      url = "https://github.com/linuxdeepin/dtkcore/commit/10bd3842bbde41fbc61c35b81d280075d053119b.patch";
+      hash = "sha256-xZ3BhiMB6S5NJtPUEjtChCB9Jr1BI0mu7AMjyNMqt9w=";
+    })
   ];
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/apps/file-roller/default.nix b/pkgs/desktops/gnome/apps/file-roller/default.nix
index 27c189af64cb6..3c6cb7264dc3a 100644
--- a/pkgs/desktops/gnome/apps/file-roller/default.nix
+++ b/pkgs/desktops/gnome/apps/file-roller/default.nix
@@ -26,11 +26,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "file-roller";
-  version = "44.2";
+  version = "44.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/file-roller/${lib.versions.major finalAttrs.version}/file-roller-${finalAttrs.version}.tar.xz";
-    hash = "sha256-LFcXzn8F+6sTyEe2zjGxsCSIYfp6uPD/Hx4dRdHizfk=";
+    hash = "sha256-BMinRiX+yEJn/exAMGr7QQS9My2FBh4NNtSrBTOt+ko=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/apps/gnome-maps/default.nix b/pkgs/desktops/gnome/apps/gnome-maps/default.nix
index 99815109624c8..074c40e691f94 100644
--- a/pkgs/desktops/gnome/apps/gnome-maps/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-maps/default.nix
@@ -29,11 +29,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gnome-maps";
-  version = "46.10";
+  version = "46.11";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-maps/${lib.versions.major finalAttrs.version}/gnome-maps-${finalAttrs.version}.tar.xz";
-    hash = "sha256-XyXul6DC/t+E8M8DkrTvi+GT4/bOJfl1RntvzsBUIa8=";
+    hash = "sha256-lAtBuXQLCBMyXjkWdYcWz4+g7k4MkZHyYM7AbZITWDU=";
   };
 
   doCheck = !stdenv.isDarwin;
diff --git a/pkgs/desktops/gnome/core/evince/default.nix b/pkgs/desktops/gnome/core/evince/default.nix
index daf912e2a7c1f..a9192f33d000a 100644
--- a/pkgs/desktops/gnome/core/evince/default.nix
+++ b/pkgs/desktops/gnome/core/evince/default.nix
@@ -40,15 +40,15 @@
 , withLibsecret ? true
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "evince";
-  version = "46.1";
+  version = "46.3";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
-    url = "mirror://gnome/sources/evince/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    hash = "sha256-lLtSU2WwYKKML2AX0iy/KvURVQclSqQum/wAC7wYq2I=";
+    url = "mirror://gnome/sources/evince/${lib.versions.major finalAttrs.version}/evince-${finalAttrs.version}.tar.xz";
+    hash = "sha256-vA0dQbnX/8di6Z0qv6+sv3RRgvCzHYbbXuyMZ/XzAGs=";
   };
 
   depsBuildBuild = [
@@ -121,7 +121,7 @@ stdenv.mkDerivation rec {
 
   passthru = {
     updateScript = gnome.updateScript {
-      packageName = pname;
+      packageName = "evince";
     };
   };
 
@@ -141,4 +141,4 @@ stdenv.mkDerivation rec {
     mainProgram = "evince";
     maintainers = teams.gnome.members ++ teams.pantheon.members;
   };
-}
+})
diff --git a/pkgs/desktops/gnome/core/gnome-control-center/default.nix b/pkgs/desktops/gnome/core/gnome-control-center/default.nix
index b3b5d2594d219..338fa59a2a80d 100644
--- a/pkgs/desktops/gnome/core/gnome-control-center/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-control-center/default.nix
@@ -28,6 +28,7 @@
 , gst_all_1
 , gtk4
 , ibus
+, json-glib
 , libgtop
 , libgudev
 , libadwaita
@@ -122,6 +123,7 @@ stdenv.mkDerivation (finalAttrs: {
     gsound
     gtk4
     ibus
+    json-glib
     libepoxy
     libgtop
     libgudev
diff --git a/pkgs/desktops/gnome/core/gnome-initial-setup/default.nix b/pkgs/desktops/gnome/core/gnome-initial-setup/default.nix
index 055c811263dbe..19280b1bff927 100644
--- a/pkgs/desktops/gnome/core/gnome-initial-setup/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-initial-setup/default.nix
@@ -34,13 +34,13 @@
 , gsettings-desktop-schemas
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "gnome-initial-setup";
-  version = "46.0";
+  version = "46.2";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    hash = "sha256-+O6dzqfjXnNeqjvI0QQdBrtk6/HhBG5ejkjx+0QVGEc=";
+    url = "mirror://gnome/sources/gnome-initial-setup/${lib.versions.major finalAttrs.version}/gnome-initial-setup-${finalAttrs.version}.tar.xz";
+    hash = "sha256-bHktiSrbYLDeC33oglwUlD0c0nmvT5x2So9UEbYKjyc=";
   };
 
   patches = [
@@ -94,8 +94,8 @@ stdenv.mkDerivation rec {
 
   passthru = {
     updateScript = gnome.updateScript {
-      packageName = pname;
-      attrPath = "gnome.${pname}";
+      packageName = "gnome-initial-setup";
+      attrPath = "gnome.gnome-initial-setup";
     };
   };
 
@@ -106,4 +106,4 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     maintainers = teams.gnome.members;
   };
-}
+})
diff --git a/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix b/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix
index abd6d2102679a..e7a70f2369e41 100644
--- a/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix
@@ -30,11 +30,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-remote-desktop";
-  version = "46.1";
+  version = "46.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    hash = "sha256-fGKkKB/fqVIhEK/7910JlzA18q3H+kV3UR1zMYa+to8=";
+    hash = "sha256-l0Q+r/5LGmliaIakHSXL6ywUjT/tQ9khFcG30g1SOKs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix b/pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix
index 2fd711266938b..9887f7f11c522 100644
--- a/pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix
@@ -13,11 +13,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gnome-shell-extensions";
-  version = "46.1";
+  version = "46.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-shell-extensions/${lib.versions.major finalAttrs.version}/gnome-shell-extensions-${finalAttrs.version}.tar.xz";
-    hash = "sha256-xbpQcA2nephvAGC+7az8AX5+yCKD8qY4SEKggHvEVT8=";
+    hash = "sha256-1ELp0mklEl/yFaXBNCkElWVTgHQdqvuzejqZ1vDH2G8=";
   };
 
   patches = [
diff --git a/pkgs/desktops/gnome/core/gnome-shell/default.nix b/pkgs/desktops/gnome/core/gnome-shell/default.nix
index 7b94533f7b602..3f91cddc20525 100644
--- a/pkgs/desktops/gnome/core/gnome-shell/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-shell/default.nix
@@ -66,13 +66,13 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "gnome-shell";
-  version = "46.1";
+  version = "46.2";
 
   outputs = [ "out" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-shell/${lib.versions.major finalAttrs.version}/gnome-shell-${finalAttrs.version}.tar.xz";
-    hash = "sha256-ZPmZhEwQHmO/KU1FsTjeVjGa0vMmKCchqtD6hgZTs2k=";
+    hash = "sha256-a1hxAcBL+zZKsJzTi12T6+60JUdUyAfPcS+8juP94jg=";
   };
 
   patches = [
@@ -102,13 +102,6 @@ stdenv.mkDerivation (finalAttrs: {
       url = "https://src.fedoraproject.org/rpms/gnome-shell/raw/dcd112d9708954187e7490564c2229d82ba5326f/f/0001-gdm-Work-around-failing-fingerprint-auth.patch";
       hash = "sha256-mgXty5HhiwUO1UV3/eDgWtauQKM0cRFQ0U7uocST25s=";
     })
-
-    # screencast: Correct expected bus name for streams
-    # https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3303
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/gnome-shell/-/commit/50a011a19dcc6997ea6173c07bb80b2d9888d363.patch";
-      hash = "sha256-ccEpdWgDxwnj7ouzFekpoln5Y2PtgRikWetwK+0U9Fg=";
-    })
   ];
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/core/gnome-software/default.nix b/pkgs/desktops/gnome/core/gnome-software/default.nix
index 43adcd092ffb1..bca1ea13b5e3e 100644
--- a/pkgs/desktops/gnome/core/gnome-software/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-software/default.nix
@@ -43,13 +43,13 @@ let
   withFwupd = stdenv.hostPlatform.isx86;
 in
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "gnome-software";
-  version = "46.1";
+  version = "46.2";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-software/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    hash = "sha256-tu63iRAN6UtQ6+Lnfxaya+TC2xVImQXxmNBgxCXhkHY=";
+    url = "mirror://gnome/sources/gnome-software/${lib.versions.major finalAttrs.version}/gnome-software-${finalAttrs.version}.tar.xz";
+    hash = "sha256-5wDLood2T14iVVFOMS4WBVD9v3pdP+FjWLtve2cyuXQ=";
   };
 
   patches = [
@@ -110,7 +110,7 @@ stdenv.mkDerivation rec {
 
   passthru = {
     updateScript = gnome.updateScript {
-      packageName = pname;
+      packageName = "gnome-software";
       attrPath = "gnome.gnome-software";
     };
   };
@@ -123,4 +123,4 @@ stdenv.mkDerivation rec {
     maintainers = teams.gnome.members;
     platforms = platforms.linux;
   };
-}
+})
diff --git a/pkgs/desktops/gnome/core/gnome-terminal/default.nix b/pkgs/desktops/gnome/core/gnome-terminal/default.nix
index 7b3306df57193..89448159287e4 100644
--- a/pkgs/desktops/gnome/core/gnome-terminal/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-terminal/default.nix
@@ -27,16 +27,16 @@
 , nixosTests
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "gnome-terminal";
-  version = "3.52.1";
+  version = "3.52.2";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "GNOME";
     repo = "gnome-terminal";
-    rev = version;
-    hash = "sha256-npoQfe5+HTn7CsrW6MuOoiYBc3rYMAMv4apC6dFR8O4=";
+    rev = finalAttrs.version;
+    hash = "sha256-c6xMUyhQnJiIrFnnUEx6vGVvFghGvLjTxiAFq+nSj2A=";
   };
 
   nativeBuildInputs = [
@@ -94,4 +94,4 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = teams.gnome.members;
   };
-}
+})
diff --git a/pkgs/desktops/gnome/core/gucharmap/default.nix b/pkgs/desktops/gnome/core/gucharmap/default.nix
index 2d0dd7553965f..17f8465f380bf 100644
--- a/pkgs/desktops/gnome/core/gucharmap/default.nix
+++ b/pkgs/desktops/gnome/core/gucharmap/default.nix
@@ -43,9 +43,9 @@ let
       unicode-character-database
     ];
   };
-in stdenv.mkDerivation rec {
+in stdenv.mkDerivation (finalAttrs: {
   pname = "gucharmap";
-  version = "15.1.2";
+  version = "15.1.5";
 
   outputs = [ "out" "lib" "dev" "devdoc" ];
 
@@ -53,8 +53,8 @@ in stdenv.mkDerivation rec {
     domain = "gitlab.gnome.org";
     owner = "GNOME";
     repo = "gucharmap";
-    rev = version;
-    sha256 = "sha256-tvFw2k5xCl+QE6cHvLj5KKdYFSghN7PVgHPmd27wh7k=";
+    rev = finalAttrs.version;
+    sha256 = "sha256-PG86D8QvqHdmo3aJseCerngmuWUqtSMdWzbixWE2HOQ=";
   };
 
   strictDeps = true;
@@ -107,8 +107,8 @@ in stdenv.mkDerivation rec {
     description = "GNOME Character Map, based on the Unicode Character Database";
     mainProgram = "gucharmap";
     homepage = "https://gitlab.gnome.org/GNOME/gucharmap";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     maintainers = teams.gnome.members;
     platforms = platforms.linux;
   };
-}
+})
diff --git a/pkgs/desktops/gnome/core/mutter/default.nix b/pkgs/desktops/gnome/core/mutter/default.nix
index 0efd14124a371..19ba5f1924ccd 100644
--- a/pkgs/desktops/gnome/core/mutter/default.nix
+++ b/pkgs/desktops/gnome/core/mutter/default.nix
@@ -10,7 +10,6 @@
 , colord
 , lcms2
 , pango
-, json-glib
 , libstartup_notification
 , libcanberra
 , ninja
@@ -59,7 +58,6 @@
 , sysprof
 , libsysprof-capture
 , desktop-file-utils
-, libcap_ng
 , egl-wayland
 , graphene
 , wayland
@@ -68,13 +66,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "mutter";
-  version = "46.1";
+  version = "46.2";
 
   outputs = [ "out" "dev" "man" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/mutter/${lib.versions.major finalAttrs.version}/mutter-${finalAttrs.version}.tar.xz";
-    hash = "sha256-Y7JmDdD6GT+mYsgO4S64sW8rjDvDiWNmIAx5lDgk1R0=";
+    hash = "sha256-AJuqd/g2JhLKouGMM4obPIqtO1/ilkwv73gk0yEiiYM=";
   };
 
   mesonFlags = [
@@ -91,9 +89,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   propagatedBuildInputs = [
-    # required for pkg-config to detect mutter-clutter
-    json-glib
-    libcap_ng
+    # required for pkg-config to detect mutter-mtk
     graphene
   ];
 
diff --git a/pkgs/desktops/gnome/core/nautilus/default.nix b/pkgs/desktops/gnome/core/nautilus/default.nix
index 063914060dfee..874190417a3c5 100644
--- a/pkgs/desktops/gnome/core/nautilus/default.nix
+++ b/pkgs/desktops/gnome/core/nautilus/default.nix
@@ -38,13 +38,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "nautilus";
-  version = "46.1";
+  version = "46.2";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/nautilus/${lib.versions.major finalAttrs.version}/nautilus-${finalAttrs.version}.tar.xz";
-    hash = "sha256-zBpf3x3XL5Lp4/PHrSY3CaDeU5Golb6TRPamf0OIe9c=";
+    hash = "sha256-bujJkBm540R/aRjWgjKiDeyonlUlwFgFQyt9iEDKcfo=";
   };
 
   patches = [
diff --git a/pkgs/desktops/gnome/core/rygel/default.nix b/pkgs/desktops/gnome/core/rygel/default.nix
index 9cc4e1ee8d71a..10e805371398b 100644
--- a/pkgs/desktops/gnome/core/rygel/default.nix
+++ b/pkgs/desktops/gnome/core/rygel/default.nix
@@ -26,16 +26,16 @@
 , gnome
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "rygel";
-  version = "0.42.5";
+  version = "0.42.6";
 
   # TODO: split out lib
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "ETNgLS5nEKreayKqmNkzhMjVY5bzRHY0E+luARC32J8=";
+    url = "mirror://gnome/sources/rygel/${lib.versions.majorMinor finalAttrs.version}/rygel-${finalAttrs.version}.tar.xz";
+    sha256 = "R9JXBLYQiDdeJqq6Vr5HwXGJRy5vgMdSq+hvAu9OMwQ=";
   };
 
   patches = [
@@ -92,8 +92,8 @@ stdenv.mkDerivation rec {
 
   passthru = {
     updateScript = gnome.updateScript {
-      packageName = pname;
-      attrPath = "gnome.${pname}";
+      packageName = "rygel";
+      attrPath = "gnome.rygel";
       versionPolicy = "odd-unstable";
     };
   };
@@ -105,4 +105,4 @@ stdenv.mkDerivation rec {
     maintainers = teams.gnome.members;
     platforms = platforms.linux;
   };
-}
+})
diff --git a/pkgs/desktops/gnome/extensions/extensionOverrides.nix b/pkgs/desktops/gnome/extensions/extensionOverrides.nix
index 22eff684afc4d..28e451e47eb26 100644
--- a/pkgs/desktops/gnome/extensions/extensionOverrides.nix
+++ b/pkgs/desktops/gnome/extensions/extensionOverrides.nix
@@ -15,8 +15,6 @@
 , netcat-gnu
 , nvme-cli
 , procps
-, pulseaudio
-, python3
 , smartmontools
 , substituteAll
 , touchegg
@@ -107,19 +105,20 @@ super: lib.trivial.pipe super [
     ];
   }))
 
-  (patchExtension "mullvadindicator@pobega.github.com" (old: {
+  (patchExtension "pano@elhan.io" (old: {
     patches = [
-      # Patch from https://github.com/Pobega/gnome-shell-extension-mullvad-indicator/pull/36
-      # tweaked to drop the Makefile changes to fix application
-      ./extensionOverridesPatches/mullvadindicator_at_pobega.github.com.patch
+      (substituteAll {
+        src = ./extensionOverridesPatches/pano_at_elhan.io.patch;
+        inherit gsound libgda;
+      })
     ];
   }))
 
-  (patchExtension "pano@elhan.io" (old: {
+  (patchExtension "system-monitor@gnome-shell-extensions.gcampax.github.com" (old: {
     patches = [
       (substituteAll {
-        src = ./extensionOverridesPatches/pano_at_elhan.io.patch;
-        inherit gsound libgda;
+        src = ./extensionOverridesPatches/system-monitor_at_gnome-shell-extensions.gcampax.github.com.patch;
+        gtop_path = "${libgtop}/lib/girepository-1.0";
       })
     ];
   }))
diff --git a/pkgs/desktops/gnome/extensions/extensionOverridesPatches/mullvadindicator_at_pobega.github.com.patch b/pkgs/desktops/gnome/extensions/extensionOverridesPatches/mullvadindicator_at_pobega.github.com.patch
deleted file mode 100644
index 772da94271103..0000000000000
--- a/pkgs/desktops/gnome/extensions/extensionOverridesPatches/mullvadindicator_at_pobega.github.com.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From ea472538fc73e9ab81e50183444dbb256d32ecc0 Mon Sep 17 00:00:00 2001
-From: Sergio Rubio <rubiojr@rbel.co>
-Date: Wed, 27 Mar 2024 20:43:38 +0100
-Subject: [PATCH] Bump GNOME desktop version
-
-The extension is 46 compatible.
-
----
- metadata.json | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletions(-)
-
-diff --git a/metadata.json b/metadata.json
-index bc0e272..e647258 100644
---- a/metadata.json
-+++ b/metadata.json
-@@ -3,7 +3,8 @@
-   "description": "Mullvad connection status indicator",
-   "uuid": "mullvadindicator@pobega.github.com",
-   "shell-version": [
--    "45"
-+    "45",
-+    "46"
-   ],
-   "url": "https://github.com/Pobega/gnome-shell-extension-mullvad-indicator",
-   "settings-schema": "org.gnome.shell.extensions.MullvadIndicator",
diff --git a/pkgs/desktops/gnome/extensions/extensionOverridesPatches/system-monitor_at_gnome-shell-extensions.gcampax.github.com.patch b/pkgs/desktops/gnome/extensions/extensionOverridesPatches/system-monitor_at_gnome-shell-extensions.gcampax.github.com.patch
new file mode 100644
index 0000000000000..eb8fc58169fae
--- /dev/null
+++ b/pkgs/desktops/gnome/extensions/extensionOverridesPatches/system-monitor_at_gnome-shell-extensions.gcampax.github.com.patch
@@ -0,0 +1,25 @@
+diff --git a/extension.js b/extension.js
+index 37d2eb1..232d0d5 100644
+--- a/extension.js
++++ b/extension.js
+@@ -6,9 +6,9 @@
+ 
+ import Clutter from 'gi://Clutter';
+ import Gio from 'gi://Gio';
++import GIRepository from "gi://GIRepository";
+ import GLib from 'gi://GLib';
+ import GObject from 'gi://GObject';
+-import GTop from 'gi://GTop';
+ import Pango from 'gi://Pango';
+ import Shell from 'gi://Shell';
+ import St from 'gi://St';
+@@ -19,6 +19,9 @@ import * as PopupMenu from 'resource:///org/gnome/shell/ui/popupMenu.js';
+ 
+ import * as Main from 'resource:///org/gnome/shell/ui/main.js';
+ 
++GIRepository.Repository.prepend_search_path('@gtop_path@');
++const GTop = (await import("gi://GTop")).default;
++
+ const THRESHOLD_HIGH = 0.80;
+ 
+ // adapted from load-graph.cpp in gnome-system-monitor
diff --git a/pkgs/desktops/gnome/extensions/extensions.json b/pkgs/desktops/gnome/extensions/extensions.json
index 7ce60200a4241..60f5974aa9a7e 100644
--- a/pkgs/desktops/gnome/extensions/extensions.json
+++ b/pkgs/desktops/gnome/extensions/extensions.json
@@ -159,12 +159,14 @@
     "43": {"version": "23", "sha256": "13qk1s17b6gx9sqk85xp1mshnbqv9ch1v4im46cmcgp280r3ba3x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgVHJhc2ggYnV0dG9uIGZvciB0aGUgR05PTUUgc2hlbGwgcGFuZWwiLAogICJsb2NhbGVkaXIiOiAibG9jYWxlIiwKICAibmFtZSI6ICJUcmFzaCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiQXhlbCB2b24gQmVydG9sZGkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vYmVydG9sZGlhL2dub21lLXNoZWxsLXRyYXNoLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZ25vbWUtc2hlbGwtdHJhc2gtZXh0ZW5zaW9uIiwKICAidmVyc2lvbiI6IDIzCn0="},
     "44": {"version": "23", "sha256": "13qk1s17b6gx9sqk85xp1mshnbqv9ch1v4im46cmcgp280r3ba3x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgVHJhc2ggYnV0dG9uIGZvciB0aGUgR05PTUUgc2hlbGwgcGFuZWwiLAogICJsb2NhbGVkaXIiOiAibG9jYWxlIiwKICAibmFtZSI6ICJUcmFzaCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiQXhlbCB2b24gQmVydG9sZGkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vYmVydG9sZGlhL2dub21lLXNoZWxsLXRyYXNoLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZ25vbWUtc2hlbGwtdHJhc2gtZXh0ZW5zaW9uIiwKICAidmVyc2lvbiI6IDIzCn0="}
   }}
-, {"uuid": "RecentItems@bananenfisch.net", "name": "Recent Items", "pname": "recent-items", "description": "Adds an icon for recently used items at the top panel; clear list by click; left click: open file, right click: open containing folder; Settings for: number of items, number of items under \"more\" and blacklisting options are defined at the top of extension.js (see https://github.com/bananenfisch/RecentItems for more infos).", "link": "https://extensions.gnome.org/extension/72/recent-items/", "shell_version_map": {
+, {"uuid": "RecentItems@bananenfisch.net", "name": "Recent Items", "pname": "recent-items", "description": "Adds an icon for recently used items at the top panel", "link": "https://extensions.gnome.org/extension/72/recent-items/", "shell_version_map": {
     "40": {"version": "22", "sha256": "17xgw3iqcznlsfqjfs99bb5s1h7wlg37xjn9rar1hqpl7dsy84nk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gaWNvbiBmb3IgcmVjZW50bHkgdXNlZCBpdGVtcyBhdCB0aGUgdG9wIHBhbmVsOyBjbGVhciBsaXN0IGJ5IGNsaWNrOyBsZWZ0IGNsaWNrOiBvcGVuIGZpbGUsIHJpZ2h0IGNsaWNrOiBvcGVuIGNvbnRhaW5pbmcgZm9sZGVyOyBTZXR0aW5ncyBmb3I6IG51bWJlciBvZiBpdGVtcywgbnVtYmVyIG9mIGl0ZW1zIHVuZGVyIFwibW9yZVwiIGFuZCBibGFja2xpc3Rpbmcgb3B0aW9ucyBhcmUgZGVmaW5lZCBhdCB0aGUgdG9wIG9mIGV4dGVuc2lvbi5qcyAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9iYW5hbmVuZmlzY2gvUmVjZW50SXRlbXMgZm9yIG1vcmUgaW5mb3MpLiIsCiAgIm5hbWUiOiAiUmVjZW50IEl0ZW1zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JhbmFuZW5maXNjaC9SZWNlbnRJdGVtcyIsCiAgInV1aWQiOiAiUmVjZW50SXRlbXNAYmFuYW5lbmZpc2NoLm5ldCIsCiAgInZlcnNpb24iOiAyMgp9"},
     "41": {"version": "22", "sha256": "17xgw3iqcznlsfqjfs99bb5s1h7wlg37xjn9rar1hqpl7dsy84nk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gaWNvbiBmb3IgcmVjZW50bHkgdXNlZCBpdGVtcyBhdCB0aGUgdG9wIHBhbmVsOyBjbGVhciBsaXN0IGJ5IGNsaWNrOyBsZWZ0IGNsaWNrOiBvcGVuIGZpbGUsIHJpZ2h0IGNsaWNrOiBvcGVuIGNvbnRhaW5pbmcgZm9sZGVyOyBTZXR0aW5ncyBmb3I6IG51bWJlciBvZiBpdGVtcywgbnVtYmVyIG9mIGl0ZW1zIHVuZGVyIFwibW9yZVwiIGFuZCBibGFja2xpc3Rpbmcgb3B0aW9ucyBhcmUgZGVmaW5lZCBhdCB0aGUgdG9wIG9mIGV4dGVuc2lvbi5qcyAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9iYW5hbmVuZmlzY2gvUmVjZW50SXRlbXMgZm9yIG1vcmUgaW5mb3MpLiIsCiAgIm5hbWUiOiAiUmVjZW50IEl0ZW1zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JhbmFuZW5maXNjaC9SZWNlbnRJdGVtcyIsCiAgInV1aWQiOiAiUmVjZW50SXRlbXNAYmFuYW5lbmZpc2NoLm5ldCIsCiAgInZlcnNpb24iOiAyMgp9"},
     "42": {"version": "22", "sha256": "17xgw3iqcznlsfqjfs99bb5s1h7wlg37xjn9rar1hqpl7dsy84nk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gaWNvbiBmb3IgcmVjZW50bHkgdXNlZCBpdGVtcyBhdCB0aGUgdG9wIHBhbmVsOyBjbGVhciBsaXN0IGJ5IGNsaWNrOyBsZWZ0IGNsaWNrOiBvcGVuIGZpbGUsIHJpZ2h0IGNsaWNrOiBvcGVuIGNvbnRhaW5pbmcgZm9sZGVyOyBTZXR0aW5ncyBmb3I6IG51bWJlciBvZiBpdGVtcywgbnVtYmVyIG9mIGl0ZW1zIHVuZGVyIFwibW9yZVwiIGFuZCBibGFja2xpc3Rpbmcgb3B0aW9ucyBhcmUgZGVmaW5lZCBhdCB0aGUgdG9wIG9mIGV4dGVuc2lvbi5qcyAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9iYW5hbmVuZmlzY2gvUmVjZW50SXRlbXMgZm9yIG1vcmUgaW5mb3MpLiIsCiAgIm5hbWUiOiAiUmVjZW50IEl0ZW1zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JhbmFuZW5maXNjaC9SZWNlbnRJdGVtcyIsCiAgInV1aWQiOiAiUmVjZW50SXRlbXNAYmFuYW5lbmZpc2NoLm5ldCIsCiAgInZlcnNpb24iOiAyMgp9"},
     "43": {"version": "22", "sha256": "17xgw3iqcznlsfqjfs99bb5s1h7wlg37xjn9rar1hqpl7dsy84nk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gaWNvbiBmb3IgcmVjZW50bHkgdXNlZCBpdGVtcyBhdCB0aGUgdG9wIHBhbmVsOyBjbGVhciBsaXN0IGJ5IGNsaWNrOyBsZWZ0IGNsaWNrOiBvcGVuIGZpbGUsIHJpZ2h0IGNsaWNrOiBvcGVuIGNvbnRhaW5pbmcgZm9sZGVyOyBTZXR0aW5ncyBmb3I6IG51bWJlciBvZiBpdGVtcywgbnVtYmVyIG9mIGl0ZW1zIHVuZGVyIFwibW9yZVwiIGFuZCBibGFja2xpc3Rpbmcgb3B0aW9ucyBhcmUgZGVmaW5lZCBhdCB0aGUgdG9wIG9mIGV4dGVuc2lvbi5qcyAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9iYW5hbmVuZmlzY2gvUmVjZW50SXRlbXMgZm9yIG1vcmUgaW5mb3MpLiIsCiAgIm5hbWUiOiAiUmVjZW50IEl0ZW1zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JhbmFuZW5maXNjaC9SZWNlbnRJdGVtcyIsCiAgInV1aWQiOiAiUmVjZW50SXRlbXNAYmFuYW5lbmZpc2NoLm5ldCIsCiAgInZlcnNpb24iOiAyMgp9"},
-    "44": {"version": "23", "sha256": "0lmr3mwz5056s9fqhdphfyzv82liz28qimzb3wk9djp0s4xbd5f8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gaWNvbiBmb3IgcmVjZW50bHkgdXNlZCBpdGVtcyBhdCB0aGUgdG9wIHBhbmVsOyBjbGVhciBsaXN0IGJ5IGNsaWNrOyBsZWZ0IGNsaWNrOiBvcGVuIGZpbGUsIHJpZ2h0IGNsaWNrOiBvcGVuIGNvbnRhaW5pbmcgZm9sZGVyOyBTZXR0aW5ncyBmb3I6IG51bWJlciBvZiBpdGVtcywgbnVtYmVyIG9mIGl0ZW1zIHVuZGVyIFwibW9yZVwiIGFuZCBibGFja2xpc3Rpbmcgb3B0aW9ucyBhcmUgZGVmaW5lZCBhdCB0aGUgdG9wIG9mIGV4dGVuc2lvbi5qcyAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9iYW5hbmVuZmlzY2gvUmVjZW50SXRlbXMgZm9yIG1vcmUgaW5mb3MpLiIsCiAgIm5hbWUiOiAiUmVjZW50IEl0ZW1zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JhbmFuZW5maXNjaC9SZWNlbnRJdGVtcyIsCiAgInV1aWQiOiAiUmVjZW50SXRlbXNAYmFuYW5lbmZpc2NoLm5ldCIsCiAgInZlcnNpb24iOiAyMwp9"}
+    "44": {"version": "23", "sha256": "0lmr3mwz5056s9fqhdphfyzv82liz28qimzb3wk9djp0s4xbd5f8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gaWNvbiBmb3IgcmVjZW50bHkgdXNlZCBpdGVtcyBhdCB0aGUgdG9wIHBhbmVsOyBjbGVhciBsaXN0IGJ5IGNsaWNrOyBsZWZ0IGNsaWNrOiBvcGVuIGZpbGUsIHJpZ2h0IGNsaWNrOiBvcGVuIGNvbnRhaW5pbmcgZm9sZGVyOyBTZXR0aW5ncyBmb3I6IG51bWJlciBvZiBpdGVtcywgbnVtYmVyIG9mIGl0ZW1zIHVuZGVyIFwibW9yZVwiIGFuZCBibGFja2xpc3Rpbmcgb3B0aW9ucyBhcmUgZGVmaW5lZCBhdCB0aGUgdG9wIG9mIGV4dGVuc2lvbi5qcyAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9iYW5hbmVuZmlzY2gvUmVjZW50SXRlbXMgZm9yIG1vcmUgaW5mb3MpLiIsCiAgIm5hbWUiOiAiUmVjZW50IEl0ZW1zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JhbmFuZW5maXNjaC9SZWNlbnRJdGVtcyIsCiAgInV1aWQiOiAiUmVjZW50SXRlbXNAYmFuYW5lbmZpc2NoLm5ldCIsCiAgInZlcnNpb24iOiAyMwp9"},
+    "45": {"version": "26", "sha256": "077fkzly63x2cky0a19iq3qnwm095lgppvsxrd8lm96knyqaxygy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gaWNvbiBmb3IgcmVjZW50bHkgdXNlZCBpdGVtcyBhdCB0aGUgdG9wIHBhbmVsIiwKICAibmFtZSI6ICJSZWNlbnQgSXRlbXMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucmVjZW50LWl0ZW1zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JhbmFuZW5maXNjaC9SZWNlbnRJdGVtcyIsCiAgInV1aWQiOiAiUmVjZW50SXRlbXNAYmFuYW5lbmZpc2NoLm5ldCIsCiAgInZlcnNpb24iOiAyNgp9"},
+    "46": {"version": "27", "sha256": "0ldgkjwqmwagwljy6fl7c3j4krfqadg8pda8hi81z3q3lxmlk3q2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gaWNvbiBmb3IgcmVjZW50bHkgdXNlZCBpdGVtcyBhdCB0aGUgdG9wIHBhbmVsIiwKICAibmFtZSI6ICJSZWNlbnQgSXRlbXMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucmVjZW50LWl0ZW1zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JhbmFuZW5maXNjaC9SZWNlbnRJdGVtcyIsCiAgInV1aWQiOiAiUmVjZW50SXRlbXNAYmFuYW5lbmZpc2NoLm5ldCIsCiAgInZlcnNpb24iOiAyNwp9"}
   }}
 , {"uuid": "lockscreen@sri.ramkrishna.me", "name": "Lock Screen", "pname": "lock-screen", "description": "Add lock icon to the panel and lock the screen instead of using ctrl-alt-l", "link": "https://extensions.gnome.org/extension/83/lock-screen/", "shell_version_map": {
     "40": {"version": "14", "sha256": "1dh02rbq7pfvpjpgjq7rlx7lld2qhq602apn1g17hbxbcpdzz004", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBsb2NrIGljb24gdG8gdGhlIHBhbmVsIGFuZCBsb2NrIHRoZSBzY3JlZW4gaW5zdGVhZCBvZiB1c2luZyBjdHJsLWFsdC1sIiwKICAibmFtZSI6ICJMb2NrIFNjcmVlbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiNDAuMCIsCiAgICAiNDIuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NyYW1rcmlzaG5hL2dub21lMy1leHRlbnNpb25zIiwKICAidXVpZCI6ICJsb2Nrc2NyZWVuQHNyaS5yYW1rcmlzaG5hLm1lIiwKICAidmVyc2lvbiI6IDE0Cn0="},
@@ -227,8 +229,8 @@
     "42": {"version": "76", "sha256": "0p615amdp1fh6k7ci7m2j4fr3z3fc94jpm0nqwwp6m51phbi386n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklucHV0IE1ldGhvZCBQYW5lbCB1c2luZyBLREUncyBraW1wYW5lbCBwcm90b2NvbCBmb3IgR25vbWUtU2hlbGwiLAogICJleHRlbnNpb24taWQiOiAia2ltcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLWtpbXBhbmVsIiwKICAibG9jYWxlIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJJbnB1dCBNZXRob2QgUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua2ltcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlbmd4dC9nbm9tZS1zaGVsbC1leHRlbnNpb24ta2ltcGFuZWwiLAogICJ1dWlkIjogImtpbXBhbmVsQGtkZS5vcmciLAogICJ2ZXJzaW9uIjogNzYKfQ=="},
     "43": {"version": "76", "sha256": "0p615amdp1fh6k7ci7m2j4fr3z3fc94jpm0nqwwp6m51phbi386n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklucHV0IE1ldGhvZCBQYW5lbCB1c2luZyBLREUncyBraW1wYW5lbCBwcm90b2NvbCBmb3IgR25vbWUtU2hlbGwiLAogICJleHRlbnNpb24taWQiOiAia2ltcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLWtpbXBhbmVsIiwKICAibG9jYWxlIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJJbnB1dCBNZXRob2QgUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua2ltcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlbmd4dC9nbm9tZS1zaGVsbC1leHRlbnNpb24ta2ltcGFuZWwiLAogICJ1dWlkIjogImtpbXBhbmVsQGtkZS5vcmciLAogICJ2ZXJzaW9uIjogNzYKfQ=="},
     "44": {"version": "76", "sha256": "0p615amdp1fh6k7ci7m2j4fr3z3fc94jpm0nqwwp6m51phbi386n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklucHV0IE1ldGhvZCBQYW5lbCB1c2luZyBLREUncyBraW1wYW5lbCBwcm90b2NvbCBmb3IgR25vbWUtU2hlbGwiLAogICJleHRlbnNpb24taWQiOiAia2ltcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLWtpbXBhbmVsIiwKICAibG9jYWxlIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJJbnB1dCBNZXRob2QgUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua2ltcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlbmd4dC9nbm9tZS1zaGVsbC1leHRlbnNpb24ta2ltcGFuZWwiLAogICJ1dWlkIjogImtpbXBhbmVsQGtkZS5vcmciLAogICJ2ZXJzaW9uIjogNzYKfQ=="},
-    "45": {"version": "80", "sha256": "04lcvlhvip4144mb9zwzipd475rqff79faqx363jmmrbb9pra0c3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklucHV0IE1ldGhvZCBQYW5lbCB1c2luZyBLREUncyBraW1wYW5lbCBwcm90b2NvbCBmb3IgR25vbWUtU2hlbGwiLAogICJleHRlbnNpb24taWQiOiAia2ltcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLWtpbXBhbmVsIiwKICAibG9jYWxlIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJJbnB1dCBNZXRob2QgUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua2ltcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlbmd4dC9nbm9tZS1zaGVsbC1leHRlbnNpb24ta2ltcGFuZWwiLAogICJ1dWlkIjogImtpbXBhbmVsQGtkZS5vcmciLAogICJ2ZXJzaW9uIjogODAKfQ=="},
-    "46": {"version": "80", "sha256": "04lcvlhvip4144mb9zwzipd475rqff79faqx363jmmrbb9pra0c3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklucHV0IE1ldGhvZCBQYW5lbCB1c2luZyBLREUncyBraW1wYW5lbCBwcm90b2NvbCBmb3IgR25vbWUtU2hlbGwiLAogICJleHRlbnNpb24taWQiOiAia2ltcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLWtpbXBhbmVsIiwKICAibG9jYWxlIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJJbnB1dCBNZXRob2QgUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua2ltcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlbmd4dC9nbm9tZS1zaGVsbC1leHRlbnNpb24ta2ltcGFuZWwiLAogICJ1dWlkIjogImtpbXBhbmVsQGtkZS5vcmciLAogICJ2ZXJzaW9uIjogODAKfQ=="}
+    "45": {"version": "82", "sha256": "100rmmp53r2lbwpgyj8giyx5l2i7yl2hfs5qpcrs4m5a56s74wjs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklucHV0IE1ldGhvZCBQYW5lbCB1c2luZyBLREUncyBraW1wYW5lbCBwcm90b2NvbCBmb3IgR25vbWUtU2hlbGwiLAogICJleHRlbnNpb24taWQiOiAia2ltcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLWtpbXBhbmVsIiwKICAibG9jYWxlIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJJbnB1dCBNZXRob2QgUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua2ltcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlbmd4dC9nbm9tZS1zaGVsbC1leHRlbnNpb24ta2ltcGFuZWwiLAogICJ1dWlkIjogImtpbXBhbmVsQGtkZS5vcmciLAogICJ2ZXJzaW9uIjogODIKfQ=="},
+    "46": {"version": "82", "sha256": "100rmmp53r2lbwpgyj8giyx5l2i7yl2hfs5qpcrs4m5a56s74wjs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklucHV0IE1ldGhvZCBQYW5lbCB1c2luZyBLREUncyBraW1wYW5lbCBwcm90b2NvbCBmb3IgR25vbWUtU2hlbGwiLAogICJleHRlbnNpb24taWQiOiAia2ltcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLWtpbXBhbmVsIiwKICAibG9jYWxlIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJJbnB1dCBNZXRob2QgUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua2ltcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlbmd4dC9nbm9tZS1zaGVsbC1leHRlbnNpb24ta2ltcGFuZWwiLAogICJ1dWlkIjogImtpbXBhbmVsQGtkZS5vcmciLAogICJ2ZXJzaW9uIjogODIKfQ=="}
   }}
 , {"uuid": "impatience@gfxmonk.net", "name": "Impatience", "pname": "impatience", "description": "Speed up the gnome-shell animation speed", "link": "https://extensions.gnome.org/extension/277/impatience/", "shell_version_map": {
     "40": {"version": "22", "sha256": "1npc0y8bf5rrwl1v55hlf213pd5vp8wrj6qyhp2yhvz6km1ib6q2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNwZWVkIHVwIHRoZSBnbm9tZS1zaGVsbCBhbmltYXRpb24gc3BlZWQiLAogICJuYW1lIjogIkltcGF0aWVuY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cDovL2dmeG1vbmsubmV0L2Rpc3QvMGluc3RhbGwvZ25vbWUtc2hlbGwtaW1wYXRpZW5jZS54bWwiLAogICJ1dWlkIjogImltcGF0aWVuY2VAZ2Z4bW9uay5uZXQiLAogICJ2ZXJzaW9uIjogMjIKfQ=="},
@@ -249,8 +251,8 @@
     "42": {"version": "84", "sha256": "0a62pmg5jwp812nxb4gsxw2m0jn7p5l3y9m7a57zxzk6cy831asi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZG9jayBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBvdXQgb2YgdGhlIG92ZXJ2aWV3IHRyYW5zZm9ybWluZyBpdCBpbiBhIGRvY2sgZm9yIGFuIGVhc2llciBsYXVuY2hpbmcgb2YgYXBwbGljYXRpb25zIGFuZCBhIGZhc3RlciBzd2l0Y2hpbmcgYmV0d2VlbiB3aW5kb3dzIGFuZCBkZXNrdG9wcy4gU2lkZSBhbmQgYm90dG9tIHBsYWNlbWVudCBvcHRpb25zIGFyZSBhdmFpbGFibGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaHRvZG9jayIsCiAgIm5hbWUiOiAiRGFzaCB0byBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIm1pY3hneEBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9taWNoZWxlZy5naXRodWIuaW8vZGFzaC10by1kb2NrLyIsCiAgInV1aWQiOiAiZGFzaC10by1kb2NrQG1pY3hneC5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogODQKfQ=="},
     "43": {"version": "84", "sha256": "0a62pmg5jwp812nxb4gsxw2m0jn7p5l3y9m7a57zxzk6cy831asi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZG9jayBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBvdXQgb2YgdGhlIG92ZXJ2aWV3IHRyYW5zZm9ybWluZyBpdCBpbiBhIGRvY2sgZm9yIGFuIGVhc2llciBsYXVuY2hpbmcgb2YgYXBwbGljYXRpb25zIGFuZCBhIGZhc3RlciBzd2l0Y2hpbmcgYmV0d2VlbiB3aW5kb3dzIGFuZCBkZXNrdG9wcy4gU2lkZSBhbmQgYm90dG9tIHBsYWNlbWVudCBvcHRpb25zIGFyZSBhdmFpbGFibGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaHRvZG9jayIsCiAgIm5hbWUiOiAiRGFzaCB0byBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIm1pY3hneEBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9taWNoZWxlZy5naXRodWIuaW8vZGFzaC10by1kb2NrLyIsCiAgInV1aWQiOiAiZGFzaC10by1kb2NrQG1pY3hneC5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogODQKfQ=="},
     "44": {"version": "84", "sha256": "0a62pmg5jwp812nxb4gsxw2m0jn7p5l3y9m7a57zxzk6cy831asi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZG9jayBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBvdXQgb2YgdGhlIG92ZXJ2aWV3IHRyYW5zZm9ybWluZyBpdCBpbiBhIGRvY2sgZm9yIGFuIGVhc2llciBsYXVuY2hpbmcgb2YgYXBwbGljYXRpb25zIGFuZCBhIGZhc3RlciBzd2l0Y2hpbmcgYmV0d2VlbiB3aW5kb3dzIGFuZCBkZXNrdG9wcy4gU2lkZSBhbmQgYm90dG9tIHBsYWNlbWVudCBvcHRpb25zIGFyZSBhdmFpbGFibGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaHRvZG9jayIsCiAgIm5hbWUiOiAiRGFzaCB0byBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIm1pY3hneEBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9taWNoZWxlZy5naXRodWIuaW8vZGFzaC10by1kb2NrLyIsCiAgInV1aWQiOiAiZGFzaC10by1kb2NrQG1pY3hneC5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogODQKfQ=="},
-    "45": {"version": "91", "sha256": "1knv9lcyc4cym9iphhijdm4ldnwly7kzdj3wywpkhnb0hn3ng95d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZG9jayBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBvdXQgb2YgdGhlIG92ZXJ2aWV3IHRyYW5zZm9ybWluZyBpdCBpbiBhIGRvY2sgZm9yIGFuIGVhc2llciBsYXVuY2hpbmcgb2YgYXBwbGljYXRpb25zIGFuZCBhIGZhc3RlciBzd2l0Y2hpbmcgYmV0d2VlbiB3aW5kb3dzIGFuZCBkZXNrdG9wcy4gU2lkZSBhbmQgYm90dG9tIHBsYWNlbWVudCBvcHRpb25zIGFyZSBhdmFpbGFibGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaHRvZG9jayIsCiAgIm5hbWUiOiAiRGFzaCB0byBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIm1pY3hneEBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9taWNoZWxlZy5naXRodWIuaW8vZGFzaC10by1kb2NrLyIsCiAgInV1aWQiOiAiZGFzaC10by1kb2NrQG1pY3hneC5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogOTEKfQ=="},
-    "46": {"version": "91", "sha256": "1knv9lcyc4cym9iphhijdm4ldnwly7kzdj3wywpkhnb0hn3ng95d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZG9jayBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBvdXQgb2YgdGhlIG92ZXJ2aWV3IHRyYW5zZm9ybWluZyBpdCBpbiBhIGRvY2sgZm9yIGFuIGVhc2llciBsYXVuY2hpbmcgb2YgYXBwbGljYXRpb25zIGFuZCBhIGZhc3RlciBzd2l0Y2hpbmcgYmV0d2VlbiB3aW5kb3dzIGFuZCBkZXNrdG9wcy4gU2lkZSBhbmQgYm90dG9tIHBsYWNlbWVudCBvcHRpb25zIGFyZSBhdmFpbGFibGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaHRvZG9jayIsCiAgIm5hbWUiOiAiRGFzaCB0byBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIm1pY3hneEBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9taWNoZWxlZy5naXRodWIuaW8vZGFzaC10by1kb2NrLyIsCiAgInV1aWQiOiAiZGFzaC10by1kb2NrQG1pY3hneC5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogOTEKfQ=="}
+    "45": {"version": "92", "sha256": "0d0xv1q4b75f2ry6hfrzpb1wmbxcpzcr39q4qm9qx3qp0i2b3ix3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZG9jayBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBvdXQgb2YgdGhlIG92ZXJ2aWV3IHRyYW5zZm9ybWluZyBpdCBpbiBhIGRvY2sgZm9yIGFuIGVhc2llciBsYXVuY2hpbmcgb2YgYXBwbGljYXRpb25zIGFuZCBhIGZhc3RlciBzd2l0Y2hpbmcgYmV0d2VlbiB3aW5kb3dzIGFuZCBkZXNrdG9wcy4gU2lkZSBhbmQgYm90dG9tIHBsYWNlbWVudCBvcHRpb25zIGFyZSBhdmFpbGFibGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaHRvZG9jayIsCiAgIm5hbWUiOiAiRGFzaCB0byBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIm1pY3hneEBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9taWNoZWxlZy5naXRodWIuaW8vZGFzaC10by1kb2NrLyIsCiAgInV1aWQiOiAiZGFzaC10by1kb2NrQG1pY3hneC5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogOTIKfQ=="},
+    "46": {"version": "92", "sha256": "0d0xv1q4b75f2ry6hfrzpb1wmbxcpzcr39q4qm9qx3qp0i2b3ix3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZG9jayBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBvdXQgb2YgdGhlIG92ZXJ2aWV3IHRyYW5zZm9ybWluZyBpdCBpbiBhIGRvY2sgZm9yIGFuIGVhc2llciBsYXVuY2hpbmcgb2YgYXBwbGljYXRpb25zIGFuZCBhIGZhc3RlciBzd2l0Y2hpbmcgYmV0d2VlbiB3aW5kb3dzIGFuZCBkZXNrdG9wcy4gU2lkZSBhbmQgYm90dG9tIHBsYWNlbWVudCBvcHRpb25zIGFyZSBhdmFpbGFibGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaHRvZG9jayIsCiAgIm5hbWUiOiAiRGFzaCB0byBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIm1pY3hneEBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9taWNoZWxlZy5naXRodWIuaW8vZGFzaC10by1kb2NrLyIsCiAgInV1aWQiOiAiZGFzaC10by1kb2NrQG1pY3hneC5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogOTIKfQ=="}
   }}
 , {"uuid": "mythtv-fnx@fnxweb.com", "name": "MythTV", "pname": "mythtv", "description": "Displays MythTV status (free space and upcoming recordings)", "link": "https://extensions.gnome.org/extension/321/mythtv/", "shell_version_map": {
     "38": {"version": "10", "sha256": "070h11gk5zpxn5xbc71skdz174hbb72l0isia2vp7d9wy4ackl0k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIE15dGhUViBzdGF0dXMgKGZyZWUgc3BhY2UgYW5kIHVwY29taW5nIHJlY29yZGluZ3MpIiwKICAibmFtZSI6ICJNeXRoVFYiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mbnh3ZWIvZ25vbWUtc2hlbGwtbXl0aHR2IiwKICAidXVpZCI6ICJteXRodHYtZm54QGZueHdlYi5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="},
@@ -326,7 +328,8 @@
     "41": {"version": "24", "sha256": "0zg9gwk93a7vxsh2ybbw550id9brcaxhcjzy5knj0h0rz7i1k2ik", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpYyBiYWNrZ3JvdW5kLWltYWdlICh3YWxscGFwZXIpIHNsaWRlc2hvdyBmb3IgR25vbWUgU2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYWNrc2xpZGUiLAogICJuYW1lIjogIkJhY2tTbGlkZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJMdWthcyBLbnV0aCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcDkxcGF1bC9CYWNrU2xpZGUiLAogICJ1dWlkIjogImJhY2tzbGlkZUBjb2RlaXNsYW5kLm9yZyIsCiAgInZlcnNpb24iOiAyNAp9"},
     "42": {"version": "26", "sha256": "09qd7az18fr9l67v00fxgpnzfwwn7qlz1r274rgsnsi6wjxd50qv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpYyBiYWNrZ3JvdW5kLWltYWdlICh3YWxscGFwZXIpIHNsaWRlc2hvdyBmb3IgR25vbWUgU2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYWNrc2xpZGUiLAogICJuYW1lIjogIkJhY2tTbGlkZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJMdWthcyBLbnV0aCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9wOTFwYXVsL0JhY2tTbGlkZSIsCiAgInV1aWQiOiAiYmFja3NsaWRlQGNvZGVpc2xhbmQub3JnIiwKICAidmVyc2lvbiI6IDI2Cn0="},
     "43": {"version": "28", "sha256": "0436dfcm4j7kgiz83hkkwg1p0mcq5x5if5xvbx693lm9qvisw09k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpYyBiYWNrZ3JvdW5kLWltYWdlICh3YWxscGFwZXIpIHNsaWRlc2hvdyBmb3IgR25vbWUgU2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYWNrc2xpZGUiLAogICJuYW1lIjogIkJhY2tTbGlkZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJMdWthcyBLbnV0aCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcDkxcGF1bC9CYWNrU2xpZGUiLAogICJ1dWlkIjogImJhY2tzbGlkZUBjb2RlaXNsYW5kLm9yZyIsCiAgInZlcnNpb24iOiAyOAp9"},
-    "44": {"version": "28", "sha256": "0436dfcm4j7kgiz83hkkwg1p0mcq5x5if5xvbx693lm9qvisw09k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpYyBiYWNrZ3JvdW5kLWltYWdlICh3YWxscGFwZXIpIHNsaWRlc2hvdyBmb3IgR25vbWUgU2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYWNrc2xpZGUiLAogICJuYW1lIjogIkJhY2tTbGlkZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJMdWthcyBLbnV0aCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcDkxcGF1bC9CYWNrU2xpZGUiLAogICJ1dWlkIjogImJhY2tzbGlkZUBjb2RlaXNsYW5kLm9yZyIsCiAgInZlcnNpb24iOiAyOAp9"}
+    "44": {"version": "28", "sha256": "0436dfcm4j7kgiz83hkkwg1p0mcq5x5if5xvbx693lm9qvisw09k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpYyBiYWNrZ3JvdW5kLWltYWdlICh3YWxscGFwZXIpIHNsaWRlc2hvdyBmb3IgR25vbWUgU2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYWNrc2xpZGUiLAogICJuYW1lIjogIkJhY2tTbGlkZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJMdWthcyBLbnV0aCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcDkxcGF1bC9CYWNrU2xpZGUiLAogICJ1dWlkIjogImJhY2tzbGlkZUBjb2RlaXNsYW5kLm9yZyIsCiAgInZlcnNpb24iOiAyOAp9"},
+    "46": {"version": "32", "sha256": "1kab8y5q3x9vqi3ih4i1h17c5y3pkyvyb6w6x8ckfjnhb8bwpbdf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpYyBiYWNrZ3JvdW5kLWltYWdlICh3YWxscGFwZXIpIHNsaWRlc2hvdyBmb3IgR25vbWUgU2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYWNrc2xpZGUiLAogICJuYW1lIjogIkJhY2tTbGlkZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJMdWthcyBLbnV0aCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iYWNrc2xpZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcDkxcGF1bC9CYWNrU2xpZGUiLAogICJ1dWlkIjogImJhY2tzbGlkZUBjb2RlaXNsYW5kLm9yZyIsCiAgInZlcnNpb24iOiAzMgp9"}
   }}
 , {"uuid": "historymanager-prefix-search@sustmidown.centrum.cz", "name": "History Manager Prefix Search", "pname": "historymanager-prefix-search", "description": "Use PageUp and PageDown to move in HistoryManager (eg. Run Command, Looking Glass) according to prefix", "link": "https://extensions.gnome.org/extension/544/historymanager-prefix-search/", "shell_version_map": {
     "40": {"version": "18", "sha256": "0qhwdpdnxs3drda29zdb3vy8d7djb55i9a0d9a9rar3wqlncpbny", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVzZSBQYWdlVXAgYW5kIFBhZ2VEb3duIHRvIG1vdmUgaW4gSGlzdG9yeU1hbmFnZXIgKGVnLiBSdW4gQ29tbWFuZCwgTG9va2luZyBHbGFzcykgYWNjb3JkaW5nIHRvIHByZWZpeCIsCiAgImdldHRleHQtZG9tYWluIjogImhpc3RvcnltYW5hZ2VyLXByZWZpeC1zZWFyY2giLAogICJuYW1lIjogIkhpc3RvcnkgTWFuYWdlciBQcmVmaXggU2VhcmNoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhpc3RvcnltYW5hZ2VyLXByZWZpeC1zZWFyY2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1c3RtaS9nbm9tZS1zaGVsbC1leHRlbnNpb24taGlzdG9yeW1hbmFnZXItcHJlZml4LXNlYXJjaCIsCiAgInV1aWQiOiAiaGlzdG9yeW1hbmFnZXItcHJlZml4LXNlYXJjaEBzdXN0bWlkb3duLmNlbnRydW0uY3oiLAogICJ2ZXJzaW9uIjogMTgKfQ=="},
@@ -334,7 +337,8 @@
     "42": {"version": "18", "sha256": "0qhwdpdnxs3drda29zdb3vy8d7djb55i9a0d9a9rar3wqlncpbny", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVzZSBQYWdlVXAgYW5kIFBhZ2VEb3duIHRvIG1vdmUgaW4gSGlzdG9yeU1hbmFnZXIgKGVnLiBSdW4gQ29tbWFuZCwgTG9va2luZyBHbGFzcykgYWNjb3JkaW5nIHRvIHByZWZpeCIsCiAgImdldHRleHQtZG9tYWluIjogImhpc3RvcnltYW5hZ2VyLXByZWZpeC1zZWFyY2giLAogICJuYW1lIjogIkhpc3RvcnkgTWFuYWdlciBQcmVmaXggU2VhcmNoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhpc3RvcnltYW5hZ2VyLXByZWZpeC1zZWFyY2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1c3RtaS9nbm9tZS1zaGVsbC1leHRlbnNpb24taGlzdG9yeW1hbmFnZXItcHJlZml4LXNlYXJjaCIsCiAgInV1aWQiOiAiaGlzdG9yeW1hbmFnZXItcHJlZml4LXNlYXJjaEBzdXN0bWlkb3duLmNlbnRydW0uY3oiLAogICJ2ZXJzaW9uIjogMTgKfQ=="},
     "43": {"version": "18", "sha256": "0qhwdpdnxs3drda29zdb3vy8d7djb55i9a0d9a9rar3wqlncpbny", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVzZSBQYWdlVXAgYW5kIFBhZ2VEb3duIHRvIG1vdmUgaW4gSGlzdG9yeU1hbmFnZXIgKGVnLiBSdW4gQ29tbWFuZCwgTG9va2luZyBHbGFzcykgYWNjb3JkaW5nIHRvIHByZWZpeCIsCiAgImdldHRleHQtZG9tYWluIjogImhpc3RvcnltYW5hZ2VyLXByZWZpeC1zZWFyY2giLAogICJuYW1lIjogIkhpc3RvcnkgTWFuYWdlciBQcmVmaXggU2VhcmNoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhpc3RvcnltYW5hZ2VyLXByZWZpeC1zZWFyY2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1c3RtaS9nbm9tZS1zaGVsbC1leHRlbnNpb24taGlzdG9yeW1hbmFnZXItcHJlZml4LXNlYXJjaCIsCiAgInV1aWQiOiAiaGlzdG9yeW1hbmFnZXItcHJlZml4LXNlYXJjaEBzdXN0bWlkb3duLmNlbnRydW0uY3oiLAogICJ2ZXJzaW9uIjogMTgKfQ=="},
     "44": {"version": "18", "sha256": "0qhwdpdnxs3drda29zdb3vy8d7djb55i9a0d9a9rar3wqlncpbny", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVzZSBQYWdlVXAgYW5kIFBhZ2VEb3duIHRvIG1vdmUgaW4gSGlzdG9yeU1hbmFnZXIgKGVnLiBSdW4gQ29tbWFuZCwgTG9va2luZyBHbGFzcykgYWNjb3JkaW5nIHRvIHByZWZpeCIsCiAgImdldHRleHQtZG9tYWluIjogImhpc3RvcnltYW5hZ2VyLXByZWZpeC1zZWFyY2giLAogICJuYW1lIjogIkhpc3RvcnkgTWFuYWdlciBQcmVmaXggU2VhcmNoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhpc3RvcnltYW5hZ2VyLXByZWZpeC1zZWFyY2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1c3RtaS9nbm9tZS1zaGVsbC1leHRlbnNpb24taGlzdG9yeW1hbmFnZXItcHJlZml4LXNlYXJjaCIsCiAgInV1aWQiOiAiaGlzdG9yeW1hbmFnZXItcHJlZml4LXNlYXJjaEBzdXN0bWlkb3duLmNlbnRydW0uY3oiLAogICJ2ZXJzaW9uIjogMTgKfQ=="},
-    "45": {"version": "20", "sha256": "03bph5g6wzb0ln0ligbv40v35gqjyvy2ikn08dlx0m6yhwfxcibp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVzZSBQYWdlVXAgYW5kIFBhZ2VEb3duIHRvIG1vdmUgaW4gSGlzdG9yeU1hbmFnZXIgKGVnLiBSdW4gQ29tbWFuZCwgTG9va2luZyBHbGFzcykgYWNjb3JkaW5nIHRvIHByZWZpeCIsCiAgImdldHRleHQtZG9tYWluIjogImhpc3RvcnltYW5hZ2VyLXByZWZpeC1zZWFyY2giLAogICJuYW1lIjogIkhpc3RvcnkgTWFuYWdlciBQcmVmaXggU2VhcmNoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhpc3RvcnltYW5hZ2VyLXByZWZpeC1zZWFyY2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3VzdG1pL2dub21lLXNoZWxsLWV4dGVuc2lvbi1oaXN0b3J5bWFuYWdlci1wcmVmaXgtc2VhcmNoIiwKICAidXVpZCI6ICJoaXN0b3J5bWFuYWdlci1wcmVmaXgtc2VhcmNoQHN1c3RtaWRvd24uY2VudHJ1bS5jeiIsCiAgInZlcnNpb24iOiAyMAp9"}
+    "45": {"version": "21", "sha256": "17wy4g7sa2j1bf85n1bnk1v6jwns4iv4y8b5vlb59ldm57i54h3k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVzZSBQYWdlVXAgYW5kIFBhZ2VEb3duIHRvIG1vdmUgaW4gSGlzdG9yeU1hbmFnZXIgKGVnLiBSdW4gQ29tbWFuZCwgTG9va2luZyBHbGFzcykgYWNjb3JkaW5nIHRvIHByZWZpeCIsCiAgImdldHRleHQtZG9tYWluIjogImhpc3RvcnltYW5hZ2VyLXByZWZpeC1zZWFyY2giLAogICJuYW1lIjogIkhpc3RvcnkgTWFuYWdlciBQcmVmaXggU2VhcmNoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhpc3RvcnltYW5hZ2VyLXByZWZpeC1zZWFyY2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1c3RtaS9nbm9tZS1zaGVsbC1leHRlbnNpb24taGlzdG9yeW1hbmFnZXItcHJlZml4LXNlYXJjaCIsCiAgInV1aWQiOiAiaGlzdG9yeW1hbmFnZXItcHJlZml4LXNlYXJjaEBzdXN0bWlkb3duLmNlbnRydW0uY3oiLAogICJ2ZXJzaW9uIjogMjEKfQ=="},
+    "46": {"version": "21", "sha256": "17wy4g7sa2j1bf85n1bnk1v6jwns4iv4y8b5vlb59ldm57i54h3k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVzZSBQYWdlVXAgYW5kIFBhZ2VEb3duIHRvIG1vdmUgaW4gSGlzdG9yeU1hbmFnZXIgKGVnLiBSdW4gQ29tbWFuZCwgTG9va2luZyBHbGFzcykgYWNjb3JkaW5nIHRvIHByZWZpeCIsCiAgImdldHRleHQtZG9tYWluIjogImhpc3RvcnltYW5hZ2VyLXByZWZpeC1zZWFyY2giLAogICJuYW1lIjogIkhpc3RvcnkgTWFuYWdlciBQcmVmaXggU2VhcmNoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhpc3RvcnltYW5hZ2VyLXByZWZpeC1zZWFyY2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1c3RtaS9nbm9tZS1zaGVsbC1leHRlbnNpb24taGlzdG9yeW1hbmFnZXItcHJlZml4LXNlYXJjaCIsCiAgInV1aWQiOiAiaGlzdG9yeW1hbmFnZXItcHJlZml4LXNlYXJjaEBzdXN0bWlkb3duLmNlbnRydW0uY3oiLAogICJ2ZXJzaW9uIjogMjEKfQ=="}
   }}
 , {"uuid": "hidetopbar@mathieu.bidon.ca", "name": "Hide Top Bar", "pname": "hide-top-bar", "description": "Hides the top bar, except in overview. However, there is an option to show the panel whenever the mouse pointer approaches the edge of the screen. And if \"intellihide\" is enabled, the panel only hides when a window takes the space.\n\n- Press backspace to remove keyboard shortcut.\n- Log off and on again when there is an error after upgrading.", "link": "https://extensions.gnome.org/extension/545/hide-top-bar/", "shell_version_map": {
     "38": {"version": "114", "sha256": "07mqqya5vpfs3bf7823ir3c23rjpn81l58m8r5nas3i2ggxsgfln", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSB0b3AgYmFyLCBleGNlcHQgaW4gb3ZlcnZpZXcuIEhvd2V2ZXIsIHRoZXJlIGlzIGFuIG9wdGlvbiB0byBzaG93IHRoZSBwYW5lbCB3aGVuZXZlciB0aGUgbW91c2UgcG9pbnRlciBhcHByb2FjaGVzIHRoZSBlZGdlIG9mIHRoZSBzY3JlZW4uIEFuZCBpZiBcImludGVsbGloaWRlXCIgaXMgZW5hYmxlZCwgdGhlIHBhbmVsIG9ubHkgaGlkZXMgd2hlbiBhIHdpbmRvdyB0YWtlcyB0aGUgc3BhY2UuXG5cbi0gUHJlc3MgYmFja3NwYWNlIHRvIHJlbW92ZSBrZXlib2FyZCBzaG9ydGN1dC5cbi0gTG9nIG9mZiBhbmQgb24gYWdhaW4gd2hlbiB0aGVyZSBpcyBhbiBlcnJvciBhZnRlciB1cGdyYWRpbmcuIiwKICAibmFtZSI6ICJIaWRlIFRvcCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGlkZXRvcGJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvdHV4b3IxMzM3L2hpZGV0b3BiYXIiLAogICJ1dWlkIjogImhpZGV0b3BiYXJAbWF0aGlldS5iaWRvbi5jYSIsCiAgInZlcnNpb24iOiAxMTQKfQ=="},
@@ -343,7 +347,8 @@
     "42": {"version": "114", "sha256": "07mqqya5vpfs3bf7823ir3c23rjpn81l58m8r5nas3i2ggxsgfln", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSB0b3AgYmFyLCBleGNlcHQgaW4gb3ZlcnZpZXcuIEhvd2V2ZXIsIHRoZXJlIGlzIGFuIG9wdGlvbiB0byBzaG93IHRoZSBwYW5lbCB3aGVuZXZlciB0aGUgbW91c2UgcG9pbnRlciBhcHByb2FjaGVzIHRoZSBlZGdlIG9mIHRoZSBzY3JlZW4uIEFuZCBpZiBcImludGVsbGloaWRlXCIgaXMgZW5hYmxlZCwgdGhlIHBhbmVsIG9ubHkgaGlkZXMgd2hlbiBhIHdpbmRvdyB0YWtlcyB0aGUgc3BhY2UuXG5cbi0gUHJlc3MgYmFja3NwYWNlIHRvIHJlbW92ZSBrZXlib2FyZCBzaG9ydGN1dC5cbi0gTG9nIG9mZiBhbmQgb24gYWdhaW4gd2hlbiB0aGVyZSBpcyBhbiBlcnJvciBhZnRlciB1cGdyYWRpbmcuIiwKICAibmFtZSI6ICJIaWRlIFRvcCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGlkZXRvcGJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvdHV4b3IxMzM3L2hpZGV0b3BiYXIiLAogICJ1dWlkIjogImhpZGV0b3BiYXJAbWF0aGlldS5iaWRvbi5jYSIsCiAgInZlcnNpb24iOiAxMTQKfQ=="},
     "43": {"version": "114", "sha256": "07mqqya5vpfs3bf7823ir3c23rjpn81l58m8r5nas3i2ggxsgfln", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSB0b3AgYmFyLCBleGNlcHQgaW4gb3ZlcnZpZXcuIEhvd2V2ZXIsIHRoZXJlIGlzIGFuIG9wdGlvbiB0byBzaG93IHRoZSBwYW5lbCB3aGVuZXZlciB0aGUgbW91c2UgcG9pbnRlciBhcHByb2FjaGVzIHRoZSBlZGdlIG9mIHRoZSBzY3JlZW4uIEFuZCBpZiBcImludGVsbGloaWRlXCIgaXMgZW5hYmxlZCwgdGhlIHBhbmVsIG9ubHkgaGlkZXMgd2hlbiBhIHdpbmRvdyB0YWtlcyB0aGUgc3BhY2UuXG5cbi0gUHJlc3MgYmFja3NwYWNlIHRvIHJlbW92ZSBrZXlib2FyZCBzaG9ydGN1dC5cbi0gTG9nIG9mZiBhbmQgb24gYWdhaW4gd2hlbiB0aGVyZSBpcyBhbiBlcnJvciBhZnRlciB1cGdyYWRpbmcuIiwKICAibmFtZSI6ICJIaWRlIFRvcCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGlkZXRvcGJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvdHV4b3IxMzM3L2hpZGV0b3BiYXIiLAogICJ1dWlkIjogImhpZGV0b3BiYXJAbWF0aGlldS5iaWRvbi5jYSIsCiAgInZlcnNpb24iOiAxMTQKfQ=="},
     "44": {"version": "114", "sha256": "07mqqya5vpfs3bf7823ir3c23rjpn81l58m8r5nas3i2ggxsgfln", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSB0b3AgYmFyLCBleGNlcHQgaW4gb3ZlcnZpZXcuIEhvd2V2ZXIsIHRoZXJlIGlzIGFuIG9wdGlvbiB0byBzaG93IHRoZSBwYW5lbCB3aGVuZXZlciB0aGUgbW91c2UgcG9pbnRlciBhcHByb2FjaGVzIHRoZSBlZGdlIG9mIHRoZSBzY3JlZW4uIEFuZCBpZiBcImludGVsbGloaWRlXCIgaXMgZW5hYmxlZCwgdGhlIHBhbmVsIG9ubHkgaGlkZXMgd2hlbiBhIHdpbmRvdyB0YWtlcyB0aGUgc3BhY2UuXG5cbi0gUHJlc3MgYmFja3NwYWNlIHRvIHJlbW92ZSBrZXlib2FyZCBzaG9ydGN1dC5cbi0gTG9nIG9mZiBhbmQgb24gYWdhaW4gd2hlbiB0aGVyZSBpcyBhbiBlcnJvciBhZnRlciB1cGdyYWRpbmcuIiwKICAibmFtZSI6ICJIaWRlIFRvcCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGlkZXRvcGJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvdHV4b3IxMzM3L2hpZGV0b3BiYXIiLAogICJ1dWlkIjogImhpZGV0b3BiYXJAbWF0aGlldS5iaWRvbi5jYSIsCiAgInZlcnNpb24iOiAxMTQKfQ=="},
-    "45": {"version": "116", "sha256": "0ymr8lrlxsv25b7c9wskkjqd8girkbwfvl3p9kwq4vklrphz1kr8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSB0b3AgYmFyLCBleGNlcHQgaW4gb3ZlcnZpZXcuIEhvd2V2ZXIsIHRoZXJlIGlzIGFuIG9wdGlvbiB0byBzaG93IHRoZSBwYW5lbCB3aGVuZXZlciB0aGUgbW91c2UgcG9pbnRlciBhcHByb2FjaGVzIHRoZSBlZGdlIG9mIHRoZSBzY3JlZW4uIEFuZCBpZiBcImludGVsbGloaWRlXCIgaXMgZW5hYmxlZCwgdGhlIHBhbmVsIG9ubHkgaGlkZXMgd2hlbiBhIHdpbmRvdyB0YWtlcyB0aGUgc3BhY2UuXG5cbi0gUHJlc3MgYmFja3NwYWNlIHRvIHJlbW92ZSBrZXlib2FyZCBzaG9ydGN1dC5cbi0gTG9nIG9mZiBhbmQgb24gYWdhaW4gd2hlbiB0aGVyZSBpcyBhbiBlcnJvciBhZnRlciB1cGdyYWRpbmcuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiaGlkZXRvcGJhckBtYXRoaWV1LmJpZG9uLmNhIiwKICAibmFtZSI6ICJIaWRlIFRvcCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGlkZXRvcGJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy90dXhvcjEzMzcvaGlkZXRvcGJhciIsCiAgInV1aWQiOiAiaGlkZXRvcGJhckBtYXRoaWV1LmJpZG9uLmNhIiwKICAidmVyc2lvbiI6IDExNgp9"}
+    "45": {"version": "117", "sha256": "1hb3g8r0hwrmymni2klzmb3chc9z9vddiqkavlc10hcrbhi8qs60", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSB0b3AgYmFyLCBleGNlcHQgaW4gb3ZlcnZpZXcuIEhvd2V2ZXIsIHRoZXJlIGlzIGFuIG9wdGlvbiB0byBzaG93IHRoZSBwYW5lbCB3aGVuZXZlciB0aGUgbW91c2UgcG9pbnRlciBhcHByb2FjaGVzIHRoZSBlZGdlIG9mIHRoZSBzY3JlZW4uIEFuZCBpZiBcImludGVsbGloaWRlXCIgaXMgZW5hYmxlZCwgdGhlIHBhbmVsIG9ubHkgaGlkZXMgd2hlbiBhIHdpbmRvdyB0YWtlcyB0aGUgc3BhY2UuXG5cbi0gUHJlc3MgYmFja3NwYWNlIHRvIHJlbW92ZSBrZXlib2FyZCBzaG9ydGN1dC5cbi0gTG9nIG9mZiBhbmQgb24gYWdhaW4gd2hlbiB0aGVyZSBpcyBhbiBlcnJvciBhZnRlciB1cGdyYWRpbmcuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiaGlkZXRvcGJhckBtYXRoaWV1LmJpZG9uLmNhIiwKICAibmFtZSI6ICJIaWRlIFRvcCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGlkZXRvcGJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvdHV4b3IxMzM3L2hpZGV0b3BiYXIiLAogICJ1dWlkIjogImhpZGV0b3BiYXJAbWF0aGlldS5iaWRvbi5jYSIsCiAgInZlcnNpb24iOiAxMTcKfQ=="},
+    "46": {"version": "117", "sha256": "1hb3g8r0hwrmymni2klzmb3chc9z9vddiqkavlc10hcrbhi8qs60", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSB0b3AgYmFyLCBleGNlcHQgaW4gb3ZlcnZpZXcuIEhvd2V2ZXIsIHRoZXJlIGlzIGFuIG9wdGlvbiB0byBzaG93IHRoZSBwYW5lbCB3aGVuZXZlciB0aGUgbW91c2UgcG9pbnRlciBhcHByb2FjaGVzIHRoZSBlZGdlIG9mIHRoZSBzY3JlZW4uIEFuZCBpZiBcImludGVsbGloaWRlXCIgaXMgZW5hYmxlZCwgdGhlIHBhbmVsIG9ubHkgaGlkZXMgd2hlbiBhIHdpbmRvdyB0YWtlcyB0aGUgc3BhY2UuXG5cbi0gUHJlc3MgYmFja3NwYWNlIHRvIHJlbW92ZSBrZXlib2FyZCBzaG9ydGN1dC5cbi0gTG9nIG9mZiBhbmQgb24gYWdhaW4gd2hlbiB0aGVyZSBpcyBhbiBlcnJvciBhZnRlciB1cGdyYWRpbmcuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiaGlkZXRvcGJhckBtYXRoaWV1LmJpZG9uLmNhIiwKICAibmFtZSI6ICJIaWRlIFRvcCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGlkZXRvcGJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvdHV4b3IxMzM3L2hpZGV0b3BiYXIiLAogICJ1dWlkIjogImhpZGV0b3BiYXJAbWF0aGlldS5iaWRvbi5jYSIsCiAgInZlcnNpb24iOiAxMTcKfQ=="}
   }}
 , {"uuid": "hdate@hatul.info", "name": "Gnome HDate", "pname": "gnome-hdate", "description": "Show Hebrew Date in the Panel.\nRequires libhdate-glib", "link": "https://extensions.gnome.org/extension/554/gnome-hdate/", "shell_version_map": {
     "40": {"version": "25", "sha256": "0nxn93jxagzld6x0rxi56q1y8lcjzh2p82jhxli90cg940w38jj9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgSGVicmV3IERhdGUgaW4gdGhlIFBhbmVsLlxuUmVxdWlyZXMgbGliaGRhdGUtZ2xpYiIsCiAgIm5hbWUiOiAiR25vbWUgSERhdGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMiIsCiAgICAiMy40IiwKICAgICIzLjYiLAogICAgIjMuOCIsCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWlhZC9nbm9tZS1oZGF0ZSIsCiAgInV1aWQiOiAiaGRhdGVAaGF0dWwuaW5mbyIsCiAgInZlcnNpb24iOiAyNQp9"},
@@ -359,7 +364,8 @@
     "42": {"version": "37", "sha256": "19n83bachj4b6lvfsp6j4gpgm9wahxlz1is2954hw4d45m5yzfbn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgaW50ZXJmYWNlIGZvciB0b2RvLnR4dC4gXG5cblRvZG8udHh0IGlzIGEgZnV0dXJlLXByb29mIHN5bnRheCBmb3IgdGFza3MgKG5vdCBtYWRlIGJ5IG1lKSwgZm9yIG1vcmUgaW5mbzogaHR0cDovL3RvZG90eHQuY29tL1xuXG5Tb21lIGV4YW1wbGVzOlxuVGFzazogQmFzaWMgdGFza1xuKEEpIFRhc2s6IEhpZ2ggcHJpb3JpdHkgdGFza1xuVGFzayBAcHJvamVjdCArY29udGV4dDogVGFzayBpcyBwYXJ0IG9mIHByb2plY3QgYW5kIGhhcyBhIGNlcnRhaW4gY29udGV4dFxueCAyMDEzLTA4LTIyIFRhc2s6IFRhc2sgd2FzIGNvbXBsZXRlZCBvbiB0aGUgMjJuZCBvZiBBdWd1c3RcblxuRm9yIG1vcmUgaW5mbyBhYm91dCB0aGUgc3ludGF4OiBodHRwczovL2dpdGh1Yi5jb20vZ2luYXRyYXBhbmkvdG9kby50eHQtY2xpL3dpa2kvVGhlLVRvZG8udHh0LUZvcm1hdFxuXG5RdWljayBzdGFydDpcbldoZW4geW91IGZpcnN0IGVuYWJsZSB0aGUgZXh0ZW5zaW9uLCBjaGFuY2VzIGFyZSBoaWdoIHlvdSdsbCBzZWUgYSBbWF0gaW4geW91ciB0b3AgcGFuZWwuIElmIHlvdSBjbGljayB0aGUgW1hdLCB5b3Ugd2lsbCBiZSBhYmxlIHRvIGNob29zZSBiZXR3ZWVuIGNyZWF0aW5nIHRoZSBuZWNlc3NhcnkgZmlsZXMgYXV0b21hdGljYWxseSBvciBzZWxlY3RpbmcgeW91ciBvd24gZXhpc3RpbmcgZmlsZXMgdG8gYmUgdXNlZCB3aXRoIHRoZSBleHRlbnNpb24uXG5cblBsZWFzZSB1c2UgdGhlIGlzc3VlIHRyYWNrZXIgb24gdGhlIGhvbWVwYWdlIHRvIHJlcG9ydCBidWdzIGFuZC9vciBmaWxlIGZlYXR1cmUgcmVxdWVzdHMsIHRoaXMgbWFrZXMgdHJhY2tpbmcgZWFzaWVyIGZvciBtZS4gVGhhbmtzIVxuXG5TZWUgdGhlIGluY2x1ZGVkIENIQU5HRUxPRy5tZCBmb3IgaW5mbyBhYm91dCBjaGFuZ2VzIGJldHdlZW4gZGlmZmVyZW50IHZlcnNpb25zLCBvciBzZWUgaXQgb25saW5lOiBodHRwczovL2dpdGxhYi5jb20vdG9kby50eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uL3RvZG8tdHh0LWdub21lLXNoZWxsLWV4dGVuc2lvbi8tL2Jsb2IvbWFzdGVyL0NIQU5HRUxPRy5tZCIsCiAgIm5hbWUiOiAiVG9kby50eHQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3RvZG8udHh0LWdub21lLXNoZWxsLWV4dGVuc2lvbi90b2RvLXR4dC1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogInRvZG8udHh0QGJhcnQubGliZXJ0LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzNwp9"},
     "43": {"version": "40", "sha256": "0ly27qxr126ffhpx8hvvyz6q2179kpq1q7hjy1wja6zflwcc94jf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgaW50ZXJmYWNlIGZvciB0b2RvLnR4dC4gXG5cblRvZG8udHh0IGlzIGEgZnV0dXJlLXByb29mIHN5bnRheCBmb3IgdGFza3MgKG5vdCBtYWRlIGJ5IG1lKSwgZm9yIG1vcmUgaW5mbzogaHR0cDovL3RvZG90eHQuY29tL1xuXG5Tb21lIGV4YW1wbGVzOlxuVGFzazogQmFzaWMgdGFza1xuKEEpIFRhc2s6IEhpZ2ggcHJpb3JpdHkgdGFza1xuVGFzayBAcHJvamVjdCArY29udGV4dDogVGFzayBpcyBwYXJ0IG9mIHByb2plY3QgYW5kIGhhcyBhIGNlcnRhaW4gY29udGV4dFxueCAyMDEzLTA4LTIyIFRhc2s6IFRhc2sgd2FzIGNvbXBsZXRlZCBvbiB0aGUgMjJuZCBvZiBBdWd1c3RcblxuRm9yIG1vcmUgaW5mbyBhYm91dCB0aGUgc3ludGF4OiBodHRwczovL2dpdGh1Yi5jb20vZ2luYXRyYXBhbmkvdG9kby50eHQtY2xpL3dpa2kvVGhlLVRvZG8udHh0LUZvcm1hdFxuXG5RdWljayBzdGFydDpcbldoZW4geW91IGZpcnN0IGVuYWJsZSB0aGUgZXh0ZW5zaW9uLCBjaGFuY2VzIGFyZSBoaWdoIHlvdSdsbCBzZWUgYSBbWF0gaW4geW91ciB0b3AgcGFuZWwuIElmIHlvdSBjbGljayB0aGUgW1hdLCB5b3Ugd2lsbCBiZSBhYmxlIHRvIGNob29zZSBiZXR3ZWVuIGNyZWF0aW5nIHRoZSBuZWNlc3NhcnkgZmlsZXMgYXV0b21hdGljYWxseSBvciBzZWxlY3RpbmcgeW91ciBvd24gZXhpc3RpbmcgZmlsZXMgdG8gYmUgdXNlZCB3aXRoIHRoZSBleHRlbnNpb24uXG5cblBsZWFzZSB1c2UgdGhlIGlzc3VlIHRyYWNrZXIgb24gdGhlIGhvbWVwYWdlIHRvIHJlcG9ydCBidWdzIGFuZC9vciBmaWxlIGZlYXR1cmUgcmVxdWVzdHMsIHRoaXMgbWFrZXMgdHJhY2tpbmcgZWFzaWVyIGZvciBtZS4gVGhhbmtzIVxuXG5TZWUgdGhlIGluY2x1ZGVkIENIQU5HRUxPRy5tZCBmb3IgaW5mbyBhYm91dCBjaGFuZ2VzIGJldHdlZW4gZGlmZmVyZW50IHZlcnNpb25zLCBvciBzZWUgaXQgb25saW5lOiBodHRwczovL2dpdGxhYi5jb20vdG9kby50eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uL3RvZG8tdHh0LWdub21lLXNoZWxsLWV4dGVuc2lvbi8tL2Jsb2IvbWFzdGVyL0NIQU5HRUxPRy5tZCIsCiAgImdldHRleHQtZG9tYWluIjogInRvZG90eHQiLAogICJuYW1lIjogIlRvZG8udHh0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS90b2RvLnR4dC1nbm9tZS1zaGVsbC1leHRlbnNpb24vdG9kby10eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ0b2RvLnR4dEBiYXJ0LmxpYmVydC5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDAKfQ=="},
     "44": {"version": "40", "sha256": "0ly27qxr126ffhpx8hvvyz6q2179kpq1q7hjy1wja6zflwcc94jf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgaW50ZXJmYWNlIGZvciB0b2RvLnR4dC4gXG5cblRvZG8udHh0IGlzIGEgZnV0dXJlLXByb29mIHN5bnRheCBmb3IgdGFza3MgKG5vdCBtYWRlIGJ5IG1lKSwgZm9yIG1vcmUgaW5mbzogaHR0cDovL3RvZG90eHQuY29tL1xuXG5Tb21lIGV4YW1wbGVzOlxuVGFzazogQmFzaWMgdGFza1xuKEEpIFRhc2s6IEhpZ2ggcHJpb3JpdHkgdGFza1xuVGFzayBAcHJvamVjdCArY29udGV4dDogVGFzayBpcyBwYXJ0IG9mIHByb2plY3QgYW5kIGhhcyBhIGNlcnRhaW4gY29udGV4dFxueCAyMDEzLTA4LTIyIFRhc2s6IFRhc2sgd2FzIGNvbXBsZXRlZCBvbiB0aGUgMjJuZCBvZiBBdWd1c3RcblxuRm9yIG1vcmUgaW5mbyBhYm91dCB0aGUgc3ludGF4OiBodHRwczovL2dpdGh1Yi5jb20vZ2luYXRyYXBhbmkvdG9kby50eHQtY2xpL3dpa2kvVGhlLVRvZG8udHh0LUZvcm1hdFxuXG5RdWljayBzdGFydDpcbldoZW4geW91IGZpcnN0IGVuYWJsZSB0aGUgZXh0ZW5zaW9uLCBjaGFuY2VzIGFyZSBoaWdoIHlvdSdsbCBzZWUgYSBbWF0gaW4geW91ciB0b3AgcGFuZWwuIElmIHlvdSBjbGljayB0aGUgW1hdLCB5b3Ugd2lsbCBiZSBhYmxlIHRvIGNob29zZSBiZXR3ZWVuIGNyZWF0aW5nIHRoZSBuZWNlc3NhcnkgZmlsZXMgYXV0b21hdGljYWxseSBvciBzZWxlY3RpbmcgeW91ciBvd24gZXhpc3RpbmcgZmlsZXMgdG8gYmUgdXNlZCB3aXRoIHRoZSBleHRlbnNpb24uXG5cblBsZWFzZSB1c2UgdGhlIGlzc3VlIHRyYWNrZXIgb24gdGhlIGhvbWVwYWdlIHRvIHJlcG9ydCBidWdzIGFuZC9vciBmaWxlIGZlYXR1cmUgcmVxdWVzdHMsIHRoaXMgbWFrZXMgdHJhY2tpbmcgZWFzaWVyIGZvciBtZS4gVGhhbmtzIVxuXG5TZWUgdGhlIGluY2x1ZGVkIENIQU5HRUxPRy5tZCBmb3IgaW5mbyBhYm91dCBjaGFuZ2VzIGJldHdlZW4gZGlmZmVyZW50IHZlcnNpb25zLCBvciBzZWUgaXQgb25saW5lOiBodHRwczovL2dpdGxhYi5jb20vdG9kby50eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uL3RvZG8tdHh0LWdub21lLXNoZWxsLWV4dGVuc2lvbi8tL2Jsb2IvbWFzdGVyL0NIQU5HRUxPRy5tZCIsCiAgImdldHRleHQtZG9tYWluIjogInRvZG90eHQiLAogICJuYW1lIjogIlRvZG8udHh0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS90b2RvLnR4dC1nbm9tZS1zaGVsbC1leHRlbnNpb24vdG9kby10eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ0b2RvLnR4dEBiYXJ0LmxpYmVydC5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDAKfQ=="},
-    "45": {"version": "43", "sha256": "1xmsvsi23gl44nz6ldgyfp086711m155vz69md3dch1d3ilfhq1h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgaW50ZXJmYWNlIGZvciB0b2RvLnR4dC4gXG5cblRvZG8udHh0IGlzIGEgZnV0dXJlLXByb29mIHN5bnRheCBmb3IgdGFza3MgKG5vdCBtYWRlIGJ5IG1lKSwgZm9yIG1vcmUgaW5mbzogaHR0cDovL3RvZG90eHQuY29tL1xuXG5Tb21lIGV4YW1wbGVzOlxuVGFzazogQmFzaWMgdGFza1xuKEEpIFRhc2s6IEhpZ2ggcHJpb3JpdHkgdGFza1xuVGFzayBAcHJvamVjdCArY29udGV4dDogVGFzayBpcyBwYXJ0IG9mIHByb2plY3QgYW5kIGhhcyBhIGNlcnRhaW4gY29udGV4dFxueCAyMDEzLTA4LTIyIFRhc2s6IFRhc2sgd2FzIGNvbXBsZXRlZCBvbiB0aGUgMjJuZCBvZiBBdWd1c3RcblxuRm9yIG1vcmUgaW5mbyBhYm91dCB0aGUgc3ludGF4OiBodHRwczovL2dpdGh1Yi5jb20vZ2luYXRyYXBhbmkvdG9kby50eHQtY2xpL3dpa2kvVGhlLVRvZG8udHh0LUZvcm1hdFxuXG5RdWljayBzdGFydDpcbldoZW4geW91IGZpcnN0IGVuYWJsZSB0aGUgZXh0ZW5zaW9uLCBjaGFuY2VzIGFyZSBoaWdoIHlvdSdsbCBzZWUgYSBbWF0gaW4geW91ciB0b3AgcGFuZWwuIElmIHlvdSBjbGljayB0aGUgW1hdLCB5b3Ugd2lsbCBiZSBhYmxlIHRvIGNob29zZSBiZXR3ZWVuIGNyZWF0aW5nIHRoZSBuZWNlc3NhcnkgZmlsZXMgYXV0b21hdGljYWxseSBvciBzZWxlY3RpbmcgeW91ciBvd24gZXhpc3RpbmcgZmlsZXMgdG8gYmUgdXNlZCB3aXRoIHRoZSBleHRlbnNpb24uXG5cblBsZWFzZSB1c2UgdGhlIGlzc3VlIHRyYWNrZXIgb24gdGhlIGhvbWVwYWdlIHRvIHJlcG9ydCBidWdzIGFuZC9vciBmaWxlIGZlYXR1cmUgcmVxdWVzdHMsIHRoaXMgbWFrZXMgdHJhY2tpbmcgZWFzaWVyIGZvciBtZS4gVGhhbmtzIVxuXG5TZWUgdGhlIGluY2x1ZGVkIENIQU5HRUxPRy5tZCBmb3IgaW5mbyBhYm91dCBjaGFuZ2VzIGJldHdlZW4gZGlmZmVyZW50IHZlcnNpb25zLCBvciBzZWUgaXQgb25saW5lOiBodHRwczovL2dpdGxhYi5jb20vdG9kby50eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uL3RvZG8tdHh0LWdub21lLXNoZWxsLWV4dGVuc2lvbi8tL2Jsb2IvbWFzdGVyL0NIQU5HRUxPRy5tZCIsCiAgImdldHRleHQtZG9tYWluIjogInRvZG90eHQiLAogICJuYW1lIjogIlRvZG8udHh0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3RvZG8udHh0LWdub21lLXNoZWxsLWV4dGVuc2lvbi90b2RvLXR4dC1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogInRvZG8udHh0QGJhcnQubGliZXJ0LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA0Mwp9"}
+    "45": {"version": "43", "sha256": "1xmsvsi23gl44nz6ldgyfp086711m155vz69md3dch1d3ilfhq1h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgaW50ZXJmYWNlIGZvciB0b2RvLnR4dC4gXG5cblRvZG8udHh0IGlzIGEgZnV0dXJlLXByb29mIHN5bnRheCBmb3IgdGFza3MgKG5vdCBtYWRlIGJ5IG1lKSwgZm9yIG1vcmUgaW5mbzogaHR0cDovL3RvZG90eHQuY29tL1xuXG5Tb21lIGV4YW1wbGVzOlxuVGFzazogQmFzaWMgdGFza1xuKEEpIFRhc2s6IEhpZ2ggcHJpb3JpdHkgdGFza1xuVGFzayBAcHJvamVjdCArY29udGV4dDogVGFzayBpcyBwYXJ0IG9mIHByb2plY3QgYW5kIGhhcyBhIGNlcnRhaW4gY29udGV4dFxueCAyMDEzLTA4LTIyIFRhc2s6IFRhc2sgd2FzIGNvbXBsZXRlZCBvbiB0aGUgMjJuZCBvZiBBdWd1c3RcblxuRm9yIG1vcmUgaW5mbyBhYm91dCB0aGUgc3ludGF4OiBodHRwczovL2dpdGh1Yi5jb20vZ2luYXRyYXBhbmkvdG9kby50eHQtY2xpL3dpa2kvVGhlLVRvZG8udHh0LUZvcm1hdFxuXG5RdWljayBzdGFydDpcbldoZW4geW91IGZpcnN0IGVuYWJsZSB0aGUgZXh0ZW5zaW9uLCBjaGFuY2VzIGFyZSBoaWdoIHlvdSdsbCBzZWUgYSBbWF0gaW4geW91ciB0b3AgcGFuZWwuIElmIHlvdSBjbGljayB0aGUgW1hdLCB5b3Ugd2lsbCBiZSBhYmxlIHRvIGNob29zZSBiZXR3ZWVuIGNyZWF0aW5nIHRoZSBuZWNlc3NhcnkgZmlsZXMgYXV0b21hdGljYWxseSBvciBzZWxlY3RpbmcgeW91ciBvd24gZXhpc3RpbmcgZmlsZXMgdG8gYmUgdXNlZCB3aXRoIHRoZSBleHRlbnNpb24uXG5cblBsZWFzZSB1c2UgdGhlIGlzc3VlIHRyYWNrZXIgb24gdGhlIGhvbWVwYWdlIHRvIHJlcG9ydCBidWdzIGFuZC9vciBmaWxlIGZlYXR1cmUgcmVxdWVzdHMsIHRoaXMgbWFrZXMgdHJhY2tpbmcgZWFzaWVyIGZvciBtZS4gVGhhbmtzIVxuXG5TZWUgdGhlIGluY2x1ZGVkIENIQU5HRUxPRy5tZCBmb3IgaW5mbyBhYm91dCBjaGFuZ2VzIGJldHdlZW4gZGlmZmVyZW50IHZlcnNpb25zLCBvciBzZWUgaXQgb25saW5lOiBodHRwczovL2dpdGxhYi5jb20vdG9kby50eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uL3RvZG8tdHh0LWdub21lLXNoZWxsLWV4dGVuc2lvbi8tL2Jsb2IvbWFzdGVyL0NIQU5HRUxPRy5tZCIsCiAgImdldHRleHQtZG9tYWluIjogInRvZG90eHQiLAogICJuYW1lIjogIlRvZG8udHh0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3RvZG8udHh0LWdub21lLXNoZWxsLWV4dGVuc2lvbi90b2RvLXR4dC1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogInRvZG8udHh0QGJhcnQubGliZXJ0LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA0Mwp9"},
+    "46": {"version": "44", "sha256": "0yzzvw9xlqmwh543j5g9v1g3avbpsz5kngfdnrg70yyxslr6ahm1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgaW50ZXJmYWNlIGZvciB0b2RvLnR4dC4gXG5cblRvZG8udHh0IGlzIGEgZnV0dXJlLXByb29mIHN5bnRheCBmb3IgdGFza3MgKG5vdCBtYWRlIGJ5IG1lKSwgZm9yIG1vcmUgaW5mbzogaHR0cDovL3RvZG90eHQuY29tL1xuXG5Tb21lIGV4YW1wbGVzOlxuVGFzazogQmFzaWMgdGFza1xuKEEpIFRhc2s6IEhpZ2ggcHJpb3JpdHkgdGFza1xuVGFzayBAcHJvamVjdCArY29udGV4dDogVGFzayBpcyBwYXJ0IG9mIHByb2plY3QgYW5kIGhhcyBhIGNlcnRhaW4gY29udGV4dFxueCAyMDEzLTA4LTIyIFRhc2s6IFRhc2sgd2FzIGNvbXBsZXRlZCBvbiB0aGUgMjJuZCBvZiBBdWd1c3RcblxuRm9yIG1vcmUgaW5mbyBhYm91dCB0aGUgc3ludGF4OiBodHRwczovL2dpdGh1Yi5jb20vZ2luYXRyYXBhbmkvdG9kby50eHQtY2xpL3dpa2kvVGhlLVRvZG8udHh0LUZvcm1hdFxuXG5RdWljayBzdGFydDpcbldoZW4geW91IGZpcnN0IGVuYWJsZSB0aGUgZXh0ZW5zaW9uLCBjaGFuY2VzIGFyZSBoaWdoIHlvdSdsbCBzZWUgYSBbWF0gaW4geW91ciB0b3AgcGFuZWwuIElmIHlvdSBjbGljayB0aGUgW1hdLCB5b3Ugd2lsbCBiZSBhYmxlIHRvIGNob29zZSBiZXR3ZWVuIGNyZWF0aW5nIHRoZSBuZWNlc3NhcnkgZmlsZXMgYXV0b21hdGljYWxseSBvciBzZWxlY3RpbmcgeW91ciBvd24gZXhpc3RpbmcgZmlsZXMgdG8gYmUgdXNlZCB3aXRoIHRoZSBleHRlbnNpb24uXG5cblBsZWFzZSB1c2UgdGhlIGlzc3VlIHRyYWNrZXIgb24gdGhlIGhvbWVwYWdlIHRvIHJlcG9ydCBidWdzIGFuZC9vciBmaWxlIGZlYXR1cmUgcmVxdWVzdHMsIHRoaXMgbWFrZXMgdHJhY2tpbmcgZWFzaWVyIGZvciBtZS4gVGhhbmtzIVxuXG5TZWUgdGhlIGluY2x1ZGVkIENIQU5HRUxPRy5tZCBmb3IgaW5mbyBhYm91dCBjaGFuZ2VzIGJldHdlZW4gZGlmZmVyZW50IHZlcnNpb25zLCBvciBzZWUgaXQgb25saW5lOiBodHRwczovL2dpdGxhYi5jb20vdG9kby50eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uL3RvZG8tdHh0LWdub21lLXNoZWxsLWV4dGVuc2lvbi8tL2Jsb2IvbWFzdGVyL0NIQU5HRUxPRy5tZCIsCiAgImdldHRleHQtZG9tYWluIjogInRvZG90eHQiLAogICJuYW1lIjogIlRvZG8udHh0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3RvZG8udHh0LWdub21lLXNoZWxsLWV4dGVuc2lvbi90b2RvLXR4dC1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogInRvZG8udHh0QGJhcnQubGliZXJ0LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA0NAp9"}
   }}
 , {"uuid": "text_translator@awamper.gmail.com", "name": "Text Translator", "pname": "text-translator", "description": "** Needs the package translate-shell **\nTranslation of the text by different translators (currently Google.Translate, Yandex.Translate).\nShortcuts:\nSuper+T - open translator dialog.\nSuper+Shift+T - open translator dialog and translate text from clipboard.\nSuper+Alt+T - open translator dialog and translate from primary selection.\nCtrl+Enter+ - Translate text.\nCtrl+Shift+C - copy translated text to clipboard.\nCtrl+S - swap languages.\nCtrl+D - reset languages to default\nTab+ - toggle transliteration of result text.", "link": "https://extensions.gnome.org/extension/593/text-translator/", "shell_version_map": {
     "38": {"version": "36", "sha256": "1idzgg4vb791k5dryjvznr6mfwfx59vlgabw2n3spysbwvjv2a48", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIioqIE5lZWRzIHRoZSBwYWNrYWdlIHRyYW5zbGF0ZS1zaGVsbCAqKlxuVHJhbnNsYXRpb24gb2YgdGhlIHRleHQgYnkgZGlmZmVyZW50IHRyYW5zbGF0b3JzIChjdXJyZW50bHkgR29vZ2xlLlRyYW5zbGF0ZSwgWWFuZGV4LlRyYW5zbGF0ZSkuXG5TaG9ydGN1dHM6XG5TdXBlcitUIC0gb3BlbiB0cmFuc2xhdG9yIGRpYWxvZy5cblN1cGVyK1NoaWZ0K1QgLSBvcGVuIHRyYW5zbGF0b3IgZGlhbG9nIGFuZCB0cmFuc2xhdGUgdGV4dCBmcm9tIGNsaXBib2FyZC5cblN1cGVyK0FsdCtUIC0gb3BlbiB0cmFuc2xhdG9yIGRpYWxvZyBhbmQgdHJhbnNsYXRlIGZyb20gcHJpbWFyeSBzZWxlY3Rpb24uXG5DdHJsK0VudGVyKyAtIFRyYW5zbGF0ZSB0ZXh0LlxuQ3RybCtTaGlmdCtDIC0gY29weSB0cmFuc2xhdGVkIHRleHQgdG8gY2xpcGJvYXJkLlxuQ3RybCtTIC0gc3dhcCBsYW5ndWFnZXMuXG5DdHJsK0QgLSByZXNldCBsYW5ndWFnZXMgdG8gZGVmYXVsdFxuVGFiKyAtIHRvZ2dsZSB0cmFuc2xpdGVyYXRpb24gb2YgcmVzdWx0IHRleHQuIiwKICAibmFtZSI6ICJUZXh0IFRyYW5zbGF0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGV4dC10cmFuc2xhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ3Vmb2UvdGV4dC10cmFuc2xhdG9yIiwKICAidXVpZCI6ICJ0ZXh0X3RyYW5zbGF0b3JAYXdhbXBlci5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzYKfQ=="}
@@ -530,7 +536,7 @@
     "43": {"version": "18", "sha256": "1bd2zjmb5h4iw9z9k07x92fmxgbj8psz44p4fa64k0kzxka10mzp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGJldHdlZW4gdGhlIHN5c3RlbSBwcm94eSBzZXR0aW5ncyBwcm9maWxlcyBkZWZpbmVkIGluIE5ldHdvcmsgU2V0dGluZ3MuIiwKICAibmFtZSI6ICJQcm94eSBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90b21mbGFubmFnaGFuL3Byb3h5LXN3aXRjaGVyIiwKICAidXVpZCI6ICJQcm94eVN3aXRjaGVyQGZsYW5uYWdoYW4uY29tIiwKICAidmVyc2lvbiI6IDE4Cn0="},
     "44": {"version": "19", "sha256": "0y7qx8kjwgpghl9w30xwmaxv9bafb26fhyx4lr52p4i1q2fi7y65", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGJldHdlZW4gdGhlIHN5c3RlbSBwcm94eSBzZXR0aW5ncyBwcm9maWxlcyBkZWZpbmVkIGluIE5ldHdvcmsgU2V0dGluZ3MuIiwKICAibmFtZSI6ICJQcm94eSBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90b21mbGFubmFnaGFuL3Byb3h5LXN3aXRjaGVyIiwKICAidXVpZCI6ICJQcm94eVN3aXRjaGVyQGZsYW5uYWdoYW4uY29tIiwKICAidmVyc2lvbiI6IDE5Cn0="},
     "45": {"version": "20", "sha256": "1d2zkxpg3fidr1q0v1dzxw3y0c24ixv712s3vzrylzn761jllcmd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGJldHdlZW4gdGhlIHN5c3RlbSBwcm94eSBzZXR0aW5ncyBwcm9maWxlcyBkZWZpbmVkIGluIE5ldHdvcmsgU2V0dGluZ3MuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiUHJveHlTd2l0Y2hlckBmbGFubmFnaGFuLmNvbSIsCiAgIm5hbWUiOiAiUHJveHkgU3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdG9tZmxhbm5hZ2hhbi9wcm94eS1zd2l0Y2hlciIsCiAgInV1aWQiOiAiUHJveHlTd2l0Y2hlckBmbGFubmFnaGFuLmNvbSIsCiAgInZlcnNpb24iOiAyMAp9"},
-    "46": {"version": "21", "sha256": "04xrx55qfkwa6p40r8dyvk72ac9wg6cw54gafmghrxaf2r6syxy2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGJldHdlZW4gdGhlIHN5c3RlbSBwcm94eSBzZXR0aW5ncyBwcm9maWxlcyBkZWZpbmVkIGluIE5ldHdvcmsgU2V0dGluZ3MuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiUHJveHlTd2l0Y2hlckBmbGFubmFnaGFuLmNvbSIsCiAgIm5hbWUiOiAiUHJveHkgU3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdG9tZmxhbm5hZ2hhbi9wcm94eS1zd2l0Y2hlciIsCiAgInV1aWQiOiAiUHJveHlTd2l0Y2hlckBmbGFubmFnaGFuLmNvbSIsCiAgInZlcnNpb24iOiAyMQp9"}
+    "46": {"version": "23", "sha256": "089vs06s6m9q0g9mw3jg8h0x6qgxr66xhjj6h2vhs01bvfdv6dr3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGJldHdlZW4gdGhlIHN5c3RlbSBwcm94eSBzZXR0aW5ncyBwcm9maWxlcyBkZWZpbmVkIGluIE5ldHdvcmsgU2V0dGluZ3MuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiUHJveHlTd2l0Y2hlckBmbGFubmFnaGFuLmNvbSIsCiAgIm5hbWUiOiAiUHJveHkgU3dpdGNoZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY29tLWZsYW5uYWdoYW4tUHJveHlTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90b21mbGFubmFnaGFuL3Byb3h5LXN3aXRjaGVyIiwKICAidXVpZCI6ICJQcm94eVN3aXRjaGVyQGZsYW5uYWdoYW4uY29tIiwKICAidmVyc2lvbiI6IDIzCn0="}
   }}
 , {"uuid": "clipboard-indicator@tudmotu.com", "name": "Clipboard Indicator", "pname": "clipboard-indicator", "description": "The most popular clipboard manager for GNOME, with over 1M downloads", "link": "https://extensions.gnome.org/extension/779/clipboard-indicator/", "shell_version_map": {
     "38": {"version": "37", "sha256": "1nd6ydp5wmd56zf3vwrsi2wflrw15krdbvqv2fkmla8rndallp1i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsaXBib2FyZCBNYW5hZ2VyIGV4dGVuc2lvbiBmb3IgR25vbWUtU2hlbGwgLSBBZGRzIGEgY2xpcGJvYXJkIGluZGljYXRvciB0byB0aGUgdG9wIHBhbmVsLCBhbmQgY2FjaGVzIGNsaXBib2FyZCBoaXN0b3J5LiIsCiAgIm5hbWUiOiAiQ2xpcGJvYXJkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1R1ZG1vdHUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNsaXBib2FyZC1pbmRpY2F0b3IiLAogICJ1dWlkIjogImNsaXBib2FyZC1pbmRpY2F0b3JAdHVkbW90dS5jb20iLAogICJ2ZXJzaW9uIjogMzcKfQ=="},
@@ -758,7 +764,8 @@
     "42": {"version": "34", "sha256": "039bkjfr4ga2n3cj8pqpkvqpbspyk23f1dnv15sbq1il2zjqnm4i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgaGFyZGRpc2sgYWN0aXZpdHkgKElPIHNwZWVkIHJlYWQvd3JpdGUgYW5kIExFRCkuIENsaWNrIHRvIGNoYW5nZSBsZWQgc2l6ZSIsCiAgIm5hbWUiOiAiSGFyZGRpc2sgTEVEIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iaWppL2hhcmRkaXNrbGVkIiwKICAidXVpZCI6ICJoYXJkZGlza2xlZEBiaWppZHJvaWQuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDM0Cn0="},
     "43": {"version": "34", "sha256": "039bkjfr4ga2n3cj8pqpkvqpbspyk23f1dnv15sbq1il2zjqnm4i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgaGFyZGRpc2sgYWN0aXZpdHkgKElPIHNwZWVkIHJlYWQvd3JpdGUgYW5kIExFRCkuIENsaWNrIHRvIGNoYW5nZSBsZWQgc2l6ZSIsCiAgIm5hbWUiOiAiSGFyZGRpc2sgTEVEIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iaWppL2hhcmRkaXNrbGVkIiwKICAidXVpZCI6ICJoYXJkZGlza2xlZEBiaWppZHJvaWQuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDM0Cn0="},
     "44": {"version": "34", "sha256": "039bkjfr4ga2n3cj8pqpkvqpbspyk23f1dnv15sbq1il2zjqnm4i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgaGFyZGRpc2sgYWN0aXZpdHkgKElPIHNwZWVkIHJlYWQvd3JpdGUgYW5kIExFRCkuIENsaWNrIHRvIGNoYW5nZSBsZWQgc2l6ZSIsCiAgIm5hbWUiOiAiSGFyZGRpc2sgTEVEIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iaWppL2hhcmRkaXNrbGVkIiwKICAidXVpZCI6ICJoYXJkZGlza2xlZEBiaWppZHJvaWQuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDM0Cn0="},
-    "45": {"version": "37", "sha256": "0h6j301fafjx73ywc5xl05c2arfaj1kvwxaah8a448qfqrldxvgm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgaGFyZGRpc2sgYWN0aXZpdHkgKElPIHNwZWVkIHJlYWQvd3JpdGUgYW5kIExFRCkuIENsaWNrIHRvIGNoYW5nZSBsZWQgc2l6ZSIsCiAgIm5hbWUiOiAiSGFyZGRpc2sgTEVEIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhhcmRkaXNrbGVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JpamkvaGFyZGRpc2tsZWQiLAogICJ1dWlkIjogImhhcmRkaXNrbGVkQGJpamlkcm9pZC5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzcKfQ=="}
+    "45": {"version": "37", "sha256": "0h6j301fafjx73ywc5xl05c2arfaj1kvwxaah8a448qfqrldxvgm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgaGFyZGRpc2sgYWN0aXZpdHkgKElPIHNwZWVkIHJlYWQvd3JpdGUgYW5kIExFRCkuIENsaWNrIHRvIGNoYW5nZSBsZWQgc2l6ZSIsCiAgIm5hbWUiOiAiSGFyZGRpc2sgTEVEIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhhcmRkaXNrbGVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JpamkvaGFyZGRpc2tsZWQiLAogICJ1dWlkIjogImhhcmRkaXNrbGVkQGJpamlkcm9pZC5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzcKfQ=="},
+    "46": {"version": "39", "sha256": "1ndw6c5i8j52i43wr0awf4bhq5z6rh01ai3kv8y7l8anfi8ic4rj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgaGFyZGRpc2sgYWN0aXZpdHkgKElPIHNwZWVkIHJlYWQvd3JpdGUgYW5kIExFRCkuIENsaWNrIHRvIGNoYW5nZSBsZWQgc2l6ZSIsCiAgIm5hbWUiOiAiSGFyZGRpc2sgTEVEIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhhcmRkaXNrbGVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JpamkvaGFyZGRpc2tsZWQiLAogICJ1dWlkIjogImhhcmRkaXNrbGVkQGJpamlkcm9pZC5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzkKfQ=="}
   }}
 , {"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": "34", "sha256": "1pca7xk11bh46a1y1dhxmw6rlmmf5dpp0jamwn17xxxsp35fz5qk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgU3luY3RoaW5nIEljb24gaW4gVG9wIEJhciIsCiAgIm5hbWUiOiAiU3luY3RoaW5nIEljb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3luY3RoaW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamF5c3RyaWN0b3IvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN5bmN0aGluZyIsCiAgInV1aWQiOiAic3luY3RoaW5naWNvbkBqYXkuc3RyaWN0QHBvc3Rlby5kZSIsCiAgInZlcnNpb24iOiAzNAp9"},
@@ -776,7 +783,8 @@
     "42": {"version": "20", "sha256": "0ymrcci3pn62x80kazp2rn3yb52pz885w99djl25s8x764nzksjd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgd2luZG93IGlzIHJlYWR5IE5vdGlmaWNhdGlvbiIsCiAgImxpY2Vuc2UiOiAiQXBhY2hlLTIuMCIsCiAgIm5hbWUiOiAiV2luZG93IElzIFJlYWR5IC0gTm90aWZpY2F0aW9uIFJlbW92ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL251bm9mYXJydWNhL1dpbmRvd0lzUmVhZHlfUmVtb3ZlciIsCiAgInV1aWQiOiAid2luZG93SXNSZWFkeV9SZW1vdmVyQG51bm9mYXJydWNhQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyMAp9"},
     "43": {"version": "20", "sha256": "0ymrcci3pn62x80kazp2rn3yb52pz885w99djl25s8x764nzksjd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgd2luZG93IGlzIHJlYWR5IE5vdGlmaWNhdGlvbiIsCiAgImxpY2Vuc2UiOiAiQXBhY2hlLTIuMCIsCiAgIm5hbWUiOiAiV2luZG93IElzIFJlYWR5IC0gTm90aWZpY2F0aW9uIFJlbW92ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL251bm9mYXJydWNhL1dpbmRvd0lzUmVhZHlfUmVtb3ZlciIsCiAgInV1aWQiOiAid2luZG93SXNSZWFkeV9SZW1vdmVyQG51bm9mYXJydWNhQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyMAp9"},
     "44": {"version": "20", "sha256": "0ymrcci3pn62x80kazp2rn3yb52pz885w99djl25s8x764nzksjd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgd2luZG93IGlzIHJlYWR5IE5vdGlmaWNhdGlvbiIsCiAgImxpY2Vuc2UiOiAiQXBhY2hlLTIuMCIsCiAgIm5hbWUiOiAiV2luZG93IElzIFJlYWR5IC0gTm90aWZpY2F0aW9uIFJlbW92ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL251bm9mYXJydWNhL1dpbmRvd0lzUmVhZHlfUmVtb3ZlciIsCiAgInV1aWQiOiAid2luZG93SXNSZWFkeV9SZW1vdmVyQG51bm9mYXJydWNhQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyMAp9"},
-    "45": {"version": "22", "sha256": "0dm711ds72xgkim2jq3g6yjv253ryh3gzmbsxgqvj0ja5wzpks5v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgd2luZG93IGlzIHJlYWR5IE5vdGlmaWNhdGlvbiIsCiAgImxpY2Vuc2UiOiAiQXBhY2hlLTIuMCIsCiAgIm5hbWUiOiAiV2luZG93IElzIFJlYWR5IC0gTm90aWZpY2F0aW9uIFJlbW92ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbnVub2ZhcnJ1Y2EvV2luZG93SXNSZWFkeV9SZW1vdmVyIiwKICAidXVpZCI6ICJ3aW5kb3dJc1JlYWR5X1JlbW92ZXJAbnVub2ZhcnJ1Y2FAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIyCn0="}
+    "45": {"version": "23", "sha256": "1fkk6v623p0vka9g1rw0h98g9zb7kxh6ds71synp5fg3mw87nvs5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgd2luZG93IGlzIHJlYWR5IE5vdGlmaWNhdGlvbiIsCiAgImxpY2Vuc2UiOiAiQXBhY2hlLTIuMCIsCiAgIm5hbWUiOiAiV2luZG93IElzIFJlYWR5IC0gTm90aWZpY2F0aW9uIFJlbW92ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL251bm9mYXJydWNhL1dpbmRvd0lzUmVhZHlfUmVtb3ZlciIsCiAgInV1aWQiOiAid2luZG93SXNSZWFkeV9SZW1vdmVyQG51bm9mYXJydWNhQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyMwp9"},
+    "46": {"version": "23", "sha256": "1fkk6v623p0vka9g1rw0h98g9zb7kxh6ds71synp5fg3mw87nvs5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgd2luZG93IGlzIHJlYWR5IE5vdGlmaWNhdGlvbiIsCiAgImxpY2Vuc2UiOiAiQXBhY2hlLTIuMCIsCiAgIm5hbWUiOiAiV2luZG93IElzIFJlYWR5IC0gTm90aWZpY2F0aW9uIFJlbW92ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL251bm9mYXJydWNhL1dpbmRvd0lzUmVhZHlfUmVtb3ZlciIsCiAgInV1aWQiOiAid2luZG93SXNSZWFkeV9SZW1vdmVyQG51bm9mYXJydWNhQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyMwp9"}
   }}
 , {"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. There are examples in the wiki page on GitHub.\n See README about Gnome Console", "link": "https://extensions.gnome.org/extension/1010/archlinux-updates-indicator/", "shell_version_map": {
     "38": {"version": "39", "sha256": "1wcyjy9idj674s7pyz0210pb6kzb3jmj1fv08cm93frdl9g61dn3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZSBpbmRpY2F0b3IgZm9yIEFyY2ggTGludXggYW5kIEdOT01FIFNoZWxsLlxuKiogTm90ZSA6IHlvdSBub3cgbmVlZCB0byBpbnN0YWxsIHRoZSBwYWNrYWdlIHBhY21hbi1jb250cmliIHRvIHVzZSB0aGUgY2hlY2t1cGRhdGVzIHNjcmlwdC4gKipcbiAgQ2FuIHN1cHBvcnQgQVVSIG9yIG90aGVyIGRpc3Ryb3MgYnkgY2hhbmdpbmcgY29tbWFuZCB1c2VkIHRvIGNoZWNrIGZvciBhbmQgYXBwbHkgdXBkYXRlcy5cbiBTZWUgUkVBRE1FIGFib3V0IEdub21lIENvbnNvbGUiLAogICJuYW1lIjogIkFyY2ggTGludXggVXBkYXRlcyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYuMSIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JhcGhhZWxSb2NoZXQvYXJjaC11cGRhdGUiLAogICJ1dWlkIjogImFyY2gtdXBkYXRlQFJhcGhhZWxSb2NoZXQiLAogICJ2ZXJzaW9uIjogMzkKfQ=="},
@@ -820,14 +828,15 @@
     "43": {"version": "26", "sha256": "0qvhpajqnq7cbpkiwlaxp16r1amfv0kk4l98gcj5082vjpp2w9g7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2t3aGlzcGVyZXIgaXMgYSBleHRlbnNpb24gZm9yIFRhc2tXYXJyaW9yIEFwcGxpY2F0aW9uIGh0dHBzOi8vdGFza3dhcnJpb3Iub3JnLiBJdCBpcyB0byBkaXNwbGF5IHVwY29taW5nIHRhc2tzIGFuZCB0YXNrIGRldGFpbHMgYXMgd2VsbCBhcyB0byBjcmVhdGUgYW5kIG1vZGlmeSB0aGVtLlxuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2t3aGlzcGVyZXIiLAogICJsb2NhbGVkaXIiOiAiL3Vzci9sb2NhbC9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIlRhc2tXaGlzcGVyZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGFza3doaXNwZXJlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2luYXRpYy90YXNrd2hpc3BlcmVyIiwKICAidXVpZCI6ICJ0YXNrd2hpc3BlcmVyLWV4dGVuc2lvbkBpbmZpbmljb2RlLmRlIiwKICAidmVyc2lvbiI6IDI2Cn0="},
     "44": {"version": "26", "sha256": "0qvhpajqnq7cbpkiwlaxp16r1amfv0kk4l98gcj5082vjpp2w9g7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2t3aGlzcGVyZXIgaXMgYSBleHRlbnNpb24gZm9yIFRhc2tXYXJyaW9yIEFwcGxpY2F0aW9uIGh0dHBzOi8vdGFza3dhcnJpb3Iub3JnLiBJdCBpcyB0byBkaXNwbGF5IHVwY29taW5nIHRhc2tzIGFuZCB0YXNrIGRldGFpbHMgYXMgd2VsbCBhcyB0byBjcmVhdGUgYW5kIG1vZGlmeSB0aGVtLlxuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2t3aGlzcGVyZXIiLAogICJsb2NhbGVkaXIiOiAiL3Vzci9sb2NhbC9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIlRhc2tXaGlzcGVyZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGFza3doaXNwZXJlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2luYXRpYy90YXNrd2hpc3BlcmVyIiwKICAidXVpZCI6ICJ0YXNrd2hpc3BlcmVyLWV4dGVuc2lvbkBpbmZpbmljb2RlLmRlIiwKICAidmVyc2lvbiI6IDI2Cn0="}
   }}
-, {"uuid": "randomwallpaper@iflow.space", "name": "Random Wallpaper", "pname": "random-wallpaper", "description": "Load new desktop wallpapers from various online sources with ease!\n\nFeatures:\nVarious configurable wallpaper sources\n--> Unsplash\n--> Wallhaven\n--> Reddit\n--> Basically any JSON API/File (Examples)\n----> Chromecast Images\n----> NASA Picture of the day\n----> Bing Picture of the day\n----> Google Earth View\n--> Local folders\n--> Static URLs\nMultiple sources to create a pool of sources\nHistory of previous images\n--> Save your favourite wallpaper\n--> Add images to a block list\nSet the lock screen background\nTimer based renewal (Auto-Fetching)\n--> Load a new wallpaper on startup\n--> Pause the timer when desired\nSupport for multiple monitors using third party tools\n--> Hydra Paper\n--> Superpaper\nExecute a custom command after every new wallpaper\n", "link": "https://extensions.gnome.org/extension/1040/random-wallpaper/", "shell_version_map": {
+, {"uuid": "randomwallpaper@iflow.space", "name": "Random Wallpaper", "pname": "random-wallpaper", "description": "Load new desktop wallpapers from various online sources with ease!\n\nFeatures:\nVarious configurable wallpaper sources\n-- Unsplash\n-- Wallhaven\n-- Reddit\n-- Basically any JSON API/File (Examples)\n---- Chromecast Images\n---- NASA Picture of the day\n---- Bing Picture of the day\n---- Google Earth View\n-- Local folders\n-- Static URLs\nMultiple sources to create a pool of sources\nHistory of previous images\n-- Save your favourite wallpaper\n-- Add images to a block list\nSet the lock screen background\nTimer based renewal (Auto-Fetching)\n-- Load a new wallpaper on startup\n-- Pause the timer when desired\nSupport for multiple monitors using third party tools\n-- Hydra Paper\n-- Superpaper\nExecute a custom command after every new wallpaper\n", "link": "https://extensions.gnome.org/extension/1040/random-wallpaper/", "shell_version_map": {
     "38": {"version": "22", "sha256": "1mnc7k1816r0q8c95y36ryzl9cni6zms5xm587wmdmy4xi92i8ic", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoIGEgcmFuZG9tIHdhbGxwYXBlciBmcm9tIGFuIG9ubGluZSBzb3VyY2UgYW5kIHNldCBpdCBhcyBhIGRlc2t0b3AgYmFja2dyb3VuZC4gXG5UaGUgZGVza3RvcCBiYWNrZ3JvdW5kIGNhbiBiZSB1cGRhdGVkIHBlcmlvZGljYWxseSBvciBtYW51YWxseS5cblxuRmVhdHVyZXM6XG5NYW55IGRpZmZlcmVudCBvbmxpbmUgc291cmNlcyB3aXRoIGZpbHRlcnM6XG4gICAgICAgIC0gVW5zcGxhc2ggKGh0dHBzOi8vdW5zcGxhc2guY29tLylcbiAgICAgICAgLSBXYWxsaGF2ZW4gKGh0dHBzOi8vd2FsbGhhdmVuLmNjLylcbiAgICAgICAgLSBSZWRkaXQgKGh0dHBzOi8vcmVkZGl0LmNvbSlcbiAgICAgICAgLSBCYXNpY2FsbHkgYW55IEpTT04gQVBJL0ZpbGUgKHNlZSBFeGFtcGxlcyBvbiBHaXRIdWIpXG5IaXN0b3J5IG9mIHByZXZpb3VzIGltYWdlc1xuU2V0IGxvY2sgc2NyZWVuIGltYWdlXG5BdXRvbWF0aWMgcmVuZXdhbCAoQXV0by1GZXRjaGluZykiLAogICJuYW1lIjogIlJhbmRvbSBXYWxscGFwZXIiLAogICJzZW1hbnRpYy12ZXJzaW9uIjogIjIuNC41IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLmlmbG93LnJhbmRvbXdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2lmbDB3L1JhbmRvbVdhbGxwYXBlckdub21lMyIsCiAgInV1aWQiOiAicmFuZG9td2FsbHBhcGVyQGlmbG93LnNwYWNlIiwKICAidmVyc2lvbiI6IDIyCn0="},
     "40": {"version": "32", "sha256": "1l4s37rp1bx20r7pg906yqsvl9s6a18y0mcx08xkc11jn68d1g4q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoIGEgcmFuZG9tIHdhbGxwYXBlciBmcm9tIGFuIG9ubGluZSBzb3VyY2UgYW5kIHNldCBpdCBhcyBhIGRlc2t0b3AgYmFja2dyb3VuZC4gXG5UaGUgZGVza3RvcCBiYWNrZ3JvdW5kIGNhbiBiZSB1cGRhdGVkIHBlcmlvZGljYWxseSBvciBtYW51YWxseS5cblxuRmVhdHVyZXM6XG5NYW55IGRpZmZlcmVudCBvbmxpbmUgc291cmNlcyB3aXRoIGZpbHRlcnM6XG4gICAgICAgIC0gVW5zcGxhc2ggKGh0dHBzOi8vdW5zcGxhc2guY29tLylcbiAgICAgICAgLSBXYWxsaGF2ZW4gKGh0dHBzOi8vd2FsbGhhdmVuLmNjLylcbiAgICAgICAgLSBSZWRkaXQgKGh0dHBzOi8vcmVkZGl0LmNvbSlcbiAgICAgICAgLSBCYXNpY2FsbHkgYW55IEpTT04gQVBJL0ZpbGUgKHNlZSBFeGFtcGxlcyBvbiBHaXRIdWIpXG5IaXN0b3J5IG9mIHByZXZpb3VzIGltYWdlc1xuU2V0IGxvY2sgc2NyZWVuIGltYWdlXG5BdXRvbWF0aWMgcmVuZXdhbCAoQXV0by1GZXRjaGluZykiLAogICJuYW1lIjogIlJhbmRvbSBXYWxscGFwZXIiLAogICJzZW1hbnRpYy12ZXJzaW9uIjogIjIuNy40IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLmlmbG93LnJhbmRvbXdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIsCiAgICAiNDAuMSIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWZsMHcvUmFuZG9tV2FsbHBhcGVyR25vbWUzIiwKICAidXVpZCI6ICJyYW5kb213YWxscGFwZXJAaWZsb3cuc3BhY2UiLAogICJ2ZXJzaW9uIjogMzIKfQ=="},
     "41": {"version": "32", "sha256": "1l4s37rp1bx20r7pg906yqsvl9s6a18y0mcx08xkc11jn68d1g4q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoIGEgcmFuZG9tIHdhbGxwYXBlciBmcm9tIGFuIG9ubGluZSBzb3VyY2UgYW5kIHNldCBpdCBhcyBhIGRlc2t0b3AgYmFja2dyb3VuZC4gXG5UaGUgZGVza3RvcCBiYWNrZ3JvdW5kIGNhbiBiZSB1cGRhdGVkIHBlcmlvZGljYWxseSBvciBtYW51YWxseS5cblxuRmVhdHVyZXM6XG5NYW55IGRpZmZlcmVudCBvbmxpbmUgc291cmNlcyB3aXRoIGZpbHRlcnM6XG4gICAgICAgIC0gVW5zcGxhc2ggKGh0dHBzOi8vdW5zcGxhc2guY29tLylcbiAgICAgICAgLSBXYWxsaGF2ZW4gKGh0dHBzOi8vd2FsbGhhdmVuLmNjLylcbiAgICAgICAgLSBSZWRkaXQgKGh0dHBzOi8vcmVkZGl0LmNvbSlcbiAgICAgICAgLSBCYXNpY2FsbHkgYW55IEpTT04gQVBJL0ZpbGUgKHNlZSBFeGFtcGxlcyBvbiBHaXRIdWIpXG5IaXN0b3J5IG9mIHByZXZpb3VzIGltYWdlc1xuU2V0IGxvY2sgc2NyZWVuIGltYWdlXG5BdXRvbWF0aWMgcmVuZXdhbCAoQXV0by1GZXRjaGluZykiLAogICJuYW1lIjogIlJhbmRvbSBXYWxscGFwZXIiLAogICJzZW1hbnRpYy12ZXJzaW9uIjogIjIuNy40IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLmlmbG93LnJhbmRvbXdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIsCiAgICAiNDAuMSIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWZsMHcvUmFuZG9tV2FsbHBhcGVyR25vbWUzIiwKICAidXVpZCI6ICJyYW5kb213YWxscGFwZXJAaWZsb3cuc3BhY2UiLAogICJ2ZXJzaW9uIjogMzIKfQ=="},
     "42": {"version": "32", "sha256": "1l4s37rp1bx20r7pg906yqsvl9s6a18y0mcx08xkc11jn68d1g4q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoIGEgcmFuZG9tIHdhbGxwYXBlciBmcm9tIGFuIG9ubGluZSBzb3VyY2UgYW5kIHNldCBpdCBhcyBhIGRlc2t0b3AgYmFja2dyb3VuZC4gXG5UaGUgZGVza3RvcCBiYWNrZ3JvdW5kIGNhbiBiZSB1cGRhdGVkIHBlcmlvZGljYWxseSBvciBtYW51YWxseS5cblxuRmVhdHVyZXM6XG5NYW55IGRpZmZlcmVudCBvbmxpbmUgc291cmNlcyB3aXRoIGZpbHRlcnM6XG4gICAgICAgIC0gVW5zcGxhc2ggKGh0dHBzOi8vdW5zcGxhc2guY29tLylcbiAgICAgICAgLSBXYWxsaGF2ZW4gKGh0dHBzOi8vd2FsbGhhdmVuLmNjLylcbiAgICAgICAgLSBSZWRkaXQgKGh0dHBzOi8vcmVkZGl0LmNvbSlcbiAgICAgICAgLSBCYXNpY2FsbHkgYW55IEpTT04gQVBJL0ZpbGUgKHNlZSBFeGFtcGxlcyBvbiBHaXRIdWIpXG5IaXN0b3J5IG9mIHByZXZpb3VzIGltYWdlc1xuU2V0IGxvY2sgc2NyZWVuIGltYWdlXG5BdXRvbWF0aWMgcmVuZXdhbCAoQXV0by1GZXRjaGluZykiLAogICJuYW1lIjogIlJhbmRvbSBXYWxscGFwZXIiLAogICJzZW1hbnRpYy12ZXJzaW9uIjogIjIuNy40IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLmlmbG93LnJhbmRvbXdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIsCiAgICAiNDAuMSIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWZsMHcvUmFuZG9tV2FsbHBhcGVyR25vbWUzIiwKICAidXVpZCI6ICJyYW5kb213YWxscGFwZXJAaWZsb3cuc3BhY2UiLAogICJ2ZXJzaW9uIjogMzIKfQ=="},
     "43": {"version": "32", "sha256": "1l4s37rp1bx20r7pg906yqsvl9s6a18y0mcx08xkc11jn68d1g4q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoIGEgcmFuZG9tIHdhbGxwYXBlciBmcm9tIGFuIG9ubGluZSBzb3VyY2UgYW5kIHNldCBpdCBhcyBhIGRlc2t0b3AgYmFja2dyb3VuZC4gXG5UaGUgZGVza3RvcCBiYWNrZ3JvdW5kIGNhbiBiZSB1cGRhdGVkIHBlcmlvZGljYWxseSBvciBtYW51YWxseS5cblxuRmVhdHVyZXM6XG5NYW55IGRpZmZlcmVudCBvbmxpbmUgc291cmNlcyB3aXRoIGZpbHRlcnM6XG4gICAgICAgIC0gVW5zcGxhc2ggKGh0dHBzOi8vdW5zcGxhc2guY29tLylcbiAgICAgICAgLSBXYWxsaGF2ZW4gKGh0dHBzOi8vd2FsbGhhdmVuLmNjLylcbiAgICAgICAgLSBSZWRkaXQgKGh0dHBzOi8vcmVkZGl0LmNvbSlcbiAgICAgICAgLSBCYXNpY2FsbHkgYW55IEpTT04gQVBJL0ZpbGUgKHNlZSBFeGFtcGxlcyBvbiBHaXRIdWIpXG5IaXN0b3J5IG9mIHByZXZpb3VzIGltYWdlc1xuU2V0IGxvY2sgc2NyZWVuIGltYWdlXG5BdXRvbWF0aWMgcmVuZXdhbCAoQXV0by1GZXRjaGluZykiLAogICJuYW1lIjogIlJhbmRvbSBXYWxscGFwZXIiLAogICJzZW1hbnRpYy12ZXJzaW9uIjogIjIuNy40IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLmlmbG93LnJhbmRvbXdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIsCiAgICAiNDAuMSIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWZsMHcvUmFuZG9tV2FsbHBhcGVyR25vbWUzIiwKICAidXVpZCI6ICJyYW5kb213YWxscGFwZXJAaWZsb3cuc3BhY2UiLAogICJ2ZXJzaW9uIjogMzIKfQ=="},
     "44": {"version": "32", "sha256": "1l4s37rp1bx20r7pg906yqsvl9s6a18y0mcx08xkc11jn68d1g4q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoIGEgcmFuZG9tIHdhbGxwYXBlciBmcm9tIGFuIG9ubGluZSBzb3VyY2UgYW5kIHNldCBpdCBhcyBhIGRlc2t0b3AgYmFja2dyb3VuZC4gXG5UaGUgZGVza3RvcCBiYWNrZ3JvdW5kIGNhbiBiZSB1cGRhdGVkIHBlcmlvZGljYWxseSBvciBtYW51YWxseS5cblxuRmVhdHVyZXM6XG5NYW55IGRpZmZlcmVudCBvbmxpbmUgc291cmNlcyB3aXRoIGZpbHRlcnM6XG4gICAgICAgIC0gVW5zcGxhc2ggKGh0dHBzOi8vdW5zcGxhc2guY29tLylcbiAgICAgICAgLSBXYWxsaGF2ZW4gKGh0dHBzOi8vd2FsbGhhdmVuLmNjLylcbiAgICAgICAgLSBSZWRkaXQgKGh0dHBzOi8vcmVkZGl0LmNvbSlcbiAgICAgICAgLSBCYXNpY2FsbHkgYW55IEpTT04gQVBJL0ZpbGUgKHNlZSBFeGFtcGxlcyBvbiBHaXRIdWIpXG5IaXN0b3J5IG9mIHByZXZpb3VzIGltYWdlc1xuU2V0IGxvY2sgc2NyZWVuIGltYWdlXG5BdXRvbWF0aWMgcmVuZXdhbCAoQXV0by1GZXRjaGluZykiLAogICJuYW1lIjogIlJhbmRvbSBXYWxscGFwZXIiLAogICJzZW1hbnRpYy12ZXJzaW9uIjogIjIuNy40IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLmlmbG93LnJhbmRvbXdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIsCiAgICAiNDAuMSIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWZsMHcvUmFuZG9tV2FsbHBhcGVyR25vbWUzIiwKICAidXVpZCI6ICJyYW5kb213YWxscGFwZXJAaWZsb3cuc3BhY2UiLAogICJ2ZXJzaW9uIjogMzIKfQ=="},
-    "45": {"version": "34", "sha256": "1k0g1yyw0vk5n6c9qfa955bv1s9zlvca013i1p6iq9xn7y5alkjl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgbmV3IGRlc2t0b3Agd2FsbHBhcGVycyBmcm9tIHZhcmlvdXMgb25saW5lIHNvdXJjZXMgd2l0aCBlYXNlISIsCiAgImlzc3VlLXVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWZsMHcvUmFuZG9tV2FsbHBhcGVyR25vbWUzL2lzc3VlcyIsCiAgIm5hbWUiOiAiUmFuZG9tIFdhbGxwYXBlciIsCiAgInNlbWFudGljLXZlcnNpb24iOiAiMy4wLjEiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3BhY2UuaWZsb3cucmFuZG9td2FsbHBhcGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2lmbDB3L1JhbmRvbVdhbGxwYXBlckdub21lMyIsCiAgInV1aWQiOiAicmFuZG9td2FsbHBhcGVyQGlmbG93LnNwYWNlIiwKICAidmVyc2lvbiI6IDM0Cn0="}
+    "45": {"version": "35", "sha256": "16hqgsxafiqbrnnpmflslqyc0yklsdvn7kw8pnrnnh57b7fzn265", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgbmV3IGRlc2t0b3Agd2FsbHBhcGVycyBmcm9tIHZhcmlvdXMgb25saW5lIHNvdXJjZXMgd2l0aCBlYXNlISIsCiAgImlzc3VlLXVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWZsMHcvUmFuZG9tV2FsbHBhcGVyR25vbWUzL2lzc3VlcyIsCiAgIm5hbWUiOiAiUmFuZG9tIFdhbGxwYXBlciIsCiAgInNlbWFudGljLXZlcnNpb24iOiAiMy4wLjIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3BhY2UuaWZsb3cucmFuZG9td2FsbHBhcGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pZmwwdy9SYW5kb21XYWxscGFwZXJHbm9tZTMiLAogICJ1dWlkIjogInJhbmRvbXdhbGxwYXBlckBpZmxvdy5zcGFjZSIsCiAgInZlcnNpb24iOiAzNQp9"},
+    "46": {"version": "35", "sha256": "16hqgsxafiqbrnnpmflslqyc0yklsdvn7kw8pnrnnh57b7fzn265", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgbmV3IGRlc2t0b3Agd2FsbHBhcGVycyBmcm9tIHZhcmlvdXMgb25saW5lIHNvdXJjZXMgd2l0aCBlYXNlISIsCiAgImlzc3VlLXVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWZsMHcvUmFuZG9tV2FsbHBhcGVyR25vbWUzL2lzc3VlcyIsCiAgIm5hbWUiOiAiUmFuZG9tIFdhbGxwYXBlciIsCiAgInNlbWFudGljLXZlcnNpb24iOiAiMy4wLjIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3BhY2UuaWZsb3cucmFuZG9td2FsbHBhcGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pZmwwdy9SYW5kb21XYWxscGFwZXJHbm9tZTMiLAogICJ1dWlkIjogInJhbmRvbXdhbGxwYXBlckBpZmxvdy5zcGFjZSIsCiAgInZlcnNpb24iOiAzNQp9"}
   }}
 , {"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": "23", "sha256": "0gffarks0z70gdiz8jlgivv2lzxbr0hwbljjhs1xbffx45rla3g5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldHMgeW91IGNvbnRyb2wgSGFndWljaGkgZGlyZWN0bHkgZnJvbSB0aGUgc3lzdGVtIHN0YXR1cyBhcmVhIGluIEdOT01FIFNoZWxsLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJwYXlwYWwiOiAienRlZm4iCiAgfSwKICAibmFtZSI6ICJIYWd1aWNoaSBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3p0ZWZuL2dzZS1oYWd1aWNoaS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImdzZS1oYWd1aWNoaS1pbmRpY2F0b3JAenRlZm4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyMwp9"},
@@ -926,7 +935,8 @@
     "42": {"version": "11", "sha256": "0v16xkjry4anjk12iy5p1ny5mh3ckbf4s4h9qmbfljfhmzsfkm09", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktlZXAgeW91ciBjb21wdXRlciBhd2FrZSEgUHJldmVudHMgdGhhdCB5b3VyIGNvbXB1dGVyIGFjdGl2YXRlcyBzY2VlbnNhdmVyLCB0dXJucyBvZmYgaXRzIHNjcmVlbihzKSBvciBnb2VzIHRvIGhpYmVybmF0ZSB3aGVuIG5vdCBhY3RpdmVseSB1c2VkIGZvciBhIHdoaWxlLiBDbGljayB0aGUgaW5kaWNhdG9yIGljb24gb25jZSB0byBrZWVwIHlvdXIgY29tcHV0ZXIgYXdha2UgZm9yIHRoZSBjdXJyZW50IHNlc3Npb24uIENsaWNrIGFnYWluIHRvIGtlZXAgaXQgYXdha2UgYWxzbyBiZXR3ZWVuIHJlc3RhcnRzIChpbmRpY2F0ZWQgYnkgYSBzbWFsbCBsb2NrIGljb24gb24gdGhlIGluZGljYXRvcikuIENsaWNraW5nIGFnYWluIHRvIG5vdCBrZWVwIGF3YWtlLiIsCiAgIm5hbWUiOiAiS2VlcCBhd2FrZSEiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuS2VlcEF3YWtlQGplcGZhLmRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qZW5zcGZhaGwvS2VlcEF3YWtlIiwKICAidXVpZCI6ICJLZWVwQXdha2VAamVwZmEuZGUiLAogICJ2ZXJzaW9uIjogMTEKfQ=="},
     "43": {"version": "11", "sha256": "0v16xkjry4anjk12iy5p1ny5mh3ckbf4s4h9qmbfljfhmzsfkm09", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktlZXAgeW91ciBjb21wdXRlciBhd2FrZSEgUHJldmVudHMgdGhhdCB5b3VyIGNvbXB1dGVyIGFjdGl2YXRlcyBzY2VlbnNhdmVyLCB0dXJucyBvZmYgaXRzIHNjcmVlbihzKSBvciBnb2VzIHRvIGhpYmVybmF0ZSB3aGVuIG5vdCBhY3RpdmVseSB1c2VkIGZvciBhIHdoaWxlLiBDbGljayB0aGUgaW5kaWNhdG9yIGljb24gb25jZSB0byBrZWVwIHlvdXIgY29tcHV0ZXIgYXdha2UgZm9yIHRoZSBjdXJyZW50IHNlc3Npb24uIENsaWNrIGFnYWluIHRvIGtlZXAgaXQgYXdha2UgYWxzbyBiZXR3ZWVuIHJlc3RhcnRzIChpbmRpY2F0ZWQgYnkgYSBzbWFsbCBsb2NrIGljb24gb24gdGhlIGluZGljYXRvcikuIENsaWNraW5nIGFnYWluIHRvIG5vdCBrZWVwIGF3YWtlLiIsCiAgIm5hbWUiOiAiS2VlcCBhd2FrZSEiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuS2VlcEF3YWtlQGplcGZhLmRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qZW5zcGZhaGwvS2VlcEF3YWtlIiwKICAidXVpZCI6ICJLZWVwQXdha2VAamVwZmEuZGUiLAogICJ2ZXJzaW9uIjogMTEKfQ=="},
     "44": {"version": "11", "sha256": "0v16xkjry4anjk12iy5p1ny5mh3ckbf4s4h9qmbfljfhmzsfkm09", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktlZXAgeW91ciBjb21wdXRlciBhd2FrZSEgUHJldmVudHMgdGhhdCB5b3VyIGNvbXB1dGVyIGFjdGl2YXRlcyBzY2VlbnNhdmVyLCB0dXJucyBvZmYgaXRzIHNjcmVlbihzKSBvciBnb2VzIHRvIGhpYmVybmF0ZSB3aGVuIG5vdCBhY3RpdmVseSB1c2VkIGZvciBhIHdoaWxlLiBDbGljayB0aGUgaW5kaWNhdG9yIGljb24gb25jZSB0byBrZWVwIHlvdXIgY29tcHV0ZXIgYXdha2UgZm9yIHRoZSBjdXJyZW50IHNlc3Npb24uIENsaWNrIGFnYWluIHRvIGtlZXAgaXQgYXdha2UgYWxzbyBiZXR3ZWVuIHJlc3RhcnRzIChpbmRpY2F0ZWQgYnkgYSBzbWFsbCBsb2NrIGljb24gb24gdGhlIGluZGljYXRvcikuIENsaWNraW5nIGFnYWluIHRvIG5vdCBrZWVwIGF3YWtlLiIsCiAgIm5hbWUiOiAiS2VlcCBhd2FrZSEiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuS2VlcEF3YWtlQGplcGZhLmRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qZW5zcGZhaGwvS2VlcEF3YWtlIiwKICAidXVpZCI6ICJLZWVwQXdha2VAamVwZmEuZGUiLAogICJ2ZXJzaW9uIjogMTEKfQ=="},
-    "45": {"version": "13", "sha256": "16s99397wrxnjsj92jc0d061clbhx3m38x400rqg8s0lspnmaj13", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktlZXAgeW91ciBjb21wdXRlciBhd2FrZSEgUHJldmVudHMgdGhhdCB5b3VyIGNvbXB1dGVyIGFjdGl2YXRlcyBzY2VlbnNhdmVyLCB0dXJucyBvZmYgc2NyZWVuKHMpIG9yIGdvZXMgdG8gaGliZXJuYXRlIHdoZW4gbm90IGFjdGl2ZWx5IHVzZWQgZm9yIGEgd2hpbGUuIENsaWNrIHRoZSBpbmRpY2F0b3IgaWNvbiBvbmNlIHRvIGtlZXAgeW91ciBjb21wdXRlciBhd2FrZSBmb3IgdGhlIGN1cnJlbnQgc2Vzc2lvbi4gQ2xpY2sgYWdhaW4gdG8ga2VlcCBpdCBhd2FrZSBhbHNvIGJldHdlZW4gcmVzdGFydHMgKGluZGljYXRlZCBieSBhIHNtYWxsIGxvY2sgaWNvbiBvbiB0aGUgaW5kaWNhdG9yKS4gQ2xpY2tpbmcgYWdhaW4gdG8gbm90IGtlZXAgYXdha2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiS2VlcEF3YWtlIiwKICAibmFtZSI6ICJLZWVwIGF3YWtlISIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5LZWVwQXdha2VAamVwZmEuZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamVuc3BmYWhsL0tlZXBBd2FrZSIsCiAgInV1aWQiOiAiS2VlcEF3YWtlQGplcGZhLmRlIiwKICAidmVyc2lvbiI6IDEzCn0="}
+    "45": {"version": "14", "sha256": "177l0kcffdbm823dz1lsq0ga7mdn4dw76qzahy52bb170vmj9547", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktlZXAgeW91ciBjb21wdXRlciBhd2FrZSEgUHJldmVudHMgdGhhdCB5b3VyIGNvbXB1dGVyIGFjdGl2YXRlcyBzY2VlbnNhdmVyLCB0dXJucyBvZmYgc2NyZWVuKHMpIG9yIGdvZXMgdG8gaGliZXJuYXRlIHdoZW4gbm90IGFjdGl2ZWx5IHVzZWQgZm9yIGEgd2hpbGUuIENsaWNrIHRoZSBpbmRpY2F0b3IgaWNvbiBvbmNlIHRvIGtlZXAgeW91ciBjb21wdXRlciBhd2FrZSBmb3IgdGhlIGN1cnJlbnQgc2Vzc2lvbi4gQ2xpY2sgYWdhaW4gdG8ga2VlcCBpdCBhd2FrZSBhbHNvIGJldHdlZW4gcmVzdGFydHMgKGluZGljYXRlZCBieSBhIHNtYWxsIGxvY2sgaWNvbiBvbiB0aGUgaW5kaWNhdG9yKS4gQ2xpY2tpbmcgYWdhaW4gdG8gbm90IGtlZXAgYXdha2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiS2VlcEF3YWtlIiwKICAibmFtZSI6ICJLZWVwIGF3YWtlISIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5LZWVwQXdha2VAamVwZmEuZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2plbnNwZmFobC9LZWVwQXdha2UiLAogICJ1dWlkIjogIktlZXBBd2FrZUBqZXBmYS5kZSIsCiAgInZlcnNpb24iOiAxNAp9"},
+    "46": {"version": "14", "sha256": "177l0kcffdbm823dz1lsq0ga7mdn4dw76qzahy52bb170vmj9547", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktlZXAgeW91ciBjb21wdXRlciBhd2FrZSEgUHJldmVudHMgdGhhdCB5b3VyIGNvbXB1dGVyIGFjdGl2YXRlcyBzY2VlbnNhdmVyLCB0dXJucyBvZmYgc2NyZWVuKHMpIG9yIGdvZXMgdG8gaGliZXJuYXRlIHdoZW4gbm90IGFjdGl2ZWx5IHVzZWQgZm9yIGEgd2hpbGUuIENsaWNrIHRoZSBpbmRpY2F0b3IgaWNvbiBvbmNlIHRvIGtlZXAgeW91ciBjb21wdXRlciBhd2FrZSBmb3IgdGhlIGN1cnJlbnQgc2Vzc2lvbi4gQ2xpY2sgYWdhaW4gdG8ga2VlcCBpdCBhd2FrZSBhbHNvIGJldHdlZW4gcmVzdGFydHMgKGluZGljYXRlZCBieSBhIHNtYWxsIGxvY2sgaWNvbiBvbiB0aGUgaW5kaWNhdG9yKS4gQ2xpY2tpbmcgYWdhaW4gdG8gbm90IGtlZXAgYXdha2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiS2VlcEF3YWtlIiwKICAibmFtZSI6ICJLZWVwIGF3YWtlISIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5LZWVwQXdha2VAamVwZmEuZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2plbnNwZmFobC9LZWVwQXdha2UiLAogICJ1dWlkIjogIktlZXBBd2FrZUBqZXBmYS5kZSIsCiAgInZlcnNpb24iOiAxNAp9"}
   }}
 , {"uuid": "todolist@tomMoral.org", "name": "Section Todo List", "pname": "section-todo-list", "description": "Manage todo list with an applet\n\n* Add and remove task on your list in different sections.\n* Click an item to rename it.\n* Access the extension using Hot-Key (default: Ctrl+Space)\n\n**Note:** I don't come on this page often so if you need any help, please refer to the github repo and open an issue :) ", "link": "https://extensions.gnome.org/extension/1104/section-todo-list/", "shell_version_map": {
     "38": {"version": "13", "sha256": "0q2sl28w2dmcdxvhvwvldmm89qh3m83678nww0v6varbmf99vj1b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSB0b2RvIGxpc3Qgd2l0aCBhbiBhcHBsZXRcblxuKiBBZGQgYW5kIHJlbW92ZSB0YXNrIG9uIHlvdXIgbGlzdCBpbiBkaWZmZXJlbnQgc2VjdGlvbnMuXG4qIENsaWNrIGFuIGl0ZW0gdG8gcmVuYW1lIGl0LlxuKiBBY2Nlc3MgdGhlIGV4dGVuc2lvbiB1c2luZyBIb3QtS2V5IChkZWZhdWx0OiBDdHJsK1NwYWNlKVxuXG4qKk5vdGU6KiogSSBkb24ndCBjb21lIG9uIHRoaXMgcGFnZSBvZnRlbiBzbyBpZiB5b3UgbmVlZCBhbnkgaGVscCwgcGxlYXNlIHJlZmVyIHRvIHRoZSBnaXRodWIgcmVwbyBhbmQgb3BlbiBhbiBpc3N1ZSA6KSAiLAogICJuYW1lIjogIlNlY3Rpb24gVG9kbyBMaXN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDIiLAogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdG9tTW9yYWwvVG9Eb0xpc3QiLAogICJ1dWlkIjogInRvZG9saXN0QHRvbU1vcmFsLm9yZyIsCiAgInZlcnNpb24iOiAxMwp9"},
@@ -1024,7 +1034,8 @@
     "42": {"version": "37", "sha256": "1v0qjzyqylhhdqybm6p2lhiwp3cz1mnx7lq7gbpznf4k2w44mi8f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZXMgYSBjYXRlZ29yeS1iYXNlZCBhcHBsaWNhdGlvbiBsYXVuY2hlciBpbiB0aGUgYWN0aXZpdGllcyB3aW5kb3cuIElNUE9SVEFOVDogaXQgbmVlZHMgdGhlICdnbm9tZS1tZW51cycgYW5kICdsaWJnbm9tZS1tZW51LTMtZGV2JzsgdGhleSBtdXN0IGJlIGluc3RhbGxlZCBpbiB0aGUgc3lzdGVtIGJlZm9yZSBpbnN0YWxsaW5nIHRoaXMgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiQWN0aXZpdHkgQXBwIExhdW5jaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2FjdGl2aXR5QXBwTGF1bmNoZXIiLAogICJ1dWlkIjogImFjdGl2aXR5QXBwTGF1bmNoZXJAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogMzcKfQ=="},
     "43": {"version": "37", "sha256": "1v0qjzyqylhhdqybm6p2lhiwp3cz1mnx7lq7gbpznf4k2w44mi8f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZXMgYSBjYXRlZ29yeS1iYXNlZCBhcHBsaWNhdGlvbiBsYXVuY2hlciBpbiB0aGUgYWN0aXZpdGllcyB3aW5kb3cuIElNUE9SVEFOVDogaXQgbmVlZHMgdGhlICdnbm9tZS1tZW51cycgYW5kICdsaWJnbm9tZS1tZW51LTMtZGV2JzsgdGhleSBtdXN0IGJlIGluc3RhbGxlZCBpbiB0aGUgc3lzdGVtIGJlZm9yZSBpbnN0YWxsaW5nIHRoaXMgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiQWN0aXZpdHkgQXBwIExhdW5jaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2FjdGl2aXR5QXBwTGF1bmNoZXIiLAogICJ1dWlkIjogImFjdGl2aXR5QXBwTGF1bmNoZXJAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogMzcKfQ=="},
     "44": {"version": "37", "sha256": "1v0qjzyqylhhdqybm6p2lhiwp3cz1mnx7lq7gbpznf4k2w44mi8f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZXMgYSBjYXRlZ29yeS1iYXNlZCBhcHBsaWNhdGlvbiBsYXVuY2hlciBpbiB0aGUgYWN0aXZpdGllcyB3aW5kb3cuIElNUE9SVEFOVDogaXQgbmVlZHMgdGhlICdnbm9tZS1tZW51cycgYW5kICdsaWJnbm9tZS1tZW51LTMtZGV2JzsgdGhleSBtdXN0IGJlIGluc3RhbGxlZCBpbiB0aGUgc3lzdGVtIGJlZm9yZSBpbnN0YWxsaW5nIHRoaXMgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiQWN0aXZpdHkgQXBwIExhdW5jaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2FjdGl2aXR5QXBwTGF1bmNoZXIiLAogICJ1dWlkIjogImFjdGl2aXR5QXBwTGF1bmNoZXJAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogMzcKfQ=="},
-    "45": {"version": "39", "sha256": "0khrd333k5sch7q31f375kzim25fa8pwa9s0gawr151n8bmsxqds", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZXMgYSBjYXRlZ29yeS1iYXNlZCBhcHBsaWNhdGlvbiBsYXVuY2hlciBpbiB0aGUgYWN0aXZpdGllcyB3aW5kb3cuIElNUE9SVEFOVDogaXQgbmVlZHMgdGhlICdnbm9tZS1tZW51cycgYW5kICdsaWJnbm9tZS1tZW51LTMtZGV2JzsgdGhleSBtdXN0IGJlIGluc3RhbGxlZCBpbiB0aGUgc3lzdGVtIGJlZm9yZSBpbnN0YWxsaW5nIHRoaXMgZXh0ZW5zaW9uLiIsCiAgImdldHRleHQtZG9tYWluIjogImFjdGl2aXR5QXBwTGF1bmNoZXIiLAogICJuYW1lIjogIkFjdGl2aXR5IEFwcCBMYXVuY2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hY3Rpdml0eUFwcExhdW5jaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3Jhc3RlcnNvZnQvYWN0aXZpdHlBcHBMYXVuY2hlciIsCiAgInV1aWQiOiAiYWN0aXZpdHlBcHBMYXVuY2hlckByYXN0ZXJzb2Z0LmNvbSIsCiAgInZlcnNpb24iOiAzOQp9"}
+    "45": {"version": "41", "sha256": "1j9k0qf19pj60749fwy9907cxxl8sy4qxbw722is2qddqphxz171", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZXMgYSBjYXRlZ29yeS1iYXNlZCBhcHBsaWNhdGlvbiBsYXVuY2hlciBpbiB0aGUgYWN0aXZpdGllcyB3aW5kb3cuIElNUE9SVEFOVDogaXQgbmVlZHMgdGhlICdnbm9tZS1tZW51cycgYW5kICdsaWJnbm9tZS1tZW51LTMtZGV2JzsgdGhleSBtdXN0IGJlIGluc3RhbGxlZCBpbiB0aGUgc3lzdGVtIGJlZm9yZSBpbnN0YWxsaW5nIHRoaXMgZXh0ZW5zaW9uLiIsCiAgImdldHRleHQtZG9tYWluIjogImFjdGl2aXR5QXBwTGF1bmNoZXIiLAogICJuYW1lIjogIkFjdGl2aXR5IEFwcCBMYXVuY2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hY3Rpdml0eUFwcExhdW5jaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2FjdGl2aXR5QXBwTGF1bmNoZXIiLAogICJ1dWlkIjogImFjdGl2aXR5QXBwTGF1bmNoZXJAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogNDEKfQ=="},
+    "46": {"version": "41", "sha256": "1j9k0qf19pj60749fwy9907cxxl8sy4qxbw722is2qddqphxz171", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZXMgYSBjYXRlZ29yeS1iYXNlZCBhcHBsaWNhdGlvbiBsYXVuY2hlciBpbiB0aGUgYWN0aXZpdGllcyB3aW5kb3cuIElNUE9SVEFOVDogaXQgbmVlZHMgdGhlICdnbm9tZS1tZW51cycgYW5kICdsaWJnbm9tZS1tZW51LTMtZGV2JzsgdGhleSBtdXN0IGJlIGluc3RhbGxlZCBpbiB0aGUgc3lzdGVtIGJlZm9yZSBpbnN0YWxsaW5nIHRoaXMgZXh0ZW5zaW9uLiIsCiAgImdldHRleHQtZG9tYWluIjogImFjdGl2aXR5QXBwTGF1bmNoZXIiLAogICJuYW1lIjogIkFjdGl2aXR5IEFwcCBMYXVuY2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hY3Rpdml0eUFwcExhdW5jaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2FjdGl2aXR5QXBwTGF1bmNoZXIiLAogICJ1dWlkIjogImFjdGl2aXR5QXBwTGF1bmNoZXJAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogNDEKfQ=="}
   }}
 , {"uuid": "shutdown-timer-gnome-shell-extension", "name": "ShutdownTimer", "pname": "shutdowntimer", "description": "Allows to shutdown, restart and suspend computer after selected amount of time or in selected time.", "link": "https://extensions.gnome.org/extension/1152/shutdowntimer/", "shell_version_map": {
     "40": {"version": "9", "sha256": "1y69lv3mq66xxfxabngnbb104d26i05cyhmx3dqf4kyf1kd6jqvx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyB0byBzaHV0ZG93biwgcmVzdGFydCBhbmQgc3VzcGVuZCBjb21wdXRlciBhZnRlciBzZWxlY3RlZCBhbW91bnQgb2YgdGltZSBvciBpbiBzZWxlY3RlZCB0aW1lLiIsCiAgImdldHRleHQtZG9tYWluIjogIkF1dG9tYXRpY1NodXRkb3duVGltZXIiLAogICJuYW1lIjogIlNodXRkb3duVGltZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXV0b21hdGljLXNodXRkb3duLXRpbWVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21rcmFqbmFrL3NodXRkb3duLXRpbWVyLWdub21lLXNoZWxsLWV4dGVuc2lvbi8iLAogICJ1dWlkIjogInNodXRkb3duLXRpbWVyLWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInZlcnNpb24iOiA5Cn0="}
@@ -1076,7 +1087,8 @@
     "42": {"version": "32", "sha256": "0kpg34m9n4m6cm262gz20akrjlpd7mhfgqsbrjs9wr9xv16wzw95", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplL3VubWluaW1pemUgYWxsIG9wZW4gd2luZG93cyB3aXRoIGEgc2luZ2xlIGNsaWNrLlxuXG5OT1RFOiBJIGlnbm9yZSBidWcgcmVwb3J0cyBzZW50IGhlcmUuIFBsZWFzZSB1c2UgZ2l0aHViLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2hvdy1kZXNrdG9wLWJ1dHRvbiIsCiAgImxvY2FsZWRpciI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2hvdyBEZXNrdG9wIEJ1dHRvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaG93LWRlc2t0b3AtYnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWl2YWxlby9TaG93LURlc2t0b3AtQnV0dG9uIiwKICAidXVpZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uQGFtaXZhbGVvIiwKICAidmVyc2lvbiI6IDMyCn0="},
     "43": {"version": "32", "sha256": "0kpg34m9n4m6cm262gz20akrjlpd7mhfgqsbrjs9wr9xv16wzw95", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplL3VubWluaW1pemUgYWxsIG9wZW4gd2luZG93cyB3aXRoIGEgc2luZ2xlIGNsaWNrLlxuXG5OT1RFOiBJIGlnbm9yZSBidWcgcmVwb3J0cyBzZW50IGhlcmUuIFBsZWFzZSB1c2UgZ2l0aHViLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2hvdy1kZXNrdG9wLWJ1dHRvbiIsCiAgImxvY2FsZWRpciI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2hvdyBEZXNrdG9wIEJ1dHRvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaG93LWRlc2t0b3AtYnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWl2YWxlby9TaG93LURlc2t0b3AtQnV0dG9uIiwKICAidXVpZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uQGFtaXZhbGVvIiwKICAidmVyc2lvbiI6IDMyCn0="},
     "44": {"version": "32", "sha256": "0kpg34m9n4m6cm262gz20akrjlpd7mhfgqsbrjs9wr9xv16wzw95", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplL3VubWluaW1pemUgYWxsIG9wZW4gd2luZG93cyB3aXRoIGEgc2luZ2xlIGNsaWNrLlxuXG5OT1RFOiBJIGlnbm9yZSBidWcgcmVwb3J0cyBzZW50IGhlcmUuIFBsZWFzZSB1c2UgZ2l0aHViLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2hvdy1kZXNrdG9wLWJ1dHRvbiIsCiAgImxvY2FsZWRpciI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2hvdyBEZXNrdG9wIEJ1dHRvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaG93LWRlc2t0b3AtYnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWl2YWxlby9TaG93LURlc2t0b3AtQnV0dG9uIiwKICAidXVpZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uQGFtaXZhbGVvIiwKICAidmVyc2lvbiI6IDMyCn0="},
-    "45": {"version": "34", "sha256": "0xdk1prwhkp7vm3a7p011kh984rhb443caa3jc09vjzzvl07v52z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplL3VubWluaW1pemUgYWxsIG9wZW4gd2luZG93cyB3aXRoIGEgc2luZ2xlIGNsaWNrLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2hvdy1kZXNrdG9wLWJ1dHRvbiIsCiAgImxvY2FsZWRpciI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2hvdyBEZXNrdG9wIEJ1dHRvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaG93LWRlc2t0b3AtYnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FtaXZhbGVvL1Nob3ctRGVza3RvcC1CdXR0b24iLAogICJ1dWlkIjogInNob3ctZGVza3RvcC1idXR0b25AYW1pdmFsZW8iLAogICJ2ZXJzaW9uIjogMzQKfQ=="}
+    "45": {"version": "35", "sha256": "0izyic6a5laajgnm29cw3r6f6m7q96530j1k6wvsanb8r1j21v01", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplL3VubWluaW1pemUgYWxsIG9wZW4gd2luZG93cyB3aXRoIGEgc2luZ2xlIGNsaWNrLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2hvdy1kZXNrdG9wLWJ1dHRvbiIsCiAgImxvY2FsZWRpciI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2hvdyBEZXNrdG9wIEJ1dHRvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaG93LWRlc2t0b3AtYnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWl2YWxlby9TaG93LURlc2t0b3AtQnV0dG9uIiwKICAidXVpZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uQGFtaXZhbGVvIiwKICAidmVyc2lvbiI6IDM1Cn0="},
+    "46": {"version": "35", "sha256": "0izyic6a5laajgnm29cw3r6f6m7q96530j1k6wvsanb8r1j21v01", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplL3VubWluaW1pemUgYWxsIG9wZW4gd2luZG93cyB3aXRoIGEgc2luZ2xlIGNsaWNrLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2hvdy1kZXNrdG9wLWJ1dHRvbiIsCiAgImxvY2FsZWRpciI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2hvdyBEZXNrdG9wIEJ1dHRvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaG93LWRlc2t0b3AtYnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWl2YWxlby9TaG93LURlc2t0b3AtQnV0dG9uIiwKICAidXVpZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uQGFtaXZhbGVvIiwKICAidmVyc2lvbiI6IDM1Cn0="}
   }}
 , {"uuid": "walkpaper@walkpaper.blinkbp.github.com", "name": "Walkpaper", "pname": "walkpaper", "description": "Set different wallpaper for each workspace by having the wallpaper switch on workspace change.", "link": "https://extensions.gnome.org/extension/1200/walkpaper/", "shell_version_map": {
     "40": {"version": "9", "sha256": "1ckrf3y20wp3dv4aig44rycj7kbrxj14gh3rzs17vcqma3aw76bq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldCBkaWZmZXJlbnQgd2FsbHBhcGVyIGZvciBlYWNoIHdvcmtzcGFjZSBieSBoYXZpbmcgdGhlIHdhbGxwYXBlciBzd2l0Y2ggb24gd29ya3NwYWNlIGNoYW5nZS4iLAogICJleHRlbnNpb24taWQiOiAid2Fsa3BhcGVyIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZW5nbGlzaCIsCiAgIm5hbWUiOiAiV2Fsa3BhcGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndhbGtwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQmxpbmtCUC93YWxrcGFwZXIiLAogICJ1dWlkIjogIndhbGtwYXBlckB3YWxrcGFwZXIuYmxpbmticC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDkKfQ=="},
@@ -1251,9 +1263,11 @@
   }}
 , {"uuid": "nvidiautil@ethanwharris", "name": "NVIDIA GPU Stats Tool", "pname": "nvidia-gpu-stats-tool", "description": "Shows NVIDIA GPU stats in the toolbar. Requires nvidia-settings or nvidia-smi. Includes Bumblebee support.", "link": "https://extensions.gnome.org/extension/1320/nvidia-gpu-stats-tool/", "shell_version_map": {
     "38": {"version": "8", "sha256": "12yi2kcq2rm1ddb8djjlffvk6dhpfd996wjhwdf4jch1r85r8a30", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIE5WSURJQSBHUFUgc3RhdHMgaW4gdGhlIHRvb2xiYXIuIFJlcXVpcmVzIG52aWRpYS1zZXR0aW5ncyBvciBudmlkaWEtc21pLiBJbmNsdWRlcyBCdW1ibGViZWUgc3VwcG9ydC4iLAogICJuYW1lIjogIk5WSURJQSBHUFUgU3RhdHMgVG9vbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5udmlkaWF1dGlsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZXRoYW53aGFycmlzL2dub21lLW52aWRpYS1leHRlbnNpb24iLAogICJ1dWlkIjogIm52aWRpYXV0aWxAZXRoYW53aGFycmlzIiwKICAidmVyc2lvbiI6IDgKfQ=="},
-    "40": {"version": "10", "sha256": "1x6ifcdmvfvp1y5xj2fmb50gw9m9jrhxrq9jpqjgx7y4mbp6xazb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIE5WSURJQSBHUFUgc3RhdHMgaW4gdGhlIHRvb2xiYXIuIFJlcXVpcmVzIG52aWRpYS1zZXR0aW5ncyBvciBudmlkaWEtc21pLiBJbmNsdWRlcyBCdW1ibGViZWUgc3VwcG9ydC4iLAogICJuYW1lIjogIk5WSURJQSBHUFUgU3RhdHMgVG9vbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5udmlkaWF1dGlsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZXRoYW53aGFycmlzL2dub21lLW52aWRpYS1leHRlbnNpb24iLAogICJ1dWlkIjogIm52aWRpYXV0aWxAZXRoYW53aGFycmlzIiwKICAidmVyc2lvbiI6IDEwCn0="},
-    "41": {"version": "10", "sha256": "1x6ifcdmvfvp1y5xj2fmb50gw9m9jrhxrq9jpqjgx7y4mbp6xazb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIE5WSURJQSBHUFUgc3RhdHMgaW4gdGhlIHRvb2xiYXIuIFJlcXVpcmVzIG52aWRpYS1zZXR0aW5ncyBvciBudmlkaWEtc21pLiBJbmNsdWRlcyBCdW1ibGViZWUgc3VwcG9ydC4iLAogICJuYW1lIjogIk5WSURJQSBHUFUgU3RhdHMgVG9vbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5udmlkaWF1dGlsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZXRoYW53aGFycmlzL2dub21lLW52aWRpYS1leHRlbnNpb24iLAogICJ1dWlkIjogIm52aWRpYXV0aWxAZXRoYW53aGFycmlzIiwKICAidmVyc2lvbiI6IDEwCn0="},
-    "42": {"version": "10", "sha256": "1x6ifcdmvfvp1y5xj2fmb50gw9m9jrhxrq9jpqjgx7y4mbp6xazb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIE5WSURJQSBHUFUgc3RhdHMgaW4gdGhlIHRvb2xiYXIuIFJlcXVpcmVzIG52aWRpYS1zZXR0aW5ncyBvciBudmlkaWEtc21pLiBJbmNsdWRlcyBCdW1ibGViZWUgc3VwcG9ydC4iLAogICJuYW1lIjogIk5WSURJQSBHUFUgU3RhdHMgVG9vbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5udmlkaWF1dGlsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZXRoYW53aGFycmlzL2dub21lLW52aWRpYS1leHRlbnNpb24iLAogICJ1dWlkIjogIm52aWRpYXV0aWxAZXRoYW53aGFycmlzIiwKICAidmVyc2lvbiI6IDEwCn0="}
+    "40": {"version": "12", "sha256": "1vjdm6nrh3z9g4z340w3n72cnv14rhmi9dzck6j7c4c5zy03m44m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIE5WSURJQSBHUFUgc3RhdHMgaW4gdGhlIHRvb2xiYXIuIFJlcXVpcmVzIG52aWRpYS1zZXR0aW5ncyBvciBudmlkaWEtc21pLiBJbmNsdWRlcyBCdW1ibGViZWUgc3VwcG9ydC4iLAogICJuYW1lIjogIk5WSURJQSBHUFUgU3RhdHMgVG9vbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5udmlkaWF1dGlsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ldGhhbndoYXJyaXMvZ25vbWUtbnZpZGlhLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAibnZpZGlhdXRpbEBldGhhbndoYXJyaXMiLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
+    "41": {"version": "12", "sha256": "1vjdm6nrh3z9g4z340w3n72cnv14rhmi9dzck6j7c4c5zy03m44m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIE5WSURJQSBHUFUgc3RhdHMgaW4gdGhlIHRvb2xiYXIuIFJlcXVpcmVzIG52aWRpYS1zZXR0aW5ncyBvciBudmlkaWEtc21pLiBJbmNsdWRlcyBCdW1ibGViZWUgc3VwcG9ydC4iLAogICJuYW1lIjogIk5WSURJQSBHUFUgU3RhdHMgVG9vbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5udmlkaWF1dGlsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ldGhhbndoYXJyaXMvZ25vbWUtbnZpZGlhLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAibnZpZGlhdXRpbEBldGhhbndoYXJyaXMiLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
+    "42": {"version": "12", "sha256": "1vjdm6nrh3z9g4z340w3n72cnv14rhmi9dzck6j7c4c5zy03m44m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIE5WSURJQSBHUFUgc3RhdHMgaW4gdGhlIHRvb2xiYXIuIFJlcXVpcmVzIG52aWRpYS1zZXR0aW5ncyBvciBudmlkaWEtc21pLiBJbmNsdWRlcyBCdW1ibGViZWUgc3VwcG9ydC4iLAogICJuYW1lIjogIk5WSURJQSBHUFUgU3RhdHMgVG9vbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5udmlkaWF1dGlsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ldGhhbndoYXJyaXMvZ25vbWUtbnZpZGlhLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAibnZpZGlhdXRpbEBldGhhbndoYXJyaXMiLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
+    "43": {"version": "12", "sha256": "1vjdm6nrh3z9g4z340w3n72cnv14rhmi9dzck6j7c4c5zy03m44m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIE5WSURJQSBHUFUgc3RhdHMgaW4gdGhlIHRvb2xiYXIuIFJlcXVpcmVzIG52aWRpYS1zZXR0aW5ncyBvciBudmlkaWEtc21pLiBJbmNsdWRlcyBCdW1ibGViZWUgc3VwcG9ydC4iLAogICJuYW1lIjogIk5WSURJQSBHUFUgU3RhdHMgVG9vbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5udmlkaWF1dGlsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ldGhhbndoYXJyaXMvZ25vbWUtbnZpZGlhLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAibnZpZGlhdXRpbEBldGhhbndoYXJyaXMiLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
+    "44": {"version": "12", "sha256": "1vjdm6nrh3z9g4z340w3n72cnv14rhmi9dzck6j7c4c5zy03m44m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIE5WSURJQSBHUFUgc3RhdHMgaW4gdGhlIHRvb2xiYXIuIFJlcXVpcmVzIG52aWRpYS1zZXR0aW5ncyBvciBudmlkaWEtc21pLiBJbmNsdWRlcyBCdW1ibGViZWUgc3VwcG9ydC4iLAogICJuYW1lIjogIk5WSURJQSBHUFUgU3RhdHMgVG9vbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5udmlkaWF1dGlsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ldGhhbndoYXJyaXMvZ25vbWUtbnZpZGlhLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAibnZpZGlhdXRpbEBldGhhbndoYXJyaXMiLAogICJ2ZXJzaW9uIjogMTIKfQ=="}
   }}
 , {"uuid": "pause-night-light@tijnschuurmans.nl", "name": "Pause Night Light", "pname": "pause-night-light", "description": "Disable Night Light for 10 seconds. This short interruption allows you to scan a colour code (e.g. Crontosign) from your screen.", "link": "https://extensions.gnome.org/extension/1327/pause-night-light/", "shell_version_map": {
     "40": {"version": "8", "sha256": "1j4yywvmwplbyjjwp79rxmfgsf7kv67v0d9rhbg6bnqw04bq91ki", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgTmlnaHQgTGlnaHQgZm9yIDEwIHNlY29uZHMuIFRoaXMgc2hvcnQgaW50ZXJydXB0aW9uIGFsbG93cyB5b3UgdG8gc2NhbiBhIGNvbG91ciBjb2RlIChlLmcuIENyb250b3NpZ24pIGZyb20geW91ciBzY3JlZW4uIiwKICAibmFtZSI6ICJQYXVzZSBOaWdodCBMaWdodCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yNiIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Rpam4vcGF1c2UtbmlnaHQtbGlnaHQiLAogICJ1dWlkIjogInBhdXNlLW5pZ2h0LWxpZ2h0QHRpam5zY2h1dXJtYW5zLm5sIiwKICAidmVyc2lvbiI6IDgKfQ=="}
@@ -1328,7 +1342,8 @@
     "42": {"version": "7", "sha256": "0fq8gwppj21r1082ga6yyhfjlhqgxs6fjychrksvin2wkqkavw46", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG51bWJlciBvZiBub3RpZmljYXRpb25zIGluIHF1ZXVlLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIENvdW50ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmtyaXphbi9Ob3RpZmljYXRpb25Db3VudGVyIiwKICAidXVpZCI6ICJOb3RpZmljYXRpb25Db3VudGVyQGNvb2xsbHNrIiwKICAidmVyc2lvbiI6IDcKfQ=="},
     "43": {"version": "7", "sha256": "0fq8gwppj21r1082ga6yyhfjlhqgxs6fjychrksvin2wkqkavw46", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG51bWJlciBvZiBub3RpZmljYXRpb25zIGluIHF1ZXVlLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIENvdW50ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmtyaXphbi9Ob3RpZmljYXRpb25Db3VudGVyIiwKICAidXVpZCI6ICJOb3RpZmljYXRpb25Db3VudGVyQGNvb2xsbHNrIiwKICAidmVyc2lvbiI6IDcKfQ=="},
     "44": {"version": "7", "sha256": "0fq8gwppj21r1082ga6yyhfjlhqgxs6fjychrksvin2wkqkavw46", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG51bWJlciBvZiBub3RpZmljYXRpb25zIGluIHF1ZXVlLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIENvdW50ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmtyaXphbi9Ob3RpZmljYXRpb25Db3VudGVyIiwKICAidXVpZCI6ICJOb3RpZmljYXRpb25Db3VudGVyQGNvb2xsbHNrIiwKICAidmVyc2lvbiI6IDcKfQ=="},
-    "45": {"version": "8", "sha256": "1p170hsn3fi9ncj2h22kmcg4k1mhx6ng07567ffbsgv3c5cykjj1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG51bWJlciBvZiBub3RpZmljYXRpb25zIGluIHF1ZXVlLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIENvdW50ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmtyaXphbi9Ob3RpZmljYXRpb25Db3VudGVyIiwKICAidXVpZCI6ICJOb3RpZmljYXRpb25Db3VudGVyQGNvb2xsbHNrIiwKICAidmVyc2lvbiI6IDgKfQ=="}
+    "45": {"version": "8", "sha256": "1p170hsn3fi9ncj2h22kmcg4k1mhx6ng07567ffbsgv3c5cykjj1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG51bWJlciBvZiBub3RpZmljYXRpb25zIGluIHF1ZXVlLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIENvdW50ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmtyaXphbi9Ob3RpZmljYXRpb25Db3VudGVyIiwKICAidXVpZCI6ICJOb3RpZmljYXRpb25Db3VudGVyQGNvb2xsbHNrIiwKICAidmVyc2lvbiI6IDgKfQ=="},
+    "46": {"version": "9", "sha256": "1qv1vdiq1p7pxi2ajyr4xyr8dj531yx1ylqdy7v2vrwnv3dchq0a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG51bWJlciBvZiBub3RpZmljYXRpb25zIGluIHF1ZXVlLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIENvdW50ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmtyaXphbi9Ob3RpZmljYXRpb25Db3VudGVyIiwKICAidXVpZCI6ICJOb3RpZmljYXRpb25Db3VudGVyQGNvb2xsbHNrIiwKICAidmVyc2lvbiI6IDkKfQ=="}
   }}
 , {"uuid": "you2ber@konkor", "name": "you2ber", "pname": "you2ber", "description": "Gnome Youtube Downloader\n\n Simple helper for youtube-dl project. It allows you to save locally desired media content without any browser extensions. Just copy URL address of a media content to the clipboard and select desired quality profile or custom format for the item in the extension menu to store it.\n * Required the installation of ffmpeg (youtube-dl dependency for media manipulation)\n\nFor more information and how-to see README.md", "link": "https://extensions.gnome.org/extension/1392/you2ber/", "shell_version_map": {
     "40": {"version": "10", "sha256": "0dx5x22imwagx2j07xnayvd7zgsk7cyby7gh4jl935ndxmdp05fc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIFlvdXR1YmUgRG93bmxvYWRlclxuXG4gU2ltcGxlIGhlbHBlciBmb3IgeW91dHViZS1kbCBwcm9qZWN0LiBJdCBhbGxvd3MgeW91IHRvIHNhdmUgbG9jYWxseSBkZXNpcmVkIG1lZGlhIGNvbnRlbnQgd2l0aG91dCBhbnkgYnJvd3NlciBleHRlbnNpb25zLiBKdXN0IGNvcHkgVVJMIGFkZHJlc3Mgb2YgYSBtZWRpYSBjb250ZW50IHRvIHRoZSBjbGlwYm9hcmQgYW5kIHNlbGVjdCBkZXNpcmVkIHF1YWxpdHkgcHJvZmlsZSBvciBjdXN0b20gZm9ybWF0IGZvciB0aGUgaXRlbSBpbiB0aGUgZXh0ZW5zaW9uIG1lbnUgdG8gc3RvcmUgaXQuXG4gKiBSZXF1aXJlZCB0aGUgaW5zdGFsbGF0aW9uIG9mIGZmbXBlZyAoeW91dHViZS1kbCBkZXBlbmRlbmN5IGZvciBtZWRpYSBtYW5pcHVsYXRpb24pXG5cbkZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCBob3ctdG8gc2VlIFJFQURNRS5tZCIsCiAgIm5hbWUiOiAieW91MmJlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcua29ua29yLnlvdTJiZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzIiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va29ua29yL3lvdTJiZXIiLAogICJ1dWlkIjogInlvdTJiZXJAa29ua29yIiwKICAidmVyc2lvbiI6IDEwCn0="}
@@ -1611,7 +1626,7 @@
     "42": {"version": "60", "sha256": "1f79yi0g8pdnxpbfq098xi52shg5qn1s8gy5yi83i38brz3dv4bp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwud29ya3NldHMiLAogICJkZXNjcmlwdGlvbiI6ICJDdXN0b21pc2VkIFdvcmtzcGFjZXMgZW5hYmxlcyBjcmVhdGluZyBpc29sYXRlZCBhbmQgY3VzdG9taXNlZCB3b3Jrc3BhY2VzLlxuXG4qIENob29zZSBhIGRpZmZlcmVudCBiYWNrZ3JvdW5kIGltYWdlIGZvciBlYWNoIHdvcmtzcGFjZVxuKiBZb3VyIGRhc2ggd2lsbCBoYXZlIHVuaXF1ZSBmYXZvdXJpdGUgYXBwbGljYXRpb25zIG9uIGVhY2ggd29ya3NwYWNlXG4qIE9wdGlvbmFsbHkgaXNvbGF0ZSBydW5uaW5nIGFwcGxpY2F0aW9ucyB0byBvbmx5IGFwcGVhciBvbiB0aGUgZGFzaCBpbiB0aGVpciByZXNwZWN0aXZlIHdvcmtzcGFjZVxuKiBPcHRpb25hbGx5IHNob3cgd29ya3NwYWNlIGluZm9ybWF0aW9uIGFuZCBhY3Rpb25zIGluIHRoZSBvdmVydmlld1xuKiBTZXQgZWFjaCBjdXN0b21pc2VkIHdvcmtzcGFjZSB0byBhdXRvbG9hZCBvbiBzcGVjaWZpYyB3b3Jrc3BhY2VzXG4qIEhpZGUgdGhlIGV4dGVuc2lvbiBvbmNlIHlvdSd2ZSBjb25maWd1cmVkIHlvdXIgcHJlZmVyZW5jZXMgdG8gZW5qb3kgc2VhbWxlc3NseSB1cGdyYWRlZCB3b3Jrc3BhY2VzIGluIGdub21lIHNoZWxsXG5cblBsZWFzZSBkbyBub3QgbGVhdmUgYSBjb21tZW50IGZvciBpc3N1ZXMgYW5kIGluc3RlYWQgcmVwb3J0IGl0IGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ibGlway9DdXN0b21pc2VkLVdvcmtzcGFjZXMvaXNzdWVzIiwKICAiZXh0ZW5zaW9uLWlkIjogIndvcmtzZXRzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid29ya3NldHMiLAogICJuYW1lIjogIkN1c3RvbWlzZWQgV29ya3NwYWNlcyIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJibGlwayIsCiAgInJlc291cmNlLXBhdGgiOiAiL29yZy9rcm9ub3NvdWwvd29ya3NldHMvIiwKICAic2V0dGluZ3MtcGF0aCI6ICIvb3JnL2dub21lL3NoZWxsL2V4dGVuc2lvbnMvd29ya3NldHMvIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmtzZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmxpcGsvQ3VzdG9taXNlZC1Xb3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ3b3Jrc2V0c0BibGlway54eXoiLAogICJ2ZXJzaW9uIjogNjAKfQ=="},
     "43": {"version": "60", "sha256": "1f79yi0g8pdnxpbfq098xi52shg5qn1s8gy5yi83i38brz3dv4bp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwud29ya3NldHMiLAogICJkZXNjcmlwdGlvbiI6ICJDdXN0b21pc2VkIFdvcmtzcGFjZXMgZW5hYmxlcyBjcmVhdGluZyBpc29sYXRlZCBhbmQgY3VzdG9taXNlZCB3b3Jrc3BhY2VzLlxuXG4qIENob29zZSBhIGRpZmZlcmVudCBiYWNrZ3JvdW5kIGltYWdlIGZvciBlYWNoIHdvcmtzcGFjZVxuKiBZb3VyIGRhc2ggd2lsbCBoYXZlIHVuaXF1ZSBmYXZvdXJpdGUgYXBwbGljYXRpb25zIG9uIGVhY2ggd29ya3NwYWNlXG4qIE9wdGlvbmFsbHkgaXNvbGF0ZSBydW5uaW5nIGFwcGxpY2F0aW9ucyB0byBvbmx5IGFwcGVhciBvbiB0aGUgZGFzaCBpbiB0aGVpciByZXNwZWN0aXZlIHdvcmtzcGFjZVxuKiBPcHRpb25hbGx5IHNob3cgd29ya3NwYWNlIGluZm9ybWF0aW9uIGFuZCBhY3Rpb25zIGluIHRoZSBvdmVydmlld1xuKiBTZXQgZWFjaCBjdXN0b21pc2VkIHdvcmtzcGFjZSB0byBhdXRvbG9hZCBvbiBzcGVjaWZpYyB3b3Jrc3BhY2VzXG4qIEhpZGUgdGhlIGV4dGVuc2lvbiBvbmNlIHlvdSd2ZSBjb25maWd1cmVkIHlvdXIgcHJlZmVyZW5jZXMgdG8gZW5qb3kgc2VhbWxlc3NseSB1cGdyYWRlZCB3b3Jrc3BhY2VzIGluIGdub21lIHNoZWxsXG5cblBsZWFzZSBkbyBub3QgbGVhdmUgYSBjb21tZW50IGZvciBpc3N1ZXMgYW5kIGluc3RlYWQgcmVwb3J0IGl0IGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ibGlway9DdXN0b21pc2VkLVdvcmtzcGFjZXMvaXNzdWVzIiwKICAiZXh0ZW5zaW9uLWlkIjogIndvcmtzZXRzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid29ya3NldHMiLAogICJuYW1lIjogIkN1c3RvbWlzZWQgV29ya3NwYWNlcyIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJibGlwayIsCiAgInJlc291cmNlLXBhdGgiOiAiL29yZy9rcm9ub3NvdWwvd29ya3NldHMvIiwKICAic2V0dGluZ3MtcGF0aCI6ICIvb3JnL2dub21lL3NoZWxsL2V4dGVuc2lvbnMvd29ya3NldHMvIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmtzZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmxpcGsvQ3VzdG9taXNlZC1Xb3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ3b3Jrc2V0c0BibGlway54eXoiLAogICJ2ZXJzaW9uIjogNjAKfQ=="},
     "44": {"version": "60", "sha256": "1f79yi0g8pdnxpbfq098xi52shg5qn1s8gy5yi83i38brz3dv4bp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwud29ya3NldHMiLAogICJkZXNjcmlwdGlvbiI6ICJDdXN0b21pc2VkIFdvcmtzcGFjZXMgZW5hYmxlcyBjcmVhdGluZyBpc29sYXRlZCBhbmQgY3VzdG9taXNlZCB3b3Jrc3BhY2VzLlxuXG4qIENob29zZSBhIGRpZmZlcmVudCBiYWNrZ3JvdW5kIGltYWdlIGZvciBlYWNoIHdvcmtzcGFjZVxuKiBZb3VyIGRhc2ggd2lsbCBoYXZlIHVuaXF1ZSBmYXZvdXJpdGUgYXBwbGljYXRpb25zIG9uIGVhY2ggd29ya3NwYWNlXG4qIE9wdGlvbmFsbHkgaXNvbGF0ZSBydW5uaW5nIGFwcGxpY2F0aW9ucyB0byBvbmx5IGFwcGVhciBvbiB0aGUgZGFzaCBpbiB0aGVpciByZXNwZWN0aXZlIHdvcmtzcGFjZVxuKiBPcHRpb25hbGx5IHNob3cgd29ya3NwYWNlIGluZm9ybWF0aW9uIGFuZCBhY3Rpb25zIGluIHRoZSBvdmVydmlld1xuKiBTZXQgZWFjaCBjdXN0b21pc2VkIHdvcmtzcGFjZSB0byBhdXRvbG9hZCBvbiBzcGVjaWZpYyB3b3Jrc3BhY2VzXG4qIEhpZGUgdGhlIGV4dGVuc2lvbiBvbmNlIHlvdSd2ZSBjb25maWd1cmVkIHlvdXIgcHJlZmVyZW5jZXMgdG8gZW5qb3kgc2VhbWxlc3NseSB1cGdyYWRlZCB3b3Jrc3BhY2VzIGluIGdub21lIHNoZWxsXG5cblBsZWFzZSBkbyBub3QgbGVhdmUgYSBjb21tZW50IGZvciBpc3N1ZXMgYW5kIGluc3RlYWQgcmVwb3J0IGl0IGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ibGlway9DdXN0b21pc2VkLVdvcmtzcGFjZXMvaXNzdWVzIiwKICAiZXh0ZW5zaW9uLWlkIjogIndvcmtzZXRzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid29ya3NldHMiLAogICJuYW1lIjogIkN1c3RvbWlzZWQgV29ya3NwYWNlcyIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJibGlwayIsCiAgInJlc291cmNlLXBhdGgiOiAiL29yZy9rcm9ub3NvdWwvd29ya3NldHMvIiwKICAic2V0dGluZ3MtcGF0aCI6ICIvb3JnL2dub21lL3NoZWxsL2V4dGVuc2lvbnMvd29ya3NldHMvIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmtzZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmxpcGsvQ3VzdG9taXNlZC1Xb3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ3b3Jrc2V0c0BibGlway54eXoiLAogICJ2ZXJzaW9uIjogNjAKfQ=="},
-    "45": {"version": "65", "sha256": "0mrbflk2pwlwinm2xn3zgs6afs0rp0i3vqkl3fh19i4m0dxjm815", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwud29ya3NldHMiLAogICJkZXNjcmlwdGlvbiI6ICJDdXN0b21pc2VkIFdvcmtzcGFjZXMgZW5hYmxlcyBjcmVhdGluZyBpc29sYXRlZCBhbmQgY3VzdG9taXNlZCB3b3Jrc3BhY2VzLlxuXG4qIENob29zZSBhIGRpZmZlcmVudCBiYWNrZ3JvdW5kIGltYWdlIGZvciBlYWNoIHdvcmtzcGFjZVxuKiBZb3VyIGRhc2ggd2lsbCBoYXZlIHVuaXF1ZSBmYXZvdXJpdGUgYXBwbGljYXRpb25zIG9uIGVhY2ggd29ya3NwYWNlXG4qIE9wdGlvbmFsbHkgaXNvbGF0ZSBydW5uaW5nIGFwcGxpY2F0aW9ucyB0byBvbmx5IGFwcGVhciBvbiB0aGUgZGFzaCBpbiB0aGVpciByZXNwZWN0aXZlIHdvcmtzcGFjZVxuKiBPcHRpb25hbGx5IHNob3cgd29ya3NwYWNlIGluZm9ybWF0aW9uIGFuZCBhY3Rpb25zIGluIHRoZSBvdmVydmlld1xuKiBTZXQgZWFjaCBjdXN0b21pc2VkIHdvcmtzcGFjZSB0byBhdXRvbG9hZCBvbiBzcGVjaWZpYyB3b3Jrc3BhY2VzXG4qIEhpZGUgdGhlIGV4dGVuc2lvbiBvbmNlIHlvdSd2ZSBjb25maWd1cmVkIHlvdXIgcHJlZmVyZW5jZXMgdG8gZW5qb3kgc2VhbWxlc3NseSB1cGdyYWRlZCB3b3Jrc3BhY2VzIGluIGdub21lIHNoZWxsXG5cblBsZWFzZSBkbyBub3QgbGVhdmUgYSBjb21tZW50IGZvciBpc3N1ZXMgYW5kIGluc3RlYWQgcmVwb3J0IGl0IGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ibGlway9DdXN0b21pc2VkLVdvcmtzcGFjZXMvaXNzdWVzIiwKICAiZXh0ZW5zaW9uLWlkIjogIndvcmtzZXRzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid29ya3NldHMiLAogICJuYW1lIjogIkN1c3RvbWlzZWQgV29ya3NwYWNlcyIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJibGlwayIsCiAgInJlc291cmNlLXBhdGgiOiAiL29yZy9rcm9ub3NvdWwvd29ya3NldHMvIiwKICAic2V0dGluZ3MtcGF0aCI6ICIvb3JnL2dub21lL3NoZWxsL2V4dGVuc2lvbnMvd29ya3NldHMvIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmtzZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JsaXBrL0N1c3RvbWlzZWQtV29ya3NwYWNlcyIsCiAgInV1aWQiOiAid29ya3NldHNAYmxpcGsueHl6IiwKICAidmVyc2lvbiI6IDY1Cn0="}
+    "45": {"version": "66", "sha256": "10dbblq7x9fwmxk66m9bv3g79nr78jv5by21nkaiph4xwj0kblqq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwud29ya3NldHMiLAogICJkZXNjcmlwdGlvbiI6ICJDdXN0b21pc2VkIFdvcmtzcGFjZXMgZW5hYmxlcyBjcmVhdGluZyBpc29sYXRlZCBhbmQgY3VzdG9taXNlZCB3b3Jrc3BhY2VzLlxuXG4qIENob29zZSBhIGRpZmZlcmVudCBiYWNrZ3JvdW5kIGltYWdlIGZvciBlYWNoIHdvcmtzcGFjZVxuKiBZb3VyIGRhc2ggd2lsbCBoYXZlIHVuaXF1ZSBmYXZvdXJpdGUgYXBwbGljYXRpb25zIG9uIGVhY2ggd29ya3NwYWNlXG4qIE9wdGlvbmFsbHkgaXNvbGF0ZSBydW5uaW5nIGFwcGxpY2F0aW9ucyB0byBvbmx5IGFwcGVhciBvbiB0aGUgZGFzaCBpbiB0aGVpciByZXNwZWN0aXZlIHdvcmtzcGFjZVxuKiBPcHRpb25hbGx5IHNob3cgd29ya3NwYWNlIGluZm9ybWF0aW9uIGFuZCBhY3Rpb25zIGluIHRoZSBvdmVydmlld1xuKiBTZXQgZWFjaCBjdXN0b21pc2VkIHdvcmtzcGFjZSB0byBhdXRvbG9hZCBvbiBzcGVjaWZpYyB3b3Jrc3BhY2VzXG4qIEhpZGUgdGhlIGV4dGVuc2lvbiBvbmNlIHlvdSd2ZSBjb25maWd1cmVkIHlvdXIgcHJlZmVyZW5jZXMgdG8gZW5qb3kgc2VhbWxlc3NseSB1cGdyYWRlZCB3b3Jrc3BhY2VzIGluIGdub21lIHNoZWxsXG5cblBsZWFzZSBkbyBub3QgbGVhdmUgYSBjb21tZW50IGZvciBpc3N1ZXMgYW5kIGluc3RlYWQgcmVwb3J0IGl0IGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ibGlway9DdXN0b21pc2VkLVdvcmtzcGFjZXMvaXNzdWVzIiwKICAiZXh0ZW5zaW9uLWlkIjogIndvcmtzZXRzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid29ya3NldHMiLAogICJuYW1lIjogIkN1c3RvbWlzZWQgV29ya3NwYWNlcyIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJibGlwayIsCiAgInJlc291cmNlLXBhdGgiOiAiL29yZy9rcm9ub3NvdWwvd29ya3NldHMvIiwKICAic2V0dGluZ3MtcGF0aCI6ICIvb3JnL2dub21lL3NoZWxsL2V4dGVuc2lvbnMvd29ya3NldHMvIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmtzZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JsaXBrL0N1c3RvbWlzZWQtV29ya3NwYWNlcyIsCiAgInV1aWQiOiAid29ya3NldHNAYmxpcGsueHl6IiwKICAidmVyc2lvbiI6IDY2Cn0="}
   }}
 , {"uuid": "NordVPN_Connect@poilrouge.fr", "name": "NordVPN Connect", "pname": "nordvpn-connect", "description": "Unofficial Gnome-Shell Extension to provide a GUI for the official NordVPN CLI Tool.", "link": "https://extensions.gnome.org/extension/1595/nordvpn-connect/", "shell_version_map": {
     "38": {"version": "15", "sha256": "0xccvy3kqgglhcjhixlxi65sa49lbm896lra2sks65arkx3fh63k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVub2ZmaWNpYWwgR25vbWUtU2hlbGwgRXh0ZW5zaW9uIHRvIHByb3ZpZGUgYSBHVUkgZm9yIHRoZSBvZmZpY2lhbCBOb3JkVlBOIENMSSBUb29sLiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMtbnZwbmNvbm5lY3QiLAogICJuYW1lIjogIk5vcmRWUE4gQ29ubmVjdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5udnBuY29ubmVjdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FsZXhQb2lscm91Z2UvTm9yZFZQTi1jb25uZWN0IiwKICAidXVpZCI6ICJOb3JkVlBOX0Nvbm5lY3RAcG9pbHJvdWdlLmZyIiwKICAidmVyc2lvbiI6IDE1Cn0="},
@@ -1788,7 +1803,8 @@
     "42": {"version": "28", "sha256": "0vxvd4q5bysqmrbw6d169l3ww37j6cdk70n1gk4m35ydvq7cpp6k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlck1vbjogYW4gZXh0ZW5zaW9uIGZvciBtb25pdG9yaW5nIGFuZCBtYW5hZ2luZyBzeXN0ZW1kIHNlcnZpY2VzLCBjcm9uIGpvYnMsIGRvY2tlciBhbmQgcG9kbWFuIGNvbnRhaW5lcnMiLAogICJuYW1lIjogIlNlck1vbjogU2VydmljZSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlcm1vbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcm92ZWxsaXBhb2xvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZXJtb24iLAogICJ1dWlkIjogInNlcm1vbkByb3ZlbGxpcGFvbG8tZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDI4Cn0="},
     "43": {"version": "28", "sha256": "0vxvd4q5bysqmrbw6d169l3ww37j6cdk70n1gk4m35ydvq7cpp6k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlck1vbjogYW4gZXh0ZW5zaW9uIGZvciBtb25pdG9yaW5nIGFuZCBtYW5hZ2luZyBzeXN0ZW1kIHNlcnZpY2VzLCBjcm9uIGpvYnMsIGRvY2tlciBhbmQgcG9kbWFuIGNvbnRhaW5lcnMiLAogICJuYW1lIjogIlNlck1vbjogU2VydmljZSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlcm1vbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcm92ZWxsaXBhb2xvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZXJtb24iLAogICJ1dWlkIjogInNlcm1vbkByb3ZlbGxpcGFvbG8tZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDI4Cn0="},
     "44": {"version": "28", "sha256": "0vxvd4q5bysqmrbw6d169l3ww37j6cdk70n1gk4m35ydvq7cpp6k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlck1vbjogYW4gZXh0ZW5zaW9uIGZvciBtb25pdG9yaW5nIGFuZCBtYW5hZ2luZyBzeXN0ZW1kIHNlcnZpY2VzLCBjcm9uIGpvYnMsIGRvY2tlciBhbmQgcG9kbWFuIGNvbnRhaW5lcnMiLAogICJuYW1lIjogIlNlck1vbjogU2VydmljZSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlcm1vbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcm92ZWxsaXBhb2xvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZXJtb24iLAogICJ1dWlkIjogInNlcm1vbkByb3ZlbGxpcGFvbG8tZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDI4Cn0="},
-    "45": {"version": "30", "sha256": "1mpizw5zl851k5zx6k5azrdfi9knpha3vin3l3szmzkmj9wzwjsw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlck1vbjogYW4gZXh0ZW5zaW9uIGZvciBtb25pdG9yaW5nIGFuZCBtYW5hZ2luZyBzeXN0ZW1kIHNlcnZpY2VzLCBjcm9uIGpvYnMsIGRvY2tlciBhbmQgcG9kbWFuIGNvbnRhaW5lcnMiLAogICJuYW1lIjogIlNlck1vbjogU2VydmljZSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlcm1vbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yb3ZlbGxpcGFvbG8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXNlcm1vbiIsCiAgInV1aWQiOiAic2VybW9uQHJvdmVsbGlwYW9sby1nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzAKfQ=="}
+    "45": {"version": "31", "sha256": "1x2gy4nvcz313nzb069g0im4b7alwgvxdfi45b4x5zfsn6w7qc07", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlck1vbjogYW4gZXh0ZW5zaW9uIGZvciBtb25pdG9yaW5nIGFuZCBtYW5hZ2luZyBzeXN0ZW1kIHNlcnZpY2VzLCBjcm9uIGpvYnMsIGRvY2tlciBhbmQgcG9kbWFuIGNvbnRhaW5lcnMiLAogICJuYW1lIjogIlNlck1vbjogU2VydmljZSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlcm1vbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcm92ZWxsaXBhb2xvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZXJtb24iLAogICJ1dWlkIjogInNlcm1vbkByb3ZlbGxpcGFvbG8tZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDMxCn0="},
+    "46": {"version": "31", "sha256": "1x2gy4nvcz313nzb069g0im4b7alwgvxdfi45b4x5zfsn6w7qc07", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlck1vbjogYW4gZXh0ZW5zaW9uIGZvciBtb25pdG9yaW5nIGFuZCBtYW5hZ2luZyBzeXN0ZW1kIHNlcnZpY2VzLCBjcm9uIGpvYnMsIGRvY2tlciBhbmQgcG9kbWFuIGNvbnRhaW5lcnMiLAogICJuYW1lIjogIlNlck1vbjogU2VydmljZSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlcm1vbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcm92ZWxsaXBhb2xvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZXJtb24iLAogICJ1dWlkIjogInNlcm1vbkByb3ZlbGxpcGFvbG8tZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDMxCn0="}
   }}
 , {"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=="},
@@ -1818,13 +1834,13 @@
   }}
 , {"uuid": "krypto@sereneblue", "name": "krypto", "pname": "krypto", "description": "GNOME extension to display cryptocurrency prices", "link": "https://extensions.gnome.org/extension/1913/krypto/", "shell_version_map": {
     "38": {"version": "5", "sha256": "1rpp22asfnhi11lprl70lr9dh2cw7w23yqf4hi629357592px2sv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIGV4dGVuc2lvbiB0byBkaXNwbGF5IGNyeXB0b2N1cnJlbmN5IHByaWNlcyIsCiAgIm5hbWUiOiAia3J5cHRvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2VyZW5lYmx1ZS9nbm9tZS1zaGVsbC1leHRlbnNpb24ta3J5cHRvIiwKICAidXVpZCI6ICJrcnlwdG9Ac2VyZW5lYmx1ZSIsCiAgInZlcnNpb24iOiA1Cn0="},
-    "40": {"version": "30", "sha256": "059x418ra9l1rcgfwy9zqm4gci7rbl7var99bnvzyvg0vhqfhdr7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIGV4dGVuc2lvbiB0byBkaXNwbGF5IGNyeXB0b2N1cnJlbmN5IHByaWNlcyIsCiAgIm5hbWUiOiAia3J5cHRvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1rcnlwdG8iLAogICJ1dWlkIjogImtyeXB0b0BzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMwCn0="},
-    "41": {"version": "30", "sha256": "059x418ra9l1rcgfwy9zqm4gci7rbl7var99bnvzyvg0vhqfhdr7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIGV4dGVuc2lvbiB0byBkaXNwbGF5IGNyeXB0b2N1cnJlbmN5IHByaWNlcyIsCiAgIm5hbWUiOiAia3J5cHRvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1rcnlwdG8iLAogICJ1dWlkIjogImtyeXB0b0BzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMwCn0="},
-    "42": {"version": "30", "sha256": "059x418ra9l1rcgfwy9zqm4gci7rbl7var99bnvzyvg0vhqfhdr7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIGV4dGVuc2lvbiB0byBkaXNwbGF5IGNyeXB0b2N1cnJlbmN5IHByaWNlcyIsCiAgIm5hbWUiOiAia3J5cHRvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1rcnlwdG8iLAogICJ1dWlkIjogImtyeXB0b0BzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMwCn0="},
-    "43": {"version": "30", "sha256": "059x418ra9l1rcgfwy9zqm4gci7rbl7var99bnvzyvg0vhqfhdr7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIGV4dGVuc2lvbiB0byBkaXNwbGF5IGNyeXB0b2N1cnJlbmN5IHByaWNlcyIsCiAgIm5hbWUiOiAia3J5cHRvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1rcnlwdG8iLAogICJ1dWlkIjogImtyeXB0b0BzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMwCn0="},
-    "44": {"version": "30", "sha256": "059x418ra9l1rcgfwy9zqm4gci7rbl7var99bnvzyvg0vhqfhdr7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIGV4dGVuc2lvbiB0byBkaXNwbGF5IGNyeXB0b2N1cnJlbmN5IHByaWNlcyIsCiAgIm5hbWUiOiAia3J5cHRvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1rcnlwdG8iLAogICJ1dWlkIjogImtyeXB0b0BzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMwCn0="},
-    "45": {"version": "32", "sha256": "1vwwaxx663gk0q22jcz48dv0fwd0a14xij9i71hgji5afihdhx26", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIGV4dGVuc2lvbiB0byBkaXNwbGF5IGNyeXB0b2N1cnJlbmN5IHByaWNlcyIsCiAgIm5hbWUiOiAia3J5cHRvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1rcnlwdG8iLAogICJ1dWlkIjogImtyeXB0b0BzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMyCn0="},
-    "46": {"version": "32", "sha256": "1vwwaxx663gk0q22jcz48dv0fwd0a14xij9i71hgji5afihdhx26", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIGV4dGVuc2lvbiB0byBkaXNwbGF5IGNyeXB0b2N1cnJlbmN5IHByaWNlcyIsCiAgIm5hbWUiOiAia3J5cHRvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1rcnlwdG8iLAogICJ1dWlkIjogImtyeXB0b0BzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMyCn0="}
+    "40": {"version": "33", "sha256": "0qmwzrhgjl012ahxmck937wibz7r3k1fr4rxb27b2frr5hmccry2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIGV4dGVuc2lvbiB0byBkaXNwbGF5IGNyeXB0b2N1cnJlbmN5IHByaWNlcyIsCiAgIm5hbWUiOiAia3J5cHRvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1rcnlwdG8iLAogICJ1dWlkIjogImtyeXB0b0BzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMzCn0="},
+    "41": {"version": "33", "sha256": "0qmwzrhgjl012ahxmck937wibz7r3k1fr4rxb27b2frr5hmccry2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIGV4dGVuc2lvbiB0byBkaXNwbGF5IGNyeXB0b2N1cnJlbmN5IHByaWNlcyIsCiAgIm5hbWUiOiAia3J5cHRvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1rcnlwdG8iLAogICJ1dWlkIjogImtyeXB0b0BzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMzCn0="},
+    "42": {"version": "33", "sha256": "0qmwzrhgjl012ahxmck937wibz7r3k1fr4rxb27b2frr5hmccry2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIGV4dGVuc2lvbiB0byBkaXNwbGF5IGNyeXB0b2N1cnJlbmN5IHByaWNlcyIsCiAgIm5hbWUiOiAia3J5cHRvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1rcnlwdG8iLAogICJ1dWlkIjogImtyeXB0b0BzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMzCn0="},
+    "43": {"version": "33", "sha256": "0qmwzrhgjl012ahxmck937wibz7r3k1fr4rxb27b2frr5hmccry2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIGV4dGVuc2lvbiB0byBkaXNwbGF5IGNyeXB0b2N1cnJlbmN5IHByaWNlcyIsCiAgIm5hbWUiOiAia3J5cHRvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1rcnlwdG8iLAogICJ1dWlkIjogImtyeXB0b0BzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMzCn0="},
+    "44": {"version": "33", "sha256": "0qmwzrhgjl012ahxmck937wibz7r3k1fr4rxb27b2frr5hmccry2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIGV4dGVuc2lvbiB0byBkaXNwbGF5IGNyeXB0b2N1cnJlbmN5IHByaWNlcyIsCiAgIm5hbWUiOiAia3J5cHRvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1rcnlwdG8iLAogICJ1dWlkIjogImtyeXB0b0BzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMzCn0="},
+    "45": {"version": "34", "sha256": "0011szahh84x4fh7mi9qzr3d8bdxn6bp82zicaqpx01ybqnaqisk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIGV4dGVuc2lvbiB0byBkaXNwbGF5IGNyeXB0b2N1cnJlbmN5IHByaWNlcyIsCiAgIm5hbWUiOiAia3J5cHRvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1rcnlwdG8iLAogICJ1dWlkIjogImtyeXB0b0BzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDM0Cn0="},
+    "46": {"version": "34", "sha256": "0011szahh84x4fh7mi9qzr3d8bdxn6bp82zicaqpx01ybqnaqisk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIGV4dGVuc2lvbiB0byBkaXNwbGF5IGNyeXB0b2N1cnJlbmN5IHByaWNlcyIsCiAgIm5hbWUiOiAia3J5cHRvIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1rcnlwdG8iLAogICJ1dWlkIjogImtyeXB0b0BzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDM0Cn0="}
   }}
 , {"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="},
@@ -1864,14 +1880,15 @@
     "45": {"version": "68", "sha256": "1i2f7qc48ggs9byr2j5jhhrh3g63q2ad63hsbvj3k79aavvhc4ry", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgaWNvbnMgdG8gdGhlIGRlc2t0b3AuIEZvcmsgb2YgdGhlIG9yaWdpbmFsIERlc2t0b3AgSWNvbnMgZXh0ZW5zaW9uLCB3aXRoIHNldmVyYWwgZW5oYW5jZW1lbnRzIC4iLAogICJuYW1lIjogIkRlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2Rlc2t0b3AtaWNvbnMtbmciLAogICJ1dWlkIjogImRpbmdAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogNjgKfQ=="},
     "46": {"version": "68", "sha256": "1i2f7qc48ggs9byr2j5jhhrh3g63q2ad63hsbvj3k79aavvhc4ry", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgaWNvbnMgdG8gdGhlIGRlc2t0b3AuIEZvcmsgb2YgdGhlIG9yaWdpbmFsIERlc2t0b3AgSWNvbnMgZXh0ZW5zaW9uLCB3aXRoIHNldmVyYWwgZW5oYW5jZW1lbnRzIC4iLAogICJuYW1lIjogIkRlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2Rlc2t0b3AtaWNvbnMtbmciLAogICJ1dWlkIjogImRpbmdAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogNjgKfQ=="}
   }}
-, {"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": {
+, {"uuid": "order-extensions@wa4557.github.com", "name": "Order Gnome Shell extensions", "pname": "order-gnome-shell-extensions", "description": "Orders icons from extensions in the top bar", "link": "https://extensions.gnome.org/extension/2114/order-gnome-shell-extensions/", "shell_version_map": {
     "38": {"version": "6", "sha256": "0hcbjrhrg11f5p23bhss75nhc9sqlh6p1bmfq7p7m7d276ckdmkk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBbmRyZWFzIEFuZ2VyZXIiLAogICJkZXNjcmlwdGlvbiI6ICJGaXhlcyBvcmRlciBvZiBnbm9tZS1zaGVsbCBleHRlbnNpb25zIiwKICAiZXh0ZW5zaW9uLWlkIjogIm9yZGVyLWV4dGVuc2lvbnMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJvcmRlciBleHRlbnNpb25zIiwKICAibmFtZSI6ICJPcmRlciBHbm9tZSBTaGVsbCBleHRlbnNpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICIzLjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIm9yZGVyLWV4dGVuc2lvbnNAd2E0NTU3LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNgp9"},
     "40": {"version": "15", "sha256": "0rnq57z5czbjxdnpxlgffz79pwzpsy2vglz0pjd2vx205a1p0sb4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBbmRyZWFzIEFuZ2VyZXIiLAogICJkZXNjcmlwdGlvbiI6ICJGaXhlcyBvcmRlciBvZiBnbm9tZS1zaGVsbCBleHRlbnNpb25zIiwKICAiZXh0ZW5zaW9uLWlkIjogIm9yZGVyLWV4dGVuc2lvbnMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJvcmRlciBleHRlbnNpb25zIiwKICAibmFtZSI6ICJPcmRlciBHbm9tZSBTaGVsbCBleHRlbnNpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAib3JkZXItZXh0ZW5zaW9uc0B3YTQ1NTcuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"},
     "41": {"version": "15", "sha256": "0rnq57z5czbjxdnpxlgffz79pwzpsy2vglz0pjd2vx205a1p0sb4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBbmRyZWFzIEFuZ2VyZXIiLAogICJkZXNjcmlwdGlvbiI6ICJGaXhlcyBvcmRlciBvZiBnbm9tZS1zaGVsbCBleHRlbnNpb25zIiwKICAiZXh0ZW5zaW9uLWlkIjogIm9yZGVyLWV4dGVuc2lvbnMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJvcmRlciBleHRlbnNpb25zIiwKICAibmFtZSI6ICJPcmRlciBHbm9tZSBTaGVsbCBleHRlbnNpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAib3JkZXItZXh0ZW5zaW9uc0B3YTQ1NTcuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"},
     "42": {"version": "15", "sha256": "0rnq57z5czbjxdnpxlgffz79pwzpsy2vglz0pjd2vx205a1p0sb4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBbmRyZWFzIEFuZ2VyZXIiLAogICJkZXNjcmlwdGlvbiI6ICJGaXhlcyBvcmRlciBvZiBnbm9tZS1zaGVsbCBleHRlbnNpb25zIiwKICAiZXh0ZW5zaW9uLWlkIjogIm9yZGVyLWV4dGVuc2lvbnMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJvcmRlciBleHRlbnNpb25zIiwKICAibmFtZSI6ICJPcmRlciBHbm9tZSBTaGVsbCBleHRlbnNpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAib3JkZXItZXh0ZW5zaW9uc0B3YTQ1NTcuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"},
     "43": {"version": "15", "sha256": "0rnq57z5czbjxdnpxlgffz79pwzpsy2vglz0pjd2vx205a1p0sb4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBbmRyZWFzIEFuZ2VyZXIiLAogICJkZXNjcmlwdGlvbiI6ICJGaXhlcyBvcmRlciBvZiBnbm9tZS1zaGVsbCBleHRlbnNpb25zIiwKICAiZXh0ZW5zaW9uLWlkIjogIm9yZGVyLWV4dGVuc2lvbnMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJvcmRlciBleHRlbnNpb25zIiwKICAibmFtZSI6ICJPcmRlciBHbm9tZSBTaGVsbCBleHRlbnNpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAib3JkZXItZXh0ZW5zaW9uc0B3YTQ1NTcuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"},
     "44": {"version": "15", "sha256": "0rnq57z5czbjxdnpxlgffz79pwzpsy2vglz0pjd2vx205a1p0sb4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBbmRyZWFzIEFuZ2VyZXIiLAogICJkZXNjcmlwdGlvbiI6ICJGaXhlcyBvcmRlciBvZiBnbm9tZS1zaGVsbCBleHRlbnNpb25zIiwKICAiZXh0ZW5zaW9uLWlkIjogIm9yZGVyLWV4dGVuc2lvbnMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJvcmRlciBleHRlbnNpb25zIiwKICAibmFtZSI6ICJPcmRlciBHbm9tZSBTaGVsbCBleHRlbnNpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAib3JkZXItZXh0ZW5zaW9uc0B3YTQ1NTcuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"},
-    "45": {"version": "20", "sha256": "0kmm197znfdpsyw9nb82yznq9r6yjn5mwsa407ih8zv9c6zczzc4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBbmRyZWFzIEFuZ2VyZXIiLAogICJkZXNjcmlwdGlvbiI6ICJGaXhlcyBvcmRlciBvZiBnbm9tZS1zaGVsbCBleHRlbnNpb25zIiwKICAiZXh0ZW5zaW9uLWlkIjogIm9yZGVyLWV4dGVuc2lvbnMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJvcmRlciBleHRlbnNpb25zIiwKICAibmFtZSI6ICJPcmRlciBHbm9tZSBTaGVsbCBleHRlbnNpb25zIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9yZGVyLWljb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FuZGlhODkvb3JkZXItaWNvbnMiLAogICJ1dWlkIjogIm9yZGVyLWV4dGVuc2lvbnNAd2E0NTU3LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjAKfQ=="}
+    "45": {"version": "22", "sha256": "1jsv3qy7wq8q30ppwyszc7f3jf9r4d9vrhqz4iyk18588llz88n1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBbmRyZWFzIEFuZ2VyZXIiLAogICJkZXNjcmlwdGlvbiI6ICJPcmRlcnMgaWNvbnMgZnJvbSBleHRlbnNpb25zIGluIHRoZSB0b3AgYmFyIiwKICAiZXh0ZW5zaW9uLWlkIjogIm9yZGVyLWV4dGVuc2lvbnMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJvcmRlciBleHRlbnNpb25zIiwKICAibmFtZSI6ICJPcmRlciBHbm9tZSBTaGVsbCBleHRlbnNpb25zIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9yZGVyLWljb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbmRpYTg5L29yZGVyLWljb25zIiwKICAidXVpZCI6ICJvcmRlci1leHRlbnNpb25zQHdhNDU1Ny5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIyCn0="},
+    "46": {"version": "22", "sha256": "1jsv3qy7wq8q30ppwyszc7f3jf9r4d9vrhqz4iyk18588llz88n1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBbmRyZWFzIEFuZ2VyZXIiLAogICJkZXNjcmlwdGlvbiI6ICJPcmRlcnMgaWNvbnMgZnJvbSBleHRlbnNpb25zIGluIHRoZSB0b3AgYmFyIiwKICAiZXh0ZW5zaW9uLWlkIjogIm9yZGVyLWV4dGVuc2lvbnMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJvcmRlciBleHRlbnNpb25zIiwKICAibmFtZSI6ICJPcmRlciBHbm9tZSBTaGVsbCBleHRlbnNpb25zIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9yZGVyLWljb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbmRpYTg5L29yZGVyLWljb25zIiwKICAidXVpZCI6ICJvcmRlci1leHRlbnNpb25zQHdhNDU1Ny5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIyCn0="}
   }}
 , {"uuid": "sound-percentage@maestroschan.fr", "name": "Sound percentage", "pname": "sound-percentage", "description": "Display the current sound percentage in the system tray", "link": "https://extensions.gnome.org/extension/2120/sound-percentage/", "shell_version_map": {
     "38": {"version": "3", "sha256": "140a83mqwja4vkk83ajmknginh0izli65b8x7nab32sif99z7nya", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGhlIGN1cnJlbnQgc291bmQgcGVyY2VudGFnZSBpbiB0aGUgc3lzdGVtIHRyYXkiLAogICJuYW1lIjogIlNvdW5kIHBlcmNlbnRhZ2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYW9zY2hhbnovc291bmQtcGVyY2VudGFnZS1ncy1leHRlbnNpb24iLAogICJ1dWlkIjogInNvdW5kLXBlcmNlbnRhZ2VAbWFlc3Ryb3NjaGFuLmZyIiwKICAidmVyc2lvbiI6IDMKfQ=="},
@@ -1918,8 +1935,8 @@
     "42": {"version": "20", "sha256": "0dh3km7fnl2wg5p13knp3kzwfm5sfx2rlw4hcmpplqarwc3xxfp9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SZWRTb2Z0d2FyZVN5c3RlbXMvZWFzeV9kb2NrZXJfY29udGFpbmVycyIsCiAgInV1aWQiOiAiZWFzeV9kb2NrZXJfY29udGFpbmVyc0ByZWQuc29mdHdhcmUuc3lzdGVtcyIsCiAgInZlcnNpb24iOiAyMAp9"},
     "43": {"version": "20", "sha256": "0dh3km7fnl2wg5p13knp3kzwfm5sfx2rlw4hcmpplqarwc3xxfp9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SZWRTb2Z0d2FyZVN5c3RlbXMvZWFzeV9kb2NrZXJfY29udGFpbmVycyIsCiAgInV1aWQiOiAiZWFzeV9kb2NrZXJfY29udGFpbmVyc0ByZWQuc29mdHdhcmUuc3lzdGVtcyIsCiAgInZlcnNpb24iOiAyMAp9"},
     "44": {"version": "20", "sha256": "0dh3km7fnl2wg5p13knp3kzwfm5sfx2rlw4hcmpplqarwc3xxfp9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SZWRTb2Z0d2FyZVN5c3RlbXMvZWFzeV9kb2NrZXJfY29udGFpbmVycyIsCiAgInV1aWQiOiAiZWFzeV9kb2NrZXJfY29udGFpbmVyc0ByZWQuc29mdHdhcmUuc3lzdGVtcyIsCiAgInZlcnNpb24iOiAyMAp9"},
-    "45": {"version": "23", "sha256": "06a4s1njlg1lkapgr5lh0vsw3c7ny63c24386ysz3rk9c3517gzv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogInJlZC5zb2Z0d2FyZS5zeXN0ZW1zLmVhc3lfZG9ja2VyX2NvbnRhaW5lcnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JlZFNvZnR3YXJlU3lzdGVtcy9lYXN5X2RvY2tlcl9jb250YWluZXJzIiwKICAidXVpZCI6ICJlYXN5X2RvY2tlcl9jb250YWluZXJzQHJlZC5zb2Z0d2FyZS5zeXN0ZW1zIiwKICAidmVyc2lvbiI6IDIzCn0="},
-    "46": {"version": "23", "sha256": "06a4s1njlg1lkapgr5lh0vsw3c7ny63c24386ysz3rk9c3517gzv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogInJlZC5zb2Z0d2FyZS5zeXN0ZW1zLmVhc3lfZG9ja2VyX2NvbnRhaW5lcnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JlZFNvZnR3YXJlU3lzdGVtcy9lYXN5X2RvY2tlcl9jb250YWluZXJzIiwKICAidXVpZCI6ICJlYXN5X2RvY2tlcl9jb250YWluZXJzQHJlZC5zb2Z0d2FyZS5zeXN0ZW1zIiwKICAidmVyc2lvbiI6IDIzCn0="}
+    "45": {"version": "25", "sha256": "1n10k147k1lv30h20vmf9rfxzr58f9qxxc1f054s51gsqblwyvkm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogInJlZC5zb2Z0d2FyZS5zeXN0ZW1zLmVhc3lfZG9ja2VyX2NvbnRhaW5lcnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JlZFNvZnR3YXJlU3lzdGVtcy9lYXN5X2RvY2tlcl9jb250YWluZXJzIiwKICAidXVpZCI6ICJlYXN5X2RvY2tlcl9jb250YWluZXJzQHJlZC5zb2Z0d2FyZS5zeXN0ZW1zIiwKICAidmVyc2lvbiI6IDI1Cn0="},
+    "46": {"version": "25", "sha256": "1n10k147k1lv30h20vmf9rfxzr58f9qxxc1f054s51gsqblwyvkm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogInJlZC5zb2Z0d2FyZS5zeXN0ZW1zLmVhc3lfZG9ja2VyX2NvbnRhaW5lcnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JlZFNvZnR3YXJlU3lzdGVtcy9lYXN5X2RvY2tlcl9jb250YWluZXJzIiwKICAidXVpZCI6ICJlYXN5X2RvY2tlcl9jb250YWluZXJzQHJlZC5zb2Z0d2FyZS5zeXN0ZW1zIiwKICAidmVyc2lvbiI6IDI1Cn0="}
   }}
 , {"uuid": "nightthemeswitcher@romainvigier.fr", "name": "Night Theme Switcher", "pname": "night-theme-switcher", "description": "Automatically toggle your desktop’s color scheme between light and dark, switch backgrounds and run custom commands at sunset and sunrise.\n\n⚠️ Ubuntu is not supported due to their heavily patched GNOME components that conflict with the extension ⚠️", "link": "https://extensions.gnome.org/extension/2236/night-theme-switcher/", "shell_version_map": {
     "38": {"version": "46", "sha256": "1mqan95pv7fjgr3bis9f1262i6nwwmp15lalh6c3aspn17pncp7w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgdG9nZ2xlIHlvdXIgZGVza3RvcFx1MjAxOXMgY29sb3Igc2NoZW1lIGJldHdlZW4gbGlnaHQgYW5kIGRhcmssIHN3aXRjaCBiYWNrZ3JvdW5kcyBhbmQgcnVuIGN1c3RvbSBjb21tYW5kcyBhdCBzdW5zZXQgYW5kIHN1bnJpc2UuXG5cblx1MjZhMFx1ZmUwZiBVYnVudHUgaXMgbm90IHN1cHBvcnRlZCBkdWUgdG8gdGhlaXIgaGVhdmlseSBwYXRjaGVkIEdOT01FIGNvbXBvbmVudHMgdGhhdCBjb25mbGljdCB3aXRoIHRoZSBleHRlbnNpb24gXHUyNmEwXHVmZTBmIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibmlnaHR0aGVtZXN3aXRjaGVyQHJvbWFpbnZpZ2llci5mciIsCiAgIm5hbWUiOiAiTmlnaHQgVGhlbWUgU3dpdGNoZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubmlnaHR0aGVtZXN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL25pZ2h0dGhlbWVzd2l0Y2hlci5yb21haW52aWdpZXIuZnIiLAogICJ1dWlkIjogIm5pZ2h0dGhlbWVzd2l0Y2hlckByb21haW52aWdpZXIuZnIiLAogICJ2ZXJzaW9uIjogNDYKfQ=="},
@@ -2034,7 +2051,8 @@
     "42": {"version": "12", "sha256": "13pzx9h8685pk3wv5mndwdnsfd1zjywxxrc5z7759kd8hgvwqp9h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBzaG93IHRoZSBuZXcgbWVzc2FnZXMgaW5kaWNhdG9yIG9uIG5ldyBtZXNzYWdlcy4gRmVhdHVyZXM6XG4xKSBOZXcgbWVzc2FnZSBpbmRpY2F0b3IgaXMgYWx3YXlzIHNob3duIGlmIHRoZXJlIGFyZSBub3RpZmljYXRpb25zLlxuMikgVGhlIGNvbG9yIG9mIHRoZSBpbmRpY2F0b3IgY2FuIGJlIGN1c3RvbWl6ZWQuXG4zKSBJZiAnZG8gbm90IGRpc3R1cmInIGlzIGFjdGl2ZSwgdGhlIGljb24gaXMgZGlzcGxheWVkIGluIHRoZSBjdXN0b20gY29sb3IgaWYgdGhlcmUgYXJlIG5vdGlmaWNhdGlvbnMuXG5cbklmIHlvdSBhcHByZWNpYXRlIHRoaXMgZXh0ZW5zaW9uIHBsZWFzZSBjb25zaWRlciB0byBkb25hdGUgJDEuIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJtenVyIiwKICAgICJwYXlwYWwiOiAiZHJtenVyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFsd2F5cy1pbmRpY2F0b3IiLAogICJuYW1lIjogIkFsd2F5cyBJbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWx3YXlzLWluZGljYXRvci1zZXR0aW5ncyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbXp1ci9nbm9tZS1zaGVsbC1hbHdheXMtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJhbHdheXMtaW5kaWNhdG9yQG1hcnRpbi56dXJvd2lldHouZGUiLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
     "43": {"version": "12", "sha256": "13pzx9h8685pk3wv5mndwdnsfd1zjywxxrc5z7759kd8hgvwqp9h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBzaG93IHRoZSBuZXcgbWVzc2FnZXMgaW5kaWNhdG9yIG9uIG5ldyBtZXNzYWdlcy4gRmVhdHVyZXM6XG4xKSBOZXcgbWVzc2FnZSBpbmRpY2F0b3IgaXMgYWx3YXlzIHNob3duIGlmIHRoZXJlIGFyZSBub3RpZmljYXRpb25zLlxuMikgVGhlIGNvbG9yIG9mIHRoZSBpbmRpY2F0b3IgY2FuIGJlIGN1c3RvbWl6ZWQuXG4zKSBJZiAnZG8gbm90IGRpc3R1cmInIGlzIGFjdGl2ZSwgdGhlIGljb24gaXMgZGlzcGxheWVkIGluIHRoZSBjdXN0b20gY29sb3IgaWYgdGhlcmUgYXJlIG5vdGlmaWNhdGlvbnMuXG5cbklmIHlvdSBhcHByZWNpYXRlIHRoaXMgZXh0ZW5zaW9uIHBsZWFzZSBjb25zaWRlciB0byBkb25hdGUgJDEuIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJtenVyIiwKICAgICJwYXlwYWwiOiAiZHJtenVyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFsd2F5cy1pbmRpY2F0b3IiLAogICJuYW1lIjogIkFsd2F5cyBJbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWx3YXlzLWluZGljYXRvci1zZXR0aW5ncyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbXp1ci9nbm9tZS1zaGVsbC1hbHdheXMtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJhbHdheXMtaW5kaWNhdG9yQG1hcnRpbi56dXJvd2lldHouZGUiLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
     "44": {"version": "12", "sha256": "13pzx9h8685pk3wv5mndwdnsfd1zjywxxrc5z7759kd8hgvwqp9h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBzaG93IHRoZSBuZXcgbWVzc2FnZXMgaW5kaWNhdG9yIG9uIG5ldyBtZXNzYWdlcy4gRmVhdHVyZXM6XG4xKSBOZXcgbWVzc2FnZSBpbmRpY2F0b3IgaXMgYWx3YXlzIHNob3duIGlmIHRoZXJlIGFyZSBub3RpZmljYXRpb25zLlxuMikgVGhlIGNvbG9yIG9mIHRoZSBpbmRpY2F0b3IgY2FuIGJlIGN1c3RvbWl6ZWQuXG4zKSBJZiAnZG8gbm90IGRpc3R1cmInIGlzIGFjdGl2ZSwgdGhlIGljb24gaXMgZGlzcGxheWVkIGluIHRoZSBjdXN0b20gY29sb3IgaWYgdGhlcmUgYXJlIG5vdGlmaWNhdGlvbnMuXG5cbklmIHlvdSBhcHByZWNpYXRlIHRoaXMgZXh0ZW5zaW9uIHBsZWFzZSBjb25zaWRlciB0byBkb25hdGUgJDEuIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJtenVyIiwKICAgICJwYXlwYWwiOiAiZHJtenVyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFsd2F5cy1pbmRpY2F0b3IiLAogICJuYW1lIjogIkFsd2F5cyBJbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWx3YXlzLWluZGljYXRvci1zZXR0aW5ncyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbXp1ci9nbm9tZS1zaGVsbC1hbHdheXMtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJhbHdheXMtaW5kaWNhdG9yQG1hcnRpbi56dXJvd2lldHouZGUiLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
-    "45": {"version": "15", "sha256": "1clhhrfsd1z2dxp6l0pvr9bzbnq38a6lg03hz5cynf0v6dlglqwd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBzaG93IHRoZSBuZXcgbWVzc2FnZXMgaW5kaWNhdG9yIG9uIG5ldyBtZXNzYWdlcy4gRmVhdHVyZXM6XG4xKSBOZXcgbWVzc2FnZSBpbmRpY2F0b3IgaXMgYWx3YXlzIHNob3duIGlmIHRoZXJlIGFyZSBub3RpZmljYXRpb25zLlxuMikgVGhlIGNvbG9yIG9mIHRoZSBpbmRpY2F0b3IgY2FuIGJlIGN1c3RvbWl6ZWQuXG4zKSBJZiAnZG8gbm90IGRpc3R1cmInIGlzIGFjdGl2ZSwgdGhlIGljb24gaXMgZGlzcGxheWVkIGluIHRoZSBjdXN0b20gY29sb3IgaWYgdGhlcmUgYXJlIG5vdGlmaWNhdGlvbnMuXG5cbklmIHlvdSBhcHByZWNpYXRlIHRoaXMgZXh0ZW5zaW9uIHBsZWFzZSBjb25zaWRlciB0byBkb25hdGUgJDEuIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJtenVyIiwKICAgICJwYXlwYWwiOiAiZHJtenVyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFsd2F5cy1pbmRpY2F0b3IiLAogICJuYW1lIjogIkFsd2F5cyBJbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWx3YXlzLWluZGljYXRvci1zZXR0aW5ncyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tenVyL2dub21lLXNoZWxsLWFsd2F5cy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImFsd2F5cy1pbmRpY2F0b3JAbWFydGluLnp1cm93aWV0ei5kZSIsCiAgInZlcnNpb24iOiAxNQp9"}
+    "45": {"version": "16", "sha256": "0si884yba6844x8nn4dy43y64h4lks9n648xqqhwalj10qxganr3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBzaG93IHRoZSBuZXcgbWVzc2FnZXMgaW5kaWNhdG9yIG9uIG5ldyBtZXNzYWdlcy4gRmVhdHVyZXM6XG4xKSBOZXcgbWVzc2FnZSBpbmRpY2F0b3IgaXMgYWx3YXlzIHNob3duIGlmIHRoZXJlIGFyZSBub3RpZmljYXRpb25zLlxuMikgVGhlIGNvbG9yIG9mIHRoZSBpbmRpY2F0b3IgY2FuIGJlIGN1c3RvbWl6ZWQuXG4zKSBJZiAnZG8gbm90IGRpc3R1cmInIGlzIGFjdGl2ZSwgdGhlIGljb24gaXMgZGlzcGxheWVkIGluIHRoZSBjdXN0b20gY29sb3IgaWYgdGhlcmUgYXJlIG5vdGlmaWNhdGlvbnMuXG5cbklmIHlvdSBhcHByZWNpYXRlIHRoaXMgZXh0ZW5zaW9uIHBsZWFzZSBjb25zaWRlciB0byBkb25hdGUgJDEuIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJtenVyIiwKICAgICJwYXlwYWwiOiAiZHJtenVyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFsd2F5cy1pbmRpY2F0b3IiLAogICJuYW1lIjogIkFsd2F5cyBJbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWx3YXlzLWluZGljYXRvci1zZXR0aW5ncyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbXp1ci9nbm9tZS1zaGVsbC1hbHdheXMtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJhbHdheXMtaW5kaWNhdG9yQG1hcnRpbi56dXJvd2lldHouZGUiLAogICJ2ZXJzaW9uIjogMTYKfQ=="},
+    "46": {"version": "16", "sha256": "0si884yba6844x8nn4dy43y64h4lks9n648xqqhwalj10qxganr3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBzaG93IHRoZSBuZXcgbWVzc2FnZXMgaW5kaWNhdG9yIG9uIG5ldyBtZXNzYWdlcy4gRmVhdHVyZXM6XG4xKSBOZXcgbWVzc2FnZSBpbmRpY2F0b3IgaXMgYWx3YXlzIHNob3duIGlmIHRoZXJlIGFyZSBub3RpZmljYXRpb25zLlxuMikgVGhlIGNvbG9yIG9mIHRoZSBpbmRpY2F0b3IgY2FuIGJlIGN1c3RvbWl6ZWQuXG4zKSBJZiAnZG8gbm90IGRpc3R1cmInIGlzIGFjdGl2ZSwgdGhlIGljb24gaXMgZGlzcGxheWVkIGluIHRoZSBjdXN0b20gY29sb3IgaWYgdGhlcmUgYXJlIG5vdGlmaWNhdGlvbnMuXG5cbklmIHlvdSBhcHByZWNpYXRlIHRoaXMgZXh0ZW5zaW9uIHBsZWFzZSBjb25zaWRlciB0byBkb25hdGUgJDEuIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJtenVyIiwKICAgICJwYXlwYWwiOiAiZHJtenVyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFsd2F5cy1pbmRpY2F0b3IiLAogICJuYW1lIjogIkFsd2F5cyBJbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWx3YXlzLWluZGljYXRvci1zZXR0aW5ncyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbXp1ci9nbm9tZS1zaGVsbC1hbHdheXMtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJhbHdheXMtaW5kaWNhdG9yQG1hcnRpbi56dXJvd2lldHouZGUiLAogICJ2ZXJzaW9uIjogMTYKfQ=="}
   }}
 , {"uuid": "eruption-profile-switcher@x3n0m0rph59.org", "name": "Eruption Profile Switcher", "pname": "eruption-profile-switcher", "description": "Runtime Profile switcher for the Eruption Realtime RGB LED Driver for Linux", "link": "https://extensions.gnome.org/extension/2621/eruption-profile-switcher/", "shell_version_map": {
     "38": {"version": "15", "sha256": "14zgczf2z7jv707whimggl3h31c44m1qdzncin38vdcdzhm2g7hv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJ1bnRpbWUgUHJvZmlsZSBzd2l0Y2hlciBmb3IgdGhlIEVydXB0aW9uIFJlYWx0aW1lIFJHQiBMRUQgRHJpdmVyIGZvciBMaW51eCIsCiAgIm5hbWUiOiAiRXJ1cHRpb24gUHJvZmlsZSBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuYmV0YSIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9YM24wbTBycGg1OS9lcnVwdGlvbi1wcm9maWxlLXN3aXRjaGVyIiwKICAidXVpZCI6ICJlcnVwdGlvbi1wcm9maWxlLXN3aXRjaGVyQHgzbjBtMHJwaDU5Lm9yZyIsCiAgInZlcnNpb24iOiAxNQp9"},
@@ -2137,7 +2155,8 @@
     "42": {"version": "41", "sha256": "0irsbwxbh9xvb76j4nfiy508kir72x11h9bbmwhsyd531d0jmyjm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdG8gdHJhY2sgcHJpY2Ugb2YgQ3J5cHRvIEN1cnJlbmNpZXNcbkxpa2U6IEJUQywgRVRILCBCTkIsIERPR0UgYW5kIGV0Yy4uXG5cblNvdXJjZXM6IEJpbmFuY2UsIENyeXB0bywgQ29pbmdlY2tvLCBPS1hcblxuQWRkIGNvaW5zIGJ5IHN5bWJvbHMsIGZvciBleGFtcGxlOlxuKiBCaW5hbmNlIHBhaXJzOiBcIkJUQy9VU0RUXCJcbiogT0tYIHBhaXJzOiBcIkxUQy9VU0RUXCJcbiogQ29pbmdlY2tvIHBhaXJzOiBcIkJUQy9VU0RcIlxuXG5Vc2luZyBhcGkuY29pbmdlY2tvLmNvbSwgb2t4LmNvbSwgYmluYW5jZS5jb20sIGNyeXB0by5jb21cbkNvbXBsZXRlIGxpc3Qgb2YgcGFpcnM6IGh0dHBzOi8vd3d3LmJpbmFuY2UuY29tL2luZGV4U3BhLmh0bWxcbkNvbXBsZXRlIGd1aWRlOiBodHRwczovL2dpdGh1Yi5jb20vYWxpcGlycGlyYW4vQ3J5cHRvLVByaWNlLVRyYWNrZXItZm9yLUdub21lLVNoZWxsI3JlYWRtZVxuXG4qKiBpZiBpdCBmYWNlZCBlcnJvciBhZnRlciB1cGRhdGU6XG4qKlJlc3RhcnQgR25vbWUtc2hlbGwuIChBTFQrRjIsIHIsIEVudGVyKSIsCiAgIm5hbWUiOiAiQ3J5cHRvIFByaWNlIFRyYWNrZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3J5cHRvLXRyYWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FsaXBpcnBpcmFuL0NyeXB0by1QcmljZS1UcmFja2VyLWZvci1Hbm9tZS1TaGVsbCIsCiAgInV1aWQiOiAiY3J5cHRvQGFsaXBpcnBpcmFuLmdpdGh1YiIsCiAgInZlcnNpb24iOiA0MQp9"},
     "43": {"version": "41", "sha256": "0irsbwxbh9xvb76j4nfiy508kir72x11h9bbmwhsyd531d0jmyjm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdG8gdHJhY2sgcHJpY2Ugb2YgQ3J5cHRvIEN1cnJlbmNpZXNcbkxpa2U6IEJUQywgRVRILCBCTkIsIERPR0UgYW5kIGV0Yy4uXG5cblNvdXJjZXM6IEJpbmFuY2UsIENyeXB0bywgQ29pbmdlY2tvLCBPS1hcblxuQWRkIGNvaW5zIGJ5IHN5bWJvbHMsIGZvciBleGFtcGxlOlxuKiBCaW5hbmNlIHBhaXJzOiBcIkJUQy9VU0RUXCJcbiogT0tYIHBhaXJzOiBcIkxUQy9VU0RUXCJcbiogQ29pbmdlY2tvIHBhaXJzOiBcIkJUQy9VU0RcIlxuXG5Vc2luZyBhcGkuY29pbmdlY2tvLmNvbSwgb2t4LmNvbSwgYmluYW5jZS5jb20sIGNyeXB0by5jb21cbkNvbXBsZXRlIGxpc3Qgb2YgcGFpcnM6IGh0dHBzOi8vd3d3LmJpbmFuY2UuY29tL2luZGV4U3BhLmh0bWxcbkNvbXBsZXRlIGd1aWRlOiBodHRwczovL2dpdGh1Yi5jb20vYWxpcGlycGlyYW4vQ3J5cHRvLVByaWNlLVRyYWNrZXItZm9yLUdub21lLVNoZWxsI3JlYWRtZVxuXG4qKiBpZiBpdCBmYWNlZCBlcnJvciBhZnRlciB1cGRhdGU6XG4qKlJlc3RhcnQgR25vbWUtc2hlbGwuIChBTFQrRjIsIHIsIEVudGVyKSIsCiAgIm5hbWUiOiAiQ3J5cHRvIFByaWNlIFRyYWNrZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3J5cHRvLXRyYWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FsaXBpcnBpcmFuL0NyeXB0by1QcmljZS1UcmFja2VyLWZvci1Hbm9tZS1TaGVsbCIsCiAgInV1aWQiOiAiY3J5cHRvQGFsaXBpcnBpcmFuLmdpdGh1YiIsCiAgInZlcnNpb24iOiA0MQp9"},
     "44": {"version": "41", "sha256": "0irsbwxbh9xvb76j4nfiy508kir72x11h9bbmwhsyd531d0jmyjm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdG8gdHJhY2sgcHJpY2Ugb2YgQ3J5cHRvIEN1cnJlbmNpZXNcbkxpa2U6IEJUQywgRVRILCBCTkIsIERPR0UgYW5kIGV0Yy4uXG5cblNvdXJjZXM6IEJpbmFuY2UsIENyeXB0bywgQ29pbmdlY2tvLCBPS1hcblxuQWRkIGNvaW5zIGJ5IHN5bWJvbHMsIGZvciBleGFtcGxlOlxuKiBCaW5hbmNlIHBhaXJzOiBcIkJUQy9VU0RUXCJcbiogT0tYIHBhaXJzOiBcIkxUQy9VU0RUXCJcbiogQ29pbmdlY2tvIHBhaXJzOiBcIkJUQy9VU0RcIlxuXG5Vc2luZyBhcGkuY29pbmdlY2tvLmNvbSwgb2t4LmNvbSwgYmluYW5jZS5jb20sIGNyeXB0by5jb21cbkNvbXBsZXRlIGxpc3Qgb2YgcGFpcnM6IGh0dHBzOi8vd3d3LmJpbmFuY2UuY29tL2luZGV4U3BhLmh0bWxcbkNvbXBsZXRlIGd1aWRlOiBodHRwczovL2dpdGh1Yi5jb20vYWxpcGlycGlyYW4vQ3J5cHRvLVByaWNlLVRyYWNrZXItZm9yLUdub21lLVNoZWxsI3JlYWRtZVxuXG4qKiBpZiBpdCBmYWNlZCBlcnJvciBhZnRlciB1cGRhdGU6XG4qKlJlc3RhcnQgR25vbWUtc2hlbGwuIChBTFQrRjIsIHIsIEVudGVyKSIsCiAgIm5hbWUiOiAiQ3J5cHRvIFByaWNlIFRyYWNrZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3J5cHRvLXRyYWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FsaXBpcnBpcmFuL0NyeXB0by1QcmljZS1UcmFja2VyLWZvci1Hbm9tZS1TaGVsbCIsCiAgInV1aWQiOiAiY3J5cHRvQGFsaXBpcnBpcmFuLmdpdGh1YiIsCiAgInZlcnNpb24iOiA0MQp9"},
-    "45": {"version": "45", "sha256": "0bbjng2cms58hbhy80ildzfq9vjcqp88mw0jqf4igp1b38zl0bck", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdG8gdHJhY2sgcHJpY2Ugb2YgQ3J5cHRvIEN1cnJlbmNpZXNcbkxpa2U6IEJUQywgRVRILCBCTkIsIERPR0UgYW5kIGV0Yy4uXG5cblNvdXJjZXM6IEJpbmFuY2UsIENyeXB0bywgQ29pbmdlY2tvLCBPS1hcblxuQWRkIGNvaW5zIGJ5IHN5bWJvbHMsIGZvciBleGFtcGxlOlxuKiBCaW5hbmNlIHBhaXJzOiBcIkJUQy9VU0RUXCJcbiogT0tYIHBhaXJzOiBcIkxUQy9VU0RUXCJcbiogQ29pbmdlY2tvIHBhaXJzOiBcIkJUQy9VU0RcIlxuXG5Vc2luZyBhcGkuY29pbmdlY2tvLmNvbSwgb2t4LmNvbSwgYmluYW5jZS5jb20sIGNyeXB0by5jb21cbkNvbXBsZXRlIGxpc3Qgb2YgcGFpcnM6IGh0dHBzOi8vd3d3LmJpbmFuY2UuY29tL2luZGV4U3BhLmh0bWxcbkNvbXBsZXRlIGd1aWRlOiBodHRwczovL2dpdGh1Yi5jb20vYWxpcGlycGlyYW4vQ3J5cHRvLVByaWNlLVRyYWNrZXItZm9yLUdub21lLVNoZWxsI3JlYWRtZVxuXG4qKiBpZiBpdCBmYWNlZCBlcnJvciBhZnRlciB1cGRhdGU6XG4qKlJlc3RhcnQgR25vbWUtc2hlbGwuIChBTFQrRjIsIHIsIEVudGVyKSIsCiAgIm5hbWUiOiAiQ3J5cHRvIFByaWNlIFRyYWNrZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3J5cHRvLXRyYWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWxpcGlycGlyYW4vQ3J5cHRvLVByaWNlLVRyYWNrZXItZm9yLUdub21lLVNoZWxsIiwKICAidXVpZCI6ICJjcnlwdG9AYWxpcGlycGlyYW4uZ2l0aHViIiwKICAidmVyc2lvbiI6IDQ1Cn0="}
+    "45": {"version": "46", "sha256": "0b9a6ngj9w83gqasg0b3h8iy4abl0ysrj9jpkqwj8xq0xr9b0g3v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdG8gdHJhY2sgcHJpY2Ugb2YgQ3J5cHRvIEN1cnJlbmNpZXNcbkxpa2U6IEJUQywgRVRILCBCTkIsIERPR0UgYW5kIGV0Yy4uXG5cblNvdXJjZXM6IEJpbmFuY2UsIENyeXB0bywgQ29pbmdlY2tvLCBPS1hcblxuQWRkIGNvaW5zIGJ5IHN5bWJvbHMsIGZvciBleGFtcGxlOlxuKiBCaW5hbmNlIHBhaXJzOiBcIkJUQy9VU0RUXCJcbiogT0tYIHBhaXJzOiBcIkxUQy9VU0RUXCJcbiogQ29pbmdlY2tvIHBhaXJzOiBcIkJUQy9VU0RcIlxuXG5Vc2luZyBhcGkuY29pbmdlY2tvLmNvbSwgb2t4LmNvbSwgYmluYW5jZS5jb20sIGNyeXB0by5jb21cbkNvbXBsZXRlIGxpc3Qgb2YgcGFpcnM6IGh0dHBzOi8vd3d3LmJpbmFuY2UuY29tL2luZGV4U3BhLmh0bWxcbkNvbXBsZXRlIGd1aWRlOiBodHRwczovL2dpdGh1Yi5jb20vYWxpcGlycGlyYW4vQ3J5cHRvLVByaWNlLVRyYWNrZXItZm9yLUdub21lLVNoZWxsI3JlYWRtZVxuXG4qKiBpZiBpdCBmYWNlZCBlcnJvciBhZnRlciB1cGRhdGU6XG4qKlJlc3RhcnQgR25vbWUtc2hlbGwuIChBTFQrRjIsIHIsIEVudGVyKSIsCiAgIm5hbWUiOiAiQ3J5cHRvIFByaWNlIFRyYWNrZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3J5cHRvLXRyYWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FsaXBpcnBpcmFuL0NyeXB0by1QcmljZS1UcmFja2VyLWZvci1Hbm9tZS1TaGVsbCIsCiAgInV1aWQiOiAiY3J5cHRvQGFsaXBpcnBpcmFuLmdpdGh1YiIsCiAgInZlcnNpb24iOiA0Ngp9"},
+    "46": {"version": "46", "sha256": "0b9a6ngj9w83gqasg0b3h8iy4abl0ysrj9jpkqwj8xq0xr9b0g3v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdG8gdHJhY2sgcHJpY2Ugb2YgQ3J5cHRvIEN1cnJlbmNpZXNcbkxpa2U6IEJUQywgRVRILCBCTkIsIERPR0UgYW5kIGV0Yy4uXG5cblNvdXJjZXM6IEJpbmFuY2UsIENyeXB0bywgQ29pbmdlY2tvLCBPS1hcblxuQWRkIGNvaW5zIGJ5IHN5bWJvbHMsIGZvciBleGFtcGxlOlxuKiBCaW5hbmNlIHBhaXJzOiBcIkJUQy9VU0RUXCJcbiogT0tYIHBhaXJzOiBcIkxUQy9VU0RUXCJcbiogQ29pbmdlY2tvIHBhaXJzOiBcIkJUQy9VU0RcIlxuXG5Vc2luZyBhcGkuY29pbmdlY2tvLmNvbSwgb2t4LmNvbSwgYmluYW5jZS5jb20sIGNyeXB0by5jb21cbkNvbXBsZXRlIGxpc3Qgb2YgcGFpcnM6IGh0dHBzOi8vd3d3LmJpbmFuY2UuY29tL2luZGV4U3BhLmh0bWxcbkNvbXBsZXRlIGd1aWRlOiBodHRwczovL2dpdGh1Yi5jb20vYWxpcGlycGlyYW4vQ3J5cHRvLVByaWNlLVRyYWNrZXItZm9yLUdub21lLVNoZWxsI3JlYWRtZVxuXG4qKiBpZiBpdCBmYWNlZCBlcnJvciBhZnRlciB1cGRhdGU6XG4qKlJlc3RhcnQgR25vbWUtc2hlbGwuIChBTFQrRjIsIHIsIEVudGVyKSIsCiAgIm5hbWUiOiAiQ3J5cHRvIFByaWNlIFRyYWNrZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3J5cHRvLXRyYWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FsaXBpcnBpcmFuL0NyeXB0by1QcmljZS1UcmFja2VyLWZvci1Hbm9tZS1TaGVsbCIsCiAgInV1aWQiOiAiY3J5cHRvQGFsaXBpcnBpcmFuLmdpdGh1YiIsCiAgInZlcnNpb24iOiA0Ngp9"}
   }}
 , {"uuid": "ibus-tweaker@tuberry.github.com", "name": "IBus Tweaker", "pname": "ibus-tweaker", "description": "Tweaker of IBus for orientation, theme, font, input mode and clipboard history\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/2820/ibus-tweaker/", "shell_version_map": {
     "38": {"version": "28", "sha256": "1ahhcq8hpxkdvq1fp8gd8qp1cfsgqsm9swn4ph9kyrzr7j8jvc3k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrZXIgb2YgSUJ1cyBmb3Igb3JpZW50YXRpb24sIHRoZW1lLCBmb250LCBpbnB1dCBtb2RlIGFuZCBjbGlwYm9hcmQgaGlzdG9yeVxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJpYnVzLXR3ZWFrZXIiLAogICJuYW1lIjogIklCdXMgVHdlYWtlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5pYnVzLXR3ZWFrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2lidXMtdHdlYWtlciIsCiAgInV1aWQiOiAiaWJ1cy10d2Vha2VyQHR1YmVycnkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyOAp9"},
@@ -2146,7 +2165,7 @@
     "42": {"version": "38", "sha256": "0crdw1z2yan0mbc36v8vw0iinqbv4lyqzsvdyhz8zsi9q4asrlg6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrZXIgb2YgSUJ1cyBmb3Igb3JpZW50YXRpb24sIHRoZW1lLCBmb250LCBpbnB1dCBtb2RlIGFuZCBjbGlwYm9hcmQgaGlzdG9yeVxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24taWJ1cy10d2Vha2VyIiwKICAibmFtZSI6ICJJQnVzIFR3ZWFrZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaWJ1cy10d2Vha2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvaWJ1cy10d2Vha2VyIiwKICAidXVpZCI6ICJpYnVzLXR3ZWFrZXJAdHViZXJyeS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDM4Cn0="},
     "43": {"version": "40", "sha256": "0b807s4bfxmxf6131749gi3nil42dabmz2ndwwsblcpbj0cas7mv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrZXIgb2YgSUJ1cyBmb3Igb3JpZW50YXRpb24sIHRoZW1lLCBmb250LCBpbnB1dCBtb2RlIGFuZCBjbGlwYm9hcmQgaGlzdG9yeVxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24taWJ1cy10d2Vha2VyIiwKICAibmFtZSI6ICJJQnVzIFR3ZWFrZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaWJ1cy10d2Vha2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvaWJ1cy10d2Vha2VyIiwKICAidXVpZCI6ICJpYnVzLXR3ZWFrZXJAdHViZXJyeS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQwCn0="},
     "45": {"version": "44", "sha256": "1fk1mbsms1y4h08vrgaq4iqi995q849891n15j9a34xd31a3qcmk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrZXIgb2YgSUJ1cyBmb3Igb3JpZW50YXRpb24sIHRoZW1lLCBmb250LCBpbnB1dCBtb2RlIGFuZCBjbGlwYm9hcmQgaGlzdG9yeVxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24taWJ1cy10d2Vha2VyIiwKICAibmFtZSI6ICJJQnVzIFR3ZWFrZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaWJ1cy10d2Vha2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvaWJ1cy10d2Vha2VyIiwKICAidXVpZCI6ICJpYnVzLXR3ZWFrZXJAdHViZXJyeS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ0Cn0="},
-    "46": {"version": "45", "sha256": "1kjfn9ar07ir1nfqziwwkqid7fwrdhjrzbz282b09gq586s8bbhi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrZXIgb2YgSUJ1cyBmb3Igb3JpZW50YXRpb24sIHRoZW1lLCBmb250LCBpbnB1dCBtb2RlIGFuZCBjbGlwYm9hcmQgaGlzdG9yeVxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24taWJ1cy10d2Vha2VyIiwKICAibmFtZSI6ICJJQnVzIFR3ZWFrZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaWJ1cy10d2Vha2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvaWJ1cy10d2Vha2VyIiwKICAidXVpZCI6ICJpYnVzLXR3ZWFrZXJAdHViZXJyeS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ1Cn0="}
+    "46": {"version": "46", "sha256": "1dgswxn9p66svnw1l6c6p0zv9dbgirx03hjxjhn8w1dbb54sryy3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrZXIgb2YgSUJ1cyBmb3Igb3JpZW50YXRpb24sIHRoZW1lLCBmb250LCBpbnB1dCBtb2RlIGFuZCBjbGlwYm9hcmQgaGlzdG9yeVxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24taWJ1cy10d2Vha2VyIiwKICAibmFtZSI6ICJJQnVzIFR3ZWFrZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaWJ1cy10d2Vha2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvaWJ1cy10d2Vha2VyIiwKICAidXVpZCI6ICJpYnVzLXR3ZWFrZXJAdHViZXJyeS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ2Cn0="}
   }}
 , {"uuid": "generic-monitor@gnome-shell-extensions", "name": "Generic Monitor", "pname": "generic-monitor", "description": "Display text & icon on systray using DBUS", "link": "https://extensions.gnome.org/extension/2826/generic-monitor/", "shell_version_map": {
     "38": {"version": "10", "sha256": "0kvniacvxv57f6jfcrlrd7ggwj4h0bfs60r59p150m6nldm9zf23", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGV4dCAmIGljb24gb24gc3lzdHJheSB1c2luZyBEQlVTIiwKICAibmFtZSI6ICJHZW5lcmljIE1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHA6Ly9pbmRlZmVyby5zb3V0YWRlLmZyL3AvZ2VuZXJpY21vbml0b3IiLAogICJ1dWlkIjogImdlbmVyaWMtbW9uaXRvckBnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidmVyc2lvbiI6IDEwCn0="},
@@ -2212,8 +2231,8 @@
     "42": {"version": "27", "sha256": "1bssg2w71qinr2hhsyv0rpps7876y91azpqcl3dhdgipki4n7yvq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibWVzc2FnaW5nbWVudSIsCiAgIm5hbWUiOiAiTWVzc2FnaW5nIE1lbnUiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic2luaXN0ZXJzdHVmIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1lc3NhZ2luZ21lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9tZXNzYWdpbmdtZW51IiwKICAidXVpZCI6ICJtZXNzYWdpbmdtZW51QGxhdWluZ2VyLWNsYW4uZGUiLAogICJ2ZXJzaW9uIjogMjcKfQ=="},
     "43": {"version": "27", "sha256": "1bssg2w71qinr2hhsyv0rpps7876y91azpqcl3dhdgipki4n7yvq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibWVzc2FnaW5nbWVudSIsCiAgIm5hbWUiOiAiTWVzc2FnaW5nIE1lbnUiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic2luaXN0ZXJzdHVmIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1lc3NhZ2luZ21lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9tZXNzYWdpbmdtZW51IiwKICAidXVpZCI6ICJtZXNzYWdpbmdtZW51QGxhdWluZ2VyLWNsYW4uZGUiLAogICJ2ZXJzaW9uIjogMjcKfQ=="},
     "44": {"version": "27", "sha256": "1bssg2w71qinr2hhsyv0rpps7876y91azpqcl3dhdgipki4n7yvq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibWVzc2FnaW5nbWVudSIsCiAgIm5hbWUiOiAiTWVzc2FnaW5nIE1lbnUiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic2luaXN0ZXJzdHVmIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1lc3NhZ2luZ21lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9tZXNzYWdpbmdtZW51IiwKICAidXVpZCI6ICJtZXNzYWdpbmdtZW51QGxhdWluZ2VyLWNsYW4uZGUiLAogICJ2ZXJzaW9uIjogMjcKfQ=="},
-    "45": {"version": "33", "sha256": "05dx5x60cryyfffmpc1s4gcf5nqjf8r9sx9qrjlvsmr8gp878aa6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJDaHJpc0xhdWluZ2VyNzciLAogICAgInBheXBhbCI6ICJDaHJpc0xhdWluZ2VyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIm1lc3NhZ2luZ21lbnUiLAogICJuYW1lIjogIk1lc3NhZ2luZyBNZW51IiwKICAib3JpZ2luYWwtYXV0aG9yIjogInNpbmlzdGVyc3R1ZiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tZXNzYWdpbmdtZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9DaHJpc0xhdWluZ2VyNzcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW1lc3NhZ2luZ21lbnUiLAogICJ1dWlkIjogIm1lc3NhZ2luZ21lbnVAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiAzMywKICAidmVyc2lvbi1uYW1lIjogIjQ2LjEiCn0="},
-    "46": {"version": "33", "sha256": "05dx5x60cryyfffmpc1s4gcf5nqjf8r9sx9qrjlvsmr8gp878aa6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJDaHJpc0xhdWluZ2VyNzciLAogICAgInBheXBhbCI6ICJDaHJpc0xhdWluZ2VyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIm1lc3NhZ2luZ21lbnUiLAogICJuYW1lIjogIk1lc3NhZ2luZyBNZW51IiwKICAib3JpZ2luYWwtYXV0aG9yIjogInNpbmlzdGVyc3R1ZiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tZXNzYWdpbmdtZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9DaHJpc0xhdWluZ2VyNzcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW1lc3NhZ2luZ21lbnUiLAogICJ1dWlkIjogIm1lc3NhZ2luZ21lbnVAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiAzMywKICAidmVyc2lvbi1uYW1lIjogIjQ2LjEiCn0="}
+    "45": {"version": "34", "sha256": "1lj314mf4zvp36sfzxm7jqwk17qvbd73jrbji8jd52b3l3svigjl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJDaHJpc0xhdWluZ2VyNzciLAogICAgInBheXBhbCI6ICJDaHJpc0xhdWluZ2VyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIm1lc3NhZ2luZ21lbnUiLAogICJuYW1lIjogIk1lc3NhZ2luZyBNZW51IiwKICAib3JpZ2luYWwtYXV0aG9yIjogInNpbmlzdGVyc3R1ZiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tZXNzYWdpbmdtZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9DaHJpc0xhdWluZ2VyNzcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW1lc3NhZ2luZ21lbnUiLAogICJ1dWlkIjogIm1lc3NhZ2luZ21lbnVAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiAzNCwKICAidmVyc2lvbi1uYW1lIjogIjQ2LjIiCn0="},
+    "46": {"version": "34", "sha256": "1lj314mf4zvp36sfzxm7jqwk17qvbd73jrbji8jd52b3l3svigjl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJDaHJpc0xhdWluZ2VyNzciLAogICAgInBheXBhbCI6ICJDaHJpc0xhdWluZ2VyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIm1lc3NhZ2luZ21lbnUiLAogICJuYW1lIjogIk1lc3NhZ2luZyBNZW51IiwKICAib3JpZ2luYWwtYXV0aG9yIjogInNpbmlzdGVyc3R1ZiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tZXNzYWdpbmdtZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9DaHJpc0xhdWluZ2VyNzcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW1lc3NhZ2luZ21lbnUiLAogICJ1dWlkIjogIm1lc3NhZ2luZ21lbnVAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiAzNCwKICAidmVyc2lvbi1uYW1lIjogIjQ2LjIiCn0="}
   }}
 , {"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 quicksettings. Originally created by XES.\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", "link": "https://extensions.gnome.org/extension/2899/settingscenter/", "shell_version_map": {
     "38": {"version": "2", "sha256": "0sywdlmfgy4k5bkxmawcb7b8100g8wnpndmwvdzjq51xv5605gcs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHRpbmdzIENlbnRlciBpcyBhIGN1c3RvbWl6YWJsZSBkcm9wLWRvd24gbWVudSBmb3IgcXVpY2tseSBsYXVuY2hpbmcgZnJlcXVlbnRseSB1c2VkIGFwcHMgaW4gR25vbWU6U2hlbGwgdmlhIHRoZSBxdWlja3NldHRpbmdzLiBPcmlnaW5hbGx5IGNyZWF0ZWQgYnkgWEVTLlxuXG5TZXR0aW5ncyBzaG9ydGN1dHMgOiBnbm9tZS10d2Vhay10b29sLCBkY29uZi1lZGl0b3IsIGdjb25mLWVkaXRvciwgZ25vbWUtc2Vzc2lvbi1wcm9wZXJ0aWVzLCBnbm9tZS1zaGVsbC1leHRlbnNpb24tcHJlZnMsIHNlYWhvcnNlIGFuZCBudmlkaWEtc2V0dGluZ3MuIFlvdSBjYW4gYWRkIHlvdXIgb3duXG5cbk9yaWdpbmFsIHNvdXJjZSA6IGh0dHA6Ly9zdm4ueGVzbmV0LmZyL2dub21lZXh0ZW5zaW9ucyIsCiAgImxvY2FsZSI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2V0dGluZ3NDZW50ZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiWGVzLCBsMzAwbHZsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjQiLAogICAgIjMuNiIsCiAgICAiMy41LjQiLAogICAgIjMuOCIsCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9YRVMtU2V0dGluZ3MtQ2VudGVyLUV4dGVuc2lvbiIsCiAgInV1aWQiOiAiU2V0dGluZ3NDZW50ZXJAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiAyCn0="},
@@ -2277,7 +2296,7 @@
     "42": {"version": "67", "sha256": "0405yz8w5a1h56csh2xl9kn7bbxr7r8vmsslh9y4l16gxs2nmkrh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IGV4dGVuc2lvbiBmb3Igb24tdGhlLWZseSBtYW5pcHVsYXRpb24gdG8gcHJpbWFyeSBzZWxlY3Rpb25zLCBlc3BlY2lhbGx5IG9wdGltaXplZCBmb3IgRGljdGlvbmFyeSBsb29rdXBzIG9yIHRyYW5zbGF0aW9uc1xuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tbGlnaHQtZGljdCIsCiAgIm5hbWUiOiAiTGlnaHQgRGljdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5saWdodC1kaWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvbGlnaHQtZGljdCIsCiAgInV1aWQiOiAibGlnaHQtZGljdEB0dWJlcnJ5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA2Nwp9"},
     "43": {"version": "71", "sha256": "01hmh278h8kjym6zvvqglfdg8qkfrz364p3srci137vwkc2rpd9x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IGV4dGVuc2lvbiBmb3Igb24tdGhlLWZseSBtYW5pcHVsYXRpb24gdG8gcHJpbWFyeSBzZWxlY3Rpb25zLCBlc3BlY2lhbGx5IG9wdGltaXplZCBmb3IgRGljdGlvbmFyeSBsb29rdXBzIG9yIHRyYW5zbGF0aW9uc1xuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tbGlnaHQtZGljdCIsCiAgIm5hbWUiOiAiTGlnaHQgRGljdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5saWdodC1kaWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvbGlnaHQtZGljdCIsCiAgInV1aWQiOiAibGlnaHQtZGljdEB0dWJlcnJ5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA3MQp9"},
     "45": {"version": "76", "sha256": "1m4k6gkda7axddm6y16z6d10sv0awxp6vsa23sw10djzk211bgf0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IGV4dGVuc2lvbiBmb3Igb24tdGhlLWZseSBtYW5pcHVsYXRpb24gdG8gcHJpbWFyeSBzZWxlY3Rpb25zLCBlc3BlY2lhbGx5IG9wdGltaXplZCBmb3IgRGljdGlvbmFyeSBsb29rdXBzXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1saWdodC1kaWN0IiwKICAibmFtZSI6ICJMaWdodCBEaWN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmxpZ2h0LWRpY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9saWdodC1kaWN0IiwKICAidXVpZCI6ICJsaWdodC1kaWN0QHR1YmVycnkuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDc2Cn0="},
-    "46": {"version": "78", "sha256": "1nwra9gakrr5h77z62kfn917186z5f01066rzi97c5lzqxza70zy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IGV4dGVuc2lvbiBmb3Igb24tdGhlLWZseSBtYW5pcHVsYXRpb24gdG8gcHJpbWFyeSBzZWxlY3Rpb25zLCBlc3BlY2lhbGx5IG9wdGltaXplZCBmb3IgRGljdGlvbmFyeSBsb29rdXBzXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1saWdodC1kaWN0IiwKICAibmFtZSI6ICJMaWdodCBEaWN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmxpZ2h0LWRpY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9saWdodC1kaWN0IiwKICAidXVpZCI6ICJsaWdodC1kaWN0QHR1YmVycnkuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDc4Cn0="}
+    "46": {"version": "80", "sha256": "016x7ihcahs19gbihdrlhrgrpmw04cnjcmhgkv5q1hvkzgq12wza", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IGV4dGVuc2lvbiBmb3Igb24tdGhlLWZseSBtYW5pcHVsYXRpb24gdG8gcHJpbWFyeSBzZWxlY3Rpb25zLCBlc3BlY2lhbGx5IG9wdGltaXplZCBmb3IgRGljdGlvbmFyeSBsb29rdXBzXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1saWdodC1kaWN0IiwKICAibmFtZSI6ICJMaWdodCBEaWN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmxpZ2h0LWRpY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9saWdodC1kaWN0IiwKICAidXVpZCI6ICJsaWdodC1kaWN0QHR1YmVycnkuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDgwCn0="}
   }}
 , {"uuid": "InternetSpeedMeter@alshakib.dev", "name": "Internet Speed Meter", "pname": "internet-speed-meter", "description": "Simple and minimal internet speed meter extension for the Gnome Shell", "link": "https://extensions.gnome.org/extension/2980/internet-speed-meter/", "shell_version_map": {
     "38": {"version": "11", "sha256": "1y33l24q441nc147njjp4ylygmfr73br8adc8yfbp9p8dzh084f0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBhbmQgbWluaW1hbCBpbnRlcm5ldCBzcGVlZCBtZXRlciBleHRlbnNpb24gZm9yIHRoZSBHbm9tZSBTaGVsbCIsCiAgIm5hbWUiOiAiSW50ZXJuZXQgU3BlZWQgTWV0ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWxTaGFraWIvSW50ZXJuZXRTcGVlZE1ldGVyIiwKICAidXVpZCI6ICJJbnRlcm5ldFNwZWVkTWV0ZXJAYWxzaGFraWIuZGV2IiwKICAidmVyc2lvbiI6IDExCn0="},
@@ -2286,7 +2305,8 @@
     "42": {"version": "16", "sha256": "0zjrnixd5cld46vj1ibl70gn5223rp9kllsq6wy53cqhxmrizskg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBhbmQgbWluaW1hbCBpbnRlcm5ldCBzcGVlZCBtZXRlciBleHRlbnNpb24gZm9yIHRoZSBHbm9tZSBTaGVsbCIsCiAgIm5hbWUiOiAiSW50ZXJuZXQgU3BlZWQgTWV0ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FsU2hha2liL0ludGVybmV0U3BlZWRNZXRlciIsCiAgInV1aWQiOiAiSW50ZXJuZXRTcGVlZE1ldGVyQGFsc2hha2liLmRldiIsCiAgInZlcnNpb24iOiAxNgp9"},
     "43": {"version": "16", "sha256": "0zjrnixd5cld46vj1ibl70gn5223rp9kllsq6wy53cqhxmrizskg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBhbmQgbWluaW1hbCBpbnRlcm5ldCBzcGVlZCBtZXRlciBleHRlbnNpb24gZm9yIHRoZSBHbm9tZSBTaGVsbCIsCiAgIm5hbWUiOiAiSW50ZXJuZXQgU3BlZWQgTWV0ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FsU2hha2liL0ludGVybmV0U3BlZWRNZXRlciIsCiAgInV1aWQiOiAiSW50ZXJuZXRTcGVlZE1ldGVyQGFsc2hha2liLmRldiIsCiAgInZlcnNpb24iOiAxNgp9"},
     "44": {"version": "16", "sha256": "0zjrnixd5cld46vj1ibl70gn5223rp9kllsq6wy53cqhxmrizskg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBhbmQgbWluaW1hbCBpbnRlcm5ldCBzcGVlZCBtZXRlciBleHRlbnNpb24gZm9yIHRoZSBHbm9tZSBTaGVsbCIsCiAgIm5hbWUiOiAiSW50ZXJuZXQgU3BlZWQgTWV0ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FsU2hha2liL0ludGVybmV0U3BlZWRNZXRlciIsCiAgInV1aWQiOiAiSW50ZXJuZXRTcGVlZE1ldGVyQGFsc2hha2liLmRldiIsCiAgInZlcnNpb24iOiAxNgp9"},
-    "45": {"version": "17", "sha256": "1mvxlnfi4zj18zf742naxnnswpcvz11dn99nfr7a3h3dpclqgcd8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBhbmQgbWluaW1hbCBpbnRlcm5ldCBzcGVlZCBtZXRlciBleHRlbnNpb24gZm9yIHRoZSBHbm9tZSBTaGVsbCIsCiAgIm5hbWUiOiAiSW50ZXJuZXQgU3BlZWQgTWV0ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWxTaGFraWIvSW50ZXJuZXRTcGVlZE1ldGVyIiwKICAidXVpZCI6ICJJbnRlcm5ldFNwZWVkTWV0ZXJAYWxzaGFraWIuZGV2IiwKICAidmVyc2lvbiI6IDE3Cn0="}
+    "45": {"version": "18", "sha256": "165410zy48ar7fhwfqzi07i585krpcs05819k1x5kqclngvy0g9q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBhbmQgbWluaW1hbCBpbnRlcm5ldCBzcGVlZCBtZXRlciBleHRlbnNpb24gZm9yIHRoZSBHbm9tZSBTaGVsbCIsCiAgIm5hbWUiOiAiSW50ZXJuZXQgU3BlZWQgTWV0ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FsU2hha2liL0ludGVybmV0U3BlZWRNZXRlciIsCiAgInV1aWQiOiAiSW50ZXJuZXRTcGVlZE1ldGVyQGFsc2hha2liLmRldiIsCiAgInZlcnNpb24iOiAxOAp9"},
+    "46": {"version": "18", "sha256": "165410zy48ar7fhwfqzi07i585krpcs05819k1x5kqclngvy0g9q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBhbmQgbWluaW1hbCBpbnRlcm5ldCBzcGVlZCBtZXRlciBleHRlbnNpb24gZm9yIHRoZSBHbm9tZSBTaGVsbCIsCiAgIm5hbWUiOiAiSW50ZXJuZXQgU3BlZWQgTWV0ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FsU2hha2liL0ludGVybmV0U3BlZWRNZXRlciIsCiAgInV1aWQiOiAiSW50ZXJuZXRTcGVlZE1ldGVyQGFsc2hha2liLmRldiIsCiAgInZlcnNpb24iOiAxOAp9"}
   }}
 , {"uuid": "IP-Finder@linxgem33.com", "name": "IP Finder", "pname": "ip-finder", "description": "Displays useful information about your public IP Address and VPN status.\n\nIP Finder displays information about your public IP address, hostname, country, AS Block, as well as  a map tile of your Geolocation and country flag,  this extension is Also Useful for informational purposes to monitor VPN changes and public network IP Addresses.\n\nIP Finder can monitor in real time\n\n*Wireguard connections\n*OpenVPN connections\n*IPV4/6 connections\n*Proxy connections\n*VPN vendor applications\n*Manual static IP changes\n*Manually added connections", "link": "https://extensions.gnome.org/extension/2983/ip-finder/", "shell_version_map": {
     "38": {"version": "7", "sha256": "1g6xady411kx81crwnbgqh1afxlfjakgwdhbwznqvrjnbb98dh1r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIHVzZWZ1bCBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIHB1YmxpYyBJUCBBZGRyZXNzIGFuZCBWUE4gc3RhdHVzLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJpcC1maW5kZXIiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJpcC1maW5kZXIiLAogICJuYW1lIjogIklQIEZpbmRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wdWJsaWMtaXAtYWRkcmVzcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL0xpbnhHZW0zMy9JUC1GaW5kZXIiLAogICJ1dWlkIjogIklQLUZpbmRlckBsaW54Z2VtMzMuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="},
@@ -2331,8 +2351,8 @@
     "42": {"version": "55", "sha256": "0fwxj41ka95mxrjy3xbywqxm0fp00irypkwcg316pyy9cva4rk01", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3lzdGVtIGluZm9ybWF0aW9uIGluIEdOT01FIFNoZWxsIHN0YXR1cyBiYXIsIHN1Y2ggYXMgbWVtb3J5LCBDUFUsIGRpc2sgYW5kIGJhdHRlcnkgdXNhZ2VzLCBuZXR3b3JrIHJhdGVzXHUyMDI2XG5cblRoaXMgZm9yayBvZiBwYXJhZG94eHh6ZXJvL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCBpcyBmb3IgcGFja2FnaW5nIHB1cnBvc2VzIG9ubHkuIFRoaXMgZXh0ZW5zaW9uIGlzIGJ1aWx0IGFuZCB1cGRhdGVkIGNvbnRpbnVvdXNseSB3aXRoIHRoZSB1cHN0cmVhbSBtYXN0ZXIgYnJhbmNoLCBvY2Nhc2lvbmFsbHkgaW5jbHVkaW5nIHBhdGNoZXMgdGhhdCBoYXZlbid0IHlldCBtZXJnZWQgdXBzdHJlYW0uXG5cblRoaXMgaXMgcHJlZmVyYWJsZSBmb3IgdXNlcnMgb24gYmxlZWRpbmcgZWRnZSBkaXN0cmlidXRpb25zIHRoYXQgcHJlZmVyIG5vdCB0byB3YWl0IGZvciBhIHN0YWJsZSByZWxlYXNlIGZyb20gdGhlIG1haW4gcmVwby4gT2YgY291cnNlLCBzaW5jZSB3ZSdyZSByZWxlYXNpbmcgZGlyZWN0bHkgZnJvbSBtYXN0ZXIgc29tZSBpbnN0YWJpbGl0eSBpcyBpbmV2aXRhYmxlLlxuXG5JZiB5b3UgZ2V0IGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCB0cnkgcmVzdGFydGluZyBHbm9tZSBTaGVsbCB3aXRoIEFsdC1GMiB0aGVuICdyJy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzeXN0ZW0tbW9uaXRvciIsCiAgIm5hbWUiOiAic3lzdGVtLW1vbml0b3ItbmV4dCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWdhbGdzL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCIsCiAgInV1aWQiOiAic3lzdGVtLW1vbml0b3ItbmV4dEBwYXJhZG94eHguemVyby5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNTUKfQ=="},
     "43": {"version": "55", "sha256": "0fwxj41ka95mxrjy3xbywqxm0fp00irypkwcg316pyy9cva4rk01", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3lzdGVtIGluZm9ybWF0aW9uIGluIEdOT01FIFNoZWxsIHN0YXR1cyBiYXIsIHN1Y2ggYXMgbWVtb3J5LCBDUFUsIGRpc2sgYW5kIGJhdHRlcnkgdXNhZ2VzLCBuZXR3b3JrIHJhdGVzXHUyMDI2XG5cblRoaXMgZm9yayBvZiBwYXJhZG94eHh6ZXJvL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCBpcyBmb3IgcGFja2FnaW5nIHB1cnBvc2VzIG9ubHkuIFRoaXMgZXh0ZW5zaW9uIGlzIGJ1aWx0IGFuZCB1cGRhdGVkIGNvbnRpbnVvdXNseSB3aXRoIHRoZSB1cHN0cmVhbSBtYXN0ZXIgYnJhbmNoLCBvY2Nhc2lvbmFsbHkgaW5jbHVkaW5nIHBhdGNoZXMgdGhhdCBoYXZlbid0IHlldCBtZXJnZWQgdXBzdHJlYW0uXG5cblRoaXMgaXMgcHJlZmVyYWJsZSBmb3IgdXNlcnMgb24gYmxlZWRpbmcgZWRnZSBkaXN0cmlidXRpb25zIHRoYXQgcHJlZmVyIG5vdCB0byB3YWl0IGZvciBhIHN0YWJsZSByZWxlYXNlIGZyb20gdGhlIG1haW4gcmVwby4gT2YgY291cnNlLCBzaW5jZSB3ZSdyZSByZWxlYXNpbmcgZGlyZWN0bHkgZnJvbSBtYXN0ZXIgc29tZSBpbnN0YWJpbGl0eSBpcyBpbmV2aXRhYmxlLlxuXG5JZiB5b3UgZ2V0IGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCB0cnkgcmVzdGFydGluZyBHbm9tZSBTaGVsbCB3aXRoIEFsdC1GMiB0aGVuICdyJy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzeXN0ZW0tbW9uaXRvciIsCiAgIm5hbWUiOiAic3lzdGVtLW1vbml0b3ItbmV4dCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWdhbGdzL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCIsCiAgInV1aWQiOiAic3lzdGVtLW1vbml0b3ItbmV4dEBwYXJhZG94eHguemVyby5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNTUKfQ=="},
     "44": {"version": "55", "sha256": "0fwxj41ka95mxrjy3xbywqxm0fp00irypkwcg316pyy9cva4rk01", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3lzdGVtIGluZm9ybWF0aW9uIGluIEdOT01FIFNoZWxsIHN0YXR1cyBiYXIsIHN1Y2ggYXMgbWVtb3J5LCBDUFUsIGRpc2sgYW5kIGJhdHRlcnkgdXNhZ2VzLCBuZXR3b3JrIHJhdGVzXHUyMDI2XG5cblRoaXMgZm9yayBvZiBwYXJhZG94eHh6ZXJvL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCBpcyBmb3IgcGFja2FnaW5nIHB1cnBvc2VzIG9ubHkuIFRoaXMgZXh0ZW5zaW9uIGlzIGJ1aWx0IGFuZCB1cGRhdGVkIGNvbnRpbnVvdXNseSB3aXRoIHRoZSB1cHN0cmVhbSBtYXN0ZXIgYnJhbmNoLCBvY2Nhc2lvbmFsbHkgaW5jbHVkaW5nIHBhdGNoZXMgdGhhdCBoYXZlbid0IHlldCBtZXJnZWQgdXBzdHJlYW0uXG5cblRoaXMgaXMgcHJlZmVyYWJsZSBmb3IgdXNlcnMgb24gYmxlZWRpbmcgZWRnZSBkaXN0cmlidXRpb25zIHRoYXQgcHJlZmVyIG5vdCB0byB3YWl0IGZvciBhIHN0YWJsZSByZWxlYXNlIGZyb20gdGhlIG1haW4gcmVwby4gT2YgY291cnNlLCBzaW5jZSB3ZSdyZSByZWxlYXNpbmcgZGlyZWN0bHkgZnJvbSBtYXN0ZXIgc29tZSBpbnN0YWJpbGl0eSBpcyBpbmV2aXRhYmxlLlxuXG5JZiB5b3UgZ2V0IGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCB0cnkgcmVzdGFydGluZyBHbm9tZSBTaGVsbCB3aXRoIEFsdC1GMiB0aGVuICdyJy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzeXN0ZW0tbW9uaXRvciIsCiAgIm5hbWUiOiAic3lzdGVtLW1vbml0b3ItbmV4dCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWdhbGdzL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCIsCiAgInV1aWQiOiAic3lzdGVtLW1vbml0b3ItbmV4dEBwYXJhZG94eHguemVyby5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNTUKfQ=="},
-    "45": {"version": "66", "sha256": "0b7pyj9hqilpvdcnkx6d05836322gnw1r4rkaggngbbhmgvazffx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3lzdGVtIGluZm9ybWF0aW9uIGluIEdOT01FIFNoZWxsIHN0YXR1cyBiYXIsIHN1Y2ggYXMgbWVtb3J5LCBDUFUsIGRpc2sgYW5kIGJhdHRlcnkgdXNhZ2VzLCBuZXR3b3JrIHJhdGVzXHUyMDI2XG5cblRoaXMgaXMgYSBmb3JrIG9mIHRoZSBzZWVtaW5nbHkgYWJhbmRvbmVkIHBhcmFkb3h4eHplcm8vZ25vbWUtc2hlbGwtc3lzdGVtLW1vbml0b3ItYXBwbGV0LlxuXG5JZiB5b3UgZ2V0IGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCB0cnkgbG9nZ2luZyBvdXQgYW5kIGxvZ2dpbmcgYmFjayBpbiAodGhpcyBpcyBhIGtub3duIGlzc3VlIHRoYXQgaXMgYmVpbmcgd29ya2VkIG9uKS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzeXN0ZW0tbW9uaXRvciIsCiAgIm5hbWUiOiAic3lzdGVtLW1vbml0b3ItbmV4dCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWdhbGdzL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCIsCiAgInV1aWQiOiAic3lzdGVtLW1vbml0b3ItbmV4dEBwYXJhZG94eHguemVyby5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNjYKfQ=="},
-    "46": {"version": "66", "sha256": "0b7pyj9hqilpvdcnkx6d05836322gnw1r4rkaggngbbhmgvazffx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3lzdGVtIGluZm9ybWF0aW9uIGluIEdOT01FIFNoZWxsIHN0YXR1cyBiYXIsIHN1Y2ggYXMgbWVtb3J5LCBDUFUsIGRpc2sgYW5kIGJhdHRlcnkgdXNhZ2VzLCBuZXR3b3JrIHJhdGVzXHUyMDI2XG5cblRoaXMgaXMgYSBmb3JrIG9mIHRoZSBzZWVtaW5nbHkgYWJhbmRvbmVkIHBhcmFkb3h4eHplcm8vZ25vbWUtc2hlbGwtc3lzdGVtLW1vbml0b3ItYXBwbGV0LlxuXG5JZiB5b3UgZ2V0IGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCB0cnkgbG9nZ2luZyBvdXQgYW5kIGxvZ2dpbmcgYmFjayBpbiAodGhpcyBpcyBhIGtub3duIGlzc3VlIHRoYXQgaXMgYmVpbmcgd29ya2VkIG9uKS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzeXN0ZW0tbW9uaXRvciIsCiAgIm5hbWUiOiAic3lzdGVtLW1vbml0b3ItbmV4dCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWdhbGdzL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCIsCiAgInV1aWQiOiAic3lzdGVtLW1vbml0b3ItbmV4dEBwYXJhZG94eHguemVyby5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNjYKfQ=="}
+    "45": {"version": "69", "sha256": "098bhziypfd6vmn61lxp25wwb0n3mv9shan0idkpl8q330ripawv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3lzdGVtIGluZm9ybWF0aW9uIGluIEdOT01FIFNoZWxsIHN0YXR1cyBiYXIsIHN1Y2ggYXMgbWVtb3J5LCBDUFUsIGRpc2sgYW5kIGJhdHRlcnkgdXNhZ2VzLCBuZXR3b3JrIHJhdGVzXHUyMDI2XG5cblRoaXMgaXMgYSBmb3JrIG9mIHRoZSBzZWVtaW5nbHkgYWJhbmRvbmVkIHBhcmFkb3h4eHplcm8vZ25vbWUtc2hlbGwtc3lzdGVtLW1vbml0b3ItYXBwbGV0LlxuXG5JZiB5b3UgZ2V0IGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCB0cnkgbG9nZ2luZyBvdXQgYW5kIGxvZ2dpbmcgYmFjayBpbiAodGhpcyBpcyBhIGtub3duIGlzc3VlIHRoYXQgaXMgYmVpbmcgd29ya2VkIG9uKS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzeXN0ZW0tbW9uaXRvciIsCiAgIm5hbWUiOiAic3lzdGVtLW1vbml0b3ItbmV4dCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWdhbGdzL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCIsCiAgInV1aWQiOiAic3lzdGVtLW1vbml0b3ItbmV4dEBwYXJhZG94eHguemVyby5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNjkKfQ=="},
+    "46": {"version": "69", "sha256": "098bhziypfd6vmn61lxp25wwb0n3mv9shan0idkpl8q330ripawv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3lzdGVtIGluZm9ybWF0aW9uIGluIEdOT01FIFNoZWxsIHN0YXR1cyBiYXIsIHN1Y2ggYXMgbWVtb3J5LCBDUFUsIGRpc2sgYW5kIGJhdHRlcnkgdXNhZ2VzLCBuZXR3b3JrIHJhdGVzXHUyMDI2XG5cblRoaXMgaXMgYSBmb3JrIG9mIHRoZSBzZWVtaW5nbHkgYWJhbmRvbmVkIHBhcmFkb3h4eHplcm8vZ25vbWUtc2hlbGwtc3lzdGVtLW1vbml0b3ItYXBwbGV0LlxuXG5JZiB5b3UgZ2V0IGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCB0cnkgbG9nZ2luZyBvdXQgYW5kIGxvZ2dpbmcgYmFjayBpbiAodGhpcyBpcyBhIGtub3duIGlzc3VlIHRoYXQgaXMgYmVpbmcgd29ya2VkIG9uKS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzeXN0ZW0tbW9uaXRvciIsCiAgIm5hbWUiOiAic3lzdGVtLW1vbml0b3ItbmV4dCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWdhbGdzL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCIsCiAgInV1aWQiOiAic3lzdGVtLW1vbml0b3ItbmV4dEBwYXJhZG94eHguemVyby5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNjkKfQ=="}
   }}
 , {"uuid": "user-theme-x@tuberry.github.io", "name": "User Theme X", "pname": "user-themes-x", "description": "Customizable user-theme with user stylesheet and dark theme auto-switch based on the Night Light\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/3019/user-themes-x/", "shell_version_map": {
     "38": {"version": "21", "sha256": "0qiahmg2nmrnlyablyava1488rvy0r2rq8pyv932lsx6vrn9gh6m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6YWJsZSB1c2VyLXRoZW1lIHdpdGggdXNlciBzdHlsZXNoZWV0IGFuZCBkYXJrIHRoZW1lIGF1dG8tc3dpdGNoIGJhc2VkIG9uIHRoZSBOaWdodCBMaWdodFxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJleHRlbnNpb24taWQiOiAidXNlci10aGVtZS14IiwKICAiZ2V0dGV4dC1kb21haW4iOiAidXNlci10aGVtZS14IiwKICAibmFtZSI6ICJVc2VyIFRoZW1lIFgiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImpvaG4uc3Rvd2Vyc0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnVzZXItdGhlbWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L3VzZXItdGhlbWUteCIsCiAgInV1aWQiOiAidXNlci10aGVtZS14QHR1YmVycnkuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDIxCn0="},
@@ -2342,7 +2362,7 @@
     "43": {"version": "31", "sha256": "1aqni9lybrws04mz4k9ygpv2yqg0vs6867ga7k3ah6f92j8bin74", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6YWJsZSB1c2VyLXRoZW1lIHdpdGggdXNlciBzdHlsZXNoZWV0IGFuZCBkYXJrIHRoZW1lIGF1dG8tc3dpdGNoIGJhc2VkIG9uIHRoZSBOaWdodCBMaWdodFxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJleHRlbnNpb24taWQiOiAidXNlci10aGVtZS14IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXVzZXItdGhlbWUteCIsCiAgIm5hbWUiOiAiVXNlciBUaGVtZSBYIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJqb2huLnN0b3dlcnNAZ21haWwuY29tIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy51c2VyLXRoZW1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvdXNlci10aGVtZS14IiwKICAidXVpZCI6ICJ1c2VyLXRoZW1lLXhAdHViZXJyeS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMzEKfQ=="},
     "44": {"version": "32", "sha256": "1i36lgx76p2fxa7kn0zaisc5jz6a2ky3dckxx2x3j3s91q5pn5ch", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6YWJsZSB1c2VyLXRoZW1lIHdpdGggdXNlciBzdHlsZXNoZWV0IGFuZCBkYXJrIHRoZW1lIGF1dG8tc3dpdGNoIGJhc2VkIG9uIHRoZSBOaWdodCBMaWdodFxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tdXNlci10aGVtZS14IiwKICAibmFtZSI6ICJVc2VyIFRoZW1lIFgiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudXNlci10aGVtZS14IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvdXNlci10aGVtZS14IiwKICAidXVpZCI6ICJ1c2VyLXRoZW1lLXhAdHViZXJyeS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMzIKfQ=="},
     "45": {"version": "34", "sha256": "1hs8jdzal7jpw03fl3qppcvrdalhsy32hl2vchd5x92rfwamrm3q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6YWJsZSB1c2VyLXRoZW1lIHdpdGggdXNlciBzdHlsZXNoZWV0IGFuZCBkYXJrIHRoZW1lIGF1dG8tc3dpdGNoIGJhc2VkIG9uIHRoZSBOaWdodCBMaWdodFxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tdXNlci10aGVtZS14IiwKICAibmFtZSI6ICJVc2VyIFRoZW1lIFgiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudXNlci10aGVtZS14IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvdXNlci10aGVtZS14IiwKICAidXVpZCI6ICJ1c2VyLXRoZW1lLXhAdHViZXJyeS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMzQKfQ=="},
-    "46": {"version": "35", "sha256": "1fr7fzi57clvdm6cdb6wa9pdn8g88v979v3hmki8nvspwbqawyh1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6YWJsZSB1c2VyLXRoZW1lIHdpdGggdXNlciBzdHlsZXNoZWV0IGFuZCBkYXJrIHRoZW1lIGF1dG8tc3dpdGNoIGJhc2VkIG9uIHRoZSBOaWdodCBMaWdodFxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tdXNlci10aGVtZS14IiwKICAibmFtZSI6ICJVc2VyIFRoZW1lIFgiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudXNlci10aGVtZS14IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvdXNlci10aGVtZS14IiwKICAidXVpZCI6ICJ1c2VyLXRoZW1lLXhAdHViZXJyeS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMzUKfQ=="}
+    "46": {"version": "39", "sha256": "026qwm4rk75540jg5a1iz4yjfpafg9bjidfmnsg68zqwqa9bmgm4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6YWJsZSB1c2VyLXRoZW1lIHdpdGggdXNlciBzdHlsZXNoZWV0IGFuZCBkYXJrIHRoZW1lIGF1dG8tc3dpdGNoIGJhc2VkIG9uIHRoZSBOaWdodCBMaWdodFxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tdXNlci10aGVtZS14IiwKICAibmFtZSI6ICJVc2VyIFRoZW1lIFgiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudXNlci10aGVtZS14IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvdXNlci10aGVtZS14IiwKICAidXVpZCI6ICJ1c2VyLXRoZW1lLXhAdHViZXJyeS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMzkKfQ=="}
   }}
 , {"uuid": "app_view_text@fawtytoo", "name": "Application View Text", "pname": "application-view-text", "description": "The text in the Application view can be hard to read on a light coloured background. This extension makes the text bolder with a drop shadow.\nAlso improves the visibility of the app running dot.", "link": "https://extensions.gnome.org/extension/3028/application-view-text/", "shell_version_map": {
     "38": {"version": "7", "sha256": "1dnf1rqg27y1c50sfmqcnswac93lkgml1hdaalq6lfzm8pbnpx0d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSB0ZXh0IGluIHRoZSBBcHBsaWNhdGlvbiB2aWV3IGNhbiBiZSBoYXJkIHRvIHJlYWQgb24gYSBsaWdodCBjb2xvdXJlZCBiYWNrZ3JvdW5kLiBUaGlzIGV4dGVuc2lvbiBtYWtlcyB0aGUgdGV4dCBib2xkZXIgd2l0aCBhIGRyb3Agc2hhZG93LlxuQWxzbyBpbXByb3ZlcyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgYXBwIHJ1bm5pbmcgZG90LiIsCiAgIm5hbWUiOiAiQXBwbGljYXRpb24gVmlldyBUZXh0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiYXBwX3ZpZXdfdGV4dEBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiA3Cn0="},
@@ -2374,7 +2394,7 @@
     "43": {"version": "34", "sha256": "0jq0c80y20d8rljn1478v537lch6klwir0gkzp35y03s1wj0ma36", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBleHRlbnNpb24gbWFuYWdlciBpbiB0aGUgdG9wIHBhbmVsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1leHRlbnNpb24tbGlzdCIsCiAgIm5hbWUiOiAiRXh0ZW5zaW9uIExpc3QiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXh0ZW5zaW9uLWxpc3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9leHRlbnNpb24tbGlzdCIsCiAgInV1aWQiOiAiZXh0ZW5zaW9uLWxpc3RAdHUuYmVycnkiLAogICJ2ZXJzaW9uIjogMzQKfQ=="},
     "44": {"version": "35", "sha256": "1py1lbb00f9kcylc96kk2lr9r8ka9liyxhxxz1nzggz3jzxphw06", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBleHRlbnNpb24gbWFuYWdlciBpbiB0aGUgdG9wIHBhbmVsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1leHRlbnNpb24tbGlzdCIsCiAgIm5hbWUiOiAiRXh0ZW5zaW9uIExpc3QiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXh0ZW5zaW9uLWxpc3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9leHRlbnNpb24tbGlzdCIsCiAgInV1aWQiOiAiZXh0ZW5zaW9uLWxpc3RAdHUuYmVycnkiLAogICJ2ZXJzaW9uIjogMzUKfQ=="},
     "45": {"version": "37", "sha256": "0algkzsdha6996w760nnqmm70n96aymr6ipinq9h95pzf208qy20", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBleHRlbnNpb24gbWFuYWdlciBpbiB0aGUgdG9wIHBhbmVsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1leHRlbnNpb24tbGlzdCIsCiAgIm5hbWUiOiAiRXh0ZW5zaW9uIExpc3QiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXh0ZW5zaW9uLWxpc3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9leHRlbnNpb24tbGlzdCIsCiAgInV1aWQiOiAiZXh0ZW5zaW9uLWxpc3RAdHUuYmVycnkiLAogICJ2ZXJzaW9uIjogMzcKfQ=="},
-    "46": {"version": "38", "sha256": "1z4fscfzg06ddaczc88rw2ymjzv8mf0drbca6aqcpdxivsjkgqhy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBleHRlbnNpb24gbWFuYWdlciBpbiB0aGUgdG9wIHBhbmVsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1leHRlbnNpb24tbGlzdCIsCiAgIm5hbWUiOiAiRXh0ZW5zaW9uIExpc3QiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXh0ZW5zaW9uLWxpc3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9leHRlbnNpb24tbGlzdCIsCiAgInV1aWQiOiAiZXh0ZW5zaW9uLWxpc3RAdHUuYmVycnkiLAogICJ2ZXJzaW9uIjogMzgKfQ=="}
+    "46": {"version": "40", "sha256": "0xw4qv6990z2icpxkipzh57xanxgpalhh43dvphnbg8by1r6b6bj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBleHRlbnNpb24gbWFuYWdlciBpbiB0aGUgdG9wIHBhbmVsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1leHRlbnNpb24tbGlzdCIsCiAgIm5hbWUiOiAiRXh0ZW5zaW9uIExpc3QiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXh0ZW5zaW9uLWxpc3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9leHRlbnNpb24tbGlzdCIsCiAgInV1aWQiOiAiZXh0ZW5zaW9uLWxpc3RAdHUuYmVycnkiLAogICJ2ZXJzaW9uIjogNDAKfQ=="}
   }}
 , {"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": "13", "sha256": "0bxanhx2ylpw0rh69lfdhkixsfggkp7b119ah3rrslx7w71qki6m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldyBhbmQgbWF4aW1pemVkIHdpbmRvd3Mgd2lsbCBiZSBtb3ZlZCB0byBlbXB0eSB3b3Jrc3BhY2VzLlxuU3VwcG9ydHMgbXVsdGlwbGUgbW9uaXRvcnMuIiwKICAibmFtZSI6ICJNYXhpbWl6ZSBUbyBFbXB0eSBXb3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2thaXNlcmFjbS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbWF4aW1pemUtdG8tZW1wdHktd29ya3NwYWNlIiwKICAidXVpZCI6ICJNYXhpbWl6ZVRvRW1wdHlXb3Jrc3BhY2UtZXh0ZW5zaW9uQGthaXNlcnNpdGUuZGUiLAogICJ2ZXJzaW9uIjogMTMKfQ=="},
@@ -2408,7 +2428,7 @@
     "42": {"version": "4", "sha256": "1759h1yp2hndbksaqm2zid2lsca9zmxwfb5n8jrlx7rjfgr7cb11", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdGhlIGFjdGl2aXRpZXMgYnV0dG9uIiwKICAibmFtZSI6ICJObyBhY3Rpdml0aWVzIGJ1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAibm9fYWN0aXZpdGllc0B5YXlhLmNvdXQiLAogICJ2ZXJzaW9uIjogNAp9"},
     "43": {"version": "4", "sha256": "1759h1yp2hndbksaqm2zid2lsca9zmxwfb5n8jrlx7rjfgr7cb11", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdGhlIGFjdGl2aXRpZXMgYnV0dG9uIiwKICAibmFtZSI6ICJObyBhY3Rpdml0aWVzIGJ1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAibm9fYWN0aXZpdGllc0B5YXlhLmNvdXQiLAogICJ2ZXJzaW9uIjogNAp9"}
   }}
-, {"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\nYou can support my work by sponsoring me on:\n- github: https://github.com/sponsors/aunetx\n- ko-fi: https://ko-fi.com/aunetx\n\nNote: if the extension shows an error after updating, please make sure to restart your session to see if it persists. This is due to a bug in gnome shell, which I can't fix by myself.", "link": "https://extensions.gnome.org/extension/3193/blur-my-shell/", "shell_version_map": {
+, {"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\nYou can support my work by sponsoring me on:\n- github: https://github.com/sponsors/aunetx\n- ko-fi: https://ko-fi.com/aunetx\n\nIf you use Ubuntu, you may want to change the radius of the corner effect for Dash-to-Dock in preferences, else you may see unpleasantly mixed radii in your dock.\n\nNote: if the extension shows an error after updating, please make sure to restart your session to see if it persists. This is due to a bug in gnome shell, which I can't fix by myself.", "link": "https://extensions.gnome.org/extension/3193/blur-my-shell/", "shell_version_map": {
     "38": {"version": "22", "sha256": "1ss5vhzjkp2bpllxpjlk1l2i8n7p4xjpzkn0q6jg3gd472kkanfx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5Zb3UgY2FuIHN1cHBvcnQgbXkgd29yayBieSBzcG9uc29yaW5nIG1lIG9uOlxuLSBnaXRodWI6IGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hdW5ldHhcbi0ga28tZmk6IGh0dHBzOi8va28tZmkuY29tL2F1bmV0eFxuXG5Ob3RlOiBpZiB0aGUgZXh0ZW5zaW9uIHNob3dzIGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCBwbGVhc2UgbWFrZSBzdXJlIHRvIHJlc3RhcnQgeW91ciBzZXNzaW9uIHRvIHNlZSBpZiBpdCBwZXJzaXN0cy4gVGhpcyBpcyBkdWUgdG8gYSBidWcgaW4gZ25vbWUgc2hlbGwsIHdoaWNoIEkgY2FuJ3QgZml4IGJ5IG15c2VsZi4iLAogICJuYW1lIjogIkJsdXIgbXkgU2hlbGwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hdW5ldHgvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWJsdXItbXktc2hlbGwiLAogICJ1dWlkIjogImJsdXItbXktc2hlbGxAYXVuZXR4IiwKICAidmVyc2lvbiI6IDIyCn0="},
     "40": {"version": "29", "sha256": "09zflyqk5mlybc4avm812hqr32q0yzrkkw0qy5q4lbkdid7cpqpp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5Zb3UgY2FuIHN1cHBvcnQgbXkgd29yayBieSBzcG9uc29yaW5nIG1lIG9uOlxuLSBnaXRodWI6IGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hdW5ldHhcbi0ga28tZmk6IGh0dHBzOi8va28tZmkuY29tL2F1bmV0eFxuXG5Ob3RlOiBpZiB0aGUgZXh0ZW5zaW9uIHNob3dzIGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCBwbGVhc2UgbWFrZSBzdXJlIHRvIHJlc3RhcnQgeW91ciBzZXNzaW9uIHRvIHNlZSBpZiBpdCBwZXJzaXN0cy4gVGhpcyBpcyBkdWUgdG8gYSBidWcgaW4gZ25vbWUgc2hlbGwsIHdoaWNoIEkgY2FuJ3QgZml4IGJ5IG15c2VsZi4iLAogICJuYW1lIjogIkJsdXIgbXkgU2hlbGwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2F1bmV0eC9nbm9tZS1zaGVsbC1leHRlbnNpb24tYmx1ci1teS1zaGVsbCIsCiAgInV1aWQiOiAiYmx1ci1teS1zaGVsbEBhdW5ldHgiLAogICJ2ZXJzaW9uIjogMjkKfQ=="},
     "41": {"version": "29", "sha256": "09zflyqk5mlybc4avm812hqr32q0yzrkkw0qy5q4lbkdid7cpqpp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5Zb3UgY2FuIHN1cHBvcnQgbXkgd29yayBieSBzcG9uc29yaW5nIG1lIG9uOlxuLSBnaXRodWI6IGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hdW5ldHhcbi0ga28tZmk6IGh0dHBzOi8va28tZmkuY29tL2F1bmV0eFxuXG5Ob3RlOiBpZiB0aGUgZXh0ZW5zaW9uIHNob3dzIGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCBwbGVhc2UgbWFrZSBzdXJlIHRvIHJlc3RhcnQgeW91ciBzZXNzaW9uIHRvIHNlZSBpZiBpdCBwZXJzaXN0cy4gVGhpcyBpcyBkdWUgdG8gYSBidWcgaW4gZ25vbWUgc2hlbGwsIHdoaWNoIEkgY2FuJ3QgZml4IGJ5IG15c2VsZi4iLAogICJuYW1lIjogIkJsdXIgbXkgU2hlbGwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2F1bmV0eC9nbm9tZS1zaGVsbC1leHRlbnNpb24tYmx1ci1teS1zaGVsbCIsCiAgInV1aWQiOiAiYmx1ci1teS1zaGVsbEBhdW5ldHgiLAogICJ2ZXJzaW9uIjogMjkKfQ=="},
@@ -2522,7 +2542,7 @@
     "43": {"version": "34", "sha256": "00mpmx7yfzy9wram6abwm8m7dklk84m3z38r0p8zxp20p3rik660", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBjb2xvciBwaWNrZXIgZm9yIGdub21lIHNoZWxsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1jb2xvci1waWNrZXIiLAogICJuYW1lIjogIkNvbG9yIFBpY2tlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jb2xvci1waWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9jb2xvci1waWNrZXIiLAogICJ1dWlkIjogImNvbG9yLXBpY2tlckB0dWJlcnJ5IiwKICAidmVyc2lvbiI6IDM0Cn0="},
     "44": {"version": "36", "sha256": "0mc7lbw6rsb65i1ha7js1syhk0k5z0kg3l4gzhxprlv2h4dnchaz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBjb2xvciBwaWNrZXIgZm9yIGdub21lIHNoZWxsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1jb2xvci1waWNrZXIiLAogICJuYW1lIjogIkNvbG9yIFBpY2tlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jb2xvci1waWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9jb2xvci1waWNrZXIiLAogICJ1dWlkIjogImNvbG9yLXBpY2tlckB0dWJlcnJ5IiwKICAidmVyc2lvbiI6IDM2Cn0="},
     "45": {"version": "40", "sha256": "0cpav8qrj8jj7zd1v1s4h7p5429gk8njr74zh0v7fk05ygb7skbg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBjb2xvciBwaWNrZXIgZm9yIGdub21lIHNoZWxsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1jb2xvci1waWNrZXIiLAogICJuYW1lIjogIkNvbG9yIFBpY2tlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jb2xvci1waWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9jb2xvci1waWNrZXIiLAogICJ1dWlkIjogImNvbG9yLXBpY2tlckB0dWJlcnJ5IiwKICAidmVyc2lvbiI6IDQwCn0="},
-    "46": {"version": "41", "sha256": "15ibiiy6lzw4cv3xph50cbbizghxgivh3m4icwf8mqli39r747af", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBjb2xvciBwaWNrZXIgZm9yIEdOT01FIFNoZWxsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1jb2xvci1waWNrZXIiLAogICJuYW1lIjogIkNvbG9yIFBpY2tlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jb2xvci1waWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9jb2xvci1waWNrZXIiLAogICJ1dWlkIjogImNvbG9yLXBpY2tlckB0dWJlcnJ5IiwKICAidmVyc2lvbiI6IDQxCn0="}
+    "46": {"version": "43", "sha256": "0sxs7yv24qnw90dkh1gsf150pymcdipv6ywccmzfkdrq1j4533md", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBjb2xvciBwaWNrZXIgZm9yIEdOT01FIFNoZWxsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1jb2xvci1waWNrZXIiLAogICJuYW1lIjogIkNvbG9yIFBpY2tlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jb2xvci1waWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9jb2xvci1waWNrZXIiLAogICJ1dWlkIjogImNvbG9yLXBpY2tlckB0dWJlcnJ5IiwKICAidmVyc2lvbiI6IDQzCn0="}
   }}
 , {"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="}
@@ -2644,7 +2664,8 @@
     "42": {"version": "5", "sha256": "0xzb1bc8y0chkg6pkg2ax11g2xfrxqd9cjnmxhrahmabh30db451", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11bGx2YWQgY29ubmVjdGlvbiBzdGF0dXMgaW5kaWNhdG9yIiwKICAibmFtZSI6ICJNdWxsdmFkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BvYmVnYS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbXVsbHZhZC1pbmRpY2F0b3IiLAogICJ1dWlkIjogIm11bGx2YWRpbmRpY2F0b3JAcG9iZWdhLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"},
     "43": {"version": "11", "sha256": "1wz1wfvbbjhy763jw5r530f0sglms38an443s34vwrivhiqvy0sq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11bGx2YWQgY29ubmVjdGlvbiBzdGF0dXMgaW5kaWNhdG9yIiwKICAibmFtZSI6ICJNdWxsdmFkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Qb2JlZ2EvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW11bGx2YWQtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJtdWxsdmFkaW5kaWNhdG9yQHBvYmVnYS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDExCn0="},
     "44": {"version": "14", "sha256": "1972fqsfl5p9cj633xb3m0155lj0lv74yvvmfadhaipgkpg1gs9s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11bGx2YWQgY29ubmVjdGlvbiBzdGF0dXMgaW5kaWNhdG9yIiwKICAibmFtZSI6ICJNdWxsdmFkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Qb2JlZ2EvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW11bGx2YWQtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJtdWxsdmFkaW5kaWNhdG9yQHBvYmVnYS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE0Cn0="},
-    "45": {"version": "18", "sha256": "0jza6bl6vq8grdr6n33gg3c09grayskmbsrrhcdabp85b216lprh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11bGx2YWQgY29ubmVjdGlvbiBzdGF0dXMgaW5kaWNhdG9yIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibXVsbHZhZGluZGljYXRvckBwb2JlZ2EuZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiTXVsbHZhZCBJbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuTXVsbHZhZEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Qb2JlZ2EvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW11bGx2YWQtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJtdWxsdmFkaW5kaWNhdG9yQHBvYmVnYS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE4Cn0="}
+    "45": {"version": "18", "sha256": "0jza6bl6vq8grdr6n33gg3c09grayskmbsrrhcdabp85b216lprh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11bGx2YWQgY29ubmVjdGlvbiBzdGF0dXMgaW5kaWNhdG9yIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibXVsbHZhZGluZGljYXRvckBwb2JlZ2EuZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiTXVsbHZhZCBJbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuTXVsbHZhZEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Qb2JlZ2EvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW11bGx2YWQtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJtdWxsdmFkaW5kaWNhdG9yQHBvYmVnYS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE4Cn0="},
+    "46": {"version": "19", "sha256": "12fpan25j0qig3zhpnyg1wrsfxsx52msy4i9dn02gg089lkxp326", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11bGx2YWQgY29ubmVjdGlvbiBzdGF0dXMgaW5kaWNhdG9yIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibXVsbHZhZGluZGljYXRvckBwb2JlZ2EuZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiTXVsbHZhZCBJbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuTXVsbHZhZEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Qb2JlZ2EvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW11bGx2YWQtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJtdWxsdmFkaW5kaWNhdG9yQHBvYmVnYS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE5Cn0="}
   }}
 , {"uuid": "task-widget@juozasmiskinis.gitlab.io", "name": "Task Widget", "pname": "task-widget", "description": "Display tasks next to the calendar widget.\n\nVisit our Wiki page for more information and troubleshooting.", "link": "https://extensions.gnome.org/extension/3569/task-widget/", "shell_version_map": {
     "38": {"version": "16", "sha256": "1i0gzrlqcjqgv0vmynxbkj84gsaacfrzgm0vzf26qgcjlblhz5lk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImJhc2UiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGFzay13aWRnZXQiLAogICJjb2ZmZWUiOiAiaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9uYnh3ZnBtIiwKICAiZGVwZW5kZW5jaWVzIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qbWlza2luaXMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2std2lkZ2V0L3dpa2lzL0luc3RhbGxhdGlvbiIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGFza3MgbmV4dCB0byB0aGUgY2FsZW5kYXIgd2lkZ2V0LlxuXG5WaXNpdCBvdXIgV2lraSBwYWdlIGZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCB0cm91Ymxlc2hvb3RpbmcuIiwKICAiZXBhdGgiOiAiL29yZy9nbm9tZS9zaGVsbC9leHRlbnNpb25zL3Rhc2std2lkZ2V0IiwKICAiZ3Jlc291cmNlIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhc2std2lkZ2V0LmdyZXNvdXJjZSIsCiAgImxpYmVyYXBheSI6ICJodHRwczovL2xpYmVyYXBheS5jb20vam9hc2lzLyIsCiAgImxvY2FsZSI6ICJ1c2VyLXNwZWNpZmljIiwKICAibmFtZSI6ICJUYXNrIFdpZGdldCIsCiAgInBheXBhbCI6ICJodHRwczovL3BheXBhbC5tZS9qbWlza2luaXMiLAogICJzY2hlbWFzIjogInVzZXItc3BlY2lmaWMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2ptaXNraW5pcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdGFzay13aWRnZXQiLAogICJ1dWlkIjogInRhc2std2lkZ2V0QGp1b3phc21pc2tpbmlzLmdpdGxhYi5pbyIsCiAgInZlcnNpb24iOiAxNiwKICAid2lraSI6ICJodHRwczovL2dpdGxhYi5jb20vam1pc2tpbmlzL2dub21lLXNoZWxsLWV4dGVuc2lvbi10YXNrLXdpZGdldC93aWtpcyIKfQ=="},
@@ -2695,8 +2716,8 @@
     "42": {"version": "48", "sha256": "0y7pbng3jvvpwnjbajh4qs5n9rlb42w5q4cm2is7s9znwc4n73zj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIE1lbnUgRXh0ZW5zaW9uIGZvciBHTk9NRSIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJwYXlwYWwiOiAiYXphZWNoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFyY21lbnUiLAogICJuYW1lIjogIkFyY01lbnUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXJjbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2FyY21lbnUvQXJjTWVudSIsCiAgInV1aWQiOiAiYXJjbWVudUBhcmNtZW51LmNvbSIsCiAgInZlcnNpb24iOiA0OAp9"},
     "43": {"version": "48", "sha256": "0y7pbng3jvvpwnjbajh4qs5n9rlb42w5q4cm2is7s9znwc4n73zj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIE1lbnUgRXh0ZW5zaW9uIGZvciBHTk9NRSIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJwYXlwYWwiOiAiYXphZWNoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFyY21lbnUiLAogICJuYW1lIjogIkFyY01lbnUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXJjbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2FyY21lbnUvQXJjTWVudSIsCiAgInV1aWQiOiAiYXJjbWVudUBhcmNtZW51LmNvbSIsCiAgInZlcnNpb24iOiA0OAp9"},
     "44": {"version": "48", "sha256": "0y7pbng3jvvpwnjbajh4qs5n9rlb42w5q4cm2is7s9znwc4n73zj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIE1lbnUgRXh0ZW5zaW9uIGZvciBHTk9NRSIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJwYXlwYWwiOiAiYXphZWNoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFyY21lbnUiLAogICJuYW1lIjogIkFyY01lbnUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXJjbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2FyY21lbnUvQXJjTWVudSIsCiAgInV1aWQiOiAiYXJjbWVudUBhcmNtZW51LmNvbSIsCiAgInZlcnNpb24iOiA0OAp9"},
-    "45": {"version": "55", "sha256": "0ggjf5avagpcrgljjkna2l662j78gfjh4maqkmfq4z1kj0vawliq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIE1lbnUgRXh0ZW5zaW9uIGZvciBHTk9NRSIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJwYXlwYWwiOiAiYXphZWNoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFyY21lbnUiLAogICJuYW1lIjogIkFyY01lbnUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXJjbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vYXJjbWVudS9BcmNNZW51IiwKICAidXVpZCI6ICJhcmNtZW51QGFyY21lbnUuY29tIiwKICAidmVyc2lvbiI6IDU1LAogICJ2ZXJzaW9uLW5hbWUiOiAiNTUiCn0="},
-    "46": {"version": "55", "sha256": "0ggjf5avagpcrgljjkna2l662j78gfjh4maqkmfq4z1kj0vawliq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIE1lbnUgRXh0ZW5zaW9uIGZvciBHTk9NRSIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJwYXlwYWwiOiAiYXphZWNoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFyY21lbnUiLAogICJuYW1lIjogIkFyY01lbnUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXJjbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vYXJjbWVudS9BcmNNZW51IiwKICAidXVpZCI6ICJhcmNtZW51QGFyY21lbnUuY29tIiwKICAidmVyc2lvbiI6IDU1LAogICJ2ZXJzaW9uLW5hbWUiOiAiNTUiCn0="}
+    "45": {"version": "56", "sha256": "1m6sjq8z0dsxnmywwh6axyfqspkgn4zrkx8fsgqk62bxpimx705x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIE1lbnUgRXh0ZW5zaW9uIGZvciBHTk9NRSIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJwYXlwYWwiOiAiYXphZWNoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFyY21lbnUiLAogICJuYW1lIjogIkFyY01lbnUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXJjbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vYXJjbWVudS9BcmNNZW51IiwKICAidXVpZCI6ICJhcmNtZW51QGFyY21lbnUuY29tIiwKICAidmVyc2lvbiI6IDU2LAogICJ2ZXJzaW9uLW5hbWUiOiAiNTYiCn0="},
+    "46": {"version": "56", "sha256": "1m6sjq8z0dsxnmywwh6axyfqspkgn4zrkx8fsgqk62bxpimx705x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIE1lbnUgRXh0ZW5zaW9uIGZvciBHTk9NRSIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJwYXlwYWwiOiAiYXphZWNoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImFyY21lbnUiLAogICJuYW1lIjogIkFyY01lbnUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXJjbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vYXJjbWVudS9BcmNNZW51IiwKICAidXVpZCI6ICJhcmNtZW51QGFyY21lbnUuY29tIiwKICAidmVyc2lvbiI6IDU2LAogICJ2ZXJzaW9uLW5hbWUiOiAiNTYiCn0="}
   }}
 , {"uuid": "fixedimelist@alynx.one", "name": "Fixed IME List", "pname": "fixed-ime-list", "description": "Prevent MRU re-sorting of IME list on switching input method so it will always be the same sequence as you set in Settings.", "link": "https://extensions.gnome.org/extension/3663/fixed-ime-list/", "shell_version_map": {
     "38": {"version": "7", "sha256": "18z9h0fcq6w3kmcc5v8swjn18nc9hkck54jfzyv2697py6cd83kf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIElNRSBsaXN0IGluIGZpeGVkIHNlcXVlbmNlIGluc3RlYWQgb2YgTVJVLiIsCiAgIm5hbWUiOiAiRml4ZWQgSU1FIExpc3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWx5bnhaaG91L2dub21lLXNoZWxsLWV4dGVuc2lvbi1maXhlZC1pbWUtbGlzdC8iLAogICJ1dWlkIjogImZpeGVkaW1lbGlzdEBhbHlueC5vbmUiLAogICJ2ZXJzaW9uIjogNwp9"},
@@ -2937,7 +2958,9 @@
     "40": {"version": "10", "sha256": "0y5myj24bkci6y944dnl9p52jz87fiqjxq5x3xcm8s4lc7zgzkfs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zcGFyZW50IGluYWN0aXZlIHdpbmRvd3MiLAogICJuYW1lIjogIkZvY3VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MC5iZXRhIiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NjYXJ5cmF3ci9nbm9tZS1mb2N1cyIsCiAgInV1aWQiOiAiZm9jdXNAc2NhcnlyYXdyLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMAp9"},
     "41": {"version": "10", "sha256": "0y5myj24bkci6y944dnl9p52jz87fiqjxq5x3xcm8s4lc7zgzkfs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zcGFyZW50IGluYWN0aXZlIHdpbmRvd3MiLAogICJuYW1lIjogIkZvY3VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MC5iZXRhIiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NjYXJ5cmF3ci9nbm9tZS1mb2N1cyIsCiAgInV1aWQiOiAiZm9jdXNAc2NhcnlyYXdyLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMAp9"},
     "42": {"version": "10", "sha256": "0y5myj24bkci6y944dnl9p52jz87fiqjxq5x3xcm8s4lc7zgzkfs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zcGFyZW50IGluYWN0aXZlIHdpbmRvd3MiLAogICJuYW1lIjogIkZvY3VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MC5iZXRhIiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NjYXJ5cmF3ci9nbm9tZS1mb2N1cyIsCiAgInV1aWQiOiAiZm9jdXNAc2NhcnlyYXdyLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMAp9"},
-    "43": {"version": "10", "sha256": "0y5myj24bkci6y944dnl9p52jz87fiqjxq5x3xcm8s4lc7zgzkfs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zcGFyZW50IGluYWN0aXZlIHdpbmRvd3MiLAogICJuYW1lIjogIkZvY3VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MC5iZXRhIiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NjYXJ5cmF3ci9nbm9tZS1mb2N1cyIsCiAgInV1aWQiOiAiZm9jdXNAc2NhcnlyYXdyLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMAp9"}
+    "43": {"version": "10", "sha256": "0y5myj24bkci6y944dnl9p52jz87fiqjxq5x3xcm8s4lc7zgzkfs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zcGFyZW50IGluYWN0aXZlIHdpbmRvd3MiLAogICJuYW1lIjogIkZvY3VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MC5iZXRhIiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NjYXJ5cmF3ci9nbm9tZS1mb2N1cyIsCiAgInV1aWQiOiAiZm9jdXNAc2NhcnlyYXdyLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMAp9"},
+    "45": {"version": "13", "sha256": "07mvx2b8zfj9j5ry2d0cw1rw1gm5j78nah3ffb84zpj6w8xv4n9k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zcGFyZW50IGluYWN0aXZlIHdpbmRvd3MiLAogICJuYW1lIjogIkZvY3VzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZvY3VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zY2FyeXJhd3IvZ25vbWUtZm9jdXMiLAogICJ1dWlkIjogImZvY3VzQHNjYXJ5cmF3ci5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTMKfQ=="},
+    "46": {"version": "13", "sha256": "07mvx2b8zfj9j5ry2d0cw1rw1gm5j78nah3ffb84zpj6w8xv4n9k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zcGFyZW50IGluYWN0aXZlIHdpbmRvd3MiLAogICJuYW1lIjogIkZvY3VzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZvY3VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zY2FyeXJhd3IvZ25vbWUtZm9jdXMiLAogICJ1dWlkIjogImZvY3VzQHNjYXJ5cmF3ci5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTMKfQ=="}
   }}
 , {"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": "7", "sha256": "1mi1yrlqc0bqih6zsbqcznnjfxjq3j5s64819wxwxg5m9ligi61h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG8gc2VsZWN0cyBoZWFkc2V0cyB3aGVuIHBvc3NpYmxlIGluc3RlYWQgb2Ygc2hvd2luZyBhIGRpYWxvZyIsCiAgIm5hbWUiOiAiQXV0byBzZWxlY3QgaGVhZHNldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vam9zZXBobGJhcm5ldHQvYXV0b3NlbGVjdGhlYWRzZXQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJhdXRvc2VsZWN0aGVhZHNldEBqb3NlcGhsYmFybmV0dC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="},
@@ -2946,7 +2969,8 @@
     "42": {"version": "7", "sha256": "1mi1yrlqc0bqih6zsbqcznnjfxjq3j5s64819wxwxg5m9ligi61h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG8gc2VsZWN0cyBoZWFkc2V0cyB3aGVuIHBvc3NpYmxlIGluc3RlYWQgb2Ygc2hvd2luZyBhIGRpYWxvZyIsCiAgIm5hbWUiOiAiQXV0byBzZWxlY3QgaGVhZHNldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vam9zZXBobGJhcm5ldHQvYXV0b3NlbGVjdGhlYWRzZXQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJhdXRvc2VsZWN0aGVhZHNldEBqb3NlcGhsYmFybmV0dC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="},
     "43": {"version": "7", "sha256": "1mi1yrlqc0bqih6zsbqcznnjfxjq3j5s64819wxwxg5m9ligi61h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG8gc2VsZWN0cyBoZWFkc2V0cyB3aGVuIHBvc3NpYmxlIGluc3RlYWQgb2Ygc2hvd2luZyBhIGRpYWxvZyIsCiAgIm5hbWUiOiAiQXV0byBzZWxlY3QgaGVhZHNldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vam9zZXBobGJhcm5ldHQvYXV0b3NlbGVjdGhlYWRzZXQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJhdXRvc2VsZWN0aGVhZHNldEBqb3NlcGhsYmFybmV0dC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="},
     "44": {"version": "7", "sha256": "1mi1yrlqc0bqih6zsbqcznnjfxjq3j5s64819wxwxg5m9ligi61h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG8gc2VsZWN0cyBoZWFkc2V0cyB3aGVuIHBvc3NpYmxlIGluc3RlYWQgb2Ygc2hvd2luZyBhIGRpYWxvZyIsCiAgIm5hbWUiOiAiQXV0byBzZWxlY3QgaGVhZHNldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vam9zZXBobGJhcm5ldHQvYXV0b3NlbGVjdGhlYWRzZXQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJhdXRvc2VsZWN0aGVhZHNldEBqb3NlcGhsYmFybmV0dC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="},
-    "45": {"version": "9", "sha256": "0q6p0vjd062wl7gpg3g91pr5f09hhhlm1az9hj2bqrlnd7irw7kj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG8gc2VsZWN0cyBoZWFkc2V0cyB3aGVuIHBvc3NpYmxlIGluc3RlYWQgb2Ygc2hvd2luZyBhIGRpYWxvZyIsCiAgIm5hbWUiOiAiQXV0byBzZWxlY3QgaGVhZHNldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qb3NlcGhsYmFybmV0dC9hdXRvc2VsZWN0aGVhZHNldC1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogImF1dG9zZWxlY3RoZWFkc2V0QGpvc2VwaGxiYXJuZXR0LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogOQp9"}
+    "45": {"version": "10", "sha256": "0dxj0hk7ara5aih61vfpqqkv6jk2mg3r5rkpdpy15kwwikw28f60", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG8gc2VsZWN0cyBoZWFkc2V0cyB3aGVuIHBvc3NpYmxlIGluc3RlYWQgb2Ygc2hvd2luZyBhIGRpYWxvZyIsCiAgIm5hbWUiOiAiQXV0byBzZWxlY3QgaGVhZHNldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vam9zZXBobGJhcm5ldHQvYXV0b3NlbGVjdGhlYWRzZXQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJhdXRvc2VsZWN0aGVhZHNldEBqb3NlcGhsYmFybmV0dC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="},
+    "46": {"version": "10", "sha256": "0dxj0hk7ara5aih61vfpqqkv6jk2mg3r5rkpdpy15kwwikw28f60", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG8gc2VsZWN0cyBoZWFkc2V0cyB3aGVuIHBvc3NpYmxlIGluc3RlYWQgb2Ygc2hvd2luZyBhIGRpYWxvZyIsCiAgIm5hbWUiOiAiQXV0byBzZWxlY3QgaGVhZHNldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vam9zZXBobGJhcm5ldHQvYXV0b3NlbGVjdGhlYWRzZXQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJhdXRvc2VsZWN0aGVhZHNldEBqb3NlcGhsYmFybmV0dC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}
   }}
 , {"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": "7", "sha256": "13s25az5g1n500jih7n1n7mprm70c2mg4r9cfdrxvivvmy080s5b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGxldHMgeW91IHRvZ2dsZSBuaWdodC1saWdodCBmcm9tIHRoZSB0b3AtYmFyIGJ5IGNsaWNraW5nIGl0LiIsCiAgIm5hbWUiOiAiVG9nZ2xlIE5pZ2h0IExpZ2h0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2Fuc296YmlyL2dub21lLXNoZWxsLXRvZ2dsZS1uaWdodC1saWdodC1leHRlbnNpb24iLAogICJ1dWlkIjogInRvZ2dsZS1uaWdodC1saWdodEBjYW5zb3piaXIuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDcKfQ=="},
@@ -2959,14 +2983,15 @@
     "40": {"version": "4", "sha256": "1n2fnqv9mhgz9i32vbplamp8vfridh9hc2maxdl8y7nlhvjrk992", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5PVCBNQUlOVEFJTkVEIEFOWU1PUkVcblxuQnV0dG9uIGluIHBhbmVsOiBzd2l0Y2ggYmV0d2VlbiBBZHdhaXRhIGRhcmsgYW5kIGxpZ2h0IHRoZW1lcy4iLAogICJuYW1lIjogIkFkd2FpdGEgVGhlbWUgU3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvYWR3YWl0YS10aGVtZS1zd2l0Y2hlciIsCiAgInV1aWQiOiAiYWR3YWl0YS10aGVtZS1zd2l0Y2hlckBmdGh4IiwKICAidmVyc2lvbiI6IDQKfQ=="},
     "41": {"version": "4", "sha256": "1n2fnqv9mhgz9i32vbplamp8vfridh9hc2maxdl8y7nlhvjrk992", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5PVCBNQUlOVEFJTkVEIEFOWU1PUkVcblxuQnV0dG9uIGluIHBhbmVsOiBzd2l0Y2ggYmV0d2VlbiBBZHdhaXRhIGRhcmsgYW5kIGxpZ2h0IHRoZW1lcy4iLAogICJuYW1lIjogIkFkd2FpdGEgVGhlbWUgU3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvYWR3YWl0YS10aGVtZS1zd2l0Y2hlciIsCiAgInV1aWQiOiAiYWR3YWl0YS10aGVtZS1zd2l0Y2hlckBmdGh4IiwKICAidmVyc2lvbiI6IDQKfQ=="}
   }}
-, {"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": {
+, {"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": "8", "sha256": "0qw46d3nibpfx0n1584xlw0lkxspvvl5dl2k4x3nbp87wm9gs8vw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZuTG9jayBzd2l0Y2ggZm9yIExlbm92byBUaGlua1BhZCBDb21wYWN0IFVTQiBLZXlib2FyZCAiLAogICJuYW1lIjogIkZuTG9jayBzd2l0Y2ggKFRoaW5rUGFkIENvbXBhY3QgVVNCIEtleWJvYXJkKSAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbG9zaHVib3YvZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYiIsCiAgInV1aWQiOiAiZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYkBnb2xvc2h1Ym92LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA4Cn0="},
     "40": {"version": "8", "sha256": "0qw46d3nibpfx0n1584xlw0lkxspvvl5dl2k4x3nbp87wm9gs8vw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZuTG9jayBzd2l0Y2ggZm9yIExlbm92byBUaGlua1BhZCBDb21wYWN0IFVTQiBLZXlib2FyZCAiLAogICJuYW1lIjogIkZuTG9jayBzd2l0Y2ggKFRoaW5rUGFkIENvbXBhY3QgVVNCIEtleWJvYXJkKSAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbG9zaHVib3YvZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYiIsCiAgInV1aWQiOiAiZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYkBnb2xvc2h1Ym92LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA4Cn0="},
     "41": {"version": "8", "sha256": "0qw46d3nibpfx0n1584xlw0lkxspvvl5dl2k4x3nbp87wm9gs8vw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZuTG9jayBzd2l0Y2ggZm9yIExlbm92byBUaGlua1BhZCBDb21wYWN0IFVTQiBLZXlib2FyZCAiLAogICJuYW1lIjogIkZuTG9jayBzd2l0Y2ggKFRoaW5rUGFkIENvbXBhY3QgVVNCIEtleWJvYXJkKSAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbG9zaHVib3YvZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYiIsCiAgInV1aWQiOiAiZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYkBnb2xvc2h1Ym92LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA4Cn0="},
     "42": {"version": "8", "sha256": "0qw46d3nibpfx0n1584xlw0lkxspvvl5dl2k4x3nbp87wm9gs8vw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZuTG9jayBzd2l0Y2ggZm9yIExlbm92byBUaGlua1BhZCBDb21wYWN0IFVTQiBLZXlib2FyZCAiLAogICJuYW1lIjogIkZuTG9jayBzd2l0Y2ggKFRoaW5rUGFkIENvbXBhY3QgVVNCIEtleWJvYXJkKSAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbG9zaHVib3YvZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYiIsCiAgInV1aWQiOiAiZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYkBnb2xvc2h1Ym92LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA4Cn0="},
     "43": {"version": "8", "sha256": "0qw46d3nibpfx0n1584xlw0lkxspvvl5dl2k4x3nbp87wm9gs8vw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZuTG9jayBzd2l0Y2ggZm9yIExlbm92byBUaGlua1BhZCBDb21wYWN0IFVTQiBLZXlib2FyZCAiLAogICJuYW1lIjogIkZuTG9jayBzd2l0Y2ggKFRoaW5rUGFkIENvbXBhY3QgVVNCIEtleWJvYXJkKSAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbG9zaHVib3YvZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYiIsCiAgInV1aWQiOiAiZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYkBnb2xvc2h1Ym92LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA4Cn0="},
     "44": {"version": "8", "sha256": "0qw46d3nibpfx0n1584xlw0lkxspvvl5dl2k4x3nbp87wm9gs8vw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZuTG9jayBzd2l0Y2ggZm9yIExlbm92byBUaGlua1BhZCBDb21wYWN0IFVTQiBLZXlib2FyZCAiLAogICJuYW1lIjogIkZuTG9jayBzd2l0Y2ggKFRoaW5rUGFkIENvbXBhY3QgVVNCIEtleWJvYXJkKSAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbG9zaHVib3YvZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYiIsCiAgInV1aWQiOiAiZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYkBnb2xvc2h1Ym92LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA4Cn0="},
-    "45": {"version": "10", "sha256": "0fl6dr0c5g8vf19ywq5lzdsk121dsh4ls9a54x89mc10i5s9rj38", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZuTG9jayBzd2l0Y2ggZm9yIExlbm92byBUaGlua1BhZCBDb21wYWN0IFVTQiBLZXlib2FyZCAiLAogICJuYW1lIjogIkZuTG9jayBzd2l0Y2ggKFRoaW5rUGFkIENvbXBhY3QgVVNCIEtleWJvYXJkKSAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ29sb3NodWJvdi9mbmxvY2stc3dpdGNoLXRwLWNvbXAtdXNiLWtiIiwKICAidXVpZCI6ICJmbmxvY2stc3dpdGNoLXRwLWNvbXAtdXNiLWtiQGdvbG9zaHVib3YuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDEwCn0="}
+    "45": {"version": "11", "sha256": "0scc8z918g0ww5ljdzkwfkv52ff4gma8bj5isb9gid62lb6idiq8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZuTG9jayBzd2l0Y2ggZm9yIExlbm92byBUaGlua1BhZCBDb21wYWN0IFVTQiBLZXlib2FyZCAiLAogICJuYW1lIjogIkZuTG9jayBzd2l0Y2ggKFRoaW5rUGFkIENvbXBhY3QgVVNCIEtleWJvYXJkKSAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbG9zaHVib3YvZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYiIsCiAgInV1aWQiOiAiZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYkBnb2xvc2h1Ym92LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMQp9"},
+    "46": {"version": "11", "sha256": "0scc8z918g0ww5ljdzkwfkv52ff4gma8bj5isb9gid62lb6idiq8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZuTG9jayBzd2l0Y2ggZm9yIExlbm92byBUaGlua1BhZCBDb21wYWN0IFVTQiBLZXlib2FyZCAiLAogICJuYW1lIjogIkZuTG9jayBzd2l0Y2ggKFRoaW5rUGFkIENvbXBhY3QgVVNCIEtleWJvYXJkKSAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbG9zaHVib3YvZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYiIsCiAgInV1aWQiOiAiZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYkBnb2xvc2h1Ym92LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMQp9"}
   }}
 , {"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": "6", "sha256": "03hz84zr05sjw20jvvhmawgi2acimlqzh3vrsp184j6d671yfv7m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZXMgQWxhY3JpdHR5IHdpbmRvdyB2aWEgaG90a2V5OiBBbHQrelxuXG5JZiBBbGFjcml0dHkgaXMgbm90IGxhdW5jaGVkLCBhdHRlbXB0cyB0byBzdGFydCBpdCAoL3Vzci9iaW4vYWxhY3JpdHR5KVxuXG5Xb3JrcyB1bmRlciBib3RoIFdheWxhbmQgYW5kIFgxMVxuXG5UbyBjaGFuZ2UgaG90a2V5IHBsZWFzZSBmb2xsb3cgaW5zdHJ1Y3Rpb24gaW4gdGhlIFJFQURNRS5tZDoiLAogICJuYW1lIjogIlRvZ2dsZSBBbGFjcml0dHkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudG9nZ2xlLWFsYWNyaXR0eSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXh4YXB5L2dub21lLWFsYWNyaXR0eS10b2dnbGUiLAogICJ1dWlkIjogInRvZ2dsZS1hbGFjcml0dHlAaXRzdGltZS50ZWNoIiwKICAidmVyc2lvbiI6IDYKfQ=="},
@@ -3005,7 +3030,8 @@
     "42": {"version": "19", "sha256": "0h7iarczbkv24kbydrids0wdaymlrilib0jhqdmm9k11hriyg1jh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJDemFybGllIDxsZWVlNDlAZ21haWwuY29tPiIsCiAgImF1dGhvci1odG1sIjogIkN6YXJsaWUgJmx0OzxhIGhyZWY9XCJtYWlsdG86bGVlZTQ5Ljd4N0BnbWFpbC5jb21cIj5sZWVlNDkuN3g3QGdtYWlsLmNvbTwvYT4mZ3Q7IiwKICAiZGVzY3JpcHRpb24iOiAiRnV6enkgYXBwbGljYXRpb24gc2VhcmNoIHJlc3VsdHMgZm9yIEdub21lIFNlYXJjaCIsCiAgImRlc2NyaXB0aW9uLWh0bWwiOiAiPGEgaHJlZj1cImh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0FwcHJveGltYXRlX3N0cmluZ19tYXRjaGluZ1wiPkZ1enp5PC9hPiBhcHBsaWNhdGlvbiBzZWFyY2ggcmVzdWx0cyBmb3IgPGEgaHJlZj1cImh0dHBzOi8vZGV2ZWxvcGVyLmdub21lLm9yZy9TZWFyY2hQcm92aWRlci9cIj5Hbm9tZSBTZWFyY2g8L2E+LiIsCiAgImVtYWlsIjogImxlZWU0OS43eDdAZ21haWwuY29tIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtZnV6enktYXBwLXNlYXJjaCIsCiAgImxpY2Vuc2UiOiAiR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdjMuMCIsCiAgImxpY2Vuc2UtaHRtbCI6ICJUaGlzIHByb2dyYW0gY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLlxuU2VlIHRoZSA8YSBocmVmPVwiaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWxcIj5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wPC9hPiBmb3IgZGV0YWlscy4iLAogICJuYW1lIjogIkdOT01FIEZ1enp5IEFwcCBTZWFyY2giLAogICJvcmlnaW5hbC1hdXRob3IiOiAiRnJhbmpvIEZpbG8gPGZmZmlsbzY2NkBnbWFpbC5jb20+IiwKICAib3JpZ2luYWwtYXV0aG9yLWh0bWwiOiAiRnJhbmpvIEZpbG8gJmx0OzxhIGhyZWY9XCJtYWlsdG86ZmZmaWxvNjY2QGdtYWlsLmNvbVwiPmZmZmlsbzY2NkBnbWFpbC5jb208L2E+Jmd0OyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9DemFybGllL2dub21lLWZ1enp5LWFwcC1zZWFyY2giLAogICJ1dWlkIjogImdub21lLWZ1enp5LWFwcC1zZWFyY2hAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5DemFybGllLmdpdGxhYi5jb20iLAogICJ2ZXJzaW9uIjogMTkKfQ=="},
     "43": {"version": "19", "sha256": "0h7iarczbkv24kbydrids0wdaymlrilib0jhqdmm9k11hriyg1jh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJDemFybGllIDxsZWVlNDlAZ21haWwuY29tPiIsCiAgImF1dGhvci1odG1sIjogIkN6YXJsaWUgJmx0OzxhIGhyZWY9XCJtYWlsdG86bGVlZTQ5Ljd4N0BnbWFpbC5jb21cIj5sZWVlNDkuN3g3QGdtYWlsLmNvbTwvYT4mZ3Q7IiwKICAiZGVzY3JpcHRpb24iOiAiRnV6enkgYXBwbGljYXRpb24gc2VhcmNoIHJlc3VsdHMgZm9yIEdub21lIFNlYXJjaCIsCiAgImRlc2NyaXB0aW9uLWh0bWwiOiAiPGEgaHJlZj1cImh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0FwcHJveGltYXRlX3N0cmluZ19tYXRjaGluZ1wiPkZ1enp5PC9hPiBhcHBsaWNhdGlvbiBzZWFyY2ggcmVzdWx0cyBmb3IgPGEgaHJlZj1cImh0dHBzOi8vZGV2ZWxvcGVyLmdub21lLm9yZy9TZWFyY2hQcm92aWRlci9cIj5Hbm9tZSBTZWFyY2g8L2E+LiIsCiAgImVtYWlsIjogImxlZWU0OS43eDdAZ21haWwuY29tIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtZnV6enktYXBwLXNlYXJjaCIsCiAgImxpY2Vuc2UiOiAiR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdjMuMCIsCiAgImxpY2Vuc2UtaHRtbCI6ICJUaGlzIHByb2dyYW0gY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLlxuU2VlIHRoZSA8YSBocmVmPVwiaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWxcIj5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wPC9hPiBmb3IgZGV0YWlscy4iLAogICJuYW1lIjogIkdOT01FIEZ1enp5IEFwcCBTZWFyY2giLAogICJvcmlnaW5hbC1hdXRob3IiOiAiRnJhbmpvIEZpbG8gPGZmZmlsbzY2NkBnbWFpbC5jb20+IiwKICAib3JpZ2luYWwtYXV0aG9yLWh0bWwiOiAiRnJhbmpvIEZpbG8gJmx0OzxhIGhyZWY9XCJtYWlsdG86ZmZmaWxvNjY2QGdtYWlsLmNvbVwiPmZmZmlsbzY2NkBnbWFpbC5jb208L2E+Jmd0OyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9DemFybGllL2dub21lLWZ1enp5LWFwcC1zZWFyY2giLAogICJ1dWlkIjogImdub21lLWZ1enp5LWFwcC1zZWFyY2hAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5DemFybGllLmdpdGxhYi5jb20iLAogICJ2ZXJzaW9uIjogMTkKfQ=="},
     "44": {"version": "19", "sha256": "0h7iarczbkv24kbydrids0wdaymlrilib0jhqdmm9k11hriyg1jh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJDemFybGllIDxsZWVlNDlAZ21haWwuY29tPiIsCiAgImF1dGhvci1odG1sIjogIkN6YXJsaWUgJmx0OzxhIGhyZWY9XCJtYWlsdG86bGVlZTQ5Ljd4N0BnbWFpbC5jb21cIj5sZWVlNDkuN3g3QGdtYWlsLmNvbTwvYT4mZ3Q7IiwKICAiZGVzY3JpcHRpb24iOiAiRnV6enkgYXBwbGljYXRpb24gc2VhcmNoIHJlc3VsdHMgZm9yIEdub21lIFNlYXJjaCIsCiAgImRlc2NyaXB0aW9uLWh0bWwiOiAiPGEgaHJlZj1cImh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0FwcHJveGltYXRlX3N0cmluZ19tYXRjaGluZ1wiPkZ1enp5PC9hPiBhcHBsaWNhdGlvbiBzZWFyY2ggcmVzdWx0cyBmb3IgPGEgaHJlZj1cImh0dHBzOi8vZGV2ZWxvcGVyLmdub21lLm9yZy9TZWFyY2hQcm92aWRlci9cIj5Hbm9tZSBTZWFyY2g8L2E+LiIsCiAgImVtYWlsIjogImxlZWU0OS43eDdAZ21haWwuY29tIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtZnV6enktYXBwLXNlYXJjaCIsCiAgImxpY2Vuc2UiOiAiR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdjMuMCIsCiAgImxpY2Vuc2UtaHRtbCI6ICJUaGlzIHByb2dyYW0gY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLlxuU2VlIHRoZSA8YSBocmVmPVwiaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWxcIj5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wPC9hPiBmb3IgZGV0YWlscy4iLAogICJuYW1lIjogIkdOT01FIEZ1enp5IEFwcCBTZWFyY2giLAogICJvcmlnaW5hbC1hdXRob3IiOiAiRnJhbmpvIEZpbG8gPGZmZmlsbzY2NkBnbWFpbC5jb20+IiwKICAib3JpZ2luYWwtYXV0aG9yLWh0bWwiOiAiRnJhbmpvIEZpbG8gJmx0OzxhIGhyZWY9XCJtYWlsdG86ZmZmaWxvNjY2QGdtYWlsLmNvbVwiPmZmZmlsbzY2NkBnbWFpbC5jb208L2E+Jmd0OyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9DemFybGllL2dub21lLWZ1enp5LWFwcC1zZWFyY2giLAogICJ1dWlkIjogImdub21lLWZ1enp5LWFwcC1zZWFyY2hAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5DemFybGllLmdpdGxhYi5jb20iLAogICJ2ZXJzaW9uIjogMTkKfQ=="},
-    "45": {"version": "20", "sha256": "1bmgxpxg1jra337rdqchcgij5f78d3krqkr9s7v05sxpqx51jwpp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJDaGFybG90dGUgPGdmYXNAY3phLmxpPiIsCiAgImF1dGhvci1odG1sIjogIkNoYXJsb3R0ZSAmbHQ7PGEgaHJlZj1cIm1haWx0bzpnZmFzQGN6YS5saVwiPmdmYXNAY3phLmxpPC9hPiZndDsiLAogICJkZXNjcmlwdGlvbiI6ICJGdXp6eSBhcHBsaWNhdGlvbiBzZWFyY2ggcmVzdWx0cyBmb3IgR25vbWUgU2VhcmNoIiwKICAiZGVzY3JpcHRpb24taHRtbCI6ICI8YSBocmVmPVwiaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQXBwcm94aW1hdGVfc3RyaW5nX21hdGNoaW5nXCI+RnV6enk8L2E+IGFwcGxpY2F0aW9uIHNlYXJjaCByZXN1bHRzIGZvciA8YSBocmVmPVwiaHR0cHM6Ly9kZXZlbG9wZXIuZ25vbWUub3JnL1NlYXJjaFByb3ZpZGVyL1wiPkdub21lIFNlYXJjaDwvYT4uIiwKICAiZW1haWwiOiAiZ2Zhc0BjemEubGkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAibGljZW5zZSI6ICJHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wIiwKICAibGljZW5zZS1odG1sIjogIlRoaXMgcHJvZ3JhbSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuXG5TZWUgdGhlIDxhIGhyZWY9XCJodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAuaHRtbFwiPkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHYzLjA8L2E+IGZvciBkZXRhaWxzLiIsCiAgIm5hbWUiOiAiR05PTUUgRnV6enkgQXBwIFNlYXJjaCIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJGcmFuam8gRmlsbyA8ZmZmaWxvNjY2QGdtYWlsLmNvbT4iLAogICJvcmlnaW5hbC1hdXRob3ItaHRtbCI6ICJGcmFuam8gRmlsbyAmbHQ7PGEgaHJlZj1cIm1haWx0bzpmZmZpbG82NjZAZ21haWwuY29tXCI+ZmZmaWxvNjY2QGdtYWlsLmNvbTwvYT4mZ3Q7IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2N6YXJsaWUvZ25vbWUtZnV6enktYXBwLXNlYXJjaCIsCiAgInV1aWQiOiAiZ25vbWUtZnV6enktYXBwLXNlYXJjaEBnbm9tZS1zaGVsbC1leHRlbnNpb25zLkN6YXJsaWUuZ2l0bGFiLmNvbSIsCiAgInZlcnNpb24iOiAyMAp9"}
+    "45": {"version": "24", "sha256": "14p08lcnv240bk9ibgchb74xjnsnfh4868w2qlgqpsn0fl1ba906", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJDaGFybG90dGUgPGdmYXNAY3phLmxpPiIsCiAgImF1dGhvci1odG1sIjogIkNoYXJsb3R0ZSAmbHQ7PGEgaHJlZj1cIm1haWx0bzpnZmFzQGN6YS5saVwiPmdmYXNAY3phLmxpPC9hPiZndDsiLAogICJkZXNjcmlwdGlvbiI6ICJGdXp6eSBhcHBsaWNhdGlvbiBzZWFyY2ggcmVzdWx0cyBmb3IgR25vbWUgU2VhcmNoIiwKICAiZGVzY3JpcHRpb24taHRtbCI6ICI8YSBocmVmPVwiaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQXBwcm94aW1hdGVfc3RyaW5nX21hdGNoaW5nXCI+RnV6enk8L2E+IGFwcGxpY2F0aW9uIHNlYXJjaCByZXN1bHRzIGZvciA8YSBocmVmPVwiaHR0cHM6Ly9kZXZlbG9wZXIuZ25vbWUub3JnL1NlYXJjaFByb3ZpZGVyL1wiPkdub21lIFNlYXJjaDwvYT4uIiwKICAiZW1haWwiOiAiZ2Zhc0BjemEubGkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAibGljZW5zZSI6ICJHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wIiwKICAibGljZW5zZS1odG1sIjogIlRoaXMgcHJvZ3JhbSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuXG5TZWUgdGhlIDxhIGhyZWY9XCJodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAuaHRtbFwiPkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHYzLjA8L2E+IGZvciBkZXRhaWxzLiIsCiAgIm5hbWUiOiAiR05PTUUgRnV6enkgQXBwIFNlYXJjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vY3phcmxpZS9nbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAidXVpZCI6ICJnbm9tZS1mdXp6eS1hcHAtc2VhcmNoQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuQ3phcmxpZS5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDI0Cn0="},
+    "46": {"version": "24", "sha256": "14p08lcnv240bk9ibgchb74xjnsnfh4868w2qlgqpsn0fl1ba906", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJDaGFybG90dGUgPGdmYXNAY3phLmxpPiIsCiAgImF1dGhvci1odG1sIjogIkNoYXJsb3R0ZSAmbHQ7PGEgaHJlZj1cIm1haWx0bzpnZmFzQGN6YS5saVwiPmdmYXNAY3phLmxpPC9hPiZndDsiLAogICJkZXNjcmlwdGlvbiI6ICJGdXp6eSBhcHBsaWNhdGlvbiBzZWFyY2ggcmVzdWx0cyBmb3IgR25vbWUgU2VhcmNoIiwKICAiZGVzY3JpcHRpb24taHRtbCI6ICI8YSBocmVmPVwiaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQXBwcm94aW1hdGVfc3RyaW5nX21hdGNoaW5nXCI+RnV6enk8L2E+IGFwcGxpY2F0aW9uIHNlYXJjaCByZXN1bHRzIGZvciA8YSBocmVmPVwiaHR0cHM6Ly9kZXZlbG9wZXIuZ25vbWUub3JnL1NlYXJjaFByb3ZpZGVyL1wiPkdub21lIFNlYXJjaDwvYT4uIiwKICAiZW1haWwiOiAiZ2Zhc0BjemEubGkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAibGljZW5zZSI6ICJHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wIiwKICAibGljZW5zZS1odG1sIjogIlRoaXMgcHJvZ3JhbSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuXG5TZWUgdGhlIDxhIGhyZWY9XCJodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAuaHRtbFwiPkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHYzLjA8L2E+IGZvciBkZXRhaWxzLiIsCiAgIm5hbWUiOiAiR05PTUUgRnV6enkgQXBwIFNlYXJjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vY3phcmxpZS9nbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAidXVpZCI6ICJnbm9tZS1mdXp6eS1hcHAtc2VhcmNoQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuQ3phcmxpZS5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDI0Cn0="}
   }}
 , {"uuid": "e-ink-mode@fujimo-t.github.io", "name": "E Ink Mode", "pname": "e-ink-mode", "description": "Make desktop suitable for E Ink monitors.\n\nUnmaintenanced.\nPlease migrate to theme:\nhttps://github.com/fujimo-t/gnome-shell-theme-e-ink\nSee below to detail:\nhttps://github.com/fujimo-t/gnome-shell-extension-e-ink-mode/issues/3#issuecomment-1019159171", "link": "https://extensions.gnome.org/extension/3957/e-ink-mode/", "shell_version_map": {
     "40": {"version": "3", "sha256": "0khqna60a0vblygriiky0jzg92ib8i44i6wkr8s3vxi0bcfa2zhm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgZGVza3RvcCBzdWl0YWJsZSBmb3IgRSBJbmsgbW9uaXRvcnMuXG5cblVubWFpbnRlbmFuY2VkLlxuUGxlYXNlIG1pZ3JhdGUgdG8gdGhlbWU6XG5odHRwczovL2dpdGh1Yi5jb20vZnVqaW1vLXQvZ25vbWUtc2hlbGwtdGhlbWUtZS1pbmtcblNlZSBiZWxvdyB0byBkZXRhaWw6XG5odHRwczovL2dpdGh1Yi5jb20vZnVqaW1vLXQvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWUtaW5rLW1vZGUvaXNzdWVzLzMjaXNzdWVjb21tZW50LTEwMTkxNTkxNzEiLAogICJuYW1lIjogIkUgSW5rIE1vZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnVqaW1vLXQvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWUtaW5rLW1vZGUiLAogICJ1dWlkIjogImUtaW5rLW1vZGVAZnVqaW1vLXQuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDMKfQ=="}
@@ -3046,7 +3072,7 @@
     "42": {"version": "21", "sha256": "1pbldn51jjfq45d3bl7nfciff1mn3krl7dhiwp9hqrp3hchlassd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldhbGxwYXBlciBnZW5lcmF0aW9uIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwsIGluc3BpcmVkIGJ5IEppemhpXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1zaHV6aGkiLAogICJuYW1lIjogIlNodSBaaGkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2h1emhpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvc2h1emhpIiwKICAidXVpZCI6ICJzaHV6aGlAdHViZXJyeSIsCiAgInZlcnNpb24iOiAyMQp9"},
     "43": {"version": "23", "sha256": "1nsjpjjsllrdh2k6v9h06xm656b5dbq2vpxs7kqn4p7l8b0ycav4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldhbGxwYXBlciBnZW5lcmF0aW9uIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwsIGluc3BpcmVkIGJ5IEppemhpXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1zaHV6aGkiLAogICJuYW1lIjogIlNodSBaaGkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2h1emhpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvc2h1emhpIiwKICAidXVpZCI6ICJzaHV6aGlAdHViZXJyeSIsCiAgInZlcnNpb24iOiAyMwp9"},
     "45": {"version": "30", "sha256": "0bswnas2jr58f995sd6317wvy14vq0w5y8fcmrn8n36jgpf3ik5v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldhbGxwYXBlciBnZW5lcmF0aW9uIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwsIGluc3BpcmVkIGJ5IEppemhpXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1zaHV6aGkiLAogICJuYW1lIjogIlNodSBaaGkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2h1emhpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvc2h1emhpIiwKICAidXVpZCI6ICJzaHV6aGlAdHViZXJyeSIsCiAgInZlcnNpb24iOiAzMAp9"},
-    "46": {"version": "31", "sha256": "06q32s44nf9y61hph8vkmxxpwfzfi58r32py67mxca9xmswc3g03", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldhbGxwYXBlciBnZW5lcmF0aW9uIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwsIGluc3BpcmVkIGJ5IGppemhpXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1zaHV6aGkiLAogICJuYW1lIjogIlNodSBaaGkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2h1emhpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvc2h1emhpIiwKICAidXVpZCI6ICJzaHV6aGlAdHViZXJyeSIsCiAgInZlcnNpb24iOiAzMQp9"}
+    "46": {"version": "32", "sha256": "035pgwb3dsdw75figyw0r82d2bfadd3sq780mmfvjfkfvb6zjaf9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldhbGxwYXBlciBnZW5lcmF0aW9uIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwsIGluc3BpcmVkIGJ5IGppemhpXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1zaHV6aGkiLAogICJuYW1lIjogIlNodSBaaGkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2h1emhpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvc2h1emhpIiwKICAidXVpZCI6ICJzaHV6aGlAdHViZXJyeSIsCiAgInZlcnNpb24iOiAzMgp9"}
   }}
 , {"uuid": "zilence@apankowski.github.com", "name": "Zilence", "pname": "zilence", "description": "Turns off notifications while sharing screen during a Zoom call", "link": "https://extensions.gnome.org/extension/3988/zilence/", "shell_version_map": {
     "38": {"version": "4", "sha256": "18iy39i5i8ii2salpxnyin0bwfckl6kp2fzkkij3fqd0pga1frix", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1pdCI6ICIyNTU1ZGNhYjYxZTZiODBhZGFiYjM2NDM5MzEwMmY5MGU3MzhiOTRmIiwKICAiZGVzY3JpcHRpb24iOiAiVHVybnMgb2ZmIG5vdGlmaWNhdGlvbnMgd2hpbGUgc2hhcmluZyBzY3JlZW4gZHVyaW5nIGEgWm9vbSBjYWxsIiwKICAibmFtZSI6ICJaaWxlbmNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcGFua293c2tpL3ppbGVuY2UiLAogICJ1dWlkIjogInppbGVuY2VAYXBhbmtvd3NraS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="},
@@ -3098,7 +3124,7 @@
     "42": {"version": "13", "sha256": "0j23i2gl956r2wffqky5vg6ca24gn3hkibhrhsvkqd87g90cjdq6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIGx5cmljIG9mIHBsYXlpbmcgc29uZ3Mgb24gdGhlIGRlc2t0b3BcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlc2t0b3AtbHlyaWMiLAogICJuYW1lIjogIkRlc2t0b3AgTHlyaWMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGVza3RvcC1seXJpYyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2Rlc2t0b3AtbHlyaWMiLAogICJ1dWlkIjogImRlc2t0b3AtbHlyaWNAdHViZXJyeSIsCiAgInZlcnNpb24iOiAxMwp9"},
     "43": {"version": "16", "sha256": "1frahic00q1dqi27vbxw8y0dz1qcfd99m1kzha1r8pyfgwd22fqv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIGx5cmljIG9mIHBsYXlpbmcgc29uZ3Mgb24gdGhlIGRlc2t0b3BcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlc2t0b3AtbHlyaWMiLAogICJuYW1lIjogIkRlc2t0b3AgTHlyaWMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGVza3RvcC1seXJpYyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2Rlc2t0b3AtbHlyaWMiLAogICJ1dWlkIjogImRlc2t0b3AtbHlyaWNAdHViZXJyeSIsCiAgInZlcnNpb24iOiAxNgp9"},
     "45": {"version": "19", "sha256": "0p8rfw2yvx7cdm43wgjgml5hisijxwjsl8d6cg1aad9m3lc8d0pl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIGx5cmljIG9mIHBsYXlpbmcgc29uZ3Mgb24gdGhlIGRlc2t0b3BcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlc2t0b3AtbHlyaWMiLAogICJuYW1lIjogIkRlc2t0b3AgTHlyaWMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGVza3RvcC1seXJpYyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2Rlc2t0b3AtbHlyaWMiLAogICJ1dWlkIjogImRlc2t0b3AtbHlyaWNAdHViZXJyeSIsCiAgInZlcnNpb24iOiAxOQp9"},
-    "46": {"version": "20", "sha256": "0g4a3mfnmj81qhb90hyp9hrzr5vr4r8dr458nkvk28qh9l9vbzb3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIGx5cmljIG9mIHBsYXlpbmcgc29uZ3Mgb24gdGhlIGRlc2t0b3BcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlc2t0b3AtbHlyaWMiLAogICJuYW1lIjogIkRlc2t0b3AgTHlyaWMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGVza3RvcC1seXJpYyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2Rlc2t0b3AtbHlyaWMiLAogICJ1dWlkIjogImRlc2t0b3AtbHlyaWNAdHViZXJyeSIsCiAgInZlcnNpb24iOiAyMAp9"}
+    "46": {"version": "21", "sha256": "0c94q497q3zl2r7a0vdyip31mj1f4z8a0sidngib1j2pxpp6pvk6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIGx5cmljIG9mIHBsYXlpbmcgc29uZ3Mgb24gdGhlIGRlc2t0b3BcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlc2t0b3AtbHlyaWMiLAogICJuYW1lIjogIkRlc2t0b3AgTHlyaWMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGVza3RvcC1seXJpYyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2Rlc2t0b3AtbHlyaWMiLAogICJ1dWlkIjogImRlc2t0b3AtbHlyaWNAdHViZXJyeSIsCiAgInZlcnNpb24iOiAyMQp9"}
   }}
 , {"uuid": "alttab-mod@leleat-on-github", "name": "AltTab Mod", "pname": "alttab-mod", "description": "Add some QoL changes to the App Switcher (Alt/Super+Tab)...\n- use `WASD`, `hjkl` or the arrow keys for navigation\n- `Q` only closes the selected window instead of the entire app\n- only raise the first window instead of every instance\n- optionally: only show windows from the current workspace\n- optionally: only show windows from the current monitor\n- optionally: remove the App Switcher's delayed appearance", "link": "https://extensions.gnome.org/extension/4007/alttab-mod/", "shell_version_map": {
     "38": {"version": "6", "sha256": "1010nmdyga6lqk78vlc9r02h3kcgimlvamb7xhp5vw7i71gay4jv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBzb21lIFFvTCBjaGFuZ2VzIHRvIHRoZSBBcHAgU3dpdGNoZXIgKEFsdC9TdXBlcitUYWIpLi4uXG4tIHVzZSBgV0FTRGAsIGBoamtsYCBvciB0aGUgYXJyb3cga2V5cyBmb3IgbmF2aWdhdGlvblxuLSBgUWAgb25seSBjbG9zZXMgdGhlIHNlbGVjdGVkIHdpbmRvdyBpbnN0ZWFkIG9mIHRoZSBlbnRpcmUgYXBwXG4tIG9ubHkgcmFpc2UgdGhlIGZpcnN0IHdpbmRvdyBpbnN0ZWFkIG9mIGV2ZXJ5IGluc3RhbmNlXG4tIG9wdGlvbmFsbHk6IG9ubHkgc2hvdyB3aW5kb3dzIGZyb20gdGhlIGN1cnJlbnQgd29ya3NwYWNlXG4tIG9wdGlvbmFsbHk6IG9ubHkgc2hvdyB3aW5kb3dzIGZyb20gdGhlIGN1cnJlbnQgbW9uaXRvclxuLSBvcHRpb25hbGx5OiByZW1vdmUgdGhlIEFwcCBTd2l0Y2hlcidzIGRlbGF5ZWQgYXBwZWFyYW5jZSIsCiAgIm5hbWUiOiAiQWx0VGFiIE1vZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTGVsZWF0L0FsdFRhYi1Nb2QiLAogICJ1dWlkIjogImFsdHRhYi1tb2RAbGVsZWF0LW9uLWdpdGh1YiIsCiAgInZlcnNpb24iOiA2Cn0="},
@@ -3270,9 +3296,13 @@
   }}
 , {"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": "071x3q6y7s8qx4i3lis79g5nc68ld8ln5q8qgc713nvjgfsg05hs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAiVHJhbnNsYXRlIGNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xzbm93L3RyYW5zbGF0ZS1jbGlwYm9hcmQiLAogICJ1dWlkIjogInRyYW5zbGF0ZS1jbGlwYm9hcmRAbHNub3cuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDEKfQ=="},
-    "40": {"version": "16", "sha256": "11r7r4azaf94f453ima2sms0ycaygh0l3k30dm5zpbkdp4pbczbh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAiVHJhbnNsYXRlIGNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDEuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xzbm93L3RyYW5zbGF0ZS1jbGlwYm9hcmQiLAogICJ1dWlkIjogInRyYW5zbGF0ZS1jbGlwYm9hcmRAbHNub3cuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDE2Cn0="},
-    "41": {"version": "16", "sha256": "11r7r4azaf94f453ima2sms0ycaygh0l3k30dm5zpbkdp4pbczbh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAiVHJhbnNsYXRlIGNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDEuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xzbm93L3RyYW5zbGF0ZS1jbGlwYm9hcmQiLAogICJ1dWlkIjogInRyYW5zbGF0ZS1jbGlwYm9hcmRAbHNub3cuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDE2Cn0="},
-    "42": {"version": "17", "sha256": "0rq6fc479x0hjkbam37pcnax909bssybz1ibnn7a0nx1ai9zkxr7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAiVHJhbnNsYXRlIGNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9sc25vdy90cmFuc2xhdGUtY2xpcGJvYXJkIiwKICAidXVpZCI6ICJ0cmFuc2xhdGUtY2xpcGJvYXJkQGxzbm93LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxNwp9"}
+    "40": {"version": "19", "sha256": "0zh3vmyag819qjl2f1gnsa3aaa67z2ga10l18r9phdrvg9fh2q28", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAiVHJhbnNsYXRlIGNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHNub3cvdHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInV1aWQiOiAidHJhbnNsYXRlLWNsaXBib2FyZEBsc25vdy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTkKfQ=="},
+    "41": {"version": "19", "sha256": "0zh3vmyag819qjl2f1gnsa3aaa67z2ga10l18r9phdrvg9fh2q28", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAiVHJhbnNsYXRlIGNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHNub3cvdHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInV1aWQiOiAidHJhbnNsYXRlLWNsaXBib2FyZEBsc25vdy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTkKfQ=="},
+    "42": {"version": "19", "sha256": "0zh3vmyag819qjl2f1gnsa3aaa67z2ga10l18r9phdrvg9fh2q28", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAiVHJhbnNsYXRlIGNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHNub3cvdHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInV1aWQiOiAidHJhbnNsYXRlLWNsaXBib2FyZEBsc25vdy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTkKfQ=="},
+    "43": {"version": "19", "sha256": "0zh3vmyag819qjl2f1gnsa3aaa67z2ga10l18r9phdrvg9fh2q28", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAiVHJhbnNsYXRlIGNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHNub3cvdHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInV1aWQiOiAidHJhbnNsYXRlLWNsaXBib2FyZEBsc25vdy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTkKfQ=="},
+    "44": {"version": "19", "sha256": "0zh3vmyag819qjl2f1gnsa3aaa67z2ga10l18r9phdrvg9fh2q28", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAiVHJhbnNsYXRlIGNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHNub3cvdHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInV1aWQiOiAidHJhbnNsYXRlLWNsaXBib2FyZEBsc25vdy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTkKfQ=="},
+    "45": {"version": "23", "sha256": "0zbamf5a18zcs3akc4xlplzid8kbps3dnklfr4a7xwqym4s0nq89", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgImV4dGVuc2lvbi1pZCI6ICJ0cmFuc2xhdGUtY2xpcGJvYXJkIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiVHJhbnNsYXRlQ2xpcGJvYXJkIiwKICAibG9jYWxlIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJUcmFuc2xhdGUgY2xpcGJvYXJkIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRyYW5zbGF0ZS1jbGlwYm9hcmQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xzbm93L3RyYW5zbGF0ZS1jbGlwYm9hcmQiLAogICJ1dWlkIjogInRyYW5zbGF0ZS1jbGlwYm9hcmRAbHNub3cuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDIzCn0="},
+    "46": {"version": "23", "sha256": "0zbamf5a18zcs3akc4xlplzid8kbps3dnklfr4a7xwqym4s0nq89", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgImV4dGVuc2lvbi1pZCI6ICJ0cmFuc2xhdGUtY2xpcGJvYXJkIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiVHJhbnNsYXRlQ2xpcGJvYXJkIiwKICAibG9jYWxlIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJUcmFuc2xhdGUgY2xpcGJvYXJkIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRyYW5zbGF0ZS1jbGlwYm9hcmQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xzbm93L3RyYW5zbGF0ZS1jbGlwYm9hcmQiLAogICJ1dWlkIjogInRyYW5zbGF0ZS1jbGlwYm9hcmRAbHNub3cuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDIzCn0="}
   }}
 , {"uuid": "no-overview@fthx", "name": "No overview at start-up", "pname": "no-overview", "description": "No overview at start-up. Nothing more.", "link": "https://extensions.gnome.org/extension/4099/no-overview/", "shell_version_map": {
     "40": {"version": "13", "sha256": "18v54y1a4qrpq2gm65z0l13p02grjzcqa1xskn1bhwdy35pdal3n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vIG92ZXJ2aWV3IGF0IHN0YXJ0LXVwLiBGb3IgR05PTUUgU2hlbGwgNDArLiIsCiAgIm5hbWUiOiAiTm8gb3ZlcnZpZXcgYXQgc3RhcnQtdXAiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImZ0aHgiCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L25vLW92ZXJ2aWV3IiwKICAidXVpZCI6ICJuby1vdmVydmlld0BmdGh4IiwKICAidmVyc2lvbiI6IDEzCn0="},
@@ -3347,7 +3377,8 @@
     "42": {"version": "8", "sha256": "1c21nzky2sfrq8wkz26rn2gcyr81y1zb3r14pflwhl56f9bgbh0c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVzcHJlc3NvIGRpc2FibGVzIHRoZSB1c3VhbCBhdXRvIHN1c3BlbmQgYW5kIHNjcmVlbnNhdmVyIGZ1bmN0aW9uYWxpdHkgYW5kIG9wdGlvbmFsbHkgTmlnaHQgTGlnaHQgd2l0aCBvcHRpb25zIHRvIHNob3cgYW4gRXNwcmVzc28gaWNvbiBpbiB0aGUgdG9wIHBhbmVsLCB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBhIGZ1bGxzY3JlZW4gYXBwbGljYXRpb24gaXMgcnVubmluZywgdG8gcmVzdG9yZSBzdGF0ZSBhY3Jvc3MgcmVib290cywgdG8gcHJvdmlkZSBub3RpZmljYXRpb25zLCB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBzcGVjaWZpYyBhcHBsaWNhdGlvbnMgYXJlIHJ1bm5pbmcsIG9yIHRvIHBhdXNlIE5pZ2h0IExpZ2h0IHdoZW4gRXNwcmVzc28gaXMgZW5hYmxlZCBvciBvbmx5IHdoZW4gc3BlY2lmaWMgYXBwbGljYXRpb25zIGFyZSBydW5uaW5nLiBFc3ByZXNzbyBhbHNvIHByb3ZpZGVzIHNvbWUgc3VwcG9ydCBmb3IgZG9ja2luZyBzdGF0aW9ucyBpbmNsdWRpbmcgb3B0aW9ucyB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBjaGFyZ2luZyBhbmQvb3Igd2hlbiBkb2NrZWQgdG8gZXh0ZXJuYWwgbW9uaXRvcnMgYW5kIHRvIGFsbG93IHRlbXBvcmFyaWx5IG92ZXJyaWRpbmcgdGhlIGRvY2tpbmcgc3VwcG9ydCB3aXRob3V0IGFmZmVjdGluZyB0aGUgc3RvcmVkIHN0YXRlLlxuXG5Fc3ByZXNzbyBpcyBhIGZvcmsgb2YgdGhlIENhZmZlaW5lIGV4dGVuc2lvbi5cblxuUGxlYXNlIGxlYXZlIGZlZWRiYWNrIG9yIHJlcG9ydCBpc3N1ZXMgdGhyb3VnaCB0aGUgRXh0ZW5zaW9uIEhvbWVwYWdlIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWVzcHJlc3NvIiwKICAibmFtZSI6ICJFc3ByZXNzbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5lc3ByZXNzbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY29hZG11bmtlZS9nbm9tZS1zaGVsbC1leHRlbnNpb24tZXNwcmVzc28iLAogICJ1dWlkIjogImVzcHJlc3NvQGNvYWRtdW5rZWUuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="},
     "43": {"version": "8", "sha256": "1c21nzky2sfrq8wkz26rn2gcyr81y1zb3r14pflwhl56f9bgbh0c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVzcHJlc3NvIGRpc2FibGVzIHRoZSB1c3VhbCBhdXRvIHN1c3BlbmQgYW5kIHNjcmVlbnNhdmVyIGZ1bmN0aW9uYWxpdHkgYW5kIG9wdGlvbmFsbHkgTmlnaHQgTGlnaHQgd2l0aCBvcHRpb25zIHRvIHNob3cgYW4gRXNwcmVzc28gaWNvbiBpbiB0aGUgdG9wIHBhbmVsLCB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBhIGZ1bGxzY3JlZW4gYXBwbGljYXRpb24gaXMgcnVubmluZywgdG8gcmVzdG9yZSBzdGF0ZSBhY3Jvc3MgcmVib290cywgdG8gcHJvdmlkZSBub3RpZmljYXRpb25zLCB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBzcGVjaWZpYyBhcHBsaWNhdGlvbnMgYXJlIHJ1bm5pbmcsIG9yIHRvIHBhdXNlIE5pZ2h0IExpZ2h0IHdoZW4gRXNwcmVzc28gaXMgZW5hYmxlZCBvciBvbmx5IHdoZW4gc3BlY2lmaWMgYXBwbGljYXRpb25zIGFyZSBydW5uaW5nLiBFc3ByZXNzbyBhbHNvIHByb3ZpZGVzIHNvbWUgc3VwcG9ydCBmb3IgZG9ja2luZyBzdGF0aW9ucyBpbmNsdWRpbmcgb3B0aW9ucyB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBjaGFyZ2luZyBhbmQvb3Igd2hlbiBkb2NrZWQgdG8gZXh0ZXJuYWwgbW9uaXRvcnMgYW5kIHRvIGFsbG93IHRlbXBvcmFyaWx5IG92ZXJyaWRpbmcgdGhlIGRvY2tpbmcgc3VwcG9ydCB3aXRob3V0IGFmZmVjdGluZyB0aGUgc3RvcmVkIHN0YXRlLlxuXG5Fc3ByZXNzbyBpcyBhIGZvcmsgb2YgdGhlIENhZmZlaW5lIGV4dGVuc2lvbi5cblxuUGxlYXNlIGxlYXZlIGZlZWRiYWNrIG9yIHJlcG9ydCBpc3N1ZXMgdGhyb3VnaCB0aGUgRXh0ZW5zaW9uIEhvbWVwYWdlIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWVzcHJlc3NvIiwKICAibmFtZSI6ICJFc3ByZXNzbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5lc3ByZXNzbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY29hZG11bmtlZS9nbm9tZS1zaGVsbC1leHRlbnNpb24tZXNwcmVzc28iLAogICJ1dWlkIjogImVzcHJlc3NvQGNvYWRtdW5rZWUuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="},
     "44": {"version": "8", "sha256": "1c21nzky2sfrq8wkz26rn2gcyr81y1zb3r14pflwhl56f9bgbh0c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVzcHJlc3NvIGRpc2FibGVzIHRoZSB1c3VhbCBhdXRvIHN1c3BlbmQgYW5kIHNjcmVlbnNhdmVyIGZ1bmN0aW9uYWxpdHkgYW5kIG9wdGlvbmFsbHkgTmlnaHQgTGlnaHQgd2l0aCBvcHRpb25zIHRvIHNob3cgYW4gRXNwcmVzc28gaWNvbiBpbiB0aGUgdG9wIHBhbmVsLCB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBhIGZ1bGxzY3JlZW4gYXBwbGljYXRpb24gaXMgcnVubmluZywgdG8gcmVzdG9yZSBzdGF0ZSBhY3Jvc3MgcmVib290cywgdG8gcHJvdmlkZSBub3RpZmljYXRpb25zLCB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBzcGVjaWZpYyBhcHBsaWNhdGlvbnMgYXJlIHJ1bm5pbmcsIG9yIHRvIHBhdXNlIE5pZ2h0IExpZ2h0IHdoZW4gRXNwcmVzc28gaXMgZW5hYmxlZCBvciBvbmx5IHdoZW4gc3BlY2lmaWMgYXBwbGljYXRpb25zIGFyZSBydW5uaW5nLiBFc3ByZXNzbyBhbHNvIHByb3ZpZGVzIHNvbWUgc3VwcG9ydCBmb3IgZG9ja2luZyBzdGF0aW9ucyBpbmNsdWRpbmcgb3B0aW9ucyB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBjaGFyZ2luZyBhbmQvb3Igd2hlbiBkb2NrZWQgdG8gZXh0ZXJuYWwgbW9uaXRvcnMgYW5kIHRvIGFsbG93IHRlbXBvcmFyaWx5IG92ZXJyaWRpbmcgdGhlIGRvY2tpbmcgc3VwcG9ydCB3aXRob3V0IGFmZmVjdGluZyB0aGUgc3RvcmVkIHN0YXRlLlxuXG5Fc3ByZXNzbyBpcyBhIGZvcmsgb2YgdGhlIENhZmZlaW5lIGV4dGVuc2lvbi5cblxuUGxlYXNlIGxlYXZlIGZlZWRiYWNrIG9yIHJlcG9ydCBpc3N1ZXMgdGhyb3VnaCB0aGUgRXh0ZW5zaW9uIEhvbWVwYWdlIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWVzcHJlc3NvIiwKICAibmFtZSI6ICJFc3ByZXNzbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5lc3ByZXNzbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY29hZG11bmtlZS9nbm9tZS1zaGVsbC1leHRlbnNpb24tZXNwcmVzc28iLAogICJ1dWlkIjogImVzcHJlc3NvQGNvYWRtdW5rZWUuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="},
-    "45": {"version": "9", "sha256": "11xhng0wczh5518yqnzqkkf3n1v84r7f9dgjpgmd1hvccnbsmjl3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVzcHJlc3NvIGRpc2FibGVzIHRoZSB1c3VhbCBhdXRvIHN1c3BlbmQgYW5kIHNjcmVlbnNhdmVyIGZ1bmN0aW9uYWxpdHkgYW5kIG9wdGlvbmFsbHkgTmlnaHQgTGlnaHQgd2l0aCBvcHRpb25zIHRvIHNob3cgYW4gRXNwcmVzc28gaWNvbiBpbiB0aGUgdG9wIHBhbmVsLCB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBhIGZ1bGxzY3JlZW4gYXBwbGljYXRpb24gaXMgcnVubmluZywgdG8gcmVzdG9yZSBzdGF0ZSBhY3Jvc3MgcmVib290cywgdG8gcHJvdmlkZSBub3RpZmljYXRpb25zLCB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBzcGVjaWZpYyBhcHBsaWNhdGlvbnMgYXJlIHJ1bm5pbmcsIG9yIHRvIHBhdXNlIE5pZ2h0IExpZ2h0IHdoZW4gRXNwcmVzc28gaXMgZW5hYmxlZCBvciBvbmx5IHdoZW4gc3BlY2lmaWMgYXBwbGljYXRpb25zIGFyZSBydW5uaW5nLiBFc3ByZXNzbyBhbHNvIHByb3ZpZGVzIHNvbWUgc3VwcG9ydCBmb3IgZG9ja2luZyBzdGF0aW9ucyBpbmNsdWRpbmcgb3B0aW9ucyB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBjaGFyZ2luZyBhbmQvb3Igd2hlbiBkb2NrZWQgdG8gZXh0ZXJuYWwgbW9uaXRvcnMgYW5kIHRvIGFsbG93IHRlbXBvcmFyaWx5IG92ZXJyaWRpbmcgdGhlIGRvY2tpbmcgc3VwcG9ydCB3aXRob3V0IGFmZmVjdGluZyB0aGUgc3RvcmVkIHN0YXRlLlxuXG5Fc3ByZXNzbyBpcyBhIGZvcmsgb2YgdGhlIENhZmZlaW5lIGV4dGVuc2lvbi5cblxuUGxlYXNlIGxlYXZlIGZlZWRiYWNrIG9yIHJlcG9ydCBpc3N1ZXMgdGhyb3VnaCB0aGUgRXh0ZW5zaW9uIEhvbWVwYWdlIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWVzcHJlc3NvIiwKICAibmFtZSI6ICJFc3ByZXNzbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5lc3ByZXNzbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb2FkbXVua2VlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1lc3ByZXNzbyIsCiAgInV1aWQiOiAiZXNwcmVzc29AY29hZG11bmtlZS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDkKfQ=="}
+    "45": {"version": "9", "sha256": "11xhng0wczh5518yqnzqkkf3n1v84r7f9dgjpgmd1hvccnbsmjl3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVzcHJlc3NvIGRpc2FibGVzIHRoZSB1c3VhbCBhdXRvIHN1c3BlbmQgYW5kIHNjcmVlbnNhdmVyIGZ1bmN0aW9uYWxpdHkgYW5kIG9wdGlvbmFsbHkgTmlnaHQgTGlnaHQgd2l0aCBvcHRpb25zIHRvIHNob3cgYW4gRXNwcmVzc28gaWNvbiBpbiB0aGUgdG9wIHBhbmVsLCB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBhIGZ1bGxzY3JlZW4gYXBwbGljYXRpb24gaXMgcnVubmluZywgdG8gcmVzdG9yZSBzdGF0ZSBhY3Jvc3MgcmVib290cywgdG8gcHJvdmlkZSBub3RpZmljYXRpb25zLCB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBzcGVjaWZpYyBhcHBsaWNhdGlvbnMgYXJlIHJ1bm5pbmcsIG9yIHRvIHBhdXNlIE5pZ2h0IExpZ2h0IHdoZW4gRXNwcmVzc28gaXMgZW5hYmxlZCBvciBvbmx5IHdoZW4gc3BlY2lmaWMgYXBwbGljYXRpb25zIGFyZSBydW5uaW5nLiBFc3ByZXNzbyBhbHNvIHByb3ZpZGVzIHNvbWUgc3VwcG9ydCBmb3IgZG9ja2luZyBzdGF0aW9ucyBpbmNsdWRpbmcgb3B0aW9ucyB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBjaGFyZ2luZyBhbmQvb3Igd2hlbiBkb2NrZWQgdG8gZXh0ZXJuYWwgbW9uaXRvcnMgYW5kIHRvIGFsbG93IHRlbXBvcmFyaWx5IG92ZXJyaWRpbmcgdGhlIGRvY2tpbmcgc3VwcG9ydCB3aXRob3V0IGFmZmVjdGluZyB0aGUgc3RvcmVkIHN0YXRlLlxuXG5Fc3ByZXNzbyBpcyBhIGZvcmsgb2YgdGhlIENhZmZlaW5lIGV4dGVuc2lvbi5cblxuUGxlYXNlIGxlYXZlIGZlZWRiYWNrIG9yIHJlcG9ydCBpc3N1ZXMgdGhyb3VnaCB0aGUgRXh0ZW5zaW9uIEhvbWVwYWdlIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWVzcHJlc3NvIiwKICAibmFtZSI6ICJFc3ByZXNzbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5lc3ByZXNzbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb2FkbXVua2VlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1lc3ByZXNzbyIsCiAgInV1aWQiOiAiZXNwcmVzc29AY29hZG11bmtlZS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDkKfQ=="},
+    "46": {"version": "10", "sha256": "0yd24zg16z9hwbsnfamq32qwr2drx8d2pp2d44m0xfhwrvkghxsm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVzcHJlc3NvIGRpc2FibGVzIHRoZSB1c3VhbCBhdXRvIHN1c3BlbmQgYW5kIHNjcmVlbnNhdmVyIGZ1bmN0aW9uYWxpdHkgYW5kIG9wdGlvbmFsbHkgTmlnaHQgTGlnaHQgd2l0aCBvcHRpb25zIHRvIHNob3cgYW4gRXNwcmVzc28gaWNvbiBpbiB0aGUgdG9wIHBhbmVsLCB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBhIGZ1bGxzY3JlZW4gYXBwbGljYXRpb24gaXMgcnVubmluZywgdG8gcmVzdG9yZSBzdGF0ZSBhY3Jvc3MgcmVib290cywgdG8gcHJvdmlkZSBub3RpZmljYXRpb25zLCB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBzcGVjaWZpYyBhcHBsaWNhdGlvbnMgYXJlIHJ1bm5pbmcsIG9yIHRvIHBhdXNlIE5pZ2h0IExpZ2h0IHdoZW4gRXNwcmVzc28gaXMgZW5hYmxlZCBvciBvbmx5IHdoZW4gc3BlY2lmaWMgYXBwbGljYXRpb25zIGFyZSBydW5uaW5nLiBFc3ByZXNzbyBhbHNvIHByb3ZpZGVzIHNvbWUgc3VwcG9ydCBmb3IgZG9ja2luZyBzdGF0aW9ucyBpbmNsdWRpbmcgb3B0aW9ucyB0byBlbmFibGUgRXNwcmVzc28gd2hlbiBjaGFyZ2luZyBhbmQvb3Igd2hlbiBkb2NrZWQgdG8gZXh0ZXJuYWwgbW9uaXRvcnMgYW5kIHRvIGFsbG93IHRlbXBvcmFyaWx5IG92ZXJyaWRpbmcgdGhlIGRvY2tpbmcgc3VwcG9ydCB3aXRob3V0IGFmZmVjdGluZyB0aGUgc3RvcmVkIHN0YXRlLlxuXG5Fc3ByZXNzbyBpcyBhIGZvcmsgb2YgdGhlIENhZmZlaW5lIGV4dGVuc2lvbi5cblxuUGxlYXNlIGxlYXZlIGZlZWRiYWNrIG9yIHJlcG9ydCBpc3N1ZXMgdGhyb3VnaCB0aGUgRXh0ZW5zaW9uIEhvbWVwYWdlIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWVzcHJlc3NvIiwKICAibmFtZSI6ICJFc3ByZXNzbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5lc3ByZXNzbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb2FkbXVua2VlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1lc3ByZXNzbyIsCiAgInV1aWQiOiAiZXNwcmVzc29AY29hZG11bmtlZS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}
   }}
 , {"uuid": "salat-dz@salat-dz.com", "name": "Salat Dz", "pname": "salat-dz", "description": "Show next salat using Salat Dz API", "link": "https://extensions.gnome.org/extension/4136/salat-dz/", "shell_version_map": {
     "38": {"version": "1", "sha256": "1kga5w2yp375h6lj3fmzr1agg43phyj5f45d7hjv04c405d32p8s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgbmV4dCBzYWxhdCB1c2luZyBTYWxhdCBEeiBBUEkiLAogICJuYW1lIjogIlNhbGF0IER6IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL3NhbGF0LnB5dGhvbmFueXdoZXJlLmNvbSIsCiAgInV1aWQiOiAic2FsYXQtZHpAc2FsYXQtZHouY29tIiwKICAidmVyc2lvbiI6IDEKfQ=="}
@@ -3400,7 +3431,7 @@
     "40": {"version": "6", "sha256": "0pazjbi0aikpnvnfxyamqy70xi1xclydyxdkf908c6ybwnc5956z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmVzIHRoZSB3aW5kb3cgc3dpdGNoZXIgb24gZHVhbCAob3IgbW9yZSkgbW9uaXRvciBzZXR1cHMiLAogICJuYW1lIjogIk1vbml0b3Igd2luZG93IHN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nZWR6ZXBwZWxpbi9tb25pdG9yLXdpbmRvdy1zd2l0Y2hlciIsCiAgInV1aWQiOiAibW9uaXRvci13aW5kb3ctc3dpdGNoZXJAdGhlZnVuZ3Vzcm9ja2V0LmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="},
     "41": {"version": "6", "sha256": "0pazjbi0aikpnvnfxyamqy70xi1xclydyxdkf908c6ybwnc5956z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmVzIHRoZSB3aW5kb3cgc3dpdGNoZXIgb24gZHVhbCAob3IgbW9yZSkgbW9uaXRvciBzZXR1cHMiLAogICJuYW1lIjogIk1vbml0b3Igd2luZG93IHN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nZWR6ZXBwZWxpbi9tb25pdG9yLXdpbmRvdy1zd2l0Y2hlciIsCiAgInV1aWQiOiAibW9uaXRvci13aW5kb3ctc3dpdGNoZXJAdGhlZnVuZ3Vzcm9ja2V0LmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}
   }}
-, {"uuid": "custom-hot-corners-extended@G-dH.github.com", "name": "Custom Hot Corners - Extended", "pname": "custom-hot-corners-extended", "description": "Give a function to any corner or edge of your monitors and enhance your keyboard capabilities\n\nMouse pointer pressure, clicks, and scrolls over the monitor corners/edges, or custom keyboard shortcuts can trigger dozens of built-in actions that help you navigate and control your desktop environment or execute your own shell commands.\n\nA significant portion of available actions includes visual adjustments (contrast, brightness, opacity) and color filters (red, green, desaturation, lightness, color inversions) and also accessibility features.\n\nDo not update extensions from this site, GNOME Shell will do it automatically on the next session start.\n\nPlease report bugs on GitHub page linked below as Extension Homepage.\n\nkeywords: keyboard shortcut, switch windows, overview, app grid, command, brightness, contrast, transparent, opacity, color effect, invert lightness, color tint, color blind filter, simulation, desaturate, night lights, dark theme, volume, mute, magnifier, zoom, screen keyboard, reader, large text, force close, kill -9, show desktop, reorder workspace, window thumbnail, preview, looking glass, custom menu, window, workspace, switcher, hide panel", "link": "https://extensions.gnome.org/extension/4167/custom-hot-corners-extended/", "shell_version_map": {
+, {"uuid": "custom-hot-corners-extended@G-dH.github.com", "name": "CHC-E (Custom Hot Corners - Extended)", "pname": "custom-hot-corners-extended", "description": "Give a function to any corner or edge of your monitors and enhance your keyboard capabilities\n\nMouse pointer pressure, clicks, and scrolls over the monitor corners/edges, or custom keyboard shortcuts can trigger dozens of built-in actions that help you navigate and control your desktop environment or execute your own shell commands.\n\nA significant portion of available actions includes visual adjustments (contrast, brightness, opacity) and color filters (red, green, desaturation, lightness, color inversions) and also accessibility features.\n\nDo not update extensions from this site, GNOME Shell will do it automatically on the next session start.\n\nPlease report bugs on GitHub page linked below as Extension Homepage.\n\nkeywords: keyboard shortcut, switch windows, overview, app grid, command, brightness, contrast, transparent, opacity, color effect, invert lightness, color tint, color blind filter, simulation, desaturate, night lights, dark theme, volume, mute, magnifier, zoom, screen keyboard, reader, large text, force close, kill -9, show desktop, reorder workspace, window thumbnail, preview, looking glass, custom menu, window, workspace, switcher, hide panel", "link": "https://extensions.gnome.org/extension/4167/custom-hot-corners-extended/", "shell_version_map": {
     "38": {"version": "37", "sha256": "0jsnvrics52wq50y4bslix8kbpiwbkj56mjqh6mvqxfpk2a4mx94", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdpdmUgYSBmdW5jdGlvbiB0byBhbnkgY29ybmVyIG9yIGVkZ2Ugb2YgeW91ciBtb25pdG9ycyBhbmQgZXhwYW5kIHlvdXIga2V5Ym9hcmQgY2FwYWJpbGl0aWVzLlxuTW91c2UgcG9pbnRlciBwcmVzc3VyZSwgY2xpY2tzIGFuZCBzY3JvbGxzIG92ZXIgdGhlIG1vbml0b3IgY29ybmVycy9lZGdlcyBvciBjdXN0b20ga2V5Ym9hcmQgc2hvcnRjdXRzIGNhbiB0cmlnZ2VyIGFueSBvZiBkb3plbnMgYnVpbHQtaW4gYWN0aW9ucyB0aGF0IGhlbHBzIHlvdSBuYXZpZ2F0ZSBhbmQgY29udHJvbCB5b3VyIGRlc2t0b3AgZW52aXJvbm1lbnQsIG9yIHlvdXIgb3duIHNoZWxsIGNvbW1hbmRzLlxuXG5TaWduaWZpY2FudCBwYXJ0IG9mIGF2YWlsYWJsZSBhY3Rpb25zIGFyZSB2aXN1YWwgYWRqdXN0bWVudHMgKGNvbnRyYXN0LCBicmlnaHRuZXNzLCBvcGFjaXR5KSBhbmQgY29sb3IgZmlsdGVycyAocmVkLCBncmVlbiwgZGVzYXR1cmF0ZSwgbGlnaHRuZXNzIGFuZCBjb2xvciBpbnZlcnNpb25zKSAsIGluY2x1ZGluZyBjb3JyZWN0aW9uIGZpbHRlcnMgZm9yIGNvbG9yYmxpbmQgdXNlcnMgYW5kIGNiIHNpbXVsYXRpb24gZmlsdGVycyBmb3IgZGV2ZWxvcGVycy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImdlb3JnZGgiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9tLWhvdC1jb3JuZXJzLWV4dGVuZGVkIiwKICAibmFtZSI6ICJDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvY3VzdG9tLWhvdC1jb3JuZXJzIiwKICAidXVpZCI6ICJjdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWRARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDM3LAogICJ2ZXJzaW9uLW5hbWUiOiAiNDQuMiIKfQ=="},
     "40": {"version": "37", "sha256": "0jsnvrics52wq50y4bslix8kbpiwbkj56mjqh6mvqxfpk2a4mx94", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdpdmUgYSBmdW5jdGlvbiB0byBhbnkgY29ybmVyIG9yIGVkZ2Ugb2YgeW91ciBtb25pdG9ycyBhbmQgZXhwYW5kIHlvdXIga2V5Ym9hcmQgY2FwYWJpbGl0aWVzLlxuTW91c2UgcG9pbnRlciBwcmVzc3VyZSwgY2xpY2tzIGFuZCBzY3JvbGxzIG92ZXIgdGhlIG1vbml0b3IgY29ybmVycy9lZGdlcyBvciBjdXN0b20ga2V5Ym9hcmQgc2hvcnRjdXRzIGNhbiB0cmlnZ2VyIGFueSBvZiBkb3plbnMgYnVpbHQtaW4gYWN0aW9ucyB0aGF0IGhlbHBzIHlvdSBuYXZpZ2F0ZSBhbmQgY29udHJvbCB5b3VyIGRlc2t0b3AgZW52aXJvbm1lbnQsIG9yIHlvdXIgb3duIHNoZWxsIGNvbW1hbmRzLlxuXG5TaWduaWZpY2FudCBwYXJ0IG9mIGF2YWlsYWJsZSBhY3Rpb25zIGFyZSB2aXN1YWwgYWRqdXN0bWVudHMgKGNvbnRyYXN0LCBicmlnaHRuZXNzLCBvcGFjaXR5KSBhbmQgY29sb3IgZmlsdGVycyAocmVkLCBncmVlbiwgZGVzYXR1cmF0ZSwgbGlnaHRuZXNzIGFuZCBjb2xvciBpbnZlcnNpb25zKSAsIGluY2x1ZGluZyBjb3JyZWN0aW9uIGZpbHRlcnMgZm9yIGNvbG9yYmxpbmQgdXNlcnMgYW5kIGNiIHNpbXVsYXRpb24gZmlsdGVycyBmb3IgZGV2ZWxvcGVycy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImdlb3JnZGgiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9tLWhvdC1jb3JuZXJzLWV4dGVuZGVkIiwKICAibmFtZSI6ICJDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvY3VzdG9tLWhvdC1jb3JuZXJzIiwKICAidXVpZCI6ICJjdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWRARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDM3LAogICJ2ZXJzaW9uLW5hbWUiOiAiNDQuMiIKfQ=="},
     "41": {"version": "37", "sha256": "0jsnvrics52wq50y4bslix8kbpiwbkj56mjqh6mvqxfpk2a4mx94", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdpdmUgYSBmdW5jdGlvbiB0byBhbnkgY29ybmVyIG9yIGVkZ2Ugb2YgeW91ciBtb25pdG9ycyBhbmQgZXhwYW5kIHlvdXIga2V5Ym9hcmQgY2FwYWJpbGl0aWVzLlxuTW91c2UgcG9pbnRlciBwcmVzc3VyZSwgY2xpY2tzIGFuZCBzY3JvbGxzIG92ZXIgdGhlIG1vbml0b3IgY29ybmVycy9lZGdlcyBvciBjdXN0b20ga2V5Ym9hcmQgc2hvcnRjdXRzIGNhbiB0cmlnZ2VyIGFueSBvZiBkb3plbnMgYnVpbHQtaW4gYWN0aW9ucyB0aGF0IGhlbHBzIHlvdSBuYXZpZ2F0ZSBhbmQgY29udHJvbCB5b3VyIGRlc2t0b3AgZW52aXJvbm1lbnQsIG9yIHlvdXIgb3duIHNoZWxsIGNvbW1hbmRzLlxuXG5TaWduaWZpY2FudCBwYXJ0IG9mIGF2YWlsYWJsZSBhY3Rpb25zIGFyZSB2aXN1YWwgYWRqdXN0bWVudHMgKGNvbnRyYXN0LCBicmlnaHRuZXNzLCBvcGFjaXR5KSBhbmQgY29sb3IgZmlsdGVycyAocmVkLCBncmVlbiwgZGVzYXR1cmF0ZSwgbGlnaHRuZXNzIGFuZCBjb2xvciBpbnZlcnNpb25zKSAsIGluY2x1ZGluZyBjb3JyZWN0aW9uIGZpbHRlcnMgZm9yIGNvbG9yYmxpbmQgdXNlcnMgYW5kIGNiIHNpbXVsYXRpb24gZmlsdGVycyBmb3IgZGV2ZWxvcGVycy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImdlb3JnZGgiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9tLWhvdC1jb3JuZXJzLWV4dGVuZGVkIiwKICAibmFtZSI6ICJDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvY3VzdG9tLWhvdC1jb3JuZXJzIiwKICAidXVpZCI6ICJjdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWRARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDM3LAogICJ2ZXJzaW9uLW5hbWUiOiAiNDQuMiIKfQ=="},
@@ -3468,7 +3499,7 @@
     "38": {"version": "1", "sha256": "1awjnic8zca2f6viah2l4ai0pyfdyisxna9ys1zzpya11rwj6jk7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdGhhdCBhbGxvd3MgeW91IGRvIGhhdmUgaW5kZXBlbmRlbnQgYXBwIHN3aXRjaGVyIChhbHQtdGFiKSBmb3IgZWFjaCB3b3Jrc3BhY2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicHJpdmF0ZS1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiUHJpdmF0ZSBTd2l0Y2hlciIsCiAgInNjaGVtYS1pZCI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wcml2YXRlLXN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC5iZXRhIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tIiwKICAidXVpZCI6ICJwcml2YXRlLXN3aXRjaGVyQGR6aWJhbi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"},
     "40": {"version": "1", "sha256": "1awjnic8zca2f6viah2l4ai0pyfdyisxna9ys1zzpya11rwj6jk7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdGhhdCBhbGxvd3MgeW91IGRvIGhhdmUgaW5kZXBlbmRlbnQgYXBwIHN3aXRjaGVyIChhbHQtdGFiKSBmb3IgZWFjaCB3b3Jrc3BhY2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicHJpdmF0ZS1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiUHJpdmF0ZSBTd2l0Y2hlciIsCiAgInNjaGVtYS1pZCI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wcml2YXRlLXN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC5iZXRhIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tIiwKICAidXVpZCI6ICJwcml2YXRlLXN3aXRjaGVyQGR6aWJhbi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}
   }}
-, {"uuid": "colosseum@sereneblue", "name": "Colosseum", "pname": "colosseum", "description": "View live scores for your favorite sports teams.", "link": "https://extensions.gnome.org/extension/4207/colosseum/", "shell_version_map": {
+, {"uuid": "colosseum@sereneblue", "name": "Colosseum", "pname": "colosseum", "description": "View live scores for your favorite sports teams", "link": "https://extensions.gnome.org/extension/4207/colosseum/", "shell_version_map": {
     "40": {"version": "31", "sha256": "1c7753fyqqh8x3hnfahpqjwiqil8kirxcfkmm7z39pl7iairs0zs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpZXcgbGl2ZSBzY29yZXMgZm9yIHlvdXIgZmF2b3JpdGUgc3BvcnRzIHRlYW1zLiIsCiAgIm5hbWUiOiAiQ29sb3NzZXVtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1jb2xvc3NldW0iLAogICJ1dWlkIjogImNvbG9zc2V1bUBzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMxCn0="},
     "41": {"version": "31", "sha256": "1c7753fyqqh8x3hnfahpqjwiqil8kirxcfkmm7z39pl7iairs0zs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpZXcgbGl2ZSBzY29yZXMgZm9yIHlvdXIgZmF2b3JpdGUgc3BvcnRzIHRlYW1zLiIsCiAgIm5hbWUiOiAiQ29sb3NzZXVtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1jb2xvc3NldW0iLAogICJ1dWlkIjogImNvbG9zc2V1bUBzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMxCn0="},
     "42": {"version": "31", "sha256": "1c7753fyqqh8x3hnfahpqjwiqil8kirxcfkmm7z39pl7iairs0zs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpZXcgbGl2ZSBzY29yZXMgZm9yIHlvdXIgZmF2b3JpdGUgc3BvcnRzIHRlYW1zLiIsCiAgIm5hbWUiOiAiQ29sb3NzZXVtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXJlbmVibHVlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1jb2xvc3NldW0iLAogICJ1dWlkIjogImNvbG9zc2V1bUBzZXJlbmVibHVlIiwKICAidmVyc2lvbiI6IDMxCn0="},
@@ -3667,7 +3698,8 @@
     "42": {"version": "5", "sha256": "0hp3c7sq1kaxagiw88gm4rsqvi9mw83r3584sh8i7chrchjzdxxg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGhvdyBtYW55IHVzZXJzIGFyZSBjdXJyZW50bHkgb25saW5lIG9uIGEgbXVtYmxlIHNlcnZlciIsCiAgImdldHRleHQtZG9tYWluIjogIm11bWJsZS1waW5nIiwKICAibmFtZSI6ICJNdW1ibGVQaW5nIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm11bWJsZS1waW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXdlaWwvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW11bWJsZS1waW5nIiwKICAidXVpZCI6ICJtdW1ibGUtcGluZ0BtYXdlaWwuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="},
     "43": {"version": "5", "sha256": "0hp3c7sq1kaxagiw88gm4rsqvi9mw83r3584sh8i7chrchjzdxxg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGhvdyBtYW55IHVzZXJzIGFyZSBjdXJyZW50bHkgb25saW5lIG9uIGEgbXVtYmxlIHNlcnZlciIsCiAgImdldHRleHQtZG9tYWluIjogIm11bWJsZS1waW5nIiwKICAibmFtZSI6ICJNdW1ibGVQaW5nIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm11bWJsZS1waW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXdlaWwvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW11bWJsZS1waW5nIiwKICAidXVpZCI6ICJtdW1ibGUtcGluZ0BtYXdlaWwuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="},
     "44": {"version": "5", "sha256": "0hp3c7sq1kaxagiw88gm4rsqvi9mw83r3584sh8i7chrchjzdxxg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGhvdyBtYW55IHVzZXJzIGFyZSBjdXJyZW50bHkgb25saW5lIG9uIGEgbXVtYmxlIHNlcnZlciIsCiAgImdldHRleHQtZG9tYWluIjogIm11bWJsZS1waW5nIiwKICAibmFtZSI6ICJNdW1ibGVQaW5nIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm11bWJsZS1waW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXdlaWwvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW11bWJsZS1waW5nIiwKICAidXVpZCI6ICJtdW1ibGUtcGluZ0BtYXdlaWwuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="},
-    "45": {"version": "7", "sha256": "1fk0nrf7d95jrhav8dj54rnb845ynyqg2mry8vpiyfcwb3mgfl12", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGhvdyBtYW55IHVzZXJzIGFyZSBjdXJyZW50bHkgb25saW5lIG9uIGEgbXVtYmxlIHNlcnZlciIsCiAgImdldHRleHQtZG9tYWluIjogIm11bWJsZS1waW5nIiwKICAibmFtZSI6ICJNdW1ibGVQaW5nIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm11bWJsZS1waW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hd2VpbC9nbm9tZS1zaGVsbC1leHRlbnNpb24tbXVtYmxlLXBpbmciLAogICJ1dWlkIjogIm11bWJsZS1waW5nQG1hd2VpbC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="}
+    "45": {"version": "7", "sha256": "1fk0nrf7d95jrhav8dj54rnb845ynyqg2mry8vpiyfcwb3mgfl12", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGhvdyBtYW55IHVzZXJzIGFyZSBjdXJyZW50bHkgb25saW5lIG9uIGEgbXVtYmxlIHNlcnZlciIsCiAgImdldHRleHQtZG9tYWluIjogIm11bWJsZS1waW5nIiwKICAibmFtZSI6ICJNdW1ibGVQaW5nIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm11bWJsZS1waW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hd2VpbC9nbm9tZS1zaGVsbC1leHRlbnNpb24tbXVtYmxlLXBpbmciLAogICJ1dWlkIjogIm11bWJsZS1waW5nQG1hd2VpbC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="},
+    "46": {"version": "9", "sha256": "1rcp6nrfqk4di4m7angbh36pr6as57d8wkrq5c7av04s6aml9lhc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGhvdyBtYW55IHVzZXJzIGFyZSBjdXJyZW50bHkgb25saW5lIG9uIGEgbXVtYmxlIHNlcnZlciIsCiAgImdldHRleHQtZG9tYWluIjogIm11bWJsZS1waW5nIiwKICAibmFtZSI6ICJNdW1ibGVQaW5nIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm11bWJsZS1waW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hd2VpbC9nbm9tZS1zaGVsbC1leHRlbnNpb24tbXVtYmxlLXBpbmciLAogICJ1dWlkIjogIm11bWJsZS1waW5nQG1hd2VpbC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDkKfQ=="}
   }}
 , {"uuid": "simply.workspaces@andyrichardson.dev", "name": "Simply Workspaces", "pname": "simply-workspaces", "description": "Workspace indication with an i3/polybar style.", "link": "https://extensions.gnome.org/extension/4343/simply-workspaces/", "shell_version_map": {
     "40": {"version": "7", "sha256": "0s3a4pzmq6wycnwv0gn8sjiwqxa3csssb136c8srghdraicvq3f0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvcmtzcGFjZSBpbmRpY2F0aW9uIHdpdGggYW4gaTMvcG9seWJhciBzdHlsZS4iLAogICJuYW1lIjogIlNpbXBseSBXb3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FuZHlyaWNoYXJkc29uL3NpbXBseS13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJzaW1wbHkud29ya3NwYWNlc0BhbmR5cmljaGFyZHNvbi5kZXYiLAogICJ2ZXJzaW9uIjogNwp9"},
@@ -3722,10 +3754,10 @@
     "40": {"version": "19", "sha256": "1jagvd6a4xw0vm18qi6czfglp16bywms1y55vii2dwvb1xlm4sjz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbi1zYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIEFkZGl0aW9uYWxseSwgYSBjaGVjayBjb21tYW5kIG1heSBiZSBjb25maWd1cmVkIGJlZm9yZSBzaHV0ZG93bi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTaHV0ZG93blRpbWVyIiwKICAibmFtZSI6ICJTaHV0ZG93biBUaW1lciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaHV0ZG93bnRpbWVyLWRlbWluZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9EZW1pbmRlci9TaHV0ZG93blRpbWVyIiwKICAidXVpZCI6ICJTaHV0ZG93blRpbWVyQGRlbWluZGVyIiwKICAidmVyc2lvbiI6IDE5Cn0="},
     "41": {"version": "19", "sha256": "1jagvd6a4xw0vm18qi6czfglp16bywms1y55vii2dwvb1xlm4sjz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbi1zYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIEFkZGl0aW9uYWxseSwgYSBjaGVjayBjb21tYW5kIG1heSBiZSBjb25maWd1cmVkIGJlZm9yZSBzaHV0ZG93bi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTaHV0ZG93blRpbWVyIiwKICAibmFtZSI6ICJTaHV0ZG93biBUaW1lciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaHV0ZG93bnRpbWVyLWRlbWluZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9EZW1pbmRlci9TaHV0ZG93blRpbWVyIiwKICAidXVpZCI6ICJTaHV0ZG93blRpbWVyQGRlbWluZGVyIiwKICAidmVyc2lvbiI6IDE5Cn0="},
     "42": {"version": "31", "sha256": "1w0l81g1l21f9f6ga53dlp7y1wg5s1nxz67y990ywh9sp0n4dkac", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbi1zYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIEFkZGl0aW9uYWxseSwgYSBjaGVjayBjb21tYW5kIG1heSBiZSBjb25maWd1cmVkIGJlZm9yZSBzaHV0ZG93bi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTaHV0ZG93blRpbWVyIiwKICAibmFtZSI6ICJTaHV0ZG93biBUaW1lciIsCiAgInNlc3Npb24tbW9kZXMiOiBbCiAgICAidXNlciIsCiAgICAidW5sb2NrLWRpYWxvZyIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2h1dGRvd250aW1lci1kZW1pbmRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9EZW1pbmRlci9TaHV0ZG93blRpbWVyIiwKICAidXVpZCI6ICJTaHV0ZG93blRpbWVyQGRlbWluZGVyIiwKICAidmVyc2lvbiI6IDMxCn0="},
-    "43": {"version": "36", "sha256": "0f71payq0dvyyprrpl7yfzd5zq48kw26fd2vr36cjzcwrp9v6viz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbi1zYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIEFkZGl0aW9uYWxseSwgYSBjaGVjayBjb21tYW5kIG1heSBiZSBjb25maWd1cmVkIGJlZm9yZSBzaHV0ZG93bi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTaHV0ZG93blRpbWVyIiwKICAibmFtZSI6ICJTaHV0ZG93biBUaW1lciIsCiAgInNlc3Npb24tbW9kZXMiOiBbCiAgICAidXNlciIsCiAgICAidW5sb2NrLWRpYWxvZyIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2h1dGRvd250aW1lci1kZW1pbmRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRGVtaW5kZXIvU2h1dGRvd25UaW1lciIsCiAgInV1aWQiOiAiU2h1dGRvd25UaW1lckBkZW1pbmRlciIsCiAgInZlcnNpb24iOiAzNgp9"},
-    "44": {"version": "36", "sha256": "0f71payq0dvyyprrpl7yfzd5zq48kw26fd2vr36cjzcwrp9v6viz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbi1zYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIEFkZGl0aW9uYWxseSwgYSBjaGVjayBjb21tYW5kIG1heSBiZSBjb25maWd1cmVkIGJlZm9yZSBzaHV0ZG93bi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTaHV0ZG93blRpbWVyIiwKICAibmFtZSI6ICJTaHV0ZG93biBUaW1lciIsCiAgInNlc3Npb24tbW9kZXMiOiBbCiAgICAidXNlciIsCiAgICAidW5sb2NrLWRpYWxvZyIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2h1dGRvd250aW1lci1kZW1pbmRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRGVtaW5kZXIvU2h1dGRvd25UaW1lciIsCiAgInV1aWQiOiAiU2h1dGRvd25UaW1lckBkZW1pbmRlciIsCiAgInZlcnNpb24iOiAzNgp9"},
-    "45": {"version": "43", "sha256": "1yaj9rbkg4ijp4ki0x4qycfd28lmp4hjiyvgl71ldfsqqqaaqdbs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbi1zYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiU2h1dGRvd25UaW1lciIsCiAgIm5hbWUiOiAiU2h1dGRvd24gVGltZXIiLAogICJzZXNzaW9uLW1vZGVzIjogWwogICAgInVubG9jay1kaWFsb2ciLAogICAgInVzZXIiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNodXRkb3dudGltZXItZGVtaW5kZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0RlbWluZGVyL1NodXRkb3duVGltZXIiLAogICJ1dWlkIjogIlNodXRkb3duVGltZXJAZGVtaW5kZXIiLAogICJ2ZXJzaW9uIjogNDMKfQ=="},
-    "46": {"version": "43", "sha256": "1yaj9rbkg4ijp4ki0x4qycfd28lmp4hjiyvgl71ldfsqqqaaqdbs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbi1zYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiU2h1dGRvd25UaW1lciIsCiAgIm5hbWUiOiAiU2h1dGRvd24gVGltZXIiLAogICJzZXNzaW9uLW1vZGVzIjogWwogICAgInVubG9jay1kaWFsb2ciLAogICAgInVzZXIiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNodXRkb3dudGltZXItZGVtaW5kZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0RlbWluZGVyL1NodXRkb3duVGltZXIiLAogICJ1dWlkIjogIlNodXRkb3duVGltZXJAZGVtaW5kZXIiLAogICJ2ZXJzaW9uIjogNDMKfQ=="}
+    "43": {"version": "44", "sha256": "1r3c87nrpbf93b5clwm54f85hnp3xpbyi9faliq7p4l69w6hfkpk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbi1zYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIEFkZGl0aW9uYWxseSwgYSBjaGVjayBjb21tYW5kIG1heSBiZSBjb25maWd1cmVkIGJlZm9yZSBzaHV0ZG93bi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTaHV0ZG93blRpbWVyIiwKICAibmFtZSI6ICJTaHV0ZG93biBUaW1lciIsCiAgInNlc3Npb24tbW9kZXMiOiBbCiAgICAidW5sb2NrLWRpYWxvZyIsCiAgICAidXNlciIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2h1dGRvd250aW1lci1kZW1pbmRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRGVtaW5kZXIvU2h1dGRvd25UaW1lciIsCiAgInV1aWQiOiAiU2h1dGRvd25UaW1lckBkZW1pbmRlciIsCiAgInZlcnNpb24iOiA0NAp9"},
+    "44": {"version": "44", "sha256": "1r3c87nrpbf93b5clwm54f85hnp3xpbyi9faliq7p4l69w6hfkpk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbi1zYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIEFkZGl0aW9uYWxseSwgYSBjaGVjayBjb21tYW5kIG1heSBiZSBjb25maWd1cmVkIGJlZm9yZSBzaHV0ZG93bi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTaHV0ZG93blRpbWVyIiwKICAibmFtZSI6ICJTaHV0ZG93biBUaW1lciIsCiAgInNlc3Npb24tbW9kZXMiOiBbCiAgICAidW5sb2NrLWRpYWxvZyIsCiAgICAidXNlciIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2h1dGRvd250aW1lci1kZW1pbmRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRGVtaW5kZXIvU2h1dGRvd25UaW1lciIsCiAgInV1aWQiOiAiU2h1dGRvd25UaW1lckBkZW1pbmRlciIsCiAgInZlcnNpb24iOiA0NAp9"},
+    "45": {"version": "45", "sha256": "19s34qsbvynd6g0p917gnlabi45vy3an093lb7mnw658v9grskql", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbi1zYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiU2h1dGRvd25UaW1lciIsCiAgIm5hbWUiOiAiU2h1dGRvd24gVGltZXIiLAogICJzZXNzaW9uLW1vZGVzIjogWwogICAgInVubG9jay1kaWFsb2ciLAogICAgInVzZXIiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNodXRkb3dudGltZXItZGVtaW5kZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0RlbWluZGVyL1NodXRkb3duVGltZXIiLAogICJ1dWlkIjogIlNodXRkb3duVGltZXJAZGVtaW5kZXIiLAogICJ2ZXJzaW9uIjogNDUKfQ=="},
+    "46": {"version": "45", "sha256": "19s34qsbvynd6g0p917gnlabi45vy3an093lb7mnw658v9grskql", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3JlYm9vdC9zdXNwZW5kIHRoZSBkZXZpY2UgYWZ0ZXIgYSBzcGVjaWZpYyB0aW1lIG9yIHdha2Ugd2l0aCBhIHJ0YyBhbGFybS5cblxuVGhlIHNjcmVlbi1zYXZlciB3aWxsIG5vdCBpbnRlcnJ1cHQgdGhlIHRpbWVyLiBBIHByaXZpbGVnZWQgY29udHJvbCBzY3JpcHQgbWF5IGJlIGluc3RhbGxlZCB0byBjb250cm9sIHNodXRkb3duIGFuZCBydGN3YWtlIGFzIHVzZXIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiU2h1dGRvd25UaW1lciIsCiAgIm5hbWUiOiAiU2h1dGRvd24gVGltZXIiLAogICJzZXNzaW9uLW1vZGVzIjogWwogICAgInVubG9jay1kaWFsb2ciLAogICAgInVzZXIiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNodXRkb3dudGltZXItZGVtaW5kZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0RlbWluZGVyL1NodXRkb3duVGltZXIiLAogICJ1dWlkIjogIlNodXRkb3duVGltZXJAZGVtaW5kZXIiLAogICJ2ZXJzaW9uIjogNDUKfQ=="}
   }}
 , {"uuid": "docker_status2@gpouilloux", "name": "Docker Integration", "pname": "docker-integration", "description": "A status menu for managing docker containers.", "link": "https://extensions.gnome.org/extension/4374/docker-integration/", "shell_version_map": {
     "40": {"version": "1", "sha256": "1ia763h3wbc3d3p9ddb1b9rg5f486y5x3m2k4pblq9f9ca9cjrdy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc3RhdHVzIG1lbnUgZm9yIG1hbmFnaW5nIGRvY2tlciBjb250YWluZXJzLiIsCiAgIm5hbWUiOiAiRG9ja2VyIEludGVncmF0aW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ3BvdWlsbG91eC9nbm9tZS1zaGVsbC1leHRlbnNpb24tZG9ja2VyIiwKICAidXVpZCI6ICJkb2NrZXJfc3RhdHVzMkBncG91aWxsb3V4IiwKICAidmVyc2lvbiI6IDEKfQ=="}
@@ -3859,8 +3891,8 @@
     "42": {"version": "24", "sha256": "007yp741jl5n6bf1zi4h5w9zhbbm1gavzdgklmrwjj114r49dx2b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvZ28gTWVudSAtIE1lbnUgc2ltaWxhciB0byBBcHBsZSdzIG1hY09TIG1lbnUgZm9yIHRoZSBHTk9NRSBEZXNrdG9wXG5UaGlzIGV4dGVuc2lvbiBnaXZlcyBhIHNpbXBsZSBtZW51IGFsb25nIHdpdGggdGhlIGFiaWxpdHkgdG8gZ2V0IHRoZSBpY29uIG9mIHlvdXIgZGlzdHJvIG9uIHRvcCBsZWZ0IHBhcnQgb2YgdGhlIHBhbmVsIGZvciBhIGdyZWF0IGxvb2suXG5UaGUgSWNvbiBjYW4gYmUgY3VzdG9taXplZCB0aHJvdWdoIHNldHRpbmdzLCBpdCBoYXMgYm90aCBMaW51eCBhbmQgQlNEIGxvZ29zLlxuZm9yIG1vcmUgc2NyZWVuc2hvdHMsIHZpc2l0IEdpdEh1Yi5cblxuVGhlIGRlZmF1bHQgVGVybWluYWwgYW5kIFNvZnR3YXJlIGNlbnRlciBjYW4gYWxzbyBiZSBjaGFuZ2VkLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgLSBodHRwczovL2dpdGh1Yi5jb20vdG9mdXRlY2gvdG9mdW1lbnVcblxuVGhlIG9yaWdpbmFsIHByb2plY3QgaXMgbm8gbW9yZSBzdXBwb3J0ZWQgdGh1cyBJIG1hZGUgdGhpcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsb2dvLW1lbnUiLAogICJuYW1lIjogIkxvZ28gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sb2dvLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FyeWFuMjAvTG9nb21lbnUiLAogICJ1dWlkIjogImxvZ29tZW51QGFyeWFuX2siLAogICJ2ZXJzaW9uIjogMjQsCiAgInZlcnNpb24tbmFtZSI6ICIyMC5sZWdhY3kiCn0="},
     "43": {"version": "24", "sha256": "007yp741jl5n6bf1zi4h5w9zhbbm1gavzdgklmrwjj114r49dx2b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvZ28gTWVudSAtIE1lbnUgc2ltaWxhciB0byBBcHBsZSdzIG1hY09TIG1lbnUgZm9yIHRoZSBHTk9NRSBEZXNrdG9wXG5UaGlzIGV4dGVuc2lvbiBnaXZlcyBhIHNpbXBsZSBtZW51IGFsb25nIHdpdGggdGhlIGFiaWxpdHkgdG8gZ2V0IHRoZSBpY29uIG9mIHlvdXIgZGlzdHJvIG9uIHRvcCBsZWZ0IHBhcnQgb2YgdGhlIHBhbmVsIGZvciBhIGdyZWF0IGxvb2suXG5UaGUgSWNvbiBjYW4gYmUgY3VzdG9taXplZCB0aHJvdWdoIHNldHRpbmdzLCBpdCBoYXMgYm90aCBMaW51eCBhbmQgQlNEIGxvZ29zLlxuZm9yIG1vcmUgc2NyZWVuc2hvdHMsIHZpc2l0IEdpdEh1Yi5cblxuVGhlIGRlZmF1bHQgVGVybWluYWwgYW5kIFNvZnR3YXJlIGNlbnRlciBjYW4gYWxzbyBiZSBjaGFuZ2VkLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgLSBodHRwczovL2dpdGh1Yi5jb20vdG9mdXRlY2gvdG9mdW1lbnVcblxuVGhlIG9yaWdpbmFsIHByb2plY3QgaXMgbm8gbW9yZSBzdXBwb3J0ZWQgdGh1cyBJIG1hZGUgdGhpcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsb2dvLW1lbnUiLAogICJuYW1lIjogIkxvZ28gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sb2dvLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FyeWFuMjAvTG9nb21lbnUiLAogICJ1dWlkIjogImxvZ29tZW51QGFyeWFuX2siLAogICJ2ZXJzaW9uIjogMjQsCiAgInZlcnNpb24tbmFtZSI6ICIyMC5sZWdhY3kiCn0="},
     "44": {"version": "24", "sha256": "007yp741jl5n6bf1zi4h5w9zhbbm1gavzdgklmrwjj114r49dx2b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvZ28gTWVudSAtIE1lbnUgc2ltaWxhciB0byBBcHBsZSdzIG1hY09TIG1lbnUgZm9yIHRoZSBHTk9NRSBEZXNrdG9wXG5UaGlzIGV4dGVuc2lvbiBnaXZlcyBhIHNpbXBsZSBtZW51IGFsb25nIHdpdGggdGhlIGFiaWxpdHkgdG8gZ2V0IHRoZSBpY29uIG9mIHlvdXIgZGlzdHJvIG9uIHRvcCBsZWZ0IHBhcnQgb2YgdGhlIHBhbmVsIGZvciBhIGdyZWF0IGxvb2suXG5UaGUgSWNvbiBjYW4gYmUgY3VzdG9taXplZCB0aHJvdWdoIHNldHRpbmdzLCBpdCBoYXMgYm90aCBMaW51eCBhbmQgQlNEIGxvZ29zLlxuZm9yIG1vcmUgc2NyZWVuc2hvdHMsIHZpc2l0IEdpdEh1Yi5cblxuVGhlIGRlZmF1bHQgVGVybWluYWwgYW5kIFNvZnR3YXJlIGNlbnRlciBjYW4gYWxzbyBiZSBjaGFuZ2VkLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgLSBodHRwczovL2dpdGh1Yi5jb20vdG9mdXRlY2gvdG9mdW1lbnVcblxuVGhlIG9yaWdpbmFsIHByb2plY3QgaXMgbm8gbW9yZSBzdXBwb3J0ZWQgdGh1cyBJIG1hZGUgdGhpcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsb2dvLW1lbnUiLAogICJuYW1lIjogIkxvZ28gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sb2dvLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FyeWFuMjAvTG9nb21lbnUiLAogICJ1dWlkIjogImxvZ29tZW51QGFyeWFuX2siLAogICJ2ZXJzaW9uIjogMjQsCiAgInZlcnNpb24tbmFtZSI6ICIyMC5sZWdhY3kiCn0="},
-    "45": {"version": "29", "sha256": "06ws3pv2yw9vb2qc97b7pd622a7dvamflvd19pr5633wsagd8sza", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvZ28gTWVudSAtIE1lbnUgc2ltaWxhciB0byBBcHBsZSdzIG1hY09TIG1lbnUgZm9yIHRoZSBHTk9NRSBEZXNrdG9wXG5UaGlzIGV4dGVuc2lvbiBnaXZlcyBhIHNpbXBsZSBtZW51IGFsb25nIHdpdGggdGhlIGFiaWxpdHkgdG8gZ2V0IHRoZSBpY29uIG9mIHlvdXIgZGlzdHJvIG9uIHRvcCBsZWZ0IHBhcnQgb2YgdGhlIHBhbmVsIGZvciBhIGdyZWF0IGxvb2suXG5UaGUgSWNvbiBjYW4gYmUgY3VzdG9taXNlZCB0aHJvdWdoIHNldHRpbmdzLCBpdCBoYXMgYm90aCBMaW51eCBhbmQgQlNEIGxvZ29zLlxuRm9yIG1vcmUgc2NyZWVuc2hvdHMsIHZpc2l0IEdpdEh1Yi5cblxuVGhlICdBY3Rpdml0aWVzJyBpbmRpY2F0b3IgaXMgaGlkZGVuIGJ5IGRlZmF1bHQgYnV0IGNhbiBiZSBlbmFibGVkIHRocm91Z2ggc2V0dGluZ3MuXG5cblRoZSBkZWZhdWx0IFRlcm1pbmFsIGFuZCBTb2Z0d2FyZSBjZW50cmUgY2FuIGFsc28gYmUgY2hhbmdlZC5cblxuIEZvcmNlIFF1aXQgd29ya3Mgb24gV2F5bGFuZCBhbmQgWG9yZyIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAiYXJ5YW4yMCIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsb2dvLW1lbnUiLAogICJuYW1lIjogIkxvZ28gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sb2dvLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FyeWFuMjAvTG9nb21lbnUiLAogICJ1dWlkIjogImxvZ29tZW51QGFyeWFuX2siLAogICJ2ZXJzaW9uIjogMjksCiAgInZlcnNpb24tbmFtZSI6ICIyMi40Igp9"},
-    "46": {"version": "29", "sha256": "06ws3pv2yw9vb2qc97b7pd622a7dvamflvd19pr5633wsagd8sza", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvZ28gTWVudSAtIE1lbnUgc2ltaWxhciB0byBBcHBsZSdzIG1hY09TIG1lbnUgZm9yIHRoZSBHTk9NRSBEZXNrdG9wXG5UaGlzIGV4dGVuc2lvbiBnaXZlcyBhIHNpbXBsZSBtZW51IGFsb25nIHdpdGggdGhlIGFiaWxpdHkgdG8gZ2V0IHRoZSBpY29uIG9mIHlvdXIgZGlzdHJvIG9uIHRvcCBsZWZ0IHBhcnQgb2YgdGhlIHBhbmVsIGZvciBhIGdyZWF0IGxvb2suXG5UaGUgSWNvbiBjYW4gYmUgY3VzdG9taXNlZCB0aHJvdWdoIHNldHRpbmdzLCBpdCBoYXMgYm90aCBMaW51eCBhbmQgQlNEIGxvZ29zLlxuRm9yIG1vcmUgc2NyZWVuc2hvdHMsIHZpc2l0IEdpdEh1Yi5cblxuVGhlICdBY3Rpdml0aWVzJyBpbmRpY2F0b3IgaXMgaGlkZGVuIGJ5IGRlZmF1bHQgYnV0IGNhbiBiZSBlbmFibGVkIHRocm91Z2ggc2V0dGluZ3MuXG5cblRoZSBkZWZhdWx0IFRlcm1pbmFsIGFuZCBTb2Z0d2FyZSBjZW50cmUgY2FuIGFsc28gYmUgY2hhbmdlZC5cblxuIEZvcmNlIFF1aXQgd29ya3Mgb24gV2F5bGFuZCBhbmQgWG9yZyIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAiYXJ5YW4yMCIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsb2dvLW1lbnUiLAogICJuYW1lIjogIkxvZ28gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sb2dvLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FyeWFuMjAvTG9nb21lbnUiLAogICJ1dWlkIjogImxvZ29tZW51QGFyeWFuX2siLAogICJ2ZXJzaW9uIjogMjksCiAgInZlcnNpb24tbmFtZSI6ICIyMi40Igp9"}
+    "45": {"version": "30", "sha256": "0jg3c8xi4vnwx7gwzmvjz4hly7b6gdgqy2r5ln40gng55yxf2sbx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvZ28gTWVudSAtIE1lbnUgc2ltaWxhciB0byBBcHBsZSdzIG1hY09TIG1lbnUgZm9yIHRoZSBHTk9NRSBEZXNrdG9wXG5UaGlzIGV4dGVuc2lvbiBnaXZlcyBhIHNpbXBsZSBtZW51IGFsb25nIHdpdGggdGhlIGFiaWxpdHkgdG8gZ2V0IHRoZSBpY29uIG9mIHlvdXIgZGlzdHJvIG9uIHRvcCBsZWZ0IHBhcnQgb2YgdGhlIHBhbmVsIGZvciBhIGdyZWF0IGxvb2suXG5UaGUgSWNvbiBjYW4gYmUgY3VzdG9taXNlZCB0aHJvdWdoIHNldHRpbmdzLCBpdCBoYXMgYm90aCBMaW51eCBhbmQgQlNEIGxvZ29zLlxuRm9yIG1vcmUgc2NyZWVuc2hvdHMsIHZpc2l0IEdpdEh1Yi5cblxuVGhlICdBY3Rpdml0aWVzJyBpbmRpY2F0b3IgaXMgaGlkZGVuIGJ5IGRlZmF1bHQgYnV0IGNhbiBiZSBlbmFibGVkIHRocm91Z2ggc2V0dGluZ3MuXG5cblRoZSBkZWZhdWx0IFRlcm1pbmFsIGFuZCBTb2Z0d2FyZSBjZW50cmUgY2FuIGFsc28gYmUgY2hhbmdlZC5cblxuIEZvcmNlIFF1aXQgd29ya3Mgb24gV2F5bGFuZCBhbmQgWG9yZyIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAiYXJ5YW4yMCIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsb2dvLW1lbnUiLAogICJuYW1lIjogIkxvZ28gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sb2dvLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FyeWFuMjAvTG9nb21lbnUiLAogICJ1dWlkIjogImxvZ29tZW51QGFyeWFuX2siLAogICJ2ZXJzaW9uIjogMzAsCiAgInZlcnNpb24tbmFtZSI6ICIyMi42Igp9"},
+    "46": {"version": "30", "sha256": "0jg3c8xi4vnwx7gwzmvjz4hly7b6gdgqy2r5ln40gng55yxf2sbx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvZ28gTWVudSAtIE1lbnUgc2ltaWxhciB0byBBcHBsZSdzIG1hY09TIG1lbnUgZm9yIHRoZSBHTk9NRSBEZXNrdG9wXG5UaGlzIGV4dGVuc2lvbiBnaXZlcyBhIHNpbXBsZSBtZW51IGFsb25nIHdpdGggdGhlIGFiaWxpdHkgdG8gZ2V0IHRoZSBpY29uIG9mIHlvdXIgZGlzdHJvIG9uIHRvcCBsZWZ0IHBhcnQgb2YgdGhlIHBhbmVsIGZvciBhIGdyZWF0IGxvb2suXG5UaGUgSWNvbiBjYW4gYmUgY3VzdG9taXNlZCB0aHJvdWdoIHNldHRpbmdzLCBpdCBoYXMgYm90aCBMaW51eCBhbmQgQlNEIGxvZ29zLlxuRm9yIG1vcmUgc2NyZWVuc2hvdHMsIHZpc2l0IEdpdEh1Yi5cblxuVGhlICdBY3Rpdml0aWVzJyBpbmRpY2F0b3IgaXMgaGlkZGVuIGJ5IGRlZmF1bHQgYnV0IGNhbiBiZSBlbmFibGVkIHRocm91Z2ggc2V0dGluZ3MuXG5cblRoZSBkZWZhdWx0IFRlcm1pbmFsIGFuZCBTb2Z0d2FyZSBjZW50cmUgY2FuIGFsc28gYmUgY2hhbmdlZC5cblxuIEZvcmNlIFF1aXQgd29ya3Mgb24gV2F5bGFuZCBhbmQgWG9yZyIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAiYXJ5YW4yMCIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsb2dvLW1lbnUiLAogICJuYW1lIjogIkxvZ28gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sb2dvLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FyeWFuMjAvTG9nb21lbnUiLAogICJ1dWlkIjogImxvZ29tZW51QGFyeWFuX2siLAogICJ2ZXJzaW9uIjogMzAsCiAgInZlcnNpb24tbmFtZSI6ICIyMi42Igp9"}
   }}
 , {"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=="}
@@ -3977,14 +4009,14 @@
     "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": {
+, {"uuid": "nepali-date@biplab", "name": "Nepali Date", "pname": "nepali-calendar", "description": "Shows nepali date on the top status area.", "link": "https://extensions.gnome.org/extension/4518/nepali-calendar/", "shell_version_map": {
     "40": {"version": "18", "sha256": "13pg4lzqpa7m7qhdrqw5vlnjaqc843cxyinygg197lafgx10ya1q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG5lcGFsaSBkYXRlIG9uIHRoZSBwYW5lbC4iLAogICJuYW1lIjogIk5lcGFsaSBEYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9CaXBsYWItRHV0dGEvTmVwYWxpX0RhdGUiLAogICJ1dWlkIjogIm5lcGFsaS1kYXRlQGJpcGxhYiIsCiAgInZlcnNpb24iOiAxOAp9"},
     "41": {"version": "18", "sha256": "13pg4lzqpa7m7qhdrqw5vlnjaqc843cxyinygg197lafgx10ya1q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG5lcGFsaSBkYXRlIG9uIHRoZSBwYW5lbC4iLAogICJuYW1lIjogIk5lcGFsaSBEYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9CaXBsYWItRHV0dGEvTmVwYWxpX0RhdGUiLAogICJ1dWlkIjogIm5lcGFsaS1kYXRlQGJpcGxhYiIsCiAgInZlcnNpb24iOiAxOAp9"},
     "42": {"version": "18", "sha256": "13pg4lzqpa7m7qhdrqw5vlnjaqc843cxyinygg197lafgx10ya1q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG5lcGFsaSBkYXRlIG9uIHRoZSBwYW5lbC4iLAogICJuYW1lIjogIk5lcGFsaSBEYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9CaXBsYWItRHV0dGEvTmVwYWxpX0RhdGUiLAogICJ1dWlkIjogIm5lcGFsaS1kYXRlQGJpcGxhYiIsCiAgInZlcnNpb24iOiAxOAp9"},
     "43": {"version": "18", "sha256": "13pg4lzqpa7m7qhdrqw5vlnjaqc843cxyinygg197lafgx10ya1q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG5lcGFsaSBkYXRlIG9uIHRoZSBwYW5lbC4iLAogICJuYW1lIjogIk5lcGFsaSBEYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9CaXBsYWItRHV0dGEvTmVwYWxpX0RhdGUiLAogICJ1dWlkIjogIm5lcGFsaS1kYXRlQGJpcGxhYiIsCiAgInZlcnNpb24iOiAxOAp9"},
     "44": {"version": "18", "sha256": "13pg4lzqpa7m7qhdrqw5vlnjaqc843cxyinygg197lafgx10ya1q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG5lcGFsaSBkYXRlIG9uIHRoZSBwYW5lbC4iLAogICJuYW1lIjogIk5lcGFsaSBEYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9CaXBsYWItRHV0dGEvTmVwYWxpX0RhdGUiLAogICJ1dWlkIjogIm5lcGFsaS1kYXRlQGJpcGxhYiIsCiAgInZlcnNpb24iOiAxOAp9"},
-    "45": {"version": "30", "sha256": "0mjy8fjnj4faazawwg9ckl16fl6xs98m4vl22panjajsh9fqqsck", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG5lcGFsaSBkYXRlIG9uIHRoZSBwYW5lbC4iLAogICJuYW1lIjogIk5lcGFsaSBEYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9CaXBsYWItRHV0dGEvTmVwYWxpX0RhdGUiLAogICJ1dWlkIjogIm5lcGFsaS1kYXRlQGJpcGxhYiIsCiAgInZlcnNpb24iOiAzMAp9"},
-    "46": {"version": "30", "sha256": "0mjy8fjnj4faazawwg9ckl16fl6xs98m4vl22panjajsh9fqqsck", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG5lcGFsaSBkYXRlIG9uIHRoZSBwYW5lbC4iLAogICJuYW1lIjogIk5lcGFsaSBEYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9CaXBsYWItRHV0dGEvTmVwYWxpX0RhdGUiLAogICJ1dWlkIjogIm5lcGFsaS1kYXRlQGJpcGxhYiIsCiAgInZlcnNpb24iOiAzMAp9"}
+    "45": {"version": "31", "sha256": "1phng3s99zh2ykk78qfl936sin5v7y5dzghrpq7q3bqxnyf6xias", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG5lcGFsaSBkYXRlIG9uIHRoZSB0b3Agc3RhdHVzIGFyZWEuIiwKICAibmFtZSI6ICJOZXBhbGkgRGF0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQmlwbGFiLUR1dHRhL05lcGFsaV9EYXRlIiwKICAidXVpZCI6ICJuZXBhbGktZGF0ZUBiaXBsYWIiLAogICJ2ZXJzaW9uIjogMzEKfQ=="},
+    "46": {"version": "31", "sha256": "1phng3s99zh2ykk78qfl936sin5v7y5dzghrpq7q3bqxnyf6xias", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG5lcGFsaSBkYXRlIG9uIHRoZSB0b3Agc3RhdHVzIGFyZWEuIiwKICAibmFtZSI6ICJOZXBhbGkgRGF0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQmlwbGFiLUR1dHRhL05lcGFsaV9EYXRlIiwKICAidXVpZCI6ICJuZXBhbGktZGF0ZUBiaXBsYWIiLAogICJ2ZXJzaW9uIjogMzEKfQ=="}
   }}
 , {"uuid": "clock-left@mapuut", "name": "Clock Left", "pname": "clock-left", "description": "Moves clock to left.\n\nAlso this one might suit you better: extensions.gnome.org/extension/4667/left-clock/", "link": "https://extensions.gnome.org/extension/4526/clock-left/", "shell_version_map": {
     "38": {"version": "4", "sha256": "0hvr7nmbrn7nqn3nk9p1a659yhkgja3gy9kbw18yykyqf0lbssqn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIGNsb2NrIHRvIGxlZnQuXG5cbkFsc28gdGhpcyBvbmUgbWlnaHQgc3VpdCB5b3UgYmV0dGVyOiBleHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNDY2Ny9sZWZ0LWNsb2NrLyIsCiAgIm5hbWUiOiAiQ2xvY2sgTGVmdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJjbG9jay1sZWZ0QG1hcHV1dCIsCiAgInZlcnNpb24iOiA0Cn0="},
@@ -4011,7 +4043,8 @@
     "42": {"version": "4", "sha256": "01ia6ycy4crmc7b9ckwbaqlz4kl3adj1is9036n1y1676696slhb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9oaWRlIHZvbHVtZSBpbmRpY2F0b3Igd2hlbiBtdXRlZCIsCiAgIm5hbWUiOiAiQXV0b2hpZGUgVm9sdW1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cDovL2dpdGh1Yi5jb20vdDE4NDI1Ni9nbm9tZS1zaGVsbC1leHRlbnNpb24tYXV0b2hpZGUtdm9sdW1lIiwKICAidXVpZCI6ICJhdXRvaGlkZS12b2x1bWVAdW5ib2lsZWQuaW5mbyIsCiAgInZlcnNpb24iOiA0Cn0="},
     "43": {"version": "4", "sha256": "01ia6ycy4crmc7b9ckwbaqlz4kl3adj1is9036n1y1676696slhb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9oaWRlIHZvbHVtZSBpbmRpY2F0b3Igd2hlbiBtdXRlZCIsCiAgIm5hbWUiOiAiQXV0b2hpZGUgVm9sdW1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cDovL2dpdGh1Yi5jb20vdDE4NDI1Ni9nbm9tZS1zaGVsbC1leHRlbnNpb24tYXV0b2hpZGUtdm9sdW1lIiwKICAidXVpZCI6ICJhdXRvaGlkZS12b2x1bWVAdW5ib2lsZWQuaW5mbyIsCiAgInZlcnNpb24iOiA0Cn0="},
     "44": {"version": "4", "sha256": "01ia6ycy4crmc7b9ckwbaqlz4kl3adj1is9036n1y1676696slhb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9oaWRlIHZvbHVtZSBpbmRpY2F0b3Igd2hlbiBtdXRlZCIsCiAgIm5hbWUiOiAiQXV0b2hpZGUgVm9sdW1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cDovL2dpdGh1Yi5jb20vdDE4NDI1Ni9nbm9tZS1zaGVsbC1leHRlbnNpb24tYXV0b2hpZGUtdm9sdW1lIiwKICAidXVpZCI6ICJhdXRvaGlkZS12b2x1bWVAdW5ib2lsZWQuaW5mbyIsCiAgInZlcnNpb24iOiA0Cn0="},
-    "45": {"version": "7", "sha256": "07z3mi3h0azivfhmkl1d92swg66pi8k8mwab1gli96c679zpjbd9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9oaWRlIHZvbHVtZSBpbmRpY2F0b3Igd2hlbiBtdXRlZCIsCiAgIm5hbWUiOiAiQXV0b2hpZGUgVm9sdW1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cDovL2dpdGh1Yi5jb20vdDE4NDI1Ni9nbm9tZS1zaGVsbC1leHRlbnNpb24tYXV0b2hpZGUtdm9sdW1lIiwKICAidXVpZCI6ICJhdXRvaGlkZS12b2x1bWVAdW5ib2lsZWQuaW5mbyIsCiAgInZlcnNpb24iOiA3Cn0="}
+    "45": {"version": "8", "sha256": "0bilgzcx86id89glf0jrk232jfmv3vxgh9la62r65l0c79ixngda", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9oaWRlIHZvbHVtZSBpbmRpY2F0b3Igd2hlbiBtdXRlZCIsCiAgIm5hbWUiOiAiQXV0b2hpZGUgVm9sdW1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHA6Ly9naXRodWIuY29tL3QxODQyNTYvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWF1dG9oaWRlLXZvbHVtZSIsCiAgInV1aWQiOiAiYXV0b2hpZGUtdm9sdW1lQHVuYm9pbGVkLmluZm8iLAogICJ2ZXJzaW9uIjogOAp9"},
+    "46": {"version": "8", "sha256": "0bilgzcx86id89glf0jrk232jfmv3vxgh9la62r65l0c79ixngda", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9oaWRlIHZvbHVtZSBpbmRpY2F0b3Igd2hlbiBtdXRlZCIsCiAgIm5hbWUiOiAiQXV0b2hpZGUgVm9sdW1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHA6Ly9naXRodWIuY29tL3QxODQyNTYvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWF1dG9oaWRlLXZvbHVtZSIsCiAgInV1aWQiOiAiYXV0b2hpZGUtdm9sdW1lQHVuYm9pbGVkLmluZm8iLAogICJ2ZXJzaW9uIjogOAp9"}
   }}
 , {"uuid": "cloudflare@adam.gadmz", "name": "Cloudflare", "pname": "cloudflare", "description": "Warp Connect", "link": "https://extensions.gnome.org/extension/4542/cloudflare/", "shell_version_map": {
     "38": {"version": "10", "sha256": "0lr2g0hmaw7v4h538rg3mxmnds8nnmbs0h0k816s4dkwmx45pyb5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBZGFtIiwKICAiZGVzY3JpcHRpb24iOiAiV2FycCBDb25uZWN0IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNsb3VkZmxhcmUiLAogICJuYW1lIjogIkNsb3VkZmxhcmUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kdW9uZ2dpYWtoYW5oYi9DbG91ZGZsYXJlX0dOT01FX0V4dGVuc2lvbiIsCiAgInV1aWQiOiAiY2xvdWRmbGFyZUBhZGFtLmdhZG16IiwKICAidmVyc2lvbiI6IDEwCn0="},
@@ -4324,14 +4357,15 @@
     "44": {"version": "7", "sha256": "0bi73fpvkfj3y6f440fw5xv1294szhisa2qyzz4rwh7n4n49xhqf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvY3VzIHRoZSBwcmltYXJ5IG1vbml0b3IgYWZ0ZXIgc3dpdGNoaW5nIHdvcmtzcGFjZXMgdmlhIGtleWJvYXJkIiwKICAibmFtZSI6ICJGb2N1cyBGb2xsb3dzIFdvcmtzcGFjZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RvcGhlci1sL2ZvY3VzLWZvbGxvd3Mtd29ya3NwYWNlIiwKICAidXVpZCI6ICJmb2N1cy1mb2xsb3dzLXdvcmtzcGFjZUBjaHJpc3RvcGhlci5sdWViYmVtZWllci5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNwp9"},
     "45": {"version": "9", "sha256": "0g9jylkxx2wwknbh38ir7hfx440b5jm2lgxip0xl878flgi2wffj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvY3VzIHRoZSBwcmltYXJ5IG1vbml0b3IgYWZ0ZXIgc3dpdGNoaW5nIHdvcmtzcGFjZXMgdmlhIGtleWJvYXJkIiwKICAibmFtZSI6ICJGb2N1cyBGb2xsb3dzIFdvcmtzcGFjZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mb2N1cy1mb2xsb3dzLXdvcmtzcGFjZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RvcGhlci1sL2ZvY3VzLWZvbGxvd3Mtd29ya3NwYWNlIiwKICAidXVpZCI6ICJmb2N1cy1mb2xsb3dzLXdvcmtzcGFjZUBjaHJpc3RvcGhlci5sdWViYmVtZWllci5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogOQp9"}
   }}
-, {"uuid": "pip-on-top@rafostar.github.com", "name": "PiP on top", "pname": "pip-on-top", "description": "Makes \"Picture-in-Picture\" windows stay on top (even on Wayland session). Compatible with Firefox and Clapper media player.", "link": "https://extensions.gnome.org/extension/4691/pip-on-top/", "shell_version_map": {
+, {"uuid": "pip-on-top@rafostar.github.com", "name": "PiP on top", "pname": "pip-on-top", "description": "Makes \"Picture-in-Picture\" windows stay on top (even on Wayland session). Compatible with Firefox, but may work with few other browsers too.", "link": "https://extensions.gnome.org/extension/4691/pip-on-top/", "shell_version_map": {
     "38": {"version": "2", "sha256": "1920nd7dr2159606mlv3c4fkambw1yx0a65rr961qx3w6jwd1pym", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIFwiUGljdHVyZS1pbi1QaWN0dXJlXCIgd2luZG93cyBzdGF5IG9uIHRvcCAoZXZlbiBvbiBXYXlsYW5kIHNlc3Npb24pLiBDb21wYXRpYmxlIHdpdGggRmlyZWZveCBhbmQgQ2xhcHBlciBtZWRpYSBwbGF5ZXIuIiwKICAiZXh0ZW5zaW9uLWlkIjogInBpcC1vbi10b3AiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJwaXAtb24tdG9wIiwKICAibmFtZSI6ICJQaVAgb24gdG9wIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBpcC1vbi10b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SYWZvc3Rhci9nbm9tZS1zaGVsbC1leHRlbnNpb24tcGlwLW9uLXRvcCIsCiAgInV1aWQiOiAicGlwLW9uLXRvcEByYWZvc3Rhci5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="},
     "40": {"version": "2", "sha256": "1920nd7dr2159606mlv3c4fkambw1yx0a65rr961qx3w6jwd1pym", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIFwiUGljdHVyZS1pbi1QaWN0dXJlXCIgd2luZG93cyBzdGF5IG9uIHRvcCAoZXZlbiBvbiBXYXlsYW5kIHNlc3Npb24pLiBDb21wYXRpYmxlIHdpdGggRmlyZWZveCBhbmQgQ2xhcHBlciBtZWRpYSBwbGF5ZXIuIiwKICAiZXh0ZW5zaW9uLWlkIjogInBpcC1vbi10b3AiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJwaXAtb24tdG9wIiwKICAibmFtZSI6ICJQaVAgb24gdG9wIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBpcC1vbi10b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SYWZvc3Rhci9nbm9tZS1zaGVsbC1leHRlbnNpb24tcGlwLW9uLXRvcCIsCiAgInV1aWQiOiAicGlwLW9uLXRvcEByYWZvc3Rhci5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="},
     "41": {"version": "2", "sha256": "1920nd7dr2159606mlv3c4fkambw1yx0a65rr961qx3w6jwd1pym", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIFwiUGljdHVyZS1pbi1QaWN0dXJlXCIgd2luZG93cyBzdGF5IG9uIHRvcCAoZXZlbiBvbiBXYXlsYW5kIHNlc3Npb24pLiBDb21wYXRpYmxlIHdpdGggRmlyZWZveCBhbmQgQ2xhcHBlciBtZWRpYSBwbGF5ZXIuIiwKICAiZXh0ZW5zaW9uLWlkIjogInBpcC1vbi10b3AiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJwaXAtb24tdG9wIiwKICAibmFtZSI6ICJQaVAgb24gdG9wIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBpcC1vbi10b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SYWZvc3Rhci9nbm9tZS1zaGVsbC1leHRlbnNpb24tcGlwLW9uLXRvcCIsCiAgInV1aWQiOiAicGlwLW9uLXRvcEByYWZvc3Rhci5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="},
     "42": {"version": "6", "sha256": "1112q0wmsk142n1nq9id0hah3y3dfq9y2p65ggagyxl52yk34l6b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIFwiUGljdHVyZS1pbi1QaWN0dXJlXCIgd2luZG93cyBzdGF5IG9uIHRvcCAoZXZlbiBvbiBXYXlsYW5kIHNlc3Npb24pLiBDb21wYXRpYmxlIHdpdGggRmlyZWZveCBhbmQgQ2xhcHBlciBtZWRpYSBwbGF5ZXIuIiwKICAiZXh0ZW5zaW9uLWlkIjogInBpcC1vbi10b3AiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJwaXAtb24tdG9wIiwKICAibmFtZSI6ICJQaVAgb24gdG9wIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBpcC1vbi10b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SYWZvc3Rhci9nbm9tZS1zaGVsbC1leHRlbnNpb24tcGlwLW9uLXRvcCIsCiAgInV1aWQiOiAicGlwLW9uLXRvcEByYWZvc3Rhci5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="},
     "43": {"version": "6", "sha256": "1112q0wmsk142n1nq9id0hah3y3dfq9y2p65ggagyxl52yk34l6b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIFwiUGljdHVyZS1pbi1QaWN0dXJlXCIgd2luZG93cyBzdGF5IG9uIHRvcCAoZXZlbiBvbiBXYXlsYW5kIHNlc3Npb24pLiBDb21wYXRpYmxlIHdpdGggRmlyZWZveCBhbmQgQ2xhcHBlciBtZWRpYSBwbGF5ZXIuIiwKICAiZXh0ZW5zaW9uLWlkIjogInBpcC1vbi10b3AiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJwaXAtb24tdG9wIiwKICAibmFtZSI6ICJQaVAgb24gdG9wIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBpcC1vbi10b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SYWZvc3Rhci9nbm9tZS1zaGVsbC1leHRlbnNpb24tcGlwLW9uLXRvcCIsCiAgInV1aWQiOiAicGlwLW9uLXRvcEByYWZvc3Rhci5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="},
     "44": {"version": "6", "sha256": "1112q0wmsk142n1nq9id0hah3y3dfq9y2p65ggagyxl52yk34l6b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIFwiUGljdHVyZS1pbi1QaWN0dXJlXCIgd2luZG93cyBzdGF5IG9uIHRvcCAoZXZlbiBvbiBXYXlsYW5kIHNlc3Npb24pLiBDb21wYXRpYmxlIHdpdGggRmlyZWZveCBhbmQgQ2xhcHBlciBtZWRpYSBwbGF5ZXIuIiwKICAiZXh0ZW5zaW9uLWlkIjogInBpcC1vbi10b3AiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJwaXAtb24tdG9wIiwKICAibmFtZSI6ICJQaVAgb24gdG9wIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBpcC1vbi10b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SYWZvc3Rhci9nbm9tZS1zaGVsbC1leHRlbnNpb24tcGlwLW9uLXRvcCIsCiAgInV1aWQiOiAicGlwLW9uLXRvcEByYWZvc3Rhci5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="},
-    "45": {"version": "7", "sha256": "17clr1f3zwc0wz5y7536d5j39wbxfbqzd4cy2jyjyx9lm4cmpb8x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIFwiUGljdHVyZS1pbi1QaWN0dXJlXCIgd2luZG93cyBzdGF5IG9uIHRvcCAoZXZlbiBvbiBXYXlsYW5kIHNlc3Npb24pLiBDb21wYXRpYmxlIHdpdGggRmlyZWZveCBhbmQgQ2xhcHBlciBtZWRpYSBwbGF5ZXIuIiwKICAiZXh0ZW5zaW9uLWlkIjogInBpcC1vbi10b3AiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJwaXAtb24tdG9wIiwKICAibmFtZSI6ICJQaVAgb24gdG9wIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBpcC1vbi10b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmFmb3N0YXIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXBpcC1vbi10b3AiLAogICJ1dWlkIjogInBpcC1vbi10b3BAcmFmb3N0YXIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}
+    "45": {"version": "8", "sha256": "1gwn5wgqhz2nh8icj1byv7kgs8sk16mkzmj2zf7y0svprbl5vf7n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIFwiUGljdHVyZS1pbi1QaWN0dXJlXCIgd2luZG93cyBzdGF5IG9uIHRvcCAoZXZlbiBvbiBXYXlsYW5kIHNlc3Npb24pLiBDb21wYXRpYmxlIHdpdGggRmlyZWZveCwgYnV0IG1heSB3b3JrIHdpdGggZmV3IG90aGVyIGJyb3dzZXJzIHRvby4iLAogICJleHRlbnNpb24taWQiOiAicGlwLW9uLXRvcCIsCiAgImdldHRleHQtZG9tYWluIjogInBpcC1vbi10b3AiLAogICJuYW1lIjogIlBpUCBvbiB0b3AiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGlwLW9uLXRvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmFmb3N0YXIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXBpcC1vbi10b3AiLAogICJ1dWlkIjogInBpcC1vbi10b3BAcmFmb3N0YXIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="},
+    "46": {"version": "8", "sha256": "1gwn5wgqhz2nh8icj1byv7kgs8sk16mkzmj2zf7y0svprbl5vf7n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIFwiUGljdHVyZS1pbi1QaWN0dXJlXCIgd2luZG93cyBzdGF5IG9uIHRvcCAoZXZlbiBvbiBXYXlsYW5kIHNlc3Npb24pLiBDb21wYXRpYmxlIHdpdGggRmlyZWZveCwgYnV0IG1heSB3b3JrIHdpdGggZmV3IG90aGVyIGJyb3dzZXJzIHRvby4iLAogICJleHRlbnNpb24taWQiOiAicGlwLW9uLXRvcCIsCiAgImdldHRleHQtZG9tYWluIjogInBpcC1vbi10b3AiLAogICJuYW1lIjogIlBpUCBvbiB0b3AiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGlwLW9uLXRvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmFmb3N0YXIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXBpcC1vbi10b3AiLAogICJ1dWlkIjogInBpcC1vbi10b3BAcmFmb3N0YXIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="}
   }}
 , {"uuid": "roundedSystemMenuButtons@pratap.fastmail.fm", "name": "Rounded System Menu Buttons", "pname": "rounded-system-menu-buttons", "description": "Rounded System Menu Buttons", "link": "https://extensions.gnome.org/extension/4693/rounded-system-menu-buttons/", "shell_version_map": {
     "38": {"version": "17", "sha256": "1cwjyw4sc4i4vdm458qdnjzvmiqyz9vscicwarsd9cvik57p44f5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJvdW5kZWQgU3lzdGVtIE1lbnUgQnV0dG9ucyIsCiAgIm5hbWUiOiAiUm91bmRlZCBTeXN0ZW0gTWVudSBCdXR0b25zIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnJvdW5kLXN5c3RlbS1tZW51LWJ1dHRvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BSQVRBUC1LVU1BUi9yb3VuZGVkLXN5c3RlbS1tZW51LWJ1dHRvbnMiLAogICJ1dWlkIjogInJvdW5kZWRTeXN0ZW1NZW51QnV0dG9uc0BwcmF0YXAuZmFzdG1haWwuZm0iLAogICJ2ZXJzaW9uIjogMTcKfQ=="},
@@ -4441,14 +4475,14 @@
     "45": {"version": "26", "sha256": "050inkl5y31xgl5lgw03yd8gi7sdcclk53g64dckrmr289zl6khp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNtYXJ0IEF1dG8gTW92ZSBsZWFybnMgdGhlIHBvc2l0aW9uLCBzaXplLCBhbmQgd29ya3NwYWNlIG9mIHlvdXIgYXBwbGljYXRpb24gd2luZG93cyBhbmQgcmVzdG9yZXMgdGhlbSBvbiBzdWJzZXF1ZW50IGxhdW5jaGVzLiBTdXBwb3J0cyBXYXlsYW5kLlxuXG5OT1RFOiBPcHRpbWl6ZWQgZm9yIHVzZSB3aXRoIHN0YXRpYyB3b3Jrc3BhY2VzLiBGb3IgbW9yZSBjb250cm9sLCBzZXQgdGhlIGRlZmF1bHQgYmVoYXZpb3IgdG8gSUdOT1JFIGFuZCB0aGVuIHNlbGVjdGl2ZWx5IFJFU1RPUkUgb25seSBkZXNpcmVkIGFwcHMuXG5cbktOT1dOIElTU1VFUzogTXVsdGktbW9uaXRvciAgaXMgbm90IHlldCB3ZWxsIHN1cHBvcnRlZC4gWW91IG1heSBuZWVkIHRvIG1hbnVhbGx5IGRlbGV0ZSBTYXZlZCBXaW5kb3dzIGluIHByZWZlcmVuY2VzIGFmdGVyIGFkZGluZyBvciByZW1vdmluZyBhIGRpc3BsYXkuIiwKICAibmFtZSI6ICJTbWFydCBBdXRvIE1vdmUiLAogICJvcmlnaW5hbC1hdXRob3IiOiAia2hpbWFyb3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc21hcnQtYXV0by1tb3ZlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9raGltYXJvcy9zbWFydC1hdXRvLW1vdmUiLAogICJ1dWlkIjogInNtYXJ0LWF1dG8tbW92ZUBraGltYXJvcy5jb20iLAogICJ2ZXJzaW9uIjogMjYKfQ=="},
     "46": {"version": "26", "sha256": "050inkl5y31xgl5lgw03yd8gi7sdcclk53g64dckrmr289zl6khp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNtYXJ0IEF1dG8gTW92ZSBsZWFybnMgdGhlIHBvc2l0aW9uLCBzaXplLCBhbmQgd29ya3NwYWNlIG9mIHlvdXIgYXBwbGljYXRpb24gd2luZG93cyBhbmQgcmVzdG9yZXMgdGhlbSBvbiBzdWJzZXF1ZW50IGxhdW5jaGVzLiBTdXBwb3J0cyBXYXlsYW5kLlxuXG5OT1RFOiBPcHRpbWl6ZWQgZm9yIHVzZSB3aXRoIHN0YXRpYyB3b3Jrc3BhY2VzLiBGb3IgbW9yZSBjb250cm9sLCBzZXQgdGhlIGRlZmF1bHQgYmVoYXZpb3IgdG8gSUdOT1JFIGFuZCB0aGVuIHNlbGVjdGl2ZWx5IFJFU1RPUkUgb25seSBkZXNpcmVkIGFwcHMuXG5cbktOT1dOIElTU1VFUzogTXVsdGktbW9uaXRvciAgaXMgbm90IHlldCB3ZWxsIHN1cHBvcnRlZC4gWW91IG1heSBuZWVkIHRvIG1hbnVhbGx5IGRlbGV0ZSBTYXZlZCBXaW5kb3dzIGluIHByZWZlcmVuY2VzIGFmdGVyIGFkZGluZyBvciByZW1vdmluZyBhIGRpc3BsYXkuIiwKICAibmFtZSI6ICJTbWFydCBBdXRvIE1vdmUiLAogICJvcmlnaW5hbC1hdXRob3IiOiAia2hpbWFyb3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc21hcnQtYXV0by1tb3ZlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9raGltYXJvcy9zbWFydC1hdXRvLW1vdmUiLAogICJ1dWlkIjogInNtYXJ0LWF1dG8tbW92ZUBraGltYXJvcy5jb20iLAogICJ2ZXJzaW9uIjogMjYKfQ=="}
   }}
-, {"uuid": "hplip-menu2@grizzlysmit.smit.id.au", "name": "Alternate Menu for Hplip2", "pname": "alternate-menu-for-hplip2", "description": "control your hp printers by calling the device manager hp-toolbox, also some useful links\nMotivation: the hp-systray doesn't work reliably under gnome shell\nyou need to have installed hplip in order to use this\nChoice of using a printer icon or a hp_logo.png if it's installed in the same place as mine on Ubuntu\nyou could use symbolic links to fake the path.\nThis is a replacement for the old \"Alternate Menu for Hplip\" which doesn't work under the new Gome-Shell I have cleaned it up a bit and it has a few new menu's but it is still basically the same thing.\n Added even more menus all most all system settings ones.\n\nNote: the menu will be too big if your resolution is way too low like 800x600 I have no soln for this just now.\n\nDutch language support added by Vistaus (Heimen Stoffels) https://github.com/Vistaus\n\nyou'll need to restart gnome-shell after upgrades so either reboot,\nlog out and back in again, or if your using X11 then alt+F2 then run r", "link": "https://extensions.gnome.org/extension/4739/alternate-menu-for-hplip2/", "shell_version_map": {
+, {"uuid": "hplip-menu2@grizzlysmit.smit.id.au", "name": "Alternate Menu for Hplip2", "pname": "alternate-menu-for-hplip2", "description": "control your hp printers by calling the device manager hp-toolbox, also some useful links\nMotivation: the hp-systray doesn't work reliably under gnome shell\nyou need to have installed hplip in order to use this\nChoice of using a printer icon or a hp_logo.png if it's installed in the same place as mine on Ubuntu\nyou could use symbolic links to fake the path.\nThis is a replacement for the old \"Alternate Menu for Hplip\" which doesn't work under the new Gome-Shell I have cleaned it up a bit and it has a few new menu's but it is still basically the same thing.\n Added even more menus all most all system settings ones.\n\nNew: the menu will be too big if your resolution is way too low like 800x600 I have implemented a compact option in the settings, if you use it the menu will become a two colomn compact format and will fit even on such a low resolution.\n\nDutch language support added by Vistaus (Heimen Stoffels) https://github.com/Vistaus\n\nyou'll need to restart gnome-shell after upgrades so either reboot,\nlog out and back in again, or if your using X11 then alt+F2 then run r", "link": "https://extensions.gnome.org/extension/4739/alternate-menu-for-hplip2/", "shell_version_map": {
     "40": {"version": "11", "sha256": "19h44pn5afqc89vn5xjrhmd375651zhf2w78cs8fgazp7pc0hsr6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWRpdHMiOiAiKEMpIEZyYW5jaXMgR3JpenpseSBTbWl0XG5cbkR1dGNoIHRyYW5zbGF0aW9uIFZpc3RhdXMgKEhlaW1lbiBTdG9mZmVscykgaHR0cHM6Ly9naXRodWIuY29tL1Zpc3RhdXNcblxuTGljZW5jZSBHUEwgdjIrXG5cbiIsCiAgImRlc2NyaXB0aW9uIjogImNvbnRyb2wgeW91ciBocCBwcmludGVycyBieSBjYWxsaW5nIHRoZSBkZXZpY2UgbWFuYWdlciBocC10b29sYm94LCBhbHNvIHNvbWUgdXNlZnVsIGxpbmtzXG5Nb3RpdmF0aW9uOiB0aGUgaHAtc3lzdHJheSBkb2Vzbid0IHdvcmsgcmVsaWFibHkgdW5kZXIgZ25vbWUgc2hlbGxcbnlvdSBuZWVkIHRvIGhhdmUgaW5zdGFsbGVkIGhwbGlwIGluIG9yZGVyIHRvIHVzZSB0aGlzXG5DaG9pY2Ugb2YgdXNpbmcgYSBwcmludGVyIGljb24gb3IgYSBocF9sb2dvLnBuZyBpZiBpdCdzIGluc3RhbGxlZCBpbiB0aGUgc2FtZSBwbGFjZSBhcyBtaW5lIG9uIFVidW50dVxueW91IGNvdWxkIHVzZSBzeW1ib2xpYyBsaW5rcyB0byBmYWtlIHRoZSBwYXRoLlxuVGhpcyBpcyBhIHJlcGxhY2VtZW50IGZvciB0aGUgb2xkIFwiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwXCIgd2hpY2ggZG9lc24ndCB3b3JrIHVuZGVyIHRoZSBuZXcgR29tZS1TaGVsbCBJIGhhdmUgY2xlYW5lZCBpdCB1cCBhIGJpdCBhbmQgaXQgaGFzIGEgZmV3IG5ldyBtZW51J3MgYnV0IGl0IGlzIHN0aWxsIGJhc2ljYWxseSB0aGUgc2FtZSB0aGluZy5cbiBBZGRlZCBldmVuIG1vcmUgbWVudXMgYWxsIG1vc3QgYWxsIHN5c3RlbSBzZXR0aW5ncyBvbmVzLlxuXG5Ob3RlOiB0aGUgbWVudSB3aWxsIGJlIHRvbyBiaWcgaWYgeW91ciByZXNvbHV0aW9uIGlzIHdheSB0b28gbG93IGxpa2UgODAweDYwMCBJIGhhdmUgbm8gc29sbiBmb3IgdGhpcyBqdXN0IG5vdy5cblxuRHV0Y2ggbGFuZ3VhZ2Ugc3VwcG9ydCBhZGRlZCBieSBWaXN0YXVzIChIZWltZW4gU3RvZmZlbHMpIGh0dHBzOi8vZ2l0aHViLmNvbS9WaXN0YXVzXG5cbnlvdSdsbCBuZWVkIHRvIHJlc3RhcnQgZ25vbWUtc2hlbGwgYWZ0ZXIgdXBncmFkZXMgc28gZWl0aGVyIHJlYm9vdCxcbmxvZyBvdXQgYW5kIGJhY2sgaW4gYWdhaW4sIG9yIGlmIHlvdXIgdXNpbmcgWDExIHRoZW4gYWx0K0YyIHRoZW4gcnVuIHIiLAogICJuYW1lIjogIkFsdGVybmF0ZSBNZW51IGZvciBIcGxpcDIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaHBsaXAtbWVudTIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dyaXp6bHlzbWl0L2hwbGlwLW1lbnUyLWdyaXp6bHlzbWl0LnNtaXQuaWQuYXUiLAogICJ1dWlkIjogImhwbGlwLW1lbnUyQGdyaXp6bHlzbWl0LnNtaXQuaWQuYXUiLAogICJ2ZXJzaW9uIjogMTEKfQ=="},
     "41": {"version": "11", "sha256": "19h44pn5afqc89vn5xjrhmd375651zhf2w78cs8fgazp7pc0hsr6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWRpdHMiOiAiKEMpIEZyYW5jaXMgR3JpenpseSBTbWl0XG5cbkR1dGNoIHRyYW5zbGF0aW9uIFZpc3RhdXMgKEhlaW1lbiBTdG9mZmVscykgaHR0cHM6Ly9naXRodWIuY29tL1Zpc3RhdXNcblxuTGljZW5jZSBHUEwgdjIrXG5cbiIsCiAgImRlc2NyaXB0aW9uIjogImNvbnRyb2wgeW91ciBocCBwcmludGVycyBieSBjYWxsaW5nIHRoZSBkZXZpY2UgbWFuYWdlciBocC10b29sYm94LCBhbHNvIHNvbWUgdXNlZnVsIGxpbmtzXG5Nb3RpdmF0aW9uOiB0aGUgaHAtc3lzdHJheSBkb2Vzbid0IHdvcmsgcmVsaWFibHkgdW5kZXIgZ25vbWUgc2hlbGxcbnlvdSBuZWVkIHRvIGhhdmUgaW5zdGFsbGVkIGhwbGlwIGluIG9yZGVyIHRvIHVzZSB0aGlzXG5DaG9pY2Ugb2YgdXNpbmcgYSBwcmludGVyIGljb24gb3IgYSBocF9sb2dvLnBuZyBpZiBpdCdzIGluc3RhbGxlZCBpbiB0aGUgc2FtZSBwbGFjZSBhcyBtaW5lIG9uIFVidW50dVxueW91IGNvdWxkIHVzZSBzeW1ib2xpYyBsaW5rcyB0byBmYWtlIHRoZSBwYXRoLlxuVGhpcyBpcyBhIHJlcGxhY2VtZW50IGZvciB0aGUgb2xkIFwiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwXCIgd2hpY2ggZG9lc24ndCB3b3JrIHVuZGVyIHRoZSBuZXcgR29tZS1TaGVsbCBJIGhhdmUgY2xlYW5lZCBpdCB1cCBhIGJpdCBhbmQgaXQgaGFzIGEgZmV3IG5ldyBtZW51J3MgYnV0IGl0IGlzIHN0aWxsIGJhc2ljYWxseSB0aGUgc2FtZSB0aGluZy5cbiBBZGRlZCBldmVuIG1vcmUgbWVudXMgYWxsIG1vc3QgYWxsIHN5c3RlbSBzZXR0aW5ncyBvbmVzLlxuXG5Ob3RlOiB0aGUgbWVudSB3aWxsIGJlIHRvbyBiaWcgaWYgeW91ciByZXNvbHV0aW9uIGlzIHdheSB0b28gbG93IGxpa2UgODAweDYwMCBJIGhhdmUgbm8gc29sbiBmb3IgdGhpcyBqdXN0IG5vdy5cblxuRHV0Y2ggbGFuZ3VhZ2Ugc3VwcG9ydCBhZGRlZCBieSBWaXN0YXVzIChIZWltZW4gU3RvZmZlbHMpIGh0dHBzOi8vZ2l0aHViLmNvbS9WaXN0YXVzXG5cbnlvdSdsbCBuZWVkIHRvIHJlc3RhcnQgZ25vbWUtc2hlbGwgYWZ0ZXIgdXBncmFkZXMgc28gZWl0aGVyIHJlYm9vdCxcbmxvZyBvdXQgYW5kIGJhY2sgaW4gYWdhaW4sIG9yIGlmIHlvdXIgdXNpbmcgWDExIHRoZW4gYWx0K0YyIHRoZW4gcnVuIHIiLAogICJuYW1lIjogIkFsdGVybmF0ZSBNZW51IGZvciBIcGxpcDIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaHBsaXAtbWVudTIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dyaXp6bHlzbWl0L2hwbGlwLW1lbnUyLWdyaXp6bHlzbWl0LnNtaXQuaWQuYXUiLAogICJ1dWlkIjogImhwbGlwLW1lbnUyQGdyaXp6bHlzbWl0LnNtaXQuaWQuYXUiLAogICJ2ZXJzaW9uIjogMTEKfQ=="},
     "42": {"version": "11", "sha256": "19h44pn5afqc89vn5xjrhmd375651zhf2w78cs8fgazp7pc0hsr6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWRpdHMiOiAiKEMpIEZyYW5jaXMgR3JpenpseSBTbWl0XG5cbkR1dGNoIHRyYW5zbGF0aW9uIFZpc3RhdXMgKEhlaW1lbiBTdG9mZmVscykgaHR0cHM6Ly9naXRodWIuY29tL1Zpc3RhdXNcblxuTGljZW5jZSBHUEwgdjIrXG5cbiIsCiAgImRlc2NyaXB0aW9uIjogImNvbnRyb2wgeW91ciBocCBwcmludGVycyBieSBjYWxsaW5nIHRoZSBkZXZpY2UgbWFuYWdlciBocC10b29sYm94LCBhbHNvIHNvbWUgdXNlZnVsIGxpbmtzXG5Nb3RpdmF0aW9uOiB0aGUgaHAtc3lzdHJheSBkb2Vzbid0IHdvcmsgcmVsaWFibHkgdW5kZXIgZ25vbWUgc2hlbGxcbnlvdSBuZWVkIHRvIGhhdmUgaW5zdGFsbGVkIGhwbGlwIGluIG9yZGVyIHRvIHVzZSB0aGlzXG5DaG9pY2Ugb2YgdXNpbmcgYSBwcmludGVyIGljb24gb3IgYSBocF9sb2dvLnBuZyBpZiBpdCdzIGluc3RhbGxlZCBpbiB0aGUgc2FtZSBwbGFjZSBhcyBtaW5lIG9uIFVidW50dVxueW91IGNvdWxkIHVzZSBzeW1ib2xpYyBsaW5rcyB0byBmYWtlIHRoZSBwYXRoLlxuVGhpcyBpcyBhIHJlcGxhY2VtZW50IGZvciB0aGUgb2xkIFwiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwXCIgd2hpY2ggZG9lc24ndCB3b3JrIHVuZGVyIHRoZSBuZXcgR29tZS1TaGVsbCBJIGhhdmUgY2xlYW5lZCBpdCB1cCBhIGJpdCBhbmQgaXQgaGFzIGEgZmV3IG5ldyBtZW51J3MgYnV0IGl0IGlzIHN0aWxsIGJhc2ljYWxseSB0aGUgc2FtZSB0aGluZy5cbiBBZGRlZCBldmVuIG1vcmUgbWVudXMgYWxsIG1vc3QgYWxsIHN5c3RlbSBzZXR0aW5ncyBvbmVzLlxuXG5Ob3RlOiB0aGUgbWVudSB3aWxsIGJlIHRvbyBiaWcgaWYgeW91ciByZXNvbHV0aW9uIGlzIHdheSB0b28gbG93IGxpa2UgODAweDYwMCBJIGhhdmUgbm8gc29sbiBmb3IgdGhpcyBqdXN0IG5vdy5cblxuRHV0Y2ggbGFuZ3VhZ2Ugc3VwcG9ydCBhZGRlZCBieSBWaXN0YXVzIChIZWltZW4gU3RvZmZlbHMpIGh0dHBzOi8vZ2l0aHViLmNvbS9WaXN0YXVzXG5cbnlvdSdsbCBuZWVkIHRvIHJlc3RhcnQgZ25vbWUtc2hlbGwgYWZ0ZXIgdXBncmFkZXMgc28gZWl0aGVyIHJlYm9vdCxcbmxvZyBvdXQgYW5kIGJhY2sgaW4gYWdhaW4sIG9yIGlmIHlvdXIgdXNpbmcgWDExIHRoZW4gYWx0K0YyIHRoZW4gcnVuIHIiLAogICJuYW1lIjogIkFsdGVybmF0ZSBNZW51IGZvciBIcGxpcDIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaHBsaXAtbWVudTIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dyaXp6bHlzbWl0L2hwbGlwLW1lbnUyLWdyaXp6bHlzbWl0LnNtaXQuaWQuYXUiLAogICJ1dWlkIjogImhwbGlwLW1lbnUyQGdyaXp6bHlzbWl0LnNtaXQuaWQuYXUiLAogICJ2ZXJzaW9uIjogMTEKfQ=="},
     "43": {"version": "11", "sha256": "19h44pn5afqc89vn5xjrhmd375651zhf2w78cs8fgazp7pc0hsr6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWRpdHMiOiAiKEMpIEZyYW5jaXMgR3JpenpseSBTbWl0XG5cbkR1dGNoIHRyYW5zbGF0aW9uIFZpc3RhdXMgKEhlaW1lbiBTdG9mZmVscykgaHR0cHM6Ly9naXRodWIuY29tL1Zpc3RhdXNcblxuTGljZW5jZSBHUEwgdjIrXG5cbiIsCiAgImRlc2NyaXB0aW9uIjogImNvbnRyb2wgeW91ciBocCBwcmludGVycyBieSBjYWxsaW5nIHRoZSBkZXZpY2UgbWFuYWdlciBocC10b29sYm94LCBhbHNvIHNvbWUgdXNlZnVsIGxpbmtzXG5Nb3RpdmF0aW9uOiB0aGUgaHAtc3lzdHJheSBkb2Vzbid0IHdvcmsgcmVsaWFibHkgdW5kZXIgZ25vbWUgc2hlbGxcbnlvdSBuZWVkIHRvIGhhdmUgaW5zdGFsbGVkIGhwbGlwIGluIG9yZGVyIHRvIHVzZSB0aGlzXG5DaG9pY2Ugb2YgdXNpbmcgYSBwcmludGVyIGljb24gb3IgYSBocF9sb2dvLnBuZyBpZiBpdCdzIGluc3RhbGxlZCBpbiB0aGUgc2FtZSBwbGFjZSBhcyBtaW5lIG9uIFVidW50dVxueW91IGNvdWxkIHVzZSBzeW1ib2xpYyBsaW5rcyB0byBmYWtlIHRoZSBwYXRoLlxuVGhpcyBpcyBhIHJlcGxhY2VtZW50IGZvciB0aGUgb2xkIFwiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwXCIgd2hpY2ggZG9lc24ndCB3b3JrIHVuZGVyIHRoZSBuZXcgR29tZS1TaGVsbCBJIGhhdmUgY2xlYW5lZCBpdCB1cCBhIGJpdCBhbmQgaXQgaGFzIGEgZmV3IG5ldyBtZW51J3MgYnV0IGl0IGlzIHN0aWxsIGJhc2ljYWxseSB0aGUgc2FtZSB0aGluZy5cbiBBZGRlZCBldmVuIG1vcmUgbWVudXMgYWxsIG1vc3QgYWxsIHN5c3RlbSBzZXR0aW5ncyBvbmVzLlxuXG5Ob3RlOiB0aGUgbWVudSB3aWxsIGJlIHRvbyBiaWcgaWYgeW91ciByZXNvbHV0aW9uIGlzIHdheSB0b28gbG93IGxpa2UgODAweDYwMCBJIGhhdmUgbm8gc29sbiBmb3IgdGhpcyBqdXN0IG5vdy5cblxuRHV0Y2ggbGFuZ3VhZ2Ugc3VwcG9ydCBhZGRlZCBieSBWaXN0YXVzIChIZWltZW4gU3RvZmZlbHMpIGh0dHBzOi8vZ2l0aHViLmNvbS9WaXN0YXVzXG5cbnlvdSdsbCBuZWVkIHRvIHJlc3RhcnQgZ25vbWUtc2hlbGwgYWZ0ZXIgdXBncmFkZXMgc28gZWl0aGVyIHJlYm9vdCxcbmxvZyBvdXQgYW5kIGJhY2sgaW4gYWdhaW4sIG9yIGlmIHlvdXIgdXNpbmcgWDExIHRoZW4gYWx0K0YyIHRoZW4gcnVuIHIiLAogICJuYW1lIjogIkFsdGVybmF0ZSBNZW51IGZvciBIcGxpcDIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaHBsaXAtbWVudTIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dyaXp6bHlzbWl0L2hwbGlwLW1lbnUyLWdyaXp6bHlzbWl0LnNtaXQuaWQuYXUiLAogICJ1dWlkIjogImhwbGlwLW1lbnUyQGdyaXp6bHlzbWl0LnNtaXQuaWQuYXUiLAogICJ2ZXJzaW9uIjogMTEKfQ=="},
     "44": {"version": "11", "sha256": "19h44pn5afqc89vn5xjrhmd375651zhf2w78cs8fgazp7pc0hsr6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWRpdHMiOiAiKEMpIEZyYW5jaXMgR3JpenpseSBTbWl0XG5cbkR1dGNoIHRyYW5zbGF0aW9uIFZpc3RhdXMgKEhlaW1lbiBTdG9mZmVscykgaHR0cHM6Ly9naXRodWIuY29tL1Zpc3RhdXNcblxuTGljZW5jZSBHUEwgdjIrXG5cbiIsCiAgImRlc2NyaXB0aW9uIjogImNvbnRyb2wgeW91ciBocCBwcmludGVycyBieSBjYWxsaW5nIHRoZSBkZXZpY2UgbWFuYWdlciBocC10b29sYm94LCBhbHNvIHNvbWUgdXNlZnVsIGxpbmtzXG5Nb3RpdmF0aW9uOiB0aGUgaHAtc3lzdHJheSBkb2Vzbid0IHdvcmsgcmVsaWFibHkgdW5kZXIgZ25vbWUgc2hlbGxcbnlvdSBuZWVkIHRvIGhhdmUgaW5zdGFsbGVkIGhwbGlwIGluIG9yZGVyIHRvIHVzZSB0aGlzXG5DaG9pY2Ugb2YgdXNpbmcgYSBwcmludGVyIGljb24gb3IgYSBocF9sb2dvLnBuZyBpZiBpdCdzIGluc3RhbGxlZCBpbiB0aGUgc2FtZSBwbGFjZSBhcyBtaW5lIG9uIFVidW50dVxueW91IGNvdWxkIHVzZSBzeW1ib2xpYyBsaW5rcyB0byBmYWtlIHRoZSBwYXRoLlxuVGhpcyBpcyBhIHJlcGxhY2VtZW50IGZvciB0aGUgb2xkIFwiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwXCIgd2hpY2ggZG9lc24ndCB3b3JrIHVuZGVyIHRoZSBuZXcgR29tZS1TaGVsbCBJIGhhdmUgY2xlYW5lZCBpdCB1cCBhIGJpdCBhbmQgaXQgaGFzIGEgZmV3IG5ldyBtZW51J3MgYnV0IGl0IGlzIHN0aWxsIGJhc2ljYWxseSB0aGUgc2FtZSB0aGluZy5cbiBBZGRlZCBldmVuIG1vcmUgbWVudXMgYWxsIG1vc3QgYWxsIHN5c3RlbSBzZXR0aW5ncyBvbmVzLlxuXG5Ob3RlOiB0aGUgbWVudSB3aWxsIGJlIHRvbyBiaWcgaWYgeW91ciByZXNvbHV0aW9uIGlzIHdheSB0b28gbG93IGxpa2UgODAweDYwMCBJIGhhdmUgbm8gc29sbiBmb3IgdGhpcyBqdXN0IG5vdy5cblxuRHV0Y2ggbGFuZ3VhZ2Ugc3VwcG9ydCBhZGRlZCBieSBWaXN0YXVzIChIZWltZW4gU3RvZmZlbHMpIGh0dHBzOi8vZ2l0aHViLmNvbS9WaXN0YXVzXG5cbnlvdSdsbCBuZWVkIHRvIHJlc3RhcnQgZ25vbWUtc2hlbGwgYWZ0ZXIgdXBncmFkZXMgc28gZWl0aGVyIHJlYm9vdCxcbmxvZyBvdXQgYW5kIGJhY2sgaW4gYWdhaW4sIG9yIGlmIHlvdXIgdXNpbmcgWDExIHRoZW4gYWx0K0YyIHRoZW4gcnVuIHIiLAogICJuYW1lIjogIkFsdGVybmF0ZSBNZW51IGZvciBIcGxpcDIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaHBsaXAtbWVudTIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dyaXp6bHlzbWl0L2hwbGlwLW1lbnUyLWdyaXp6bHlzbWl0LnNtaXQuaWQuYXUiLAogICJ1dWlkIjogImhwbGlwLW1lbnUyQGdyaXp6bHlzbWl0LnNtaXQuaWQuYXUiLAogICJ2ZXJzaW9uIjogMTEKfQ=="},
-    "45": {"version": "22", "sha256": "1smy8rmi6vxwgkdk3h9mffx9lkv2v5yn8hgn66wlm989bndyvxrw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWRpdHMiOiAiKEMpIEZyYW5jaXMgR3JpenpseSBTbWl0XG5cbkR1dGNoIHRyYW5zbGF0aW9uIFZpc3RhdXMgKEhlaW1lbiBTdG9mZmVscykgaHR0cHM6Ly9naXRodWIuY29tL1Zpc3RhdXNcblxuTGljZW5jZSBHUEwgdjIrXG5cbiIsCiAgImRlc2NyaXB0aW9uIjogImNvbnRyb2wgeW91ciBocCBwcmludGVycyBieSBjYWxsaW5nIHRoZSBkZXZpY2UgbWFuYWdlciBocC10b29sYm94LCBhbHNvIHNvbWUgdXNlZnVsIGxpbmtzXG5Nb3RpdmF0aW9uOiB0aGUgaHAtc3lzdHJheSBkb2Vzbid0IHdvcmsgcmVsaWFibHkgdW5kZXIgZ25vbWUgc2hlbGxcbnlvdSBuZWVkIHRvIGhhdmUgaW5zdGFsbGVkIGhwbGlwIGluIG9yZGVyIHRvIHVzZSB0aGlzXG5DaG9pY2Ugb2YgdXNpbmcgYSBwcmludGVyIGljb24gb3IgYSBocF9sb2dvLnBuZyBpZiBpdCdzIGluc3RhbGxlZCBpbiB0aGUgc2FtZSBwbGFjZSBhcyBtaW5lIG9uIFVidW50dVxueW91IGNvdWxkIHVzZSBzeW1ib2xpYyBsaW5rcyB0byBmYWtlIHRoZSBwYXRoLlxuVGhpcyBpcyBhIHJlcGxhY2VtZW50IGZvciB0aGUgb2xkIFwiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwXCIgd2hpY2ggZG9lc24ndCB3b3JrIHVuZGVyIHRoZSBuZXcgR29tZS1TaGVsbCBJIGhhdmUgY2xlYW5lZCBpdCB1cCBhIGJpdCBhbmQgaXQgaGFzIGEgZmV3IG5ldyBtZW51J3MgYnV0IGl0IGlzIHN0aWxsIGJhc2ljYWxseSB0aGUgc2FtZSB0aGluZy5cbiBBZGRlZCBldmVuIG1vcmUgbWVudXMgYWxsIG1vc3QgYWxsIHN5c3RlbSBzZXR0aW5ncyBvbmVzLlxuXG5Ob3RlOiB0aGUgbWVudSB3aWxsIGJlIHRvbyBiaWcgaWYgeW91ciByZXNvbHV0aW9uIGlzIHdheSB0b28gbG93IGxpa2UgODAweDYwMCBJIGhhdmUgbm8gc29sbiBmb3IgdGhpcyBqdXN0IG5vdy5cblxuRHV0Y2ggbGFuZ3VhZ2Ugc3VwcG9ydCBhZGRlZCBieSBWaXN0YXVzIChIZWltZW4gU3RvZmZlbHMpIGh0dHBzOi8vZ2l0aHViLmNvbS9WaXN0YXVzXG5cbnlvdSdsbCBuZWVkIHRvIHJlc3RhcnQgZ25vbWUtc2hlbGwgYWZ0ZXIgdXBncmFkZXMgc28gZWl0aGVyIHJlYm9vdCxcbmxvZyBvdXQgYW5kIGJhY2sgaW4gYWdhaW4sIG9yIGlmIHlvdXIgdXNpbmcgWDExIHRoZW4gYWx0K0YyIHRoZW4gcnVuIHIiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJocGxpcC1tZW51MiIsCiAgIm5hbWUiOiAiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwMiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ocGxpcC1tZW51MiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ3JpenpseXNtaXQvaHBsaXAtbWVudTItZ3JpenpseXNtaXQuc21pdC5pZC5hdSIsCiAgInV1aWQiOiAiaHBsaXAtbWVudTJAZ3JpenpseXNtaXQuc21pdC5pZC5hdSIsCiAgInZlcnNpb24iOiAyMgp9"},
-    "46": {"version": "22", "sha256": "1smy8rmi6vxwgkdk3h9mffx9lkv2v5yn8hgn66wlm989bndyvxrw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWRpdHMiOiAiKEMpIEZyYW5jaXMgR3JpenpseSBTbWl0XG5cbkR1dGNoIHRyYW5zbGF0aW9uIFZpc3RhdXMgKEhlaW1lbiBTdG9mZmVscykgaHR0cHM6Ly9naXRodWIuY29tL1Zpc3RhdXNcblxuTGljZW5jZSBHUEwgdjIrXG5cbiIsCiAgImRlc2NyaXB0aW9uIjogImNvbnRyb2wgeW91ciBocCBwcmludGVycyBieSBjYWxsaW5nIHRoZSBkZXZpY2UgbWFuYWdlciBocC10b29sYm94LCBhbHNvIHNvbWUgdXNlZnVsIGxpbmtzXG5Nb3RpdmF0aW9uOiB0aGUgaHAtc3lzdHJheSBkb2Vzbid0IHdvcmsgcmVsaWFibHkgdW5kZXIgZ25vbWUgc2hlbGxcbnlvdSBuZWVkIHRvIGhhdmUgaW5zdGFsbGVkIGhwbGlwIGluIG9yZGVyIHRvIHVzZSB0aGlzXG5DaG9pY2Ugb2YgdXNpbmcgYSBwcmludGVyIGljb24gb3IgYSBocF9sb2dvLnBuZyBpZiBpdCdzIGluc3RhbGxlZCBpbiB0aGUgc2FtZSBwbGFjZSBhcyBtaW5lIG9uIFVidW50dVxueW91IGNvdWxkIHVzZSBzeW1ib2xpYyBsaW5rcyB0byBmYWtlIHRoZSBwYXRoLlxuVGhpcyBpcyBhIHJlcGxhY2VtZW50IGZvciB0aGUgb2xkIFwiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwXCIgd2hpY2ggZG9lc24ndCB3b3JrIHVuZGVyIHRoZSBuZXcgR29tZS1TaGVsbCBJIGhhdmUgY2xlYW5lZCBpdCB1cCBhIGJpdCBhbmQgaXQgaGFzIGEgZmV3IG5ldyBtZW51J3MgYnV0IGl0IGlzIHN0aWxsIGJhc2ljYWxseSB0aGUgc2FtZSB0aGluZy5cbiBBZGRlZCBldmVuIG1vcmUgbWVudXMgYWxsIG1vc3QgYWxsIHN5c3RlbSBzZXR0aW5ncyBvbmVzLlxuXG5Ob3RlOiB0aGUgbWVudSB3aWxsIGJlIHRvbyBiaWcgaWYgeW91ciByZXNvbHV0aW9uIGlzIHdheSB0b28gbG93IGxpa2UgODAweDYwMCBJIGhhdmUgbm8gc29sbiBmb3IgdGhpcyBqdXN0IG5vdy5cblxuRHV0Y2ggbGFuZ3VhZ2Ugc3VwcG9ydCBhZGRlZCBieSBWaXN0YXVzIChIZWltZW4gU3RvZmZlbHMpIGh0dHBzOi8vZ2l0aHViLmNvbS9WaXN0YXVzXG5cbnlvdSdsbCBuZWVkIHRvIHJlc3RhcnQgZ25vbWUtc2hlbGwgYWZ0ZXIgdXBncmFkZXMgc28gZWl0aGVyIHJlYm9vdCxcbmxvZyBvdXQgYW5kIGJhY2sgaW4gYWdhaW4sIG9yIGlmIHlvdXIgdXNpbmcgWDExIHRoZW4gYWx0K0YyIHRoZW4gcnVuIHIiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJocGxpcC1tZW51MiIsCiAgIm5hbWUiOiAiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwMiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ocGxpcC1tZW51MiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ3JpenpseXNtaXQvaHBsaXAtbWVudTItZ3JpenpseXNtaXQuc21pdC5pZC5hdSIsCiAgInV1aWQiOiAiaHBsaXAtbWVudTJAZ3JpenpseXNtaXQuc21pdC5pZC5hdSIsCiAgInZlcnNpb24iOiAyMgp9"}
+    "45": {"version": "23", "sha256": "128c5qbm3sirk3slaxqallij1zr13jf9mfc50pr7dlv42bbgh864", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWRpdHMiOiAiKEMpIEZyYW5jaXMgR3JpenpseSBTbWl0XG5cbkR1dGNoIHRyYW5zbGF0aW9uIFZpc3RhdXMgKEhlaW1lbiBTdG9mZmVscykgaHR0cHM6Ly9naXRodWIuY29tL1Zpc3RhdXNcblxuTGljZW5jZSBHUEwgdjIrXG5cbiIsCiAgImRlc2NyaXB0aW9uIjogImNvbnRyb2wgeW91ciBocCBwcmludGVycyBieSBjYWxsaW5nIHRoZSBkZXZpY2UgbWFuYWdlciBocC10b29sYm94LCBhbHNvIHNvbWUgdXNlZnVsIGxpbmtzXG5Nb3RpdmF0aW9uOiB0aGUgaHAtc3lzdHJheSBkb2Vzbid0IHdvcmsgcmVsaWFibHkgdW5kZXIgZ25vbWUgc2hlbGxcbnlvdSBuZWVkIHRvIGhhdmUgaW5zdGFsbGVkIGhwbGlwIGluIG9yZGVyIHRvIHVzZSB0aGlzXG5DaG9pY2Ugb2YgdXNpbmcgYSBwcmludGVyIGljb24gb3IgYSBocF9sb2dvLnBuZyBpZiBpdCdzIGluc3RhbGxlZCBpbiB0aGUgc2FtZSBwbGFjZSBhcyBtaW5lIG9uIFVidW50dVxueW91IGNvdWxkIHVzZSBzeW1ib2xpYyBsaW5rcyB0byBmYWtlIHRoZSBwYXRoLlxuVGhpcyBpcyBhIHJlcGxhY2VtZW50IGZvciB0aGUgb2xkIFwiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwXCIgd2hpY2ggZG9lc24ndCB3b3JrIHVuZGVyIHRoZSBuZXcgR29tZS1TaGVsbCBJIGhhdmUgY2xlYW5lZCBpdCB1cCBhIGJpdCBhbmQgaXQgaGFzIGEgZmV3IG5ldyBtZW51J3MgYnV0IGl0IGlzIHN0aWxsIGJhc2ljYWxseSB0aGUgc2FtZSB0aGluZy5cbiBBZGRlZCBldmVuIG1vcmUgbWVudXMgYWxsIG1vc3QgYWxsIHN5c3RlbSBzZXR0aW5ncyBvbmVzLlxuXG5Ob3RlOiB0aGUgbWVudSB3aWxsIGJlIHRvbyBiaWcgaWYgeW91ciByZXNvbHV0aW9uIGlzIHdheSB0b28gbG93IGxpa2UgODAweDYwMCBJIGhhdmUgbm8gc29sbiBmb3IgdGhpcyBqdXN0IG5vdy5cblxuRHV0Y2ggbGFuZ3VhZ2Ugc3VwcG9ydCBhZGRlZCBieSBWaXN0YXVzIChIZWltZW4gU3RvZmZlbHMpIGh0dHBzOi8vZ2l0aHViLmNvbS9WaXN0YXVzXG5cbnlvdSdsbCBuZWVkIHRvIHJlc3RhcnQgZ25vbWUtc2hlbGwgYWZ0ZXIgdXBncmFkZXMgc28gZWl0aGVyIHJlYm9vdCxcbmxvZyBvdXQgYW5kIGJhY2sgaW4gYWdhaW4sIG9yIGlmIHlvdXIgdXNpbmcgWDExIHRoZW4gYWx0K0YyIHRoZW4gcnVuIHIiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJocGxpcC1tZW51MiIsCiAgIm5hbWUiOiAiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwMiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ocGxpcC1tZW51MiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ3JpenpseXNtaXQvaHBsaXAtbWVudTItZ3JpenpseXNtaXQuc21pdC5pZC5hdSIsCiAgInV1aWQiOiAiaHBsaXAtbWVudTJAZ3JpenpseXNtaXQuc21pdC5pZC5hdSIsCiAgInZlcnNpb24iOiAyMwp9"},
+    "46": {"version": "27", "sha256": "0yfi83bqalsw842h0h6g5cqvg0pvfgc6vk8iffn9xalqzw6wa8kh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWRpdHMiOiAiKEMpIEZyYW5jaXMgR3JpenpseSBTbWl0XG5cbkR1dGNoIHRyYW5zbGF0aW9uIFZpc3RhdXMgKEhlaW1lbiBTdG9mZmVscykgaHR0cHM6Ly9naXRodWIuY29tL1Zpc3RhdXNcblxuTGljZW5jZSBHUEwgdjIrXG5cblRoZSBjb21tcGFjdCBtb2RlIHVzZXMgY29kZSBmcm9tIHRoZSBBcHBzIE1lbnUgYnkgZm11ZWxsbmVyXG5cbiIsCiAgImRlc2NyaXB0aW9uIjogImNvbnRyb2wgeW91ciBocCBwcmludGVycyBieSBjYWxsaW5nIHRoZSBkZXZpY2UgbWFuYWdlciBocC10b29sYm94LCBhbHNvIHNvbWUgdXNlZnVsIGxpbmtzXG5Nb3RpdmF0aW9uOiB0aGUgaHAtc3lzdHJheSBkb2Vzbid0IHdvcmsgcmVsaWFibHkgdW5kZXIgZ25vbWUgc2hlbGxcbnlvdSBuZWVkIHRvIGhhdmUgaW5zdGFsbGVkIGhwbGlwIGluIG9yZGVyIHRvIHVzZSB0aGlzXG5DaG9pY2Ugb2YgdXNpbmcgYSBwcmludGVyIGljb24gb3IgYSBocF9sb2dvLnBuZyBpZiBpdCdzIGluc3RhbGxlZCBpbiB0aGUgc2FtZSBwbGFjZSBhcyBtaW5lIG9uIFVidW50dVxueW91IGNvdWxkIHVzZSBzeW1ib2xpYyBsaW5rcyB0byBmYWtlIHRoZSBwYXRoLlxuVGhpcyBpcyBhIHJlcGxhY2VtZW50IGZvciB0aGUgb2xkIFwiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwXCIgd2hpY2ggZG9lc24ndCB3b3JrIHVuZGVyIHRoZSBuZXcgR29tZS1TaGVsbCBJIGhhdmUgY2xlYW5lZCBpdCB1cCBhIGJpdCBhbmQgaXQgaGFzIGEgZmV3IG5ldyBtZW51J3MgYnV0IGl0IGlzIHN0aWxsIGJhc2ljYWxseSB0aGUgc2FtZSB0aGluZy5cbiBBZGRlZCBldmVuIG1vcmUgbWVudXMgYWxsIG1vc3QgYWxsIHN5c3RlbSBzZXR0aW5ncyBvbmVzLlxuXG5OZXc6IHRoZSBtZW51IHdpbGwgYmUgdG9vIGJpZyBpZiB5b3VyIHJlc29sdXRpb24gaXMgd2F5IHRvbyBsb3cgbGlrZSA4MDB4NjAwIEkgaGF2ZSBpbXBsZW1lbnRlZCBhIGNvbXBhY3Qgb3B0aW9uIGluIHRoZSBzZXR0aW5ncywgaWYgeW91IHVzZSBpdCB0aGUgbWVudSB3aWxsIGJlY29tZSBhIHR3byBjb2xvbW4gY29tcGFjdCBmb3JtYXQgYW5kIHdpbGwgZml0IGV2ZW4gb24gc3VjaCBhIGxvdyByZXNvbHV0aW9uLlxuXG5EdXRjaCBsYW5ndWFnZSBzdXBwb3J0IGFkZGVkIGJ5IFZpc3RhdXMgKEhlaW1lbiBTdG9mZmVscykgaHR0cHM6Ly9naXRodWIuY29tL1Zpc3RhdXNcblxueW91J2xsIG5lZWQgdG8gcmVzdGFydCBnbm9tZS1zaGVsbCBhZnRlciB1cGdyYWRlcyBzbyBlaXRoZXIgcmVib290LFxubG9nIG91dCBhbmQgYmFjayBpbiBhZ2Fpbiwgb3IgaWYgeW91ciB1c2luZyBYMTEgdGhlbiBhbHQrRjIgdGhlbiBydW4gciIsCiAgImdldHRleHQtZG9tYWluIjogImhwbGlwLW1lbnUyIiwKICAibmFtZSI6ICJBbHRlcm5hdGUgTWVudSBmb3IgSHBsaXAyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhwbGlwLW1lbnUyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dyaXp6bHlzbWl0L2hwbGlwLW1lbnUyLWdyaXp6bHlzbWl0LnNtaXQuaWQuYXUiLAogICJ1dWlkIjogImhwbGlwLW1lbnUyQGdyaXp6bHlzbWl0LnNtaXQuaWQuYXUiLAogICJ2ZXJzaW9uIjogMjcKfQ=="}
   }}
 , {"uuid": "dash-from-panel@fthx", "name": "Dash from Panel", "pname": "dash-from-panel", "description": "NOT MAINTAINED ANYMORE\n\nTop dock for GNOME 40+. Hover top panel and GNOME Shell dash appears without overview.\n\n Scroll on dock or panel changes workspace. Preferences UI.\n\n Does use native GNOME Shell Dash. Very light extension.\n\n Please report bugs through GitHub.", "link": "https://extensions.gnome.org/extension/4741/dash-from-panel/", "shell_version_map": {
     "40": {"version": "3", "sha256": "18ikbd1hxlc6rd28dnif2x74g3q9gdkgxc6jpag6qh7c51qd5klz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5PVCBNQUlOVEFJTkVEIEFOWU1PUkVcblxuVG9wIGRvY2sgZm9yIEdOT01FIDQwKy4gSG92ZXIgdG9wIHBhbmVsIGFuZCBHTk9NRSBTaGVsbCBkYXNoIGFwcGVhcnMgd2l0aG91dCBvdmVydmlldy5cblxuIFNjcm9sbCBvbiBkb2NrIG9yIHBhbmVsIGNoYW5nZXMgd29ya3NwYWNlLiBQcmVmZXJlbmNlcyBVSS5cblxuIERvZXMgdXNlIG5hdGl2ZSBHTk9NRSBTaGVsbCBEYXNoLiBWZXJ5IGxpZ2h0IGV4dGVuc2lvbi5cblxuIFBsZWFzZSByZXBvcnQgYnVncyB0aHJvdWdoIEdpdEh1Yi4iLAogICJuYW1lIjogIkRhc2ggZnJvbSBQYW5lbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvZGFzaC1mcm9tLXBhbmVsIiwKICAidXVpZCI6ICJkYXNoLWZyb20tcGFuZWxAZnRoeCIsCiAgInZlcnNpb24iOiAzCn0="},
@@ -4477,7 +4511,8 @@
     "42": {"version": "9", "sha256": "00k8nh5dwvdgbax9051yn8462axpsixfa45hw77j2gnlxfkx5577", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgZXh0ZW5zaW9uIHRvIHVzZSBZYWt1YWtlIG9uIEdub21lLiBBZGRzIGEgZ2xvYmFsIHNob3J0Y3V0IHRvIHNob3cvaGlkZSB5YWt1YWtlIGFuZCBtYWtlcyB0aGUgY29uc29sZSBhcHBlYXIgZm9jdXNzZWQuIiwKICAibmFtZSI6ICJZYWt1YWtlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGJlcnR2YWthL3lha3Vha2UtZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ5YWt1YWtlLWV4dGVuc2lvbkBrZGUub3JnIiwKICAidmVyc2lvbiI6IDkKfQ=="},
     "43": {"version": "9", "sha256": "00k8nh5dwvdgbax9051yn8462axpsixfa45hw77j2gnlxfkx5577", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgZXh0ZW5zaW9uIHRvIHVzZSBZYWt1YWtlIG9uIEdub21lLiBBZGRzIGEgZ2xvYmFsIHNob3J0Y3V0IHRvIHNob3cvaGlkZSB5YWt1YWtlIGFuZCBtYWtlcyB0aGUgY29uc29sZSBhcHBlYXIgZm9jdXNzZWQuIiwKICAibmFtZSI6ICJZYWt1YWtlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGJlcnR2YWthL3lha3Vha2UtZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ5YWt1YWtlLWV4dGVuc2lvbkBrZGUub3JnIiwKICAidmVyc2lvbiI6IDkKfQ=="},
     "44": {"version": "9", "sha256": "00k8nh5dwvdgbax9051yn8462axpsixfa45hw77j2gnlxfkx5577", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgZXh0ZW5zaW9uIHRvIHVzZSBZYWt1YWtlIG9uIEdub21lLiBBZGRzIGEgZ2xvYmFsIHNob3J0Y3V0IHRvIHNob3cvaGlkZSB5YWt1YWtlIGFuZCBtYWtlcyB0aGUgY29uc29sZSBhcHBlYXIgZm9jdXNzZWQuIiwKICAibmFtZSI6ICJZYWt1YWtlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGJlcnR2YWthL3lha3Vha2UtZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ5YWt1YWtlLWV4dGVuc2lvbkBrZGUub3JnIiwKICAidmVyc2lvbiI6IDkKfQ=="},
-    "45": {"version": "11", "sha256": "0259dg2950qa88asd23zqdsyf926kyyzmg14rv6cbz0vzq5mspb1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgZXh0ZW5zaW9uIHRvIHVzZSBZYWt1YWtlIG9uIEdub21lLiBBZGRzIGEgZ2xvYmFsIHNob3J0Y3V0IHRvIHNob3cvaGlkZSB5YWt1YWtlIGFuZCBtYWtlcyB0aGUgY29uc29sZSBhcHBlYXIgZm9jdXNzZWQuIiwKICAibmFtZSI6ICJZYWt1YWtlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnlha3Vha2UtZXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FsYmVydHZha2EveWFrdWFrZS1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogInlha3Vha2UtZXh0ZW5zaW9uQGtkZS5vcmciLAogICJ2ZXJzaW9uIjogMTEKfQ=="}
+    "45": {"version": "12", "sha256": "0s1gfa4a2dc658cd5j7j8d77id3cwxxk87n6rvhkprrdgz98rwfa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgZXh0ZW5zaW9uIHRvIHVzZSBZYWt1YWtlIG9uIEdub21lLiBBZGRzIGEgZ2xvYmFsIHNob3J0Y3V0IHRvIHNob3cvaGlkZSB5YWt1YWtlIGFuZCBtYWtlcyB0aGUgY29uc29sZSBhcHBlYXIgZm9jdXNzZWQuIiwKICAibmFtZSI6ICJZYWt1YWtlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnlha3Vha2UtZXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGJlcnR2YWthL3lha3Vha2UtZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ5YWt1YWtlLWV4dGVuc2lvbkBrZGUub3JnIiwKICAidmVyc2lvbiI6IDEyCn0="},
+    "46": {"version": "12", "sha256": "0s1gfa4a2dc658cd5j7j8d77id3cwxxk87n6rvhkprrdgz98rwfa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgZXh0ZW5zaW9uIHRvIHVzZSBZYWt1YWtlIG9uIEdub21lLiBBZGRzIGEgZ2xvYmFsIHNob3J0Y3V0IHRvIHNob3cvaGlkZSB5YWt1YWtlIGFuZCBtYWtlcyB0aGUgY29uc29sZSBhcHBlYXIgZm9jdXNzZWQuIiwKICAibmFtZSI6ICJZYWt1YWtlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnlha3Vha2UtZXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGJlcnR2YWthL3lha3Vha2UtZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ5YWt1YWtlLWV4dGVuc2lvbkBrZGUub3JnIiwKICAidmVyc2lvbiI6IDEyCn0="}
   }}
 , {"uuid": "dnf-shotcuts@rx1310", "name": "Shortcuts for DNF", "pname": "shortcuts-for-dnf", "description": "A small extension that adds buttons to the panel to check for DNF updates through the terminal without entering commands.", "link": "https://extensions.gnome.org/extension/4758/shortcuts-for-dnf/", "shell_version_map": {
     "38": {"version": "4", "sha256": "0hknf92ijxg6xcadk7sac3qvlc8lpyf80013vkmzai7bbbbcypsm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc21hbGwgZXh0ZW5zaW9uIHRoYXQgYWRkcyBidXR0b25zIHRvIHRoZSBwYW5lbCB0byBjaGVjayBmb3IgRE5GIHVwZGF0ZXMgdGhyb3VnaCB0aGUgdGVybWluYWwgd2l0aG91dCBlbnRlcmluZyBjb21tYW5kcy4iLAogICJuYW1lIjogIlNob3J0Y3V0cyBmb3IgRE5GIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcngxMzEwL2dub21lLWV4dGVuc2lvbl9hcHR1cGRhdGUiLAogICJ1dWlkIjogImRuZi1zaG90Y3V0c0ByeDEzMTAiLAogICJ2ZXJzaW9uIjogNAp9"},
@@ -4667,7 +4702,7 @@
     "43": {"version": "41", "sha256": "1kpwdir0rs086iky86c2gdfk3n9aja4xcg8s46kd7f2gv12l1sl7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIENsaXBib2FyZCBIaXN0b3J5IGlzIGEgY2xpcGJvYXJkIG1hbmFnZXIgR05PTUUgZXh0ZW5zaW9uIHRoYXQgc2F2ZXMgaXRlbXMgeW91J3ZlIGNvcGllZCBpbnRvIGFuIGVhc2lseSBhY2Nlc3NpYmxlLCBzZWFyY2hhYmxlIGhpc3RvcnkgcGFuZWwuIiwKICAibmFtZSI6ICJDbGlwYm9hcmQgSGlzdG9yeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU1VQRVJDSUxFWC9nbm9tZS1jbGlwYm9hcmQtaGlzdG9yeSIsCiAgInV1aWQiOiAiY2xpcGJvYXJkLWhpc3RvcnlAYWxleHNhdmVhdS5kZXYiLAogICJ2ZXJzaW9uIjogNDEKfQ=="},
     "44": {"version": "41", "sha256": "1kpwdir0rs086iky86c2gdfk3n9aja4xcg8s46kd7f2gv12l1sl7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIENsaXBib2FyZCBIaXN0b3J5IGlzIGEgY2xpcGJvYXJkIG1hbmFnZXIgR05PTUUgZXh0ZW5zaW9uIHRoYXQgc2F2ZXMgaXRlbXMgeW91J3ZlIGNvcGllZCBpbnRvIGFuIGVhc2lseSBhY2Nlc3NpYmxlLCBzZWFyY2hhYmxlIGhpc3RvcnkgcGFuZWwuIiwKICAibmFtZSI6ICJDbGlwYm9hcmQgSGlzdG9yeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU1VQRVJDSUxFWC9nbm9tZS1jbGlwYm9hcmQtaGlzdG9yeSIsCiAgInV1aWQiOiAiY2xpcGJvYXJkLWhpc3RvcnlAYWxleHNhdmVhdS5kZXYiLAogICJ2ZXJzaW9uIjogNDEKfQ=="},
     "45": {"version": "40", "sha256": "0yjm2py35rlsrdcpayaak0jqdnnpmdg6jp44fklg1ds06mnn7q4s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIENsaXBib2FyZCBIaXN0b3J5IGlzIGEgY2xpcGJvYXJkIG1hbmFnZXIgR05PTUUgZXh0ZW5zaW9uIHRoYXQgc2F2ZXMgaXRlbXMgeW91J3ZlIGNvcGllZCBpbnRvIGFuIGVhc2lseSBhY2Nlc3NpYmxlLCBzZWFyY2hhYmxlIGhpc3RvcnkgcGFuZWwuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY2xpcGJvYXJkLWhpc3RvcnlAYWxleHNhdmVhdS5kZXYiLAogICJuYW1lIjogIkNsaXBib2FyZCBIaXN0b3J5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNsaXBib2FyZC1oaXN0b3J5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NVUEVSQ0lMRVgvZ25vbWUtY2xpcGJvYXJkLWhpc3RvcnkiLAogICJ1dWlkIjogImNsaXBib2FyZC1oaXN0b3J5QGFsZXhzYXZlYXUuZGV2IiwKICAidmVyc2lvbiI6IDQwCn0="},
-    "46": {"version": "39", "sha256": "1b6y8yda9sibjgyz2vm2v23d8fk6rdnk7mdsgl098sqklfy683v9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIENsaXBib2FyZCBIaXN0b3J5IGlzIGEgY2xpcGJvYXJkIG1hbmFnZXIgR05PTUUgZXh0ZW5zaW9uIHRoYXQgc2F2ZXMgaXRlbXMgeW91J3ZlIGNvcGllZCBpbnRvIGFuIGVhc2lseSBhY2Nlc3NpYmxlLCBzZWFyY2hhYmxlIGhpc3RvcnkgcGFuZWwuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY2xpcGJvYXJkLWhpc3RvcnlAYWxleHNhdmVhdS5kZXYiLAogICJuYW1lIjogIkNsaXBib2FyZCBIaXN0b3J5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNsaXBib2FyZC1oaXN0b3J5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NVUEVSQ0lMRVgvZ25vbWUtY2xpcGJvYXJkLWhpc3RvcnkiLAogICJ1dWlkIjogImNsaXBib2FyZC1oaXN0b3J5QGFsZXhzYXZlYXUuZGV2IiwKICAidmVyc2lvbiI6IDM5Cn0="}
+    "46": {"version": "42", "sha256": "1bp8xzwkszkr1qpd7dig7bmlckc6p65z72xr345la0kh370by4jn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIENsaXBib2FyZCBIaXN0b3J5IGlzIGEgY2xpcGJvYXJkIG1hbmFnZXIgR05PTUUgZXh0ZW5zaW9uIHRoYXQgc2F2ZXMgaXRlbXMgeW91J3ZlIGNvcGllZCBpbnRvIGFuIGVhc2lseSBhY2Nlc3NpYmxlLCBzZWFyY2hhYmxlIGhpc3RvcnkgcGFuZWwuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY2xpcGJvYXJkLWhpc3RvcnlAYWxleHNhdmVhdS5kZXYiLAogICJuYW1lIjogIkNsaXBib2FyZCBIaXN0b3J5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNsaXBib2FyZC1oaXN0b3J5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NVUEVSQ0lMRVgvZ25vbWUtY2xpcGJvYXJkLWhpc3RvcnkiLAogICJ1dWlkIjogImNsaXBib2FyZC1oaXN0b3J5QGFsZXhzYXZlYXUuZGV2IiwKICAidmVyc2lvbiI6IDQyCn0="}
   }}
 , {"uuid": "strongdm@andybrown668.github.com", "name": "StrongDM", "pname": "strongdm", "description": "Access StrongDM resources", "link": "https://extensions.gnome.org/extension/4841/strongdm/", "shell_version_map": {
     "40": {"version": "3", "sha256": "02dfs597cs8zz7wwl3kqb8i9kxdi9p7ywvk22kvmy5p4gkc181j7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyBTdHJvbmdETSByZXNvdXJjZXMiLAogICJuYW1lIjogIlN0cm9uZ0RNIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbmR5YnJvd242Njgvc3Ryb25nZG0tZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLmdpdCIsCiAgInV1aWQiOiAic3Ryb25nZG1AYW5keWJyb3duNjY4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMwp9"},
@@ -4708,7 +4743,8 @@
     "42": {"version": "9", "sha256": "0p7jci2rbkypspb8ywdmfxcnmvza3anhbsi372qvsv90ai9aqxv6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhZGRpdGlvbmFsIHdpbmRvdyBtYW5hZ2VtZW50IHNob3J0Y3V0cyIsCiAgIm5hbWUiOiAiUXVhcnRlciBXaW5kb3dzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Ryb3lyZWFkeS9xdWFydGVyd2luZG93cyIsCiAgInV1aWQiOiAicXVhcnRlcndpbmRvd3NAdHJveXJlYWR5LmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="},
     "43": {"version": "9", "sha256": "0p7jci2rbkypspb8ywdmfxcnmvza3anhbsi372qvsv90ai9aqxv6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhZGRpdGlvbmFsIHdpbmRvdyBtYW5hZ2VtZW50IHNob3J0Y3V0cyIsCiAgIm5hbWUiOiAiUXVhcnRlciBXaW5kb3dzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Ryb3lyZWFkeS9xdWFydGVyd2luZG93cyIsCiAgInV1aWQiOiAicXVhcnRlcndpbmRvd3NAdHJveXJlYWR5LmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="},
     "44": {"version": "9", "sha256": "0p7jci2rbkypspb8ywdmfxcnmvza3anhbsi372qvsv90ai9aqxv6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhZGRpdGlvbmFsIHdpbmRvdyBtYW5hZ2VtZW50IHNob3J0Y3V0cyIsCiAgIm5hbWUiOiAiUXVhcnRlciBXaW5kb3dzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Ryb3lyZWFkeS9xdWFydGVyd2luZG93cyIsCiAgInV1aWQiOiAicXVhcnRlcndpbmRvd3NAdHJveXJlYWR5LmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="},
-    "45": {"version": "10", "sha256": "0a0zkyxi4gizsrp24qcxidn5z7y0xk8z6gwrcqyc5yan2ai8cgd3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhZGRpdGlvbmFsIHdpbmRvdyBtYW5hZ2VtZW50IHNob3J0Y3V0cyIsCiAgIm5hbWUiOiAiUXVhcnRlciBXaW5kb3dzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNvbS10cm95cmVhZHktcXVhcnRlcndpbmRvd3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHJveXJlYWR5L3F1YXJ0ZXJ3aW5kb3dzIiwKICAidXVpZCI6ICJxdWFydGVyd2luZG93c0B0cm95cmVhZHkuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}
+    "45": {"version": "11", "sha256": "05jlynl1098ha06gnkw96ilmrwj50266v7p66cs7rz8kbz2idx40", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhZGRpdGlvbmFsIHdpbmRvdyBtYW5hZ2VtZW50IHNob3J0Y3V0cyIsCiAgIm5hbWUiOiAiUXVhcnRlciBXaW5kb3dzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNvbS10cm95cmVhZHktcXVhcnRlcndpbmRvd3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Ryb3lyZWFkeS9xdWFydGVyd2luZG93cyIsCiAgInV1aWQiOiAicXVhcnRlcndpbmRvd3NAdHJveXJlYWR5LmNvbSIsCiAgInZlcnNpb24iOiAxMQp9"},
+    "46": {"version": "11", "sha256": "05jlynl1098ha06gnkw96ilmrwj50266v7p66cs7rz8kbz2idx40", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhZGRpdGlvbmFsIHdpbmRvdyBtYW5hZ2VtZW50IHNob3J0Y3V0cyIsCiAgIm5hbWUiOiAiUXVhcnRlciBXaW5kb3dzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNvbS10cm95cmVhZHktcXVhcnRlcndpbmRvd3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Ryb3lyZWFkeS9xdWFydGVyd2luZG93cyIsCiAgInV1aWQiOiAicXVhcnRlcndpbmRvd3NAdHJveXJlYWR5LmNvbSIsCiAgInZlcnNpb24iOiAxMQp9"}
   }}
 , {"uuid": "batt_consumption_wattmetter@wennaspeedy", "name": "Power battery Consumption Watt Meter", "pname": "bat_consumption_wattmeter", "description": "Shows actual charging/discharging consumption (+/-) in Watt next to battery percentage level.\nEnable percentage label when disabled.\nDefault sync reload set to 4 seconds.\nNo consumption info when battery is full.\nSettings: interval, percentage label (also when full), battery selection", "link": "https://extensions.gnome.org/extension/4862/bat_consumption_wattmeter/", "shell_version_map": {
     "40": {"version": "10", "sha256": "1qidycwl16b2x4x6chzzkyvpawwpkfy0rhp0lq2szbkmv3k4glin", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGFjdHVhbCBjaGFyZ2luZy9kaXNjaGFyZ2luZyBjb25zdW1wdGlvbiAoKy8tKSBpbiBXYXR0IG5leHQgdG8gYmF0dGVyeSBwZXJjZW50YWdlIGxldmVsLlxuRW5hYmxlIHBlcmNlbnRhZ2UgbGFiZWwgd2hlbiBkaXNhYmxlZC5cbkRlZmF1bHQgc3luYyByZWxvYWQgc2V0IHRvIDQgc2Vjb25kcy5cbk5vIGNvbnN1bXB0aW9uIGluZm8gd2hlbiBiYXR0ZXJ5IGlzIGZ1bGwuXG5TZXR0aW5nczogaW50ZXJ2YWwsIHBlcmNlbnRhZ2UgbGFiZWwgKGFsc28gd2hlbiBmdWxsKSwgYmF0dGVyeSBzZWxlY3Rpb24iLAogICJuYW1lIjogIlBvd2VyIGJhdHRlcnkgQ29uc3VtcHRpb24gV2F0dCBNZXRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlbm5hc3BlZWR5L2JhdHRfY29uc3VtcHRpb25fd2F0dG1ldHRlciIsCiAgInV1aWQiOiAiYmF0dF9jb25zdW1wdGlvbl93YXR0bWV0dGVyQHdlbm5hc3BlZWR5IiwKICAidmVyc2lvbiI6IDEwCn0="},
@@ -4830,8 +4866,8 @@
     "42": {"version": "18", "sha256": "0mklxqybxnlw8jpfljyg2hapw8zgi732162ris96li0440a8h616", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGFwcCBpY29uIHRhc2tiYXIuIFNob3cgcnVubmluZyBhcHBzIGFuZCBmYXZvcml0ZXMgb24gdGhlIG1haW4gcGFuZWwuIiwKICAiZG9uYXRpb25zIjogewogICAgInBheXBhbCI6ICJhemFlY2giCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXp0YXNrYmFyIiwKICAibmFtZSI6ICJBcHAgSWNvbnMgVGFza2JhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5henRhc2tiYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9BbmRyZXdaYWVjaC9henRhc2tiYXIiLAogICJ1dWlkIjogImF6dGFza2JhckBhenRhc2tiYXIuZ2l0bGFiLmNvbSIsCiAgInZlcnNpb24iOiAxOAp9"},
     "43": {"version": "18", "sha256": "0mklxqybxnlw8jpfljyg2hapw8zgi732162ris96li0440a8h616", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGFwcCBpY29uIHRhc2tiYXIuIFNob3cgcnVubmluZyBhcHBzIGFuZCBmYXZvcml0ZXMgb24gdGhlIG1haW4gcGFuZWwuIiwKICAiZG9uYXRpb25zIjogewogICAgInBheXBhbCI6ICJhemFlY2giCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXp0YXNrYmFyIiwKICAibmFtZSI6ICJBcHAgSWNvbnMgVGFza2JhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5henRhc2tiYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9BbmRyZXdaYWVjaC9henRhc2tiYXIiLAogICJ1dWlkIjogImF6dGFza2JhckBhenRhc2tiYXIuZ2l0bGFiLmNvbSIsCiAgInZlcnNpb24iOiAxOAp9"},
     "44": {"version": "18", "sha256": "0mklxqybxnlw8jpfljyg2hapw8zgi732162ris96li0440a8h616", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGFwcCBpY29uIHRhc2tiYXIuIFNob3cgcnVubmluZyBhcHBzIGFuZCBmYXZvcml0ZXMgb24gdGhlIG1haW4gcGFuZWwuIiwKICAiZG9uYXRpb25zIjogewogICAgInBheXBhbCI6ICJhemFlY2giCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXp0YXNrYmFyIiwKICAibmFtZSI6ICJBcHAgSWNvbnMgVGFza2JhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5henRhc2tiYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9BbmRyZXdaYWVjaC9henRhc2tiYXIiLAogICJ1dWlkIjogImF6dGFza2JhckBhenRhc2tiYXIuZ2l0bGFiLmNvbSIsCiAgInZlcnNpb24iOiAxOAp9"},
-    "45": {"version": "22", "sha256": "1zcb26wb96xif8swywgb9f9nkvbgmgl2hiy0bbj19xwfdbvjdvp2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGFwcCBpY29uIHRhc2tiYXIuIFNob3cgcnVubmluZyBhcHBzIGFuZCBmYXZvcml0ZXMgb24gdGhlIG1haW4gcGFuZWwuIiwKICAiZG9uYXRpb25zIjogewogICAgInBheXBhbCI6ICJhemFlY2giCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXp0YXNrYmFyIiwKICAibmFtZSI6ICJBcHAgSWNvbnMgVGFza2JhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5henRhc2tiYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL0FuZHJld1phZWNoL2F6dGFza2JhciIsCiAgInV1aWQiOiAiYXp0YXNrYmFyQGF6dGFza2Jhci5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDIyCn0="},
-    "46": {"version": "22", "sha256": "1zcb26wb96xif8swywgb9f9nkvbgmgl2hiy0bbj19xwfdbvjdvp2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGFwcCBpY29uIHRhc2tiYXIuIFNob3cgcnVubmluZyBhcHBzIGFuZCBmYXZvcml0ZXMgb24gdGhlIG1haW4gcGFuZWwuIiwKICAiZG9uYXRpb25zIjogewogICAgInBheXBhbCI6ICJhemFlY2giCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXp0YXNrYmFyIiwKICAibmFtZSI6ICJBcHAgSWNvbnMgVGFza2JhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5henRhc2tiYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL0FuZHJld1phZWNoL2F6dGFza2JhciIsCiAgInV1aWQiOiAiYXp0YXNrYmFyQGF6dGFza2Jhci5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDIyCn0="}
+    "45": {"version": "23", "sha256": "13cppvvwc77h5w5vixa23vn8k02yb19mj90h2dj02lg5xa6zpj55", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGFwcCBpY29uIHRhc2tiYXIuIFNob3cgcnVubmluZyBhcHBzIGFuZCBmYXZvcml0ZXMgb24gdGhlIG1haW4gcGFuZWwuIiwKICAiZG9uYXRpb25zIjogewogICAgInBheXBhbCI6ICJhemFlY2giCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXp0YXNrYmFyIiwKICAibmFtZSI6ICJBcHAgSWNvbnMgVGFza2JhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5henRhc2tiYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL0FuZHJld1phZWNoL2F6dGFza2JhciIsCiAgInV1aWQiOiAiYXp0YXNrYmFyQGF6dGFza2Jhci5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDIzCn0="},
+    "46": {"version": "23", "sha256": "13cppvvwc77h5w5vixa23vn8k02yb19mj90h2dj02lg5xa6zpj55", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGFwcCBpY29uIHRhc2tiYXIuIFNob3cgcnVubmluZyBhcHBzIGFuZCBmYXZvcml0ZXMgb24gdGhlIG1haW4gcGFuZWwuIiwKICAiZG9uYXRpb25zIjogewogICAgInBheXBhbCI6ICJhemFlY2giCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXp0YXNrYmFyIiwKICAibmFtZSI6ICJBcHAgSWNvbnMgVGFza2JhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5henRhc2tiYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL0FuZHJld1phZWNoL2F6dGFza2JhciIsCiAgInV1aWQiOiAiYXp0YXNrYmFyQGF6dGFza2Jhci5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDIzCn0="}
   }}
 , {"uuid": "netSpeedMonitor@nidyran.github.io", "name": "Network Speed Tracker", "pname": "net-speed-monitor", "description": "Network Speed Tracker \nUsage instructions:\n1 - Right-click to easily switch between available network sources.\n2 - Left-click to toggle display modes.\n3 - Middle-click to adjust the refresh rate.", "link": "https://extensions.gnome.org/extension/4947/net-speed-monitor/", "shell_version_map": {
     "38": {"version": "5", "sha256": "1zvp8zx82kqbf9ck55csgcysld3z1gr3cigkl5y73s5rvqj3ks5n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGhlbHBzIHRyYWNraW5nIGFuZCBtb25pdG9yaW5nIG5ldHdvcmsgc3BlZWQuIFxuVGhlcmUgYXJlIGZpdmUgbW9kZXM6IFxuMSAtIGRvd25sb2FkIHNwZWVkIG9ubHkuIFxuMiAtIHVwbG9hZCBzcGVlZCBvbmx5LiBcbjMgLSBkb3dubG9hZCBzcGVlZCBhbmQgdXBsb2FkIHNwZWVkIHRvZ2V0aGVyLiBcbjQgLSBkb3dubG9hZCBzcGVlZCBhbmQgdXBsb2FkIHNwZWVkIHN1bW1lZC4gXG41IC0gdG90YWwgZGF0YSB1c2FnZSBcblRvIHN3aXRjaCBiZXR3ZWVuIG1vZGVzLCB1c2UgbGVmdCBtb3VzZSBjbGljay4gXG5UbyBzd2l0Y2ggYmV0d2VlbiBhdmFpbGFibGUgc291cmNlcywgdXNlIHJpZ2h0IG1vdXNlIGNsaWNrLiBcblRvIGNoYW5nZSByZWZyZXNoIHRpbWUgMjAwIC0gMTAwMCB1c2UgbWlkZGxlIG1vdXNlIGNsaWNrLiBcblRoZSBmaXJzdCBzb3VyY2Ugd2l0aCB1c2FnZSBoaWdoZXIgdGhhbiB6ZXJvIHdpbGwgYmUgcGlja2VkIGJ5IGRlZmF1bHQuIFxuVGhlIGV4dGVuc2lvbiB3aWxsIHBpY2sgdGhlIGZpcnN0IHNvdXJjZSBieSBkZWZhdWx0LCBhbmQgaWYgbm8gdHJhZmZpYyBpcyBlc3RhYmxpc2hlZCBpdCB3aWxsIHN3aXRjaCB0byB0aGUgbmV4dCBvbmUgYW5kIHNvIG9uXG5UaGUgc291cmNlIGNvZGUgaXMgYXZhaWxhYmxlIGluIHRoZSBsaW5rIGJlbG93LCB1cGRhdGUgcmVxdWVzdHMgYXJlIHdlbGNvbWUuIiwKICAibmFtZSI6ICJuZXQgc3BlZWQgbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmlkeXJhbi9uZXRTcGVlZE1vbml0b3IvIiwKICAidXVpZCI6ICJuZXRTcGVlZE1vbml0b3JAbmlkeXJhbi5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNQp9"},
@@ -4905,11 +4941,11 @@
 , {"uuid": "dash2dock-lite@icedman.github.com", "name": "Dash2Dock Animated", "pname": "dash2dock-lite", "description": "The Animated & Effectful Dock", "link": "https://extensions.gnome.org/extension/4994/dash2dock-lite/", "shell_version_map": {
     "40": {"version": "28", "sha256": "00c5fjb6s40y7fzndvmxb8ni0hlbd3gmypx262jjk7gwa0yvq99d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBbmltYXRlZCAmIEVmZmVjdGZ1bCBEb2NrIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaDJkb2NrLWxpdGUiLAogICJuYW1lIjogIkRhc2gyRG9jayBMaXRlIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJpY2VkbWFuIgogIF0sCiAgInNjaGVtYS1pZCI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXNoMmRvY2stbGl0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWNlZG1hbi9kYXNoMmRvY2stbGl0ZSIsCiAgInV1aWQiOiAiZGFzaDJkb2NrLWxpdGVAaWNlZG1hbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDI4Cn0="},
     "41": {"version": "28", "sha256": "00c5fjb6s40y7fzndvmxb8ni0hlbd3gmypx262jjk7gwa0yvq99d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBbmltYXRlZCAmIEVmZmVjdGZ1bCBEb2NrIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaDJkb2NrLWxpdGUiLAogICJuYW1lIjogIkRhc2gyRG9jayBMaXRlIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJpY2VkbWFuIgogIF0sCiAgInNjaGVtYS1pZCI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXNoMmRvY2stbGl0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWNlZG1hbi9kYXNoMmRvY2stbGl0ZSIsCiAgInV1aWQiOiAiZGFzaDJkb2NrLWxpdGVAaWNlZG1hbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDI4Cn0="},
-    "42": {"version": "57", "sha256": "0z4mkp2hxy9ihzdnj42b8hqkc7l322a847v2l1ac4dvz11x38cwp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBbmltYXRlZCAmIEVmZmVjdGZ1bCBEb2NrIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJpY2VkbWFuIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImRhc2gyZG9jay1saXRlIiwKICAibmFtZSI6ICJEYXNoMkRvY2sgQW5pbWF0ZWQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImljZWRtYW4iCiAgXSwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRhc2gyZG9jay1saXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWNlZG1hbi9kYXNoMmRvY2stbGl0ZSIsCiAgInV1aWQiOiAiZGFzaDJkb2NrLWxpdGVAaWNlZG1hbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDU3Cn0="},
-    "43": {"version": "57", "sha256": "0z4mkp2hxy9ihzdnj42b8hqkc7l322a847v2l1ac4dvz11x38cwp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBbmltYXRlZCAmIEVmZmVjdGZ1bCBEb2NrIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJpY2VkbWFuIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImRhc2gyZG9jay1saXRlIiwKICAibmFtZSI6ICJEYXNoMkRvY2sgQW5pbWF0ZWQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImljZWRtYW4iCiAgXSwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRhc2gyZG9jay1saXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWNlZG1hbi9kYXNoMmRvY2stbGl0ZSIsCiAgInV1aWQiOiAiZGFzaDJkb2NrLWxpdGVAaWNlZG1hbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDU3Cn0="},
-    "44": {"version": "57", "sha256": "0z4mkp2hxy9ihzdnj42b8hqkc7l322a847v2l1ac4dvz11x38cwp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBbmltYXRlZCAmIEVmZmVjdGZ1bCBEb2NrIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJpY2VkbWFuIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImRhc2gyZG9jay1saXRlIiwKICAibmFtZSI6ICJEYXNoMkRvY2sgQW5pbWF0ZWQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImljZWRtYW4iCiAgXSwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRhc2gyZG9jay1saXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWNlZG1hbi9kYXNoMmRvY2stbGl0ZSIsCiAgInV1aWQiOiAiZGFzaDJkb2NrLWxpdGVAaWNlZG1hbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDU3Cn0="},
-    "45": {"version": "54", "sha256": "10wlbfpay3aj8g2rqf06b8igphmk89avdjqw0vxz08ngc8r150wb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBbmltYXRlZCAmIEVmZmVjdGZ1bCBEb2NrIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJpY2VkbWFuIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImRhc2gyZG9jay1saXRlIiwKICAibmFtZSI6ICJEYXNoMkRvY2sgQW5pbWF0ZWQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImljZWRtYW4iCiAgXSwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRhc2gyZG9jay1saXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pY2VkbWFuL2Rhc2gyZG9jay1saXRlIiwKICAidXVpZCI6ICJkYXNoMmRvY2stbGl0ZUBpY2VkbWFuLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNTQKfQ=="},
-    "46": {"version": "54", "sha256": "10wlbfpay3aj8g2rqf06b8igphmk89avdjqw0vxz08ngc8r150wb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBbmltYXRlZCAmIEVmZmVjdGZ1bCBEb2NrIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJpY2VkbWFuIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImRhc2gyZG9jay1saXRlIiwKICAibmFtZSI6ICJEYXNoMkRvY2sgQW5pbWF0ZWQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImljZWRtYW4iCiAgXSwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRhc2gyZG9jay1saXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pY2VkbWFuL2Rhc2gyZG9jay1saXRlIiwKICAidXVpZCI6ICJkYXNoMmRvY2stbGl0ZUBpY2VkbWFuLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNTQKfQ=="}
+    "42": {"version": "68", "sha256": "0i2p5jvs9jlpy1gzc6g3zgbjjyi41v7bahzkz6lg2bw1hpv7a363", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBbmltYXRlZCAmIEVmZmVjdGZ1bCBEb2NrIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJpY2VkbWFuIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImRhc2gyZG9jay1saXRlIiwKICAibmFtZSI6ICJEYXNoMkRvY2sgQW5pbWF0ZWQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImljZWRtYW4iCiAgXSwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRhc2gyZG9jay1saXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWNlZG1hbi9kYXNoMmRvY2stbGl0ZSIsCiAgInV1aWQiOiAiZGFzaDJkb2NrLWxpdGVAaWNlZG1hbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDY4Cn0="},
+    "43": {"version": "68", "sha256": "0i2p5jvs9jlpy1gzc6g3zgbjjyi41v7bahzkz6lg2bw1hpv7a363", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBbmltYXRlZCAmIEVmZmVjdGZ1bCBEb2NrIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJpY2VkbWFuIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImRhc2gyZG9jay1saXRlIiwKICAibmFtZSI6ICJEYXNoMkRvY2sgQW5pbWF0ZWQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImljZWRtYW4iCiAgXSwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRhc2gyZG9jay1saXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWNlZG1hbi9kYXNoMmRvY2stbGl0ZSIsCiAgInV1aWQiOiAiZGFzaDJkb2NrLWxpdGVAaWNlZG1hbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDY4Cn0="},
+    "44": {"version": "68", "sha256": "0i2p5jvs9jlpy1gzc6g3zgbjjyi41v7bahzkz6lg2bw1hpv7a363", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBbmltYXRlZCAmIEVmZmVjdGZ1bCBEb2NrIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJpY2VkbWFuIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImRhc2gyZG9jay1saXRlIiwKICAibmFtZSI6ICJEYXNoMkRvY2sgQW5pbWF0ZWQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImljZWRtYW4iCiAgXSwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRhc2gyZG9jay1saXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWNlZG1hbi9kYXNoMmRvY2stbGl0ZSIsCiAgInV1aWQiOiAiZGFzaDJkb2NrLWxpdGVAaWNlZG1hbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDY4Cn0="},
+    "45": {"version": "66", "sha256": "0cjgrs83ak9dpzm8h3lm471xwik020abpm18v97z5467bswjmdqy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBbmltYXRlZCAmIEVmZmVjdGZ1bCBEb2NrIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJpY2VkbWFuIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImRhc2gyZG9jay1saXRlIiwKICAibmFtZSI6ICJEYXNoMkRvY2sgQW5pbWF0ZWQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImljZWRtYW4iCiAgXSwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRhc2gyZG9jay1saXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pY2VkbWFuL2Rhc2gyZG9jay1saXRlIiwKICAidXVpZCI6ICJkYXNoMmRvY2stbGl0ZUBpY2VkbWFuLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNjYKfQ=="},
+    "46": {"version": "66", "sha256": "0cjgrs83ak9dpzm8h3lm471xwik020abpm18v97z5467bswjmdqy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBbmltYXRlZCAmIEVmZmVjdGZ1bCBEb2NrIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJpY2VkbWFuIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImRhc2gyZG9jay1saXRlIiwKICAibmFtZSI6ICJEYXNoMkRvY2sgQW5pbWF0ZWQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImljZWRtYW4iCiAgXSwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRhc2gyZG9jay1saXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pY2VkbWFuL2Rhc2gyZG9jay1saXRlIiwKICAidXVpZCI6ICJkYXNoMmRvY2stbGl0ZUBpY2VkbWFuLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNjYKfQ=="}
   }}
 , {"uuid": "animate@eexpss.gmail.com", "name": "animate", "pname": "animate", "description": "Animated small man run through the screen. Scroll mouse can change deferent character. You can use your PNG characters instead of the original ones.", "link": "https://extensions.gnome.org/extension/4995/animate/", "shell_version_map": {
     "40": {"version": "4", "sha256": "1p110wz7wdr51z2fsn6z72lcnln13h8lfbw9a00hs9qb0y71qf5q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuaW1hdGVkIHNtYWxsIG1hbiBydW4gdGhyb3VnaCB0aGUgc2NyZWVuLiBTY3JvbGwgbW91c2UgY2FuIGNoYW5nZSBkZWZlcmVudCBjaGFyYWN0ZXIuIFlvdSBjYW4gdXNlIHlvdXIgUE5HIGNoYXJhY3RlcnMgaW5zdGVhZCBvZiB0aGUgb3JpZ2luYWwgb25lcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhbmltYXRlIiwKICAibmFtZSI6ICJhbmltYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWV4cHJlc3MvZ3MtYW5pbWF0ZSIsCiAgInV1aWQiOiAiYW5pbWF0ZUBlZXhwc3MuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="},
@@ -4934,7 +4970,8 @@
     "42": {"version": "10", "sha256": "1kvi1g03nd5m4d7wnkrnhms9l7pxag4n462g5qxl2q9pvn1d1v96", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklzIGxpa2UgRHJvcGJveCBzeW5jIGNsaWVudCBidXQgZm9yIG1vcmUgdGhhbiAzMCBzZXJ2aWNlcywgYWRkcyBhbiBpbmRpY2F0b3IgdG8gdGhlIHRvcCBwYW5lbCBzbyB5b3UgY2FuIG1hbmFnZSB0aGUgcmNsb25lIHByb2ZpbGVzIGNvbmZpZ3VyZWQgaW4geW91ciBzeXN0ZW0sIHBlcmZvcm0gb3BlcmF0aW9ucyBzdWNoIGFzIG1vdW50IGFzIHJlbW90ZSwgd2F0Y2ggZm9yIGZpbGUgbW9kaWZpY2F0aW9ucywgc3luYyB3aXRoIHJlbW90ZSBzdG9yYWdlLCBuYXZpZ2F0ZSBpdCdzIG1haW4gZm9sZGVyLiBBbHNvLCBpdCBzaG93cyB0aGUgc3RhdHVzIG9mIGVhY2ggcHJvZmlsZSBzbyB5b3UgY2FuIHN1cGVydmlzZSB0aGUgb3BlcmF0aW9ucywgYW5kIHByb3ZpZGVzIGFuIGVhc3kgYWNjZXNzIGxvZyBvZiBldmVudHMuIEJhY2t1cCBhbmQgcmVzdG9yZSB0aGUgcmNsb25lIGNvbmZpZ3VyYXRpb24gZmlsZSwgc28geW91IHdvbid0IGhhdmUgdG8gY29uZmlndXJlIGFsbCB5b3VyIGRldmljZXMgb25lIGJ5IG9uZSIsCiAgIm5hbWUiOiAicmNsb25lLW1hbmFnZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ2VybWFuenR6L2dub21lLXNoZWxsLWV4dGVuc2lvbi1yY2xvbmUtbWFuYWdlciIsCiAgInV1aWQiOiAicmNsb25lLW1hbmFnZXJAZ2VybWFuenR6LmNvbSIsCiAgInZlcnNpb24iOiAxMAp9"},
     "43": {"version": "10", "sha256": "1kvi1g03nd5m4d7wnkrnhms9l7pxag4n462g5qxl2q9pvn1d1v96", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklzIGxpa2UgRHJvcGJveCBzeW5jIGNsaWVudCBidXQgZm9yIG1vcmUgdGhhbiAzMCBzZXJ2aWNlcywgYWRkcyBhbiBpbmRpY2F0b3IgdG8gdGhlIHRvcCBwYW5lbCBzbyB5b3UgY2FuIG1hbmFnZSB0aGUgcmNsb25lIHByb2ZpbGVzIGNvbmZpZ3VyZWQgaW4geW91ciBzeXN0ZW0sIHBlcmZvcm0gb3BlcmF0aW9ucyBzdWNoIGFzIG1vdW50IGFzIHJlbW90ZSwgd2F0Y2ggZm9yIGZpbGUgbW9kaWZpY2F0aW9ucywgc3luYyB3aXRoIHJlbW90ZSBzdG9yYWdlLCBuYXZpZ2F0ZSBpdCdzIG1haW4gZm9sZGVyLiBBbHNvLCBpdCBzaG93cyB0aGUgc3RhdHVzIG9mIGVhY2ggcHJvZmlsZSBzbyB5b3UgY2FuIHN1cGVydmlzZSB0aGUgb3BlcmF0aW9ucywgYW5kIHByb3ZpZGVzIGFuIGVhc3kgYWNjZXNzIGxvZyBvZiBldmVudHMuIEJhY2t1cCBhbmQgcmVzdG9yZSB0aGUgcmNsb25lIGNvbmZpZ3VyYXRpb24gZmlsZSwgc28geW91IHdvbid0IGhhdmUgdG8gY29uZmlndXJlIGFsbCB5b3VyIGRldmljZXMgb25lIGJ5IG9uZSIsCiAgIm5hbWUiOiAicmNsb25lLW1hbmFnZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ2VybWFuenR6L2dub21lLXNoZWxsLWV4dGVuc2lvbi1yY2xvbmUtbWFuYWdlciIsCiAgInV1aWQiOiAicmNsb25lLW1hbmFnZXJAZ2VybWFuenR6LmNvbSIsCiAgInZlcnNpb24iOiAxMAp9"},
     "44": {"version": "10", "sha256": "1kvi1g03nd5m4d7wnkrnhms9l7pxag4n462g5qxl2q9pvn1d1v96", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklzIGxpa2UgRHJvcGJveCBzeW5jIGNsaWVudCBidXQgZm9yIG1vcmUgdGhhbiAzMCBzZXJ2aWNlcywgYWRkcyBhbiBpbmRpY2F0b3IgdG8gdGhlIHRvcCBwYW5lbCBzbyB5b3UgY2FuIG1hbmFnZSB0aGUgcmNsb25lIHByb2ZpbGVzIGNvbmZpZ3VyZWQgaW4geW91ciBzeXN0ZW0sIHBlcmZvcm0gb3BlcmF0aW9ucyBzdWNoIGFzIG1vdW50IGFzIHJlbW90ZSwgd2F0Y2ggZm9yIGZpbGUgbW9kaWZpY2F0aW9ucywgc3luYyB3aXRoIHJlbW90ZSBzdG9yYWdlLCBuYXZpZ2F0ZSBpdCdzIG1haW4gZm9sZGVyLiBBbHNvLCBpdCBzaG93cyB0aGUgc3RhdHVzIG9mIGVhY2ggcHJvZmlsZSBzbyB5b3UgY2FuIHN1cGVydmlzZSB0aGUgb3BlcmF0aW9ucywgYW5kIHByb3ZpZGVzIGFuIGVhc3kgYWNjZXNzIGxvZyBvZiBldmVudHMuIEJhY2t1cCBhbmQgcmVzdG9yZSB0aGUgcmNsb25lIGNvbmZpZ3VyYXRpb24gZmlsZSwgc28geW91IHdvbid0IGhhdmUgdG8gY29uZmlndXJlIGFsbCB5b3VyIGRldmljZXMgb25lIGJ5IG9uZSIsCiAgIm5hbWUiOiAicmNsb25lLW1hbmFnZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ2VybWFuenR6L2dub21lLXNoZWxsLWV4dGVuc2lvbi1yY2xvbmUtbWFuYWdlciIsCiAgInV1aWQiOiAicmNsb25lLW1hbmFnZXJAZ2VybWFuenR6LmNvbSIsCiAgInZlcnNpb24iOiAxMAp9"},
-    "45": {"version": "13", "sha256": "19r6mly10kzym1pwvynfn8cfj5xgjaima9ns7w9h8zldrfhk3fkr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklzIGxpa2UgRHJvcGJveCBzeW5jIGNsaWVudCBidXQgZm9yIG1vcmUgdGhhbiAzMCBzZXJ2aWNlcywgYWRkcyBhbiBpbmRpY2F0b3IgdG8gdGhlIHRvcCBwYW5lbCBzbyB5b3UgY2FuIG1hbmFnZSB0aGUgcmNsb25lIHByb2ZpbGVzIGNvbmZpZ3VyZWQgaW4geW91ciBzeXN0ZW0sIHBlcmZvcm0gb3BlcmF0aW9ucyBzdWNoIGFzIG1vdW50IGFzIHJlbW90ZSwgd2F0Y2ggZm9yIGZpbGUgbW9kaWZpY2F0aW9ucywgc3luYyB3aXRoIHJlbW90ZSBzdG9yYWdlLCBuYXZpZ2F0ZSBpdCdzIG1haW4gZm9sZGVyLiBBbHNvLCBpdCBzaG93cyB0aGUgc3RhdHVzIG9mIGVhY2ggcHJvZmlsZSBzbyB5b3UgY2FuIHN1cGVydmlzZSB0aGUgb3BlcmF0aW9ucywgYW5kIHByb3ZpZGVzIGFuIGVhc3kgYWNjZXNzIGxvZyBvZiBldmVudHMuIEJhY2t1cCBhbmQgcmVzdG9yZSB0aGUgcmNsb25lIGNvbmZpZ3VyYXRpb24gZmlsZSwgc28geW91IHdvbid0IGhhdmUgdG8gY29uZmlndXJlIGFsbCB5b3VyIGRldmljZXMgb25lIGJ5IG9uZSIsCiAgImdldHRleHQtZG9tYWluIjogInJjbG9uZS1tYW5hZ2VyIiwKICAibmFtZSI6ICJyY2xvbmUtbWFuYWdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yY2xvbmUtbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nZXJtYW56dHovZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXJjbG9uZS1tYW5hZ2VyIiwKICAidXVpZCI6ICJyY2xvbmUtbWFuYWdlckBnZXJtYW56dHouY29tIiwKICAidmVyc2lvbiI6IDEzCn0="}
+    "45": {"version": "13", "sha256": "19r6mly10kzym1pwvynfn8cfj5xgjaima9ns7w9h8zldrfhk3fkr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklzIGxpa2UgRHJvcGJveCBzeW5jIGNsaWVudCBidXQgZm9yIG1vcmUgdGhhbiAzMCBzZXJ2aWNlcywgYWRkcyBhbiBpbmRpY2F0b3IgdG8gdGhlIHRvcCBwYW5lbCBzbyB5b3UgY2FuIG1hbmFnZSB0aGUgcmNsb25lIHByb2ZpbGVzIGNvbmZpZ3VyZWQgaW4geW91ciBzeXN0ZW0sIHBlcmZvcm0gb3BlcmF0aW9ucyBzdWNoIGFzIG1vdW50IGFzIHJlbW90ZSwgd2F0Y2ggZm9yIGZpbGUgbW9kaWZpY2F0aW9ucywgc3luYyB3aXRoIHJlbW90ZSBzdG9yYWdlLCBuYXZpZ2F0ZSBpdCdzIG1haW4gZm9sZGVyLiBBbHNvLCBpdCBzaG93cyB0aGUgc3RhdHVzIG9mIGVhY2ggcHJvZmlsZSBzbyB5b3UgY2FuIHN1cGVydmlzZSB0aGUgb3BlcmF0aW9ucywgYW5kIHByb3ZpZGVzIGFuIGVhc3kgYWNjZXNzIGxvZyBvZiBldmVudHMuIEJhY2t1cCBhbmQgcmVzdG9yZSB0aGUgcmNsb25lIGNvbmZpZ3VyYXRpb24gZmlsZSwgc28geW91IHdvbid0IGhhdmUgdG8gY29uZmlndXJlIGFsbCB5b3VyIGRldmljZXMgb25lIGJ5IG9uZSIsCiAgImdldHRleHQtZG9tYWluIjogInJjbG9uZS1tYW5hZ2VyIiwKICAibmFtZSI6ICJyY2xvbmUtbWFuYWdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yY2xvbmUtbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nZXJtYW56dHovZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXJjbG9uZS1tYW5hZ2VyIiwKICAidXVpZCI6ICJyY2xvbmUtbWFuYWdlckBnZXJtYW56dHouY29tIiwKICAidmVyc2lvbiI6IDEzCn0="},
+    "46": {"version": "15", "sha256": "1916ry64p55gc78bblvkmxgcbzxvgpp7vgsvv0kscpc3z4z8hwyz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklzIGxpa2UgRHJvcGJveCBzeW5jIGNsaWVudCBidXQgZm9yIG1vcmUgdGhhbiAzMCBzZXJ2aWNlcywgYWRkcyBhbiBpbmRpY2F0b3IgdG8gdGhlIHRvcCBwYW5lbCBzbyB5b3UgY2FuIG1hbmFnZSB0aGUgcmNsb25lIHByb2ZpbGVzIGNvbmZpZ3VyZWQgaW4geW91ciBzeXN0ZW0sIHBlcmZvcm0gb3BlcmF0aW9ucyBzdWNoIGFzIG1vdW50IGFzIHJlbW90ZSwgd2F0Y2ggZm9yIGZpbGUgbW9kaWZpY2F0aW9ucywgc3luYyB3aXRoIHJlbW90ZSBzdG9yYWdlLCBuYXZpZ2F0ZSBpdCdzIG1haW4gZm9sZGVyLiBBbHNvLCBpdCBzaG93cyB0aGUgc3RhdHVzIG9mIGVhY2ggcHJvZmlsZSBzbyB5b3UgY2FuIHN1cGVydmlzZSB0aGUgb3BlcmF0aW9ucywgYW5kIHByb3ZpZGVzIGFuIGVhc3kgYWNjZXNzIGxvZyBvZiBldmVudHMuIEJhY2t1cCBhbmQgcmVzdG9yZSB0aGUgcmNsb25lIGNvbmZpZ3VyYXRpb24gZmlsZSwgc28geW91IHdvbid0IGhhdmUgdG8gY29uZmlndXJlIGFsbCB5b3VyIGRldmljZXMgb25lIGJ5IG9uZSIsCiAgImdldHRleHQtZG9tYWluIjogInJjbG9uZS1tYW5hZ2VyIiwKICAibmFtZSI6ICJyY2xvbmUtbWFuYWdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yY2xvbmUtbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nZXJtYW56dHovZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXJjbG9uZS1tYW5hZ2VyIiwKICAidXVpZCI6ICJyY2xvbmUtbWFuYWdlckBnZXJtYW56dHouY29tIiwKICAidmVyc2lvbiI6IDE1Cn0="}
   }}
 , {"uuid": "GPU_profile_selector@lorenzo9904.gmail.com", "name": "GPU profile selector", "pname": "gpu-profile-selector", "description": "You need to install envycontrol(https://github.com/geminis3/envycontrol) to make this extension work. This is a simple gnome-shell extension which provides a simple way to switch between GPU profiles on Nvidia Optimus systems (i.e laptops with Intel + Nvidia or AMD + Nvidia configurations) in a few clicks.", "link": "https://extensions.gnome.org/extension/5009/gpu-profile-selector/", "shell_version_map": {
     "38": {"version": "11", "sha256": "0bid6qwwxfw862sb4qw027017c9ya3p26cg10kjx7p3dwc54ccwf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIllvdSBuZWVkIHRvIGluc3RhbGwgZW52eWNvbnRyb2woaHR0cHM6Ly9naXRodWIuY29tL2dlbWluaXMzL2Vudnljb250cm9sKSBmb3IgbWFraW5nIHRoaXMgZXh0ZW5zaW9uIHdvcmtpbmcuIFRoaXMgaXMgYSBzaW1wbGUgZ25vbWUtc2hlbGwgZXh0ZW5zaW9uIHdoaWNoIHByb3ZpZGVzIGEgc2ltcGxlIHdheSB0byBzd2l0Y2ggYmV0d2VlbiBHUFUgcHJvZmlsZXMgb24gTnZpZGlhIE9wdGltdXMgc3lzdGVtcyAoaS5lIGxhcHRvcHMgd2l0aCBJbnRlbCArIE52aWRpYSBvciBBTUQgKyBOdmlkaWEgY29uZmlndXJhdGlvbnMpIGluIGEgZmV3IGNsaWNrcy4iLAogICJuYW1lIjogIkdQVSBwcm9maWxlIHNlbGVjdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTG9yZW56b01vcmVsbGkvR1BVX3Byb2ZpbGVfc2VsZWN0b3IiLAogICJ1dWlkIjogIkdQVV9wcm9maWxlX3NlbGVjdG9yQGxvcmVuem85OTA0LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMQp9"},
@@ -4963,7 +5000,8 @@
     "42": {"version": "14", "sha256": "11v848619bj8dk29rz6468cc2mfkggqqz83gfqdngaksd996nxr0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYSBtZXNzYWdlIHdyaXR0ZW4gYnkgdGhlIHVzZXIgb24gdGhlIHRvcCBiYXIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2ltcGxlLW1lc3NhZ2UiLAogICJuYW1lIjogIlNpbXBsZSBNZXNzYWdlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNpbXBsZS1tZXNzYWdlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnJlZGRlei9nbm9tZS1zaGVsbC1zaW1wbGUtbWVzc2FnZSIsCiAgInV1aWQiOiAic2ltcGxlLW1lc3NhZ2VAZnJlZGRleiIsCiAgInZlcnNpb24iOiAxNAp9"},
     "43": {"version": "14", "sha256": "11v848619bj8dk29rz6468cc2mfkggqqz83gfqdngaksd996nxr0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYSBtZXNzYWdlIHdyaXR0ZW4gYnkgdGhlIHVzZXIgb24gdGhlIHRvcCBiYXIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2ltcGxlLW1lc3NhZ2UiLAogICJuYW1lIjogIlNpbXBsZSBNZXNzYWdlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNpbXBsZS1tZXNzYWdlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnJlZGRlei9nbm9tZS1zaGVsbC1zaW1wbGUtbWVzc2FnZSIsCiAgInV1aWQiOiAic2ltcGxlLW1lc3NhZ2VAZnJlZGRleiIsCiAgInZlcnNpb24iOiAxNAp9"},
     "44": {"version": "14", "sha256": "11v848619bj8dk29rz6468cc2mfkggqqz83gfqdngaksd996nxr0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYSBtZXNzYWdlIHdyaXR0ZW4gYnkgdGhlIHVzZXIgb24gdGhlIHRvcCBiYXIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2ltcGxlLW1lc3NhZ2UiLAogICJuYW1lIjogIlNpbXBsZSBNZXNzYWdlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNpbXBsZS1tZXNzYWdlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnJlZGRlei9nbm9tZS1zaGVsbC1zaW1wbGUtbWVzc2FnZSIsCiAgInV1aWQiOiAic2ltcGxlLW1lc3NhZ2VAZnJlZGRleiIsCiAgInZlcnNpb24iOiAxNAp9"},
-    "45": {"version": "15", "sha256": "1yzbnazv4ww8ja4imkac0b0fd4vdg3fniaqpgyskga00bnks0qrs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYSBtZXNzYWdlIHdyaXR0ZW4gYnkgdGhlIHVzZXIgb24gdGhlIHRvcCBiYXIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2ltcGxlLW1lc3NhZ2UiLAogICJuYW1lIjogIlNpbXBsZSBNZXNzYWdlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNpbXBsZS1tZXNzYWdlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ZyZWRkZXovZ25vbWUtc2hlbGwtc2ltcGxlLW1lc3NhZ2UiLAogICJ1dWlkIjogInNpbXBsZS1tZXNzYWdlQGZyZWRkZXoiLAogICJ2ZXJzaW9uIjogMTUKfQ=="}
+    "45": {"version": "17", "sha256": "10q9k44i65lmix5g54l2a2gcacj7hfc4ibnxb5dppjrcmfgi6krd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYSBtZXNzYWdlIHdyaXR0ZW4gYnkgdGhlIHVzZXIgb24gdGhlIHRvcCBiYXIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2ltcGxlLW1lc3NhZ2UiLAogICJuYW1lIjogIlNpbXBsZSBNZXNzYWdlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNpbXBsZS1tZXNzYWdlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mcmVkZGV6L2dub21lLXNoZWxsLXNpbXBsZS1tZXNzYWdlIiwKICAidXVpZCI6ICJzaW1wbGUtbWVzc2FnZUBmcmVkZGV6IiwKICAidmVyc2lvbiI6IDE3Cn0="},
+    "46": {"version": "17", "sha256": "10q9k44i65lmix5g54l2a2gcacj7hfc4ibnxb5dppjrcmfgi6krd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYSBtZXNzYWdlIHdyaXR0ZW4gYnkgdGhlIHVzZXIgb24gdGhlIHRvcCBiYXIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2ltcGxlLW1lc3NhZ2UiLAogICJuYW1lIjogIlNpbXBsZSBNZXNzYWdlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNpbXBsZS1tZXNzYWdlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mcmVkZGV6L2dub21lLXNoZWxsLXNpbXBsZS1tZXNzYWdlIiwKICAidXVpZCI6ICJzaW1wbGUtbWVzc2FnZUBmcmVkZGV6IiwKICAidmVyc2lvbiI6IDE3Cn0="}
   }}
 , {"uuid": "activate-window-by-title@lucaswerkmeister.de", "name": "Activate Window By Title", "pname": "activate-window-by-title", "description": "Expose a D-Bus interface to activate a window by its title or WM_CLASS", "link": "https://extensions.gnome.org/extension/5021/activate-window-by-title/", "shell_version_map": {
     "42": {"version": "5", "sha256": "1hqm9znczhw9iq4zx8nzy5cm8wr8lwsryk4l6g634fxqs1bxny5n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4cG9zZSBhIEQtQnVzIGludGVyZmFjZSB0byBhY3RpdmF0ZSBhIHdpbmRvdyBieSBpdHMgdGl0bGUgb3IgV01fQ0xBU1MiLAogICJuYW1lIjogIkFjdGl2YXRlIFdpbmRvdyBCeSBUaXRsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x1Y2Fzd2Vya21laXN0ZXIvYWN0aXZhdGUtd2luZG93LWJ5LXRpdGxlIiwKICAidXVpZCI6ICJhY3RpdmF0ZS13aW5kb3ctYnktdGl0bGVAbHVjYXN3ZXJrbWVpc3Rlci5kZSIsCiAgInZlcnNpb24iOiA1Cn0="},
@@ -5068,7 +5106,7 @@
     "43": {"version": "22", "sha256": "16bsn3mpd66p3p7yz56zr0ghglj8y8cmlrvn8q8fdvvrj2srkjvf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VzIHRoZSAnQWN0aXZpdGllcycgYnV0dG9uIHdpdGggYW4gaTMtbGlrZSB3b3Jrc3BhY2VzIGJhci5cblxuT3JpZ2luYWxseSBhIGZvcmsgb2YgdGhlIGV4dGVuc2lvbiBXb3Jrc3BhY2VzIEJhciBieSBmdGh4LCB0aGlzIGV4dGVuc2lvbiBncmV3IGludG8gYSBtb3JlIGNvbXByZWhlbnNpdmUgc2V0IG9mIGZlYXR1cmVzIHRvIHN1cHBvcnQgYSB3b3Jrc3BhY2UtYmFzZWQgd29ya2Zsb3cuXG5cbkZlYXR1cmVzOlxuLSAgIEZpcnN0IGNsYXNzIHN1cHBvcnQgZm9yIHN0YXRpYyBhbmQgZHluYW1pYyB3b3Jrc3BhY2VzIGFzIHdlbGwgYXMgbXVsdGktbW9uaXRvciBzZXR1cHNcbi0gICBBZGQsIHJlbW92ZSwgYW5kIHJlbmFtZSB3b3Jrc3BhY2VzXG4tICAgUmVhcnJhbmdlIHdvcmtzcGFjZXMgdmlhIGRyYWcgYW5kIGRyb3Bcbi0gICBBdXRvbWF0aWNhbGx5IGFzc2lnbiB3b3Jrc3BhY2UgbmFtZXMgYmFzZWQgb24gc3RhcnRlZCBhcHBsaWNhdGlvbnNcbi0gICBLZXlib2FyZCBzaG9ydGN1dHMgZXh0ZW5kIGFuZCByZWZpbmUgc3lzdGVtIHNob3J0Y3V0c1xuLSAgIFNjcm9sbCB0aHJvdWdoIHdvcmtzcGFjZXMgYnkgbW91c2Ugd2hlZWwgb3ZlciB0aGUgcGFuZWxcbi0gICBDdXN0b21pemUgdGhlIGFwcGVhcmFuY2UiLAogICJuYW1lIjogIlNwYWNlIEJhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zcGFjZS1iYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RvcGhlci1sL3NwYWNlLWJhciIsCiAgInV1aWQiOiAic3BhY2UtYmFyQGx1Y2hyaW9oIiwKICAidmVyc2lvbiI6IDIyCn0="},
     "44": {"version": "22", "sha256": "16bsn3mpd66p3p7yz56zr0ghglj8y8cmlrvn8q8fdvvrj2srkjvf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VzIHRoZSAnQWN0aXZpdGllcycgYnV0dG9uIHdpdGggYW4gaTMtbGlrZSB3b3Jrc3BhY2VzIGJhci5cblxuT3JpZ2luYWxseSBhIGZvcmsgb2YgdGhlIGV4dGVuc2lvbiBXb3Jrc3BhY2VzIEJhciBieSBmdGh4LCB0aGlzIGV4dGVuc2lvbiBncmV3IGludG8gYSBtb3JlIGNvbXByZWhlbnNpdmUgc2V0IG9mIGZlYXR1cmVzIHRvIHN1cHBvcnQgYSB3b3Jrc3BhY2UtYmFzZWQgd29ya2Zsb3cuXG5cbkZlYXR1cmVzOlxuLSAgIEZpcnN0IGNsYXNzIHN1cHBvcnQgZm9yIHN0YXRpYyBhbmQgZHluYW1pYyB3b3Jrc3BhY2VzIGFzIHdlbGwgYXMgbXVsdGktbW9uaXRvciBzZXR1cHNcbi0gICBBZGQsIHJlbW92ZSwgYW5kIHJlbmFtZSB3b3Jrc3BhY2VzXG4tICAgUmVhcnJhbmdlIHdvcmtzcGFjZXMgdmlhIGRyYWcgYW5kIGRyb3Bcbi0gICBBdXRvbWF0aWNhbGx5IGFzc2lnbiB3b3Jrc3BhY2UgbmFtZXMgYmFzZWQgb24gc3RhcnRlZCBhcHBsaWNhdGlvbnNcbi0gICBLZXlib2FyZCBzaG9ydGN1dHMgZXh0ZW5kIGFuZCByZWZpbmUgc3lzdGVtIHNob3J0Y3V0c1xuLSAgIFNjcm9sbCB0aHJvdWdoIHdvcmtzcGFjZXMgYnkgbW91c2Ugd2hlZWwgb3ZlciB0aGUgcGFuZWxcbi0gICBDdXN0b21pemUgdGhlIGFwcGVhcmFuY2UiLAogICJuYW1lIjogIlNwYWNlIEJhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zcGFjZS1iYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RvcGhlci1sL3NwYWNlLWJhciIsCiAgInV1aWQiOiAic3BhY2UtYmFyQGx1Y2hyaW9oIiwKICAidmVyc2lvbiI6IDIyCn0="},
     "45": {"version": "24", "sha256": "1xmcp6292vadgwn90j4c21gid8vzq1s5h1lvspr4a78b2bb73q93", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VzIHRoZSB0b3AtcGFuZWwgd29ya3NwYWNlIGluZGljYXRvciB3aXRoIGFuIGkzLWxpa2Ugd29ya3NwYWNlcyBiYXIuXG5cbk9yaWdpbmFsbHkgYSBmb3JrIG9mIHRoZSBleHRlbnNpb24gV29ya3NwYWNlcyBCYXIgYnkgZnRoeCwgdGhpcyBleHRlbnNpb24gZ3JldyBpbnRvIGEgbW9yZSBjb21wcmVoZW5zaXZlIHNldCBvZiBmZWF0dXJlcyB0byBzdXBwb3J0IGEgd29ya3NwYWNlLWJhc2VkIHdvcmtmbG93LlxuXG5GZWF0dXJlczpcbi0gICBGaXJzdCBjbGFzcyBzdXBwb3J0IGZvciBzdGF0aWMgYW5kIGR5bmFtaWMgd29ya3NwYWNlcyBhcyB3ZWxsIGFzIG11bHRpLW1vbml0b3Igc2V0dXBzXG4tICAgQWRkLCByZW1vdmUsIGFuZCByZW5hbWUgd29ya3NwYWNlc1xuLSAgIFJlYXJyYW5nZSB3b3Jrc3BhY2VzIHZpYSBkcmFnIGFuZCBkcm9wXG4tICAgQXV0b21hdGljYWxseSBhc3NpZ24gd29ya3NwYWNlIG5hbWVzIGJhc2VkIG9uIHN0YXJ0ZWQgYXBwbGljYXRpb25zXG4tICAgS2V5Ym9hcmQgc2hvcnRjdXRzIGV4dGVuZCBhbmQgcmVmaW5lIHN5c3RlbSBzaG9ydGN1dHNcbi0gICBTY3JvbGwgdGhyb3VnaCB3b3Jrc3BhY2VzIGJ5IG1vdXNlIHdoZWVsIG92ZXIgdGhlIHBhbmVsXG4tICAgQ3VzdG9taXplIHRoZSBhcHBlYXJhbmNlIiwKICAibmFtZSI6ICJTcGFjZSBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3BhY2UtYmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdG9waGVyLWwvc3BhY2UtYmFyIiwKICAidXVpZCI6ICJzcGFjZS1iYXJAbHVjaHJpb2giLAogICJ2ZXJzaW9uIjogMjQKfQ=="},
-    "46": {"version": "25", "sha256": "03gh9r9nakdc8zdmdhn0dq8c46qfi0hhmbnf1wj0r0dr3csp8v1f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VzIHRoZSB0b3AtcGFuZWwgd29ya3NwYWNlIGluZGljYXRvciB3aXRoIGFuIGkzLWxpa2Ugd29ya3NwYWNlcyBiYXIuXG5cbk9yaWdpbmFsbHkgYSBmb3JrIG9mIHRoZSBleHRlbnNpb24gV29ya3NwYWNlcyBCYXIgYnkgZnRoeCwgdGhpcyBleHRlbnNpb24gZ3JldyBpbnRvIGEgbW9yZSBjb21wcmVoZW5zaXZlIHNldCBvZiBmZWF0dXJlcyB0byBzdXBwb3J0IGEgd29ya3NwYWNlLWJhc2VkIHdvcmtmbG93LlxuXG5GZWF0dXJlczpcbi0gICBGaXJzdCBjbGFzcyBzdXBwb3J0IGZvciBzdGF0aWMgYW5kIGR5bmFtaWMgd29ya3NwYWNlcyBhcyB3ZWxsIGFzIG11bHRpLW1vbml0b3Igc2V0dXBzXG4tICAgQWRkLCByZW1vdmUsIGFuZCByZW5hbWUgd29ya3NwYWNlc1xuLSAgIFJlYXJyYW5nZSB3b3Jrc3BhY2VzIHZpYSBkcmFnIGFuZCBkcm9wXG4tICAgQXV0b21hdGljYWxseSBhc3NpZ24gd29ya3NwYWNlIG5hbWVzIGJhc2VkIG9uIHN0YXJ0ZWQgYXBwbGljYXRpb25zXG4tICAgS2V5Ym9hcmQgc2hvcnRjdXRzIGV4dGVuZCBhbmQgcmVmaW5lIHN5c3RlbSBzaG9ydGN1dHNcbi0gICBTY3JvbGwgdGhyb3VnaCB3b3Jrc3BhY2VzIGJ5IG1vdXNlIHdoZWVsIG92ZXIgdGhlIHBhbmVsXG4tICAgQ3VzdG9taXplIHRoZSBhcHBlYXJhbmNlIiwKICAibmFtZSI6ICJTcGFjZSBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3BhY2UtYmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdG9waGVyLWwvc3BhY2UtYmFyIiwKICAidXVpZCI6ICJzcGFjZS1iYXJAbHVjaHJpb2giLAogICJ2ZXJzaW9uIjogMjUKfQ=="}
+    "46": {"version": "26", "sha256": "0y7k7n0wdhpwsydv2zas6naw4nn0x8day4d553blqa7xd8yz5jlw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VzIHRoZSB0b3AtcGFuZWwgd29ya3NwYWNlIGluZGljYXRvciB3aXRoIGFuIGkzLWxpa2Ugd29ya3NwYWNlcyBiYXIuXG5cbk9yaWdpbmFsbHkgYSBmb3JrIG9mIHRoZSBleHRlbnNpb24gV29ya3NwYWNlcyBCYXIgYnkgZnRoeCwgdGhpcyBleHRlbnNpb24gZ3JldyBpbnRvIGEgbW9yZSBjb21wcmVoZW5zaXZlIHNldCBvZiBmZWF0dXJlcyB0byBzdXBwb3J0IGEgd29ya3NwYWNlLWJhc2VkIHdvcmtmbG93LlxuXG5GZWF0dXJlczpcbi0gICBGaXJzdCBjbGFzcyBzdXBwb3J0IGZvciBzdGF0aWMgYW5kIGR5bmFtaWMgd29ya3NwYWNlcyBhcyB3ZWxsIGFzIG11bHRpLW1vbml0b3Igc2V0dXBzXG4tICAgQWRkLCByZW1vdmUsIGFuZCByZW5hbWUgd29ya3NwYWNlc1xuLSAgIFJlYXJyYW5nZSB3b3Jrc3BhY2VzIHZpYSBkcmFnIGFuZCBkcm9wXG4tICAgQXV0b21hdGljYWxseSBhc3NpZ24gd29ya3NwYWNlIG5hbWVzIGJhc2VkIG9uIHN0YXJ0ZWQgYXBwbGljYXRpb25zXG4tICAgS2V5Ym9hcmQgc2hvcnRjdXRzIGV4dGVuZCBhbmQgcmVmaW5lIHN5c3RlbSBzaG9ydGN1dHNcbi0gICBTY3JvbGwgdGhyb3VnaCB3b3Jrc3BhY2VzIGJ5IG1vdXNlIHdoZWVsIG92ZXIgdGhlIHBhbmVsXG4tICAgQ3VzdG9taXplIHRoZSBhcHBlYXJhbmNlIiwKICAibmFtZSI6ICJTcGFjZSBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3BhY2UtYmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NocmlzdG9waGVyLWwvc3BhY2UtYmFyIiwKICAidXVpZCI6ICJzcGFjZS1iYXJAbHVjaHJpb2giLAogICJ2ZXJzaW9uIjogMjYKfQ=="}
   }}
 , {"uuid": "gnome-shellext-hide-lock@adyrosebrigg", "name": "Hide Lock item in System Menu", "pname": "hide-lock-item-in-system-menu", "description": "Hides the \"Lock\" option from the system menu dropdown in the top right.", "link": "https://extensions.gnome.org/extension/5091/hide-lock-item-in-system-menu/", "shell_version_map": {
     "42": {"version": "2", "sha256": "0ab3yc5z9yhvp21145cfgh88sby4x464argy12c80anyhf55zm79", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSBcIkxvY2tcIiBvcHRpb24gZnJvbSB0aGUgc3lzdGVtIG1lbnUgZHJvcGRvd24gaW4gdGhlIHRvcCByaWdodC4iLAogICJuYW1lIjogIkhpZGUgTG9jayBpdGVtIGluIFN5c3RlbSBNZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FkeXJvc2VicmlnZy9nbm9tZS1zaGVsbGV4dC1oaWRlLWxvY2siLAogICJ1dWlkIjogImdub21lLXNoZWxsZXh0LWhpZGUtbG9ja0BhZHlyb3NlYnJpZ2ciLAogICJ2ZXJzaW9uIjogMgp9"}
@@ -5087,15 +5125,15 @@
     "42": {"version": "21", "sha256": "06hfl07q9v6r6igys09c2bk7r1jdv588nl6m1br382fl8b6g5bgg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIGFjY2VzcyB0byBEb2NrZXIgYW5kIERvY2tlciBDb21wb3NlLiIsCiAgIm5hbWUiOiAiRG9ja2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc3RpY2ttYW5fMHgwMC9nbm9tZV9zaGVsbF9leHRlbnNpb25fZG9ja2VyIiwKICAidXVpZCI6ICJkb2NrZXJAc3RpY2ttYW5fMHgwMC5jb20iLAogICJ2ZXJzaW9uIjogMjEKfQ=="},
     "43": {"version": "21", "sha256": "06hfl07q9v6r6igys09c2bk7r1jdv588nl6m1br382fl8b6g5bgg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIGFjY2VzcyB0byBEb2NrZXIgYW5kIERvY2tlciBDb21wb3NlLiIsCiAgIm5hbWUiOiAiRG9ja2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc3RpY2ttYW5fMHgwMC9nbm9tZV9zaGVsbF9leHRlbnNpb25fZG9ja2VyIiwKICAidXVpZCI6ICJkb2NrZXJAc3RpY2ttYW5fMHgwMC5jb20iLAogICJ2ZXJzaW9uIjogMjEKfQ=="},
     "44": {"version": "21", "sha256": "06hfl07q9v6r6igys09c2bk7r1jdv588nl6m1br382fl8b6g5bgg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIGFjY2VzcyB0byBEb2NrZXIgYW5kIERvY2tlciBDb21wb3NlLiIsCiAgIm5hbWUiOiAiRG9ja2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc3RpY2ttYW5fMHgwMC9nbm9tZV9zaGVsbF9leHRlbnNpb25fZG9ja2VyIiwKICAidXVpZCI6ICJkb2NrZXJAc3RpY2ttYW5fMHgwMC5jb20iLAogICJ2ZXJzaW9uIjogMjEKfQ=="},
-    "45": {"version": "31", "sha256": "02vkhxs5nm0jap716gbqzyyznmldy87lfgbn512x448y5h8v9fgd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIGFjY2VzcyB0byBEb2NrZXIgYW5kIERvY2tlciBDb21wb3NlLiIsCiAgImdldHRleHQtZG9tYWluIjogImRvY2tlckBzdGlja21hbl8weDAwLmNvbSIsCiAgIm5hbWUiOiAiRG9ja2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRvY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc3RpY2ttYW5fMHgwMC9nbm9tZV9zaGVsbF9leHRlbnNpb25fZG9ja2VyIiwKICAidXVpZCI6ICJkb2NrZXJAc3RpY2ttYW5fMHgwMC5jb20iLAogICJ2ZXJzaW9uIjogMzEKfQ=="},
-    "46": {"version": "31", "sha256": "02vkhxs5nm0jap716gbqzyyznmldy87lfgbn512x448y5h8v9fgd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIGFjY2VzcyB0byBEb2NrZXIgYW5kIERvY2tlciBDb21wb3NlLiIsCiAgImdldHRleHQtZG9tYWluIjogImRvY2tlckBzdGlja21hbl8weDAwLmNvbSIsCiAgIm5hbWUiOiAiRG9ja2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRvY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc3RpY2ttYW5fMHgwMC9nbm9tZV9zaGVsbF9leHRlbnNpb25fZG9ja2VyIiwKICAidXVpZCI6ICJkb2NrZXJAc3RpY2ttYW5fMHgwMC5jb20iLAogICJ2ZXJzaW9uIjogMzEKfQ=="}
+    "45": {"version": "33", "sha256": "019j0gskzfdh1snbhyqxhiskyqaqhszsw5flapmx6ndwcn5fjybs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIGFjY2VzcyB0byBEb2NrZXIgYW5kIERvY2tlciBDb21wb3NlLiIsCiAgImdldHRleHQtZG9tYWluIjogImRvY2tlckBzdGlja21hbl8weDAwLmNvbSIsCiAgIm5hbWUiOiAiRG9ja2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRvY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc3RpY2ttYW5fMHgwMC9nbm9tZV9zaGVsbF9leHRlbnNpb25fZG9ja2VyIiwKICAidXVpZCI6ICJkb2NrZXJAc3RpY2ttYW5fMHgwMC5jb20iLAogICJ2ZXJzaW9uIjogMzMKfQ=="},
+    "46": {"version": "33", "sha256": "019j0gskzfdh1snbhyqxhiskyqaqhszsw5flapmx6ndwcn5fjybs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIGFjY2VzcyB0byBEb2NrZXIgYW5kIERvY2tlciBDb21wb3NlLiIsCiAgImdldHRleHQtZG9tYWluIjogImRvY2tlckBzdGlja21hbl8weDAwLmNvbSIsCiAgIm5hbWUiOiAiRG9ja2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRvY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc3RpY2ttYW5fMHgwMC9nbm9tZV9zaGVsbF9leHRlbnNpb25fZG9ja2VyIiwKICAidXVpZCI6ICJkb2NrZXJAc3RpY2ttYW5fMHgwMC5jb20iLAogICJ2ZXJzaW9uIjogMzMKfQ=="}
   }}
 , {"uuid": "reboottouefi@ubaygd.com", "name": "RebootToUEFI", "pname": "reboottouefi", "description": "Reboot system into UEFI", "link": "https://extensions.gnome.org/extension/5105/reboottouefi/", "shell_version_map": {
     "42": {"version": "14", "sha256": "1yqp2hhmcymzjyq3shwh1cld423iah9s8s3caqmjrln7vjh4syrw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlYm9vdCBzeXN0ZW0gaW50byBVRUZJIiwKICAibGljZW5zZSI6ICJHUEx2MyIsCiAgIm5hbWUiOiAiUmVib290VG9VRUZJIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVWJheUdEL3JlYm9vdHRvdWVmaSIsCiAgInV1aWQiOiAicmVib290dG91ZWZpQHViYXlnZC5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="},
     "43": {"version": "14", "sha256": "1yqp2hhmcymzjyq3shwh1cld423iah9s8s3caqmjrln7vjh4syrw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlYm9vdCBzeXN0ZW0gaW50byBVRUZJIiwKICAibGljZW5zZSI6ICJHUEx2MyIsCiAgIm5hbWUiOiAiUmVib290VG9VRUZJIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVWJheUdEL3JlYm9vdHRvdWVmaSIsCiAgInV1aWQiOiAicmVib290dG91ZWZpQHViYXlnZC5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="},
     "44": {"version": "14", "sha256": "1yqp2hhmcymzjyq3shwh1cld423iah9s8s3caqmjrln7vjh4syrw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlYm9vdCBzeXN0ZW0gaW50byBVRUZJIiwKICAibGljZW5zZSI6ICJHUEx2MyIsCiAgIm5hbWUiOiAiUmVib290VG9VRUZJIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVWJheUdEL3JlYm9vdHRvdWVmaSIsCiAgInV1aWQiOiAicmVib290dG91ZWZpQHViYXlnZC5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="},
-    "45": {"version": "21", "sha256": "18c7ib0cmpf1ac3x1b3p91ydf4c3f08vp3zzivmx1qgj2b4595a1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlYm9vdCBzeXN0ZW0gaW50byBVRUZJIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicmVib290dG91ZWZpQHViYXlnZC5jb20iLAogICJsaWNlbnNlIjogIkdQTHYzIiwKICAibmFtZSI6ICJSZWJvb3RUb1VFRkkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1ViYXlHRC9yZWJvb3R0b3VlZmkiLAogICJ1dWlkIjogInJlYm9vdHRvdWVmaUB1YmF5Z2QuY29tIiwKICAidmVyc2lvbiI6IDIxCn0="},
-    "46": {"version": "21", "sha256": "18c7ib0cmpf1ac3x1b3p91ydf4c3f08vp3zzivmx1qgj2b4595a1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlYm9vdCBzeXN0ZW0gaW50byBVRUZJIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicmVib290dG91ZWZpQHViYXlnZC5jb20iLAogICJsaWNlbnNlIjogIkdQTHYzIiwKICAibmFtZSI6ICJSZWJvb3RUb1VFRkkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1ViYXlHRC9yZWJvb3R0b3VlZmkiLAogICJ1dWlkIjogInJlYm9vdHRvdWVmaUB1YmF5Z2QuY29tIiwKICAidmVyc2lvbiI6IDIxCn0="}
+    "45": {"version": "22", "sha256": "167i8z1i04b9q5isbrwd8a7n6rw6w23qc7nvck8w7qrls83cc280", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlYm9vdCBzeXN0ZW0gaW50byBVRUZJIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicmVib290dG91ZWZpQHViYXlnZC5jb20iLAogICJsaWNlbnNlIjogIkdQTHYzIiwKICAibmFtZSI6ICJSZWJvb3RUb1VFRkkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1ViYXlHRC9yZWJvb3R0b3VlZmkiLAogICJ1dWlkIjogInJlYm9vdHRvdWVmaUB1YmF5Z2QuY29tIiwKICAidmVyc2lvbiI6IDIyCn0="},
+    "46": {"version": "22", "sha256": "167i8z1i04b9q5isbrwd8a7n6rw6w23qc7nvck8w7qrls83cc280", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlYm9vdCBzeXN0ZW0gaW50byBVRUZJIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicmVib290dG91ZWZpQHViYXlnZC5jb20iLAogICJsaWNlbnNlIjogIkdQTHYzIiwKICAibmFtZSI6ICJSZWJvb3RUb1VFRkkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1ViYXlHRC9yZWJvb3R0b3VlZmkiLAogICJ1dWlkIjogInJlYm9vdHRvdWVmaUB1YmF5Z2QuY29tIiwKICAidmVyc2lvbiI6IDIyCn0="}
   }}
 , {"uuid": "touch-ux@dblandford.com", "name": "Touch-UX", "pname": "touch-ux", "description": "Provides a swipe up gesture bar and a status bar shortcut to force the on screen keyboard to show in scenarios that it does not automatically show when expected.", "link": "https://extensions.gnome.org/extension/5108/touch-ux/", "shell_version_map": {
     "42": {"version": "3", "sha256": "1vjchsz0jml0qaj2mz0khsagacxz1m60ypcjnymh3swrx9lj765m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGVzIGEgc3dpcGUgdXAgZ2VzdHVyZSBiYXIgYW5kIGEgc3RhdHVzIGJhciBzaG9ydGN1dCB0byBmb3JjZSB0aGUgb24gc2NyZWVuIGtleWJvYXJkIHRvIHNob3cgaW4gc2NlbmFyaW9zIHRoYXQgaXQgZG9lcyBub3QgYXV0b21hdGljYWxseSBzaG93IHdoZW4gZXhwZWN0ZWQuIiwKICAibmFtZSI6ICJUb3VjaC1VWCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9EYW5pZWwtQmxhbmRmb3JkL1RvdWNoLVVYIiwKICAidXVpZCI6ICJ0b3VjaC11eEBkYmxhbmRmb3JkLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}
@@ -5186,16 +5224,17 @@
     "42": {"version": "10", "sha256": "0ca4nlss4j5rmq8xaqvjxxacdhb1vlmydqp4cal77mgzk79q63nk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVQb3dlciBCYXR0ZXJ5IEluZGljYXRvci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ1cG93ZXJfYmF0dGVyeV9pbmRpY2F0b3IiLAogICJuYW1lIjogIlVQb3dlciBCYXR0ZXJ5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY29kaWxpYS91cG93ZXItYmF0dGVyeSIsCiAgInV1aWQiOiAidXBvd2VyLWJhdHRlcnlAY29kaWxpYS5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="},
     "43": {"version": "10", "sha256": "0ca4nlss4j5rmq8xaqvjxxacdhb1vlmydqp4cal77mgzk79q63nk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVQb3dlciBCYXR0ZXJ5IEluZGljYXRvci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ1cG93ZXJfYmF0dGVyeV9pbmRpY2F0b3IiLAogICJuYW1lIjogIlVQb3dlciBCYXR0ZXJ5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY29kaWxpYS91cG93ZXItYmF0dGVyeSIsCiAgInV1aWQiOiAidXBvd2VyLWJhdHRlcnlAY29kaWxpYS5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="},
     "44": {"version": "10", "sha256": "0ca4nlss4j5rmq8xaqvjxxacdhb1vlmydqp4cal77mgzk79q63nk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVQb3dlciBCYXR0ZXJ5IEluZGljYXRvci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ1cG93ZXJfYmF0dGVyeV9pbmRpY2F0b3IiLAogICJuYW1lIjogIlVQb3dlciBCYXR0ZXJ5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY29kaWxpYS91cG93ZXItYmF0dGVyeSIsCiAgInV1aWQiOiAidXBvd2VyLWJhdHRlcnlAY29kaWxpYS5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="},
-    "45": {"version": "16", "sha256": "09hxl6scc3jslfjxl4dsy76fkj8sjb0rhbs4y3d9id6n3gszgqny", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVQb3dlciBCYXR0ZXJ5IEluZGljYXRvci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ1cG93ZXJfYmF0dGVyeV9pbmRpY2F0b3IiLAogICJuYW1lIjogIlVQb3dlciBCYXR0ZXJ5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NvZGlsaWEvdXBvd2VyLWJhdHRlcnkiLAogICJ1dWlkIjogInVwb3dlci1iYXR0ZXJ5QGNvZGlsaWEuY29tIiwKICAidmVyc2lvbiI6IDE2Cn0="}
+    "45": {"version": "19", "sha256": "0j7w5bscinqzjldjf056ckfxsadzicz0mj4y0zwniisjixp2c7zj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVQb3dlciBCYXR0ZXJ5IEluZGljYXRvci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ1cG93ZXJfYmF0dGVyeV9pbmRpY2F0b3IiLAogICJuYW1lIjogIlVQb3dlciBCYXR0ZXJ5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb2RpbGlhL3Vwb3dlci1iYXR0ZXJ5IiwKICAidXVpZCI6ICJ1cG93ZXItYmF0dGVyeUBjb2RpbGlhLmNvbSIsCiAgInZlcnNpb24iOiAxOQp9"},
+    "46": {"version": "19", "sha256": "0j7w5bscinqzjldjf056ckfxsadzicz0mj4y0zwniisjixp2c7zj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVQb3dlciBCYXR0ZXJ5IEluZGljYXRvci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ1cG93ZXJfYmF0dGVyeV9pbmRpY2F0b3IiLAogICJuYW1lIjogIlVQb3dlciBCYXR0ZXJ5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb2RpbGlhL3Vwb3dlci1iYXR0ZXJ5IiwKICAidXVpZCI6ICJ1cG93ZXItYmF0dGVyeUBjb2RpbGlhLmNvbSIsCiAgInZlcnNpb24iOiAxOQp9"}
   }}
-, {"uuid": "vertical-workspaces@G-dH.github.com", "name": "V-Shell (Vertical Workspaces)", "pname": "vertical-workspaces", "description": "Customize your GNOME Shell UX to fit your workflow, whether you like horizontally or vertically stacked workspaces. Originally Vertical Workspaces.\n\nDear users, the reliability and stability of this extension is my priority, but V-Shell is an extension to default GNOME Shell and cannot be compatible with all available extensions. If you encounter any problem, first check for conflicts with other extensions and then open an issue on the Github page linked below.\n\nV-Shell includes many workarounds to survive conflicts and work with Dash to Dock / Ubuntu Dock extensions and other popular extensions, but issues may occur. The patched Dash to Dock for V-Shell is already available in my GitHub repository.\n\nAny feedback is greatly appreciated!\n\nV-Shell features:\n- vertical or horizontal orientation of workspaces\n- customize the overview layout, dimensions and contents\n- alternative overview modes with static workspace preview that reduces unnecessary movement on the screen\n- 4 predefined profiles with different layout and behavior that can be overwritten by your settings\n- wallpaper background with adjustable blur effect in the overview\n- dash icon size, content, icon click and scroll behavior\n- app grid dimensions, icon size, contents and behavior\n- active icons in the folder preview\n- close workspace button on workspace thumbnail\n- main panel position and visibility\n- hot corner/edge position and behavior\n- notifications, OSD and workspace switcher popup position\n- custom window attention handler behavior\n- improved app search provider with custom icon size\n- static background in the workspace switcher animation outside of the overview\n- independent workspace switching for each monitor (workaround)\n- workspace switcher popup appears even when switching workspace with a gesture\n- workspace isolated Dash\n- fixes (works around) several upstream bugs (known and reported)\n- modular structure of the V-Shell allows you to disable modules that you don't need or conflict with other extension that you like better for the task", "link": "https://extensions.gnome.org/extension/5177/vertical-workspaces/", "shell_version_map": {
+, {"uuid": "vertical-workspaces@G-dH.github.com", "name": "V-Shell (Vertical Workspaces)", "pname": "vertical-workspaces", "description": "Customize your GNOME Shell UX to fit your workflow, whether you like horizontally or vertically stacked workspaces.\n\nDear users, the reliability and stability of this extension is my priority, however, V-Shell is an extension to the default GNOME Shell and cannot be compatible with all available extensions. If you encounter any problem, first check for conflicts with other extensions and then open an issue on the Github page linked below.\n\nV-Shell includes many workarounds to survive conflicts and work with Dash to Dock / Ubuntu Dock extensions and other popular extensions, but issues may occur. The patched Dash to Dock for V-Shell is already available in my GitHub repository.\n\nAny feedback is greatly appreciated!\n\nV-Shell features:\n- vertical or horizontal orientation of workspaces\n- customize the overview layout, dimensions and contents\n- alternative overview modes with static workspace preview that reduces unnecessary movement on the screen\n- 4 predefined and fully customizable profiles with different layout and behavior\n- wallpaper background with adjustable brightness and blur effect in the overview\n- dash icon size, content, icon click and scroll behavior\n- app grid dimensions (columns, rows), icon size, contents and behavior\n- active icons in the folder preview\n- close workspace button on workspace thumbnail\n- main panel position and visibility\n- hot corner/edge position and behavior\n- notifications, OSD and workspace switcher popup position\n- custom window attention handler behavior\n- improved app search provider with custom icon size\n- static background in the workspace switcher animation outside of the overview\n- independent workspace switching for each monitor (workaround)\n- workspace switcher popup appears even when switching workspace with a gesture\n- workspace isolated Dash\n- fixes (works around) several upstream bugs (known and reported)\n- modular structure of the V-Shell allows you to disable modules that you don't need or conflict with other extension that you like better for the task", "link": "https://extensions.gnome.org/extension/5177/vertical-workspaces/", "shell_version_map": {
     "40": {"version": "23", "sha256": "0dp7qbbcs46w1lc2v46cvhfx7r8h1jrp95mhd8wip8c7npmnr66q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuXG5cbkRlYXIgdXNlcnMsIHRoZSByZWxpYWJpbGl0eSBhbmQgc3RhYmlsaXR5IG9mIHRoaXMgZXh0ZW5zaW9uIGlzIG15IHByaW9yaXR5LCBpZiB5b3UgZW5jb3VudGVyIGFueSBwcm9ibGVtLCBmaXJzdCBjaGVjayBmb3IgY29uZmxpY3RzIHdpdGggb3RoZXIgZXh0ZW5zaW9ucyBhbmQgdGhlbiBvcGVuIGFuIGlzc3VlIG9uIHRoZSBHaXRodWIgcGFnZSBsaW5rZWQgYmVsb3cuXG5cblYtU2hlbGwgaW5jbHVkZXMgbWFueSB3b3JrYXJvdW5kcyB0byBzdXJ2aXZlIGNvbmZsaWN0cyBhbmQgd29yayB3aXRoIERhc2ggdG8gRG9jayAvIFVidW50dSBEb2NrIGV4dGVuc2lvbnMsIGJ1dCBpc3N1ZXMgbWF5IG9jY3VyLiBJbiBhbnkgY2FzZSwgVi1TaGVsbCB3b3JrcyBiZXR0ZXIgd2l0aG91dCBEYXNoIHRvIERvY2suXG5cbkFueSBmZWVkYmFjayBpcyBncmVhdGx5IGFwcHJlY2lhdGVkLCBidXQgZG9uJ3QgZm9yZ2V0IC0gaWYgeW91IHdhbnQgbWUgdG8gd29yayBmb3IgeW91LCBiZSBuaWNlIDspXG5cblYtU2hlbGwgZmVhdHVyZXM6XG4tIHZlcnRpY2FsIG9yIGhvcml6b250YWwgb3JpZW50YXRpb24gb2Ygd29ya3NwYWNlc1xuLSBjdXN0b21pemUgdGhlIG92ZXJ2aWV3IGxheW91dCwgZGltZW5zaW9ucyBhbmQgY29udGVudHNcbi0gYWx0ZXJuYXRpdmUgb3ZlcnZpZXcgbW9kZXMgd2l0aCBzdGF0aWMgd29ya3NwYWNlIHByZXZpZXcgdGhhdCByZWR1Y2VzIHVubmVjZXNzYXJ5IG1vdmVtZW50IG9uIHRoZSBzY3JlZW5cbi0gd2FsbHBhcGVyIGJhY2tncm91bmQgd2l0aCBhZGp1c3RhYmxlIGJsdXIgZWZmZWN0IGluIHRoZSBvdmVydmlld1xuLSBkYXNoIGljb24gc2l6ZSwgY29udGVudCwgaWNvbiBjbGljayBhbmQgc2Nyb2xsIGJlaGF2aW9yXG4tIGFwcCBncmlkIGRpbWVuc2lvbnMsIGljb25zIHNpemUsIGNvbnRlbnRzIGFuZCBiZWhhdmlvclxuLSBhY3RpdmUgaWNvbnMgaW4gdGhlIGZvbGRlciBwcmV2aWV3XG4tIGNsb3NlIHdvcmtzcGFjZSBidXR0b24gb24gd29ya3NwYWNlIHRodW1ibmFpbFxuLSBtYWluIHBhbmVsIHBvc2l0aW9uIGFuZCB2aXNpYmlsaXR5XG4tIGhvdCBjb3JuZXIvZWRnZSBwb3NpdGlvbiBhbmQgYmVoYXZpb3Jcbi0gbm90aWZpY2F0aW9ucywgT1NEIGFuZCB3b3Jrc3BhY2Ugc3dpdGNoZXIgcG9wdXAgcG9zaXRpb25cbi0gY3VzdG9tIHdpbmRvdyBhdHRlbnRpb24gaGFuZGxlciBiZWhhdmlvclxuLSBpbXByb3ZlZCBhcHAgc2VhcmNoIHByb3ZpZGVyIHdpdGggY3VzdG9tIGljb24gc2l6ZVxuLSB3aW5kb3cgc2VhcmNoIHByb3ZpZGVyIGZvciBxdWljayBuYXZpZ2F0aW9uIGJldHdlZW4gd2luZG93c1xuLSByZWNlbnQgZmlsZXMgc2VhcmNoIHByb3ZpZGVyXG4tIHN0YXRpYyBiYWNrZ3JvdW5kIGluIHRoZSB3b3Jrc3BhY2Ugc3dpdGNoZXIgYW5pbWF0aW9uIG91dHNpZGUgb2YgdGhlIG92ZXJ2aWV3XG4tIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCBhcHBlYXJzIGV2ZW4gd2hlbiBzd2l0Y2hpbmcgd29ya3NwYWNlIHdpdGggYSBnZXN0dXJlXG4tIDQgcHJlZGVmaW5lZCBwcm9maWxlcyB3aXRoIGRpZmZlcmVudCBsYXlvdXQgYW5kIGJlaGF2aW9yIHRoYXQgY2FuIGJlIG92ZXJ3cml0dGVuIGJ5IHlvdXIgc2V0dGluZ3Ncbi0gZml4ZXMgKHdvcmtzIGFyb3VuZCkgc2V2ZXJhbCB1cHN0cmVhbSBidWdzIChrbm93biBhbmQgcmVwb3J0ZWQpXG4tIG1vZHVsYXIgc3RydWN0dXJlIG9mIHRoZSBWLVNoZWxsIGFsbG93cyB5b3UgdG8gZGlzYWJsZSBtb2R1bGVzIHRoYXQgeW91IGRvbid0IG5lZWQgb3IgY29uZmxpY3RzIHdpdGggb3RoZXIgZXh0ZW5zaW9uIHRoYXQgeW91IGxpa2UgYmV0dGVyIGZvciB0aGUgdGFzayIsCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC92ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ2ZXJ0aWNhbC13b3Jrc3BhY2VzQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyMwp9"},
     "41": {"version": "23", "sha256": "0dp7qbbcs46w1lc2v46cvhfx7r8h1jrp95mhd8wip8c7npmnr66q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuXG5cbkRlYXIgdXNlcnMsIHRoZSByZWxpYWJpbGl0eSBhbmQgc3RhYmlsaXR5IG9mIHRoaXMgZXh0ZW5zaW9uIGlzIG15IHByaW9yaXR5LCBpZiB5b3UgZW5jb3VudGVyIGFueSBwcm9ibGVtLCBmaXJzdCBjaGVjayBmb3IgY29uZmxpY3RzIHdpdGggb3RoZXIgZXh0ZW5zaW9ucyBhbmQgdGhlbiBvcGVuIGFuIGlzc3VlIG9uIHRoZSBHaXRodWIgcGFnZSBsaW5rZWQgYmVsb3cuXG5cblYtU2hlbGwgaW5jbHVkZXMgbWFueSB3b3JrYXJvdW5kcyB0byBzdXJ2aXZlIGNvbmZsaWN0cyBhbmQgd29yayB3aXRoIERhc2ggdG8gRG9jayAvIFVidW50dSBEb2NrIGV4dGVuc2lvbnMsIGJ1dCBpc3N1ZXMgbWF5IG9jY3VyLiBJbiBhbnkgY2FzZSwgVi1TaGVsbCB3b3JrcyBiZXR0ZXIgd2l0aG91dCBEYXNoIHRvIERvY2suXG5cbkFueSBmZWVkYmFjayBpcyBncmVhdGx5IGFwcHJlY2lhdGVkLCBidXQgZG9uJ3QgZm9yZ2V0IC0gaWYgeW91IHdhbnQgbWUgdG8gd29yayBmb3IgeW91LCBiZSBuaWNlIDspXG5cblYtU2hlbGwgZmVhdHVyZXM6XG4tIHZlcnRpY2FsIG9yIGhvcml6b250YWwgb3JpZW50YXRpb24gb2Ygd29ya3NwYWNlc1xuLSBjdXN0b21pemUgdGhlIG92ZXJ2aWV3IGxheW91dCwgZGltZW5zaW9ucyBhbmQgY29udGVudHNcbi0gYWx0ZXJuYXRpdmUgb3ZlcnZpZXcgbW9kZXMgd2l0aCBzdGF0aWMgd29ya3NwYWNlIHByZXZpZXcgdGhhdCByZWR1Y2VzIHVubmVjZXNzYXJ5IG1vdmVtZW50IG9uIHRoZSBzY3JlZW5cbi0gd2FsbHBhcGVyIGJhY2tncm91bmQgd2l0aCBhZGp1c3RhYmxlIGJsdXIgZWZmZWN0IGluIHRoZSBvdmVydmlld1xuLSBkYXNoIGljb24gc2l6ZSwgY29udGVudCwgaWNvbiBjbGljayBhbmQgc2Nyb2xsIGJlaGF2aW9yXG4tIGFwcCBncmlkIGRpbWVuc2lvbnMsIGljb25zIHNpemUsIGNvbnRlbnRzIGFuZCBiZWhhdmlvclxuLSBhY3RpdmUgaWNvbnMgaW4gdGhlIGZvbGRlciBwcmV2aWV3XG4tIGNsb3NlIHdvcmtzcGFjZSBidXR0b24gb24gd29ya3NwYWNlIHRodW1ibmFpbFxuLSBtYWluIHBhbmVsIHBvc2l0aW9uIGFuZCB2aXNpYmlsaXR5XG4tIGhvdCBjb3JuZXIvZWRnZSBwb3NpdGlvbiBhbmQgYmVoYXZpb3Jcbi0gbm90aWZpY2F0aW9ucywgT1NEIGFuZCB3b3Jrc3BhY2Ugc3dpdGNoZXIgcG9wdXAgcG9zaXRpb25cbi0gY3VzdG9tIHdpbmRvdyBhdHRlbnRpb24gaGFuZGxlciBiZWhhdmlvclxuLSBpbXByb3ZlZCBhcHAgc2VhcmNoIHByb3ZpZGVyIHdpdGggY3VzdG9tIGljb24gc2l6ZVxuLSB3aW5kb3cgc2VhcmNoIHByb3ZpZGVyIGZvciBxdWljayBuYXZpZ2F0aW9uIGJldHdlZW4gd2luZG93c1xuLSByZWNlbnQgZmlsZXMgc2VhcmNoIHByb3ZpZGVyXG4tIHN0YXRpYyBiYWNrZ3JvdW5kIGluIHRoZSB3b3Jrc3BhY2Ugc3dpdGNoZXIgYW5pbWF0aW9uIG91dHNpZGUgb2YgdGhlIG92ZXJ2aWV3XG4tIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCBhcHBlYXJzIGV2ZW4gd2hlbiBzd2l0Y2hpbmcgd29ya3NwYWNlIHdpdGggYSBnZXN0dXJlXG4tIDQgcHJlZGVmaW5lZCBwcm9maWxlcyB3aXRoIGRpZmZlcmVudCBsYXlvdXQgYW5kIGJlaGF2aW9yIHRoYXQgY2FuIGJlIG92ZXJ3cml0dGVuIGJ5IHlvdXIgc2V0dGluZ3Ncbi0gZml4ZXMgKHdvcmtzIGFyb3VuZCkgc2V2ZXJhbCB1cHN0cmVhbSBidWdzIChrbm93biBhbmQgcmVwb3J0ZWQpXG4tIG1vZHVsYXIgc3RydWN0dXJlIG9mIHRoZSBWLVNoZWxsIGFsbG93cyB5b3UgdG8gZGlzYWJsZSBtb2R1bGVzIHRoYXQgeW91IGRvbid0IG5lZWQgb3IgY29uZmxpY3RzIHdpdGggb3RoZXIgZXh0ZW5zaW9uIHRoYXQgeW91IGxpa2UgYmV0dGVyIGZvciB0aGUgdGFzayIsCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC92ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ2ZXJ0aWNhbC13b3Jrc3BhY2VzQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyMwp9"},
-    "42": {"version": "53", "sha256": "14jva97bd3shc3skz348pw41h9slxrkz6zd7s3x9snf4rv5xj59r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC92ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ2ZXJ0aWNhbC13b3Jrc3BhY2VzQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1MywKICAidmVyc2lvbi1uYW1lIjogIjQ0LjExIgp9"},
-    "43": {"version": "53", "sha256": "14jva97bd3shc3skz348pw41h9slxrkz6zd7s3x9snf4rv5xj59r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC92ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ2ZXJ0aWNhbC13b3Jrc3BhY2VzQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1MywKICAidmVyc2lvbi1uYW1lIjogIjQ0LjExIgp9"},
-    "44": {"version": "53", "sha256": "14jva97bd3shc3skz348pw41h9slxrkz6zd7s3x9snf4rv5xj59r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC92ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ2ZXJ0aWNhbC13b3Jrc3BhY2VzQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1MywKICAidmVyc2lvbi1uYW1lIjogIjQ0LjExIgp9"},
-    "45": {"version": "52", "sha256": "172b9qzq2a6gp0qi1fv3nvnv4i3cvfwbklaa5z7n6gkx71nib400", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvdmVydGljYWwtd29ya3NwYWNlcyIsCiAgInV1aWQiOiAidmVydGljYWwtd29ya3NwYWNlc0BHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNTIsCiAgInZlcnNpb24tbmFtZSI6ICI0NS4zIgp9"},
-    "46": {"version": "57", "sha256": "04vrcx2bg68cnpv93k8f3k5fp4lrm53p362jjppa2gg9hjgkjys5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvdmVydGljYWwtd29ya3NwYWNlcyIsCiAgInV1aWQiOiAidmVydGljYWwtd29ya3NwYWNlc0BHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNTcsCiAgInZlcnNpb24tbmFtZSI6ICI0Ni4wLjEiCn0="}
+    "42": {"version": "61", "sha256": "1a4ahrz2ixf4lb04v0986xybms6rzkp9w4c8nbl2yg8mpdpsdl3a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC92ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ2ZXJ0aWNhbC13b3Jrc3BhY2VzQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA2MSwKICAidmVyc2lvbi1uYW1lIjogIjQ0LjEyIgp9"},
+    "43": {"version": "61", "sha256": "1a4ahrz2ixf4lb04v0986xybms6rzkp9w4c8nbl2yg8mpdpsdl3a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC92ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ2ZXJ0aWNhbC13b3Jrc3BhY2VzQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA2MSwKICAidmVyc2lvbi1uYW1lIjogIjQ0LjEyIgp9"},
+    "44": {"version": "61", "sha256": "1a4ahrz2ixf4lb04v0986xybms6rzkp9w4c8nbl2yg8mpdpsdl3a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC92ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ2ZXJ0aWNhbC13b3Jrc3BhY2VzQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA2MSwKICAidmVyc2lvbi1uYW1lIjogIjQ0LjEyIgp9"},
+    "45": {"version": "60", "sha256": "0f0yfai0b8bb2734zf5jlclwnm0kpqrmy11hznkyxr6kf5c2h94c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9HLWRIL3ZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJ1dWlkIjogInZlcnRpY2FsLXdvcmtzcGFjZXNARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDYwLAogICJ2ZXJzaW9uLW5hbWUiOiAiNDYuMSIKfQ=="},
+    "46": {"version": "60", "sha256": "0f0yfai0b8bb2734zf5jlclwnm0kpqrmy11hznkyxr6kf5c2h94c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIEdOT01FIFNoZWxsIFVYIHRvIHN1aXQgeW91ciB3b3JrZmxvdywgd2hldGhlciB5b3UgbGlrZSBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJnZW9yZ2RoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogInZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJuYW1lIjogIlYtU2hlbGwgKFZlcnRpY2FsIFdvcmtzcGFjZXMpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZXJ0aWNhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9HLWRIL3ZlcnRpY2FsLXdvcmtzcGFjZXMiLAogICJ1dWlkIjogInZlcnRpY2FsLXdvcmtzcGFjZXNARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDYwLAogICJ2ZXJzaW9uLW5hbWUiOiAiNDYuMSIKfQ=="}
   }}
 , {"uuid": "rocketbar@chepkun.github.com", "name": "Rocketbar", "pname": "rocketbar", "description": "Taskbar and misc additions for the GNOME Shell.", "link": "https://extensions.gnome.org/extension/5180/rocketbar/", "shell_version_map": {
     "42": {"version": "8", "sha256": "0p8msiyqpic8d0cv65j97gqp03vgi935rqgs2gjrffq3cg7wy2iq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2tiYXIgYW5kIG1pc2MgYWRkaXRpb25zIGZvciB0aGUgR05PTUUgU2hlbGwuXG5cbkEgbmV3IG1ham9yIHJlbGVhc2Ugd2lsbCBiZSBvdXQgbGF0ZXIgdGhpcyB5ZWFyLi4uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicm9ja2V0YmFyIiwKICAibmFtZSI6ICJSb2NrZXRiYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucm9ja2V0YmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbGludXgtaXMtYXdlc29tZS9nbm9tZV9leHRlbnNpb25fcm9ja2V0YmFyIiwKICAidXVpZCI6ICJyb2NrZXRiYXJAY2hlcGt1bi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="},
@@ -5233,7 +5272,8 @@
     "42": {"version": "4", "sha256": "09jcgvhlhx4hp0rj6adb0qpc6kajch8gyjfdk1vdnwxkysvr8241", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJlZXIgdGltZXIgdW50aWwgbmV4dCB3ZWVrLWVuZCAoYmFzZWQgb24gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNjY3L3dlZWtlbmQtby1tZXRlci8pIiwKICAibmFtZSI6ICJXZWVrZW5kLU8tTWV0ZXIgUmV2aXZlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb2ZmZXZlcnRvbi93ZWVrZW5kLW8tbWV0ZXIiLAogICJ1dWlkIjogIndlZWtlbmQtby1tZXRlckBjb2ZmZXZlcnRvbi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNAp9"},
     "43": {"version": "4", "sha256": "09jcgvhlhx4hp0rj6adb0qpc6kajch8gyjfdk1vdnwxkysvr8241", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJlZXIgdGltZXIgdW50aWwgbmV4dCB3ZWVrLWVuZCAoYmFzZWQgb24gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNjY3L3dlZWtlbmQtby1tZXRlci8pIiwKICAibmFtZSI6ICJXZWVrZW5kLU8tTWV0ZXIgUmV2aXZlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb2ZmZXZlcnRvbi93ZWVrZW5kLW8tbWV0ZXIiLAogICJ1dWlkIjogIndlZWtlbmQtby1tZXRlckBjb2ZmZXZlcnRvbi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNAp9"},
     "44": {"version": "4", "sha256": "09jcgvhlhx4hp0rj6adb0qpc6kajch8gyjfdk1vdnwxkysvr8241", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJlZXIgdGltZXIgdW50aWwgbmV4dCB3ZWVrLWVuZCAoYmFzZWQgb24gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNjY3L3dlZWtlbmQtby1tZXRlci8pIiwKICAibmFtZSI6ICJXZWVrZW5kLU8tTWV0ZXIgUmV2aXZlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb2ZmZXZlcnRvbi93ZWVrZW5kLW8tbWV0ZXIiLAogICJ1dWlkIjogIndlZWtlbmQtby1tZXRlckBjb2ZmZXZlcnRvbi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNAp9"},
-    "45": {"version": "5", "sha256": "1w0q1s4bb0jjmrkqw44ng4iaq9k3azxqchpxm6wzzc1vzxvjzl7c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJlZXIgdGltZXIgdW50aWwgbmV4dCB3ZWVrLWVuZCAoYmFzZWQgb24gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNjY3L3dlZWtlbmQtby1tZXRlci8pIiwKICAibmFtZSI6ICJXZWVrZW5kLU8tTWV0ZXIgUmV2aXZlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb2ZmZXZlcnRvbi93ZWVrZW5kLW8tbWV0ZXIiLAogICJ1dWlkIjogIndlZWtlbmQtby1tZXRlckBjb2ZmZXZlcnRvbi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}
+    "45": {"version": "6", "sha256": "0gmr2gl14h7rqwsg8d9kfdhkc48860g7g3fvr54y4sq3mp39ksdg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJlZXIgdGltZXIgdW50aWwgbmV4dCB3ZWVrLWVuZCAoYmFzZWQgb24gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNjY3L3dlZWtlbmQtby1tZXRlci8pIiwKICAibmFtZSI6ICJXZWVrZW5kLU8tTWV0ZXIgUmV2aXZlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY29mZmV2ZXJ0b24vd2Vla2VuZC1vLW1ldGVyIiwKICAidXVpZCI6ICJ3ZWVrZW5kLW8tbWV0ZXJAY29mZmV2ZXJ0b24uZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="},
+    "46": {"version": "6", "sha256": "0gmr2gl14h7rqwsg8d9kfdhkc48860g7g3fvr54y4sq3mp39ksdg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJlZXIgdGltZXIgdW50aWwgbmV4dCB3ZWVrLWVuZCAoYmFzZWQgb24gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNjY3L3dlZWtlbmQtby1tZXRlci8pIiwKICAibmFtZSI6ICJXZWVrZW5kLU8tTWV0ZXIgUmV2aXZlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY29mZmV2ZXJ0b24vd2Vla2VuZC1vLW1ldGVyIiwKICAidXVpZCI6ICJ3ZWVrZW5kLW8tbWV0ZXJAY29mZmV2ZXJ0b24uZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="}
   }}
 , {"uuid": "time-in-date-menu@knedme", "name": "Time in date menu", "pname": "time-in-date-menu", "description": "Adds current time to date menu.", "link": "https://extensions.gnome.org/extension/5204/time-in-date-menu/", "shell_version_map": {
     "38": {"version": "6", "sha256": "0psshnjpqnaia7a4x2yf9k8p0vjnv01qpq5l6s7fs7d3fccl26lx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgY3VycmVudCB0aW1lIHRvIGRhdGUgbWVudS4iLAogICJuYW1lIjogIlRpbWUgaW4gZGF0ZSBtZW51IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRpbWUtaW4tZGF0ZS1tZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9LbmVkbWUvVGltZS1pbi1kYXRlLW1lbnUiLAogICJ1dWlkIjogInRpbWUtaW4tZGF0ZS1tZW51QGtuZWRtZSIsCiAgInZlcnNpb24iOiA2Cn0="},
@@ -5295,8 +5335,8 @@
     "42": {"version": "60", "sha256": "0gxn065ls150nj88zslng8lkhqfzba8lkhxyi74rpqn477ss6y9q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgR3RrNCBpY29ucyB0byB0aGUgR25vbWUgZGVza3RvcC4gR3RrNCBGb3JrIG9mIHRoZSBvcmlnaW5hbCBEZXNrdG9wIEljb25zIGV4dGVuc2lvbiwgd2l0aCBzZXZlcmFsIGVuaGFuY2VtZW50cy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJndGs0LWRpbmdAc21lZGl1cy5naXRsYWIuY29tIiwKICAibmFtZSI6ICJHdGs0IERlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ndGs0LWRpbmciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9zbWVkaXVzL2Rlc2t0b3AtaWNvbnMtbmciLAogICJ1dWlkIjogImd0azQtZGluZ0BzbWVkaXVzLmdpdGxhYi5jb20iLAogICJ2ZXJzaW9uIjogNjAKfQ=="},
     "43": {"version": "60", "sha256": "0gxn065ls150nj88zslng8lkhqfzba8lkhxyi74rpqn477ss6y9q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgR3RrNCBpY29ucyB0byB0aGUgR25vbWUgZGVza3RvcC4gR3RrNCBGb3JrIG9mIHRoZSBvcmlnaW5hbCBEZXNrdG9wIEljb25zIGV4dGVuc2lvbiwgd2l0aCBzZXZlcmFsIGVuaGFuY2VtZW50cy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJndGs0LWRpbmdAc21lZGl1cy5naXRsYWIuY29tIiwKICAibmFtZSI6ICJHdGs0IERlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ndGs0LWRpbmciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9zbWVkaXVzL2Rlc2t0b3AtaWNvbnMtbmciLAogICJ1dWlkIjogImd0azQtZGluZ0BzbWVkaXVzLmdpdGxhYi5jb20iLAogICJ2ZXJzaW9uIjogNjAKfQ=="},
     "44": {"version": "67", "sha256": "1bz5bs2llbklzn0wvqn300gd1g39qgdsgl5hwi1ndwd2wdl1mdbq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgR3RrNCBpY29ucyB0byB0aGUgR25vbWUgZGVza3RvcC4gR3RrNCBGb3JrIG9mIHRoZSBvcmlnaW5hbCBEZXNrdG9wIEljb25zIGV4dGVuc2lvbiwgd2l0aCBzZXZlcmFsIGVuaGFuY2VtZW50cy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJndGs0LWRpbmdAc21lZGl1cy5naXRsYWIuY29tIiwKICAibmFtZSI6ICJHdGs0IERlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1bmxvY2stZGlhbG9nIiwKICAgICJ1c2VyIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ndGs0LWRpbmciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc21lZGl1cy9kZXNrdG9wLWljb25zLW5nIiwKICAidXVpZCI6ICJndGs0LWRpbmdAc21lZGl1cy5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDY3Cn0="},
-    "45": {"version": "78", "sha256": "0xf2wwx7srrmyjss4gb5mkr6rjaax8zyilbhs92jigvi2qz8ryz8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgR3RrNCBpY29ucyB0byB0aGUgR25vbWUgZGVza3RvcC4gR3RrNCBGb3JrIG9mIHRoZSBvcmlnaW5hbCBEZXNrdG9wIEljb25zIGV4dGVuc2lvbiwgd2l0aCBzZXZlcmFsIGVuaGFuY2VtZW50cy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJndGs0LWRpbmciLAogICJuYW1lIjogIkd0azQgRGVza3RvcCBJY29ucyBORyAoRElORykiLAogICJzZXNzaW9uLW1vZGVzIjogWwogICAgInVubG9jay1kaWFsb2ciLAogICAgInVzZXIiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmd0azQtZGluZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc21lZGl1cy9kZXNrdG9wLWljb25zLW5nIiwKICAidXVpZCI6ICJndGs0LWRpbmdAc21lZGl1cy5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDc4LAogICJ2ZXJzaW9uLW5hbWUiOiAiNzUiCn0="},
-    "46": {"version": "78", "sha256": "0xf2wwx7srrmyjss4gb5mkr6rjaax8zyilbhs92jigvi2qz8ryz8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgR3RrNCBpY29ucyB0byB0aGUgR25vbWUgZGVza3RvcC4gR3RrNCBGb3JrIG9mIHRoZSBvcmlnaW5hbCBEZXNrdG9wIEljb25zIGV4dGVuc2lvbiwgd2l0aCBzZXZlcmFsIGVuaGFuY2VtZW50cy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJndGs0LWRpbmciLAogICJuYW1lIjogIkd0azQgRGVza3RvcCBJY29ucyBORyAoRElORykiLAogICJzZXNzaW9uLW1vZGVzIjogWwogICAgInVubG9jay1kaWFsb2ciLAogICAgInVzZXIiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmd0azQtZGluZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc21lZGl1cy9kZXNrdG9wLWljb25zLW5nIiwKICAidXVpZCI6ICJndGs0LWRpbmdAc21lZGl1cy5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDc4LAogICJ2ZXJzaW9uLW5hbWUiOiAiNzUiCn0="}
+    "45": {"version": "79", "sha256": "08m66dmy4d018qv9n4b4akx15kwcmbi1r8v88lygwhmxcw7bilrg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgR3RrNCBpY29ucyB0byB0aGUgR25vbWUgZGVza3RvcC4gR3RrNCBGb3JrIG9mIHRoZSBvcmlnaW5hbCBEZXNrdG9wIEljb25zIGV4dGVuc2lvbiwgd2l0aCBzZXZlcmFsIGVuaGFuY2VtZW50cy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJndGs0LWRpbmciLAogICJuYW1lIjogIkd0azQgRGVza3RvcCBJY29ucyBORyAoRElORykiLAogICJzZXNzaW9uLW1vZGVzIjogWwogICAgInVubG9jay1kaWFsb2ciLAogICAgInVzZXIiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmd0azQtZGluZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc21lZGl1cy9kZXNrdG9wLWljb25zLW5nIiwKICAidXVpZCI6ICJndGs0LWRpbmdAc21lZGl1cy5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDc5LAogICJ2ZXJzaW9uLW5hbWUiOiAiNzYiCn0="},
+    "46": {"version": "79", "sha256": "08m66dmy4d018qv9n4b4akx15kwcmbi1r8v88lygwhmxcw7bilrg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgR3RrNCBpY29ucyB0byB0aGUgR25vbWUgZGVza3RvcC4gR3RrNCBGb3JrIG9mIHRoZSBvcmlnaW5hbCBEZXNrdG9wIEljb25zIGV4dGVuc2lvbiwgd2l0aCBzZXZlcmFsIGVuaGFuY2VtZW50cy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJndGs0LWRpbmciLAogICJuYW1lIjogIkd0azQgRGVza3RvcCBJY29ucyBORyAoRElORykiLAogICJzZXNzaW9uLW1vZGVzIjogWwogICAgInVubG9jay1kaWFsb2ciLAogICAgInVzZXIiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmd0azQtZGluZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc21lZGl1cy9kZXNrdG9wLWljb25zLW5nIiwKICAidXVpZCI6ICJndGs0LWRpbmdAc21lZGl1cy5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDc5LAogICJ2ZXJzaW9uLW5hbWUiOiAiNzYiCn0="}
   }}
 , {"uuid": "fig-gnome-integration@fig.io", "name": "Fig GNOME Integration", "pname": "fig-gnome-integration", "description": "Tightly integrates Fig with GNOME shell", "link": "https://extensions.gnome.org/extension/5266/fig-gnome-integration/", "shell_version_map": {
     "41": {"version": "6", "sha256": "1j5wy8zb5jnm4gh0y3brr6663ykjh56ximygkchns8ahyjmba85p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpZ2h0bHkgaW50ZWdyYXRlcyBGaWcgd2l0aCBHTk9NRSBzaGVsbCIsCiAgImdldHRleHQtZG9tYWluIjogImZpZy1nbm9tZS1pbnRlZ3JhdGlvbiIsCiAgIm5hbWUiOiAiRmlnIEdOT01FIEludGVncmF0aW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZpZy1nbm9tZS1pbnRlZ3JhdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dpdGhmaWcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJmaWctZ25vbWUtaW50ZWdyYXRpb25AZmlnLmlvIiwKICAidmVyc2lvbiI6IDYKfQ=="},
@@ -5509,8 +5549,8 @@
     "42": {"version": "10", "sha256": "0sga40ixfj8wcxm66wm2rvcyzgbdfzl7ji8hjwqa0hx1s125nv60", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFkZCBhIHN3aXRjaCB0byB0aGUgV2lGaSBtZW51LCBpbiB0aGUgR05PTUUgc3lzdGVtIG1lbnUsIHRoYXQgc2hvdyBhIFFSIENvZGUgb2YgdGhlIGFjdGl2ZSBjb25uZWN0aW9uLlxuXG5UaGlzIGNhbiBiZSB1c2VmdWwgZm9yIHF1aWNrbHkgY29ubmVjdGluZyBkZXZpY2VzIGNhcGFibGUgb2YgcmVhZGluZyBRUiBDb2RlIGFuZCBhcHBseWluZyB0aGUgc2V0dGluZ3MgdG8gdGhlIHN5c3RlbSwgd2l0aG91dCBoYXZpbmcgdG8gdHlwZSBpbiB0aGUgbmFtZSBhbmQgdGhlIHBhc3N3b3JkIG9mIHRoZSBXaUZpLiAoZS5nLiBBbmRyb2lkIFNtYXJ0cGhvbmUpLiBcblxuRnJvbSB2ZXJzaW9uIDQgYWRkZWQgYSBmdW5jdGlvbmFsaXR5IHRvIGNvcHkgdGhlIFFSIENvZGUgdG8gY2xpcGJvYXJkIHdpdGggcmlnaHQgY2xpY2sgb24gaXQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXdpZmlxcmNvZGUiLAogICJuYW1lIjogIldpZmkgUVIgQ29kZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi13aWZpcXJjb2RlIiwKICAidXVpZCI6ICJ3aWZpcXJjb2RlQGdsZXJyby5wbS5tZSIsCiAgInZlcnNpb24iOiAxMAp9"},
     "43": {"version": "10", "sha256": "0sga40ixfj8wcxm66wm2rvcyzgbdfzl7ji8hjwqa0hx1s125nv60", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFkZCBhIHN3aXRjaCB0byB0aGUgV2lGaSBtZW51LCBpbiB0aGUgR05PTUUgc3lzdGVtIG1lbnUsIHRoYXQgc2hvdyBhIFFSIENvZGUgb2YgdGhlIGFjdGl2ZSBjb25uZWN0aW9uLlxuXG5UaGlzIGNhbiBiZSB1c2VmdWwgZm9yIHF1aWNrbHkgY29ubmVjdGluZyBkZXZpY2VzIGNhcGFibGUgb2YgcmVhZGluZyBRUiBDb2RlIGFuZCBhcHBseWluZyB0aGUgc2V0dGluZ3MgdG8gdGhlIHN5c3RlbSwgd2l0aG91dCBoYXZpbmcgdG8gdHlwZSBpbiB0aGUgbmFtZSBhbmQgdGhlIHBhc3N3b3JkIG9mIHRoZSBXaUZpLiAoZS5nLiBBbmRyb2lkIFNtYXJ0cGhvbmUpLiBcblxuRnJvbSB2ZXJzaW9uIDQgYWRkZWQgYSBmdW5jdGlvbmFsaXR5IHRvIGNvcHkgdGhlIFFSIENvZGUgdG8gY2xpcGJvYXJkIHdpdGggcmlnaHQgY2xpY2sgb24gaXQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXdpZmlxcmNvZGUiLAogICJuYW1lIjogIldpZmkgUVIgQ29kZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi13aWZpcXJjb2RlIiwKICAidXVpZCI6ICJ3aWZpcXJjb2RlQGdsZXJyby5wbS5tZSIsCiAgInZlcnNpb24iOiAxMAp9"},
     "44": {"version": "10", "sha256": "0sga40ixfj8wcxm66wm2rvcyzgbdfzl7ji8hjwqa0hx1s125nv60", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFkZCBhIHN3aXRjaCB0byB0aGUgV2lGaSBtZW51LCBpbiB0aGUgR05PTUUgc3lzdGVtIG1lbnUsIHRoYXQgc2hvdyBhIFFSIENvZGUgb2YgdGhlIGFjdGl2ZSBjb25uZWN0aW9uLlxuXG5UaGlzIGNhbiBiZSB1c2VmdWwgZm9yIHF1aWNrbHkgY29ubmVjdGluZyBkZXZpY2VzIGNhcGFibGUgb2YgcmVhZGluZyBRUiBDb2RlIGFuZCBhcHBseWluZyB0aGUgc2V0dGluZ3MgdG8gdGhlIHN5c3RlbSwgd2l0aG91dCBoYXZpbmcgdG8gdHlwZSBpbiB0aGUgbmFtZSBhbmQgdGhlIHBhc3N3b3JkIG9mIHRoZSBXaUZpLiAoZS5nLiBBbmRyb2lkIFNtYXJ0cGhvbmUpLiBcblxuRnJvbSB2ZXJzaW9uIDQgYWRkZWQgYSBmdW5jdGlvbmFsaXR5IHRvIGNvcHkgdGhlIFFSIENvZGUgdG8gY2xpcGJvYXJkIHdpdGggcmlnaHQgY2xpY2sgb24gaXQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXdpZmlxcmNvZGUiLAogICJuYW1lIjogIldpZmkgUVIgQ29kZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi13aWZpcXJjb2RlIiwKICAidXVpZCI6ICJ3aWZpcXJjb2RlQGdsZXJyby5wbS5tZSIsCiAgInZlcnNpb24iOiAxMAp9"},
-    "45": {"version": "14", "sha256": "167lllr4fy8xl8fdc3sn3b2gl66n4qmmxdd5wj6ra061cp1kz3ky", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFkZCBhIHN3aXRjaCB0byB0aGUgV2lGaSBtZW51LCBpbiB0aGUgR05PTUUgc3lzdGVtIG1lbnUsIHRoYXQgc2hvdyBhIFFSIENvZGUgb2YgdGhlIGFjdGl2ZSBjb25uZWN0aW9uLlxuXG5UaGlzIGNhbiBiZSB1c2VmdWwgZm9yIHF1aWNrbHkgY29ubmVjdGluZyBkZXZpY2VzIGNhcGFibGUgb2YgcmVhZGluZyBRUiBDb2RlIGFuZCBhcHBseWluZyB0aGUgc2V0dGluZ3MgdG8gdGhlIHN5c3RlbSwgd2l0aG91dCBoYXZpbmcgdG8gdHlwZSBpbiB0aGUgbmFtZSBhbmQgdGhlIHBhc3N3b3JkIG9mIHRoZSBXaUZpLiAoZS5nLiBBbmRyb2lkIFNtYXJ0cGhvbmUpLiBcblxuRnJvbSB2ZXJzaW9uIDQgYWRkZWQgYSBmdW5jdGlvbmFsaXR5IHRvIGNvcHkgdGhlIFFSIENvZGUgdG8gY2xpcGJvYXJkIHdpdGggcmlnaHQgY2xpY2sgb24gaXQuIiwKICAiZG9uYXRpb25zIjogewogICAgImtvZmkiOiAiZ2xlcnJvIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi13aWZpcXJjb2RlIiwKICAibmFtZSI6ICJXaWZpIFFSIENvZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL2dsZXJyby9nbm9tZS1zaGVsbC1leHRlbnNpb24td2lmaXFyY29kZSIsCiAgInV1aWQiOiAid2lmaXFyY29kZUBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMTQKfQ=="},
-    "46": {"version": "14", "sha256": "167lllr4fy8xl8fdc3sn3b2gl66n4qmmxdd5wj6ra061cp1kz3ky", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFkZCBhIHN3aXRjaCB0byB0aGUgV2lGaSBtZW51LCBpbiB0aGUgR05PTUUgc3lzdGVtIG1lbnUsIHRoYXQgc2hvdyBhIFFSIENvZGUgb2YgdGhlIGFjdGl2ZSBjb25uZWN0aW9uLlxuXG5UaGlzIGNhbiBiZSB1c2VmdWwgZm9yIHF1aWNrbHkgY29ubmVjdGluZyBkZXZpY2VzIGNhcGFibGUgb2YgcmVhZGluZyBRUiBDb2RlIGFuZCBhcHBseWluZyB0aGUgc2V0dGluZ3MgdG8gdGhlIHN5c3RlbSwgd2l0aG91dCBoYXZpbmcgdG8gdHlwZSBpbiB0aGUgbmFtZSBhbmQgdGhlIHBhc3N3b3JkIG9mIHRoZSBXaUZpLiAoZS5nLiBBbmRyb2lkIFNtYXJ0cGhvbmUpLiBcblxuRnJvbSB2ZXJzaW9uIDQgYWRkZWQgYSBmdW5jdGlvbmFsaXR5IHRvIGNvcHkgdGhlIFFSIENvZGUgdG8gY2xpcGJvYXJkIHdpdGggcmlnaHQgY2xpY2sgb24gaXQuIiwKICAiZG9uYXRpb25zIjogewogICAgImtvZmkiOiAiZ2xlcnJvIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi13aWZpcXJjb2RlIiwKICAibmFtZSI6ICJXaWZpIFFSIENvZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL2dsZXJyby9nbm9tZS1zaGVsbC1leHRlbnNpb24td2lmaXFyY29kZSIsCiAgInV1aWQiOiAid2lmaXFyY29kZUBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}
+    "45": {"version": "15", "sha256": "17ilw08bwr8wdhybcvbjvyy41iaqcdqmwl18kld37dzhp1ninp8q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFkZCBhIHN3aXRjaCB0byB0aGUgV2lGaSBtZW51LCBpbiB0aGUgR05PTUUgc3lzdGVtIG1lbnUsIHRoYXQgc2hvdyBhIFFSIENvZGUgb2YgdGhlIGFjdGl2ZSBjb25uZWN0aW9uLlxuXG5UaGlzIGNhbiBiZSB1c2VmdWwgZm9yIHF1aWNrbHkgY29ubmVjdGluZyBkZXZpY2VzIGNhcGFibGUgb2YgcmVhZGluZyBRUiBDb2RlIGFuZCBhcHBseWluZyB0aGUgc2V0dGluZ3MgdG8gdGhlIHN5c3RlbSwgd2l0aG91dCBoYXZpbmcgdG8gdHlwZSBpbiB0aGUgbmFtZSBhbmQgdGhlIHBhc3N3b3JkIG9mIHRoZSBXaUZpLiAoZS5nLiBBbmRyb2lkIFNtYXJ0cGhvbmUpLiBcblxuRnJvbSB2ZXJzaW9uIDQgYWRkZWQgYSBmdW5jdGlvbmFsaXR5IHRvIGNvcHkgdGhlIFFSIENvZGUgdG8gY2xpcGJvYXJkIHdpdGggcmlnaHQgY2xpY2sgb24gaXQuIiwKICAiZG9uYXRpb25zIjogewogICAgImtvZmkiOiAiZ2xlcnJvIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi13aWZpcXJjb2RlIiwKICAibmFtZSI6ICJXaWZpIFFSIENvZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL2dsZXJyby9nbm9tZS1zaGVsbC1leHRlbnNpb24td2lmaXFyY29kZSIsCiAgInV1aWQiOiAid2lmaXFyY29kZUBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMTUsCiAgInZlcnNpb24tbmFtZSI6ICIyLjIuMCIKfQ=="},
+    "46": {"version": "15", "sha256": "17ilw08bwr8wdhybcvbjvyy41iaqcdqmwl18kld37dzhp1ninp8q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFkZCBhIHN3aXRjaCB0byB0aGUgV2lGaSBtZW51LCBpbiB0aGUgR05PTUUgc3lzdGVtIG1lbnUsIHRoYXQgc2hvdyBhIFFSIENvZGUgb2YgdGhlIGFjdGl2ZSBjb25uZWN0aW9uLlxuXG5UaGlzIGNhbiBiZSB1c2VmdWwgZm9yIHF1aWNrbHkgY29ubmVjdGluZyBkZXZpY2VzIGNhcGFibGUgb2YgcmVhZGluZyBRUiBDb2RlIGFuZCBhcHBseWluZyB0aGUgc2V0dGluZ3MgdG8gdGhlIHN5c3RlbSwgd2l0aG91dCBoYXZpbmcgdG8gdHlwZSBpbiB0aGUgbmFtZSBhbmQgdGhlIHBhc3N3b3JkIG9mIHRoZSBXaUZpLiAoZS5nLiBBbmRyb2lkIFNtYXJ0cGhvbmUpLiBcblxuRnJvbSB2ZXJzaW9uIDQgYWRkZWQgYSBmdW5jdGlvbmFsaXR5IHRvIGNvcHkgdGhlIFFSIENvZGUgdG8gY2xpcGJvYXJkIHdpdGggcmlnaHQgY2xpY2sgb24gaXQuIiwKICAiZG9uYXRpb25zIjogewogICAgImtvZmkiOiAiZ2xlcnJvIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi13aWZpcXJjb2RlIiwKICAibmFtZSI6ICJXaWZpIFFSIENvZGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL2dsZXJyby9nbm9tZS1zaGVsbC1leHRlbnNpb24td2lmaXFyY29kZSIsCiAgInV1aWQiOiAid2lmaXFyY29kZUBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMTUsCiAgInZlcnNpb24tbmFtZSI6ICIyLjIuMCIKfQ=="}
   }}
 , {"uuid": "eos-desktop@endlessm.com", "name": "Endless Desktop", "pname": "endless-desktop", "description": "Endless OS signature desktop", "link": "https://extensions.gnome.org/extension/5419/endless-desktop/", "shell_version_map": {
     "41": {"version": "2", "sha256": "07wg7nab34bvhqnlfdni622c5r3pvlq04dly8spk53nxdwvisckr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuZGxlc3MgT1Mgc2lnbmF0dXJlIGRlc2t0b3AiLAogICJuYW1lIjogIkVuZGxlc3MgRGVza3RvcCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJjb20uZW5kbGVzc20uZGVza3RvcC1leHRlbnNpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VuZGxlc3NtL2Vvcy1kZXNrdG9wLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZW9zLWRlc2t0b3BAZW5kbGVzc20uY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="},
@@ -5536,7 +5576,8 @@
 , {"uuid": "quick-settings-tweaks@qwreey", "name": "[QSTweak] Quick Setting Tweaker", "pname": "quick-settings-tweaker", "description": "Let's tweak gnome 43's quick settings! You can add Media Controls, Notifications, Volume Mixer on quick settings and remove useless buttons!", "link": "https://extensions.gnome.org/extension/5446/quick-settings-tweaker/", "shell_version_map": {
     "43": {"version": "19", "sha256": "0rgjkang4c392pvyxbjypy0q7q7fkz4y8a0565brwcm8afjcaf8p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldCdzIHR3ZWFrIGdub21lIDQzJ3MgcXVpY2sgc2V0dGluZ3MhIFlvdSBjYW4gYWRkIE1lZGlhIENvbnRyb2xzLCBOb3RpZmljYXRpb25zLCBWb2x1bWUgTWl4ZXIgb24gcXVpY2sgc2V0dGluZ3MgYW5kIHJlbW92ZSB1c2VsZXNzIGJ1dHRvbnMhIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicXVpY2stc2V0dGluZ3MtdHdlYWtzIiwKICAibmFtZSI6ICJbUVNUd2Vha10gUXVpY2sgU2V0dGluZyBUd2Vha2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnF1aWNrLXNldHRpbmdzLXR3ZWFrcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcXdyZWV5NzUvcXVpY2stc2V0dGluZ3MtdHdlYWtzIiwKICAidXVpZCI6ICJxdWljay1zZXR0aW5ncy10d2Vha3NAcXdyZWV5IiwKICAidmVyc2lvbiI6IDE5Cn0="},
     "44": {"version": "19", "sha256": "0rgjkang4c392pvyxbjypy0q7q7fkz4y8a0565brwcm8afjcaf8p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldCdzIHR3ZWFrIGdub21lIDQzJ3MgcXVpY2sgc2V0dGluZ3MhIFlvdSBjYW4gYWRkIE1lZGlhIENvbnRyb2xzLCBOb3RpZmljYXRpb25zLCBWb2x1bWUgTWl4ZXIgb24gcXVpY2sgc2V0dGluZ3MgYW5kIHJlbW92ZSB1c2VsZXNzIGJ1dHRvbnMhIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicXVpY2stc2V0dGluZ3MtdHdlYWtzIiwKICAibmFtZSI6ICJbUVNUd2Vha10gUXVpY2sgU2V0dGluZyBUd2Vha2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnF1aWNrLXNldHRpbmdzLXR3ZWFrcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcXdyZWV5NzUvcXVpY2stc2V0dGluZ3MtdHdlYWtzIiwKICAidXVpZCI6ICJxdWljay1zZXR0aW5ncy10d2Vha3NAcXdyZWV5IiwKICAidmVyc2lvbiI6IDE5Cn0="},
-    "45": {"version": "25", "sha256": "082ahc3zcnv6vbc5y9c06mvy0xc0jq3r9f1js659a4sz2zw6y8bn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldCdzIHR3ZWFrIGdub21lIDQzJ3MgcXVpY2sgc2V0dGluZ3MhIFlvdSBjYW4gYWRkIE1lZGlhIENvbnRyb2xzLCBOb3RpZmljYXRpb25zLCBWb2x1bWUgTWl4ZXIgb24gcXVpY2sgc2V0dGluZ3MgYW5kIHJlbW92ZSB1c2VsZXNzIGJ1dHRvbnMhIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicXVpY2stc2V0dGluZ3MtdHdlYWtzIiwKICAibmFtZSI6ICJbUVNUd2Vha10gUXVpY2sgU2V0dGluZyBUd2Vha2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnF1aWNrLXNldHRpbmdzLXR3ZWFrcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9xd3JlZXk3NS9xdWljay1zZXR0aW5ncy10d2Vha3MiLAogICJ1dWlkIjogInF1aWNrLXNldHRpbmdzLXR3ZWFrc0Bxd3JlZXkiLAogICJ2ZXJzaW9uIjogMjUKfQ=="}
+    "45": {"version": "25", "sha256": "082ahc3zcnv6vbc5y9c06mvy0xc0jq3r9f1js659a4sz2zw6y8bn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldCdzIHR3ZWFrIGdub21lIDQzJ3MgcXVpY2sgc2V0dGluZ3MhIFlvdSBjYW4gYWRkIE1lZGlhIENvbnRyb2xzLCBOb3RpZmljYXRpb25zLCBWb2x1bWUgTWl4ZXIgb24gcXVpY2sgc2V0dGluZ3MgYW5kIHJlbW92ZSB1c2VsZXNzIGJ1dHRvbnMhIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicXVpY2stc2V0dGluZ3MtdHdlYWtzIiwKICAibmFtZSI6ICJbUVNUd2Vha10gUXVpY2sgU2V0dGluZyBUd2Vha2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnF1aWNrLXNldHRpbmdzLXR3ZWFrcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9xd3JlZXk3NS9xdWljay1zZXR0aW5ncy10d2Vha3MiLAogICJ1dWlkIjogInF1aWNrLXNldHRpbmdzLXR3ZWFrc0Bxd3JlZXkiLAogICJ2ZXJzaW9uIjogMjUKfQ=="},
+    "46": {"version": "27", "sha256": "0fhzxqnzjzv3yv51p8v3kipkpk6ih96nc69ya5vwz4p79nkrksgr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldCdzIHR3ZWFrIGdub21lIDQzJ3MgcXVpY2sgc2V0dGluZ3MhIFlvdSBjYW4gYWRkIE1lZGlhIENvbnRyb2xzLCBOb3RpZmljYXRpb25zLCBWb2x1bWUgTWl4ZXIgb24gcXVpY2sgc2V0dGluZ3MgYW5kIHJlbW92ZSB1c2VsZXNzIGJ1dHRvbnMhIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicXVpY2stc2V0dGluZ3MtdHdlYWtzIiwKICAibmFtZSI6ICJbUVNUd2Vha10gUXVpY2sgU2V0dGluZyBUd2Vha2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnF1aWNrLXNldHRpbmdzLXR3ZWFrcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9xd3JlZXk3NS9xdWljay1zZXR0aW5ncy10d2Vha3MiLAogICJ1dWlkIjogInF1aWNrLXNldHRpbmdzLXR3ZWFrc0Bxd3JlZXkiLAogICJ2ZXJzaW9uIjogMjcKfQ=="}
   }}
 , {"uuid": "osd-volume-number@deminder", "name": "OSD Volume Number", "pname": "osd-volume-number", "description": "Replace the on-screen-display volume level icon with a number.", "link": "https://extensions.gnome.org/extension/5461/osd-volume-number/", "shell_version_map": {
     "42": {"version": "6", "sha256": "0c3l0j88bmc5lhif0jwxy0mch1wafmbk6hysyxdnf2qlkiha50ds", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgdGhlIG9uLXNjcmVlbi1kaXNwbGF5IHZvbHVtZSBsZXZlbCBpY29uIHdpdGggYSBudW1iZXIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAib3NkLXZvbHVtZS1udW1iZXIiLAogICJuYW1lIjogIk9TRCBWb2x1bWUgTnVtYmVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9zZC12b2x1bWUtbnVtYmVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRGVtaW5kZXIvb3NkLXZvbHVtZS1udW1iZXIiLAogICJ1dWlkIjogIm9zZC12b2x1bWUtbnVtYmVyQGRlbWluZGVyIiwKICAidmVyc2lvbiI6IDYKfQ=="},
@@ -5571,7 +5612,7 @@
     "45": {"version": "5", "sha256": "14v0q6msfpkl3aqspwzjrczjc9ja6d969xrlmql00c29cczmsxzx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSB3b3Jrc3BhY2VzIHNwYW5uaW5nIGRpc3BsYXlzLiIsCiAgIm5hbWUiOiAiVG9nZ2xlIHdvcmtzcGFjZSBzcGFuIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRvZ2dsZS13b3Jrc3BhY2Utc3BhbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXJuZ28vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRvZ2dsZS13b3Jrc3BhY2Utc3BhbiIsCiAgInV1aWQiOiAidG9nZ2xlLXdvcmtzcGFjZS1zcGFuQGFybmdvLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"},
     "46": {"version": "5", "sha256": "14v0q6msfpkl3aqspwzjrczjc9ja6d969xrlmql00c29cczmsxzx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSB3b3Jrc3BhY2VzIHNwYW5uaW5nIGRpc3BsYXlzLiIsCiAgIm5hbWUiOiAiVG9nZ2xlIHdvcmtzcGFjZSBzcGFuIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRvZ2dsZS13b3Jrc3BhY2Utc3BhbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXJuZ28vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRvZ2dsZS13b3Jrc3BhY2Utc3BhbiIsCiAgInV1aWQiOiAidG9nZ2xlLXdvcmtzcGFjZS1zcGFuQGFybmdvLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}
   }}
-, {"uuid": "search-light@icedman.github.com", "name": "Search Light", "pname": "search-light", "description": "Take the apps search out of overview", "link": "https://extensions.gnome.org/extension/5489/search-light/", "shell_version_map": {
+, {"uuid": "search-light@icedman.github.com", "name": "Search Light", "pname": "search-light", "description": "Take the apps search out of overview.", "link": "https://extensions.gnome.org/extension/5489/search-light/", "shell_version_map": {
     "42": {"version": "17", "sha256": "054k5q694ssm937qfxximg2qh5zx4m2qzcffdxjm4xd39qn4bi85", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRha2UgdGhlIGFwcHMgc2VhcmNoIG91dCBvZiBvdmVydmlldyIsCiAgImdldHRleHQtZG9tYWluIjogInNlYXJjaC1saWdodCIsCiAgIm5hbWUiOiAiU2VhcmNoIExpZ2h0IiwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlYXJjaC1saWdodCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ljZWRtYW4vc2VhcmNoLWxpZ2h0IiwKICAidXVpZCI6ICJzZWFyY2gtbGlnaHRAaWNlZG1hbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE3Cn0="},
     "43": {"version": "17", "sha256": "054k5q694ssm937qfxximg2qh5zx4m2qzcffdxjm4xd39qn4bi85", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRha2UgdGhlIGFwcHMgc2VhcmNoIG91dCBvZiBvdmVydmlldyIsCiAgImdldHRleHQtZG9tYWluIjogInNlYXJjaC1saWdodCIsCiAgIm5hbWUiOiAiU2VhcmNoIExpZ2h0IiwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlYXJjaC1saWdodCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ljZWRtYW4vc2VhcmNoLWxpZ2h0IiwKICAidXVpZCI6ICJzZWFyY2gtbGlnaHRAaWNlZG1hbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE3Cn0="},
     "44": {"version": "17", "sha256": "054k5q694ssm937qfxximg2qh5zx4m2qzcffdxjm4xd39qn4bi85", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRha2UgdGhlIGFwcHMgc2VhcmNoIG91dCBvZiBvdmVydmlldyIsCiAgImdldHRleHQtZG9tYWluIjogInNlYXJjaC1saWdodCIsCiAgIm5hbWUiOiAiU2VhcmNoIExpZ2h0IiwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlYXJjaC1saWdodCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ljZWRtYW4vc2VhcmNoLWxpZ2h0IiwKICAidXVpZCI6ICJzZWFyY2gtbGlnaHRAaWNlZG1hbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE3Cn0="},
@@ -5604,12 +5645,6 @@
     "42": {"version": "4", "sha256": "0jih9lhy9pywilqnkz4cliyg3i2jm4w36kmna67hrx5wqvga6s69", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZsb2F0cyB0aGUgcGFuZWwsIGlmIHRoZXJlIGlzIGEgd2luZG93IG5lYXJieSBvciBtYXhpbWlzZWQsIGl0IGRlZmxvYXRzLiIsCiAgIm5hbWUiOiAiRmxvYXRpbmcgUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQXlsdXIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZsb2F0aW5nLXBhbmVsIiwKICAidXVpZCI6ICJmbG9hdGluZy1wYW5lbEBheWx1ciIsCiAgInZlcnNpb24iOiA0Cn0="},
     "43": {"version": "4", "sha256": "0jih9lhy9pywilqnkz4cliyg3i2jm4w36kmna67hrx5wqvga6s69", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZsb2F0cyB0aGUgcGFuZWwsIGlmIHRoZXJlIGlzIGEgd2luZG93IG5lYXJieSBvciBtYXhpbWlzZWQsIGl0IGRlZmxvYXRzLiIsCiAgIm5hbWUiOiAiRmxvYXRpbmcgUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQXlsdXIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZsb2F0aW5nLXBhbmVsIiwKICAidXVpZCI6ICJmbG9hdGluZy1wYW5lbEBheWx1ciIsCiAgInZlcnNpb24iOiA0Cn0="}
   }}
-, {"uuid": "tun0-ip-address@adamantisspinae.github.com", "name": "tun0 IP Address", "pname": "tun0-ip-address", "description": "Show tun0 IP address on GNOME panel. Do not show loopback addresses (127.0.0.0/8) or other network interface IP addresses. Please install moreutils package as a depedency", "link": "https://extensions.gnome.org/extension/5518/tun0-ip-address/", "shell_version_map": {
-    "40": {"version": "7", "sha256": "08zfm6g38g54km5ks83i78b019v6cihqz0qp636iislhpz6gzylp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdHVuMCBJUCBhZGRyZXNzIG9uIEdOT01FIHBhbmVsLiBEbyBub3Qgc2hvdyBsb29wYmFjayBhZGRyZXNzZXMgKDEyNy4wLjAuMC84KSBvciBvdGhlciBuZXR3b3JrIGludGVyZmFjZSBJUCBhZGRyZXNzZXMuIFBsZWFzZSBpbnN0YWxsIG1vcmV1dGlscyBwYWNrYWdlIGFzIGEgZGVwZWRlbmN5IiwKICAibmFtZSI6ICJ0dW4wIElQIEFkZHJlc3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWRhbWFudGlzU3BpbmFlL2dub21lLWV4dGVuc2lvbi10dW4wLWlwLWFkZHJlc3MiLAogICJ1dWlkIjogInR1bjAtaXAtYWRkcmVzc0BhZGFtYW50aXNzcGluYWUuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="},
-    "41": {"version": "7", "sha256": "08zfm6g38g54km5ks83i78b019v6cihqz0qp636iislhpz6gzylp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdHVuMCBJUCBhZGRyZXNzIG9uIEdOT01FIHBhbmVsLiBEbyBub3Qgc2hvdyBsb29wYmFjayBhZGRyZXNzZXMgKDEyNy4wLjAuMC84KSBvciBvdGhlciBuZXR3b3JrIGludGVyZmFjZSBJUCBhZGRyZXNzZXMuIFBsZWFzZSBpbnN0YWxsIG1vcmV1dGlscyBwYWNrYWdlIGFzIGEgZGVwZWRlbmN5IiwKICAibmFtZSI6ICJ0dW4wIElQIEFkZHJlc3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWRhbWFudGlzU3BpbmFlL2dub21lLWV4dGVuc2lvbi10dW4wLWlwLWFkZHJlc3MiLAogICJ1dWlkIjogInR1bjAtaXAtYWRkcmVzc0BhZGFtYW50aXNzcGluYWUuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="},
-    "42": {"version": "7", "sha256": "08zfm6g38g54km5ks83i78b019v6cihqz0qp636iislhpz6gzylp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdHVuMCBJUCBhZGRyZXNzIG9uIEdOT01FIHBhbmVsLiBEbyBub3Qgc2hvdyBsb29wYmFjayBhZGRyZXNzZXMgKDEyNy4wLjAuMC84KSBvciBvdGhlciBuZXR3b3JrIGludGVyZmFjZSBJUCBhZGRyZXNzZXMuIFBsZWFzZSBpbnN0YWxsIG1vcmV1dGlscyBwYWNrYWdlIGFzIGEgZGVwZWRlbmN5IiwKICAibmFtZSI6ICJ0dW4wIElQIEFkZHJlc3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWRhbWFudGlzU3BpbmFlL2dub21lLWV4dGVuc2lvbi10dW4wLWlwLWFkZHJlc3MiLAogICJ1dWlkIjogInR1bjAtaXAtYWRkcmVzc0BhZGFtYW50aXNzcGluYWUuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="},
-    "43": {"version": "7", "sha256": "08zfm6g38g54km5ks83i78b019v6cihqz0qp636iislhpz6gzylp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdHVuMCBJUCBhZGRyZXNzIG9uIEdOT01FIHBhbmVsLiBEbyBub3Qgc2hvdyBsb29wYmFjayBhZGRyZXNzZXMgKDEyNy4wLjAuMC84KSBvciBvdGhlciBuZXR3b3JrIGludGVyZmFjZSBJUCBhZGRyZXNzZXMuIFBsZWFzZSBpbnN0YWxsIG1vcmV1dGlscyBwYWNrYWdlIGFzIGEgZGVwZWRlbmN5IiwKICAibmFtZSI6ICJ0dW4wIElQIEFkZHJlc3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWRhbWFudGlzU3BpbmFlL2dub21lLWV4dGVuc2lvbi10dW4wLWlwLWFkZHJlc3MiLAogICJ1dWlkIjogInR1bjAtaXAtYWRkcmVzc0BhZGFtYW50aXNzcGluYWUuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}
-  }}
 , {"uuid": "nano-lights@chlumskyvaclav.gmail.com", "name": "Nano Lights", "pname": "nano-lights", "description": "This extension controls Nanoleaf shapes and possibly others Nanoleaf devices on your local (wifi) network. If you are experiencing an error on the upgrade, please log out and log in again.", "link": "https://extensions.gnome.org/extension/5519/nano-lights/", "shell_version_map": {
     "43": {"version": "4", "sha256": "0w0092hhra27d59842xgc6r01v4sfbl5p1ipvf3gbq6pam9955b0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNvbnRyb2xzIE5hbm9sZWFmIHNoYXBlcyBhbmQgcG9zc2libHkgb3RoZXJzIE5hbm9sZWFmIGRldmljZXMgb24geW91ciBsb2NhbCAod2lmaSkgbmV0d29yay4gSWYgeW91IGFyZSBleHBlcmllbmNpbmcgYW4gZXJyb3Igb24gdGhlIHVwZ3JhZGUsIHBsZWFzZSBsb2cgb3V0IGFuZCBsb2cgaW4gYWdhaW4uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibmFuby1saWdodHMiLAogICJuYW1lIjogIk5hbm8gTGlnaHRzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmNobHVtL25hbm8tbGlnaHRzIiwKICAidXVpZCI6ICJuYW5vLWxpZ2h0c0BjaGx1bXNreXZhY2xhdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNAp9"},
     "44": {"version": "4", "sha256": "0w0092hhra27d59842xgc6r01v4sfbl5p1ipvf3gbq6pam9955b0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNvbnRyb2xzIE5hbm9sZWFmIHNoYXBlcyBhbmQgcG9zc2libHkgb3RoZXJzIE5hbm9sZWFmIGRldmljZXMgb24geW91ciBsb2NhbCAod2lmaSkgbmV0d29yay4gSWYgeW91IGFyZSBleHBlcmllbmNpbmcgYW4gZXJyb3Igb24gdGhlIHVwZ3JhZGUsIHBsZWFzZSBsb2cgb3V0IGFuZCBsb2cgaW4gYWdhaW4uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibmFuby1saWdodHMiLAogICJuYW1lIjogIk5hbm8gTGlnaHRzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmNobHVtL25hbm8tbGlnaHRzIiwKICAidXVpZCI6ICJuYW5vLWxpZ2h0c0BjaGx1bXNreXZhY2xhdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNAp9"},
@@ -5617,15 +5652,21 @@
     "46": {"version": "7", "sha256": "1ayij5spshhnj711dhppv4ql2gzpck5f9dsq9y8qybz7h15r0nj9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNvbnRyb2xzIE5hbm9sZWFmIHNoYXBlcyBhbmQgcG9zc2libHkgb3RoZXJzIE5hbm9sZWFmIGRldmljZXMgb24geW91ciBsb2NhbCAod2lmaSkgbmV0d29yay4gSWYgeW91IGFyZSBleHBlcmllbmNpbmcgYW4gZXJyb3Igb24gdGhlIHVwZ3JhZGUsIHBsZWFzZSBsb2cgb3V0IGFuZCBsb2cgaW4gYWdhaW4uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibmFuby1saWdodHMiLAogICJuYW1lIjogIk5hbm8gTGlnaHRzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uYW5vLWxpZ2h0cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmNobHVtL25hbm8tbGlnaHRzIiwKICAidXVpZCI6ICJuYW5vLWxpZ2h0c0BjaGx1bXNreXZhY2xhdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNwp9"}
   }}
 , {"uuid": "just-another-search-bar@xelad0m", "name": "Just Another Search Bar", "pname": "just-another-search-bar", "description": "Simple GNOME Shell extension for performing search queries\nfrom desktop. Some search engines are added as examples, you can add your own,\nincluding local search tools with suitable CLI", "link": "https://extensions.gnome.org/extension/5522/just-another-search-bar/", "shell_version_map": {
+    "42": {"version": "13", "sha256": "1qij3yfrhqsm23lsi9p646r25w6x6vlcfimsqkbrvbvisncqi65n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBleHRlbnNpb24gZm9yIHBlcmZvcm1pbmcgc2VhcmNoIHF1ZXJpZXNcbmZyb20gZGVza3RvcC4gU29tZSBzZWFyY2ggZW5naW5lcyBhcmUgYWRkZWQgYXMgZXhhbXBsZXMsIHlvdSBjYW4gYWRkIHlvdXIgb3duLFxuaW5jbHVkaW5nIGxvY2FsIHNlYXJjaCB0b29scyB3aXRoIHN1aXRhYmxlIENMSSIsCiAgIm5hbWUiOiAiSnVzdCBBbm90aGVyIFNlYXJjaCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLXNoZWxsLmV4dGVuc2lvbnMuanVzdC1hbm90aGVyLXNlYXJjaC1iYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veGVsYWQwbS9qdXN0LWFub3RoZXItc2VhcmNoLWJhciIsCiAgInV1aWQiOiAianVzdC1hbm90aGVyLXNlYXJjaC1iYXJAeGVsYWQwbSIsCiAgInZlcnNpb24iOiAxMwp9"},
     "43": {"version": "9", "sha256": "1p934bgds2d5sg4a7hqrdlm9l9psrg2bjfasv0h1k46nj0dpryzs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBleHRlbnNpb24gZm9yIHBlcmZvcm1pbmcgc2VhcmNoIHF1ZXJpZXNcbmZyb20gZGVza3RvcC4gU29tZSBzZWFyY2ggZW5naW5lcyBhcmUgYWRkZWQgYXMgZXhhbXBsZXMsIHlvdSBjYW4gYWRkIHlvdXIgb3duLFxuaW5jbHVkaW5nIGxvY2FsIHNlYXJjaCB0b29scyB3aXRoIHN1aXRhYmxlIENMSSIsCiAgIm5hbWUiOiAiSnVzdCBBbm90aGVyIFNlYXJjaCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLXNoZWxsLmV4dGVuc2lvbnMuanVzdC1hbm90aGVyLXNlYXJjaC1iYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3hlbGFkMG0vanVzdC1hbm90aGVyLXNlYXJjaC1iYXIiLAogICJ1dWlkIjogImp1c3QtYW5vdGhlci1zZWFyY2gtYmFyQHhlbGFkMG0iLAogICJ2ZXJzaW9uIjogOQp9"},
     "44": {"version": "9", "sha256": "1p934bgds2d5sg4a7hqrdlm9l9psrg2bjfasv0h1k46nj0dpryzs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBleHRlbnNpb24gZm9yIHBlcmZvcm1pbmcgc2VhcmNoIHF1ZXJpZXNcbmZyb20gZGVza3RvcC4gU29tZSBzZWFyY2ggZW5naW5lcyBhcmUgYWRkZWQgYXMgZXhhbXBsZXMsIHlvdSBjYW4gYWRkIHlvdXIgb3duLFxuaW5jbHVkaW5nIGxvY2FsIHNlYXJjaCB0b29scyB3aXRoIHN1aXRhYmxlIENMSSIsCiAgIm5hbWUiOiAiSnVzdCBBbm90aGVyIFNlYXJjaCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLXNoZWxsLmV4dGVuc2lvbnMuanVzdC1hbm90aGVyLXNlYXJjaC1iYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3hlbGFkMG0vanVzdC1hbm90aGVyLXNlYXJjaC1iYXIiLAogICJ1dWlkIjogImp1c3QtYW5vdGhlci1zZWFyY2gtYmFyQHhlbGFkMG0iLAogICJ2ZXJzaW9uIjogOQp9"},
-    "45": {"version": "11", "sha256": "0xxdahjl56jkdx40s5imd6v3hvcshpayy7qk5vr0ha79vqmxg888", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBleHRlbnNpb24gZm9yIHBlcmZvcm1pbmcgc2VhcmNoIHF1ZXJpZXNcbmZyb20gZGVza3RvcC4gU29tZSBzZWFyY2ggZW5naW5lcyBhcmUgYWRkZWQgYXMgZXhhbXBsZXMsIHlvdSBjYW4gYWRkIHlvdXIgb3duLFxuaW5jbHVkaW5nIGxvY2FsIHNlYXJjaCB0b29scyB3aXRoIHN1aXRhYmxlIENMSSIsCiAgImdldHRleHQtZG9tYWluIjogImp1c3QtYW5vdGhlci1zZWFyY2gtYmFyIiwKICAibmFtZSI6ICJKdXN0IEFub3RoZXIgU2VhcmNoIEJhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5qdXN0LWFub3RoZXItc2VhcmNoLWJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veGVsYWQwbS9qdXN0LWFub3RoZXItc2VhcmNoLWJhciIsCiAgInV1aWQiOiAianVzdC1hbm90aGVyLXNlYXJjaC1iYXJAeGVsYWQwbSIsCiAgInZlcnNpb24iOiAxMQp9"},
-    "46": {"version": "11", "sha256": "0xxdahjl56jkdx40s5imd6v3hvcshpayy7qk5vr0ha79vqmxg888", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBleHRlbnNpb24gZm9yIHBlcmZvcm1pbmcgc2VhcmNoIHF1ZXJpZXNcbmZyb20gZGVza3RvcC4gU29tZSBzZWFyY2ggZW5naW5lcyBhcmUgYWRkZWQgYXMgZXhhbXBsZXMsIHlvdSBjYW4gYWRkIHlvdXIgb3duLFxuaW5jbHVkaW5nIGxvY2FsIHNlYXJjaCB0b29scyB3aXRoIHN1aXRhYmxlIENMSSIsCiAgImdldHRleHQtZG9tYWluIjogImp1c3QtYW5vdGhlci1zZWFyY2gtYmFyIiwKICAibmFtZSI6ICJKdXN0IEFub3RoZXIgU2VhcmNoIEJhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5qdXN0LWFub3RoZXItc2VhcmNoLWJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veGVsYWQwbS9qdXN0LWFub3RoZXItc2VhcmNoLWJhciIsCiAgInV1aWQiOiAianVzdC1hbm90aGVyLXNlYXJjaC1iYXJAeGVsYWQwbSIsCiAgInZlcnNpb24iOiAxMQp9"}
+    "45": {"version": "12", "sha256": "02nial4ns2bwlahqvln85a3bsk6hjd54asdxyn6vfi4fgr95cx4y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBleHRlbnNpb24gZm9yIHBlcmZvcm1pbmcgc2VhcmNoIHF1ZXJpZXNcbmZyb20gZGVza3RvcC4gU29tZSBzZWFyY2ggZW5naW5lcyBhcmUgYWRkZWQgYXMgZXhhbXBsZXMsIHlvdSBjYW4gYWRkIHlvdXIgb3duLFxuaW5jbHVkaW5nIGxvY2FsIHNlYXJjaCB0b29scyB3aXRoIHN1aXRhYmxlIENMSSIsCiAgImdldHRleHQtZG9tYWluIjogImp1c3QtYW5vdGhlci1zZWFyY2gtYmFyIiwKICAibmFtZSI6ICJKdXN0IEFub3RoZXIgU2VhcmNoIEJhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5qdXN0LWFub3RoZXItc2VhcmNoLWJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veGVsYWQwbS9qdXN0LWFub3RoZXItc2VhcmNoLWJhciIsCiAgInV1aWQiOiAianVzdC1hbm90aGVyLXNlYXJjaC1iYXJAeGVsYWQwbSIsCiAgInZlcnNpb24iOiAxMgp9"},
+    "46": {"version": "12", "sha256": "02nial4ns2bwlahqvln85a3bsk6hjd54asdxyn6vfi4fgr95cx4y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBleHRlbnNpb24gZm9yIHBlcmZvcm1pbmcgc2VhcmNoIHF1ZXJpZXNcbmZyb20gZGVza3RvcC4gU29tZSBzZWFyY2ggZW5naW5lcyBhcmUgYWRkZWQgYXMgZXhhbXBsZXMsIHlvdSBjYW4gYWRkIHlvdXIgb3duLFxuaW5jbHVkaW5nIGxvY2FsIHNlYXJjaCB0b29scyB3aXRoIHN1aXRhYmxlIENMSSIsCiAgImdldHRleHQtZG9tYWluIjogImp1c3QtYW5vdGhlci1zZWFyY2gtYmFyIiwKICAibmFtZSI6ICJKdXN0IEFub3RoZXIgU2VhcmNoIEJhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5qdXN0LWFub3RoZXItc2VhcmNoLWJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veGVsYWQwbS9qdXN0LWFub3RoZXItc2VhcmNoLWJhciIsCiAgInV1aWQiOiAianVzdC1hbm90aGVyLXNlYXJjaC1iYXJAeGVsYWQwbSIsCiAgInZlcnNpb24iOiAxMgp9"}
+  }}
+, {"uuid": "Noiseclapper@JordanViknar", "name": "Noiseclapper (Soundcore Life for GNOME)", "pname": "noiseclapper", "description": "Noiseclapper is a GNOME Shell extension that allows you to control the Noise Cancelling mode and the Equalizer settings of your Soundcore Life headphones right from the panel. It works as a simple, easy-to-use, desktop-compatible alternative to the official mobile application.\n\nThe following headphones are currently supported by this extension :\n- Soundcore Life P3 (Tested)\n- Soundcore Life Q35\n- Soundcore Life Q30 (Tested)\n- Soundcore Life Q20+\n- Soundcore Life Q20\n- Soundcore Life Q10\n- Soundcore Life Q10\nOthers may be supported by adding them to the extension's internal model list through a pull request.\n\nThis project is not affiliated, associated, authorized, endorsed by, or in any way officially connected with Anker, or any of its subsidiaries or its affiliates.", "link": "https://extensions.gnome.org/extension/5526/noiseclapper/", "shell_version_map": {
+    "45": {"version": "3", "sha256": "04ryxnplygm0v3m3fljx4k9g386zkm3cicj1xlqii9fwbdqpyxnp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGVzIGNvbnRyb2wgb2YgU291bmRjb3JlIExpZmUgUTMwIEhlYWRwaG9uZXMgKGFuZCBvdGhlcnMpIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiTm9pc2VjbGFwcGVyIiwKICAibmFtZSI6ICJOb2lzZWNsYXBwZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubm9pc2VjbGFwcGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Kb3JkYW5WaWtuYXIvTm9pc2VjbGFwcGVyIiwKICAidXVpZCI6ICJOb2lzZWNsYXBwZXJASm9yZGFuVmlrbmFyIiwKICAidmVyc2lvbiI6IDMKfQ=="},
+    "46": {"version": "3", "sha256": "04ryxnplygm0v3m3fljx4k9g386zkm3cicj1xlqii9fwbdqpyxnp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGVzIGNvbnRyb2wgb2YgU291bmRjb3JlIExpZmUgUTMwIEhlYWRwaG9uZXMgKGFuZCBvdGhlcnMpIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiTm9pc2VjbGFwcGVyIiwKICAibmFtZSI6ICJOb2lzZWNsYXBwZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubm9pc2VjbGFwcGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Kb3JkYW5WaWtuYXIvTm9pc2VjbGFwcGVyIiwKICAidXVpZCI6ICJOb2lzZWNsYXBwZXJASm9yZGFuVmlrbmFyIiwKICAidmVyc2lvbiI6IDMKfQ=="}
   }}
 , {"uuid": "compact-quick-settings@gnome-shell-extensions.mariospr.org", "name": "Compact Quick Settings", "pname": "compact-quick-settings", "description": "Compact quick settings menu for GNOME 43 and newer", "link": "https://extensions.gnome.org/extension/5527/compact-quick-settings/", "shell_version_map": {
     "43": {"version": "3", "sha256": "04ffksmfc27gya24x2fj0zpax3yj1kwjdwn33a99rxpypmicvpwf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbXBhY3QgcXVpY2sgc2V0dGluZ3MgbWVudSBmb3IgR05PTUUgNDMgYW5kIG5ld2VyIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiIiwKICAibmFtZSI6ICJDb21wYWN0IFF1aWNrIFNldHRpbmdzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hcmlvc3ByL2NvbXBhY3QtcXVpY2stc2V0dGluZ3MtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJjb21wYWN0LXF1aWNrLXNldHRpbmdzQGdub21lLXNoZWxsLWV4dGVuc2lvbnMubWFyaW9zcHIub3JnIiwKICAidmVyc2lvbiI6IDMKfQ=="},
     "44": {"version": "4", "sha256": "05cssrkk4kk9vix98abvy3i6ms3495sz5jpi496srnnbxs500y4v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbXBhY3QgcXVpY2sgc2V0dGluZ3MgbWVudSBmb3IgR05PTUUgNDMgYW5kIG5ld2VyIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiIiwKICAibmFtZSI6ICJDb21wYWN0IFF1aWNrIFNldHRpbmdzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hcmlvc3ByL2NvbXBhY3QtcXVpY2stc2V0dGluZ3MtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJjb21wYWN0LXF1aWNrLXNldHRpbmdzQGdub21lLXNoZWxsLWV4dGVuc2lvbnMubWFyaW9zcHIub3JnIiwKICAidmVyc2lvbiI6IDQKfQ=="},
-    "45": {"version": "7", "sha256": "1ir3wqcg9cdy1hs8icvkv7rv5hr47s1lrdz04y75vviwv406r6jm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbXBhY3QgcXVpY2sgc2V0dGluZ3MgbWVudSBmb3IgR05PTUUgNDMgYW5kIG5ld2VyIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiIiwKICAibmFtZSI6ICJDb21wYWN0IFF1aWNrIFNldHRpbmdzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hcmlvc3ByL2NvbXBhY3QtcXVpY2stc2V0dGluZ3MtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJjb21wYWN0LXF1aWNrLXNldHRpbmdzQGdub21lLXNoZWxsLWV4dGVuc2lvbnMubWFyaW9zcHIub3JnIiwKICAidmVyc2lvbiI6IDcKfQ=="}
+    "45": {"version": "8", "sha256": "15f2nn5lvyfya33ih8mxdjx4vwjp5fn61d47g3bf27gp84vhp300", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbXBhY3QgcXVpY2sgc2V0dGluZ3MgbWVudSBmb3IgR05PTUUgNDMgYW5kIG5ld2VyIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiIiwKICAibmFtZSI6ICJDb21wYWN0IFF1aWNrIFNldHRpbmdzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXJpb3Nwci9jb21wYWN0LXF1aWNrLXNldHRpbmdzLWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiY29tcGFjdC1xdWljay1zZXR0aW5nc0Bnbm9tZS1zaGVsbC1leHRlbnNpb25zLm1hcmlvc3ByLm9yZyIsCiAgInZlcnNpb24iOiA4Cn0="},
+    "46": {"version": "8", "sha256": "15f2nn5lvyfya33ih8mxdjx4vwjp5fn61d47g3bf27gp84vhp300", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbXBhY3QgcXVpY2sgc2V0dGluZ3MgbWVudSBmb3IgR05PTUUgNDMgYW5kIG5ld2VyIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiIiwKICAibmFtZSI6ICJDb21wYWN0IFF1aWNrIFNldHRpbmdzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXJpb3Nwci9jb21wYWN0LXF1aWNrLXNldHRpbmdzLWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiY29tcGFjdC1xdWljay1zZXR0aW5nc0Bnbm9tZS1zaGVsbC1leHRlbnNpb25zLm1hcmlvc3ByLm9yZyIsCiAgInZlcnNpb24iOiA4Cn0="}
   }}
 , {"uuid": "circular@widgets.io", "name": "Circular Widgets", "pname": "circular-widgets", "description": "Conky Like widgets but with few customisation options\n- Drag and Drop Support\n- Added Non customisable Calendar\n- Added Net Speed Widget\n- Highly Customisable Ram, Cpu, Clock and Net Speed Widget\nFor any issues,bugs and suggestions plz open an issue on Github", "link": "https://extensions.gnome.org/extension/5530/circular-widgets/", "shell_version_map": {
     "43": {"version": "6", "sha256": "1cbgjlyfh8y741aswps61qyi3cz6vlv6wn1isbv47x7p40rhfxy3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbmt5IExpa2Ugd2lkZ2V0cyBidXQgd2l0aCBmZXcgY3VzdG9taXNhdGlvbiBvcHRpb25zXG4tIERyYWcgYW5kIERyb3AgU3VwcG9ydFxuLSBBZGRlZCBOb24gY3VzdG9taXNhYmxlIENhbGVuZGFyXG4tIEFkZGVkIE5ldCBTcGVlZCBXaWRnZXRcbi0gSGlnaGx5IEN1c3RvbWlzYWJsZSBSYW0sIENwdSwgQ2xvY2sgYW5kIE5ldCBTcGVlZCBXaWRnZXRcbkZvciBhbnkgaXNzdWVzLGJ1Z3MgYW5kIHN1Z2dlc3Rpb25zIHBseiBvcGVuIGFuIGlzc3VlIG9uIEdpdGh1YiIsCiAgIm5hbWUiOiAiQ2lyY3VsYXIgV2lkZ2V0cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jaXJjdWxhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yYWloYW4yMDAwL2NpcmN1bGFyLXdpZGdldHMiLAogICJ1dWlkIjogImNpcmN1bGFyQHdpZGdldHMuaW8iLAogICJ2ZXJzaW9uIjogNgp9"}
@@ -5682,7 +5723,7 @@
     "45": {"version": "19", "sha256": "0r9yg02rzfgbhm7mgahpdi7x28lix59d5kyd65ibmydyl94chb5p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgc3dpdGNoIGJldHdlZW4gcG93ZXIgcHJvZmlsZXMgYmFzZWQgb24gcG93ZXIgc3VwcGx5IGFuZCBwZXJjZW50YWdlLiIsCiAgImdldHRleHQtZG9tYWluIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBvd2VyLXByb2ZpbGUtc3dpdGNoZXIiLAogICJuYW1lIjogIlBvd2VyIFByb2ZpbGUgU3dpdGNoZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucG93ZXItcHJvZmlsZS1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWxpYXBhc3F1YWxpL3Bvd2VyLXByb2ZpbGUtc3dpdGNoZXIiLAogICJ1dWlkIjogInBvd2VyLXByb2ZpbGUtc3dpdGNoZXJAZWxpYXBhc3F1YWxpLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxOQp9"},
     "46": {"version": "19", "sha256": "0r9yg02rzfgbhm7mgahpdi7x28lix59d5kyd65ibmydyl94chb5p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgc3dpdGNoIGJldHdlZW4gcG93ZXIgcHJvZmlsZXMgYmFzZWQgb24gcG93ZXIgc3VwcGx5IGFuZCBwZXJjZW50YWdlLiIsCiAgImdldHRleHQtZG9tYWluIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBvd2VyLXByb2ZpbGUtc3dpdGNoZXIiLAogICJuYW1lIjogIlBvd2VyIFByb2ZpbGUgU3dpdGNoZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucG93ZXItcHJvZmlsZS1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWxpYXBhc3F1YWxpL3Bvd2VyLXByb2ZpbGUtc3dpdGNoZXIiLAogICJ1dWlkIjogInBvd2VyLXByb2ZpbGUtc3dpdGNoZXJAZWxpYXBhc3F1YWxpLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxOQp9"}
   }}
-, {"uuid": "colorblind-filters@G-dH.github.com", "name": "Colorblind Filters", "pname": "colorblind-filters", "description": "Color filters are designed to assist both color-blind users and developers. The menu offers correction filters as well as simulation filters that demonstrate how color-blind individuals perceive colors. Included are filters for Protanopia, Deuteranopia, and Tritanopia, with adjustable strength. Additionally, filters for desaturation, channel mix, and lightness and color inversions are available.\n\nPrimary mouse button click on the panel button toggles active filter, secondary click opens configuration menu, middle click toggles high-contrast correction if available and scroll switches filters.\n\nDiscussions and bug reports on the GitHub page linked below, please.", "link": "https://extensions.gnome.org/extension/5589/colorblind-filters/", "shell_version_map": {
+, {"uuid": "colorblind-filters@G-dH.github.com", "name": "Colorblind Filters", "pname": "colorblind-filters", "description": "Color filters are designed to assist both color-blind users and developers.\n\nThe menu offers correction filters as well as simulation filters that demonstrate how color-blind individuals perceive colors. Included are filters for Protanopia, Deuteranopia, and Tritanopia, with adjustable strength. Additionally, filters for desaturation, channel mix, and lightness and color inversions are available.\n\nPrimary mouse button click on the panel button toggles active filter, secondary click opens configuration menu, middle click toggles high-contrast correction if available and scroll switches filters.\n\nDiscussions and bug reports on the GitHub page linked below, please.", "link": "https://extensions.gnome.org/extension/5589/colorblind-filters/", "shell_version_map": {
     "38": {"version": "17", "sha256": "0lgdx717xzm8fhszfvx9hqjx1kjkzlx8hs5jwrzrslif32vwjsbr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbG9yIGZpbHRlcnMgdGhhdCBzaG91bGQgaGVscCBjb2xvci1ibGluZCB1c2VycyBhbmQgYWxzbyBkZXZlbG9wZXJzLlxuVGhlIG1lbnUgaW5jbHVkZXMgY29ycmVjdGlvbiBmaWx0ZXJzIGFuZCBhbHNvIHNpbXVsYXRpb24gZmlsdGVycyB0aGF0IGNhbiBzaG93IHlvdSB3aGF0IGNvbG9yLWJsaW5kIHBlb3BsZSBzZWUuIEluY2x1ZGVkIGFyZSBmaWx0ZXJzIGZvciBQcm90YW5vcGlhLCBEZXV0ZXJhbm9waWEgYW5kIFRyaXRhbm9waWEsIGZpbHRlciBzdHJlbmd0aCBpcyBhZGp1c3RhYmxlLiBBdmFpbGFibGUgYXJlIGFsc28gZmlsdGVycyBmb3IgZGVzYXR1cmF0aW9uLCBjaGFubmVsIG1peCwgYW5kIGxpZ2h0bmVzcyBhbmQgY29sb3IgaW52ZXJzaW9ucy5cblxuUHJpbWFyeSBtb3VzZSBidXR0b24gY2xpY2sgb24gdGhlIHBhbmVsIGJ1dHRvbiB0b2dnbGVzIGFjdGl2ZSBmaWx0ZXIsIHNlY29uZGFyeSBjbGljayBvcGVucyBjb25maWd1cmF0aW9uIG1lbnUsIG1pZGRsZSBjbGljayB0b2dnbGVzIGhpZ2gtY29udHJhc3QgY29ycmVjdGlvbiBpZiBhdmFpbGFibGUgYW5kIHNjcm9sbCBzd2l0Y2hlcyBmaWx0ZXJzLlxuXG5EaXNjdXNzaW9ucyBhbmQgYnVnIHJlcG9ydHMgb24gdGhlIEdpdEh1YiBwYWdlIGxpbmtlZCBiZWxvdywgcGxlYXNlLiIsCiAgImdldHRleHQtZG9tYWluIjogImNvbG9yYmxpbmQtZmlsdGVycyIsCiAgIm5hbWUiOiAiQ29sb3JibGluZCBGaWx0ZXJzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNvbG9yYmxpbmQtZmlsdGVycyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9nbm9tZS1jb2xvcmJsaW5kLWZpbHRlcnMiLAogICJ1dWlkIjogImNvbG9yYmxpbmQtZmlsdGVyc0BHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="},
     "40": {"version": "17", "sha256": "0lgdx717xzm8fhszfvx9hqjx1kjkzlx8hs5jwrzrslif32vwjsbr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbG9yIGZpbHRlcnMgdGhhdCBzaG91bGQgaGVscCBjb2xvci1ibGluZCB1c2VycyBhbmQgYWxzbyBkZXZlbG9wZXJzLlxuVGhlIG1lbnUgaW5jbHVkZXMgY29ycmVjdGlvbiBmaWx0ZXJzIGFuZCBhbHNvIHNpbXVsYXRpb24gZmlsdGVycyB0aGF0IGNhbiBzaG93IHlvdSB3aGF0IGNvbG9yLWJsaW5kIHBlb3BsZSBzZWUuIEluY2x1ZGVkIGFyZSBmaWx0ZXJzIGZvciBQcm90YW5vcGlhLCBEZXV0ZXJhbm9waWEgYW5kIFRyaXRhbm9waWEsIGZpbHRlciBzdHJlbmd0aCBpcyBhZGp1c3RhYmxlLiBBdmFpbGFibGUgYXJlIGFsc28gZmlsdGVycyBmb3IgZGVzYXR1cmF0aW9uLCBjaGFubmVsIG1peCwgYW5kIGxpZ2h0bmVzcyBhbmQgY29sb3IgaW52ZXJzaW9ucy5cblxuUHJpbWFyeSBtb3VzZSBidXR0b24gY2xpY2sgb24gdGhlIHBhbmVsIGJ1dHRvbiB0b2dnbGVzIGFjdGl2ZSBmaWx0ZXIsIHNlY29uZGFyeSBjbGljayBvcGVucyBjb25maWd1cmF0aW9uIG1lbnUsIG1pZGRsZSBjbGljayB0b2dnbGVzIGhpZ2gtY29udHJhc3QgY29ycmVjdGlvbiBpZiBhdmFpbGFibGUgYW5kIHNjcm9sbCBzd2l0Y2hlcyBmaWx0ZXJzLlxuXG5EaXNjdXNzaW9ucyBhbmQgYnVnIHJlcG9ydHMgb24gdGhlIEdpdEh1YiBwYWdlIGxpbmtlZCBiZWxvdywgcGxlYXNlLiIsCiAgImdldHRleHQtZG9tYWluIjogImNvbG9yYmxpbmQtZmlsdGVycyIsCiAgIm5hbWUiOiAiQ29sb3JibGluZCBGaWx0ZXJzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNvbG9yYmxpbmQtZmlsdGVycyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9nbm9tZS1jb2xvcmJsaW5kLWZpbHRlcnMiLAogICJ1dWlkIjogImNvbG9yYmxpbmQtZmlsdGVyc0BHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="},
     "41": {"version": "17", "sha256": "0lgdx717xzm8fhszfvx9hqjx1kjkzlx8hs5jwrzrslif32vwjsbr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbG9yIGZpbHRlcnMgdGhhdCBzaG91bGQgaGVscCBjb2xvci1ibGluZCB1c2VycyBhbmQgYWxzbyBkZXZlbG9wZXJzLlxuVGhlIG1lbnUgaW5jbHVkZXMgY29ycmVjdGlvbiBmaWx0ZXJzIGFuZCBhbHNvIHNpbXVsYXRpb24gZmlsdGVycyB0aGF0IGNhbiBzaG93IHlvdSB3aGF0IGNvbG9yLWJsaW5kIHBlb3BsZSBzZWUuIEluY2x1ZGVkIGFyZSBmaWx0ZXJzIGZvciBQcm90YW5vcGlhLCBEZXV0ZXJhbm9waWEgYW5kIFRyaXRhbm9waWEsIGZpbHRlciBzdHJlbmd0aCBpcyBhZGp1c3RhYmxlLiBBdmFpbGFibGUgYXJlIGFsc28gZmlsdGVycyBmb3IgZGVzYXR1cmF0aW9uLCBjaGFubmVsIG1peCwgYW5kIGxpZ2h0bmVzcyBhbmQgY29sb3IgaW52ZXJzaW9ucy5cblxuUHJpbWFyeSBtb3VzZSBidXR0b24gY2xpY2sgb24gdGhlIHBhbmVsIGJ1dHRvbiB0b2dnbGVzIGFjdGl2ZSBmaWx0ZXIsIHNlY29uZGFyeSBjbGljayBvcGVucyBjb25maWd1cmF0aW9uIG1lbnUsIG1pZGRsZSBjbGljayB0b2dnbGVzIGhpZ2gtY29udHJhc3QgY29ycmVjdGlvbiBpZiBhdmFpbGFibGUgYW5kIHNjcm9sbCBzd2l0Y2hlcyBmaWx0ZXJzLlxuXG5EaXNjdXNzaW9ucyBhbmQgYnVnIHJlcG9ydHMgb24gdGhlIEdpdEh1YiBwYWdlIGxpbmtlZCBiZWxvdywgcGxlYXNlLiIsCiAgImdldHRleHQtZG9tYWluIjogImNvbG9yYmxpbmQtZmlsdGVycyIsCiAgIm5hbWUiOiAiQ29sb3JibGluZCBGaWx0ZXJzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNvbG9yYmxpbmQtZmlsdGVycyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9nbm9tZS1jb2xvcmJsaW5kLWZpbHRlcnMiLAogICJ1dWlkIjogImNvbG9yYmxpbmQtZmlsdGVyc0BHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="},
@@ -5766,7 +5807,8 @@
     "42": {"version": "3", "sha256": "06641gq1ci4mmnsnrps1bb3372hhq6bhg4sjh31pcpdlla17dg01", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdHJhbnNwYXJlbmN5IGVmZmVjdHMgKGluY2x1ZGluZyBub3RpZmljYXRpb24gdHJheSkgYW5kIHNsaW1zIHRoZSB0b3AgYmFyIGZvciBtb3JlIHNwYWNlLiBTZWUgZ2l0aHViIHBhZ2UgZm9yIG1vcmUgc2NyZWVuc2hvdHMuIiwKICAibmFtZSI6ICJDb21wYWN0IFRvcCBCYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21ldGVoYW4tYXJzbGFuL2dub21lLWNvbXBhY3QtdG9wLWJhciIsCiAgInV1aWQiOiAiZ25vbWUtY29tcGFjdC10b3AtYmFyQG1ldGVoYW4tYXJzbGFuLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAzCn0="},
     "43": {"version": "3", "sha256": "06641gq1ci4mmnsnrps1bb3372hhq6bhg4sjh31pcpdlla17dg01", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdHJhbnNwYXJlbmN5IGVmZmVjdHMgKGluY2x1ZGluZyBub3RpZmljYXRpb24gdHJheSkgYW5kIHNsaW1zIHRoZSB0b3AgYmFyIGZvciBtb3JlIHNwYWNlLiBTZWUgZ2l0aHViIHBhZ2UgZm9yIG1vcmUgc2NyZWVuc2hvdHMuIiwKICAibmFtZSI6ICJDb21wYWN0IFRvcCBCYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21ldGVoYW4tYXJzbGFuL2dub21lLWNvbXBhY3QtdG9wLWJhciIsCiAgInV1aWQiOiAiZ25vbWUtY29tcGFjdC10b3AtYmFyQG1ldGVoYW4tYXJzbGFuLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAzCn0="},
     "44": {"version": "3", "sha256": "06641gq1ci4mmnsnrps1bb3372hhq6bhg4sjh31pcpdlla17dg01", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdHJhbnNwYXJlbmN5IGVmZmVjdHMgKGluY2x1ZGluZyBub3RpZmljYXRpb24gdHJheSkgYW5kIHNsaW1zIHRoZSB0b3AgYmFyIGZvciBtb3JlIHNwYWNlLiBTZWUgZ2l0aHViIHBhZ2UgZm9yIG1vcmUgc2NyZWVuc2hvdHMuIiwKICAibmFtZSI6ICJDb21wYWN0IFRvcCBCYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21ldGVoYW4tYXJzbGFuL2dub21lLWNvbXBhY3QtdG9wLWJhciIsCiAgInV1aWQiOiAiZ25vbWUtY29tcGFjdC10b3AtYmFyQG1ldGVoYW4tYXJzbGFuLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAzCn0="},
-    "45": {"version": "6", "sha256": "1hzr99sagcpyaawwwy1rsjn7qywrxl3a6w4vjr5vdqpdvrv0plkc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdHJhbnNwYXJlbmN5IGVmZmVjdHMgKGluY2x1ZGluZyBub3RpZmljYXRpb24gdHJheSkgYW5kIHNsaW1zIHRoZSB0b3AgYmFyIGZvciBtb3JlIHNwYWNlLiBTZWUgZ2l0aHViIHBhZ2UgZm9yIG1vcmUgc2NyZWVuc2hvdHMuIiwKICAibmFtZSI6ICJDb21wYWN0IFRvcCBCYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWV0ZWhhbi1hcnNsYW4vZ25vbWUtY29tcGFjdC10b3AtYmFyIiwKICAidXVpZCI6ICJnbm9tZS1jb21wYWN0LXRvcC1iYXJAbWV0ZWhhbi1hcnNsYW4uZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDYKfQ=="}
+    "45": {"version": "6", "sha256": "1hzr99sagcpyaawwwy1rsjn7qywrxl3a6w4vjr5vdqpdvrv0plkc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdHJhbnNwYXJlbmN5IGVmZmVjdHMgKGluY2x1ZGluZyBub3RpZmljYXRpb24gdHJheSkgYW5kIHNsaW1zIHRoZSB0b3AgYmFyIGZvciBtb3JlIHNwYWNlLiBTZWUgZ2l0aHViIHBhZ2UgZm9yIG1vcmUgc2NyZWVuc2hvdHMuIiwKICAibmFtZSI6ICJDb21wYWN0IFRvcCBCYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWV0ZWhhbi1hcnNsYW4vZ25vbWUtY29tcGFjdC10b3AtYmFyIiwKICAidXVpZCI6ICJnbm9tZS1jb21wYWN0LXRvcC1iYXJAbWV0ZWhhbi1hcnNsYW4uZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDYKfQ=="},
+    "46": {"version": "7", "sha256": "0k6i6al2nbm9zv2sbmggamkg7lkalpjd76wskzfq8gyx6ah08xnq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdHJhbnNwYXJlbmN5IGVmZmVjdHMgKGluY2x1ZGluZyBub3RpZmljYXRpb24gdHJheSkgYW5kIHNsaW1zIHRoZSB0b3AgYmFyIGZvciBtb3JlIHNwYWNlLiBTZWUgZ2l0aHViIHBhZ2UgZm9yIG1vcmUgc2NyZWVuc2hvdHMuIiwKICAibmFtZSI6ICJDb21wYWN0IFRvcCBCYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWV0ZWhhbi1hcnNsYW4vZ25vbWUtY29tcGFjdC10b3AtYmFyIiwKICAidXVpZCI6ICJnbm9tZS1jb21wYWN0LXRvcC1iYXJAbWV0ZWhhbi1hcnNsYW4uZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDcKfQ=="}
   }}
 , {"uuid": "persistent-notifications@AlexeyReshetnyak", "name": "Persistent Notifications", "pname": "persistent-notifications", "description": "Never hide a new notification, except if you close it.", "link": "https://extensions.gnome.org/extension/5672/persistent-notifications/", "shell_version_map": {
     "40": {"version": "1", "sha256": "0y0vk8dva14yfbgdss00sl42wdwbf5mhpc9vhapbl773fdr5l2c7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldmVyIGhpZGUgYSBuZXcgbm90aWZpY2F0aW9uLCBleGNlcHQgaWYgeW91IGNsb3NlIGl0LiIsCiAgIm5hbWUiOiAiUGVyc2lzdGVudCBOb3RpZmljYXRpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDIiLAogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWxleGV5UmVzaGV0bnlhay9wZXJzaXN0ZW50LW5vdGlmaWNhdGlvbnMiLAogICJ1dWlkIjogInBlcnNpc3RlbnQtbm90aWZpY2F0aW9uc0BBbGV4ZXlSZXNoZXRueWFrIiwKICAidmVyc2lvbiI6IDEKfQ=="},
@@ -5869,7 +5911,8 @@
   }}
 , {"uuid": "desaturated-tray-icons@cr1337.github.com", "name": "Desaturated Tray Icons", "pname": "desaturated-tray-icons", "description": "Display all tray icons in grayscale", "link": "https://extensions.gnome.org/extension/5766/desaturated-tray-icons/", "shell_version_map": {
     "42": {"version": "2", "sha256": "1v27biy9psxiv9fkgp83p9rqbwid2rqdwdc6f5rl4mnhj0fn8p8k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYWxsIHRyYXkgaWNvbnMgaW4gZ3JheXNjYWxlIiwKICAibmFtZSI6ICJEZXNhdHVyYXRlZCBUcmF5IEljb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NSMTMzNy9kZXNhdHVyYXRlZC10cmF5LWljb25zIiwKICAidXVpZCI6ICJkZXNhdHVyYXRlZC10cmF5LWljb25zQGNyMTMzNy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="},
-    "45": {"version": "3", "sha256": "1p7737pmrlvj7wnw0w798s92s8m8g4l1ljqlyvsj60nxyb39rmqv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYWxsIHRyYXkgaWNvbnMgaW4gZ3JheXNjYWxlIiwKICAibmFtZSI6ICJEZXNhdHVyYXRlZCBUcmF5IEljb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NSMTMzNy9kZXNhdHVyYXRlZC10cmF5LWljb25zIiwKICAidXVpZCI6ICJkZXNhdHVyYXRlZC10cmF5LWljb25zQGNyMTMzNy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDMKfQ=="}
+    "45": {"version": "3", "sha256": "1p7737pmrlvj7wnw0w798s92s8m8g4l1ljqlyvsj60nxyb39rmqv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYWxsIHRyYXkgaWNvbnMgaW4gZ3JheXNjYWxlIiwKICAibmFtZSI6ICJEZXNhdHVyYXRlZCBUcmF5IEljb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NSMTMzNy9kZXNhdHVyYXRlZC10cmF5LWljb25zIiwKICAidXVpZCI6ICJkZXNhdHVyYXRlZC10cmF5LWljb25zQGNyMTMzNy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDMKfQ=="},
+    "46": {"version": "4", "sha256": "0sl8rdkrzgp680wdiydng3lrvh6x78qxn0nwq3pbaq6qnkwmgj08", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYWxsIHRyYXkgaWNvbnMgaW4gZ3JheXNjYWxlIiwKICAibmFtZSI6ICJEZXNhdHVyYXRlZCBUcmF5IEljb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NSMTMzNy9kZXNhdHVyYXRlZC10cmF5LWljb25zIiwKICAidXVpZCI6ICJkZXNhdHVyYXRlZC10cmF5LWljb25zQGNyMTMzNy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}
   }}
 , {"uuid": "hassleless-overview-search@mechtifs", "name": "Hassleless Overview Search", "pname": "hassleless-overview-search", "description": "This extension reverts the ibus input source to default when entering the overview, and restores it after exiting, which solves the conflict between the ibus popup and the \"Type to search\" feature.", "link": "https://extensions.gnome.org/extension/5769/hassleless-overview-search/", "shell_version_map": {
     "42": {"version": "3", "sha256": "1m1lhgyf70vidzrrcn3nyiis6dd3gb3hr6n578hbqr81kzc1hvmq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHJldmVydHMgdGhlIGlidXMgaW5wdXQgc291cmNlIHRvIGRlZmF1bHQgd2hlbiBlbnRlcmluZyB0aGUgb3ZlcnZpZXcsIGFuZCByZXN0b3JlcyBpdCBhZnRlciBleGl0aW5nLCB3aGljaCBzb2x2ZXMgdGhlIGNvbmZsaWN0IGJldHdlZW4gdGhlIGlidXMgcG9wdXAgYW5kIHRoZSBcIlR5cGUgdG8gc2VhcmNoXCIgZmVhdHVyZS4iLAogICJuYW1lIjogIkhhc3NsZWxlc3MgT3ZlcnZpZXcgU2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWVjaHRpZnMvaGFzc2xlbGVzcy1vdmVydmlldy1zZWFyY2giLAogICJ1dWlkIjogImhhc3NsZWxlc3Mtb3ZlcnZpZXctc2VhcmNoQG1lY2h0aWZzIiwKICAidmVyc2lvbiI6IDMKfQ=="},
@@ -5937,8 +5980,8 @@
     "42": {"version": "6", "sha256": "1mdyigd5dn324ivb5bgypiq4gibjsbzm0rkcml9hi699a609736k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIFNoZWxsIEV4dGVuc2lvbiB0byB2aXN1YWxpemUgaGVhZHNldCBzdGF0dXMgZnJvbSBIZWFkc2V0Q29udHJvbCAoaHR0cHM6Ly9naXRodWIuY29tL1NhcGQvSGVhZHNldENvbnRyb2wpIGNvbW1hbmQgbGluZSB0b29sIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiSGVhZHNldENvbnRyb2wiLAogICJuYW1lIjogIkhlYWRzZXRDb250cm9sIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkhlYWRzZXRDb250cm9sIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ2hyaXNMYXVpbmdlcjc3L2dub21lLXNoZWxsLWV4dGVuc2lvbi1IZWFkc2V0Q29udHJvbCIsCiAgInV1aWQiOiAiSGVhZHNldENvbnRyb2xAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiA2Cn0="},
     "43": {"version": "15", "sha256": "04as61msjqq359r1qm0d7dw7df2bcngx67pmwva8flyvzi62iavi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIFNoZWxsIEV4dGVuc2lvbiB0byB2aXN1YWxpemUgaGVhZHNldCBzdGF0dXMgZnJvbSBIZWFkc2V0Q29udHJvbCAoaHR0cHM6Ly9naXRodWIuY29tL1NhcGQvSGVhZHNldENvbnRyb2wpIGNvbW1hbmQgbGluZSB0b29sIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiSGVhZHNldENvbnRyb2wiLAogICJuYW1lIjogIkhlYWRzZXRDb250cm9sIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkhlYWRzZXRDb250cm9sIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9DaHJpc0xhdWluZ2VyNzcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLUhlYWRzZXRDb250cm9sIiwKICAidXVpZCI6ICJIZWFkc2V0Q29udHJvbEBsYXVpbmdlci1jbGFuLmRlIiwKICAidmVyc2lvbiI6IDE1Cn0="},
     "44": {"version": "23", "sha256": "00clk8w8p1sxsqpmwsmlgki2vvx9cjlvnzsrn9j69n1img4vbiwh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIFNoZWxsIEV4dGVuc2lvbiB0byB2aXN1YWxpemUgaGVhZHNldCBzdGF0dXMgZnJvbSBIZWFkc2V0Q29udHJvbCAoaHR0cHM6Ly9naXRodWIuY29tL1NhcGQvSGVhZHNldENvbnRyb2wpIGNvbW1hbmQgbGluZSB0b29sIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiSGVhZHNldENvbnRyb2wiLAogICJuYW1lIjogIkhlYWRzZXRDb250cm9sIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkhlYWRzZXRDb250cm9sIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9nbm9tZS1zaGVsbC1leHRlbnNpb24tSGVhZHNldENvbnRyb2wiLAogICJ1dWlkIjogIkhlYWRzZXRDb250cm9sQGxhdWluZ2VyLWNsYW4uZGUiLAogICJ2ZXJzaW9uIjogMjMKfQ=="},
-    "45": {"version": "28", "sha256": "0pb004pskirvndwmlhvaz7zv6n32q0fflq47fgill3f48vn57xh8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIFNoZWxsIEV4dGVuc2lvbiB0byB2aXN1YWxpemUgaGVhZHNldCBzdGF0dXMgZnJvbSBIZWFkc2V0Q29udHJvbCAoaHR0cHM6Ly9naXRodWIuY29tL1NhcGQvSGVhZHNldENvbnRyb2wpIGNvbW1hbmQgbGluZSB0b29sIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJDaHJpc0xhdWluZ2VyNzciLAogICAgInBheXBhbCI6ICJDaHJpc0xhdWluZ2VyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIkhlYWRzZXRDb250cm9sIiwKICAibmFtZSI6ICJIZWFkc2V0Q29udHJvbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5IZWFkc2V0Q29udHJvbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ2hyaXNMYXVpbmdlcjc3L2dub21lLXNoZWxsLWV4dGVuc2lvbi1IZWFkc2V0Q29udHJvbCIsCiAgInV1aWQiOiAiSGVhZHNldENvbnRyb2xAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiAyOCwKICAidmVyc2lvbi1uYW1lIjogIjQ2LjIiCn0="},
-    "46": {"version": "28", "sha256": "0pb004pskirvndwmlhvaz7zv6n32q0fflq47fgill3f48vn57xh8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIFNoZWxsIEV4dGVuc2lvbiB0byB2aXN1YWxpemUgaGVhZHNldCBzdGF0dXMgZnJvbSBIZWFkc2V0Q29udHJvbCAoaHR0cHM6Ly9naXRodWIuY29tL1NhcGQvSGVhZHNldENvbnRyb2wpIGNvbW1hbmQgbGluZSB0b29sIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJDaHJpc0xhdWluZ2VyNzciLAogICAgInBheXBhbCI6ICJDaHJpc0xhdWluZ2VyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIkhlYWRzZXRDb250cm9sIiwKICAibmFtZSI6ICJIZWFkc2V0Q29udHJvbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5IZWFkc2V0Q29udHJvbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ2hyaXNMYXVpbmdlcjc3L2dub21lLXNoZWxsLWV4dGVuc2lvbi1IZWFkc2V0Q29udHJvbCIsCiAgInV1aWQiOiAiSGVhZHNldENvbnRyb2xAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiAyOCwKICAidmVyc2lvbi1uYW1lIjogIjQ2LjIiCn0="}
+    "45": {"version": "30", "sha256": "1d0v1k0g9mizc3k2qyxgl8xmq9w4rzk124vbjq2ifzircbsb6qb2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIFNoZWxsIEV4dGVuc2lvbiB0byB2aXN1YWxpemUgaGVhZHNldCBzdGF0dXMgZnJvbSBIZWFkc2V0Q29udHJvbCAoaHR0cHM6Ly9naXRodWIuY29tL1NhcGQvSGVhZHNldENvbnRyb2wpIGNvbW1hbmQgbGluZSB0b29sIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJDaHJpc0xhdWluZ2VyNzciLAogICAgInBheXBhbCI6ICJDaHJpc0xhdWluZ2VyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIkhlYWRzZXRDb250cm9sIiwKICAibmFtZSI6ICJIZWFkc2V0Q29udHJvbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5IZWFkc2V0Q29udHJvbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ2hyaXNMYXVpbmdlcjc3L2dub21lLXNoZWxsLWV4dGVuc2lvbi1IZWFkc2V0Q29udHJvbCIsCiAgInV1aWQiOiAiSGVhZHNldENvbnRyb2xAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiAzMCwKICAidmVyc2lvbi1uYW1lIjogIjQ2LjQiCn0="},
+    "46": {"version": "30", "sha256": "1d0v1k0g9mizc3k2qyxgl8xmq9w4rzk124vbjq2ifzircbsb6qb2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIFNoZWxsIEV4dGVuc2lvbiB0byB2aXN1YWxpemUgaGVhZHNldCBzdGF0dXMgZnJvbSBIZWFkc2V0Q29udHJvbCAoaHR0cHM6Ly9naXRodWIuY29tL1NhcGQvSGVhZHNldENvbnRyb2wpIGNvbW1hbmQgbGluZSB0b29sIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJDaHJpc0xhdWluZ2VyNzciLAogICAgInBheXBhbCI6ICJDaHJpc0xhdWluZ2VyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIkhlYWRzZXRDb250cm9sIiwKICAibmFtZSI6ICJIZWFkc2V0Q29udHJvbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5IZWFkc2V0Q29udHJvbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ2hyaXNMYXVpbmdlcjc3L2dub21lLXNoZWxsLWV4dGVuc2lvbi1IZWFkc2V0Q29udHJvbCIsCiAgInV1aWQiOiAiSGVhZHNldENvbnRyb2xAbGF1aW5nZXItY2xhbi5kZSIsCiAgInZlcnNpb24iOiAzMCwKICAidmVyc2lvbi1uYW1lIjogIjQ2LjQiCn0="}
   }}
 , {"uuid": "true-color-window-invert@lynet101", "name": "True Color Window Invert", "pname": "true-color-invert", "description": "Inverts the color of individual windows so they are hue-preserved.\nDefault shortcut is Super+I (Fork from JackKenney, due to 2+ years of inactivity)\n\n!!!IMPORTANT!!!\nDue to changes in personal and professional life, developer lynet_101 will no longer be able to maintain this project, and the extension, as a result, is from December the 5th 2023 orphaned\n\npatch notes v3:\nFixed an issue where windows would occasionally disappear upon inversion\n\nAbout Gnome 45:\nThere will be made an effort to port this extension to gnome 45, but gnome has decided to revamp large parts of the framework used for these sorts of extensions, and as I'm a solo developer, don't expect it to be ported immediately .\n\nI apologize for any inconvenience this may cause ;(", "link": "https://extensions.gnome.org/extension/5829/true-color-invert/", "shell_version_map": {
     "38": {"version": "3", "sha256": "01hsx7mrd0z8fy797x3xn8jqjjw8a34dxj4vvf9w43zdixj5i6z4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludmVydHMgdGhlIGNvbG9yIG9mIGluZGl2aWR1YWwgd2luZG93cyBzbyB0aGV5IGFyZSBodWUtcHJlc2VydmVkLlxuRGVmYXVsdCBzaG9ydGN1dCBpcyBTdXBlcitJIChGb3JrIGZyb20gSmFja0tlbm5leSwgZHVlIHRvIDIrIHllYXJzIG9mIGluYWN0aXZpdHlcblxucGF0Y2ggbm90ZXMgdjM6XG5GaXhlZCBhbiBpc3N1ZSB3aGVyZSB3aW5kb3dzIHdvdWxkIG9jY2FzaW9uYWxseSBkaXNhcHBlYXIgdXBvbiBpbnZlcnNpb25cblxuTm90ZXM6XG5BcyB0aGlzIGlzIGEgZmFpcmx5IG5ldyBhZG9wdGlvbiwgb2YgYSBmYWlybHkgb2xkIHByb2plY3QsIGV4cGVjdCBmcmVxdWVudCB1cGRhdGVzIGFuZCBidWcgcGF0Y2hlcyBpbiB0aGUgYmVnaW5uaW5nLiB0aGFuayB5b3UgZm9yIHVuZGVyc3RhbmRpbmciLAogICJuYW1lIjogIlRydWUgQ29sb3IgV2luZG93IEludmVydCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50cnVlLWNvbG9yLXdpbmRvdy1pbnZlcnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0x5bmV0MTAxL2dub21lLXRydWUtY29sb3ItaW52ZXJ0IiwKICAidXVpZCI6ICJ0cnVlLWNvbG9yLXdpbmRvdy1pbnZlcnRAbHluZXQxMDEiLAogICJ2ZXJzaW9uIjogMwp9"},
@@ -5986,7 +6029,8 @@
     "42": {"version": "4", "sha256": "0h1dglr1zc4rn75hklf4h4r808683dqpwl6zp7rrg52xrb3cp1bd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBzaG93IGFwcHMgaWNvbiBhdCB0b3Agb2YgZGFzaCIsCiAgIm5hbWUiOiAiU2hvdyBBcHBzIGF0IFRvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb3JiaXRjb3JyZWN0b24vc2hvdy1hcHBzLWF0LXRvcCIsCiAgInV1aWQiOiAic2hvd2FwcHNhdHRvcEBnaXRodWIuY29tLm9yYml0Y29ycmVjdGlvbiIsCiAgInZlcnNpb24iOiA0Cn0="},
     "43": {"version": "4", "sha256": "0h1dglr1zc4rn75hklf4h4r808683dqpwl6zp7rrg52xrb3cp1bd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBzaG93IGFwcHMgaWNvbiBhdCB0b3Agb2YgZGFzaCIsCiAgIm5hbWUiOiAiU2hvdyBBcHBzIGF0IFRvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb3JiaXRjb3JyZWN0b24vc2hvdy1hcHBzLWF0LXRvcCIsCiAgInV1aWQiOiAic2hvd2FwcHNhdHRvcEBnaXRodWIuY29tLm9yYml0Y29ycmVjdGlvbiIsCiAgInZlcnNpb24iOiA0Cn0="},
     "44": {"version": "4", "sha256": "0h1dglr1zc4rn75hklf4h4r808683dqpwl6zp7rrg52xrb3cp1bd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBzaG93IGFwcHMgaWNvbiBhdCB0b3Agb2YgZGFzaCIsCiAgIm5hbWUiOiAiU2hvdyBBcHBzIGF0IFRvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb3JiaXRjb3JyZWN0b24vc2hvdy1hcHBzLWF0LXRvcCIsCiAgInV1aWQiOiAic2hvd2FwcHNhdHRvcEBnaXRodWIuY29tLm9yYml0Y29ycmVjdGlvbiIsCiAgInZlcnNpb24iOiA0Cn0="},
-    "45": {"version": "9", "sha256": "04ppx5k7hkabk8ndj7yqz40m3qmidvvpkbkpzrb7c2p8p9kfb32m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBzaG93IGFwcHMgaWNvbiBhdCB0b3AgaW4gR25vbWUgZGVmYXVsdCBkYXNoIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJob3diZWEiCiAgfSwKICAibmFtZSI6ICJBcHBzIGF0IFRvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ob3diZWEvc2hvdy1hcHBzLWF0LXRvcCIsCiAgInV1aWQiOiAic2hvd2FwcHNhdHRvcEBnaXRodWIuY29tLm9yYml0Y29ycmVjdGlvbiIsCiAgInZlcnNpb24iOiA5Cn0="}
+    "45": {"version": "10", "sha256": "1gx1k0qchvbv6jlja304xswg9j4ijh4xx5gkip7qip3cada3msfz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBzaG93IGFwcHMgaWNvbiBhdCB0b3AgaW4gR25vbWUgZGVmYXVsdCBkYXNoIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJob3diZWEiCiAgfSwKICAibmFtZSI6ICJBcHBzIGF0IFRvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL3Nob3ctYXBwcy1hdC10b3AiLAogICJ1dWlkIjogInNob3dhcHBzYXR0b3BAZ2l0aHViLmNvbS5vcmJpdGNvcnJlY3Rpb24iLAogICJ2ZXJzaW9uIjogMTAKfQ=="},
+    "46": {"version": "10", "sha256": "1gx1k0qchvbv6jlja304xswg9j4ijh4xx5gkip7qip3cada3msfz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBzaG93IGFwcHMgaWNvbiBhdCB0b3AgaW4gR25vbWUgZGVmYXVsdCBkYXNoIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJob3diZWEiCiAgfSwKICAibmFtZSI6ICJBcHBzIGF0IFRvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL3Nob3ctYXBwcy1hdC10b3AiLAogICJ1dWlkIjogInNob3dhcHBzYXR0b3BAZ2l0aHViLmNvbS5vcmJpdGNvcnJlY3Rpb24iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}
   }}
 , {"uuid": "overviewbackground@github.com.orbitcorrection", "name": "Overview Background", "pname": "overview-background", "description": "Add background in overview", "link": "https://extensions.gnome.org/extension/5856/overview-background/", "shell_version_map": {
     "40": {"version": "7", "sha256": "0asaxvjc17x5vg55di2pcd6vwczbgzvw91bi9s6957f45d04n1y8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBiYWNrZ3JvdW5kIGluIG92ZXJ2aWV3IiwKICAibmFtZSI6ICJPdmVydmlldyBCYWNrZ3JvdW5kIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9vcmJpdGNvcnJlY3Rvbi9vdmVydmlldy1iYWNrZ3JvdW5kIiwKICAidXVpZCI6ICJvdmVydmlld2JhY2tncm91bmRAZ2l0aHViLmNvbS5vcmJpdGNvcnJlY3Rpb24iLAogICJ2ZXJzaW9uIjogNwp9"},
@@ -5994,7 +6038,8 @@
     "42": {"version": "15", "sha256": "06zs5qhn63d481clvf7fjdwzwkz893h3hf257q3wikipa6mqqgk8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBiYWNrZ3JvdW5kIGluIG92ZXJ2aWV3IiwKICAibmFtZSI6ICJPdmVydmlldyBCYWNrZ3JvdW5kIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9iIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL292ZXJ2aWV3LWJhY2tncm91bmQiLAogICJ1dWlkIjogIm92ZXJ2aWV3YmFja2dyb3VuZEBnaXRodWIuY29tLm9yYml0Y29ycmVjdGlvbiIsCiAgInZlcnNpb24iOiAxNQp9"},
     "43": {"version": "15", "sha256": "06zs5qhn63d481clvf7fjdwzwkz893h3hf257q3wikipa6mqqgk8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBiYWNrZ3JvdW5kIGluIG92ZXJ2aWV3IiwKICAibmFtZSI6ICJPdmVydmlldyBCYWNrZ3JvdW5kIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9iIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL292ZXJ2aWV3LWJhY2tncm91bmQiLAogICJ1dWlkIjogIm92ZXJ2aWV3YmFja2dyb3VuZEBnaXRodWIuY29tLm9yYml0Y29ycmVjdGlvbiIsCiAgInZlcnNpb24iOiAxNQp9"},
     "44": {"version": "15", "sha256": "06zs5qhn63d481clvf7fjdwzwkz893h3hf257q3wikipa6mqqgk8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBiYWNrZ3JvdW5kIGluIG92ZXJ2aWV3IiwKICAibmFtZSI6ICJPdmVydmlldyBCYWNrZ3JvdW5kIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9iIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL292ZXJ2aWV3LWJhY2tncm91bmQiLAogICJ1dWlkIjogIm92ZXJ2aWV3YmFja2dyb3VuZEBnaXRodWIuY29tLm9yYml0Y29ycmVjdGlvbiIsCiAgInZlcnNpb24iOiAxNQp9"},
-    "45": {"version": "16", "sha256": "1i3az4y3ac9sxc0fbhn6ivms32yyl239f00aqlbml9kpp1liv9wa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBiYWNrZ3JvdW5kIGluIG92ZXJ2aWV3IiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJob3diZWEiCiAgfSwKICAibmFtZSI6ICJPdmVydmlldyBCYWNrZ3JvdW5kIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9iIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hvd2JlYS9vdmVydmlldy1iYWNrZ3JvdW5kIiwKICAidXVpZCI6ICJvdmVydmlld2JhY2tncm91bmRAZ2l0aHViLmNvbS5vcmJpdGNvcnJlY3Rpb24iLAogICJ2ZXJzaW9uIjogMTYKfQ=="}
+    "45": {"version": "16", "sha256": "1i3az4y3ac9sxc0fbhn6ivms32yyl239f00aqlbml9kpp1liv9wa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBiYWNrZ3JvdW5kIGluIG92ZXJ2aWV3IiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJob3diZWEiCiAgfSwKICAibmFtZSI6ICJPdmVydmlldyBCYWNrZ3JvdW5kIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9iIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hvd2JlYS9vdmVydmlldy1iYWNrZ3JvdW5kIiwKICAidXVpZCI6ICJvdmVydmlld2JhY2tncm91bmRAZ2l0aHViLmNvbS5vcmJpdGNvcnJlY3Rpb24iLAogICJ2ZXJzaW9uIjogMTYKfQ=="},
+    "46": {"version": "17", "sha256": "1a262j68k2vrr5yjk63gqlc0gvcv61wja28m4wkmxmw2l2www3d6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBiYWNrZ3JvdW5kIGluIG92ZXJ2aWV3IiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJob3diZWEiCiAgfSwKICAibmFtZSI6ICJPdmVydmlldyBCYWNrZ3JvdW5kIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9iIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hvd2JlYS9vdmVydmlldy1iYWNrZ3JvdW5kIiwKICAidXVpZCI6ICJvdmVydmlld2JhY2tncm91bmRAZ2l0aHViLmNvbS5vcmJpdGNvcnJlY3Rpb24iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}
   }}
 , {"uuid": "logout-button@0ct0puce.com", "name": "Logout Button", "pname": "logout-button", "description": "Logout button easily accessible in the top panel. It could be useful as it restart gnome everytime you click it.", "link": "https://extensions.gnome.org/extension/5865/logout-button/", "shell_version_map": {
     "43": {"version": "1", "sha256": "15v4d6kxnlnbayqryliy67s35zbvr6j8g1w2x6wm0w909gcwi0px", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvZ291dCBidXR0b24gZWFzaWx5IGFjY2Vzc2libGUgaW4gdGhlIHRvcCBwYW5lbC4gSXQgY291bGQgYmUgdXNlZnVsIGFzIGl0IHJlc3RhcnQgZ25vbWUgZXZlcnl0aW1lIHlvdSBjbGljayBpdC4iLAogICJuYW1lIjogIkxvZ291dCBCdXR0b24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vMENUMFBVQ0UtTE9HL2dub21lLXNoZWxsLWV4dGVuc2lvbi1sb2dvdXQtYnV0dG9uIiwKICAidXVpZCI6ICJsb2dvdXQtYnV0dG9uQDBjdDBwdWNlLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}
@@ -6079,8 +6124,8 @@
 , {"uuid": "quick-settings-audio-panel@rayzeq.github.io", "name": "Quick Settings Audio Panel", "pname": "quick-settings-audio-panel", "description": "Create a new panel containing volumes and media control in the quick settings", "link": "https://extensions.gnome.org/extension/5940/quick-settings-audio-panel/", "shell_version_map": {
     "43": {"version": "45", "sha256": "00d8j387483znvsigd0cjm8kgzb7z4paipavpdilmdv5k14iv0wn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZSBhIG5ldyBwYW5lbCBjb250YWluaW5nIHZvbHVtZXMgYW5kIG1lZGlhIGNvbnRyb2wgaW4gdGhlIHF1aWNrIHNldHRpbmdzIiwKICAibmFtZSI6ICJRdWljayBTZXR0aW5ncyBBdWRpbyBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5xdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmF5emVxL3F1aWNrLXNldHRpbmdzLWF1ZGlvLXBhbmVsIiwKICAidXVpZCI6ICJxdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbEByYXl6ZXEuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDQ1Cn0="},
     "44": {"version": "45", "sha256": "00d8j387483znvsigd0cjm8kgzb7z4paipavpdilmdv5k14iv0wn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZSBhIG5ldyBwYW5lbCBjb250YWluaW5nIHZvbHVtZXMgYW5kIG1lZGlhIGNvbnRyb2wgaW4gdGhlIHF1aWNrIHNldHRpbmdzIiwKICAibmFtZSI6ICJRdWljayBTZXR0aW5ncyBBdWRpbyBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5xdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmF5emVxL3F1aWNrLXNldHRpbmdzLWF1ZGlvLXBhbmVsIiwKICAidXVpZCI6ICJxdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbEByYXl6ZXEuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDQ1Cn0="},
-    "45": {"version": "44", "sha256": "0xkwz2mkchvy2mym5a05p4b3wdzpv14kvcgwyywzxwmlmxxcxg74", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZSBhIG5ldyBwYW5lbCBjb250YWluaW5nIHZvbHVtZXMgYW5kIG1lZGlhIGNvbnRyb2wgaW4gdGhlIHF1aWNrIHNldHRpbmdzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicXVpY2stc2V0dGluZ3MtYXVkaW8tcGFuZWxAcmF5emVxLmdpdGh1Yi5pbyIsCiAgIm5hbWUiOiAiUXVpY2sgU2V0dGluZ3MgQXVkaW8gUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucXVpY2stc2V0dGluZ3MtYXVkaW8tcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmF5emVxL3F1aWNrLXNldHRpbmdzLWF1ZGlvLXBhbmVsIiwKICAidXVpZCI6ICJxdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbEByYXl6ZXEuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDQ0Cn0="},
-    "46": {"version": "46", "sha256": "1rh86y2yk2da8avknc08y2bsn3k1dr65dfc928n55ywx4gaqlr7j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZSBhIG5ldyBwYW5lbCBjb250YWluaW5nIHZvbHVtZXMgYW5kIG1lZGlhIGNvbnRyb2wgaW4gdGhlIHF1aWNrIHNldHRpbmdzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicXVpY2stc2V0dGluZ3MtYXVkaW8tcGFuZWxAcmF5emVxLmdpdGh1Yi5pbyIsCiAgIm5hbWUiOiAiUXVpY2sgU2V0dGluZ3MgQXVkaW8gUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucXVpY2stc2V0dGluZ3MtYXVkaW8tcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmF5emVxL3F1aWNrLXNldHRpbmdzLWF1ZGlvLXBhbmVsIiwKICAidXVpZCI6ICJxdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbEByYXl6ZXEuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDQ2Cn0="}
+    "45": {"version": "48", "sha256": "0nckxx53fxyzxqhp68vdx66yrdw8z3flbd4yhrnp5hpqzkfwhakv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZSBhIG5ldyBwYW5lbCBjb250YWluaW5nIHZvbHVtZXMgYW5kIG1lZGlhIGNvbnRyb2wgaW4gdGhlIHF1aWNrIHNldHRpbmdzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicXVpY2stc2V0dGluZ3MtYXVkaW8tcGFuZWxAcmF5emVxLmdpdGh1Yi5pbyIsCiAgIm5hbWUiOiAiUXVpY2sgU2V0dGluZ3MgQXVkaW8gUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucXVpY2stc2V0dGluZ3MtYXVkaW8tcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmF5emVxL3F1aWNrLXNldHRpbmdzLWF1ZGlvLXBhbmVsIiwKICAidXVpZCI6ICJxdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbEByYXl6ZXEuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDQ4Cn0="},
+    "46": {"version": "52", "sha256": "1gy80sfdja355wlazckpb50ycpgvkmzg9bc209niqp8jdk9v3qx5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZSBhIG5ldyBwYW5lbCBjb250YWluaW5nIHZvbHVtZXMgYW5kIG1lZGlhIGNvbnRyb2wgaW4gdGhlIHF1aWNrIHNldHRpbmdzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicXVpY2stc2V0dGluZ3MtYXVkaW8tcGFuZWxAcmF5emVxLmdpdGh1Yi5pbyIsCiAgIm5hbWUiOiAiUXVpY2sgU2V0dGluZ3MgQXVkaW8gUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucXVpY2stc2V0dGluZ3MtYXVkaW8tcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmF5emVxL3F1aWNrLXNldHRpbmdzLWF1ZGlvLXBhbmVsIiwKICAidXVpZCI6ICJxdWljay1zZXR0aW5ncy1hdWRpby1wYW5lbEByYXl6ZXEuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDUyCn0="}
   }}
 , {"uuid": "soft-brightness-plus@joelkitching.com", "name": "Soft Brightness Plus", "pname": "soft-brightness-plus", "description": "Add or override the brightness slider to change the brightness via an alpha layer (and optionally stop using or cooperate with the exising backlight, if present).\nEither internal, external or all monitors can be dimmed.\nSee the GitHub page for details.\n\nNote that this extension will keep running on the lock screen, as you'd also want the brightness setting to apply to the lock screen as well. Please report on GitHub if this gives you any trouble.\n\nThis extension is a fork of the original 'Soft brightness' extension, and maintains support for new GNOME releases.", "link": "https://extensions.gnome.org/extension/5943/soft-brightness-plus/", "shell_version_map": {
     "38": {"version": "5", "sha256": "08i7qzs1c9ifpa9z5xdiif31jp10g4jxr0ijnn18vmcgv2pkfyln", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBvciBvdmVycmlkZSB0aGUgYnJpZ2h0bmVzcyBzbGlkZXIgdG8gY2hhbmdlIHRoZSBicmlnaHRuZXNzIHZpYSBhbiBhbHBoYSBsYXllciAoYW5kIG9wdGlvbmFsbHkgc3RvcCB1c2luZyBvciBjb29wZXJhdGUgd2l0aCB0aGUgZXhpc2luZyBiYWNrbGlnaHQsIGlmIHByZXNlbnQpLlxuRWl0aGVyIGludGVybmFsLCBleHRlcm5hbCBvciBhbGwgbW9uaXRvcnMgY2FuIGJlIGRpbW1lZC5cblNlZSB0aGUgR2l0SHViIHBhZ2UgZm9yIGRldGFpbHMuXG5cbk5vdGUgdGhhdCB0aGlzIGV4dGVuc2lvbiB3aWxsIGtlZXAgcnVubmluZyBvbiB0aGUgbG9jayBzY3JlZW4sIGFzIHlvdSdkIGFsc28gd2FudCB0aGUgYnJpZ2h0bmVzcyBzZXR0aW5nIHRvIGFwcGx5IHRvIHRoZSBsb2NrIHNjcmVlbiBhcyB3ZWxsLiBQbGVhc2UgcmVwb3J0IG9uIEdpdEh1YiBpZiB0aGlzIGdpdmVzIHlvdSBhbnkgdHJvdWJsZS5cblxuVGhpcyBleHRlbnNpb24gaXMgYSBmb3JrIG9mIHRoZSBvcmlnaW5hbCAnU29mdCBicmlnaHRuZXNzJyBleHRlbnNpb24sIGFuZCBpbmNsdWRlcyBzdXBwb3J0IGZvciBHTk9NRSA0MysuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic29mdC1icmlnaHRuZXNzLXBsdXMiLAogICJuYW1lIjogIlNvZnQgQnJpZ2h0bmVzcyBQbHVzIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1c2VyIiwKICAgICJ1bmxvY2stZGlhbG9nIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zb2Z0LWJyaWdodG5lc3MtcGx1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamtpdGNoaW5nL3NvZnQtYnJpZ2h0bmVzcy1wbHVzIiwKICAidXVpZCI6ICJzb2Z0LWJyaWdodG5lc3MtcGx1c0Bqb2Vsa2l0Y2hpbmcuY29tIiwKICAidmNzX3JldmlzaW9uIjogIjc3YjVmOTIiLAogICJ2ZXJzaW9uIjogNQp9"},
@@ -6089,8 +6134,8 @@
     "42": {"version": "5", "sha256": "08i7qzs1c9ifpa9z5xdiif31jp10g4jxr0ijnn18vmcgv2pkfyln", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBvciBvdmVycmlkZSB0aGUgYnJpZ2h0bmVzcyBzbGlkZXIgdG8gY2hhbmdlIHRoZSBicmlnaHRuZXNzIHZpYSBhbiBhbHBoYSBsYXllciAoYW5kIG9wdGlvbmFsbHkgc3RvcCB1c2luZyBvciBjb29wZXJhdGUgd2l0aCB0aGUgZXhpc2luZyBiYWNrbGlnaHQsIGlmIHByZXNlbnQpLlxuRWl0aGVyIGludGVybmFsLCBleHRlcm5hbCBvciBhbGwgbW9uaXRvcnMgY2FuIGJlIGRpbW1lZC5cblNlZSB0aGUgR2l0SHViIHBhZ2UgZm9yIGRldGFpbHMuXG5cbk5vdGUgdGhhdCB0aGlzIGV4dGVuc2lvbiB3aWxsIGtlZXAgcnVubmluZyBvbiB0aGUgbG9jayBzY3JlZW4sIGFzIHlvdSdkIGFsc28gd2FudCB0aGUgYnJpZ2h0bmVzcyBzZXR0aW5nIHRvIGFwcGx5IHRvIHRoZSBsb2NrIHNjcmVlbiBhcyB3ZWxsLiBQbGVhc2UgcmVwb3J0IG9uIEdpdEh1YiBpZiB0aGlzIGdpdmVzIHlvdSBhbnkgdHJvdWJsZS5cblxuVGhpcyBleHRlbnNpb24gaXMgYSBmb3JrIG9mIHRoZSBvcmlnaW5hbCAnU29mdCBicmlnaHRuZXNzJyBleHRlbnNpb24sIGFuZCBpbmNsdWRlcyBzdXBwb3J0IGZvciBHTk9NRSA0MysuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic29mdC1icmlnaHRuZXNzLXBsdXMiLAogICJuYW1lIjogIlNvZnQgQnJpZ2h0bmVzcyBQbHVzIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1c2VyIiwKICAgICJ1bmxvY2stZGlhbG9nIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zb2Z0LWJyaWdodG5lc3MtcGx1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamtpdGNoaW5nL3NvZnQtYnJpZ2h0bmVzcy1wbHVzIiwKICAidXVpZCI6ICJzb2Z0LWJyaWdodG5lc3MtcGx1c0Bqb2Vsa2l0Y2hpbmcuY29tIiwKICAidmNzX3JldmlzaW9uIjogIjc3YjVmOTIiLAogICJ2ZXJzaW9uIjogNQp9"},
     "43": {"version": "5", "sha256": "08i7qzs1c9ifpa9z5xdiif31jp10g4jxr0ijnn18vmcgv2pkfyln", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBvciBvdmVycmlkZSB0aGUgYnJpZ2h0bmVzcyBzbGlkZXIgdG8gY2hhbmdlIHRoZSBicmlnaHRuZXNzIHZpYSBhbiBhbHBoYSBsYXllciAoYW5kIG9wdGlvbmFsbHkgc3RvcCB1c2luZyBvciBjb29wZXJhdGUgd2l0aCB0aGUgZXhpc2luZyBiYWNrbGlnaHQsIGlmIHByZXNlbnQpLlxuRWl0aGVyIGludGVybmFsLCBleHRlcm5hbCBvciBhbGwgbW9uaXRvcnMgY2FuIGJlIGRpbW1lZC5cblNlZSB0aGUgR2l0SHViIHBhZ2UgZm9yIGRldGFpbHMuXG5cbk5vdGUgdGhhdCB0aGlzIGV4dGVuc2lvbiB3aWxsIGtlZXAgcnVubmluZyBvbiB0aGUgbG9jayBzY3JlZW4sIGFzIHlvdSdkIGFsc28gd2FudCB0aGUgYnJpZ2h0bmVzcyBzZXR0aW5nIHRvIGFwcGx5IHRvIHRoZSBsb2NrIHNjcmVlbiBhcyB3ZWxsLiBQbGVhc2UgcmVwb3J0IG9uIEdpdEh1YiBpZiB0aGlzIGdpdmVzIHlvdSBhbnkgdHJvdWJsZS5cblxuVGhpcyBleHRlbnNpb24gaXMgYSBmb3JrIG9mIHRoZSBvcmlnaW5hbCAnU29mdCBicmlnaHRuZXNzJyBleHRlbnNpb24sIGFuZCBpbmNsdWRlcyBzdXBwb3J0IGZvciBHTk9NRSA0MysuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic29mdC1icmlnaHRuZXNzLXBsdXMiLAogICJuYW1lIjogIlNvZnQgQnJpZ2h0bmVzcyBQbHVzIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1c2VyIiwKICAgICJ1bmxvY2stZGlhbG9nIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zb2Z0LWJyaWdodG5lc3MtcGx1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamtpdGNoaW5nL3NvZnQtYnJpZ2h0bmVzcy1wbHVzIiwKICAidXVpZCI6ICJzb2Z0LWJyaWdodG5lc3MtcGx1c0Bqb2Vsa2l0Y2hpbmcuY29tIiwKICAidmNzX3JldmlzaW9uIjogIjc3YjVmOTIiLAogICJ2ZXJzaW9uIjogNQp9"},
     "44": {"version": "5", "sha256": "08i7qzs1c9ifpa9z5xdiif31jp10g4jxr0ijnn18vmcgv2pkfyln", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBvciBvdmVycmlkZSB0aGUgYnJpZ2h0bmVzcyBzbGlkZXIgdG8gY2hhbmdlIHRoZSBicmlnaHRuZXNzIHZpYSBhbiBhbHBoYSBsYXllciAoYW5kIG9wdGlvbmFsbHkgc3RvcCB1c2luZyBvciBjb29wZXJhdGUgd2l0aCB0aGUgZXhpc2luZyBiYWNrbGlnaHQsIGlmIHByZXNlbnQpLlxuRWl0aGVyIGludGVybmFsLCBleHRlcm5hbCBvciBhbGwgbW9uaXRvcnMgY2FuIGJlIGRpbW1lZC5cblNlZSB0aGUgR2l0SHViIHBhZ2UgZm9yIGRldGFpbHMuXG5cbk5vdGUgdGhhdCB0aGlzIGV4dGVuc2lvbiB3aWxsIGtlZXAgcnVubmluZyBvbiB0aGUgbG9jayBzY3JlZW4sIGFzIHlvdSdkIGFsc28gd2FudCB0aGUgYnJpZ2h0bmVzcyBzZXR0aW5nIHRvIGFwcGx5IHRvIHRoZSBsb2NrIHNjcmVlbiBhcyB3ZWxsLiBQbGVhc2UgcmVwb3J0IG9uIEdpdEh1YiBpZiB0aGlzIGdpdmVzIHlvdSBhbnkgdHJvdWJsZS5cblxuVGhpcyBleHRlbnNpb24gaXMgYSBmb3JrIG9mIHRoZSBvcmlnaW5hbCAnU29mdCBicmlnaHRuZXNzJyBleHRlbnNpb24sIGFuZCBpbmNsdWRlcyBzdXBwb3J0IGZvciBHTk9NRSA0MysuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic29mdC1icmlnaHRuZXNzLXBsdXMiLAogICJuYW1lIjogIlNvZnQgQnJpZ2h0bmVzcyBQbHVzIiwKICAic2Vzc2lvbi1tb2RlcyI6IFsKICAgICJ1c2VyIiwKICAgICJ1bmxvY2stZGlhbG9nIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zb2Z0LWJyaWdodG5lc3MtcGx1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamtpdGNoaW5nL3NvZnQtYnJpZ2h0bmVzcy1wbHVzIiwKICAidXVpZCI6ICJzb2Z0LWJyaWdodG5lc3MtcGx1c0Bqb2Vsa2l0Y2hpbmcuY29tIiwKICAidmNzX3JldmlzaW9uIjogIjc3YjVmOTIiLAogICJ2ZXJzaW9uIjogNQp9"},
-    "45": {"version": "18", "sha256": "0x7378p3srqwria4b8qwag7lqvdjvxyd3q8m67b8285ndspc9y8s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBvciBvdmVycmlkZSB0aGUgYnJpZ2h0bmVzcyBzbGlkZXIgdG8gY2hhbmdlIHRoZSBicmlnaHRuZXNzIHZpYSBhbiBhbHBoYSBsYXllciAoYW5kIG9wdGlvbmFsbHkgc3RvcCB1c2luZyBvciBjb29wZXJhdGUgd2l0aCB0aGUgZXhpc2luZyBiYWNrbGlnaHQsIGlmIHByZXNlbnQpLlxuRWl0aGVyIGludGVybmFsLCBleHRlcm5hbCBvciBhbGwgbW9uaXRvcnMgY2FuIGJlIGRpbW1lZC5cblNlZSB0aGUgR2l0SHViIHBhZ2UgZm9yIGRldGFpbHMuXG5cbk5vdGUgdGhhdCB0aGlzIGV4dGVuc2lvbiB3aWxsIGtlZXAgcnVubmluZyBvbiB0aGUgbG9jayBzY3JlZW4sIGFzIHlvdSdkIGFsc28gd2FudCB0aGUgYnJpZ2h0bmVzcyBzZXR0aW5nIHRvIGFwcGx5IHRvIHRoZSBsb2NrIHNjcmVlbiBhcyB3ZWxsLiBQbGVhc2UgcmVwb3J0IG9uIEdpdEh1YiBpZiB0aGlzIGdpdmVzIHlvdSBhbnkgdHJvdWJsZS5cblxuVGhpcyBleHRlbnNpb24gaXMgYSBmb3JrIG9mIHRoZSBvcmlnaW5hbCAnU29mdCBicmlnaHRuZXNzJyBleHRlbnNpb24sIGFuZCBtYWludGFpbnMgc3VwcG9ydCBmb3IgbmV3IEdOT01FIHJlbGVhc2VzLiIsCiAgImdldHRleHQtZG9tYWluIjogInNvZnQtYnJpZ2h0bmVzcy1wbHVzIiwKICAibmFtZSI6ICJTb2Z0IEJyaWdodG5lc3MgUGx1cyIsCiAgInNlc3Npb24tbW9kZXMiOiBbCiAgICAidW5sb2NrLWRpYWxvZyIsCiAgICAidXNlciIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc29mdC1icmlnaHRuZXNzLXBsdXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2praXRjaGluZy9zb2Z0LWJyaWdodG5lc3MtcGx1cyIsCiAgInV1aWQiOiAic29mdC1icmlnaHRuZXNzLXBsdXNAam9lbGtpdGNoaW5nLmNvbSIsCiAgInZjc19yZXZpc2lvbiI6ICI3YzRhOWM5IiwKICAidmVyc2lvbiI6IDE4Cn0="},
-    "46": {"version": "18", "sha256": "0x7378p3srqwria4b8qwag7lqvdjvxyd3q8m67b8285ndspc9y8s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBvciBvdmVycmlkZSB0aGUgYnJpZ2h0bmVzcyBzbGlkZXIgdG8gY2hhbmdlIHRoZSBicmlnaHRuZXNzIHZpYSBhbiBhbHBoYSBsYXllciAoYW5kIG9wdGlvbmFsbHkgc3RvcCB1c2luZyBvciBjb29wZXJhdGUgd2l0aCB0aGUgZXhpc2luZyBiYWNrbGlnaHQsIGlmIHByZXNlbnQpLlxuRWl0aGVyIGludGVybmFsLCBleHRlcm5hbCBvciBhbGwgbW9uaXRvcnMgY2FuIGJlIGRpbW1lZC5cblNlZSB0aGUgR2l0SHViIHBhZ2UgZm9yIGRldGFpbHMuXG5cbk5vdGUgdGhhdCB0aGlzIGV4dGVuc2lvbiB3aWxsIGtlZXAgcnVubmluZyBvbiB0aGUgbG9jayBzY3JlZW4sIGFzIHlvdSdkIGFsc28gd2FudCB0aGUgYnJpZ2h0bmVzcyBzZXR0aW5nIHRvIGFwcGx5IHRvIHRoZSBsb2NrIHNjcmVlbiBhcyB3ZWxsLiBQbGVhc2UgcmVwb3J0IG9uIEdpdEh1YiBpZiB0aGlzIGdpdmVzIHlvdSBhbnkgdHJvdWJsZS5cblxuVGhpcyBleHRlbnNpb24gaXMgYSBmb3JrIG9mIHRoZSBvcmlnaW5hbCAnU29mdCBicmlnaHRuZXNzJyBleHRlbnNpb24sIGFuZCBtYWludGFpbnMgc3VwcG9ydCBmb3IgbmV3IEdOT01FIHJlbGVhc2VzLiIsCiAgImdldHRleHQtZG9tYWluIjogInNvZnQtYnJpZ2h0bmVzcy1wbHVzIiwKICAibmFtZSI6ICJTb2Z0IEJyaWdodG5lc3MgUGx1cyIsCiAgInNlc3Npb24tbW9kZXMiOiBbCiAgICAidW5sb2NrLWRpYWxvZyIsCiAgICAidXNlciIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc29mdC1icmlnaHRuZXNzLXBsdXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2praXRjaGluZy9zb2Z0LWJyaWdodG5lc3MtcGx1cyIsCiAgInV1aWQiOiAic29mdC1icmlnaHRuZXNzLXBsdXNAam9lbGtpdGNoaW5nLmNvbSIsCiAgInZjc19yZXZpc2lvbiI6ICI3YzRhOWM5IiwKICAidmVyc2lvbiI6IDE4Cn0="}
+    "45": {"version": "19", "sha256": "18bc53i0p9ncqrvxbkrlqisf9p19bphf5l9ii8zj923siikzivvk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBvciBvdmVycmlkZSB0aGUgYnJpZ2h0bmVzcyBzbGlkZXIgdG8gY2hhbmdlIHRoZSBicmlnaHRuZXNzIHZpYSBhbiBhbHBoYSBsYXllciAoYW5kIG9wdGlvbmFsbHkgc3RvcCB1c2luZyBvciBjb29wZXJhdGUgd2l0aCB0aGUgZXhpc2luZyBiYWNrbGlnaHQsIGlmIHByZXNlbnQpLlxuRWl0aGVyIGludGVybmFsLCBleHRlcm5hbCBvciBhbGwgbW9uaXRvcnMgY2FuIGJlIGRpbW1lZC5cblNlZSB0aGUgR2l0SHViIHBhZ2UgZm9yIGRldGFpbHMuXG5cbk5vdGUgdGhhdCB0aGlzIGV4dGVuc2lvbiB3aWxsIGtlZXAgcnVubmluZyBvbiB0aGUgbG9jayBzY3JlZW4sIGFzIHlvdSdkIGFsc28gd2FudCB0aGUgYnJpZ2h0bmVzcyBzZXR0aW5nIHRvIGFwcGx5IHRvIHRoZSBsb2NrIHNjcmVlbiBhcyB3ZWxsLiBQbGVhc2UgcmVwb3J0IG9uIEdpdEh1YiBpZiB0aGlzIGdpdmVzIHlvdSBhbnkgdHJvdWJsZS5cblxuVGhpcyBleHRlbnNpb24gaXMgYSBmb3JrIG9mIHRoZSBvcmlnaW5hbCAnU29mdCBicmlnaHRuZXNzJyBleHRlbnNpb24sIGFuZCBtYWludGFpbnMgc3VwcG9ydCBmb3IgbmV3IEdOT01FIHJlbGVhc2VzLiIsCiAgImdldHRleHQtZG9tYWluIjogInNvZnQtYnJpZ2h0bmVzcy1wbHVzIiwKICAibmFtZSI6ICJTb2Z0IEJyaWdodG5lc3MgUGx1cyIsCiAgInNlc3Npb24tbW9kZXMiOiBbCiAgICAidW5sb2NrLWRpYWxvZyIsCiAgICAidXNlciIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc29mdC1icmlnaHRuZXNzLXBsdXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2praXRjaGluZy9zb2Z0LWJyaWdodG5lc3MtcGx1cyIsCiAgInV1aWQiOiAic29mdC1icmlnaHRuZXNzLXBsdXNAam9lbGtpdGNoaW5nLmNvbSIsCiAgInZjc19yZXZpc2lvbiI6ICJ2MzktNC1nNzY4ZjZiNSIsCiAgInZlcnNpb24iOiAxOQp9"},
+    "46": {"version": "19", "sha256": "18bc53i0p9ncqrvxbkrlqisf9p19bphf5l9ii8zj923siikzivvk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBvciBvdmVycmlkZSB0aGUgYnJpZ2h0bmVzcyBzbGlkZXIgdG8gY2hhbmdlIHRoZSBicmlnaHRuZXNzIHZpYSBhbiBhbHBoYSBsYXllciAoYW5kIG9wdGlvbmFsbHkgc3RvcCB1c2luZyBvciBjb29wZXJhdGUgd2l0aCB0aGUgZXhpc2luZyBiYWNrbGlnaHQsIGlmIHByZXNlbnQpLlxuRWl0aGVyIGludGVybmFsLCBleHRlcm5hbCBvciBhbGwgbW9uaXRvcnMgY2FuIGJlIGRpbW1lZC5cblNlZSB0aGUgR2l0SHViIHBhZ2UgZm9yIGRldGFpbHMuXG5cbk5vdGUgdGhhdCB0aGlzIGV4dGVuc2lvbiB3aWxsIGtlZXAgcnVubmluZyBvbiB0aGUgbG9jayBzY3JlZW4sIGFzIHlvdSdkIGFsc28gd2FudCB0aGUgYnJpZ2h0bmVzcyBzZXR0aW5nIHRvIGFwcGx5IHRvIHRoZSBsb2NrIHNjcmVlbiBhcyB3ZWxsLiBQbGVhc2UgcmVwb3J0IG9uIEdpdEh1YiBpZiB0aGlzIGdpdmVzIHlvdSBhbnkgdHJvdWJsZS5cblxuVGhpcyBleHRlbnNpb24gaXMgYSBmb3JrIG9mIHRoZSBvcmlnaW5hbCAnU29mdCBicmlnaHRuZXNzJyBleHRlbnNpb24sIGFuZCBtYWludGFpbnMgc3VwcG9ydCBmb3IgbmV3IEdOT01FIHJlbGVhc2VzLiIsCiAgImdldHRleHQtZG9tYWluIjogInNvZnQtYnJpZ2h0bmVzcy1wbHVzIiwKICAibmFtZSI6ICJTb2Z0IEJyaWdodG5lc3MgUGx1cyIsCiAgInNlc3Npb24tbW9kZXMiOiBbCiAgICAidW5sb2NrLWRpYWxvZyIsCiAgICAidXNlciIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc29mdC1icmlnaHRuZXNzLXBsdXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2praXRjaGluZy9zb2Z0LWJyaWdodG5lc3MtcGx1cyIsCiAgInV1aWQiOiAic29mdC1icmlnaHRuZXNzLXBsdXNAam9lbGtpdGNoaW5nLmNvbSIsCiAgInZjc19yZXZpc2lvbiI6ICJ2MzktNC1nNzY4ZjZiNSIsCiAgInZlcnNpb24iOiAxOQp9"}
   }}
 , {"uuid": "swatch-clock@okatotf.github.io", "name": "Swatch Clock", "pname": "swatch-clock", "description": "An extension which displays the Swatch Internet Time on the panel.", "link": "https://extensions.gnome.org/extension/5946/swatch-clock/", "shell_version_map": {
     "44": {"version": "2", "sha256": "131rlf6q1w6jxz95j8yf3vpi40y80p1rjax5b2mapm6ppasdlkl2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGV4dGVuc2lvbiB3aGljaCBkaXNwbGF5cyB0aGUgU3dhdGNoIEludGVybmV0IFRpbWUgb24gdGhlIHBhbmVsLiIsCiAgIm5hbWUiOiAiU3dhdGNoIENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL29rYXRvdGYvc3dhdGNoLWNsb2NrIiwKICAidXVpZCI6ICJzd2F0Y2gtY2xvY2tAb2thdG90Zi5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMgp9"}
@@ -6122,8 +6167,8 @@
     "42": {"version": "13", "sha256": "1qmwvsv7g5lh7yri6m8c3r18zhvr6bh2wcchlgydyzfdkdsvjpid", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSBzaW1wbGUgd29ya3NwYWNlIGluZGljYXRvciBzaG93aW5nIGljb25zIG9mIGFwcHMgb3BlbiBpbiBpdC5cblxuRmVhdHVyZXM6XG5cbi0gU2hvdyBhIHNpbXBsZSBpbmRpY2F0b3IgdG8gZGlzcGxheSB3b3Jrc3BhY2VzIGFuZCBhcHBzIG9wZW4gaW4gaXRcbi0gU3VwcG9ydCBmb3IgZHJhZyBhbmQgZHJvcDogY2hhbmdlIGFuIGFwcGxpY2F0aW9uIHdvcmtzcGFjZSBqdXN0IGRyYWdnaW5nIGl0cyBpY29uXG4tIFJpZ2h0L0xlZnQgY2xpY2sgdG8gZm9jdXMgYXBwbGljYXRpb24sIE1pZGRsZSBjbGljayB0byBjbG9zZVxuLSBXb3Jrc3BhY2VzIHNjcm9sbGluZzogY2hhbmdlIGFjdGl2ZSB3b3Jrc3BhY2Ugc2Nyb2xsaW5nIGhvdmVyIHRoZSBpbmRpY2F0b3Jcbi0gU3VwcG9ydCBmb3IgbXVsdGlwbGUgbW9uaXRvciAoZm9yIGJvdGggc3RhdGljIGFuZCBkeW5hbWljIHdvcmtzcGFjZXMpXG4tIFJlbmFtZSB3b3Jrc3BhY2VzIGRpcmVjdGx5IGZyb20gdGhlIGV4dGVuc2lvbiAoYWN0aXZhdGUgaW4gc2V0dGluZ3MpXG5cbkN1c3RvbWl6YXRpb246XG5cbi0gSW5kaWNhdG9yIHBvc2l0aW9uXG4tIFNjcm9sbCBkaXJlY3Rpb24gKG5vcm1hbCBvciBpbnZlcnNlKVxuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICdtaWRkbGUgY2xpY2sgdG8gY2xvc2UgYXBwJ1xuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICd3b3Jrc3BhY2UgaW5kaWNhdG9yJ1xuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICdhcHAgaW5kaWNhdG9yJ1xuLSBDdXN0b21pemUgaW5kaWNhdG9yIGNvbG9yXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ3JvdW5kIGJvcmRlcnMnXG4tIFNob3cvSGlkZSB3b3Jrc3BhY2VzIG5hbWVzXG4tIFNob3cvSGlkZSBlbXB0eSB3b3Jrc3BhY2VzXG4tIEN1c3RvbWl6ZSBhcHBzIG9uIGFsbCB3b3Jrc3BhY2VzIHRleHQgaW5kaWNhdG9yXG4tIERlc2F0dXJhdGUgYWxsIGljb25zXG4tIE5vIGVmZmVjdC9SZWR1Y2Ugb3BhY2l0eS9EZXNhdHVyYXRlIGZvciBib3RoIG1pbmltaXplZCBhbmQgaW5hY3RpdmUgYXBwc1xuLSBMaW1pdCBpY29ucyBwZXIgd29ya3NwYWNlXG4tIEdyb3VwIGljb25zIG9mIHNhbWUgYXBwbGljYXRpb25cbiIsCiAgIm5hbWUiOiAiV29ya3NwYWNlcyBpbmRpY2F0b3IgYnkgb3BlbiBhcHBzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRmF2bzAyL3dvcmtzcGFjZXMtYnktb3Blbi1hcHBzIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2VzLWJ5LW9wZW4tYXBwc0BmYXZvMDIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"},
     "43": {"version": "13", "sha256": "1qmwvsv7g5lh7yri6m8c3r18zhvr6bh2wcchlgydyzfdkdsvjpid", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSBzaW1wbGUgd29ya3NwYWNlIGluZGljYXRvciBzaG93aW5nIGljb25zIG9mIGFwcHMgb3BlbiBpbiBpdC5cblxuRmVhdHVyZXM6XG5cbi0gU2hvdyBhIHNpbXBsZSBpbmRpY2F0b3IgdG8gZGlzcGxheSB3b3Jrc3BhY2VzIGFuZCBhcHBzIG9wZW4gaW4gaXRcbi0gU3VwcG9ydCBmb3IgZHJhZyBhbmQgZHJvcDogY2hhbmdlIGFuIGFwcGxpY2F0aW9uIHdvcmtzcGFjZSBqdXN0IGRyYWdnaW5nIGl0cyBpY29uXG4tIFJpZ2h0L0xlZnQgY2xpY2sgdG8gZm9jdXMgYXBwbGljYXRpb24sIE1pZGRsZSBjbGljayB0byBjbG9zZVxuLSBXb3Jrc3BhY2VzIHNjcm9sbGluZzogY2hhbmdlIGFjdGl2ZSB3b3Jrc3BhY2Ugc2Nyb2xsaW5nIGhvdmVyIHRoZSBpbmRpY2F0b3Jcbi0gU3VwcG9ydCBmb3IgbXVsdGlwbGUgbW9uaXRvciAoZm9yIGJvdGggc3RhdGljIGFuZCBkeW5hbWljIHdvcmtzcGFjZXMpXG4tIFJlbmFtZSB3b3Jrc3BhY2VzIGRpcmVjdGx5IGZyb20gdGhlIGV4dGVuc2lvbiAoYWN0aXZhdGUgaW4gc2V0dGluZ3MpXG5cbkN1c3RvbWl6YXRpb246XG5cbi0gSW5kaWNhdG9yIHBvc2l0aW9uXG4tIFNjcm9sbCBkaXJlY3Rpb24gKG5vcm1hbCBvciBpbnZlcnNlKVxuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICdtaWRkbGUgY2xpY2sgdG8gY2xvc2UgYXBwJ1xuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICd3b3Jrc3BhY2UgaW5kaWNhdG9yJ1xuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICdhcHAgaW5kaWNhdG9yJ1xuLSBDdXN0b21pemUgaW5kaWNhdG9yIGNvbG9yXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ3JvdW5kIGJvcmRlcnMnXG4tIFNob3cvSGlkZSB3b3Jrc3BhY2VzIG5hbWVzXG4tIFNob3cvSGlkZSBlbXB0eSB3b3Jrc3BhY2VzXG4tIEN1c3RvbWl6ZSBhcHBzIG9uIGFsbCB3b3Jrc3BhY2VzIHRleHQgaW5kaWNhdG9yXG4tIERlc2F0dXJhdGUgYWxsIGljb25zXG4tIE5vIGVmZmVjdC9SZWR1Y2Ugb3BhY2l0eS9EZXNhdHVyYXRlIGZvciBib3RoIG1pbmltaXplZCBhbmQgaW5hY3RpdmUgYXBwc1xuLSBMaW1pdCBpY29ucyBwZXIgd29ya3NwYWNlXG4tIEdyb3VwIGljb25zIG9mIHNhbWUgYXBwbGljYXRpb25cbiIsCiAgIm5hbWUiOiAiV29ya3NwYWNlcyBpbmRpY2F0b3IgYnkgb3BlbiBhcHBzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRmF2bzAyL3dvcmtzcGFjZXMtYnktb3Blbi1hcHBzIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2VzLWJ5LW9wZW4tYXBwc0BmYXZvMDIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"},
     "44": {"version": "13", "sha256": "1qmwvsv7g5lh7yri6m8c3r18zhvr6bh2wcchlgydyzfdkdsvjpid", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSBzaW1wbGUgd29ya3NwYWNlIGluZGljYXRvciBzaG93aW5nIGljb25zIG9mIGFwcHMgb3BlbiBpbiBpdC5cblxuRmVhdHVyZXM6XG5cbi0gU2hvdyBhIHNpbXBsZSBpbmRpY2F0b3IgdG8gZGlzcGxheSB3b3Jrc3BhY2VzIGFuZCBhcHBzIG9wZW4gaW4gaXRcbi0gU3VwcG9ydCBmb3IgZHJhZyBhbmQgZHJvcDogY2hhbmdlIGFuIGFwcGxpY2F0aW9uIHdvcmtzcGFjZSBqdXN0IGRyYWdnaW5nIGl0cyBpY29uXG4tIFJpZ2h0L0xlZnQgY2xpY2sgdG8gZm9jdXMgYXBwbGljYXRpb24sIE1pZGRsZSBjbGljayB0byBjbG9zZVxuLSBXb3Jrc3BhY2VzIHNjcm9sbGluZzogY2hhbmdlIGFjdGl2ZSB3b3Jrc3BhY2Ugc2Nyb2xsaW5nIGhvdmVyIHRoZSBpbmRpY2F0b3Jcbi0gU3VwcG9ydCBmb3IgbXVsdGlwbGUgbW9uaXRvciAoZm9yIGJvdGggc3RhdGljIGFuZCBkeW5hbWljIHdvcmtzcGFjZXMpXG4tIFJlbmFtZSB3b3Jrc3BhY2VzIGRpcmVjdGx5IGZyb20gdGhlIGV4dGVuc2lvbiAoYWN0aXZhdGUgaW4gc2V0dGluZ3MpXG5cbkN1c3RvbWl6YXRpb246XG5cbi0gSW5kaWNhdG9yIHBvc2l0aW9uXG4tIFNjcm9sbCBkaXJlY3Rpb24gKG5vcm1hbCBvciBpbnZlcnNlKVxuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICdtaWRkbGUgY2xpY2sgdG8gY2xvc2UgYXBwJ1xuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICd3b3Jrc3BhY2UgaW5kaWNhdG9yJ1xuLSBBY3RpdmF0ZS9kZWFjdGl2YXRlICdhcHAgaW5kaWNhdG9yJ1xuLSBDdXN0b21pemUgaW5kaWNhdG9yIGNvbG9yXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ3JvdW5kIGJvcmRlcnMnXG4tIFNob3cvSGlkZSB3b3Jrc3BhY2VzIG5hbWVzXG4tIFNob3cvSGlkZSBlbXB0eSB3b3Jrc3BhY2VzXG4tIEN1c3RvbWl6ZSBhcHBzIG9uIGFsbCB3b3Jrc3BhY2VzIHRleHQgaW5kaWNhdG9yXG4tIERlc2F0dXJhdGUgYWxsIGljb25zXG4tIE5vIGVmZmVjdC9SZWR1Y2Ugb3BhY2l0eS9EZXNhdHVyYXRlIGZvciBib3RoIG1pbmltaXplZCBhbmQgaW5hY3RpdmUgYXBwc1xuLSBMaW1pdCBpY29ucyBwZXIgd29ya3NwYWNlXG4tIEdyb3VwIGljb25zIG9mIHNhbWUgYXBwbGljYXRpb25cbiIsCiAgIm5hbWUiOiAiV29ya3NwYWNlcyBpbmRpY2F0b3IgYnkgb3BlbiBhcHBzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRmF2bzAyL3dvcmtzcGFjZXMtYnktb3Blbi1hcHBzIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2VzLWJ5LW9wZW4tYXBwc0BmYXZvMDIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"},
-    "45": {"version": "15", "sha256": "1z248a0rd5zj623brc1lb3c9al3yp7ph9yzx091pcgq6hs0by49x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSBzaW1wbGUgd29ya3NwYWNlIGluZGljYXRvciBzaG93aW5nIGljb25zIG9mIGFwcHMgb3BlbiBpbiBpdC5cblxuRmVhdHVyZXM6XG5cbi0gU2hvdyBhIHNpbXBsZSBpbmRpY2F0b3IgdG8gZGlzcGxheSB3b3Jrc3BhY2VzIGFuZCBhcHBzIG9wZW4gaW4gaXRcbi0gU3VwcG9ydCBmb3IgZHJhZyBhbmQgZHJvcDogY2hhbmdlIGFuIGFwcGxpY2F0aW9uIHdvcmtzcGFjZSBqdXN0IGRyYWdnaW5nIGl0cyBpY29uXG4tIFJpZ2h0L0xlZnQgY2xpY2sgdG8gZm9jdXMvbWluaW1pemUgYXBwbGljYXRpb24sIE1pZGRsZSBjbGljayB0byBjbG9zZVxuLSBXb3Jrc3BhY2VzIHNjcm9sbGluZzogY2hhbmdlIGFjdGl2ZSB3b3Jrc3BhY2Ugc2Nyb2xsaW5nIGhvdmVyIHRoZSBpbmRpY2F0b3Jcbi0gU3VwcG9ydCBmb3IgbXVsdGlwbGUgbW9uaXRvciAoZm9yIGJvdGggc3RhdGljIGFuZCBkeW5hbWljIHdvcmtzcGFjZXMpXG4tIFJlbmFtZSB3b3Jrc3BhY2VzIGRpcmVjdGx5IGZyb20gdGhlIGV4dGVuc2lvbiAoYWN0aXZhdGUgaW4gc2V0dGluZ3MpXG4tIEhpZGUvc2hvdyBHTk9NRSBkZWZhdWx0IHdvcmtzcGFjZSBpbmRpY2F0b3IgKGZvcm1lciBhY3Rpdml0aWVzIGJ1dHRvbilcblxuQ3VzdG9taXphdGlvbjpcblxuLSBJbmRpY2F0b3IgcG9zaXRpb25cbi0gTW91c2Ugc2Nyb2xsIGRpcmVjdGlvbiAobm9ybWFsIG9yIGludmVyc2UpXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ21pZGRsZSBjbGljayB0byBjbG9zZSBhcHAnXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ2NsaWNrIG9uIGFjdGl2ZSB3b3Jrc3BhY2UgdG8gb3ZlcnZpZXcnXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ2NsaWNrIG9uIGZvY3VzZWQgYXBwbGljYXRpb24gdG8gbWluaW1pemUnXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ3dvcmtzcGFjZSBpbmRpY2F0b3InXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ2FwcCBpbmRpY2F0b3InXG4tIEN1c3RvbWl6ZSBpbmRpY2F0b3IgY29sb3Jcbi0gQWN0aXZhdGUvZGVhY3RpdmF0ZSAncm91bmQgYm9yZGVycydcbi0gU2hvdy9IaWRlIHdvcmtzcGFjZXMgbmFtZXNcbi0gU2hvdy9IaWRlIGVtcHR5IHdvcmtzcGFjZXNcbi0gQ3VzdG9taXplIGFwcHMgb24gYWxsIHdvcmtzcGFjZXMgdGV4dCBpbmRpY2F0b3Jcbi0gRGVzYXR1cmF0ZSBhbGwgaWNvbnNcbi0gTm8gZWZmZWN0L1JlZHVjZSBvcGFjaXR5L0Rlc2F0dXJhdGUgZm9yIGJvdGggbWluaW1pemVkIGFuZCBpbmFjdGl2ZSBhcHBzXG4tIExpbWl0IGljb25zIHBlciB3b3Jrc3BhY2Vcbi0gR3JvdXAgaWNvbnMgb2Ygc2FtZSBhcHBsaWNhdGlvblxuLSBJZ25vcmUgYXBwbGljYXRpb25zICh3aXRoIHJlZ2V4KSIsCiAgIm5hbWUiOiAiV29ya3NwYWNlcyBpbmRpY2F0b3IgYnkgb3BlbiBhcHBzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmtzcGFjZXMtaW5kaWNhdG9yLWJ5LW9wZW4tYXBwcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRmF2bzAyL3dvcmtzcGFjZXMtYnktb3Blbi1hcHBzIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2VzLWJ5LW9wZW4tYXBwc0BmYXZvMDIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"},
-    "46": {"version": "15", "sha256": "1z248a0rd5zj623brc1lb3c9al3yp7ph9yzx091pcgq6hs0by49x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSBzaW1wbGUgd29ya3NwYWNlIGluZGljYXRvciBzaG93aW5nIGljb25zIG9mIGFwcHMgb3BlbiBpbiBpdC5cblxuRmVhdHVyZXM6XG5cbi0gU2hvdyBhIHNpbXBsZSBpbmRpY2F0b3IgdG8gZGlzcGxheSB3b3Jrc3BhY2VzIGFuZCBhcHBzIG9wZW4gaW4gaXRcbi0gU3VwcG9ydCBmb3IgZHJhZyBhbmQgZHJvcDogY2hhbmdlIGFuIGFwcGxpY2F0aW9uIHdvcmtzcGFjZSBqdXN0IGRyYWdnaW5nIGl0cyBpY29uXG4tIFJpZ2h0L0xlZnQgY2xpY2sgdG8gZm9jdXMvbWluaW1pemUgYXBwbGljYXRpb24sIE1pZGRsZSBjbGljayB0byBjbG9zZVxuLSBXb3Jrc3BhY2VzIHNjcm9sbGluZzogY2hhbmdlIGFjdGl2ZSB3b3Jrc3BhY2Ugc2Nyb2xsaW5nIGhvdmVyIHRoZSBpbmRpY2F0b3Jcbi0gU3VwcG9ydCBmb3IgbXVsdGlwbGUgbW9uaXRvciAoZm9yIGJvdGggc3RhdGljIGFuZCBkeW5hbWljIHdvcmtzcGFjZXMpXG4tIFJlbmFtZSB3b3Jrc3BhY2VzIGRpcmVjdGx5IGZyb20gdGhlIGV4dGVuc2lvbiAoYWN0aXZhdGUgaW4gc2V0dGluZ3MpXG4tIEhpZGUvc2hvdyBHTk9NRSBkZWZhdWx0IHdvcmtzcGFjZSBpbmRpY2F0b3IgKGZvcm1lciBhY3Rpdml0aWVzIGJ1dHRvbilcblxuQ3VzdG9taXphdGlvbjpcblxuLSBJbmRpY2F0b3IgcG9zaXRpb25cbi0gTW91c2Ugc2Nyb2xsIGRpcmVjdGlvbiAobm9ybWFsIG9yIGludmVyc2UpXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ21pZGRsZSBjbGljayB0byBjbG9zZSBhcHAnXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ2NsaWNrIG9uIGFjdGl2ZSB3b3Jrc3BhY2UgdG8gb3ZlcnZpZXcnXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ2NsaWNrIG9uIGZvY3VzZWQgYXBwbGljYXRpb24gdG8gbWluaW1pemUnXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ3dvcmtzcGFjZSBpbmRpY2F0b3InXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ2FwcCBpbmRpY2F0b3InXG4tIEN1c3RvbWl6ZSBpbmRpY2F0b3IgY29sb3Jcbi0gQWN0aXZhdGUvZGVhY3RpdmF0ZSAncm91bmQgYm9yZGVycydcbi0gU2hvdy9IaWRlIHdvcmtzcGFjZXMgbmFtZXNcbi0gU2hvdy9IaWRlIGVtcHR5IHdvcmtzcGFjZXNcbi0gQ3VzdG9taXplIGFwcHMgb24gYWxsIHdvcmtzcGFjZXMgdGV4dCBpbmRpY2F0b3Jcbi0gRGVzYXR1cmF0ZSBhbGwgaWNvbnNcbi0gTm8gZWZmZWN0L1JlZHVjZSBvcGFjaXR5L0Rlc2F0dXJhdGUgZm9yIGJvdGggbWluaW1pemVkIGFuZCBpbmFjdGl2ZSBhcHBzXG4tIExpbWl0IGljb25zIHBlciB3b3Jrc3BhY2Vcbi0gR3JvdXAgaWNvbnMgb2Ygc2FtZSBhcHBsaWNhdGlvblxuLSBJZ25vcmUgYXBwbGljYXRpb25zICh3aXRoIHJlZ2V4KSIsCiAgIm5hbWUiOiAiV29ya3NwYWNlcyBpbmRpY2F0b3IgYnkgb3BlbiBhcHBzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmtzcGFjZXMtaW5kaWNhdG9yLWJ5LW9wZW4tYXBwcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRmF2bzAyL3dvcmtzcGFjZXMtYnktb3Blbi1hcHBzIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2VzLWJ5LW9wZW4tYXBwc0BmYXZvMDIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"}
+    "45": {"version": "16", "sha256": "1kgbpn8i999k5y90sz0kimc2vlaq4pnanfnrg9xf5n0inyb1mkhv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSBzaW1wbGUgd29ya3NwYWNlIGluZGljYXRvciBzaG93aW5nIGljb25zIG9mIGFwcHMgb3BlbiBpbiBpdC5cblxuRmVhdHVyZXM6XG5cbi0gU2hvdyBhIHNpbXBsZSBpbmRpY2F0b3IgdG8gZGlzcGxheSB3b3Jrc3BhY2VzIGFuZCBhcHBzIG9wZW4gaW4gaXRcbi0gU3VwcG9ydCBmb3IgZHJhZyBhbmQgZHJvcDogY2hhbmdlIGFuIGFwcGxpY2F0aW9uIHdvcmtzcGFjZSBqdXN0IGRyYWdnaW5nIGl0cyBpY29uXG4tIFJpZ2h0L0xlZnQgY2xpY2sgdG8gZm9jdXMvbWluaW1pemUgYXBwbGljYXRpb24sIE1pZGRsZSBjbGljayB0byBjbG9zZVxuLSBXb3Jrc3BhY2VzIHNjcm9sbGluZzogY2hhbmdlIGFjdGl2ZSB3b3Jrc3BhY2Ugc2Nyb2xsaW5nIGhvdmVyIHRoZSBpbmRpY2F0b3Jcbi0gU3VwcG9ydCBmb3IgbXVsdGlwbGUgbW9uaXRvciAoZm9yIGJvdGggc3RhdGljIGFuZCBkeW5hbWljIHdvcmtzcGFjZXMpXG4tIFJlbmFtZSB3b3Jrc3BhY2VzIGRpcmVjdGx5IGZyb20gdGhlIGV4dGVuc2lvbiAoYWN0aXZhdGUgaW4gc2V0dGluZ3MpXG4tIEhpZGUvc2hvdyBHTk9NRSBkZWZhdWx0IHdvcmtzcGFjZSBpbmRpY2F0b3IgKGZvcm1lciBhY3Rpdml0aWVzIGJ1dHRvbilcblxuQ3VzdG9taXphdGlvbjpcblxuLSBJbmRpY2F0b3IgcG9zaXRpb25cbi0gTW91c2Ugc2Nyb2xsIGRpcmVjdGlvbiAobm9ybWFsIG9yIGludmVyc2UpXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ21pZGRsZSBjbGljayB0byBjbG9zZSBhcHAnXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ2NsaWNrIG9uIGFjdGl2ZSB3b3Jrc3BhY2UgdG8gb3ZlcnZpZXcnXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ2NsaWNrIG9uIGZvY3VzZWQgYXBwbGljYXRpb24gdG8gbWluaW1pemUnXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ3dvcmtzcGFjZSBpbmRpY2F0b3InXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ2FwcCBpbmRpY2F0b3InXG4tIEN1c3RvbWl6ZSBpbmRpY2F0b3IgY29sb3Jcbi0gQWN0aXZhdGUvZGVhY3RpdmF0ZSAncm91bmQgYm9yZGVycydcbi0gU2hvdy9IaWRlIHdvcmtzcGFjZXMgbmFtZXNcbi0gU2hvdy9IaWRlIGVtcHR5IHdvcmtzcGFjZXNcbi0gQ3VzdG9taXplIGFwcHMgb24gYWxsIHdvcmtzcGFjZXMgdGV4dCBpbmRpY2F0b3Jcbi0gRGVzYXR1cmF0ZSBhbGwgaWNvbnNcbi0gTm8gZWZmZWN0L1JlZHVjZSBvcGFjaXR5L0Rlc2F0dXJhdGUgZm9yIGJvdGggbWluaW1pemVkIGFuZCBpbmFjdGl2ZSBhcHBzXG4tIExpbWl0IGljb25zIHBlciB3b3Jrc3BhY2Vcbi0gR3JvdXAgaWNvbnMgb2Ygc2FtZSBhcHBsaWNhdGlvblxuLSBJZ25vcmUgYXBwbGljYXRpb25zICh3aXRoIHJlZ2V4KSIsCiAgIm5hbWUiOiAiV29ya3NwYWNlcyBpbmRpY2F0b3IgYnkgb3BlbiBhcHBzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmtzcGFjZXMtaW5kaWNhdG9yLWJ5LW9wZW4tYXBwcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRmF2bzAyL3dvcmtzcGFjZXMtYnktb3Blbi1hcHBzIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2VzLWJ5LW9wZW4tYXBwc0BmYXZvMDIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNgp9"},
+    "46": {"version": "16", "sha256": "1kgbpn8i999k5y90sz0kimc2vlaq4pnanfnrg9xf5n0inyb1mkhv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSBzaW1wbGUgd29ya3NwYWNlIGluZGljYXRvciBzaG93aW5nIGljb25zIG9mIGFwcHMgb3BlbiBpbiBpdC5cblxuRmVhdHVyZXM6XG5cbi0gU2hvdyBhIHNpbXBsZSBpbmRpY2F0b3IgdG8gZGlzcGxheSB3b3Jrc3BhY2VzIGFuZCBhcHBzIG9wZW4gaW4gaXRcbi0gU3VwcG9ydCBmb3IgZHJhZyBhbmQgZHJvcDogY2hhbmdlIGFuIGFwcGxpY2F0aW9uIHdvcmtzcGFjZSBqdXN0IGRyYWdnaW5nIGl0cyBpY29uXG4tIFJpZ2h0L0xlZnQgY2xpY2sgdG8gZm9jdXMvbWluaW1pemUgYXBwbGljYXRpb24sIE1pZGRsZSBjbGljayB0byBjbG9zZVxuLSBXb3Jrc3BhY2VzIHNjcm9sbGluZzogY2hhbmdlIGFjdGl2ZSB3b3Jrc3BhY2Ugc2Nyb2xsaW5nIGhvdmVyIHRoZSBpbmRpY2F0b3Jcbi0gU3VwcG9ydCBmb3IgbXVsdGlwbGUgbW9uaXRvciAoZm9yIGJvdGggc3RhdGljIGFuZCBkeW5hbWljIHdvcmtzcGFjZXMpXG4tIFJlbmFtZSB3b3Jrc3BhY2VzIGRpcmVjdGx5IGZyb20gdGhlIGV4dGVuc2lvbiAoYWN0aXZhdGUgaW4gc2V0dGluZ3MpXG4tIEhpZGUvc2hvdyBHTk9NRSBkZWZhdWx0IHdvcmtzcGFjZSBpbmRpY2F0b3IgKGZvcm1lciBhY3Rpdml0aWVzIGJ1dHRvbilcblxuQ3VzdG9taXphdGlvbjpcblxuLSBJbmRpY2F0b3IgcG9zaXRpb25cbi0gTW91c2Ugc2Nyb2xsIGRpcmVjdGlvbiAobm9ybWFsIG9yIGludmVyc2UpXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ21pZGRsZSBjbGljayB0byBjbG9zZSBhcHAnXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ2NsaWNrIG9uIGFjdGl2ZSB3b3Jrc3BhY2UgdG8gb3ZlcnZpZXcnXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ2NsaWNrIG9uIGZvY3VzZWQgYXBwbGljYXRpb24gdG8gbWluaW1pemUnXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ3dvcmtzcGFjZSBpbmRpY2F0b3InXG4tIEFjdGl2YXRlL2RlYWN0aXZhdGUgJ2FwcCBpbmRpY2F0b3InXG4tIEN1c3RvbWl6ZSBpbmRpY2F0b3IgY29sb3Jcbi0gQWN0aXZhdGUvZGVhY3RpdmF0ZSAncm91bmQgYm9yZGVycydcbi0gU2hvdy9IaWRlIHdvcmtzcGFjZXMgbmFtZXNcbi0gU2hvdy9IaWRlIGVtcHR5IHdvcmtzcGFjZXNcbi0gQ3VzdG9taXplIGFwcHMgb24gYWxsIHdvcmtzcGFjZXMgdGV4dCBpbmRpY2F0b3Jcbi0gRGVzYXR1cmF0ZSBhbGwgaWNvbnNcbi0gTm8gZWZmZWN0L1JlZHVjZSBvcGFjaXR5L0Rlc2F0dXJhdGUgZm9yIGJvdGggbWluaW1pemVkIGFuZCBpbmFjdGl2ZSBhcHBzXG4tIExpbWl0IGljb25zIHBlciB3b3Jrc3BhY2Vcbi0gR3JvdXAgaWNvbnMgb2Ygc2FtZSBhcHBsaWNhdGlvblxuLSBJZ25vcmUgYXBwbGljYXRpb25zICh3aXRoIHJlZ2V4KSIsCiAgIm5hbWUiOiAiV29ya3NwYWNlcyBpbmRpY2F0b3IgYnkgb3BlbiBhcHBzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmtzcGFjZXMtaW5kaWNhdG9yLWJ5LW9wZW4tYXBwcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRmF2bzAyL3dvcmtzcGFjZXMtYnktb3Blbi1hcHBzIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2VzLWJ5LW9wZW4tYXBwc0BmYXZvMDIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNgp9"}
   }}
 , {"uuid": "fshyperlinks@nuclear.polygon", "name": "FS Hyperlinks", "pname": "fs-hyperlinks", "description": "Select a path to jump there (When Ctrl is down)\nAlt+J to open file or directory with default app (when its path is in clipboard)", "link": "https://extensions.gnome.org/extension/5970/fs-hyperlinks/", "shell_version_map": {
     "38": {"version": "5", "sha256": "0q6gsl75vivslv9yw8ik5pfapdz4ivvr9bmai2pjy2ls7cw9zf9k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlbGVjdCBhIHBhdGggdG8ganVtcCB0aGVyZSAoV2hlbiBDdHJsIGlzIGRvd24pXG5BbHQrSiB0byBvcGVuIGZpbGUgb3IgZGlyZWN0b3J5IHdpdGggZGVmYXVsdCBhcHAgKHdoZW4gaXRzIHBhdGggaXMgaW4gY2xpcGJvYXJkKSIsCiAgIm5hbWUiOiAiRlMgSHlwZXJsaW5rcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbnVjbGVhcnBvbHlnb24vZnNfaHlwZXJsaW5rc19nbm9tZV9leHRlbnNpb24iLAogICJ1dWlkIjogImZzaHlwZXJsaW5rc0BudWNsZWFyLnBvbHlnb24iLAogICJ2ZXJzaW9uIjogNQp9"},
@@ -6139,8 +6184,8 @@
     "42": {"version": "95", "sha256": "0myj4g5351fi04w3iwpshjhy9a5vgq85nwd186ymlvnjby12d6fh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvb2wgdG8gU2hvdyBHaXRodWIgQWN0aW9ucyBzdGF0dXMgb24gR25vbWUgRGVza3RvcC5cblxuQ2hlY2sgb24gZ2l0aHViIGhvdyB0byBpbnN0YWxsLlxuaWYgeW91IGxpa2UgaXQgZ2l2ZSBtZSBhIHN0YXIgb24gZ2l0aHViICFcblxuQWZ0ZXIgdXBkYXRpbmcsIGlmIHlvdSBnZXQgYW4gZXJyb3IsIHBsZWFzZSByZWxvZ2luLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBNaWNyb3NvZnQgYW5kIEdpdEh1Yi4iLAogICJuYW1lIjogIkdpdGh1YiBBY3Rpb25zIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJhcm9ub25ha0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdpdGh1Yi1hY3Rpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcm9ub25hay9naXRodWItYWN0aW9ucy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogImdpdGh1Yi1hY3Rpb25zQGFyb25vbmFrLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA5NQp9"},
     "43": {"version": "95", "sha256": "0myj4g5351fi04w3iwpshjhy9a5vgq85nwd186ymlvnjby12d6fh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvb2wgdG8gU2hvdyBHaXRodWIgQWN0aW9ucyBzdGF0dXMgb24gR25vbWUgRGVza3RvcC5cblxuQ2hlY2sgb24gZ2l0aHViIGhvdyB0byBpbnN0YWxsLlxuaWYgeW91IGxpa2UgaXQgZ2l2ZSBtZSBhIHN0YXIgb24gZ2l0aHViICFcblxuQWZ0ZXIgdXBkYXRpbmcsIGlmIHlvdSBnZXQgYW4gZXJyb3IsIHBsZWFzZSByZWxvZ2luLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBNaWNyb3NvZnQgYW5kIEdpdEh1Yi4iLAogICJuYW1lIjogIkdpdGh1YiBBY3Rpb25zIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJhcm9ub25ha0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdpdGh1Yi1hY3Rpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcm9ub25hay9naXRodWItYWN0aW9ucy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogImdpdGh1Yi1hY3Rpb25zQGFyb25vbmFrLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA5NQp9"},
     "44": {"version": "95", "sha256": "0myj4g5351fi04w3iwpshjhy9a5vgq85nwd186ymlvnjby12d6fh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvb2wgdG8gU2hvdyBHaXRodWIgQWN0aW9ucyBzdGF0dXMgb24gR25vbWUgRGVza3RvcC5cblxuQ2hlY2sgb24gZ2l0aHViIGhvdyB0byBpbnN0YWxsLlxuaWYgeW91IGxpa2UgaXQgZ2l2ZSBtZSBhIHN0YXIgb24gZ2l0aHViICFcblxuQWZ0ZXIgdXBkYXRpbmcsIGlmIHlvdSBnZXQgYW4gZXJyb3IsIHBsZWFzZSByZWxvZ2luLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBNaWNyb3NvZnQgYW5kIEdpdEh1Yi4iLAogICJuYW1lIjogIkdpdGh1YiBBY3Rpb25zIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJhcm9ub25ha0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdpdGh1Yi1hY3Rpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcm9ub25hay9naXRodWItYWN0aW9ucy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogImdpdGh1Yi1hY3Rpb25zQGFyb25vbmFrLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA5NQp9"},
-    "45": {"version": "135", "sha256": "1mas611qax46pyn9r953z3b1jp1n7r9wd7z7s3ifqq4038ihywck", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvb2wgdG8gU2hvdyBHaXRodWIgQWN0aW9ucyBzdGF0dXMgb24gR25vbWUgRGVza3RvcC5cblxuQ2hlY2sgb24gZ2l0aHViIGhvdyB0byBpbnN0YWxsLlxuaWYgeW91IGxpa2UgaXQgZ2l2ZSBtZSBhIHN0YXIgb24gZ2l0aHViICFcblxuQWZ0ZXIgdXBkYXRpbmcsIGlmIHlvdSBnZXQgYW4gZXJyb3IsIHBsZWFzZSByZWxvZ2luLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBNaWNyb3NvZnQgYW5kIEdpdEh1Yi5cblxuVmVyc2lvbnMgYmVsb3cgZ25vbWUgNDUgd2lsbCBubyBsb25nZXIgYmUgc3VwcG9ydGVkIDovIiwKICAibmFtZSI6ICJHaXRodWIgQWN0aW9ucyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiYXJvbm9uYWtAZ21haWwuY29tIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5naXRodWItYWN0aW9ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXJvbm9uYWsvZ2l0aHViLWFjdGlvbnMtZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJnaXRodWItYWN0aW9uc0Bhcm9ub25hay5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTM1Cn0="},
-    "46": {"version": "135", "sha256": "1mas611qax46pyn9r953z3b1jp1n7r9wd7z7s3ifqq4038ihywck", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvb2wgdG8gU2hvdyBHaXRodWIgQWN0aW9ucyBzdGF0dXMgb24gR25vbWUgRGVza3RvcC5cblxuQ2hlY2sgb24gZ2l0aHViIGhvdyB0byBpbnN0YWxsLlxuaWYgeW91IGxpa2UgaXQgZ2l2ZSBtZSBhIHN0YXIgb24gZ2l0aHViICFcblxuQWZ0ZXIgdXBkYXRpbmcsIGlmIHlvdSBnZXQgYW4gZXJyb3IsIHBsZWFzZSByZWxvZ2luLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBNaWNyb3NvZnQgYW5kIEdpdEh1Yi5cblxuVmVyc2lvbnMgYmVsb3cgZ25vbWUgNDUgd2lsbCBubyBsb25nZXIgYmUgc3VwcG9ydGVkIDovIiwKICAibmFtZSI6ICJHaXRodWIgQWN0aW9ucyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiYXJvbm9uYWtAZ21haWwuY29tIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5naXRodWItYWN0aW9ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXJvbm9uYWsvZ2l0aHViLWFjdGlvbnMtZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJnaXRodWItYWN0aW9uc0Bhcm9ub25hay5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTM1Cn0="}
+    "45": {"version": "138", "sha256": "0fr1n41yi070waxvs9yx53n78hw8nc2mxyr9b5pn70znyhh7iqvy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvb2wgdG8gU2hvdyBHaXRodWIgQWN0aW9ucyBzdGF0dXMgb24gR25vbWUgRGVza3RvcC5cblxuQ2hlY2sgb24gZ2l0aHViIGhvdyB0byBpbnN0YWxsLlxuaWYgeW91IGxpa2UgaXQgZ2l2ZSBtZSBhIHN0YXIgb24gZ2l0aHViICFcblxuQWZ0ZXIgdXBkYXRpbmcsIGlmIHlvdSBnZXQgYW4gZXJyb3IsIHBsZWFzZSByZWxvZ2luLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBNaWNyb3NvZnQgYW5kIEdpdEh1Yi5cblxuVmVyc2lvbnMgYmVsb3cgZ25vbWUgNDUgd2lsbCBubyBsb25nZXIgYmUgc3VwcG9ydGVkIDovIiwKICAibmFtZSI6ICJHaXRodWIgQWN0aW9ucyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiYXJvbm9uYWtAZ21haWwuY29tIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5naXRodWItYWN0aW9ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXJvbm9uYWsvZ2l0aHViLWFjdGlvbnMtZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJnaXRodWItYWN0aW9uc0Bhcm9ub25hay5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTM4Cn0="},
+    "46": {"version": "138", "sha256": "0fr1n41yi070waxvs9yx53n78hw8nc2mxyr9b5pn70znyhh7iqvy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvb2wgdG8gU2hvdyBHaXRodWIgQWN0aW9ucyBzdGF0dXMgb24gR25vbWUgRGVza3RvcC5cblxuQ2hlY2sgb24gZ2l0aHViIGhvdyB0byBpbnN0YWxsLlxuaWYgeW91IGxpa2UgaXQgZ2l2ZSBtZSBhIHN0YXIgb24gZ2l0aHViICFcblxuQWZ0ZXIgdXBkYXRpbmcsIGlmIHlvdSBnZXQgYW4gZXJyb3IsIHBsZWFzZSByZWxvZ2luLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBNaWNyb3NvZnQgYW5kIEdpdEh1Yi5cblxuVmVyc2lvbnMgYmVsb3cgZ25vbWUgNDUgd2lsbCBubyBsb25nZXIgYmUgc3VwcG9ydGVkIDovIiwKICAibmFtZSI6ICJHaXRodWIgQWN0aW9ucyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiYXJvbm9uYWtAZ21haWwuY29tIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5naXRodWItYWN0aW9ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXJvbm9uYWsvZ2l0aHViLWFjdGlvbnMtZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJnaXRodWItYWN0aW9uc0Bhcm9ub25hay5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTM4Cn0="}
   }}
 , {"uuid": "dim-completed-calendar-events@marcinjahn.com", "name": "Dim Completed Calendar Events", "pname": "dim-completed-calendar-events", "description": "Dim completed events in the top panel menu to easily distinguish between upcoming and past events. You can also highlight events that are ongoing.", "link": "https://extensions.gnome.org/extension/5979/dim-completed-calendar-events/", "shell_version_map": {
     "44": {"version": "3", "sha256": "0dpyrhdc70f77wv8hx7d6xnpxx13c2qfp7dbx716mqq90raij39f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpbSBjb21wbGV0ZWQgZXZlbnRzIGluIHRoZSB0b3AgcGFuZWwgbWVudSB0byBlYXNpbHkgZGlzdGluZ3Vpc2ggYmV0d2VlbiB1cGNvbWluZyBhbmQgcGFzdCBldmVudHMuIFlvdSBjYW4gYWxzbyBoaWdobGlnaHQgZXZlbnRzIHRoYXQgYXJlIG9uZ29pbmcuIiwKICAibmFtZSI6ICJEaW0gQ29tcGxldGVkIENhbGVuZGFyIEV2ZW50cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXJjaW5qYWhuL2dub21lLWRpbS1jb21wbGV0ZWQtY2FsZW5kYXItZXZlbnRzLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZGltLWNvbXBsZXRlZC1jYWxlbmRhci1ldmVudHNAbWFyY2luamFobi5jb20iLAogICJ2ZXJzaW9uIjogMwp9"},
@@ -6165,10 +6210,11 @@
     "42": {"version": "3", "sha256": "1s9ril86dbbf296zi2ayflvzgvvz6r8xgj6j2k0wfmi4v2g09607", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hZ25pZmllciBjdXJzb3Igc2hpZnQgZml4LiIsCiAgIm5hbWUiOiAiTWFnZml4IiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJhbmRyZWouZ3JpY2Vua29AZ21haWwuY29tIgogIF0sCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjMuMzguNiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FuZHJlamdyaWNlbmtvL21hZ2ZpeCIsCiAgInV1aWQiOiAibWFnZml4QGFuZHJlai5ncmljZW5rbyIsCiAgInZlcnNpb24iOiAzCn0="},
     "43": {"version": "3", "sha256": "1s9ril86dbbf296zi2ayflvzgvvz6r8xgj6j2k0wfmi4v2g09607", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hZ25pZmllciBjdXJzb3Igc2hpZnQgZml4LiIsCiAgIm5hbWUiOiAiTWFnZml4IiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJhbmRyZWouZ3JpY2Vua29AZ21haWwuY29tIgogIF0sCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjMuMzguNiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FuZHJlamdyaWNlbmtvL21hZ2ZpeCIsCiAgInV1aWQiOiAibWFnZml4QGFuZHJlai5ncmljZW5rbyIsCiAgInZlcnNpb24iOiAzCn0="}
   }}
-, {"uuid": "uppercase-language-indicator@buffersolve", "name": "Uppercase Language Indicator", "pname": "uppercase-language-indicator", "description": "Sets the Keyboard Language indicator in the status area to uppercase.", "link": "https://extensions.gnome.org/extension/5993/uppercase-language-indicator/", "shell_version_map": {
+, {"uuid": "uppercase-language-indicator@buffersolve", "name": "Uppercase Language Indicator", "pname": "uppercase-language-indicator", "description": "Sets the Language indicator in the status area to uppercase.", "link": "https://extensions.gnome.org/extension/5993/uppercase-language-indicator/", "shell_version_map": {
     "43": {"version": "1", "sha256": "0prm3afmr0jfixycfldc4xy0pgqsa0ybxm68nwhmn7dpj77yivcz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHMgdGhlIExhbmd1YWdlIGluZGljYXRvciBpbiB0aGUgc3RhdHVzIGFyZWEgdG8gdXBwZXJjYXNlLiIsCiAgIm5hbWUiOiAiVXBwZXJjYXNlIExhbmd1YWdlIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQnVmZmVyc29sdmUvVXBwZXJjYXNlLUxhbmd1YWdlLUluZGljYXRvciIsCiAgInV1aWQiOiAidXBwZXJjYXNlLWxhbmd1YWdlLWluZGljYXRvckBidWZmZXJzb2x2ZSIsCiAgInZlcnNpb24iOiAxCn0="},
     "44": {"version": "1", "sha256": "0prm3afmr0jfixycfldc4xy0pgqsa0ybxm68nwhmn7dpj77yivcz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHMgdGhlIExhbmd1YWdlIGluZGljYXRvciBpbiB0aGUgc3RhdHVzIGFyZWEgdG8gdXBwZXJjYXNlLiIsCiAgIm5hbWUiOiAiVXBwZXJjYXNlIExhbmd1YWdlIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQnVmZmVyc29sdmUvVXBwZXJjYXNlLUxhbmd1YWdlLUluZGljYXRvciIsCiAgInV1aWQiOiAidXBwZXJjYXNlLWxhbmd1YWdlLWluZGljYXRvckBidWZmZXJzb2x2ZSIsCiAgInZlcnNpb24iOiAxCn0="},
-    "45": {"version": "2", "sha256": "0iwxqjmbacf8xhhz0ijcpfg9d7cg78s77q6rh1lgp38nswnkz6hj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHMgdGhlIExhbmd1YWdlIGluZGljYXRvciBpbiB0aGUgc3RhdHVzIGFyZWEgdG8gdXBwZXJjYXNlLiIsCiAgIm5hbWUiOiAiVXBwZXJjYXNlIExhbmd1YWdlIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9CdWZmZXJzb2x2ZS9VcHBlcmNhc2UtTGFuZ3VhZ2UtSW5kaWNhdG9yIiwKICAidXVpZCI6ICJ1cHBlcmNhc2UtbGFuZ3VhZ2UtaW5kaWNhdG9yQGJ1ZmZlcnNvbHZlIiwKICAidmVyc2lvbiI6IDIKfQ=="}
+    "45": {"version": "3", "sha256": "1njbsi7ch1lh54fddm94c6ywyacvsy1pgdj38km3p5w8gg2mssf6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHMgdGhlIExhbmd1YWdlIGluZGljYXRvciBpbiB0aGUgc3RhdHVzIGFyZWEgdG8gdXBwZXJjYXNlLiIsCiAgIm5hbWUiOiAiVXBwZXJjYXNlIExhbmd1YWdlIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQnVmZmVyc29sdmUvVXBwZXJjYXNlLUxhbmd1YWdlLUluZGljYXRvciIsCiAgInV1aWQiOiAidXBwZXJjYXNlLWxhbmd1YWdlLWluZGljYXRvckBidWZmZXJzb2x2ZSIsCiAgInZlcnNpb24iOiAzCn0="},
+    "46": {"version": "3", "sha256": "1njbsi7ch1lh54fddm94c6ywyacvsy1pgdj38km3p5w8gg2mssf6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHMgdGhlIExhbmd1YWdlIGluZGljYXRvciBpbiB0aGUgc3RhdHVzIGFyZWEgdG8gdXBwZXJjYXNlLiIsCiAgIm5hbWUiOiAiVXBwZXJjYXNlIExhbmd1YWdlIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQnVmZmVyc29sdmUvVXBwZXJjYXNlLUxhbmd1YWdlLUluZGljYXRvciIsCiAgInV1aWQiOiAidXBwZXJjYXNlLWxhbmd1YWdlLWluZGljYXRvckBidWZmZXJzb2x2ZSIsCiAgInZlcnNpb24iOiAzCn0="}
   }}
 , {"uuid": "my-hijri-date-extension@ameen-sha", "name": "Hijri Date Extension", "pname": "hijri-date-extension", "description": "Display the Hijri date in the top panel.", "link": "https://extensions.gnome.org/extension/5995/hijri-date-extension/", "shell_version_map": {
     "38": {"version": "5", "sha256": "1zzw95f1643y5g0xfcip0d7kpgpjkdm1dz2ai3k3y1qlg3jjgl4q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGhlIEhpanJpIGRhdGUgaW4gdGhlIHRvcCBwYW5lbC4iLAogICJuYW1lIjogIkhpanJpIERhdGUgRXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9BbWVlbi1TaGEtQ2hlZXJhbmdhbi9IaWpyaS1EYXRlLUdub21lLUV4dGVuc2lvbiIsCiAgInV1aWQiOiAibXktaGlqcmktZGF0ZS1leHRlbnNpb25AYW1lZW4tc2hhIiwKICAidmVyc2lvbiI6IDUKfQ=="},
@@ -6200,7 +6246,8 @@
   }}
 , {"uuid": "notch-clock-offset@christophbrill.de", "name": "Notch Clock Offset", "pname": "notch-clock-offset", "description": "Moves the display of the clock to the left or right of the notch for the webcam when using apple_dcp.show_notch=1", "link": "https://extensions.gnome.org/extension/6018/notch-clock-offset/", "shell_version_map": {
     "44": {"version": "3", "sha256": "0crxx2qryx5g5zpaqwvcr5yw1k4282dh2v637hikz127vvj5l8zj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRoZSBkaXNwbGF5IG9mIHRoZSBjbG9jayB0byB0aGUgbGVmdCBvciByaWdodCBvZiB0aGUgbm90Y2ggZm9yIHRoZSB3ZWJjYW0gd2hlbiB1c2luZyBhcHBsZV9kY3Auc2hvd19ub3RjaD0xIiwKICAibmFtZSI6ICJOb3RjaCBDbG9jayBPZmZzZXQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubm90Y2gtY2xvY2stb2Zmc2V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2Vnb3JlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1ub3RjaC1jbG9jay1vZmZzZXQiLAogICJ1dWlkIjogIm5vdGNoLWNsb2NrLW9mZnNldEBjaHJpc3RvcGhicmlsbC5kZSIsCiAgInZlcnNpb24iOiAzCn0="},
-    "45": {"version": "4", "sha256": "14s096c24ppb5kix6759khcpf7w61v0dvh9d3fiba0r0bs8v2ar3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRoZSBkaXNwbGF5IG9mIHRoZSBjbG9jayB0byB0aGUgbGVmdCBvciByaWdodCBvZiB0aGUgbm90Y2ggZm9yIHRoZSB3ZWJjYW0gd2hlbiB1c2luZyBhcHBsZV9kY3Auc2hvd19ub3RjaD0xIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibm90Y2gtY2xvY2stb2Zmc2V0IiwKICAibmFtZSI6ICJOb3RjaCBDbG9jayBPZmZzZXQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubm90Y2gtY2xvY2stb2Zmc2V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2Vnb3JlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1ub3RjaC1jbG9jay1vZmZzZXQiLAogICJ1dWlkIjogIm5vdGNoLWNsb2NrLW9mZnNldEBjaHJpc3RvcGhicmlsbC5kZSIsCiAgInZlcnNpb24iOiA0Cn0="}
+    "45": {"version": "5", "sha256": "0jq33rqyhkndpnd4islmg230fc00f5mqdsvmg6858j2fmzdvllc1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRoZSBkaXNwbGF5IG9mIHRoZSBjbG9jayB0byB0aGUgbGVmdCBvciByaWdodCBvZiB0aGUgbm90Y2ggZm9yIHRoZSB3ZWJjYW0gd2hlbiB1c2luZyBhcHBsZV9kY3Auc2hvd19ub3RjaD0xIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibm90Y2gtY2xvY2stb2Zmc2V0IiwKICAibmFtZSI6ICJOb3RjaCBDbG9jayBPZmZzZXQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubm90Y2gtY2xvY2stb2Zmc2V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9lZ29yZS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbm90Y2gtY2xvY2stb2Zmc2V0IiwKICAidXVpZCI6ICJub3RjaC1jbG9jay1vZmZzZXRAY2hyaXN0b3BoYnJpbGwuZGUiLAogICJ2ZXJzaW9uIjogNQp9"},
+    "46": {"version": "5", "sha256": "0jq33rqyhkndpnd4islmg230fc00f5mqdsvmg6858j2fmzdvllc1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRoZSBkaXNwbGF5IG9mIHRoZSBjbG9jayB0byB0aGUgbGVmdCBvciByaWdodCBvZiB0aGUgbm90Y2ggZm9yIHRoZSB3ZWJjYW0gd2hlbiB1c2luZyBhcHBsZV9kY3Auc2hvd19ub3RjaD0xIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibm90Y2gtY2xvY2stb2Zmc2V0IiwKICAibmFtZSI6ICJOb3RjaCBDbG9jayBPZmZzZXQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubm90Y2gtY2xvY2stb2Zmc2V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9lZ29yZS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbm90Y2gtY2xvY2stb2Zmc2V0IiwKICAidXVpZCI6ICJub3RjaC1jbG9jay1vZmZzZXRAY2hyaXN0b3BoYnJpbGwuZGUiLAogICJ2ZXJzaW9uIjogNQp9"}
   }}
 , {"uuid": "maccymenu@dgvai.com", "name": "Maccy Menu", "pname": "maccy-menu", "description": "Menu Item like MacOS", "link": "https://extensions.gnome.org/extension/6021/maccy-menu/", "shell_version_map": {
     "42": {"version": "9", "sha256": "1nrw6lk4h8zxxjl3mx8zwqs4rnpmbyqk8kq07y8mqjngdzvjz7v2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1lbnUgSXRlbSBsaWtlIE1hY09TIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW1hY2N5bWVudSIsCiAgIm5hbWUiOiAiTWFjY3kgTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tYWNjeW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kZ3ZhaS9tYWNjeW1lbnUtZ25vbWUtc2hlbGwtZXh0IiwKICAidXVpZCI6ICJtYWNjeW1lbnVAZGd2YWkuY29tIiwKICAidmVyc2lvbiI6IDkKfQ=="},
@@ -6221,10 +6268,11 @@
     "44": {"version": "5", "sha256": "103f6rn0py6ivrxhgmr11bxqj7lnd15w8f4pl1k88a11r2gkpqb8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgc3lzdGVtZCBzeXN0ZW0gc3RhdGUiLAogICJuYW1lIjogIlN5c3RlbWQgU3RhdHVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uRTBzSWdoVC9zeXN0ZW1kLXN0YXR1cy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogInN5c3RlbWQtc3RhdHVzQG5lMHNpZ2h0LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA1Cn0="},
     "45": {"version": "6", "sha256": "0mwsyg2df835cww9hmp86mz5ncxlggiw746r0kyl3xa6pqyxpfrx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgc3lzdGVtZCBzeXN0ZW0gc3RhdGUiLAogICJuYW1lIjogIlN5c3RlbWQgU3RhdHVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25FMHNJZ2hUL3N5c3RlbWQtc3RhdHVzLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAic3lzdGVtZC1zdGF0dXNAbmUwc2lnaHQuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDYKfQ=="}
   }}
-, {"uuid": "peek-top-bar-on-fullscreen@marcinjahn.com", "name": "Peek Top Bar on Fullscreen", "pname": "peek-top-bar-on-fullscreen", "description": "Show the top bar (panel) on demand while having full screen content on (like a YouTube video). Just hover the mouse cursor to the top of the screen, and the panel will show up. This way, you can quickly check the time, or swich some toggles. This is similar to what macOS offers for full screen apps.\n\nOn Wayland, to hide the top bar, you need to click the primary mouse button somewhere outside of the bar. On X11, just take the cursor away from the bar.\nThis extension is incompatible with Blur My Shell extension.", "link": "https://extensions.gnome.org/extension/6048/peek-top-bar-on-fullscreen/", "shell_version_map": {
+, {"uuid": "peek-top-bar-on-fullscreen@marcinjahn.com", "name": "Peek Top Bar on Fullscreen", "pname": "peek-top-bar-on-fullscreen", "description": "Show the top bar (panel) on demand while having full screen content on (like a YouTube video). Just hover the mouse cursor to the top of the screen, and the panel will show up. This way, you can quickly check the time, or swich some toggles. This is similar to what macOS offers for full screen apps.\n\nThis extension is incompatible with Blur My Shell extension.", "link": "https://extensions.gnome.org/extension/6048/peek-top-bar-on-fullscreen/", "shell_version_map": {
     "43": {"version": "8", "sha256": "1p196by16zmgsy5af1jsgrm38p6vrrzh1pn2nbar6zw25pldsn8p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIHRvcCBiYXIgKHBhbmVsKSBvbiBkZW1hbmQgd2hpbGUgaGF2aW5nIGZ1bGwgc2NyZWVuIGNvbnRlbnQgb24gKGxpa2UgYSBZb3VUdWJlIHZpZGVvKS4gSnVzdCBob3ZlciB0aGUgbW91c2UgY3Vyc29yIHRvIHRoZSB0b3Agb2YgdGhlIHNjcmVlbiwgYW5kIHRoZSBwYW5lbCB3aWxsIHNob3cgdXAuIFRoaXMgd2F5LCB5b3UgY2FuIHF1aWNrbHkgY2hlY2sgdGhlIHRpbWUsIG9yIHN3aWNoIHNvbWUgdG9nZ2xlcy4gVGhpcyBpcyBzaW1pbGFyIHRvIHdoYXQgbWFjT1Mgb2ZmZXJzIGZvciBmdWxsIHNjcmVlbiBhcHBzLlxuXG5PbiBXYXlsYW5kLCB0byBoaWRlIHRoZSB0b3AgYmFyLCB5b3UgbmVlZCB0byBjbGljayB0aGUgcHJpbWFyeSBtb3VzZSBidXR0b24gc29tZXdoZXJlIG91dHNpZGUgb2YgdGhlIGJhci4gT24gWDExLCBqdXN0IHRha2UgdGhlIGN1cnNvciBhd2F5IGZyb20gdGhlIGJhci5cblRoaXMgZXh0ZW5zaW9uIGlzIGluY29tcGF0aWJsZSB3aXRoIEJsdXIgTXkgU2hlbGwgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiUGVlayBUb3AgQmFyIG9uIEZ1bGxzY3JlZW4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hcmNpbmphaG4vZ25vbWUtcGVlay10b3AtYmFyLW9uLWZ1bGxzY3JlZW4tZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJwZWVrLXRvcC1iYXItb24tZnVsbHNjcmVlbkBtYXJjaW5qYWhuLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="},
     "44": {"version": "8", "sha256": "1p196by16zmgsy5af1jsgrm38p6vrrzh1pn2nbar6zw25pldsn8p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIHRvcCBiYXIgKHBhbmVsKSBvbiBkZW1hbmQgd2hpbGUgaGF2aW5nIGZ1bGwgc2NyZWVuIGNvbnRlbnQgb24gKGxpa2UgYSBZb3VUdWJlIHZpZGVvKS4gSnVzdCBob3ZlciB0aGUgbW91c2UgY3Vyc29yIHRvIHRoZSB0b3Agb2YgdGhlIHNjcmVlbiwgYW5kIHRoZSBwYW5lbCB3aWxsIHNob3cgdXAuIFRoaXMgd2F5LCB5b3UgY2FuIHF1aWNrbHkgY2hlY2sgdGhlIHRpbWUsIG9yIHN3aWNoIHNvbWUgdG9nZ2xlcy4gVGhpcyBpcyBzaW1pbGFyIHRvIHdoYXQgbWFjT1Mgb2ZmZXJzIGZvciBmdWxsIHNjcmVlbiBhcHBzLlxuXG5PbiBXYXlsYW5kLCB0byBoaWRlIHRoZSB0b3AgYmFyLCB5b3UgbmVlZCB0byBjbGljayB0aGUgcHJpbWFyeSBtb3VzZSBidXR0b24gc29tZXdoZXJlIG91dHNpZGUgb2YgdGhlIGJhci4gT24gWDExLCBqdXN0IHRha2UgdGhlIGN1cnNvciBhd2F5IGZyb20gdGhlIGJhci5cblRoaXMgZXh0ZW5zaW9uIGlzIGluY29tcGF0aWJsZSB3aXRoIEJsdXIgTXkgU2hlbGwgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiUGVlayBUb3AgQmFyIG9uIEZ1bGxzY3JlZW4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hcmNpbmphaG4vZ25vbWUtcGVlay10b3AtYmFyLW9uLWZ1bGxzY3JlZW4tZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJwZWVrLXRvcC1iYXItb24tZnVsbHNjcmVlbkBtYXJjaW5qYWhuLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="},
-    "45": {"version": "10", "sha256": "0b9d87yizkm67clk2pk5hzsmzgm7wjjzahq11z4pcmgbsl1iw418", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIHRvcCBiYXIgKHBhbmVsKSBvbiBkZW1hbmQgd2hpbGUgaGF2aW5nIGZ1bGwgc2NyZWVuIGNvbnRlbnQgb24gKGxpa2UgYSBZb3VUdWJlIHZpZGVvKS4gSnVzdCBob3ZlciB0aGUgbW91c2UgY3Vyc29yIHRvIHRoZSB0b3Agb2YgdGhlIHNjcmVlbiwgYW5kIHRoZSBwYW5lbCB3aWxsIHNob3cgdXAuIFRoaXMgd2F5LCB5b3UgY2FuIHF1aWNrbHkgY2hlY2sgdGhlIHRpbWUsIG9yIHN3aWNoIHNvbWUgdG9nZ2xlcy4gVGhpcyBpcyBzaW1pbGFyIHRvIHdoYXQgbWFjT1Mgb2ZmZXJzIGZvciBmdWxsIHNjcmVlbiBhcHBzLlxuXG5PbiBXYXlsYW5kLCB0byBoaWRlIHRoZSB0b3AgYmFyLCB5b3UgbmVlZCB0byBjbGljayB0aGUgcHJpbWFyeSBtb3VzZSBidXR0b24gc29tZXdoZXJlIG91dHNpZGUgb2YgdGhlIGJhci4gT24gWDExLCBqdXN0IHRha2UgdGhlIGN1cnNvciBhd2F5IGZyb20gdGhlIGJhci5cblRoaXMgZXh0ZW5zaW9uIGlzIGluY29tcGF0aWJsZSB3aXRoIEJsdXIgTXkgU2hlbGwgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiUGVlayBUb3AgQmFyIG9uIEZ1bGxzY3JlZW4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFyY2luamFobi9nbm9tZS1wZWVrLXRvcC1iYXItb24tZnVsbHNjcmVlbi1leHRlbnNpb24iLAogICJ1dWlkIjogInBlZWstdG9wLWJhci1vbi1mdWxsc2NyZWVuQG1hcmNpbmphaG4uY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}
+    "45": {"version": "10", "sha256": "0b9d87yizkm67clk2pk5hzsmzgm7wjjzahq11z4pcmgbsl1iw418", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIHRvcCBiYXIgKHBhbmVsKSBvbiBkZW1hbmQgd2hpbGUgaGF2aW5nIGZ1bGwgc2NyZWVuIGNvbnRlbnQgb24gKGxpa2UgYSBZb3VUdWJlIHZpZGVvKS4gSnVzdCBob3ZlciB0aGUgbW91c2UgY3Vyc29yIHRvIHRoZSB0b3Agb2YgdGhlIHNjcmVlbiwgYW5kIHRoZSBwYW5lbCB3aWxsIHNob3cgdXAuIFRoaXMgd2F5LCB5b3UgY2FuIHF1aWNrbHkgY2hlY2sgdGhlIHRpbWUsIG9yIHN3aWNoIHNvbWUgdG9nZ2xlcy4gVGhpcyBpcyBzaW1pbGFyIHRvIHdoYXQgbWFjT1Mgb2ZmZXJzIGZvciBmdWxsIHNjcmVlbiBhcHBzLlxuXG5PbiBXYXlsYW5kLCB0byBoaWRlIHRoZSB0b3AgYmFyLCB5b3UgbmVlZCB0byBjbGljayB0aGUgcHJpbWFyeSBtb3VzZSBidXR0b24gc29tZXdoZXJlIG91dHNpZGUgb2YgdGhlIGJhci4gT24gWDExLCBqdXN0IHRha2UgdGhlIGN1cnNvciBhd2F5IGZyb20gdGhlIGJhci5cblRoaXMgZXh0ZW5zaW9uIGlzIGluY29tcGF0aWJsZSB3aXRoIEJsdXIgTXkgU2hlbGwgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiUGVlayBUb3AgQmFyIG9uIEZ1bGxzY3JlZW4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFyY2luamFobi9nbm9tZS1wZWVrLXRvcC1iYXItb24tZnVsbHNjcmVlbi1leHRlbnNpb24iLAogICJ1dWlkIjogInBlZWstdG9wLWJhci1vbi1mdWxsc2NyZWVuQG1hcmNpbmphaG4uY29tIiwKICAidmVyc2lvbiI6IDEwCn0="},
+    "46": {"version": "14", "sha256": "1cbcgh457k1ir370k0hvzxkns4h476v2smx10jq7z35rs91ahpd5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIHRvcCBiYXIgKHBhbmVsKSBvbiBkZW1hbmQgd2hpbGUgaGF2aW5nIGZ1bGwgc2NyZWVuIGNvbnRlbnQgb24gKGxpa2UgYSBZb3VUdWJlIHZpZGVvKS4gSnVzdCBob3ZlciB0aGUgbW91c2UgY3Vyc29yIHRvIHRoZSB0b3Agb2YgdGhlIHNjcmVlbiwgYW5kIHRoZSBwYW5lbCB3aWxsIHNob3cgdXAuIFRoaXMgd2F5LCB5b3UgY2FuIHF1aWNrbHkgY2hlY2sgdGhlIHRpbWUsIG9yIHN3aWNoIHNvbWUgdG9nZ2xlcy4gVGhpcyBpcyBzaW1pbGFyIHRvIHdoYXQgbWFjT1Mgb2ZmZXJzIGZvciBmdWxsIHNjcmVlbiBhcHBzLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBpbmNvbXBhdGlibGUgd2l0aCBCbHVyIE15IFNoZWxsIGV4dGVuc2lvbi4iLAogICJuYW1lIjogIlBlZWsgVG9wIEJhciBvbiBGdWxsc2NyZWVuIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hcmNpbmphaG4vZ25vbWUtcGVlay10b3AtYmFyLW9uLWZ1bGxzY3JlZW4tZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJwZWVrLXRvcC1iYXItb24tZnVsbHNjcmVlbkBtYXJjaW5qYWhuLmNvbSIsCiAgInZlcnNpb24iOiAxNAp9"}
   }}
 , {"uuid": "quick@web.search", "name": "Quick Web Search", "pname": "quick-web-search", "description": "Use Super key for quick web search", "link": "https://extensions.gnome.org/extension/6051/quick-web-search/", "shell_version_map": {
     "42": {"version": "7", "sha256": "0w4irhmgdjr60lxs832a6pq3ywz6l9gd9yq5az6szqb9mv0jln5k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVzZSBTdXBlciBrZXkgZm9yIHF1aWNrIHdlYiBzZWFyY2giLAogICJuYW1lIjogIlF1aWNrIFdlYiBTZWFyY2giLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucXVpY2t3ZWJzZWFyY2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vY2hldC1idWRkeS9xdWljay13ZWItc2VhcmNoIiwKICAidXVpZCI6ICJxdWlja0B3ZWIuc2VhcmNoIiwKICAidmVyc2lvbiI6IDcKfQ=="},
@@ -6269,7 +6317,8 @@
     "42": {"version": "5", "sha256": "0bsl6iwrjkf0jn4j6y7m7jprxrjmr60alwj613nzxdnqqpawiq3i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldywgbWF4aW1pemVkIGFuZCBmdWxsc2NyZWVuIHdpbmRvd3Mgd2lsbCBiZSBtb3ZlZCB0byBlbXB0eSB3b3Jrc3BhY2VzLlxuRm9ya2VkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2thaXNlcmFjbS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbWF4aW1pemUtdG8tZW1wdHktd29ya3NwYWNlLiIsCiAgIm5hbWUiOiAiRnVsbHNjcmVlbiB0byBFbXB0eSBXb3Jrc3BhY2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZnVsbHNjcmVlbi10by1lbXB0eS13b3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL29uc2FoL2Z1bGxzY3JlZW4tdG8tbmV3LXdvcmtzcGFjZSIsCiAgInV1aWQiOiAiZnVsbHNjcmVlbi10by1lbXB0eS13b3Jrc3BhY2VAYWlvbm8uZGV2IiwKICAidmVyc2lvbiI6IDUKfQ=="},
     "43": {"version": "5", "sha256": "0bsl6iwrjkf0jn4j6y7m7jprxrjmr60alwj613nzxdnqqpawiq3i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldywgbWF4aW1pemVkIGFuZCBmdWxsc2NyZWVuIHdpbmRvd3Mgd2lsbCBiZSBtb3ZlZCB0byBlbXB0eSB3b3Jrc3BhY2VzLlxuRm9ya2VkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2thaXNlcmFjbS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbWF4aW1pemUtdG8tZW1wdHktd29ya3NwYWNlLiIsCiAgIm5hbWUiOiAiRnVsbHNjcmVlbiB0byBFbXB0eSBXb3Jrc3BhY2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZnVsbHNjcmVlbi10by1lbXB0eS13b3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL29uc2FoL2Z1bGxzY3JlZW4tdG8tbmV3LXdvcmtzcGFjZSIsCiAgInV1aWQiOiAiZnVsbHNjcmVlbi10by1lbXB0eS13b3Jrc3BhY2VAYWlvbm8uZGV2IiwKICAidmVyc2lvbiI6IDUKfQ=="},
     "44": {"version": "5", "sha256": "0bsl6iwrjkf0jn4j6y7m7jprxrjmr60alwj613nzxdnqqpawiq3i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldywgbWF4aW1pemVkIGFuZCBmdWxsc2NyZWVuIHdpbmRvd3Mgd2lsbCBiZSBtb3ZlZCB0byBlbXB0eSB3b3Jrc3BhY2VzLlxuRm9ya2VkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2thaXNlcmFjbS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbWF4aW1pemUtdG8tZW1wdHktd29ya3NwYWNlLiIsCiAgIm5hbWUiOiAiRnVsbHNjcmVlbiB0byBFbXB0eSBXb3Jrc3BhY2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZnVsbHNjcmVlbi10by1lbXB0eS13b3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL29uc2FoL2Z1bGxzY3JlZW4tdG8tbmV3LXdvcmtzcGFjZSIsCiAgInV1aWQiOiAiZnVsbHNjcmVlbi10by1lbXB0eS13b3Jrc3BhY2VAYWlvbm8uZGV2IiwKICAidmVyc2lvbiI6IDUKfQ=="},
-    "45": {"version": "6", "sha256": "0jsns698ap00iqgjrbx88f547j828813b2xdqlwjc8w115a1mayz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldywgbWF4aW1pemVkIGFuZCBmdWxsc2NyZWVuIHdpbmRvd3Mgd2lsbCBiZSBtb3ZlZCB0byBlbXB0eSB3b3Jrc3BhY2VzLlxuRm9ya2VkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2thaXNlcmFjbS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbWF4aW1pemUtdG8tZW1wdHktd29ya3NwYWNlLiIsCiAgIm5hbWUiOiAiRnVsbHNjcmVlbiB0byBFbXB0eSBXb3Jrc3BhY2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZnVsbHNjcmVlbi10by1lbXB0eS13b3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb25zYWgvZnVsbHNjcmVlbi10by1uZXctd29ya3NwYWNlIiwKICAidXVpZCI6ICJmdWxsc2NyZWVuLXRvLWVtcHR5LXdvcmtzcGFjZUBhaW9uby5kZXYiLAogICJ2ZXJzaW9uIjogNgp9"}
+    "45": {"version": "6", "sha256": "0jsns698ap00iqgjrbx88f547j828813b2xdqlwjc8w115a1mayz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldywgbWF4aW1pemVkIGFuZCBmdWxsc2NyZWVuIHdpbmRvd3Mgd2lsbCBiZSBtb3ZlZCB0byBlbXB0eSB3b3Jrc3BhY2VzLlxuRm9ya2VkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2thaXNlcmFjbS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbWF4aW1pemUtdG8tZW1wdHktd29ya3NwYWNlLiIsCiAgIm5hbWUiOiAiRnVsbHNjcmVlbiB0byBFbXB0eSBXb3Jrc3BhY2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZnVsbHNjcmVlbi10by1lbXB0eS13b3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb25zYWgvZnVsbHNjcmVlbi10by1uZXctd29ya3NwYWNlIiwKICAidXVpZCI6ICJmdWxsc2NyZWVuLXRvLWVtcHR5LXdvcmtzcGFjZUBhaW9uby5kZXYiLAogICJ2ZXJzaW9uIjogNgp9"},
+    "46": {"version": "7", "sha256": "1zhc78kwbh4yjfqmqsrxg5f7m8jf7adnid42rayyqgvhcgggf5dv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldywgbWF4aW1pemVkIGFuZCBmdWxsc2NyZWVuIHdpbmRvd3Mgd2lsbCBiZSBtb3ZlZCB0byBlbXB0eSB3b3Jrc3BhY2VzLlxuRm9ya2VkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2thaXNlcmFjbS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbWF4aW1pemUtdG8tZW1wdHktd29ya3NwYWNlLiIsCiAgIm5hbWUiOiAiRnVsbHNjcmVlbiB0byBFbXB0eSBXb3Jrc3BhY2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZnVsbHNjcmVlbi10by1lbXB0eS13b3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb25zYWgvZnVsbHNjcmVlbi10by1uZXctd29ya3NwYWNlIiwKICAidXVpZCI6ICJmdWxsc2NyZWVuLXRvLWVtcHR5LXdvcmtzcGFjZUBhaW9uby5kZXYiLAogICJ2ZXJzaW9uIjogNwp9"}
   }}
 , {"uuid": "fix-focus-on-workspace-switch@hiddn.github.com", "name": "Fix focus on workspace switch", "pname": "fix-focus-on-workspace-switch", "description": "When a workspace switch occurs, this extension ensures the focus is on a window located in the new workspace.\n\nThis extension is essential for a multi-monitor setup using multiple workspaces.", "link": "https://extensions.gnome.org/extension/6084/fix-focus-on-workspace-switch/", "shell_version_map": {
     "40": {"version": "7", "sha256": "1xbyn41h7kynm0ydj6qsh05rzd11n0zclwvmh5ypzzk5h6lml99s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldoZW4gYSB3b3Jrc3BhY2Ugc3dpdGNoIG9jY3VycywgdGhpcyBleHRlbnNpb24gZW5zdXJlcyB0aGUgZm9jdXMgaXMgb24gYSB3aW5kb3cgbG9jYXRlZCBpbiB0aGUgbmV3IHdvcmtzcGFjZS5cblxuVGhpcyBleHRlbnNpb24gaXMgZXNzZW50aWFsIGZvciBhIG11bHRpLW1vbml0b3Igc2V0dXAgdXNpbmcgbXVsdGlwbGUgd29ya3NwYWNlcy4iLAogICJuYW1lIjogIkZpeCBmb2N1cyBvbiB3b3Jrc3BhY2Ugc3dpdGNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oaWRkbi9maXgtZm9jdXMtb24td29ya3NwYWNlLXN3aXRjaCIsCiAgInV1aWQiOiAiZml4LWZvY3VzLW9uLXdvcmtzcGFjZS1zd2l0Y2hAaGlkZG4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="},
@@ -6295,11 +6344,11 @@
     "46": {"version": "8", "sha256": "1r2w9hdzp1d0x55wf6w1dwwn80cda9fg0y0adxk37qx083hkmj0g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgcGFzdGUgRW1vamlzIGZyb20gdGhlIFNtaWxlIGVtb2ppIHBpY2tlciIsCiAgIm5hbWUiOiAiU21pbGUgLSBjb21wbGVtZW50YXJ5IGV4dGVuc2lvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWlqb3J1cy9zbWlsZS1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogInNtaWxlLWV4dGVuc2lvbkBtaWpvcnVzLml0IiwKICAidmVyc2lvbiI6IDgKfQ=="}
   }}
 , {"uuid": "paperwm@paperwm.github.com", "name": "PaperWM", "pname": "paperwm", "description": "Tiling window manager with a twist!\n\n PaperWM is a Gnome Shell extension which provides scrollable tiling of windows and per monitor workspaces. It's inspired by paper notebooks and tiling window managers.\n\nPlease see our github page to report issues, understand features, and learn how to configure PaperWM to your liking.", "link": "https://extensions.gnome.org/extension/6099/paperwm/", "shell_version_map": {
-    "42": {"version": "71", "sha256": "1w626hadaskid3dn39ab4nm9d3sky852rjng4vy4l62a46xvrn7k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGEgdHdpc3QiLAogICJuYW1lIjogIlBhcGVyV00iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGFwZXJ3bSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BhcGVyd20vUGFwZXJXTSIsCiAgInV1aWQiOiAicGFwZXJ3bUBwYXBlcndtLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNzEsCiAgInZlcnNpb24tbmFtZSI6ICI0NC4xNy4wIgp9"},
-    "43": {"version": "71", "sha256": "1w626hadaskid3dn39ab4nm9d3sky852rjng4vy4l62a46xvrn7k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGEgdHdpc3QiLAogICJuYW1lIjogIlBhcGVyV00iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGFwZXJ3bSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BhcGVyd20vUGFwZXJXTSIsCiAgInV1aWQiOiAicGFwZXJ3bUBwYXBlcndtLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNzEsCiAgInZlcnNpb24tbmFtZSI6ICI0NC4xNy4wIgp9"},
-    "44": {"version": "71", "sha256": "1w626hadaskid3dn39ab4nm9d3sky852rjng4vy4l62a46xvrn7k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGEgdHdpc3QiLAogICJuYW1lIjogIlBhcGVyV00iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGFwZXJ3bSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BhcGVyd20vUGFwZXJXTSIsCiAgInV1aWQiOiAicGFwZXJ3bUBwYXBlcndtLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNzEsCiAgInZlcnNpb24tbmFtZSI6ICI0NC4xNy4wIgp9"},
-    "45": {"version": "100", "sha256": "0b6sl818smh6l5jdmcr4qq9jxn0111rrk2zsl0r9zfdxsd12g05n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGEgdHdpc3QiLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImpheXRhYWxhIiwKICAgICJwYXRyZW9uIjogInZhbHBhY2tldHQiCiAgfSwKICAibmFtZSI6ICJQYXBlcldNIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBhcGVyd20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BhcGVyd20vUGFwZXJXTSIsCiAgInV1aWQiOiAicGFwZXJ3bUBwYXBlcndtLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTAwLAogICJ2ZXJzaW9uLW5hbWUiOiAiNDYuNi40Igp9"},
-    "46": {"version": "100", "sha256": "0b6sl818smh6l5jdmcr4qq9jxn0111rrk2zsl0r9zfdxsd12g05n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGEgdHdpc3QiLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImpheXRhYWxhIiwKICAgICJwYXRyZW9uIjogInZhbHBhY2tldHQiCiAgfSwKICAibmFtZSI6ICJQYXBlcldNIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBhcGVyd20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BhcGVyd20vUGFwZXJXTSIsCiAgInV1aWQiOiAicGFwZXJ3bUBwYXBlcndtLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTAwLAogICJ2ZXJzaW9uLW5hbWUiOiAiNDYuNi40Igp9"}
+    "42": {"version": "101", "sha256": "1f88bvkwdvvp35ih4spxkff11n30blh043dr1xnihw8hh78bwphi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGEgdHdpc3QiLAogICJuYW1lIjogIlBhcGVyV00iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGFwZXJ3bSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BhcGVyd20vUGFwZXJXTSIsCiAgInV1aWQiOiAicGFwZXJ3bUBwYXBlcndtLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTAxLAogICJ2ZXJzaW9uLW5hbWUiOiAiNDQuMTguMCIKfQ=="},
+    "43": {"version": "101", "sha256": "1f88bvkwdvvp35ih4spxkff11n30blh043dr1xnihw8hh78bwphi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGEgdHdpc3QiLAogICJuYW1lIjogIlBhcGVyV00iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGFwZXJ3bSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BhcGVyd20vUGFwZXJXTSIsCiAgInV1aWQiOiAicGFwZXJ3bUBwYXBlcndtLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTAxLAogICJ2ZXJzaW9uLW5hbWUiOiAiNDQuMTguMCIKfQ=="},
+    "44": {"version": "101", "sha256": "1f88bvkwdvvp35ih4spxkff11n30blh043dr1xnihw8hh78bwphi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGEgdHdpc3QiLAogICJuYW1lIjogIlBhcGVyV00iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGFwZXJ3bSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BhcGVyd20vUGFwZXJXTSIsCiAgInV1aWQiOiAicGFwZXJ3bUBwYXBlcndtLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTAxLAogICJ2ZXJzaW9uLW5hbWUiOiAiNDQuMTguMCIKfQ=="},
+    "45": {"version": "108", "sha256": "1h2py70a2x608m08bvd1yrhldbdrs297biphswq90pq60sla3pzc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGEgdHdpc3QiLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImpheXRhYWxhIiwKICAgICJwYXRyZW9uIjogInZhbHBhY2tldHQiCiAgfSwKICAibmFtZSI6ICJQYXBlcldNIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBhcGVyd20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BhcGVyd20vUGFwZXJXTSIsCiAgInV1aWQiOiAicGFwZXJ3bUBwYXBlcndtLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTA4LAogICJ2ZXJzaW9uLW5hbWUiOiAiNDYuOS4wIgp9"},
+    "46": {"version": "108", "sha256": "1h2py70a2x608m08bvd1yrhldbdrs297biphswq90pq60sla3pzc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGEgdHdpc3QiLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImpheXRhYWxhIiwKICAgICJwYXRyZW9uIjogInZhbHBhY2tldHQiCiAgfSwKICAibmFtZSI6ICJQYXBlcldNIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBhcGVyd20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BhcGVyd20vUGFwZXJXTSIsCiAgInV1aWQiOiAicGFwZXJ3bUBwYXBlcndtLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTA4LAogICJ2ZXJzaW9uLW5hbWUiOiAiNDYuOS4wIgp9"}
   }}
 , {"uuid": "lightshell@dikasp.gitlab", "name": "Light Shell", "pname": "light-shell", "description": "the missing full light style gnome shell theme you had been looking for :D\n\nNOTE: later release are merged and continue within Luminus extension. brings various improvement and dark mode integration.", "link": "https://extensions.gnome.org/extension/6102/light-shell/", "shell_version_map": {
     "42": {"version": "11", "sha256": "0fqshl06w2amy8d3gw2car4rab6zqpi79dg5dr05d5swggq1vm8n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGx5IGZ1bGwgbGlnaHQgdGhlbWUgaW50byBkZWZhdWx0IGdub21lIHNoZWxsLCBpbmNsdWRpbmcgbGlnaHQgb3ZlcnZpZXcuIiwKICAibmFtZSI6ICJMaWdodCBTaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9kaWthc2V0eWFwcmF5b2dpL2xpZ2h0LXNoZWxsIiwKICAidXVpZCI6ICJsaWdodHNoZWxsQGRpa2FzcC5naXRsYWIiLAogICJ2ZXJzaW9uIjogMTEKfQ=="},
@@ -6373,7 +6422,8 @@
     "42": {"version": "1", "sha256": "1jwz2aw34j29fsj2cppfwcaarw60ggpmmj6xl36xqz6j3cnz0in6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IFNvbGFhciB0byBzdXBwb3J0IGNlcnRhaW4gZmVhdHVyZXMgb24gbm9uIFgxMSBzeXN0ZW1zIiwKICAibmFtZSI6ICJTb2xhYXIgZXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zaWRldmVzaC9zb2xhYXItZXh0ZW5zaW9uLWZvci1nbm9tZSIsCiAgInV1aWQiOiAic29sYWFyLWV4dGVuc2lvbkBzaWRldmVzaCIsCiAgInZlcnNpb24iOiAxCn0="},
     "43": {"version": "1", "sha256": "1jwz2aw34j29fsj2cppfwcaarw60ggpmmj6xl36xqz6j3cnz0in6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IFNvbGFhciB0byBzdXBwb3J0IGNlcnRhaW4gZmVhdHVyZXMgb24gbm9uIFgxMSBzeXN0ZW1zIiwKICAibmFtZSI6ICJTb2xhYXIgZXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zaWRldmVzaC9zb2xhYXItZXh0ZW5zaW9uLWZvci1nbm9tZSIsCiAgInV1aWQiOiAic29sYWFyLWV4dGVuc2lvbkBzaWRldmVzaCIsCiAgInZlcnNpb24iOiAxCn0="},
     "44": {"version": "1", "sha256": "1jwz2aw34j29fsj2cppfwcaarw60ggpmmj6xl36xqz6j3cnz0in6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IFNvbGFhciB0byBzdXBwb3J0IGNlcnRhaW4gZmVhdHVyZXMgb24gbm9uIFgxMSBzeXN0ZW1zIiwKICAibmFtZSI6ICJTb2xhYXIgZXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zaWRldmVzaC9zb2xhYXItZXh0ZW5zaW9uLWZvci1nbm9tZSIsCiAgInV1aWQiOiAic29sYWFyLWV4dGVuc2lvbkBzaWRldmVzaCIsCiAgInZlcnNpb24iOiAxCn0="},
-    "45": {"version": "3", "sha256": "18gh802q0psx049d4zdak0p7g9x6cf281pb3d3rgmx38n0074w3l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IFNvbGFhciB0byBzdXBwb3J0IGNlcnRhaW4gZmVhdHVyZXMgb24gbm9uIFgxMSBzeXN0ZW1zIiwKICAibmFtZSI6ICJTb2xhYXIgZXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NpZGV2ZXNoL3NvbGFhci1leHRlbnNpb24tZm9yLWdub21lIiwKICAidXVpZCI6ICJzb2xhYXItZXh0ZW5zaW9uQHNpZGV2ZXNoIiwKICAidmVyc2lvbiI6IDMKfQ=="}
+    "45": {"version": "4", "sha256": "129kgg2bngdak23jn8kjy9vl5393pazjir27fzq6039iyil68adb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IFNvbGFhciB0byBzdXBwb3J0IGNlcnRhaW4gZmVhdHVyZXMgb24gbm9uIFgxMSBzeXN0ZW1zIiwKICAibmFtZSI6ICJTb2xhYXIgZXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zaWRldmVzaC9zb2xhYXItZXh0ZW5zaW9uLWZvci1nbm9tZSIsCiAgInV1aWQiOiAic29sYWFyLWV4dGVuc2lvbkBzaWRldmVzaCIsCiAgInZlcnNpb24iOiA0Cn0="},
+    "46": {"version": "4", "sha256": "129kgg2bngdak23jn8kjy9vl5393pazjir27fzq6039iyil68adb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IFNvbGFhciB0byBzdXBwb3J0IGNlcnRhaW4gZmVhdHVyZXMgb24gbm9uIFgxMSBzeXN0ZW1zIiwKICAibmFtZSI6ICJTb2xhYXIgZXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zaWRldmVzaC9zb2xhYXItZXh0ZW5zaW9uLWZvci1nbm9tZSIsCiAgInV1aWQiOiAic29sYWFyLWV4dGVuc2lvbkBzaWRldmVzaCIsCiAgInZlcnNpb24iOiA0Cn0="}
   }}
 , {"uuid": "custommagnifier@simonallen.org", "name": "Custom Magnifier", "pname": "custom-magnifier", "description": "Change GNOME magnification using <Alt>KP_Subtract and <Alt>KP_Add.", "link": "https://extensions.gnome.org/extension/6180/custom-magnifier/", "shell_version_map": {
     "45": {"version": "3", "sha256": "1bb0il0fibs3yz09zlwxpz6i96vz3y1cpgzrkwkzhvjw511g2zv6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBHTk9NRSBtYWduaWZpY2F0aW9uIHVzaW5nIDxBbHQ+S1BfU3VidHJhY3QgYW5kIDxBbHQ+S1BfQWRkLiIsCiAgIm5hbWUiOiAiQ3VzdG9tIE1hZ25pZmllciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b21tYWduaWZpZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ2FyZnVua2VsL2dub21lLXNoZWxsLWV4dGVuc2lvbi1jdXN0b20tbWFnbmlmaWVyIiwKICAidXVpZCI6ICJjdXN0b21tYWduaWZpZXJAc2ltb25hbGxlbi5vcmciLAogICJ2ZXJzaW9uIjogMwp9"}
@@ -6404,7 +6454,8 @@
 , {"uuid": "hide-dock-in-overview@roslax", "name": "Hide the dock in overview", "pname": "hide-the-dock-in-overview", "description": "hides the dock in overview mode", "link": "https://extensions.gnome.org/extension/6195/hide-the-dock-in-overview/", "shell_version_map": {
     "43": {"version": "16", "sha256": "1gbwm8gwcrk2qslxgcb65jqgbcnlpsp4wbl655dg7wj8fa88l6ns", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImhpZGVzIHRoZSBkb2NrIGluIG92ZXJ2aWV3IG1vZGUiLAogICJuYW1lIjogIkhpZGUgdGhlIGRvY2sgaW4gb3ZlcnZpZXciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQzIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUm9zR3RIdWIvSGlkZS1kb2NrLWluLW92ZXJ2aWV3IiwKICAidXVpZCI6ICJoaWRlLWRvY2staW4tb3ZlcnZpZXdAcm9zbGF4IiwKICAidmVyc2lvbiI6IDE2Cn0="},
     "44": {"version": "15", "sha256": "1b998f73j74q48fwmih5cl8g7kf0015vgnns265yadws96cz2pk8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImhpZGVzIHRoZSBkb2NrIGluIG92ZXJ2aWV3IG1vZGUiLAogICJuYW1lIjogIkhpZGUgdGhlIGRvY2sgaW4gb3ZlcnZpZXciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUm9zR3RIdWIvSGlkZS1kb2NrLWluLW92ZXJ2aWV3L3RyZWUvbWFpbiIsCiAgInV1aWQiOiAiaGlkZS1kb2NrLWluLW92ZXJ2aWV3QHJvc2xheCIsCiAgInZlcnNpb24iOiAxNQp9"},
-    "45": {"version": "14", "sha256": "13kcvmnq41f0i8kxm8kpd3w880hq84w0ixza1sj1fv6vc8k80rhn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImhpZGVzIHRoZSBkb2NrIGluIG92ZXJ2aWV3IG1vZGUiLAogICJuYW1lIjogIkhpZGUgdGhlIGRvY2sgaW4gb3ZlcnZpZXciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUm9zR3RIdWIvSGlkZS1kb2NrLWluLW92ZXJ2aWV3IiwKICAidXVpZCI6ICJoaWRlLWRvY2staW4tb3ZlcnZpZXdAcm9zbGF4IiwKICAidmVyc2lvbiI6IDE0Cn0="}
+    "45": {"version": "14", "sha256": "13kcvmnq41f0i8kxm8kpd3w880hq84w0ixza1sj1fv6vc8k80rhn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImhpZGVzIHRoZSBkb2NrIGluIG92ZXJ2aWV3IG1vZGUiLAogICJuYW1lIjogIkhpZGUgdGhlIGRvY2sgaW4gb3ZlcnZpZXciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUm9zR3RIdWIvSGlkZS1kb2NrLWluLW92ZXJ2aWV3IiwKICAidXVpZCI6ICJoaWRlLWRvY2staW4tb3ZlcnZpZXdAcm9zbGF4IiwKICAidmVyc2lvbiI6IDE0Cn0="},
+    "46": {"version": "17", "sha256": "0fz98084c0vgk1mj0vlw1y8j75iws0jx4vi1v351kls5z96jq3vi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImhpZGVzIHRoZSBkb2NrIGluIG92ZXJ2aWV3IG1vZGUiLAogICJuYW1lIjogIkhpZGUgdGhlIGRvY2sgaW4gb3ZlcnZpZXciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUm9zR3RIdWIvSGlkZS1kb2NrLWluLW92ZXJ2aWV3IiwKICAidXVpZCI6ICJoaWRlLWRvY2staW4tb3ZlcnZpZXdAcm9zbGF4IiwKICAidmVyc2lvbiI6IDE3Cn0="}
   }}
 , {"uuid": "light-style@gnome-shell-extensions.gcampax.github.com", "name": "Light Style", "pname": "light-style", "description": "Switch default to light style", "link": "https://extensions.gnome.org/extension/6198/light-style/", "shell_version_map": {
     "45": {"version": "3", "sha256": "1x846d9s4knv36g0wh3zmkmpkvv14jbb15qh9pa5xwmysbpbawh7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCBkZWZhdWx0IHRvIGxpZ2h0IHN0eWxlIiwKICAiZXh0ZW5zaW9uLWlkIjogImxpZ2h0LXN0eWxlIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWxpZ2h0LXN0eWxlIiwKICAibmFtZSI6ICJMaWdodCBTdHlsZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5saWdodC1zdHlsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJsaWdodC1zdHlsZUBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="},
@@ -6465,7 +6516,8 @@
     "45": {"version": "14", "sha256": "0jc3sfwhb8l3gk1nf06ryqzahsjidjzw486cmzbbzdxnbqnn210f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBhbmVsIHdpbGwgaW5jbHVkZSBhIGRpZmZlcmVudCB3aW5kb3cgdGFiIGZvciB0aGUgc2FtZSBhcHBsaWNhdGlvbiB0aGF0IGlzIGN1cnJlbnRseSBsYXVuY2hlZC5cbjEuIFlvdSBjYW4gc2VlIHRoZSBhcHBsaWNhdGlvbiB3aW5kb3cgaW50dWl0aXZlbHlcbjIuIENsaWNrIHRhYiB0byBqdW1wIHRvIHRoZSBjb3JyZXNwb25kaW5nIHdpbmRvdyBpbW1lZGlhdGVseVxuMy4gQ2xpY2sgdGhlIENsb3NlIGJ1dHRvbiB0byBjbG9zZSB0aGUgd2luZG93IiwKICAibmFtZSI6ICJBcHBsaWNhdGlvbiBUYWJzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFwcF90YWJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hob2FvL2FwcF90YWJzIiwKICAidXVpZCI6ICJodWFuZ2hhb2hob2FAMTYzLmNvbSIsCiAgInZlcnNpb24iOiAxNAp9"}
   }}
 , {"uuid": "ping@prasanthc41m.github.com", "name": "Ping", "pname": "ping", "description": "A Ping Extension", "link": "https://extensions.gnome.org/extension/6260/ping/", "shell_version_map": {
-    "44": {"version": "1", "sha256": "10s0hsrgs8p0xc1iwcjhg7x690si8pw9q5n8c881pf5lz6cs23gi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgUGluZyBFeHRlbnNpb24iLAogICJuYW1lIjogIlBpbmciLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGluZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wcmFzYW50aGM0MW0vcGluZy1leHRlbnNpb24iLAogICJ1dWlkIjogInBpbmdAcHJhc2FudGhjNDFtLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}
+    "44": {"version": "1", "sha256": "10s0hsrgs8p0xc1iwcjhg7x690si8pw9q5n8c881pf5lz6cs23gi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgUGluZyBFeHRlbnNpb24iLAogICJuYW1lIjogIlBpbmciLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGluZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wcmFzYW50aGM0MW0vcGluZy1leHRlbnNpb24iLAogICJ1dWlkIjogInBpbmdAcHJhc2FudGhjNDFtLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"},
+    "45": {"version": "3", "sha256": "19hl1w7w2zjjisq1hjdqp5kj6kcacz0fcrngmbv41b4179qvbsrn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgUGluZyBFeHRlbnNpb24iLAogICJuYW1lIjogIlBpbmciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcHJhc2FudGhjNDFtL3BpbmctZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJwaW5nQHByYXNhbnRoYzQxbS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDMKfQ=="}
   }}
 , {"uuid": "zen@le0.gs", "name": "Zen", "pname": "zen", "description": "Various tweaks for a more predictable Gnome shell experience", "link": "https://extensions.gnome.org/extension/6263/zen/", "shell_version_map": {
     "44": {"version": "4", "sha256": "052lyqk5zgyp4pnsljl0p8rjamz3h3vwczxdsggqnli6l1c7jw4c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZhcmlvdXMgdHdlYWtzIGZvciBhIG1vcmUgcHJlZGljdGFibGUgR25vbWUgc2hlbGwgZXhwZXJpZW5jZSIsCiAgImdldHRleHQtZG9tYWluIjogInplbkBsZTAuZ3MiLAogICJuYW1lIjogIlplbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy56ZW4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbGVvdGFrdS96ZW4iLAogICJ1dWlkIjogInplbkBsZTAuZ3MiLAogICJ2ZXJzaW9uIjogNAp9"},
@@ -6522,22 +6574,23 @@
     "46": {"version": "29", "sha256": "10ikj5nlgf18rsjn5zl0i28b2vazvzp773i90b68hf4pqizh02f2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvY3VzZWQgd2luZG93IGljb24gKyBhcHAgbmFtZSArIHRpdGxlICsgbWVudSBpbiB0aGUgdG9wIGJhci5cblxuIE9wdGlvbnMgaW4gcHJlZmVyZW5jZXMgVUk6IHRvZ2dsZSBpdGVtcywgY29sb3JlZCBpY29uLCBpY29uIHNpemUuIiwKICAibmFtZSI6ICJXaW5kb3cgdGl0bGUgaXMgYmFjayIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53aW5kb3ctdGl0bGUtaXMtYmFjayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L3dpbmRvdy10aXRsZS1pcy1iYWNrIiwKICAidXVpZCI6ICJ3aW5kb3ctdGl0bGUtaXMtYmFja0BmdGh4IiwKICAidmVyc2lvbiI6IDI5Cn0="}
   }}
 , {"uuid": "dim-background-windows@stephane-13.github.com", "name": "Dim Background Windows", "pname": "dim-background-windows", "description": "Dim windows without focus", "link": "https://extensions.gnome.org/extension/6313/dim-background-windows/", "shell_version_map": {
-    "42": {"version": "12", "sha256": "0nczzyvwpaaxfwvi6nn8vgy6csl30d2j81ilwnirsngblps22s1d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpbSB3aW5kb3dzIHdpdGhvdXQgZm9jdXMiLAogICJuYW1lIjogIkRpbSBCYWNrZ3JvdW5kIFdpbmRvd3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGltLWJhY2tncm91bmQtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0ZXBoYW5lLTEzL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaW0tYmFja2dyb3VuZC13aW5kb3dzIiwKICAidXVpZCI6ICJkaW0tYmFja2dyb3VuZC13aW5kb3dzQHN0ZXBoYW5lLTEzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
-    "43": {"version": "12", "sha256": "0nczzyvwpaaxfwvi6nn8vgy6csl30d2j81ilwnirsngblps22s1d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpbSB3aW5kb3dzIHdpdGhvdXQgZm9jdXMiLAogICJuYW1lIjogIkRpbSBCYWNrZ3JvdW5kIFdpbmRvd3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGltLWJhY2tncm91bmQtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0ZXBoYW5lLTEzL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaW0tYmFja2dyb3VuZC13aW5kb3dzIiwKICAidXVpZCI6ICJkaW0tYmFja2dyb3VuZC13aW5kb3dzQHN0ZXBoYW5lLTEzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
-    "44": {"version": "12", "sha256": "0nczzyvwpaaxfwvi6nn8vgy6csl30d2j81ilwnirsngblps22s1d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpbSB3aW5kb3dzIHdpdGhvdXQgZm9jdXMiLAogICJuYW1lIjogIkRpbSBCYWNrZ3JvdW5kIFdpbmRvd3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGltLWJhY2tncm91bmQtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0ZXBoYW5lLTEzL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaW0tYmFja2dyb3VuZC13aW5kb3dzIiwKICAidXVpZCI6ICJkaW0tYmFja2dyb3VuZC13aW5kb3dzQHN0ZXBoYW5lLTEzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
-    "45": {"version": "13", "sha256": "1379nq1hpzzqcw5gzcbzkg73r2g7kr389bwpd3ka1q3bxs64y7ha", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpbSB3aW5kb3dzIHdpdGhvdXQgZm9jdXMiLAogICJuYW1lIjogIkRpbSBCYWNrZ3JvdW5kIFdpbmRvd3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGltLWJhY2tncm91bmQtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdGVwaGFuZS0xMy9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGltLWJhY2tncm91bmQtd2luZG93cyIsCiAgInV1aWQiOiAiZGltLWJhY2tncm91bmQtd2luZG93c0BzdGVwaGFuZS0xMy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEzCn0="}
+    "42": {"version": "14", "sha256": "1in13131acn4gwbirc2xpzadwdkfjcfpsbp4jrgd4jzl24sp3qn8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpbSB3aW5kb3dzIHdpdGhvdXQgZm9jdXMiLAogICJuYW1lIjogIkRpbSBCYWNrZ3JvdW5kIFdpbmRvd3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGltLWJhY2tncm91bmQtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0ZXBoYW5lLTEzL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaW0tYmFja2dyb3VuZC13aW5kb3dzIiwKICAidXVpZCI6ICJkaW0tYmFja2dyb3VuZC13aW5kb3dzQHN0ZXBoYW5lLTEzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="},
+    "43": {"version": "14", "sha256": "1in13131acn4gwbirc2xpzadwdkfjcfpsbp4jrgd4jzl24sp3qn8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpbSB3aW5kb3dzIHdpdGhvdXQgZm9jdXMiLAogICJuYW1lIjogIkRpbSBCYWNrZ3JvdW5kIFdpbmRvd3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGltLWJhY2tncm91bmQtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0ZXBoYW5lLTEzL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaW0tYmFja2dyb3VuZC13aW5kb3dzIiwKICAidXVpZCI6ICJkaW0tYmFja2dyb3VuZC13aW5kb3dzQHN0ZXBoYW5lLTEzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="},
+    "44": {"version": "14", "sha256": "1in13131acn4gwbirc2xpzadwdkfjcfpsbp4jrgd4jzl24sp3qn8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpbSB3aW5kb3dzIHdpdGhvdXQgZm9jdXMiLAogICJuYW1lIjogIkRpbSBCYWNrZ3JvdW5kIFdpbmRvd3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGltLWJhY2tncm91bmQtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N0ZXBoYW5lLTEzL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaW0tYmFja2dyb3VuZC13aW5kb3dzIiwKICAidXVpZCI6ICJkaW0tYmFja2dyb3VuZC13aW5kb3dzQHN0ZXBoYW5lLTEzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="},
+    "45": {"version": "15", "sha256": "0wxq8rzdwr6g0k73p605h75gbhxa1sis21mc1g7axcja4f3hqr0r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpbSB3aW5kb3dzIHdpdGhvdXQgZm9jdXMiLAogICJuYW1lIjogIkRpbSBCYWNrZ3JvdW5kIFdpbmRvd3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGltLWJhY2tncm91bmQtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3RlcGhhbmUtMTMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRpbS1iYWNrZ3JvdW5kLXdpbmRvd3MiLAogICJ1dWlkIjogImRpbS1iYWNrZ3JvdW5kLXdpbmRvd3NAc3RlcGhhbmUtMTMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"},
+    "46": {"version": "15", "sha256": "0wxq8rzdwr6g0k73p605h75gbhxa1sis21mc1g7axcja4f3hqr0r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpbSB3aW5kb3dzIHdpdGhvdXQgZm9jdXMiLAogICJuYW1lIjogIkRpbSBCYWNrZ3JvdW5kIFdpbmRvd3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGltLWJhY2tncm91bmQtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3RlcGhhbmUtMTMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRpbS1iYWNrZ3JvdW5kLXdpbmRvd3MiLAogICJ1dWlkIjogImRpbS1iYWNrZ3JvdW5kLXdpbmRvd3NAc3RlcGhhbmUtMTMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"}
   }}
 , {"uuid": "hide-gnome-power-icon@siren15.github.com", "name": "Hide power button icon", "pname": "hide-power-button-icon", "description": "Hide the power icon in the quick settings area of the Gnome panel.", "link": "https://extensions.gnome.org/extension/6319/hide-power-button-icon/", "shell_version_map": {
     "44": {"version": "2", "sha256": "05x5rz1485fw6id3s18hman0clw7j5q8ff5w71ca49lkcwr5y323", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdGhlIHBvd2VyIGljb24gaW4gdGhlIHF1aWNrIHNldHRpbmdzIGFyZWEgb2YgdGhlIEdub21lIHBhbmVsLiIsCiAgIm5hbWUiOiAiSGlkZSBwb3dlciBidXR0b24gaWNvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zaXJlbjE1L2hpZGUtZ25vbWUtcG93ZXItaWNvbiIsCiAgInV1aWQiOiAiaGlkZS1nbm9tZS1wb3dlci1pY29uQHNpcmVuMTUuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}
   }}
 , {"uuid": "debian-updates-indicator@glerro.pm.me", "name": "Debian Linux Updates Indicator", "pname": "debian-linux-updates-indicator", "description": "Updates indicator for Debian Linux based distributions.\n\nCheck for updates and shows also the following packages status (as in Synaptic):\n⚫ Available updates.\n⚫ New packages in repository.\n⚫ Local/Obsolete packages.\n⚫ Residual config files.\n⚫ Autoremovable packages.", "link": "https://extensions.gnome.org/extension/6322/debian-linux-updates-indicator/", "shell_version_map": {
-    "40": {"version": "3", "sha256": "1jh39196758jn7yffb1dlzg4w49rn9934vdmbnh3bvw5a5q88abv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgaW5kaWNhdG9yIGZvciBEZWJpYW4gTGludXggYmFzZWQgZGlzdHJpYnV0aW9ucy5cblxuQ2hlY2sgZm9yIHVwZGF0ZXMgYW5kIHNob3dzIGFsc28gdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBzdGF0dXMgKGFzIGluIFN5bmFwdGljKTpcblx1MjZhYiBBdmFpbGFibGUgdXBkYXRlcy5cblx1MjZhYiBOZXcgcGFja2FnZXMgaW4gcmVwb3NpdG9yeS5cblx1MjZhYiBMb2NhbC9PYnNvbGV0ZSBwYWNrYWdlcy5cblx1MjZhYiBSZXNpZHVhbCBjb25maWcgZmlsZXMuXG5cdTI2YWIgQXV0b3JlbW92YWJsZSBwYWNrYWdlcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJnbGVycm8iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiRGViaWFuIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZWJpYW4tdXBkYXRlcy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImRlYmlhbi11cGRhdGVzLWluZGljYXRvckBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMwp9"},
-    "41": {"version": "3", "sha256": "1jh39196758jn7yffb1dlzg4w49rn9934vdmbnh3bvw5a5q88abv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgaW5kaWNhdG9yIGZvciBEZWJpYW4gTGludXggYmFzZWQgZGlzdHJpYnV0aW9ucy5cblxuQ2hlY2sgZm9yIHVwZGF0ZXMgYW5kIHNob3dzIGFsc28gdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBzdGF0dXMgKGFzIGluIFN5bmFwdGljKTpcblx1MjZhYiBBdmFpbGFibGUgdXBkYXRlcy5cblx1MjZhYiBOZXcgcGFja2FnZXMgaW4gcmVwb3NpdG9yeS5cblx1MjZhYiBMb2NhbC9PYnNvbGV0ZSBwYWNrYWdlcy5cblx1MjZhYiBSZXNpZHVhbCBjb25maWcgZmlsZXMuXG5cdTI2YWIgQXV0b3JlbW92YWJsZSBwYWNrYWdlcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJnbGVycm8iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiRGViaWFuIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZWJpYW4tdXBkYXRlcy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImRlYmlhbi11cGRhdGVzLWluZGljYXRvckBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMwp9"},
-    "42": {"version": "3", "sha256": "1jh39196758jn7yffb1dlzg4w49rn9934vdmbnh3bvw5a5q88abv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgaW5kaWNhdG9yIGZvciBEZWJpYW4gTGludXggYmFzZWQgZGlzdHJpYnV0aW9ucy5cblxuQ2hlY2sgZm9yIHVwZGF0ZXMgYW5kIHNob3dzIGFsc28gdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBzdGF0dXMgKGFzIGluIFN5bmFwdGljKTpcblx1MjZhYiBBdmFpbGFibGUgdXBkYXRlcy5cblx1MjZhYiBOZXcgcGFja2FnZXMgaW4gcmVwb3NpdG9yeS5cblx1MjZhYiBMb2NhbC9PYnNvbGV0ZSBwYWNrYWdlcy5cblx1MjZhYiBSZXNpZHVhbCBjb25maWcgZmlsZXMuXG5cdTI2YWIgQXV0b3JlbW92YWJsZSBwYWNrYWdlcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJnbGVycm8iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiRGViaWFuIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZWJpYW4tdXBkYXRlcy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImRlYmlhbi11cGRhdGVzLWluZGljYXRvckBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMwp9"},
-    "43": {"version": "3", "sha256": "1jh39196758jn7yffb1dlzg4w49rn9934vdmbnh3bvw5a5q88abv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgaW5kaWNhdG9yIGZvciBEZWJpYW4gTGludXggYmFzZWQgZGlzdHJpYnV0aW9ucy5cblxuQ2hlY2sgZm9yIHVwZGF0ZXMgYW5kIHNob3dzIGFsc28gdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBzdGF0dXMgKGFzIGluIFN5bmFwdGljKTpcblx1MjZhYiBBdmFpbGFibGUgdXBkYXRlcy5cblx1MjZhYiBOZXcgcGFja2FnZXMgaW4gcmVwb3NpdG9yeS5cblx1MjZhYiBMb2NhbC9PYnNvbGV0ZSBwYWNrYWdlcy5cblx1MjZhYiBSZXNpZHVhbCBjb25maWcgZmlsZXMuXG5cdTI2YWIgQXV0b3JlbW92YWJsZSBwYWNrYWdlcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJnbGVycm8iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiRGViaWFuIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZWJpYW4tdXBkYXRlcy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImRlYmlhbi11cGRhdGVzLWluZGljYXRvckBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMwp9"},
-    "44": {"version": "3", "sha256": "1jh39196758jn7yffb1dlzg4w49rn9934vdmbnh3bvw5a5q88abv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgaW5kaWNhdG9yIGZvciBEZWJpYW4gTGludXggYmFzZWQgZGlzdHJpYnV0aW9ucy5cblxuQ2hlY2sgZm9yIHVwZGF0ZXMgYW5kIHNob3dzIGFsc28gdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBzdGF0dXMgKGFzIGluIFN5bmFwdGljKTpcblx1MjZhYiBBdmFpbGFibGUgdXBkYXRlcy5cblx1MjZhYiBOZXcgcGFja2FnZXMgaW4gcmVwb3NpdG9yeS5cblx1MjZhYiBMb2NhbC9PYnNvbGV0ZSBwYWNrYWdlcy5cblx1MjZhYiBSZXNpZHVhbCBjb25maWcgZmlsZXMuXG5cdTI2YWIgQXV0b3JlbW92YWJsZSBwYWNrYWdlcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJnbGVycm8iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiRGViaWFuIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZWJpYW4tdXBkYXRlcy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImRlYmlhbi11cGRhdGVzLWluZGljYXRvckBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMwp9"},
-    "45": {"version": "9", "sha256": "0mbm5r45pwpmqphy6kyzlrg52yw1fqzgisp7pklg895x4wqvw8sp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgaW5kaWNhdG9yIGZvciBEZWJpYW4gTGludXggYmFzZWQgZGlzdHJpYnV0aW9ucy5cblxuQ2hlY2sgZm9yIHVwZGF0ZXMgYW5kIHNob3dzIGFsc28gdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBzdGF0dXMgKGFzIGluIFN5bmFwdGljKTpcblx1MjZhYiBBdmFpbGFibGUgdXBkYXRlcy5cblx1MjZhYiBOZXcgcGFja2FnZXMgaW4gcmVwb3NpdG9yeS5cblx1MjZhYiBMb2NhbC9PYnNvbGV0ZSBwYWNrYWdlcy5cblx1MjZhYiBSZXNpZHVhbCBjb25maWcgZmlsZXMuXG5cdTI2YWIgQXV0b3JlbW92YWJsZSBwYWNrYWdlcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJnbGVycm8iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiRGViaWFuIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZWJpYW4tdXBkYXRlcy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImRlYmlhbi11cGRhdGVzLWluZGljYXRvckBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogOQp9"},
-    "46": {"version": "9", "sha256": "0mbm5r45pwpmqphy6kyzlrg52yw1fqzgisp7pklg895x4wqvw8sp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgaW5kaWNhdG9yIGZvciBEZWJpYW4gTGludXggYmFzZWQgZGlzdHJpYnV0aW9ucy5cblxuQ2hlY2sgZm9yIHVwZGF0ZXMgYW5kIHNob3dzIGFsc28gdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBzdGF0dXMgKGFzIGluIFN5bmFwdGljKTpcblx1MjZhYiBBdmFpbGFibGUgdXBkYXRlcy5cblx1MjZhYiBOZXcgcGFja2FnZXMgaW4gcmVwb3NpdG9yeS5cblx1MjZhYiBMb2NhbC9PYnNvbGV0ZSBwYWNrYWdlcy5cblx1MjZhYiBSZXNpZHVhbCBjb25maWcgZmlsZXMuXG5cdTI2YWIgQXV0b3JlbW92YWJsZSBwYWNrYWdlcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJnbGVycm8iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiRGViaWFuIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZWJpYW4tdXBkYXRlcy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImRlYmlhbi11cGRhdGVzLWluZGljYXRvckBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogOQp9"}
+    "40": {"version": "11", "sha256": "07x2fwnba1iq75khr05i8783npg3h6bx6j4bdggc2636m8ibpcpx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgaW5kaWNhdG9yIGZvciBEZWJpYW4gTGludXggYmFzZWQgZGlzdHJpYnV0aW9ucy5cblxuQ2hlY2sgZm9yIHVwZGF0ZXMgYW5kIHNob3dzIGFsc28gdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBzdGF0dXMgKGFzIGluIFN5bmFwdGljKTpcblx1MjZhYiBBdmFpbGFibGUgdXBkYXRlcy5cblx1MjZhYiBOZXcgcGFja2FnZXMgaW4gcmVwb3NpdG9yeS5cblx1MjZhYiBMb2NhbC9PYnNvbGV0ZSBwYWNrYWdlcy5cblx1MjZhYiBSZXNpZHVhbCBjb25maWcgZmlsZXMuXG5cdTI2YWIgQXV0b3JlbW92YWJsZSBwYWNrYWdlcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJnbGVycm8iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiRGViaWFuIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZWJpYW4tdXBkYXRlcy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImRlYmlhbi11cGRhdGVzLWluZGljYXRvckBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMTEsCiAgInZlcnNpb24tbmFtZSI6ICIxLjIuMSIKfQ=="},
+    "41": {"version": "11", "sha256": "07x2fwnba1iq75khr05i8783npg3h6bx6j4bdggc2636m8ibpcpx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgaW5kaWNhdG9yIGZvciBEZWJpYW4gTGludXggYmFzZWQgZGlzdHJpYnV0aW9ucy5cblxuQ2hlY2sgZm9yIHVwZGF0ZXMgYW5kIHNob3dzIGFsc28gdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBzdGF0dXMgKGFzIGluIFN5bmFwdGljKTpcblx1MjZhYiBBdmFpbGFibGUgdXBkYXRlcy5cblx1MjZhYiBOZXcgcGFja2FnZXMgaW4gcmVwb3NpdG9yeS5cblx1MjZhYiBMb2NhbC9PYnNvbGV0ZSBwYWNrYWdlcy5cblx1MjZhYiBSZXNpZHVhbCBjb25maWcgZmlsZXMuXG5cdTI2YWIgQXV0b3JlbW92YWJsZSBwYWNrYWdlcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJnbGVycm8iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiRGViaWFuIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZWJpYW4tdXBkYXRlcy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImRlYmlhbi11cGRhdGVzLWluZGljYXRvckBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMTEsCiAgInZlcnNpb24tbmFtZSI6ICIxLjIuMSIKfQ=="},
+    "42": {"version": "11", "sha256": "07x2fwnba1iq75khr05i8783npg3h6bx6j4bdggc2636m8ibpcpx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgaW5kaWNhdG9yIGZvciBEZWJpYW4gTGludXggYmFzZWQgZGlzdHJpYnV0aW9ucy5cblxuQ2hlY2sgZm9yIHVwZGF0ZXMgYW5kIHNob3dzIGFsc28gdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBzdGF0dXMgKGFzIGluIFN5bmFwdGljKTpcblx1MjZhYiBBdmFpbGFibGUgdXBkYXRlcy5cblx1MjZhYiBOZXcgcGFja2FnZXMgaW4gcmVwb3NpdG9yeS5cblx1MjZhYiBMb2NhbC9PYnNvbGV0ZSBwYWNrYWdlcy5cblx1MjZhYiBSZXNpZHVhbCBjb25maWcgZmlsZXMuXG5cdTI2YWIgQXV0b3JlbW92YWJsZSBwYWNrYWdlcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJnbGVycm8iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiRGViaWFuIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZWJpYW4tdXBkYXRlcy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImRlYmlhbi11cGRhdGVzLWluZGljYXRvckBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMTEsCiAgInZlcnNpb24tbmFtZSI6ICIxLjIuMSIKfQ=="},
+    "43": {"version": "11", "sha256": "07x2fwnba1iq75khr05i8783npg3h6bx6j4bdggc2636m8ibpcpx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgaW5kaWNhdG9yIGZvciBEZWJpYW4gTGludXggYmFzZWQgZGlzdHJpYnV0aW9ucy5cblxuQ2hlY2sgZm9yIHVwZGF0ZXMgYW5kIHNob3dzIGFsc28gdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBzdGF0dXMgKGFzIGluIFN5bmFwdGljKTpcblx1MjZhYiBBdmFpbGFibGUgdXBkYXRlcy5cblx1MjZhYiBOZXcgcGFja2FnZXMgaW4gcmVwb3NpdG9yeS5cblx1MjZhYiBMb2NhbC9PYnNvbGV0ZSBwYWNrYWdlcy5cblx1MjZhYiBSZXNpZHVhbCBjb25maWcgZmlsZXMuXG5cdTI2YWIgQXV0b3JlbW92YWJsZSBwYWNrYWdlcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJnbGVycm8iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiRGViaWFuIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZWJpYW4tdXBkYXRlcy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImRlYmlhbi11cGRhdGVzLWluZGljYXRvckBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMTEsCiAgInZlcnNpb24tbmFtZSI6ICIxLjIuMSIKfQ=="},
+    "44": {"version": "11", "sha256": "07x2fwnba1iq75khr05i8783npg3h6bx6j4bdggc2636m8ibpcpx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgaW5kaWNhdG9yIGZvciBEZWJpYW4gTGludXggYmFzZWQgZGlzdHJpYnV0aW9ucy5cblxuQ2hlY2sgZm9yIHVwZGF0ZXMgYW5kIHNob3dzIGFsc28gdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBzdGF0dXMgKGFzIGluIFN5bmFwdGljKTpcblx1MjZhYiBBdmFpbGFibGUgdXBkYXRlcy5cblx1MjZhYiBOZXcgcGFja2FnZXMgaW4gcmVwb3NpdG9yeS5cblx1MjZhYiBMb2NhbC9PYnNvbGV0ZSBwYWNrYWdlcy5cblx1MjZhYiBSZXNpZHVhbCBjb25maWcgZmlsZXMuXG5cdTI2YWIgQXV0b3JlbW92YWJsZSBwYWNrYWdlcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJnbGVycm8iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiRGViaWFuIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZWJpYW4tdXBkYXRlcy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImRlYmlhbi11cGRhdGVzLWluZGljYXRvckBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMTEsCiAgInZlcnNpb24tbmFtZSI6ICIxLjIuMSIKfQ=="},
+    "45": {"version": "12", "sha256": "1ikqi7llg71qxp1h9y33l4mzc7pilizcna2zypbz0ql2ymn9d8yg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgaW5kaWNhdG9yIGZvciBEZWJpYW4gTGludXggYmFzZWQgZGlzdHJpYnV0aW9ucy5cblxuQ2hlY2sgZm9yIHVwZGF0ZXMgYW5kIHNob3dzIGFsc28gdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBzdGF0dXMgKGFzIGluIFN5bmFwdGljKTpcblx1MjZhYiBBdmFpbGFibGUgdXBkYXRlcy5cblx1MjZhYiBOZXcgcGFja2FnZXMgaW4gcmVwb3NpdG9yeS5cblx1MjZhYiBMb2NhbC9PYnNvbGV0ZSBwYWNrYWdlcy5cblx1MjZhYiBSZXNpZHVhbCBjb25maWcgZmlsZXMuXG5cdTI2YWIgQXV0b3JlbW92YWJsZSBwYWNrYWdlcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJnbGVycm8iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiRGViaWFuIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZWJpYW4tdXBkYXRlcy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImRlYmlhbi11cGRhdGVzLWluZGljYXRvckBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMTIsCiAgInZlcnNpb24tbmFtZSI6ICIyLjMuMCIKfQ=="},
+    "46": {"version": "12", "sha256": "1ikqi7llg71qxp1h9y33l4mzc7pilizcna2zypbz0ql2ymn9d8yg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZXMgaW5kaWNhdG9yIGZvciBEZWJpYW4gTGludXggYmFzZWQgZGlzdHJpYnV0aW9ucy5cblxuQ2hlY2sgZm9yIHVwZGF0ZXMgYW5kIHNob3dzIGFsc28gdGhlIGZvbGxvd2luZyBwYWNrYWdlcyBzdGF0dXMgKGFzIGluIFN5bmFwdGljKTpcblx1MjZhYiBBdmFpbGFibGUgdXBkYXRlcy5cblx1MjZhYiBOZXcgcGFja2FnZXMgaW4gcmVwb3NpdG9yeS5cblx1MjZhYiBMb2NhbC9PYnNvbGV0ZSBwYWNrYWdlcy5cblx1MjZhYiBSZXNpZHVhbCBjb25maWcgZmlsZXMuXG5cdTI2YWIgQXV0b3JlbW92YWJsZSBwYWNrYWdlcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAia29maSI6ICJnbGVycm8iCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiRGViaWFuIExpbnV4IFVwZGF0ZXMgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlYmlhbi11cGRhdGVzLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvZ2xlcnJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZWJpYW4tdXBkYXRlcy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImRlYmlhbi11cGRhdGVzLWluZGljYXRvckBnbGVycm8ucG0ubWUiLAogICJ2ZXJzaW9uIjogMTIsCiAgInZlcnNpb24tbmFtZSI6ICIyLjMuMCIKfQ=="}
   }}
 , {"uuid": "monitor-brightness-volume@ailin.nemui", "name": "Control monitor brightness and volume with ddcutil", "pname": "control-monitor-brightness-and-volume-with-ddcutil", "description": "Brightness and volume control for monitors. Requires setting up the external ddcutil program for your user.\n\nNote: ensure that ddcutil works properly on the command line before attempting this extension.", "link": "https://extensions.gnome.org/extension/6325/control-monitor-brightness-and-volume-with-ddcutil/", "shell_version_map": {
     "45": {"version": "5", "sha256": "06mllpwvrwzjbdia339dn5p5bzngvrl3yiflr14180mlcg1yfx69", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWF0b3IiOiAiTmVpIiwKICAiZGVzY3JpcHRpb24iOiAiQnJpZ2h0bmVzcyBhbmQgdm9sdW1lIGNvbnRyb2wgZm9yIG1vbml0b3JzLiBSZXF1aXJlcyBzZXR0aW5nIHVwIHRoZSBleHRlcm5hbCBkZGN1dGlsIHByb2dyYW0gZm9yIHlvdXIgdXNlci5cblxuTm90ZTogZW5zdXJlIHRoYXQgZGRjdXRpbCB3b3JrcyBwcm9wZXJseSBvbiB0aGUgY29tbWFuZCBsaW5lIGJlZm9yZSBhdHRlbXB0aW5nIHRoaXMgZXh0ZW5zaW9uLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJrb2ZpIjogImFpbGluIgogIH0sCiAgIm5hbWUiOiAiQ29udHJvbCBtb25pdG9yIGJyaWdodG5lc3MgYW5kIHZvbHVtZSB3aXRoIGRkY3V0aWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubW9uaXRvci1icmlnaHRuZXNzLXZvbHVtZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvTmVpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1tb25pdG9yLWJyaWdodG5lc3Mtdm9sdW1lLy0vaXNzdWVzIiwKICAidXVpZCI6ICJtb25pdG9yLWJyaWdodG5lc3Mtdm9sdW1lQGFpbGluLm5lbXVpIiwKICAidmVyc2lvbiI6IDUKfQ=="},
@@ -6556,8 +6609,9 @@
 , {"uuid": "gmind@tungstnballon.gitlab.com", "name": "GameMode Indicator in System-Settings", "pname": "gamemode-indicator-in-system-settings", "description": "While gamemode is active, an icon will appear in the System-Settings", "link": "https://extensions.gnome.org/extension/6340/gamemode-indicator-in-system-settings/", "shell_version_map": {
     "45": {"version": "1", "sha256": "1jml9vangin17b2qdax5x45zb5mdgkq1xzk977qmpyppxd621m38", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldoaWxlIGdhbWVtb2RlIGlzIGFjdGl2ZSwgYW4gaWNvbiB3aWxsIGFwcGVhciBpbiB0aGUgU3lzdGVtLVNldHRpbmdzIiwKICAibmFtZSI6ICJHYW1lTW9kZSBJbmRpY2F0b3IgaW4gU3lzdGVtLVNldHRpbmdzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL1R1bmdzdG5CYWxsb24vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWdhbWVtb2RlLWluZGljYXRvciIsCiAgInV1aWQiOiAiZ21pbmRAdHVuZ3N0bmJhbGxvbi5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDEKfQ=="}
   }}
-, {"uuid": "windowgestures@extension.amarullz.com", "name": "Window Gestures", "pname": "window-gestures", "description": "Managing window with touchpad gestures. (It's not Gesture Improvements) Currently Wayland only.\n\n- Customizable actions for gestures\n- Support 3 or 4 fingers swipe, pinch, and tap+hold\n- Swappable 3 / 4 fingers\n- Enable/disable functions in settings\n- With kinetic gesture\n- With adaptive transition interpolable with gesture state\n\nWindow Gesture:\n- Swipe 4 Fingers Up: Maximize, fullscreen, restore\n- Swipe 4 Fingers Up+Left/Right: Snap window left/right\n- If Tap and Hold disabled, Swipe 4 Fingers Down: Move window\n\nConfigurable Gestures:\n- Swipe 4 Fingers Left, Right, Down\n- Swipe 3 Fingers Down, Down+Left, Down+Right, Down+Up\n- Pinch In/Out 3/4 Fingers\n- Tap and Hold to move/resize window\n\nActions:\n- Minimize window\n- Close window\n- Show desktop\n- Next window\n- Previous window\n- Send window left\n- Send window right\n- Back\n- Forward\n- Brightness up\n- Brightness down\n- Volume up\n- Volume down\n- Mute\n- Media play\n- Media next\n- Media previous\n- Alt+Tab switch\n- Overview\n- Application Grid\n- Quick settings\n- Notification\n- Run (Alt+F2)", "link": "https://extensions.gnome.org/extension/6343/window-gestures/", "shell_version_map": {
-    "45": {"version": "6", "sha256": "1kymv3v4svdfaicaplc3b7pkmfjg3r3gp03av5yawn62zbmqrs1d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSB3aW5kb3cgd2l0aCB0b3VjaHBhZCBnZXN0dXJlcyIsCiAgIm5hbWUiOiAiV2luZG93IEdlc3R1cmVzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndpbmRvd2dlc3R1cmVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FtYXJ1bGx6L3dpbmRvd2dlc3R1cmVzIiwKICAidXVpZCI6ICJ3aW5kb3dnZXN0dXJlc0BleHRlbnNpb24uYW1hcnVsbHouY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="}
+, {"uuid": "windowgestures@extension.amarullz.com", "name": "Window Gestures", "pname": "window-gestures", "description": "Manage window with touchpad gestures", "link": "https://extensions.gnome.org/extension/6343/window-gestures/", "shell_version_map": {
+    "45": {"version": "7", "sha256": "0lm4fpqwf8kwllw803rgswaal19vkby6p6pbkm3b2jfimyfb4cn9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSB3aW5kb3cgd2l0aCB0b3VjaHBhZCBnZXN0dXJlcyIsCiAgIm5hbWUiOiAiV2luZG93IEdlc3R1cmVzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndpbmRvd2dlc3R1cmVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWFydWxsei93aW5kb3dnZXN0dXJlcyIsCiAgInV1aWQiOiAid2luZG93Z2VzdHVyZXNAZXh0ZW5zaW9uLmFtYXJ1bGx6LmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="},
+    "46": {"version": "7", "sha256": "0lm4fpqwf8kwllw803rgswaal19vkby6p6pbkm3b2jfimyfb4cn9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSB3aW5kb3cgd2l0aCB0b3VjaHBhZCBnZXN0dXJlcyIsCiAgIm5hbWUiOiAiV2luZG93IEdlc3R1cmVzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndpbmRvd2dlc3R1cmVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWFydWxsei93aW5kb3dnZXN0dXJlcyIsCiAgInV1aWQiOiAid2luZG93Z2VzdHVyZXNAZXh0ZW5zaW9uLmFtYXJ1bGx6LmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}
   }}
 , {"uuid": "transcode-greek@pavlidic", "name": "Transcode Greek", "pname": "transcode-greek", "description": "Searching apps both direct and transcoded name (English, Greek langs)", "link": "https://extensions.gnome.org/extension/6346/transcode-greek/", "shell_version_map": {
     "38": {"version": "1", "sha256": "0ryfi2xmdqs0r7c3jmqpsqbgszsqzsc2m6n01xs1zrai7pbxlb1h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaGluZyBhcHBzIGJvdGggZGlyZWN0IGFuZCB0cmFuc2NvZGVkIG5hbWUgKEVuZ2xpc2gsIEdyZWVrIGxhbmdzKSIsCiAgIm5hbWUiOiAiVHJhbnNjb2RlIEdyZWVrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wYXZsaWRpYy9nbm9tZS1leHRlbnNpb24tdHJhbnNjb2RlLXNlYXJjaGFwcC1ncmVlayIsCiAgInV1aWQiOiAidHJhbnNjb2RlLWdyZWVrQHBhdmxpZGljIiwKICAidmVyc2lvbiI6IDEKfQ=="},
@@ -6581,7 +6635,8 @@
   }}
 , {"uuid": "multicore-system-monitor@igrek.dev", "name": "multicore-system-monitor", "pname": "multicore-system-monitor", "description": "Show consumption of each CPU core and memory", "link": "https://extensions.gnome.org/extension/6364/multicore-system-monitor/", "shell_version_map": {
     "44": {"version": "2", "sha256": "1c7pa2afmimljxvlg93gmlvc9wj48wh8dni4kra48wh73ishv0d9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY29uc3VtcHRpb24gb2YgZWFjaCBDUFUgY29yZSBhbmQgbWVtb3J5IiwKICAibmFtZSI6ICJtdWx0aWNvcmUtc3lzdGVtLW1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWdyZWs1MS9tdWx0aWNvcmUtbW9uaXRvciIsCiAgInV1aWQiOiAibXVsdGljb3JlLXN5c3RlbS1tb25pdG9yQGlncmVrLmRldiIsCiAgInZlcnNpb24iOiAyCn0="},
-    "45": {"version": "4", "sha256": "1rcw2i1dfg998vhwpvycchx3mqp8zv64rcm0s1fv8hbjfnf6r9xj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY29uc3VtcHRpb24gb2YgZWFjaCBDUFUgY29yZSBhbmQgbWVtb3J5IiwKICAibmFtZSI6ICJtdWx0aWNvcmUtc3lzdGVtLW1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWdyZWs1MS9tdWx0aWNvcmUtbW9uaXRvciIsCiAgInV1aWQiOiAibXVsdGljb3JlLXN5c3RlbS1tb25pdG9yQGlncmVrLmRldiIsCiAgInZlcnNpb24iOiA0Cn0="}
+    "45": {"version": "4", "sha256": "1rcw2i1dfg998vhwpvycchx3mqp8zv64rcm0s1fv8hbjfnf6r9xj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY29uc3VtcHRpb24gb2YgZWFjaCBDUFUgY29yZSBhbmQgbWVtb3J5IiwKICAibmFtZSI6ICJtdWx0aWNvcmUtc3lzdGVtLW1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWdyZWs1MS9tdWx0aWNvcmUtbW9uaXRvciIsCiAgInV1aWQiOiAibXVsdGljb3JlLXN5c3RlbS1tb25pdG9yQGlncmVrLmRldiIsCiAgInZlcnNpb24iOiA0Cn0="},
+    "46": {"version": "5", "sha256": "04vkw2lg2wz038mqaa5599grsrh0k5lw4rh2y8jdyc8cvimqy5dk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY29uc3VtcHRpb24gb2YgZWFjaCBDUFUgY29yZSBhbmQgbWVtb3J5IiwKICAibmFtZSI6ICJtdWx0aWNvcmUtc3lzdGVtLW1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWdyZWs1MS9tdWx0aWNvcmUtbW9uaXRvciIsCiAgInV1aWQiOiAibXVsdGljb3JlLXN5c3RlbS1tb25pdG9yQGlncmVrLmRldiIsCiAgInZlcnNpb24iOiA1Cn0="}
   }}
 , {"uuid": "pinguXnetLabel@pinguX.aTa", "name": "pinguXnetLabel", "pname": "pinguxnetlabel", "description": "Shows current download upload speed on panel \nThis extension is a Gnome 45 adaption of Net Speed by AlynxZhou", "link": "https://extensions.gnome.org/extension/6367/pinguxnetlabel/", "shell_version_map": {
     "45": {"version": "2", "sha256": "1g3mvwlg1v6g4whrnb0radqmj6vq1799z9llsv64zbldwk4w5wag", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGN1cnJlbnQgZG93bmxvYWQgdXBsb2FkIHNwZWVkIG9uIHBhbmVsIFxuVGhpcyBleHRlbnNpb24gaXMgYSBHbm9tZSA0NSBhZGFwdGlvbiBvZiBOZXQgU3BlZWQgYnkgQWx5bnhaaG91IiwKICAibmFtZSI6ICJwaW5ndVhuZXRMYWJlbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9fcGluZ3VYL3Bpbmd1eG5ldGxhYmVsIiwKICAidXVpZCI6ICJwaW5ndVhuZXRMYWJlbEBwaW5ndVguYVRhIiwKICAidmVyc2lvbiI6IDIKfQ=="}
@@ -6605,9 +6660,10 @@
     "45": {"version": "5", "sha256": "1y16y9lbns8qzmqydd6c0c0dsj1h9996j3j2r7h33i1wwjz9asj3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdGhlIHNwZWVkIG9mIGdub21lLXNoZWxsIGFuaW1hdGlvbnMiLAogICJuYW1lIjogIlNwZWVkaW5hdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1vZS5saWFtLnNwZWVkaW5hdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90ZWhzcXVpZGdlL3NwZWVkaW5hdG9yIiwKICAidXVpZCI6ICJzcGVlZGluYXRvckBsaWFtLm1vZSIsCiAgInZlcnNpb24iOiA1Cn0="},
     "46": {"version": "5", "sha256": "1y16y9lbns8qzmqydd6c0c0dsj1h9996j3j2r7h33i1wwjz9asj3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdGhlIHNwZWVkIG9mIGdub21lLXNoZWxsIGFuaW1hdGlvbnMiLAogICJuYW1lIjogIlNwZWVkaW5hdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1vZS5saWFtLnNwZWVkaW5hdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90ZWhzcXVpZGdlL3NwZWVkaW5hdG9yIiwKICAidXVpZCI6ICJzcGVlZGluYXRvckBsaWFtLm1vZSIsCiAgInZlcnNpb24iOiA1Cn0="}
   }}
-, {"uuid": "phi@ziyagenc.github.com", "name": "Phi: Pi-hole Indicator", "pname": "phi-pi-hole-indicator", "description": "Quickly access your beloved Pi-hole from GNOME Shell.\n\nPhi provides the following features:\n- Monitor single or multiple Pi-hole instances,\n- Enable/disable blocking,\n- Display status and main statistics,\n- Show version information of Pi-hole, and notify when there is an update.\n\nYou can configure Phi to specifically search for Pi-hole within a designated network. This prevents any queries from being sent if your computer is connected to a different network, such as a school, workplace, or public Wi-Fi, instead of the network where your Pi-hole is located", "link": "https://extensions.gnome.org/extension/6400/phi-pi-hole-indicator/", "shell_version_map": {
+, {"uuid": "phi@ziyagenc.github.com", "name": "Phi: Pi-hole Indicator", "pname": "phi-pi-hole-indicator", "description": "Quickly access your beloved Pi-hole from GNOME Shell.\n\nPhi provides the following features:\n- Monitor single or multiple Pi-hole instances,\n- Enable/disable blocking,\n- Display status and main statistics,\n- Show version information of Pi-hole, and notify when there is an update.\n\nYou can also configure Phi to look for Pi-hole only in a certain network. This might be useful if your computer connects to school, work or public Wi-Fi.", "link": "https://extensions.gnome.org/extension/6400/phi-pi-hole-indicator/", "shell_version_map": {
     "44": {"version": "6", "sha256": "0mdqa357d2px0ssdwxngdvdvabvvd7hg3j8c03jwfgqp36s4mn0p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBpLWhvbGUgaW5kaWNhdG9yIGZvciBHTk9NRSBTaGVsbC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJwaGlAeml5YWdlbmMuZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiUGhpOiBQaS1ob2xlIEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5waGkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veml5YWdlbmMvcGhpIiwKICAidXVpZCI6ICJwaGlAeml5YWdlbmMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="},
-    "45": {"version": "10", "sha256": "1kgk6zgjbmm9s6065ygcxvp8mdsnirwb31q419kfnrhfbw1kd6vc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBpLWhvbGUgaW5kaWNhdG9yIGZvciBHTk9NRSBTaGVsbC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJwaGlAeml5YWdlbmMuZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiUGhpOiBQaS1ob2xlIEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5waGkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veml5YWdlbmMvcGhpIiwKICAidXVpZCI6ICJwaGlAeml5YWdlbmMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMCwKICAidmVyc2lvbi1uYW1lIjogIjEuMyIKfQ=="}
+    "45": {"version": "12", "sha256": "0zvymwqqni4rsl5fcalc1bicy76mwpwd7www4f5r35ny8n9nwdqn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBpLWhvbGUgaW5kaWNhdG9yIGZvciBHTk9NRSBTaGVsbC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJwaGlAeml5YWdlbmMuZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiUGhpOiBQaS1ob2xlIEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5waGkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3ppeWFnZW5jL3BoaSIsCiAgInV1aWQiOiAicGhpQHppeWFnZW5jLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTIsCiAgInZlcnNpb24tbmFtZSI6ICIxLjUiCn0="},
+    "46": {"version": "12", "sha256": "0zvymwqqni4rsl5fcalc1bicy76mwpwd7www4f5r35ny8n9nwdqn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBpLWhvbGUgaW5kaWNhdG9yIGZvciBHTk9NRSBTaGVsbC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJwaGlAeml5YWdlbmMuZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiUGhpOiBQaS1ob2xlIEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5waGkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3ppeWFnZW5jL3BoaSIsCiAgInV1aWQiOiAicGhpQHppeWFnZW5jLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTIsCiAgInZlcnNpb24tbmFtZSI6ICIxLjUiCn0="}
   }}
 , {"uuid": "net-label@slimani.dev", "name": "NetLabel", "pname": "netlabel", "description": "Shows current download upload speed on panel \nThis extension is a Gnome 45 adaption of Net Speed by AlynxZhou", "link": "https://extensions.gnome.org/extension/6403/netlabel/", "shell_version_map": {
     "45": {"version": "1", "sha256": "0jc219z5jmx9p5gasp25fzbhnyyl1gchq0nyxn20zp70kmzg2f7f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGN1cnJlbnQgZG93bmxvYWQgdXBsb2FkIHNwZWVkIG9uIHBhbmVsIFxuVGhpcyBleHRlbnNpb24gaXMgYSBHbm9tZSA0NSBhZGFwdGlvbiBvZiBOZXQgU3BlZWQgYnkgQWx5bnhaaG91IiwKICAibmFtZSI6ICJOZXRMYWJlbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tb2gtc2xpbWFuaS9uZXQtbGFiZWwiLAogICJ1dWlkIjogIm5ldC1sYWJlbEBzbGltYW5pLmRldiIsCiAgInZlcnNpb24iOiAxCn0="}
@@ -6667,7 +6723,8 @@
     "45": {"version": "3", "sha256": "1mkpwzykp0gc9za22bbs1k16nr0k83wj44hwzsgfjcm37smh96k1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhvdmVyIG92ZXIgYSB3aW5kb3cgaW4gb3ZlcnZpZXcgbW9kZSB0byBtYWtlIGl0IGFjdGl2ZSIsCiAgIm5hbWUiOiAiT3ZlcnZpZXcgSG92ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWF0dGRhdmlzOTAvb3ZlcnZpZXctaG92ZXIiLAogICJ1dWlkIjogIm92ZXJ2aWV3aG92ZXJAbWF0dGRhdmlzOTAiLAogICJ2ZXJzaW9uIjogMwp9"}
   }}
 , {"uuid": "onedrive@client.onedrive.com", "name": "Onedrive Client", "pname": "onedrive", "description": "Show and Control Onedrive Client", "link": "https://extensions.gnome.org/extension/6493/onedrive/", "shell_version_map": {
-    "45": {"version": "5", "sha256": "1pjlj22hrr1aks3wy9sxm4lpd7lk38f0jhzdz5vxsb0gg8707925", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYW5kIENvbnRyb2wgT25lZHJpdmUgQ2xpZW50IiwKICAiZ2V0dGV4dC1kb21haW4iOiAib25lZHJpdmVAY2xpZW50Lm9uZWRyaXZlLmNvbSIsCiAgIm5hbWUiOiAiT25lZHJpdmUgQ2xpZW50IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2R2bWFzdGVyZngvT25lZHJpdmUtR25vbWUtU2hlbGwtNDUiLAogICJ1dWlkIjogIm9uZWRyaXZlQGNsaWVudC5vbmVkcml2ZS5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}
+    "45": {"version": "5", "sha256": "1pjlj22hrr1aks3wy9sxm4lpd7lk38f0jhzdz5vxsb0gg8707925", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYW5kIENvbnRyb2wgT25lZHJpdmUgQ2xpZW50IiwKICAiZ2V0dGV4dC1kb21haW4iOiAib25lZHJpdmVAY2xpZW50Lm9uZWRyaXZlLmNvbSIsCiAgIm5hbWUiOiAiT25lZHJpdmUgQ2xpZW50IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2R2bWFzdGVyZngvT25lZHJpdmUtR25vbWUtU2hlbGwtNDUiLAogICJ1dWlkIjogIm9uZWRyaXZlQGNsaWVudC5vbmVkcml2ZS5jb20iLAogICJ2ZXJzaW9uIjogNQp9"},
+    "46": {"version": "8", "sha256": "102i0fcnjpkvqxibl029smvn63593ijqs1qp8nznv5ygsa75r9bj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYW5kIENvbnRyb2wgT25lZHJpdmUgQ2xpZW50IiwKICAiZ2V0dGV4dC1kb21haW4iOiAib25lZHJpdmVAY2xpZW50Lm9uZWRyaXZlLmNvbSIsCiAgIm5hbWUiOiAiT25lZHJpdmUgQ2xpZW50IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2R2bWFzdGVyZngvT25lZHJpdmUtR25vbWUtU2hlbGwtNDUiLAogICJ1dWlkIjogIm9uZWRyaXZlQGNsaWVudC5vbmVkcml2ZS5jb20iLAogICJ2ZXJzaW9uIjogOAp9"}
   }}
 , {"uuid": "system-stats-plus@remulo.costa.gmail.com", "name": "SystemStatsPlus", "pname": "systemstatsplus", "description": "SystemStatsPlus is ease user-friendly GNOME extension that provides real-time visualization of key system resources.\nThis extension is an essential tool for anyone looking to keep a close eye on their system's performance.\n\nKey Features:\n\n- Per CPU core/processor utilization\n- RAM utilization\n- Swap memory utilization\n- Network utilization\n\nIn addition to utilization displayed in the tray, it offers drop down display of historical utilizations.\n\nTo display the usage history, just position the mouse cursor over the item.\n\nIt's a refined fork of the original, but now seemingly inactive, gnome-stats-pro https://github.com/tpenguin/gnome-stats-pro\n\nIf you get an error after updating, try restarting Gnome Shell with Alt-F2 then 'r' (or logout/login under Wayland).", "link": "https://extensions.gnome.org/extension/6502/systemstatsplus/", "shell_version_map": {
     "45": {"version": "2", "sha256": "1dfjz3spbbk18wr1jsp6xbky3mc7d64zbpxpxg4bgvv39j1gz337", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJSZW11bG8gQ29zdGEgPHJlbXVsby5jb3N0YUBnbWFpbC5jb20+IiwKICAiZGVzY3JpcHRpb24iOiAiU3lzdGVtU3RhdHNQbHVzIGEgcm9idXN0IGFuZCB1c2VyLWZyaWVuZGx5IEdOT01FIGV4dGVuc2lvbiB0aGF0IHByb3ZpZGVzIHJlYWwtdGltZSB2aXN1YWxpemF0aW9uIG9mIGtleSBzeXN0ZW0gcmVzb3VyY2VzLlxuXG5JdCdzIGEgcmVmaW5lZCBmb3JrIG9mIHRoZSBvcmlnaW5hbCwgYnV0IG5vdyBzZWVtaW5nbHkgaW5hY3RpdmUsIGdub21lLXN0YXRzLXBybyBodHRwczovL2dpdGh1Yi5jb20vdHBlbmd1aW4vZ25vbWUtc3RhdHMtcHJvXG5cblRoaXMgZXh0ZW5zaW9uIGlzIGFuIGVzc2VudGlhbCB0b29sIGZvciBhbnlvbmUgbG9va2luZyB0byBrZWVwIGEgY2xvc2UgZXllIG9uIHRoZWlyIHN5c3RlbSdzIHBlcmZvcm1hbmNlLlxuXG5LZXkgRmVhdHVyZXM6XG5cbi0gUGVyIENQVSBjb3JlL3Byb2Nlc3NvciB1dGlsaXphdGlvblxuLSBSQU0gdXRpbGl6YXRpb25cbi0gU3dhcCBtZW1vcnkgdXRpbGl6YXRpb25cbi0gTmV0d29yayB1dGlsaXphdGlvblxuXG5JbiBhZGRpdGlvbiB0byB1dGlsaXphdGlvbiBkaXNwbGF5ZWQgaW4gdGhlIHRyYXksIGl0IG9mZmVycyBkcm9wIGRvd24gZGlzcGxheSBvZiBoaXN0b3JpY2FsIHV0aWxpemF0aW9ucy5cblxuSWYgeW91IGdldCBhbiBlcnJvciBhZnRlciB1cGRhdGluZywgdHJ5IHJlc3RhcnRpbmcgR25vbWUgU2hlbGwgd2l0aCBBbHQtRjIgdGhlbiAncicgKG9yIGxvZ291dC9sb2dpbiB1bmRlciBXYXlsYW5kKS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzeXN0ZW0tc3RhdHMtcGx1cyIsCiAgIm5hbWUiOiAiU3lzdGVtU3RhdHNQbHVzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImpvZUB0aHJhbGxpbmdwZW5ndWluLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yZW11bG9jb3N0YS9zeXN0ZW0tc3RhdHMtcGx1cyIsCiAgInV1aWQiOiAic3lzdGVtLXN0YXRzLXBsdXNAcmVtdWxvLmNvc3RhLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyLAogICJ2ZXJzaW9uLW5hbWUiOiAiMC4xLjAiCn0="}
@@ -6691,11 +6748,12 @@
 , {"uuid": "todo-list@speedflyer689.github.com", "name": "Todo list", "pname": "todo-list", "description": "Adds a todo list to the notification panel", "link": "https://extensions.gnome.org/extension/6526/todo-list/", "shell_version_map": {
     "38": {"version": "3", "sha256": "06hqbrk894bi0acilq4vg5a3h3gjmkmi1jv7vmaws0bn7gzqafjx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSB0b2RvIGxpc3QgdG8gdGhlIG5vdGlmaWNhdGlvbiBwYW5lbCIsCiAgIm5hbWUiOiAiVG9kbyBsaXN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU3BlZWRmbHllcjY4OS9Hbm9tZS1Ub2RvLUxpc3QiLAogICJ1dWlkIjogInRvZG8tbGlzdEBzcGVlZGZseWVyNjg5LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}
   }}
-, {"uuid": "logowidget@github.com.howbea", "name": "Logo Widget", "pname": "logo-widget", "description": "Add a logo to the desktop. This is a fork of Background Logo extension \n https://extensions.gnome.org/extension/889/background-logo/ \n https://pagure.io/background-logo-extension", "link": "https://extensions.gnome.org/extension/6529/logo-widget/", "shell_version_map": {
+, {"uuid": "logowidget@github.com.howbea", "name": "Desktop Logo", "pname": "logo-widget", "description": "Add a logo to the desktop. \n This is a fork of Background Logo extension \n https://extensions.gnome.org/extension/889/background-logo/", "link": "https://extensions.gnome.org/extension/6529/logo-widget/", "shell_version_map": {
     "42": {"version": "10", "sha256": "05xba9h9d1939fgc05xizc0ds0c014ycmwg2ax461pgjy218xfkb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGxvZ28gdG8gdGhlIGRlc2t0b3AuIFRoaXMgaXMgYSBmb3JrIG9mIEJhY2tncm91bmQgTG9nbyBleHRlbnNpb24gXG4gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vODg5L2JhY2tncm91bmQtbG9nby8gXG4gaHR0cHM6Ly9wYWd1cmUuaW8vYmFja2dyb3VuZC1sb2dvLWV4dGVuc2lvbiIsCiAgIm5hbWUiOiAiTG9nbyBXaWRnZXQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubG9nby13aWRnZXQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ob3diZWEvbG9nby13aWRnZXQiLAogICJ1dWlkIjogImxvZ293aWRnZXRAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogMTAKfQ=="},
     "43": {"version": "10", "sha256": "05xba9h9d1939fgc05xizc0ds0c014ycmwg2ax461pgjy218xfkb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGxvZ28gdG8gdGhlIGRlc2t0b3AuIFRoaXMgaXMgYSBmb3JrIG9mIEJhY2tncm91bmQgTG9nbyBleHRlbnNpb24gXG4gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vODg5L2JhY2tncm91bmQtbG9nby8gXG4gaHR0cHM6Ly9wYWd1cmUuaW8vYmFja2dyb3VuZC1sb2dvLWV4dGVuc2lvbiIsCiAgIm5hbWUiOiAiTG9nbyBXaWRnZXQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubG9nby13aWRnZXQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ob3diZWEvbG9nby13aWRnZXQiLAogICJ1dWlkIjogImxvZ293aWRnZXRAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogMTAKfQ=="},
     "44": {"version": "13", "sha256": "0qzqk7rfcgyi9hx1yjpmx05bgb9x7bscmbw5r31119pl4q7syn9p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGxvZ28gdG8gdGhlIGRlc2t0b3AuIFRoaXMgaXMgYSBmb3JrIG9mIEJhY2tncm91bmQgTG9nbyBleHRlbnNpb24gXG4gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vODg5L2JhY2tncm91bmQtbG9nby8gXG4gaHR0cHM6Ly9wYWd1cmUuaW8vYmFja2dyb3VuZC1sb2dvLWV4dGVuc2lvbiIsCiAgIm5hbWUiOiAiTG9nbyBXaWRnZXQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubG9nby13aWRnZXQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL2xvZ28td2lkZ2V0IiwKICAidXVpZCI6ICJsb2dvd2lkZ2V0QGdpdGh1Yi5jb20uaG93YmVhIiwKICAidmVyc2lvbiI6IDEzCn0="},
-    "45": {"version": "12", "sha256": "1zykpyzm7s19db4g2kl3p9nlywzag3rg1331mjq6vscsky2y5iy9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGxvZ28gdG8gdGhlIGRlc2t0b3AuIFxuIFRoaXMgaXMgYSBmb3JrIG9mIEJhY2tncm91bmQgTG9nbyBleHRlbnNpb24gXG4gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vODg5L2JhY2tncm91bmQtbG9nby8iLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogImhvd2JlYSIKICB9LAogICJuYW1lIjogIkRlc2t0b3AgTG9nbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sb2dvLXdpZGdldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ob3diZWEvbG9nby13aWRnZXQiLAogICJ1dWlkIjogImxvZ293aWRnZXRAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogMTIKfQ=="}
+    "45": {"version": "12", "sha256": "1zykpyzm7s19db4g2kl3p9nlywzag3rg1331mjq6vscsky2y5iy9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGxvZ28gdG8gdGhlIGRlc2t0b3AuIFxuIFRoaXMgaXMgYSBmb3JrIG9mIEJhY2tncm91bmQgTG9nbyBleHRlbnNpb24gXG4gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vODg5L2JhY2tncm91bmQtbG9nby8iLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogImhvd2JlYSIKICB9LAogICJuYW1lIjogIkRlc2t0b3AgTG9nbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sb2dvLXdpZGdldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ob3diZWEvbG9nby13aWRnZXQiLAogICJ1dWlkIjogImxvZ293aWRnZXRAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogMTIKfQ=="},
+    "46": {"version": "14", "sha256": "1nx75ykn5c0b191k9rsr151m0jj5pllhpa4pp0ap39979ny1c3zg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGxvZ28gdG8gdGhlIGRlc2t0b3AuIFxuIFRoaXMgaXMgYSBmb3JrIG9mIEJhY2tncm91bmQgTG9nbyBleHRlbnNpb24gXG4gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vODg5L2JhY2tncm91bmQtbG9nby8iLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogImhvd2JlYSIKICB9LAogICJuYW1lIjogIkRlc2t0b3AgTG9nbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sb2dvLXdpZGdldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ob3diZWEvbG9nby13aWRnZXQiLAogICJ1dWlkIjogImxvZ293aWRnZXRAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}
   }}
 , {"uuid": "azan@a7medkhalaf", "name": "xAzanTimes", "pname": "xazantimes", "description": "Azan is an Islamic prayer times extension for Gnome Shell.\nIt's a fork of the extension by faissaloo.\n\nFeatures\n- List compulsory prayer times\n- Optionally display Imsak, Sunrise, Sunset and Midnight\n- Show remaining time for the upcoming prayer.\n- Show current date in Hijri calendar.\n- Display a notification when it's time for prayer.\n- Automatic Geoclue2 location detection\n- Show times in 24 hour and 12 hour formats\n- Hijri date adjusment\n- Iqamah option", "link": "https://extensions.gnome.org/extension/6538/xazantimes/", "shell_version_map": {
     "45": {"version": "7", "sha256": "1h23vjk96fyyx11zvyp22b0iwjy531mn4c4jm53y0fq88g76s0jb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF6YW4gaXMgYW4gSXNsYW1pYyBwcmF5ZXIgdGltZXMgZXh0ZW5zaW9uIGZvciBHbm9tZSBTaGVsbC5cbkl0J3MgYSBmb3JrIG9mIHRoZSBleHRlbnNpb24gYnkgZmFpc3NhbG9vLlxuXG5GZWF0dXJlc1xuLSBMaXN0IGNvbXB1bHNvcnkgcHJheWVyIHRpbWVzXG4tIE9wdGlvbmFsbHkgZGlzcGxheSBJbXNhaywgU3VucmlzZSwgU3Vuc2V0IGFuZCBNaWRuaWdodFxuLSBTaG93IHJlbWFpbmluZyB0aW1lIGZvciB0aGUgdXBjb21pbmcgcHJheWVyLlxuLSBTaG93IGN1cnJlbnQgZGF0ZSBpbiBIaWpyaSBjYWxlbmRhci5cbi0gRGlzcGxheSBhIG5vdGlmaWNhdGlvbiB3aGVuIGl0J3MgdGltZSBmb3IgcHJheWVyLlxuLSBBdXRvbWF0aWMgR2VvY2x1ZTIgbG9jYXRpb24gZGV0ZWN0aW9uXG4tIFNob3cgdGltZXMgaW4gMjQgaG91ciBhbmQgMTIgaG91ciBmb3JtYXRzXG4tIEhpanJpIGRhdGUgYWRqdXNtZW50XG4tIElxYW1haCBvcHRpb24iLAogICJuYW1lIjogInhBemFuVGltZXMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXphbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hN21lZGtoYWxhZi9hemFuLWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiYXphbkBhN21lZGtoYWxhZiIsCiAgInZlcnNpb24iOiA3Cn0="}
@@ -6744,7 +6802,7 @@
     "45": {"version": "15", "sha256": "19d723mjg08yg1n9dlas0qv03gsqvsmjy5cmq3cl05l5r0jixf77", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBvbiB0b3AgYnV0dG9uIGluIHRoZSB0b3AgYmFyIiwKICAiZXh0ZW5zaW9uLWlkIjogIk9uVGhlVG9wIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiT25UaGVUb3AiLAogICJuYW1lIjogIk9uIFRoZSBUb3AiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMub24tdGhlLXRvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZmFibGV2aS9PblRoZVRvcCIsCiAgInV1aWQiOiAiT25UaGVUb3BAZmFibGV2aS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTUKfQ=="},
     "46": {"version": "15", "sha256": "19d723mjg08yg1n9dlas0qv03gsqvsmjy5cmq3cl05l5r0jixf77", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBvbiB0b3AgYnV0dG9uIGluIHRoZSB0b3AgYmFyIiwKICAiZXh0ZW5zaW9uLWlkIjogIk9uVGhlVG9wIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiT25UaGVUb3AiLAogICJuYW1lIjogIk9uIFRoZSBUb3AiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMub24tdGhlLXRvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZmFibGV2aS9PblRoZVRvcCIsCiAgInV1aWQiOiAiT25UaGVUb3BAZmFibGV2aS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTUKfQ=="}
   }}
-, {"uuid": "openbar@neuromorph", "name": "Open Bar", "pname": "open-bar", "description": "Top Bar ( Top Panel ) customization / styling. Open the Top Bar and let the colors 🍹 flow.\n\n**Please report on GitHub if something is broken due to an update or if you have any suggestions.\n\nUpdate (v29/v30): Bug Fix for extension disable, introduced by v27/v28\nUpdate ( v27/v28 ): \n- Compatibility with more extensions: Fullscreen Avoider,  Lunar Calendar, Dash-to-Panel* and others**.\n- New option to apply the panel menu styles to all the shell pop-ups\n- Calendar day with event - dot indicator fix and toggle switch update fix\n* Dash-to-Panel: You may have to turn on 'Apply menu styles to shell' under 'Beyond Bar' in settings. Also , in case of a crash, check issue #26 in Github.\n** Others: Some extensions do not use standard widget and API (e.g. PanelMenu Button and main.addToStatusArea) when adding indicator to Panel and fixing that makes them work correctly with Open Bar or user themes.\n\nFeatures from recent updates:\n- Auto FG option to automatically switch (black/white) FG color based on widget background\n- Option to set Panel Box / Margins BG color\n- Light-Gradient option for Menu background\n- More tweaks for Border width and radius to change the way the Bar/Buttons look\n-  Auto-theming options \n-  Import, export theme settings to file.\n-  Window-Max Bar: Change Bar props when a window is maximized\n-  More settings in Menus: Menu panel and buttons radius, slider tweaks\n\nAuto Theming:\n- Note: If you want to save your current settings, please use Export Settings option before applying Auto-theme. You can import it back whenever needed.\n- Please select Bar properties esp. type of bar before applying a theme. If you change Bar type later, apply theme again.\n- There are three theme options: 'Color', 'Dark', 'Light' and two variations for each: 'Default', 'Alt'.  Try all combinations to see what you prefer for your desktop background. (Default and Alt maybe very similar or distinct depending on the background palette).\n- There are more settings in Auto-Theme. You can select if you want the secondary menu BG color to be derived from BG or auto-selected from palette. Also, you can specify any preferred accent color or let the theme choose from the background. \n- Since it is one size fit all solution, 'No Free Lunch' theorem applies. Not all options will work for all backgrounds, so the additional knobs above will help you select the desired one. One of the combinations should work for you at least with little bit tweaking if needed.\n- Once theme is applied, you can further tweak any of the manual settings, as usual, to finetune the theme. \n- There is an option for Auto-refreshing theme when background changes. This will overwrite current theme with newly generated one when background is changed.  \n\nCustomize:\n- Bar Type: Fixed, Floating or Islands / Trilands\n- Bar position, height, margin, paddings\n- Bar foreground color, font\n- Bar background color, transparency, gradient, shadow, highlights, candybar \n- Shape rectangular to pill, border width, color, neon glow\n- Menu customizations: foreground, background colors, transparency, border, shadow,  active/selection, hover colors\netc.\n- Apply to notification popups\n- Includes a custom color palette, under the default palette, in each color button popup. The palette is auto-generated from the desktop background.\n\n\nIf the panel/menu isn't looking right, you need to tweak some settings. There are a lot of knobs to allow for different setups/tastes. It can also make it a bit overwhelming if you are not familiar with css styles but with some experimentation it will become a lot easier. Here are brief notes:\n- BG/FG color: Background or Foreground colors. Foreground is typically text and icons.\n- Alpha: Transparency for the color. 0 is transparent while 1 is opaque.\n- Panel BG will affect the bar while Tri/Islands BG will affect the individual indicator buttons/combos (in Trilands/Islands mode).\n- Gradient goes from Start color to End color. If you want a single color fading, select same color for both with different Alphas. e.g. Setting end color alpha to 0 will form a gradient from Start color to transparent.\n- Highlight color: It is the background color upon hover or focus. You can choose to highlight with border instead.\n- Vertical padding: Controls size of highlights in Mainland/Floating. Also controls size of Islands/Trilands. Increase height if padding squeezes the text.\n- Panel Shadow: a downward shadow for the panel bar. Shadow Spread controls both shadow transparency and spread together.\n- Border: \n    = Width controls thickness (grows inwards for Islands). Adjust bar height accordingly, after setting border width.  \n    = Radius will control the shape from rectangle at radius 0 to Pill at radius close to bar height. \n    = Neon glow: adds a neon-light like glow to the border. You need dark, relatively opaque background with bright/neon colored, relatively opaque border. Neon will override Panel shadow in Mainland and Floating mode.\n - Menus: \n    = FG/BG, border, highlight are similar to above but for menus.\n    = Selected/active color is for menu items that are active e.g. Today's day in Calendar or WiFi in Quick Settings or even an active menu item with opened submenu. \n    = Shadow applies to the panel menu. Use white/bright color in dark theme and black/dark color in light theme for the effect to show and help with contrast. Using same color as menu border is also a good idea. Use the Alphas for both border and shadow to increase or reduce their effect.\n    = Once enabled, menu settings now also apply as soon as changed. You need to press 'Apply Menu Styles' button to enable the menu style. 'Reset Menu Styles' button will remove all menu styles and revert to your default theme.\n\nLastly, be a tiny bit gentler with the sliders in the settings as they modify the stylesheet behind the scene for every update.", "link": "https://extensions.gnome.org/extension/6580/open-bar/", "shell_version_map": {
+, {"uuid": "openbar@neuromorph", "name": "Open Bar", "pname": "open-bar", "description": "Top Bar ( Top Panel ) customization / styling. Open the Top Bar and let the colors 🍹 flow.\n\n**Please report on GitHub if something is broken due to an update or if you have any suggestions.\n\nUPCOMING:\nOpen Bar 2.0: \n- Auto-theming completely renewed\n- Apply styles to Bar, Menu, Dash/Dock and rest of the shell\n- Apply accent color to Gtk/Flatpak apps\n\nUpdate (v29/v30): \n- Compatibility with more extensions: Fullscreen Avoider,  Lunar Calendar, Dash-to-Panel* and others**.\n- New option to apply the panel menu styles to all the shell pop-ups\n- Calendar day with event - dot indicator fix and toggle switch update fix\n* Dash-to-Panel: You may have to turn on 'Apply menu styles to shell' under 'Beyond Bar' in settings. Also , in case of a crash, check issue #26 in Github.\n** Others: Some extensions do not use standard widget and API (e.g. PanelMenu Button and main.addToStatusArea) when adding indicator to Panel and fixing that makes them work correctly with Open Bar or user themes.\n\nFeatures from recent updates:\n- Auto FG option to automatically switch (black/white) FG color based on widget background\n- Option to set Panel Box / Margins BG color\n- Light-Gradient option for Menu background\n- More tweaks for Border width and radius to change the way the Bar/Buttons look\n-  Auto-theming options \n-  Import, export theme settings to file.\n-  Window-Max Bar: Change Bar props when a window is maximized\n-  More settings in Menus: Menu panel and buttons radius, slider tweaks\n\nAuto Theming:\n- Note: If you want to save your current settings, please use Export Settings option before applying Auto-theme. You can import it back whenever needed.\n- Please select Bar properties esp. type of bar before applying a theme. If you change Bar type later, apply theme again.\n- There are three theme options: 'Color', 'Dark', 'Light' and two variations for each: 'Default', 'Alt'.  Try all combinations to see what you prefer for your desktop background. (Default and Alt maybe very similar or distinct depending on the background palette).\n- There are more settings in Auto-Theme. You can select if you want the secondary menu BG color to be derived from BG or auto-selected from palette. Also, you can specify any preferred accent color or let the theme choose from the background. \n- Since it is one size fit all solution, 'No Free Lunch' theorem applies. Not all options will work for all backgrounds, so the additional knobs above will help you select the desired one. One of the combinations should work for you at least with little bit tweaking if needed.\n- Once theme is applied, you can further tweak any of the manual settings, as usual, to finetune the theme. \n- There is an option for Auto-refreshing theme when background changes. This will overwrite current theme with newly generated one when background is changed.  \n\nCustomize:\n- Bar Type: Fixed, Floating or Islands / Trilands\n- Bar position, height, margin, paddings\n- Bar foreground color, font\n- Bar background color, transparency, gradient, shadow, highlights, candybar \n- Shape rectangular to pill, border width, color, neon glow\n- Menu customizations: foreground, background colors, transparency, border, shadow,  active/selection, hover colors\netc.\n- Apply to notification popups\n- Includes a custom color palette, under the default palette, in each color button popup. The palette is auto-generated from the desktop background.\n\n\nIf the panel/menu isn't looking right, you need to tweak some settings. There are a lot of knobs to allow for different setups/tastes. It can also make it a bit overwhelming if you are not familiar with css styles but with some experimentation it will become a lot easier. Here are brief notes:\n- BG/FG color: Background or Foreground colors. Foreground is typically text and icons.\n- Alpha: Transparency for the color. 0 is transparent while 1 is opaque.\n- Panel BG will affect the bar while Tri/Islands BG will affect the individual indicator buttons/combos (in Trilands/Islands mode).\n- Gradient goes from Start color to End color. If you want a single color fading, select same color for both with different Alphas. e.g. Setting end color alpha to 0 will form a gradient from Start color to transparent.\n- Highlight color: It is the background color upon hover or focus. You can choose to highlight with border instead.\n- Vertical padding: Controls size of highlights in Mainland/Floating. Also controls size of Islands/Trilands. Increase height if padding squeezes the text.\n- Panel Shadow: a downward shadow for the panel bar. Shadow Spread controls both shadow transparency and spread together.\n- Border: \n    = Width controls thickness (grows inwards for Islands). Adjust bar height accordingly, after setting border width.  \n    = Radius will control the shape from rectangle at radius 0 to Pill at radius close to bar height. \n    = Neon glow: adds a neon-light like glow to the border. You need dark, relatively opaque background with bright/neon colored, relatively opaque border. Neon will override Panel shadow in Mainland and Floating mode.\n - Menus: \n    = FG/BG, border, highlight are similar to above but for menus.\n    = Selected/active color is for menu items that are active e.g. Today's day in Calendar or WiFi in Quick Settings or even an active menu item with opened submenu. \n    = Shadow applies to the panel menu. Use white/bright color in dark theme and black/dark color in light theme for the effect to show and help with contrast. Using same color as menu border is also a good idea. Use the Alphas for both border and shadow to increase or reduce their effect.\n    = Once enabled, menu settings now also apply as soon as changed. You need to press 'Apply Menu Styles' button to enable the menu style. 'Reset Menu Styles' button will remove all menu styles and revert to your default theme.\n\nLastly, be a tiny bit gentler with the sliders in the settings as they modify the stylesheet behind the scene for every update.", "link": "https://extensions.gnome.org/extension/6580/open-bar/", "shell_version_map": {
     "42": {"version": "29", "sha256": "070jphah7b34hf7mrq0gcz2bm30ydrgpy0c7rngn9nl2vdhbxkcn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvcCBCYXIgKCBUb3AgUGFuZWwgKSBjdXN0b21pemF0aW9uIC8gc3R5bGluZy4gT3BlbiB0aGUgVG9wIEJhciBhbmQgbGV0IHRoZSBjb2xvcnMgXHVkODNjXHVkZjc5IGZsb3cuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJuZXVyb21vcnBoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIm9wZW5iYXIiLAogICJuYW1lIjogIk9wZW4gQmFyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9wZW5iYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uZXVyb21vcnBoL29wZW5iYXIiLAogICJ1dWlkIjogIm9wZW5iYXJAbmV1cm9tb3JwaCIsCiAgInZlcnNpb24iOiAyOQp9"},
     "43": {"version": "29", "sha256": "070jphah7b34hf7mrq0gcz2bm30ydrgpy0c7rngn9nl2vdhbxkcn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvcCBCYXIgKCBUb3AgUGFuZWwgKSBjdXN0b21pemF0aW9uIC8gc3R5bGluZy4gT3BlbiB0aGUgVG9wIEJhciBhbmQgbGV0IHRoZSBjb2xvcnMgXHVkODNjXHVkZjc5IGZsb3cuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJuZXVyb21vcnBoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIm9wZW5iYXIiLAogICJuYW1lIjogIk9wZW4gQmFyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9wZW5iYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uZXVyb21vcnBoL29wZW5iYXIiLAogICJ1dWlkIjogIm9wZW5iYXJAbmV1cm9tb3JwaCIsCiAgInZlcnNpb24iOiAyOQp9"},
     "44": {"version": "29", "sha256": "070jphah7b34hf7mrq0gcz2bm30ydrgpy0c7rngn9nl2vdhbxkcn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvcCBCYXIgKCBUb3AgUGFuZWwgKSBjdXN0b21pemF0aW9uIC8gc3R5bGluZy4gT3BlbiB0aGUgVG9wIEJhciBhbmQgbGV0IHRoZSBjb2xvcnMgXHVkODNjXHVkZjc5IGZsb3cuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJuZXVyb21vcnBoIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIm9wZW5iYXIiLAogICJuYW1lIjogIk9wZW4gQmFyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm9wZW5iYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uZXVyb21vcnBoL29wZW5iYXIiLAogICJ1dWlkIjogIm9wZW5iYXJAbmV1cm9tb3JwaCIsCiAgInZlcnNpb24iOiAyOQp9"},
@@ -6769,7 +6827,8 @@
     "45": {"version": "3", "sha256": "0d3rk4ygvabw865frf4pv687fmdsshd7287w8k2klcwgszj04v43", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBhbGxvdyB0aGUgdXNlIG9mIHRoZSBvbnNjcmVlbiBrZXlib2FyZCAob3NrKSwgcmVnYXJkbGVzcyBvZiB0b3VjaC90YWJsZXQgbW9kZS4iLAogICJuYW1lIjogIkFsd2F5cyBhbGxvdyBvbnNjcmVlbiBrZXlib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kdmR6bXIvYWx3YXlzLXNob3ctb25zY3JlZW4ta2V5Ym9hcmQiLAogICJ1dWlkIjogImFsd2F5cy1hbGxvdy1vbnNjcmVlbi1rZXlib2FyZEBkdmR6bXIuZXh0ZW5zaW9uIiwKICAidmVyc2lvbiI6IDMKfQ=="}
   }}
 , {"uuid": "dev-container-manager@devopsnextgenx", "name": "docker podman kind kubernetes cluster container manager", "pname": "dev-container-manager", "description": "Gnome Extension to enable cicd/container/kubernetes and cloud resource handling. you can use docker, podman and use kubernetes clusters with kind. Added resize, delete container and filter active containers.", "link": "https://extensions.gnome.org/extension/6601/dev-container-manager/", "shell_version_map": {
-    "45": {"version": "21", "sha256": "1pakhrkhfmjxmry6n2v8dbciq1mpcdclyhvn4cin84gwsdhalfcc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIEV4dGVuc2lvbiB0byBlbmFibGUgY2ljZC9jb250YWluZXIva3ViZXJuZXRlcyBhbmQgY2xvdWQgcmVzb3VyY2UgaGFuZGxpbmcuIHlvdSBjYW4gdXNlIGRvY2tlciwgcG9kbWFuIGFuZCB1c2Uga3ViZXJuZXRlcyBjbHVzdGVycyB3aXRoIGtpbmQuIEFkZGVkIHJlc2l6ZSwgZGVsZXRlIGNvbnRhaW5lciBhbmQgZmlsdGVyIGFjdGl2ZSBjb250YWluZXJzLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJrb2ZpIjogImRldm9wc25leHRnZW54IgogIH0sCiAgIm5hbWUiOiAiZG9ja2VyIHBvZG1hbiBraW5kIGt1YmVybmV0ZXMgY2x1c3RlciBjb250YWluZXIgbWFuYWdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kZXYtY29udGFpbmVyLW1hbmFnZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGV2b3BzbmV4dGdlbngvZ25vbWUtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiZGV2LWNvbnRhaW5lci1tYW5hZ2VyQGRldm9wc25leHRnZW54IiwKICAidmVyc2lvbiI6IDIxLAogICJ2ZXJzaW9uLW5hbWUiOiAiMC4wLjgiCn0="}
+    "45": {"version": "23", "sha256": "05vdng19gl3rrrjmzsfbhgfwnsgd7y1l9njsvqsbibrflxc24cpz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIEV4dGVuc2lvbiB0byBlbmFibGUgY2ljZC9jb250YWluZXIva3ViZXJuZXRlcyBhbmQgY2xvdWQgcmVzb3VyY2UgaGFuZGxpbmcuIHlvdSBjYW4gdXNlIGRvY2tlciwgcG9kbWFuIGFuZCB1c2Uga3ViZXJuZXRlcyBjbHVzdGVycyB3aXRoIGtpbmQuIEFkZGVkIHJlc2l6ZSwgZGVsZXRlIGNvbnRhaW5lciBhbmQgZmlsdGVyIGFjdGl2ZSBjb250YWluZXJzLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJrb2ZpIjogImRldm9wc25leHRnZW54IgogIH0sCiAgIm5hbWUiOiAiZG9ja2VyIHBvZG1hbiBraW5kIGt1YmVybmV0ZXMgY2x1c3RlciBjb250YWluZXIgbWFuYWdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kZXYtY29udGFpbmVyLW1hbmFnZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Rldm9wc25leHRnZW54L2dub21lLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImRldi1jb250YWluZXItbWFuYWdlckBkZXZvcHNuZXh0Z2VueCIsCiAgInZlcnNpb24iOiAyMywKICAidmVyc2lvbi1uYW1lIjogIjAuMC44Igp9"},
+    "46": {"version": "23", "sha256": "05vdng19gl3rrrjmzsfbhgfwnsgd7y1l9njsvqsbibrflxc24cpz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIEV4dGVuc2lvbiB0byBlbmFibGUgY2ljZC9jb250YWluZXIva3ViZXJuZXRlcyBhbmQgY2xvdWQgcmVzb3VyY2UgaGFuZGxpbmcuIHlvdSBjYW4gdXNlIGRvY2tlciwgcG9kbWFuIGFuZCB1c2Uga3ViZXJuZXRlcyBjbHVzdGVycyB3aXRoIGtpbmQuIEFkZGVkIHJlc2l6ZSwgZGVsZXRlIGNvbnRhaW5lciBhbmQgZmlsdGVyIGFjdGl2ZSBjb250YWluZXJzLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJrb2ZpIjogImRldm9wc25leHRnZW54IgogIH0sCiAgIm5hbWUiOiAiZG9ja2VyIHBvZG1hbiBraW5kIGt1YmVybmV0ZXMgY2x1c3RlciBjb250YWluZXIgbWFuYWdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kZXYtY29udGFpbmVyLW1hbmFnZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Rldm9wc25leHRnZW54L2dub21lLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImRldi1jb250YWluZXItbWFuYWdlckBkZXZvcHNuZXh0Z2VueCIsCiAgInZlcnNpb24iOiAyMywKICAidmVyc2lvbi1uYW1lIjogIjAuMC44Igp9"}
   }}
 , {"uuid": "move-to-next-screen@wosar.me", "name": "Move To Next Screen", "pname": "move-to-next-screen", "description": "Adds a keyboard shortcut (CTRL+SHIFT+PAGEUP) to move the current window to the next screen.", "link": "https://extensions.gnome.org/extension/6610/move-to-next-screen/", "shell_version_map": {
     "45": {"version": "1", "sha256": "0n28xnphka81ajypqwnbjpm24zwa8sdan3wzsan68f4raz9bf5xy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBrZXlib2FyZCBzaG9ydGN1dCB0byBtb3ZlIHRoZSBjdXJyZW50IHdpbmRvdyB0byB0aGUgbmV4dCBzY3JlZW4iLAogICJuYW1lIjogIk1vdmUgVG8gTmV4dCBTY3JlZW4iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubW92ZS10by1uZXh0LXNjcmVlbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9md29zYXIvbW92ZS10by1uZXh0LXNjcmVlbiIsCiAgInV1aWQiOiAibW92ZS10by1uZXh0LXNjcmVlbkB3b3Nhci5tZSIsCiAgInZlcnNpb24iOiAxCn0="}
@@ -6808,8 +6867,8 @@
     "44": {"version": "9", "sha256": "10i3chc6vzsw04a5jm8p39rlkj7klz96g4979gvia7j6xfpcs1bc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgJiBIaWRlIGljb25zIGZyb20gdGhlIHRvcCBwYW5lbCIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1pY29uaGlkZXJ1cGRhdGVkIiwKICAibmFtZSI6ICJJY29uIEhpZGVyIFVwZGF0ZWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaWNvbi1oaWRlci11cGRhdGVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9seDM1OGhjbC9saW51eGljb25oaWRlcnVwZGF0ZWQiLAogICJ1dWlkIjogImljb24taGlkZXItdXBkYXRlZEBseDM1OGhjbC5jb20iLAogICJ2ZXJzaW9uIjogOQp9"}
   }}
 , {"uuid": "openweather-extension@penguin-teal.github.io", "name": "OpenWeather Refined", "pname": "openweather", "description": "Display weather for the current or a specified location. Fork of OpenWeather.\nWeather data is provided by OpenWeatherMap.org or WeatherAPI.com.\nIf location is set to \"My Location,\" which is the case by default on laptops, this extension will use location services and Nominatim (from openstreetmap.org), or infoip.io if that failed.", "link": "https://extensions.gnome.org/extension/6655/openweather/", "shell_version_map": {
-    "45": {"version": "13", "sha256": "05cdybcfbzv15k3dk6fqckp9s3z7n5wcfsgv2zvrjlvp78yj3q6c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgd2VhdGhlciBmb3IgdGhlIGN1cnJlbnQgb3IgYSBzcGVjaWZpZWQgbG9jYXRpb24uIEZvcmsgb2YgT3BlbldlYXRoZXIuXG5XZWF0aGVyIGRhdGEgaXMgcHJvdmlkZWQgYnkgT3BlbldlYXRoZXJNYXAub3JnIG9yIFdlYXRoZXJBUEkuY29tLlxuSWYgbG9jYXRpb24gaXMgc2V0IHRvIFwiTXkgTG9jYXRpb24sXCIgd2hpY2ggaXMgdGhlIGNhc2UgYnkgZGVmYXVsdCBvbiBsYXB0b3BzLCB0aGlzIGV4dGVuc2lvbiB3aWxsIHVzZSBsb2NhdGlvbiBzZXJ2aWNlcyBhbmQgTm9taW5hdGltIChmcm9tIG9wZW5zdHJlZXRtYXAub3JnKSwgb3IgaW5mb2lwLmlvIGlmIHRoYXQgZmFpbGVkLiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1vcGVud2VhdGhlcnJlZmluZWQiLAogICJnaXQtdmVyc2lvbiI6ICIxMzQucjAuZ2YyZDczOWUiLAogICJuYW1lIjogIk9wZW5XZWF0aGVyIFJlZmluZWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMub3BlbndlYXRoZXJyZWZpbmVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wZW5ndWluLXRlYWwvZ25vbWUtb3BlbndlYXRoZXIiLAogICJ1dWlkIjogIm9wZW53ZWF0aGVyLWV4dGVuc2lvbkBwZW5ndWluLXRlYWwuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDEzLAogICJ2ZXJzaW9uLW5hbWUiOiAiMTM0Igp9"},
-    "46": {"version": "13", "sha256": "05cdybcfbzv15k3dk6fqckp9s3z7n5wcfsgv2zvrjlvp78yj3q6c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgd2VhdGhlciBmb3IgdGhlIGN1cnJlbnQgb3IgYSBzcGVjaWZpZWQgbG9jYXRpb24uIEZvcmsgb2YgT3BlbldlYXRoZXIuXG5XZWF0aGVyIGRhdGEgaXMgcHJvdmlkZWQgYnkgT3BlbldlYXRoZXJNYXAub3JnIG9yIFdlYXRoZXJBUEkuY29tLlxuSWYgbG9jYXRpb24gaXMgc2V0IHRvIFwiTXkgTG9jYXRpb24sXCIgd2hpY2ggaXMgdGhlIGNhc2UgYnkgZGVmYXVsdCBvbiBsYXB0b3BzLCB0aGlzIGV4dGVuc2lvbiB3aWxsIHVzZSBsb2NhdGlvbiBzZXJ2aWNlcyBhbmQgTm9taW5hdGltIChmcm9tIG9wZW5zdHJlZXRtYXAub3JnKSwgb3IgaW5mb2lwLmlvIGlmIHRoYXQgZmFpbGVkLiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1vcGVud2VhdGhlcnJlZmluZWQiLAogICJnaXQtdmVyc2lvbiI6ICIxMzQucjAuZ2YyZDczOWUiLAogICJuYW1lIjogIk9wZW5XZWF0aGVyIFJlZmluZWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMub3BlbndlYXRoZXJyZWZpbmVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wZW5ndWluLXRlYWwvZ25vbWUtb3BlbndlYXRoZXIiLAogICJ1dWlkIjogIm9wZW53ZWF0aGVyLWV4dGVuc2lvbkBwZW5ndWluLXRlYWwuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDEzLAogICJ2ZXJzaW9uLW5hbWUiOiAiMTM0Igp9"}
+    "45": {"version": "14", "sha256": "0bimv6p1y6pwy1qvnjhlnzq2dp24lmqlrbd1s8zgv4la29hn1zw2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgd2VhdGhlciBmb3IgdGhlIGN1cnJlbnQgb3IgYSBzcGVjaWZpZWQgbG9jYXRpb24uIEZvcmsgb2YgT3BlbldlYXRoZXIuXG5XZWF0aGVyIGRhdGEgaXMgcHJvdmlkZWQgYnkgT3BlbldlYXRoZXJNYXAub3JnIG9yIFdlYXRoZXJBUEkuY29tLlxuSWYgbG9jYXRpb24gaXMgc2V0IHRvIFwiTXkgTG9jYXRpb24sXCIgd2hpY2ggaXMgdGhlIGNhc2UgYnkgZGVmYXVsdCBvbiBsYXB0b3BzLCB0aGlzIGV4dGVuc2lvbiB3aWxsIHVzZSBsb2NhdGlvbiBzZXJ2aWNlcyBhbmQgTm9taW5hdGltIChmcm9tIG9wZW5zdHJlZXRtYXAub3JnKSwgb3IgaW5mb2lwLmlvIGlmIHRoYXQgZmFpbGVkLiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1vcGVud2VhdGhlcnJlZmluZWQiLAogICJnaXQtdmVyc2lvbiI6ICIxMzUucjAuZ2U5OTRhZWIiLAogICJuYW1lIjogIk9wZW5XZWF0aGVyIFJlZmluZWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMub3BlbndlYXRoZXJyZWZpbmVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wZW5ndWluLXRlYWwvZ25vbWUtb3BlbndlYXRoZXIiLAogICJ1dWlkIjogIm9wZW53ZWF0aGVyLWV4dGVuc2lvbkBwZW5ndWluLXRlYWwuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDE0LAogICJ2ZXJzaW9uLW5hbWUiOiAiMTM1Igp9"},
+    "46": {"version": "14", "sha256": "0bimv6p1y6pwy1qvnjhlnzq2dp24lmqlrbd1s8zgv4la29hn1zw2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgd2VhdGhlciBmb3IgdGhlIGN1cnJlbnQgb3IgYSBzcGVjaWZpZWQgbG9jYXRpb24uIEZvcmsgb2YgT3BlbldlYXRoZXIuXG5XZWF0aGVyIGRhdGEgaXMgcHJvdmlkZWQgYnkgT3BlbldlYXRoZXJNYXAub3JnIG9yIFdlYXRoZXJBUEkuY29tLlxuSWYgbG9jYXRpb24gaXMgc2V0IHRvIFwiTXkgTG9jYXRpb24sXCIgd2hpY2ggaXMgdGhlIGNhc2UgYnkgZGVmYXVsdCBvbiBsYXB0b3BzLCB0aGlzIGV4dGVuc2lvbiB3aWxsIHVzZSBsb2NhdGlvbiBzZXJ2aWNlcyBhbmQgTm9taW5hdGltIChmcm9tIG9wZW5zdHJlZXRtYXAub3JnKSwgb3IgaW5mb2lwLmlvIGlmIHRoYXQgZmFpbGVkLiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1vcGVud2VhdGhlcnJlZmluZWQiLAogICJnaXQtdmVyc2lvbiI6ICIxMzUucjAuZ2U5OTRhZWIiLAogICJuYW1lIjogIk9wZW5XZWF0aGVyIFJlZmluZWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMub3BlbndlYXRoZXJyZWZpbmVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wZW5ndWluLXRlYWwvZ25vbWUtb3BlbndlYXRoZXIiLAogICJ1dWlkIjogIm9wZW53ZWF0aGVyLWV4dGVuc2lvbkBwZW5ndWluLXRlYWwuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDE0LAogICJ2ZXJzaW9uLW5hbWUiOiAiMTM1Igp9"}
   }}
 , {"uuid": "wallhub@sakithb.github.io", "name": "Wallhub", "pname": "wallhub", "description": "Manage wallpapers with ease", "link": "https://extensions.gnome.org/extension/6661/wallhub/", "shell_version_map": {
     "45": {"version": "6", "sha256": "1nqjab3hji06046x2ihg8i2izcpgxy9l7pwv4w21aq04fb2742hp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSB3YWxscGFwZXJzIHdpdGggZWFzZSIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAic2FraXRoYiIsCiAgICAia29maSI6ICJzYWtpdGhiIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogIndhbGxodWJAc2FraXRoYi5naXRodWIuaW8iLAogICJuYW1lIjogIldhbGxodWIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2FsbGh1YiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2FraXRoYi93YWxsaHViIiwKICAidXVpZCI6ICJ3YWxsaHViQHNha2l0aGIuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDYsCiAgInZlcnNpb24tbmFtZSI6ICIxLjEuMyIKfQ=="},
@@ -6834,8 +6893,8 @@
     "46": {"version": "5", "sha256": "1fmz31bm2kf6rbzkib1756sg25chyxs5vbllqjzc49dalm0cla2b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBjdXJyZW50IHBvd2VyIHByb2ZpbGUgaW4gcGFuZWwncyBzeXN0ZW0gaWNvbnMuIFZlcnkgbGlnaHQgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiUG93ZXIgcHJvZmlsZSBpbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvcG93ZXItcHJvZmlsZSIsCiAgInV1aWQiOiAicG93ZXItcHJvZmlsZUBmdGh4IiwKICAidmVyc2lvbiI6IDUKfQ=="}
   }}
 , {"uuid": "monitor@astraext.github.io", "name": "Astra Monitor", "pname": "astra-monitor", "description": "Astra Monitor is a cutting-edge, fully customizable, and performance-focused system monitoring extension for GNOME's top bar. It's an all-in-one solution for those seeking to keep a close eye on their system's performance metrics like CPU, GPU, RAM, disk usage, network statistics, and sensor readings.", "link": "https://extensions.gnome.org/extension/6682/astra-monitor/", "shell_version_map": {
-    "45": {"version": "35", "sha256": "1n2x6qhnm3xm4md5r8g8gzj5zs3894iy2hzlv31p4wrq7b7xvx5l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFzdHJhIE1vbml0b3IgaXMgYSBjdXR0aW5nLWVkZ2UsIGZ1bGx5IGN1c3RvbWl6YWJsZSwgYW5kIHBlcmZvcm1hbmNlLWZvY3VzZWQgc3lzdGVtIG1vbml0b3JpbmcgZXh0ZW5zaW9uIGZvciBHTk9NRSdzIHRvcCBiYXIuIEl0J3MgYW4gYWxsLWluLW9uZSBzb2x1dGlvbiBmb3IgdGhvc2Ugc2Vla2luZyB0byBrZWVwIGEgY2xvc2UgZXllIG9uIHRoZWlyIHN5c3RlbSdzIHBlcmZvcm1hbmNlIG1ldHJpY3MgbGlrZSBDUFUsIEdQVSwgUkFNLCBkaXNrIHVzYWdlLCBuZXR3b3JrIHN0YXRpc3RpY3MsIGFuZCBzZW5zb3IgcmVhZGluZ3MuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJhc3RyYS5leHQiLAogICAgInBhdHJlb24iOiAiQXN0cmFFeHQiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAibW9uaXRvckBhc3RyYWV4dC5naXRodWIuaW8iLAogICJsaWNlbnNlIjogIkdQTC0zLjAtb3ItbGF0ZXIiLAogICJuYW1lIjogIkFzdHJhIE1vbml0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXN0cmEtbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQXN0cmFFeHQvYXN0cmEtbW9uaXRvciIsCiAgInV1aWQiOiAibW9uaXRvckBhc3RyYWV4dC5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMzUsCiAgInZlcnNpb24tbmFtZSI6ICIyMSIKfQ=="},
-    "46": {"version": "35", "sha256": "1n2x6qhnm3xm4md5r8g8gzj5zs3894iy2hzlv31p4wrq7b7xvx5l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFzdHJhIE1vbml0b3IgaXMgYSBjdXR0aW5nLWVkZ2UsIGZ1bGx5IGN1c3RvbWl6YWJsZSwgYW5kIHBlcmZvcm1hbmNlLWZvY3VzZWQgc3lzdGVtIG1vbml0b3JpbmcgZXh0ZW5zaW9uIGZvciBHTk9NRSdzIHRvcCBiYXIuIEl0J3MgYW4gYWxsLWluLW9uZSBzb2x1dGlvbiBmb3IgdGhvc2Ugc2Vla2luZyB0byBrZWVwIGEgY2xvc2UgZXllIG9uIHRoZWlyIHN5c3RlbSdzIHBlcmZvcm1hbmNlIG1ldHJpY3MgbGlrZSBDUFUsIEdQVSwgUkFNLCBkaXNrIHVzYWdlLCBuZXR3b3JrIHN0YXRpc3RpY3MsIGFuZCBzZW5zb3IgcmVhZGluZ3MuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJhc3RyYS5leHQiLAogICAgInBhdHJlb24iOiAiQXN0cmFFeHQiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAibW9uaXRvckBhc3RyYWV4dC5naXRodWIuaW8iLAogICJsaWNlbnNlIjogIkdQTC0zLjAtb3ItbGF0ZXIiLAogICJuYW1lIjogIkFzdHJhIE1vbml0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXN0cmEtbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQXN0cmFFeHQvYXN0cmEtbW9uaXRvciIsCiAgInV1aWQiOiAibW9uaXRvckBhc3RyYWV4dC5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMzUsCiAgInZlcnNpb24tbmFtZSI6ICIyMSIKfQ=="}
+    "45": {"version": "42", "sha256": "0hyas31bv2k8dplxlv6r5a421v69qyxjf1a6zkal5i5p7ifl470z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFzdHJhIE1vbml0b3IgaXMgYSBjdXR0aW5nLWVkZ2UsIGZ1bGx5IGN1c3RvbWl6YWJsZSwgYW5kIHBlcmZvcm1hbmNlLWZvY3VzZWQgc3lzdGVtIG1vbml0b3JpbmcgZXh0ZW5zaW9uIGZvciBHTk9NRSdzIHRvcCBiYXIuIEl0J3MgYW4gYWxsLWluLW9uZSBzb2x1dGlvbiBmb3IgdGhvc2Ugc2Vla2luZyB0byBrZWVwIGEgY2xvc2UgZXllIG9uIHRoZWlyIHN5c3RlbSdzIHBlcmZvcm1hbmNlIG1ldHJpY3MgbGlrZSBDUFUsIEdQVSwgUkFNLCBkaXNrIHVzYWdlLCBuZXR3b3JrIHN0YXRpc3RpY3MsIGFuZCBzZW5zb3IgcmVhZGluZ3MuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJhc3RyYS5leHQiLAogICAgInBhdHJlb24iOiAiQXN0cmFFeHQiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAibW9uaXRvckBhc3RyYWV4dC5naXRodWIuaW8iLAogICJsaWNlbnNlIjogIkdQTC0zLjAtb3ItbGF0ZXIiLAogICJuYW1lIjogIkFzdHJhIE1vbml0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXN0cmEtbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQXN0cmFFeHQvYXN0cmEtbW9uaXRvciIsCiAgInV1aWQiOiAibW9uaXRvckBhc3RyYWV4dC5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNDIsCiAgInZlcnNpb24tbmFtZSI6ICIyNSIKfQ=="},
+    "46": {"version": "42", "sha256": "0hyas31bv2k8dplxlv6r5a421v69qyxjf1a6zkal5i5p7ifl470z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFzdHJhIE1vbml0b3IgaXMgYSBjdXR0aW5nLWVkZ2UsIGZ1bGx5IGN1c3RvbWl6YWJsZSwgYW5kIHBlcmZvcm1hbmNlLWZvY3VzZWQgc3lzdGVtIG1vbml0b3JpbmcgZXh0ZW5zaW9uIGZvciBHTk9NRSdzIHRvcCBiYXIuIEl0J3MgYW4gYWxsLWluLW9uZSBzb2x1dGlvbiBmb3IgdGhvc2Ugc2Vla2luZyB0byBrZWVwIGEgY2xvc2UgZXllIG9uIHRoZWlyIHN5c3RlbSdzIHBlcmZvcm1hbmNlIG1ldHJpY3MgbGlrZSBDUFUsIEdQVSwgUkFNLCBkaXNrIHVzYWdlLCBuZXR3b3JrIHN0YXRpc3RpY3MsIGFuZCBzZW5zb3IgcmVhZGluZ3MuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJhc3RyYS5leHQiLAogICAgInBhdHJlb24iOiAiQXN0cmFFeHQiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAibW9uaXRvckBhc3RyYWV4dC5naXRodWIuaW8iLAogICJsaWNlbnNlIjogIkdQTC0zLjAtb3ItbGF0ZXIiLAogICJuYW1lIjogIkFzdHJhIE1vbml0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXN0cmEtbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQXN0cmFFeHQvYXN0cmEtbW9uaXRvciIsCiAgInV1aWQiOiAibW9uaXRvckBhc3RyYWV4dC5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNDIsCiAgInZlcnNpb24tbmFtZSI6ICIyNSIKfQ=="}
   }}
 , {"uuid": "collector-pip@mijorus.it", "name": "Collector - complementary extension", "pname": "collector-complementary-extension", "description": "Allows the Collector window to stay always on top", "link": "https://extensions.gnome.org/extension/6685/collector-complementary-extension/", "shell_version_map": {
     "45": {"version": "1", "sha256": "0ndzxkw8rxjb3nxwyi4znhyq7j2p4yb6vj9gxfdz9hl2kcbsn1k7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyB0aGUgQ29sbGVjdG9yIHdpbmRvdyB0byBzdGF5IGFsd2F5cyBvbiB0b3AiLAogICJuYW1lIjogIkNvbGxlY3RvciAtIGNvbXBsZW1lbnRhcnkgZXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21pam9ydXMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNvbGxlY3RvciIsCiAgInV1aWQiOiAiY29sbGVjdG9yLXBpcEBtaWpvcnVzLml0IiwKICAidmVyc2lvbiI6IDEKfQ=="}
@@ -6897,20 +6956,17 @@
     "44": {"version": "6", "sha256": "0vlkg847fsqpfgkgz47w0cf9hmj6bhgb1pv7f7kgq7ahyrarg949", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklucHV0IHRleHQgYW55d2hlcmUgZnJvbSBzcGVlY2ggd2l0aCB0aGUgbWlkZGxlIG1vdXNlIGJ1dHRvbiIsCiAgIm5hbWUiOiAiQmx1cnQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYmx1cnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9RdWFudGl1c0JlbmlnbnVzL2JsdXJ0IiwKICAidXVpZCI6ICJibHVydEBxdWFudGl1c2JlbmlnbnVzLmxvY2FsIiwKICAidmVyc2lvbiI6IDYKfQ=="},
     "45": {"version": "5", "sha256": "10ajsindzad9azjfipnq2hzm2s5xliivkvxc9xckxv4hwhi4haks", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklucHV0IHRleHQgZnJvbSBzcGVlY2ggYW55d2hlcmUgd2l0aCB0aGUgbWlkZGxlIG1vdXNlIGJ1dHRvbiIsCiAgIm5hbWUiOiAiQmx1cnQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYmx1cnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUXVhbnRpdXNCZW5pZ251cy9ibHVydCIsCiAgInV1aWQiOiAiYmx1cnRAcXVhbnRpdXNiZW5pZ251cy5sb2NhbCIsCiAgInZlcnNpb24iOiA1Cn0="}
   }}
-, {"uuid": "luminus-shell@dikasp.gitlab", "name": "Luminus Shell", "pname": "luminus-shell", "description": "Brings light style integration into default gnome shell (shell only).", "link": "https://extensions.gnome.org/extension/6744/luminus-shell/", "shell_version_map": {
+, {"uuid": "luminus-shell@dikasp.gitlab", "name": "Luminus Shell", "pname": "luminus-shell", "description": "Light style integration for default GNOME shell.", "link": "https://extensions.gnome.org/extension/6744/luminus-shell/", "shell_version_map": {
     "45": {"version": "2", "sha256": "05qkb9ycrgbcf5iy71x6n3zf56wmx1iib101f5h307ig3a4mnlc1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5ncyBmdWxsIGxpZ2h0IHN0eWxlIGludGVncmF0aW9uIGludG8gZGVmYXVsdCBnbm9tZS1zaGVsbC4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImRpa2FzcCIKICB9LAogICJuYW1lIjogIkx1bWludXMgU2hlbGwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vZGlrYXNldHlhcHJheW9naS9sdW1pbnVzLXByb2plY3QiLAogICJ1dWlkIjogImx1bWludXMtc2hlbGxAZGlrYXNwLmdpdGxhYiIsCiAgInZlcnNpb24iOiAyLAogICJ2ZXJzaW9uLW5hbWUiOiAiNDUuMiIKfQ=="},
-    "46": {"version": "4", "sha256": "0yip0kbhqg41r9k514imfmqhlzhfx1fxsq65wz3p9i0gy6rwypfg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5ncyBsaWdodCBzdHlsZSBpbnRlZ3JhdGlvbiBpbnRvIGRlZmF1bHQgZ25vbWUgc2hlbGwgKHNoZWxsIG9ubHkpLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJidXltZWFjb2ZmZWUiOiAiZGlrYXNwIgogIH0sCiAgIm5hbWUiOiAiTHVtaW51cyBTaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9kaWthc2V0eWFwcmF5b2dpL2x1bWludXMtcHJvamVjdCIsCiAgInV1aWQiOiAibHVtaW51cy1zaGVsbEBkaWthc3AuZ2l0bGFiIiwKICAidmVyc2lvbiI6IDQsCiAgInZlcnNpb24tbmFtZSI6ICI0Ni4yIgp9"}
+    "46": {"version": "5", "sha256": "0f9i0p3jgw2df1qmwfwala0p7lgja4yac8jjbrsj499yjzw9wdgc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0IHN0eWxlIGludGVncmF0aW9uIGZvciBkZWZhdWx0IEdOT01FIHNoZWxsLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJidXltZWFjb2ZmZWUiOiAiZGlrYXNwIgogIH0sCiAgIm5hbWUiOiAiTHVtaW51cyBTaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9kaWthc2V0eWFwcmF5b2dpL2x1bWludXMtcHJvamVjdCIsCiAgInV1aWQiOiAibHVtaW51cy1zaGVsbEBkaWthc3AuZ2l0bGFiIiwKICAidmVyc2lvbiI6IDUsCiAgInZlcnNpb24tbmFtZSI6ICI0Ni4zIgp9"}
   }}
-, {"uuid": "luminus-shell-y@dikasp.gitlab", "name": "Luminus Shell Y", "pname": "luminus-shell-y", "description": "Brings light style integration into Blur my Shell extension (shell only).", "link": "https://extensions.gnome.org/extension/6747/luminus-shell-y/", "shell_version_map": {
+, {"uuid": "luminus-shell-y@dikasp.gitlab", "name": "Luminus Shell Y", "pname": "luminus-shell-y", "description": "Light style integration for Blur my Shell and other transparent theming extensions.", "link": "https://extensions.gnome.org/extension/6747/luminus-shell-y/", "shell_version_map": {
     "45": {"version": "2", "sha256": "16wgh92pn6i94hcxykyy09km75xk6mmnsvbr0c571mhad928a5b2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5ncyBmdWxsIGxpZ2h0IHN0eWxlIGludGVncmF0aW9uIGludG8gQmx1ciBteSBTaGVsbCBleHRlbnNpb24uIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJkaWthc3AiCiAgfSwKICAibmFtZSI6ICJMdW1pbnVzIFNoZWxsIFkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vZGlrYXNldHlhcHJheW9naS9sdW1pbnVzLXByb2plY3QiLAogICJ1dWlkIjogImx1bWludXMtc2hlbGwteUBkaWthc3AuZ2l0bGFiIiwKICAidmVyc2lvbiI6IDIsCiAgInZlcnNpb24tbmFtZSI6ICI0NS4yIgp9"},
-    "46": {"version": "3", "sha256": "09l7sflp40q67ms9x57g230mjy9ndqbkbmd4bb2iybk5r0ii2h2d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5ncyBsaWdodCBzdHlsZSBpbnRlZ3JhdGlvbiBpbnRvIEJsdXIgbXkgU2hlbGwgZXh0ZW5zaW9uIChzaGVsbCBvbmx5KS4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImRpa2FzcCIKICB9LAogICJuYW1lIjogIkx1bWludXMgU2hlbGwgWSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9kaWthc2V0eWFwcmF5b2dpL2x1bWludXMtcHJvamVjdCIsCiAgInV1aWQiOiAibHVtaW51cy1zaGVsbC15QGRpa2FzcC5naXRsYWIiLAogICJ2ZXJzaW9uIjogMywKICAidmVyc2lvbi1uYW1lIjogIjQ2LjIiCn0="}
+    "46": {"version": "5", "sha256": "049d1f9v8b4zwghnz1g9nkdzld9mgx554l9lqli0f0mlmnx2i34f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0IHN0eWxlIGludGVncmF0aW9uIGZvciBCbHVyIG15IFNoZWxsIGFuZCBvdGhlciB0cmFuc3BhcmVudCB0aGVtaW5nIGV4dGVuc2lvbnMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJkaWthc3AiCiAgfSwKICAibmFtZSI6ICJMdW1pbnVzIFNoZWxsIFkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vZGlrYXNldHlhcHJheW9naS9sdW1pbnVzLXByb2plY3QiLAogICJ1dWlkIjogImx1bWludXMtc2hlbGwteUBkaWthc3AuZ2l0bGFiIiwKICAidmVyc2lvbiI6IDUsCiAgInZlcnNpb24tbmFtZSI6ICI0Ni4zIgp9"}
   }}
-, {"uuid": "luminus-desktop@dikasp.gitlab", "name": "Luminus Desktop", "pname": "luminus-desktop", "description": "Brings global light style integration into gnome shell and GTK apps.", "link": "https://extensions.gnome.org/extension/6750/luminus-desktop/", "shell_version_map": {
+, {"uuid": "luminus-desktop@dikasp.gitlab", "name": "Luminus Desktop", "pname": "luminus-desktop", "description": "Global light style integration for GNOME shell and GTK apps.", "link": "https://extensions.gnome.org/extension/6750/luminus-desktop/", "shell_version_map": {
     "45": {"version": "3", "sha256": "1ai9rzr0lx8myy6cqfsm4cck5l1v5yq8fwfil0rawpnzlbr6rmgk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5ncyBnbG9iYWwgZnVsbCBsaWdodCBzdHlsZSBpbnRlZ3JhdGlvbiBpbnRvIGdub21lLXNoZWxsIGFuZCBHVEsgYXBwcy4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiYnV5bWVhY29mZmVlIjogImRpa2FzcCIKICB9LAogICJuYW1lIjogIkx1bWludXMgRGVza3RvcCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9kaWthc2V0eWFwcmF5b2dpL2x1bWludXMtcHJvamVjdCIsCiAgInV1aWQiOiAibHVtaW51cy1kZXNrdG9wQGRpa2FzcC5naXRsYWIiLAogICJ2ZXJzaW9uIjogMywKICAidmVyc2lvbi1uYW1lIjogIjQ1LjIiCn0="},
-    "46": {"version": "5", "sha256": "1v4kb8qrrjf4ganp698wc2pd03n8gy4mpccy8443icnl93xi4qb5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5ncyBnbG9iYWwgbGlnaHQgc3R5bGUgaW50ZWdyYXRpb24gaW50byBnbm9tZSBzaGVsbCBhbmQgR1RLIGFwcHMuIiwKICAiZG9uYXRpb25zIjogewogICAgImJ1eW1lYWNvZmZlZSI6ICJkaWthc3AiCiAgfSwKICAibmFtZSI6ICJMdW1pbnVzIERlc2t0b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vZGlrYXNldHlhcHJheW9naS9sdW1pbnVzLXByb2plY3QiLAogICJ1dWlkIjogImx1bWludXMtZGVza3RvcEBkaWthc3AuZ2l0bGFiIiwKICAidmVyc2lvbiI6IDUsCiAgInZlcnNpb24tbmFtZSI6ICI0Ni4yIgp9"}
-  }}
-, {"uuid": "slacker@hedgie.tech", "name": "Slacker", "pname": "slacker", "description": "Improve Slack web or pwa notifications", "link": "https://extensions.gnome.org/extension/6756/slacker/", "shell_version_map": {
-    "45": {"version": "1", "sha256": "1kyfdrxfiwnqjvjjsvyvpsd64dlcqvl685add8zawb46xmmbigz0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmUgU2xhY2sgd2ViIG9yIHB3YSBub3RpZmljYXRpb25zIiwKICAibmFtZSI6ICJTbGFja2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNsYWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGVkZ2llaW5zb2Nrcy9nbm9tZS1leHRlbnNpb24tc2xhY2tlciIsCiAgInV1aWQiOiAic2xhY2tlckBoZWRnaWUudGVjaCIsCiAgInZlcnNpb24iOiAxCn0="}
+    "46": {"version": "6", "sha256": "1yzq1y3lwc4mlqvmhwzc2sf7yqg4ynzmcpgc71lhjs52x27bmb6n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdsb2JhbCBsaWdodCBzdHlsZSBpbnRlZ3JhdGlvbiBmb3IgR05PTUUgc2hlbGwgYW5kIEdUSyBhcHBzLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJidXltZWFjb2ZmZWUiOiAiZGlrYXNwIgogIH0sCiAgIm5hbWUiOiAiTHVtaW51cyBEZXNrdG9wIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2Rpa2FzZXR5YXByYXlvZ2kvbHVtaW51cy1wcm9qZWN0IiwKICAidXVpZCI6ICJsdW1pbnVzLWRlc2t0b3BAZGlrYXNwLmdpdGxhYiIsCiAgInZlcnNpb24iOiA2LAogICJ2ZXJzaW9uLW5hbWUiOiAiNDYuMyIKfQ=="}
   }}
 , {"uuid": "mypubip@snirt", "name": "MyPubIP", "pname": "mypubip", "description": "A simple extension that let the user to view and copy the public IPv4 and IPv6 address, by using ipify.org services.", "link": "https://extensions.gnome.org/extension/6765/mypubip/", "shell_version_map": {
     "45": {"version": "6", "sha256": "153q4y47xkxga06qx9lx06nknbc8d3ylr7dkywwx3062gqn6zjfy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGV4dGVuc2lvbiB0aGF0IGxldCB0aGUgdXNlciB0byB2aWV3IGFuZCBjb3B5IHRoZSBwdWJsaWMgSVB2NCBhbmQgSVB2NiBhZGRyZXNzLCBieSB1c2luZyBpcGlmeS5vcmcgc2VydmljZXMuIiwKICAibmFtZSI6ICJNeVB1YklQIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zbmlydC9nbm9tZS1zaGVsbC1leHRlbnNpb24tbXlwdWJpcCIsCiAgInV1aWQiOiAibXlwdWJpcEBzbmlydCIsCiAgInZlcnNpb24iOiA2Cn0="},
@@ -6924,14 +6980,14 @@
     "45": {"version": "7", "sha256": "1rb2h4lnanv5rvxp3kagn6x5zsqd13mifmvravhhzcmzflph6lrl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgZXZlcnl0aGluZyBvbiB0aGUgcmlnaHQgYm94IGV4ZXB0IHRoaXMgYnV0dG9uIGFuZCBTZXR0aW5ncyB3aW5kb3ciLAogICJleHRlbnNpb24taWQiOiAiSGlkZUl0ZW1zIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiSGlkZUl0ZW1zIiwKICAibmFtZSI6ICJIaWRlIEl0ZW1zIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkhpZGVJdGVtcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZmFibGV2aS9IaWRlSXRlbXMiLAogICJ1dWlkIjogIkhpZGVJdGVtc0BmYWJsZXZpLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA3Cn0="},
     "46": {"version": "7", "sha256": "1rb2h4lnanv5rvxp3kagn6x5zsqd13mifmvravhhzcmzflph6lrl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgZXZlcnl0aGluZyBvbiB0aGUgcmlnaHQgYm94IGV4ZXB0IHRoaXMgYnV0dG9uIGFuZCBTZXR0aW5ncyB3aW5kb3ciLAogICJleHRlbnNpb24taWQiOiAiSGlkZUl0ZW1zIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiSGlkZUl0ZW1zIiwKICAibmFtZSI6ICJIaWRlIEl0ZW1zIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkhpZGVJdGVtcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZmFibGV2aS9IaWRlSXRlbXMiLAogICJ1dWlkIjogIkhpZGVJdGVtc0BmYWJsZXZpLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA3Cn0="}
   }}
-, {"uuid": "signalshell@github.com.howbea", "name": "Signal Shell", "pname": "signal-shell", "description": "Load -dark, -light and -high-contrast stylesheets from ~/.config/gnome-shell", "link": "https://extensions.gnome.org/extension/6774/signal-shell/", "shell_version_map": {
+, {"uuid": "signalshell@github.com.howbea", "name": "Signal Shell", "pname": "signal-shell", "description": "Load shell themes from user directory.", "link": "https://extensions.gnome.org/extension/6774/signal-shell/", "shell_version_map": {
     "40": {"version": "4", "sha256": "1pf770s5zvkr2fzq4jc45rlixbxqnf6gmxfpnd0dfwlssckhlnag", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgLWRhcmssIC1saWdodCBhbmQgLWhpZ2gtY29udHJhc3Qgc3R5bGVzaGVldHMgZnJvbSB+Ly5jb25maWcvZ25vbWUtc2hlbGwiLAogICJuYW1lIjogIlNpZ25hbCBTaGVsbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaWduYWxzaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL1NpZ25hbC1TaGVsbCIsCiAgInV1aWQiOiAic2lnbmFsc2hlbGxAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogNAp9"},
     "41": {"version": "4", "sha256": "1pf770s5zvkr2fzq4jc45rlixbxqnf6gmxfpnd0dfwlssckhlnag", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgLWRhcmssIC1saWdodCBhbmQgLWhpZ2gtY29udHJhc3Qgc3R5bGVzaGVldHMgZnJvbSB+Ly5jb25maWcvZ25vbWUtc2hlbGwiLAogICJuYW1lIjogIlNpZ25hbCBTaGVsbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaWduYWxzaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL1NpZ25hbC1TaGVsbCIsCiAgInV1aWQiOiAic2lnbmFsc2hlbGxAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogNAp9"},
     "42": {"version": "4", "sha256": "1pf770s5zvkr2fzq4jc45rlixbxqnf6gmxfpnd0dfwlssckhlnag", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgLWRhcmssIC1saWdodCBhbmQgLWhpZ2gtY29udHJhc3Qgc3R5bGVzaGVldHMgZnJvbSB+Ly5jb25maWcvZ25vbWUtc2hlbGwiLAogICJuYW1lIjogIlNpZ25hbCBTaGVsbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaWduYWxzaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL1NpZ25hbC1TaGVsbCIsCiAgInV1aWQiOiAic2lnbmFsc2hlbGxAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogNAp9"},
-    "43": {"version": "4", "sha256": "1pf770s5zvkr2fzq4jc45rlixbxqnf6gmxfpnd0dfwlssckhlnag", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgLWRhcmssIC1saWdodCBhbmQgLWhpZ2gtY29udHJhc3Qgc3R5bGVzaGVldHMgZnJvbSB+Ly5jb25maWcvZ25vbWUtc2hlbGwiLAogICJuYW1lIjogIlNpZ25hbCBTaGVsbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaWduYWxzaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL1NpZ25hbC1TaGVsbCIsCiAgInV1aWQiOiAic2lnbmFsc2hlbGxAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogNAp9"},
-    "44": {"version": "4", "sha256": "1pf770s5zvkr2fzq4jc45rlixbxqnf6gmxfpnd0dfwlssckhlnag", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgLWRhcmssIC1saWdodCBhbmQgLWhpZ2gtY29udHJhc3Qgc3R5bGVzaGVldHMgZnJvbSB+Ly5jb25maWcvZ25vbWUtc2hlbGwiLAogICJuYW1lIjogIlNpZ25hbCBTaGVsbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaWduYWxzaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaG93YmVhL1NpZ25hbC1TaGVsbCIsCiAgInV1aWQiOiAic2lnbmFsc2hlbGxAZ2l0aHViLmNvbS5ob3diZWEiLAogICJ2ZXJzaW9uIjogNAp9"}
+    "43": {"version": "7", "sha256": "18vj96mvq9iwpb7n8jv0z0d7dgb0lfbgxfdy055izi1llkcvpbhr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgc2hlbGwgdGhlbWVzIGZyb20gdXNlciBkaXJlY3RvcnkuIiwKICAibmFtZSI6ICJTaWduYWwgU2hlbGwiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImpvaG4uc3Rvd2Vyc0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNpZ25hbHNoZWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ob3diZWEvU2lnbmFsLVNoZWxsIiwKICAidXVpZCI6ICJzaWduYWxzaGVsbEBnaXRodWIuY29tLmhvd2JlYSIsCiAgInZlcnNpb24iOiA3Cn0="},
+    "44": {"version": "7", "sha256": "18vj96mvq9iwpb7n8jv0z0d7dgb0lfbgxfdy055izi1llkcvpbhr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgc2hlbGwgdGhlbWVzIGZyb20gdXNlciBkaXJlY3RvcnkuIiwKICAibmFtZSI6ICJTaWduYWwgU2hlbGwiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImpvaG4uc3Rvd2Vyc0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNpZ25hbHNoZWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ob3diZWEvU2lnbmFsLVNoZWxsIiwKICAidXVpZCI6ICJzaWduYWxzaGVsbEBnaXRodWIuY29tLmhvd2JlYSIsCiAgInZlcnNpb24iOiA3Cn0="}
   }}
-, {"uuid": "crypto-tracker@gongorgojo.com", "name": "Simple Crypto Tracker", "pname": "crypto-trackergongorgojocom", "description": "This is a simple Gnome-Shell extension designed to track cryptocurrency prices.\n\nSupported pairs include:\n- BTC/USD\n- BTC/EUR\n- ETH/USD\n- ETH/EUR  \n\nThe extension refreshes prices every 5 minutes using the CoinGecko API to retrieve data.", "link": "https://extensions.gnome.org/extension/6777/crypto-trackergongorgojocom/", "shell_version_map": {
+, {"uuid": "crypto-tracker@gongorgojo.com", "name": "Simple Crypto Tracker", "pname": "crypto-trackergongorgojocom", "description": "This is a simple Gnome-Shell extension designed to track cryptocurrency prices.\n\nSupported pairs include:\n- BTC/USD\n- BTC/EUR\n- ETH/USD\n- ETH/EUR  \n\nThe extension refreshes prices every 5 minutes using the CoinGecko API to retrieve data.\n\nIf you want to support me you can send some sats here :)\nBitcoin(segwit) address:\nbc1qep0h4nzytrp7mlswjdlez7fleyr9p03k8a5ljd365cch4nhurpaqy9varq", "link": "https://extensions.gnome.org/extension/6777/crypto-trackergongorgojocom/", "shell_version_map": {
     "42": {"version": "3", "sha256": "1hbgfnflra98l31rm0vb6x6h69x6621nyyfdr653kp8f4gi4711z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgaXMgYSBzaW1wbGUgR25vbWUtU2hlbGwgZXh0ZW5zaW9uIGRlc2lnbmVkIHRvIHRyYWNrIGNyeXB0b2N1cnJlbmN5IHByaWNlcy5cblxuU3VwcG9ydGVkIHBhaXJzIGluY2x1ZGU6XG4tIEJUQy9VU0Rcbi0gQlRDL0VVUlxuLSBFVEgvVVNEXG4tIEVUSC9FVVIgIFxuXG5UaGUgZXh0ZW5zaW9uIHJlZnJlc2hlcyBwcmljZXMgZXZlcnkgNSBtaW51dGVzIHVzaW5nIHRoZSBDb2luR2Vja28gQVBJIHRvIHJldHJpZXZlIGRhdGEuIiwKICAibmFtZSI6ICJTaW1wbGUgQ3J5cHRvIFRyYWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Hb256YWxvR29yZ29qby9Hbm9tZS1TaGVsbC1DcnlwdG8tVHJhY2tlciIsCiAgInV1aWQiOiAiY3J5cHRvLXRyYWNrZXJAZ29uZ29yZ29qby5jb20iLAogICJ2ZXJzaW9uIjogMwp9"},
     "43": {"version": "3", "sha256": "1hbgfnflra98l31rm0vb6x6h69x6621nyyfdr653kp8f4gi4711z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgaXMgYSBzaW1wbGUgR25vbWUtU2hlbGwgZXh0ZW5zaW9uIGRlc2lnbmVkIHRvIHRyYWNrIGNyeXB0b2N1cnJlbmN5IHByaWNlcy5cblxuU3VwcG9ydGVkIHBhaXJzIGluY2x1ZGU6XG4tIEJUQy9VU0Rcbi0gQlRDL0VVUlxuLSBFVEgvVVNEXG4tIEVUSC9FVVIgIFxuXG5UaGUgZXh0ZW5zaW9uIHJlZnJlc2hlcyBwcmljZXMgZXZlcnkgNSBtaW51dGVzIHVzaW5nIHRoZSBDb2luR2Vja28gQVBJIHRvIHJldHJpZXZlIGRhdGEuIiwKICAibmFtZSI6ICJTaW1wbGUgQ3J5cHRvIFRyYWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Hb256YWxvR29yZ29qby9Hbm9tZS1TaGVsbC1DcnlwdG8tVHJhY2tlciIsCiAgInV1aWQiOiAiY3J5cHRvLXRyYWNrZXJAZ29uZ29yZ29qby5jb20iLAogICJ2ZXJzaW9uIjogMwp9"},
     "44": {"version": "3", "sha256": "1hbgfnflra98l31rm0vb6x6h69x6621nyyfdr653kp8f4gi4711z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgaXMgYSBzaW1wbGUgR25vbWUtU2hlbGwgZXh0ZW5zaW9uIGRlc2lnbmVkIHRvIHRyYWNrIGNyeXB0b2N1cnJlbmN5IHByaWNlcy5cblxuU3VwcG9ydGVkIHBhaXJzIGluY2x1ZGU6XG4tIEJUQy9VU0Rcbi0gQlRDL0VVUlxuLSBFVEgvVVNEXG4tIEVUSC9FVVIgIFxuXG5UaGUgZXh0ZW5zaW9uIHJlZnJlc2hlcyBwcmljZXMgZXZlcnkgNSBtaW51dGVzIHVzaW5nIHRoZSBDb2luR2Vja28gQVBJIHRvIHJldHJpZXZlIGRhdGEuIiwKICAibmFtZSI6ICJTaW1wbGUgQ3J5cHRvIFRyYWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Hb256YWxvR29yZ29qby9Hbm9tZS1TaGVsbC1DcnlwdG8tVHJhY2tlciIsCiAgInV1aWQiOiAiY3J5cHRvLXRyYWNrZXJAZ29uZ29yZ29qby5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}
@@ -6950,9 +7006,9 @@
     "45": {"version": "2", "sha256": "14vi9cd9qm6f6z1krhh6s4l8z0121aayf1jmkgaj6i52i7559cmw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldpZ2dsZSBpcyBhIEdOT01FIFNoZWxsIGV4dGVuc2lvbiB0aGF0IG1hZ25pZmllcyB0aGUgY3Vyc29yIHdoZW4gdGhlIG1vdXNlIGlzIG1vdmVkIHJhcGlkbHkuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXdpZ2dsZSIsCiAgIm5hbWUiOiAiV2lnZ2xlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndpZ2dsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tZWNodGlmcy93aWdnbGUiLAogICJ1dWlkIjogIndpZ2dsZUBtZWNodGlmcyIsCiAgInZlcnNpb24iOiAyCn0="},
     "46": {"version": "3", "sha256": "14gwkx6z9v7ca13qdy1jad64bahqhs7dkrl1c7v4r49qvhkqg5ka", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldpZ2dsZSBpcyBhIEdOT01FIFNoZWxsIGV4dGVuc2lvbiB0aGF0IG1hZ25pZmllcyB0aGUgY3Vyc29yIHdoZW4gdGhlIG1vdXNlIGlzIG1vdmVkIHJhcGlkbHkuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXdpZ2dsZSIsCiAgIm5hbWUiOiAiV2lnZ2xlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndpZ2dsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tZWNodGlmcy93aWdnbGUiLAogICJ1dWlkIjogIndpZ2dsZUBtZWNodGlmcyIsCiAgInZlcnNpb24iOiAzCn0="}
   }}
-, {"uuid": "favorite-apps@venovar.tr", "name": "Favorite Apps Menu", "pname": "show-favorite-apps", "description": "This extension adds a favorite applications menu to top panel.\n\n\nGnome Shell 46:\nDrag drop to reorder favorites.\nMiddle click menu icon to open Gnome apps menu.\nRight click menu icon to open Gnome activities window.", "link": "https://extensions.gnome.org/extension/6787/show-favorite-apps/", "shell_version_map": {
+, {"uuid": "favorite-apps@venovar.tr", "name": "Favorite Apps Menu", "pname": "show-favorite-apps", "description": "This extension adds a favorite applications menu to top panel", "link": "https://extensions.gnome.org/extension/6787/show-favorite-apps/", "shell_version_map": {
     "45": {"version": "7", "sha256": "1jcqmijfzfqhvrkv5agf3hq05kri1nfh1zri0278nmwmk1b9xfhh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFkZHMgYSBmYXZvcml0ZSBhcHBsaWNhdGlvbnMgbWVudSBwYW5lbCB0byB0b3AgYmFyIiwKICAibmFtZSI6ICJGYXZvcml0ZSBBcHBzIE1lbnUgb24gVG9wIEJhciBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZW5mYXZhcHAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnIiwKICAidXVpZCI6ICJmYXZvcml0ZS1hcHBzQHZlbm92YXIudHIiLAogICJ2ZXJzaW9uIjogNwp9"},
-    "46": {"version": "8", "sha256": "1jfnrjd3jihaj0jnggm23a5rny6i8p97w9cccwm7x75xy1mvc231", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFkZHMgYSBmYXZvcml0ZSBhcHBsaWNhdGlvbnMgbWVudSB0byB0b3AgcGFuZWwiLAogICJuYW1lIjogIkZhdm9yaXRlIEFwcHMgTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZW5mYXZhcHBzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZyIsCiAgInV1aWQiOiAiZmF2b3JpdGUtYXBwc0B2ZW5vdmFyLnRyIiwKICAidmVyc2lvbiI6IDgKfQ=="}
+    "46": {"version": "9", "sha256": "1m71hxk2fisrpv2bvmkzrpmbsyaynvhksqi6k6gngvycpvdmz85k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFkZHMgYSBmYXZvcml0ZSBhcHBsaWNhdGlvbnMgbWVudSB0byB0b3AgcGFuZWwiLAogICJuYW1lIjogIkZhdm9yaXRlIEFwcHMgTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52ZW5mYXZhcHBzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZyIsCiAgInV1aWQiOiAiZmF2b3JpdGUtYXBwc0B2ZW5vdmFyLnRyIiwKICAidmVyc2lvbiI6IDkKfQ=="}
   }}
 , {"uuid": "totp@dkosmari.github.com", "name": "TOTP", "pname": "totp", "description": "Generate Time-based One-Time Passwords (TOTP aka OTP) for websites that use Two-Factor Authentication (2FA) like Google, Facebook, Discord, Amazon, Steam, etc.", "link": "https://extensions.gnome.org/extension/6793/totp/", "shell_version_map": {
     "42": {"version": "36", "sha256": "16isyi8r64nbzddy9pfhzkmwklvk0x9rxhiyry7arc2gvd7c09zh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdlbmVyYXRlIFRpbWUtYmFzZWQgT25lLVRpbWUgUGFzc3dvcmRzIChUT1RQIGFrYSBPVFApIGZvciB3ZWJzaXRlcyB0aGF0IHVzZSBUd28tRmFjdG9yIEF1dGhlbnRpY2F0aW9uICgyRkEpIGxpa2UgR29vZ2xlLCBGYWNlYm9vaywgRGlzY29yZCwgQW1hem9uLCBTdGVhbSwgZXRjLiIsCiAgImdldHRleHQtZG9tYWluIjogInRvdHBAZGtvc21hcmkuZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiVE9UUCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50b3RwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGtvc21hcmkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRvdHAiLAogICJ1dWlkIjogInRvdHBAZGtvc21hcmkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAzNgp9"},
@@ -6998,7 +7054,7 @@
     "43": {"version": "17", "sha256": "1qnjvlp1z96xg1whzjlmnkvhxzmn49zpv8zk4w2kghcr8xav2dzz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgQWRkLW9uIGlzIHVzaW5nIGdlbWluaSBhaSAxLjAgcHJvIG1vZGVsIGZvciBjaGF0dGluZy4gXG4gVGhpcyBleHRlbnNpb25zIHVzaW5nIHRoaXNpcGNhbi5jeW91IGZvciBsb2NhdGlvbiBkZXRlY3Rpb24gYW5kIGdvb2dsZWFwaXMuY29tIGZvciBnZW1pbmkgbW9kZWwgXG4gYWxzbyBpZiB5b3UgYXJlIHBsYW5pbmcgdG8gdXNlIFZlcnRleCBhcGkgeW91IHNob3VsZCBpbnN0YWxsIGBnY2xvdWRgIGFzIGRlcGVuZGVuY3kgKG9wdGlvbmFsKSBcbiBOT1RFOiBUaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBHb29nbGUgYW5kIEdlbWluaS4iLAogICJuYW1lIjogIkdlbWluaSBBSSBDaGF0Qm90IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdlbWluaWFpdWJ1bnR1IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3d3YXJkYXd3L2dub21lLWdlbWluaS1haSIsCiAgInV1aWQiOiAiZ2VtaW5pYWl1YnVudHVAYXJkYS5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="},
     "44": {"version": "17", "sha256": "1qnjvlp1z96xg1whzjlmnkvhxzmn49zpv8zk4w2kghcr8xav2dzz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgQWRkLW9uIGlzIHVzaW5nIGdlbWluaSBhaSAxLjAgcHJvIG1vZGVsIGZvciBjaGF0dGluZy4gXG4gVGhpcyBleHRlbnNpb25zIHVzaW5nIHRoaXNpcGNhbi5jeW91IGZvciBsb2NhdGlvbiBkZXRlY3Rpb24gYW5kIGdvb2dsZWFwaXMuY29tIGZvciBnZW1pbmkgbW9kZWwgXG4gYWxzbyBpZiB5b3UgYXJlIHBsYW5pbmcgdG8gdXNlIFZlcnRleCBhcGkgeW91IHNob3VsZCBpbnN0YWxsIGBnY2xvdWRgIGFzIGRlcGVuZGVuY3kgKG9wdGlvbmFsKSBcbiBOT1RFOiBUaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBHb29nbGUgYW5kIEdlbWluaS4iLAogICJuYW1lIjogIkdlbWluaSBBSSBDaGF0Qm90IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdlbWluaWFpdWJ1bnR1IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3d3YXJkYXd3L2dub21lLWdlbWluaS1haSIsCiAgInV1aWQiOiAiZ2VtaW5pYWl1YnVudHVAYXJkYS5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="},
     "45": {"version": "13", "sha256": "09n18gb9wxwabjy37qiaanv719simfir1bfyjyz1gf08zng9p0km", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgQWRkLW9uIGlzIHVzaW5nIGdlbWluaSAxLjAgcHJvIG1vZGVsIGZvciBjaGF0dGluZy4gXG4gVGhpcyBleHRlbnNpb25zIHVzaW5nIHRoaXNpcGNhbi5jeW91IGZvciBsb2NhdGlvbiBkZXRlY3Rpb24gYW5kIGdvb2dsZWFwaXMuY29tIGZvciBnZW1pbmkgbW9kZWwgXG4gYWxzbyBpZiB5b3UgYXJlIHBsYW5pbmcgdG8gdXNlIFZlcnRleCBhcGkgeW91IHNob3VsZCBpbnN0YWxsIGBnY2xvdWRgIGFzIGRlcGVuZGVuY3kgKG9wdGlvbmFsKSBcbiBOT1RFOiBUaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBHb29nbGUgYW5kIEdlbWluaS4iLAogICJuYW1lIjogIkdlbWluaSBBSSBmb3IgR25vbWUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZ2VtaW5pYWl1YnVudHUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd3dhcmRhd3cvZ25vbWUtZ2VtaW5pLWFpIiwKICAidXVpZCI6ICJnZW1pbmlhaXVidW50dUBhcmRhLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"},
-    "46": {"version": "12", "sha256": "033g213z068qakd26ymwx3vzmjzp9c8q4crs9h7i08qhs6l4xys5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgQWRkLW9uIGlzIHVzaW5nIGdlbWluaSAxLjAgcHJvIG1vZGVsIGZvciBjaGF0dGluZy4gXG4gVGhpcyBleHRlbnNpb25zIHVzaW5nIHRoaXNpcGNhbi5jeW91IGZvciBsb2NhdGlvbiBkZXRlY3Rpb24gYW5kIGdvb2dsZWFwaXMuY29tIGZvciBnZW1pbmkgbW9kZWwgXG4gYWxzbyBpZiB5b3UgYXJlIHBsYW5pbmcgdG8gdXNlIFZlcnRleCBhcGkgeW91IHNob3VsZCBpbnN0YWxsIGBnY2xvdWRgIGFzIGRlcGVuZGVuY3kgKG9wdGlvbmFsKSBcbiBOT1RFOiBUaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBHb29nbGUgYW5kIEdlbWluaS4iLAogICJuYW1lIjogIkdlbWluaSBBSSBmb3IgR25vbWUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZ2VtaW5pYWl1YnVudHUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd3dhcmRhd3cvZ25vbWUtZ2VtaW5pLWFpIiwKICAidXVpZCI6ICJnZW1pbmlhaXVidW50dUBhcmRhLmNvbSIsCiAgInZlcnNpb24iOiAxMgp9"}
+    "46": {"version": "18", "sha256": "0b4y8s80rbrfnkpfkxdf1x6pk1mqy84knpfh7jsph0agg84wcj50", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgQWRkLW9uIGlzIHVzaW5nIGdlbWluaSBhaSAxLjAgcHJvIG1vZGVsIGZvciBjaGF0dGluZy4gXG4gVGhpcyBleHRlbnNpb25zIHVzaW5nIHRoaXNpcGNhbi5jeW91IGZvciBsb2NhdGlvbiBkZXRlY3Rpb24gYW5kIGdvb2dsZWFwaXMuY29tIGZvciBnZW1pbmkgbW9kZWwgXG4gYWxzbyBpZiB5b3UgYXJlIHBsYW5pbmcgdG8gdXNlIFZlcnRleCBhcGkgeW91IHNob3VsZCBpbnN0YWxsIGBnY2xvdWRgIGFzIGRlcGVuZGVuY3kgKG9wdGlvbmFsKSBcbiBOT1RFOiBUaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBHb29nbGUgYW5kIEdlbWluaS4iLAogICJuYW1lIjogIkdlbWluaSBBSSBDaGF0Qm90IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdlbWluaWFpdWJ1bnR1IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3d3YXJkYXd3L2dub21lLWdlbWluaS1haSIsCiAgInV1aWQiOiAiZ2VtaW5pYWl1YnVudHVAYXJkYS5jb20iLAogICJ2ZXJzaW9uIjogMTgKfQ=="}
   }}
 , {"uuid": "tailscale-connect@itsib.github.com", "name": "Tailscale Connect", "pname": "tailscale-connect", "description": "Graphical interface for the Tailscale desktop client. Simple, faster, configurable.", "link": "https://extensions.gnome.org/extension/6843/tailscale-connect/", "shell_version_map": {
     "42": {"version": "1", "sha256": "057gcg5vjc2k6905mr2b2dcdzk1q9mpjp8p2yinxz37xg981n7gf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdyYXBoaWNhbCBpbnRlcmZhY2UgZm9yIHRoZSBUYWlsc2NhbGUgZGVza3RvcCBjbGllbnQuIFNpbXBsZSwgZmFzdGVyLCBjb25maWd1cmFibGUuIiwKICAiZG9uYXRpb24iOiB7CiAgICAiZ2l0aHViIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pdHNpYiIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ0YWlsc2NhbGUtY29ubmVjdCIsCiAgIm5hbWUiOiAiVGFpbHNjYWxlIENvbm5lY3QiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGFpbHNjYWxlLWNvbm5lY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIiwKICAgICI0MyIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2l0c2liL3RhaWxzY2FsZS1jb25uZWN0IiwKICAidXVpZCI6ICJ0YWlsc2NhbGUtY29ubmVjdEBpdHNpYi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEKfQ=="},
@@ -7016,13 +7072,16 @@
     "43": {"version": "4", "sha256": "1j6hip0gck8p4f101fx2snpxggsvvs10cb11n1v6lixv98bysz2b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBsZWFzYW50LXNvdW5kaW5nLCB0YWxrYXRpdmUgYW5ub3VuY2VyIG9mIHN5c3RlbSBvciB1c2VyIG5vdGlmaWNhdGlvbnMuIEdpdmUgYSByZWFsIHZvaWNlIHRvIEdOT01FLiIsCiAgIm5hbWUiOiAiVm9sdWJsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1F1YW50aXVzQmVuaWdudXMvdm9sdWJsZSIsCiAgInV1aWQiOiAidm9sdWJsZUBxdWFudGl1c2JlbmlnbnVzLmxvY2FsIiwKICAidmVyc2lvbiI6IDQKfQ=="},
     "44": {"version": "4", "sha256": "1j6hip0gck8p4f101fx2snpxggsvvs10cb11n1v6lixv98bysz2b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBsZWFzYW50LXNvdW5kaW5nLCB0YWxrYXRpdmUgYW5ub3VuY2VyIG9mIHN5c3RlbSBvciB1c2VyIG5vdGlmaWNhdGlvbnMuIEdpdmUgYSByZWFsIHZvaWNlIHRvIEdOT01FLiIsCiAgIm5hbWUiOiAiVm9sdWJsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiLAogICAgIjQzIiwKICAgICI0NCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1F1YW50aXVzQmVuaWdudXMvdm9sdWJsZSIsCiAgInV1aWQiOiAidm9sdWJsZUBxdWFudGl1c2JlbmlnbnVzLmxvY2FsIiwKICAidmVyc2lvbiI6IDQKfQ=="}
   }}
-, {"uuid": "chronos@time-tracker.com", "name": "Chronos Time Tracker", "pname": "chronos-time-tracker", "description": "Time tracker tool", "link": "https://extensions.gnome.org/extension/6856/chronos-time-tracker/", "shell_version_map": {
-    "45": {"version": "6", "sha256": "0004lrh6irwibm7sgqmg8cz6lrv5j24m1s7rbz5pm2bk91c7jfyb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbWUgdHJhY2tlciB0b29sIiwKICAibmFtZSI6ICJDaHJvbm9zIFRpbWUgVHJhY2tlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jaHJvbm9zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tLzB2dmxhbmQvY2hyb25vcyIsCiAgInV1aWQiOiAiY2hyb25vc0B0aW1lLXRyYWNrZXIuY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="}
+, {"uuid": "chronos@time-tracker.com", "name": "Chronos Time Tracker", "pname": "chronos-time-tracker", "description": "Time tracker tool\nMange and track your time. Features:\n- tracking time\n- display customisation\n- log to file pause/resume\n- optional pause of tracking on screen lock (hibernate/shutdown)\n- reset to particular time value", "link": "https://extensions.gnome.org/extension/6856/chronos-time-tracker/", "shell_version_map": {
+    "45": {"version": "8", "sha256": "0p6kkmlvpdpckn93ghw5jmdiv9pivb478gh0ff2psn0glshmw69x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbWUgdHJhY2tlciB0b29sXG5NYW5nZSBhbmQgdHJhY2sgeW91ciB0aW1lLiBGZWF0dXJlczpcbi0gdHJhY2tpbmcgdGltZVxuLSBkaXNwbGF5IGN1c3RvbWlzYXRpb25cbi0gbG9nIHRvIGZpbGUgcGF1c2UvcmVzdW1lXG4tIG9wdGlvbmFsIHBhdXNlIG9mIHRyYWNraW5nIG9uIHNjcmVlbiBsb2NrIChoaWJlcm5hdGUvc2h1dGRvd24pXG4tIHJlc2V0IHRvIHBhcnRpY3VsYXIgdGltZSB2YWx1ZSIsCiAgIm5hbWUiOiAiQ2hyb25vcyBUaW1lIFRyYWNrZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY2hyb25vcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vMHZ2bGFuZC9jaHJvbm9zIiwKICAidXVpZCI6ICJjaHJvbm9zQHRpbWUtdHJhY2tlci5jb20iLAogICJ2ZXJzaW9uIjogOAp9"},
+    "46": {"version": "8", "sha256": "0p6kkmlvpdpckn93ghw5jmdiv9pivb478gh0ff2psn0glshmw69x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbWUgdHJhY2tlciB0b29sXG5NYW5nZSBhbmQgdHJhY2sgeW91ciB0aW1lLiBGZWF0dXJlczpcbi0gdHJhY2tpbmcgdGltZVxuLSBkaXNwbGF5IGN1c3RvbWlzYXRpb25cbi0gbG9nIHRvIGZpbGUgcGF1c2UvcmVzdW1lXG4tIG9wdGlvbmFsIHBhdXNlIG9mIHRyYWNraW5nIG9uIHNjcmVlbiBsb2NrIChoaWJlcm5hdGUvc2h1dGRvd24pXG4tIHJlc2V0IHRvIHBhcnRpY3VsYXIgdGltZSB2YWx1ZSIsCiAgIm5hbWUiOiAiQ2hyb25vcyBUaW1lIFRyYWNrZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY2hyb25vcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vMHZ2bGFuZC9jaHJvbm9zIiwKICAidXVpZCI6ICJjaHJvbm9zQHRpbWUtdHJhY2tlci5jb20iLAogICJ2ZXJzaW9uIjogOAp9"}
   }}
 , {"uuid": "screenshort-cut@pauloimon", "name": "Screenshort-cut", "pname": "screenshort-cut", "description": "A simple shortcut to take screenshots directly on your top bar!", "link": "https://extensions.gnome.org/extension/6868/screenshort-cut/", "shell_version_map": {
-    "42": {"version": "1", "sha256": "0axs01gjw5nwzgq7k3dlxfzazkq76ym9iaazqpsyn39dhdn1z75p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIHNob3J0Y3V0IHRvIHRha2Ugc2NyZWVuc2hvdHMgZGlyZWN0bHkgb24geW91ciB0b3AgYmFyISIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvcnQtY3V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGF1bG9pbW9uL3NjcmVlbnNob3J0LWN1dC1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogInNjcmVlbnNob3J0LWN1dEBwYXVsb2ltb24iLAogICJ2ZXJzaW9uIjogMQp9"},
-    "43": {"version": "1", "sha256": "0axs01gjw5nwzgq7k3dlxfzazkq76ym9iaazqpsyn39dhdn1z75p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIHNob3J0Y3V0IHRvIHRha2Ugc2NyZWVuc2hvdHMgZGlyZWN0bHkgb24geW91ciB0b3AgYmFyISIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvcnQtY3V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGF1bG9pbW9uL3NjcmVlbnNob3J0LWN1dC1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogInNjcmVlbnNob3J0LWN1dEBwYXVsb2ltb24iLAogICJ2ZXJzaW9uIjogMQp9"},
-    "44": {"version": "1", "sha256": "0axs01gjw5nwzgq7k3dlxfzazkq76ym9iaazqpsyn39dhdn1z75p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIHNob3J0Y3V0IHRvIHRha2Ugc2NyZWVuc2hvdHMgZGlyZWN0bHkgb24geW91ciB0b3AgYmFyISIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvcnQtY3V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGF1bG9pbW9uL3NjcmVlbnNob3J0LWN1dC1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogInNjcmVlbnNob3J0LWN1dEBwYXVsb2ltb24iLAogICJ2ZXJzaW9uIjogMQp9"}
+    "42": {"version": "2", "sha256": "0jz2knz5rxmx7dhxbrfgwagx6p47bs0wlr9s0ml32j27d7p61kax", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIHNob3J0Y3V0IHRvIHRha2Ugc2NyZWVuc2hvdHMgZGlyZWN0bHkgb24geW91ciB0b3AgYmFyISIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvcnQtY3V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGF1bG9pbW9uL2dub21lLXNjcmVlbnNob3J0LWN1dC1leHRlbnNpb24iLAogICJ1dWlkIjogInNjcmVlbnNob3J0LWN1dEBwYXVsb2ltb24iLAogICJ2ZXJzaW9uIjogMgp9"},
+    "43": {"version": "2", "sha256": "0jz2knz5rxmx7dhxbrfgwagx6p47bs0wlr9s0ml32j27d7p61kax", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIHNob3J0Y3V0IHRvIHRha2Ugc2NyZWVuc2hvdHMgZGlyZWN0bHkgb24geW91ciB0b3AgYmFyISIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvcnQtY3V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGF1bG9pbW9uL2dub21lLXNjcmVlbnNob3J0LWN1dC1leHRlbnNpb24iLAogICJ1dWlkIjogInNjcmVlbnNob3J0LWN1dEBwYXVsb2ltb24iLAogICJ2ZXJzaW9uIjogMgp9"},
+    "44": {"version": "2", "sha256": "0jz2knz5rxmx7dhxbrfgwagx6p47bs0wlr9s0ml32j27d7p61kax", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIHNob3J0Y3V0IHRvIHRha2Ugc2NyZWVuc2hvdHMgZGlyZWN0bHkgb24geW91ciB0b3AgYmFyISIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvcnQtY3V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIsCiAgICAiNDMiLAogICAgIjQ0IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGF1bG9pbW9uL2dub21lLXNjcmVlbnNob3J0LWN1dC1leHRlbnNpb24iLAogICJ1dWlkIjogInNjcmVlbnNob3J0LWN1dEBwYXVsb2ltb24iLAogICJ2ZXJzaW9uIjogMgp9"},
+    "45": {"version": "3", "sha256": "1567484xc4dmihk49ms5d74pvfkmq1f7x2c84q23lp3crpj22l5d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIHNob3J0Y3V0IHRvIHRha2Ugc2NyZWVuc2hvdHMgZGlyZWN0bHkgb24geW91ciB0b3AgYmFyISIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvcnQtY3V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wYXVsb2ltb24vZ25vbWUtc2NyZWVuc2hvcnQtY3V0LWV4dGVuc2lvbiIsCiAgInV1aWQiOiAic2NyZWVuc2hvcnQtY3V0QHBhdWxvaW1vbiIsCiAgInZlcnNpb24iOiAzCn0="},
+    "46": {"version": "3", "sha256": "1567484xc4dmihk49ms5d74pvfkmq1f7x2c84q23lp3crpj22l5d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIHNob3J0Y3V0IHRvIHRha2Ugc2NyZWVuc2hvdHMgZGlyZWN0bHkgb24geW91ciB0b3AgYmFyISIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvcnQtY3V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wYXVsb2ltb24vZ25vbWUtc2NyZWVuc2hvcnQtY3V0LWV4dGVuc2lvbiIsCiAgInV1aWQiOiAic2NyZWVuc2hvcnQtY3V0QHBhdWxvaW1vbiIsCiAgInZlcnNpb24iOiAzCn0="}
   }}
 , {"uuid": "streamcontroller@core447.com", "name": "StreamController Integration", "pname": "streamcontroller-integration", "description": "Allow automatic page switching in StreamController by adding a dbus interface to fetch info about the current window.", "link": "https://extensions.gnome.org/extension/6871/streamcontroller-integration/", "shell_version_map": {
     "45": {"version": "2", "sha256": "1jiyxya2nfvi647xracbfxm2il508whvrz8fhzmph7pzh86by6rw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IGF1dG9tYXRpYyBwYWdlIHN3aXRjaGluZyBpbiBTdHJlYW1Db250cm9sbGVyIGJ5IGFkZGluZyBhIGRidXMgaW50ZXJmYWNlIHRvIGZldGNoIGluZm8gYWJvdXQgdGhlIGN1cnJlbnQgd2luZG93LiIsCiAgIm5hbWUiOiAiU3RyZWFtQ29udHJvbGxlciBJbnRlZ3JhdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU3RyZWFtQ29udHJvbGxlci9zdHJlYW1jb250cm9sbGVyLWNvcmU0NDcuY29tIiwKICAidXVpZCI6ICJzdHJlYW1jb250cm9sbGVyQGNvcmU0NDcuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="},
@@ -7053,8 +7112,8 @@
     "46": {"version": "5", "sha256": "0zg6g9yrhmabz74gdsh1qw7p69garmxn22pi6w8zqhggh6i9m4zy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJwb2thIiwKICAiZGVzY3JpcHRpb24iOiAiRWFzaWx5IGVuYWJsZSBvciBkaXNhYmxlIHlvdXIgc2Vjb25kYXJ5IG1vbml0b3Igd2l0aCBhIHNpbmdsZSBjbGljay4gVGhpcyBleHRlbnNpb24gYWRkcyBhIHRvZ2dsZSBidXR0b24gdG8gdGhlIHN5c3RlbSBtZW51LCBhbGxvd2luZyB5b3UgdG8gcXVpY2tseSBzd2l0Y2ggeW91ciBzZWNvbmQgc2NyZWVuIG9uIG9yIG9mZiB3aXRob3V0IG5lZWRpbmcgdG8gbmF2aWdhdGUgdGhyb3VnaCBzZXR0aW5ncy4gSXQgYXV0b21hdGljYWxseSBkZXRlY3RzIHlvdXIgY29ubmVjdGVkIG1vbml0b3JzIGFuZCB0aGVpciBjb25maWd1cmF0aW9ucywgbWFraW5nIGl0IHNpbXBsZSB0byBtYW5hZ2UgeW91ciBtdWx0aS1tb25pdG9yIHNldHVwLiIsCiAgImxpY2Vuc2UiOiAiR1BMLTMuMCIsCiAgIm5hbWUiOiAiRHVhbCBNb25pdG9yIFRvZ2dsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcG9rYS1JVC9nbm9tZS1kdWFsLW1vbml0b3ItdG9nZ2xlIiwKICAidXVpZCI6ICJkdWFsLW1vbml0b3ItdG9nZ2xlQHBva2EiLAogICJ2ZXJzaW9uIjogNQp9"}
   }}
 , {"uuid": "gbinaryclock@isopolito", "name": "gBinaryClock", "pname": "gbinaryclock", "description": "Adds a binary clock to the gnome top bar", "link": "https://extensions.gnome.org/extension/6901/gbinaryclock/", "shell_version_map": {
-    "45": {"version": "3", "sha256": "1g4qw6cvwxh90y2rdv37vl868yb4766fc7k8frwwrgp9k7mx62jk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBiaW5hcnkgY2xvY2sgdG8gdGhlIGdub21lIHRvcCBiYXIiLAogICJuYW1lIjogImdCaW5hcnlDbG9jayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vSXNvcG9saXRvL2dCaW5hcnlDbG9jayIsCiAgInV1aWQiOiAiZ2JpbmFyeWNsb2NrQGlzb3BvbGl0byIsCiAgInZlcnNpb24iOiAzCn0="},
-    "46": {"version": "3", "sha256": "1g4qw6cvwxh90y2rdv37vl868yb4766fc7k8frwwrgp9k7mx62jk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBiaW5hcnkgY2xvY2sgdG8gdGhlIGdub21lIHRvcCBiYXIiLAogICJuYW1lIjogImdCaW5hcnlDbG9jayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vSXNvcG9saXRvL2dCaW5hcnlDbG9jayIsCiAgInV1aWQiOiAiZ2JpbmFyeWNsb2NrQGlzb3BvbGl0byIsCiAgInZlcnNpb24iOiAzCn0="}
+    "45": {"version": "4", "sha256": "0j4rhb1qvisw146qf97k6z19m76ks1nb6av4kqann88kk78hinaf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBiaW5hcnkgY2xvY2sgdG8gdGhlIGdub21lIHRvcCBiYXIiLAogICJuYW1lIjogImdCaW5hcnlDbG9jayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vSXNvcG9saXRvL2dCaW5hcnlDbG9jayIsCiAgInV1aWQiOiAiZ2JpbmFyeWNsb2NrQGlzb3BvbGl0byIsCiAgInZlcnNpb24iOiA0Cn0="},
+    "46": {"version": "4", "sha256": "0j4rhb1qvisw146qf97k6z19m76ks1nb6av4kqann88kk78hinaf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBiaW5hcnkgY2xvY2sgdG8gdGhlIGdub21lIHRvcCBiYXIiLAogICJuYW1lIjogImdCaW5hcnlDbG9jayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vSXNvcG9saXRvL2dCaW5hcnlDbG9jayIsCiAgInV1aWQiOiAiZ2JpbmFyeWNsb2NrQGlzb3BvbGl0byIsCiAgInZlcnNpb24iOiA0Cn0="}
   }}
 , {"uuid": "mock-tray@kramo.page", "name": "Mock Tray", "pname": "mock-tray", "description": "Creates an invisible system tray (TopIcons) for apps (like MEGAsync) that won't run properly without one.", "link": "https://extensions.gnome.org/extension/6913/mock-tray/", "shell_version_map": {
     "45": {"version": "2", "sha256": "0vp951zha0d6glda9f7b7yp8cradssj477lymmspx19p0iwz7zcg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZXMgYW4gaW52aXNpYmxlIHN5c3RlbSB0cmF5IChUb3BJY29ucykgZm9yIGFwcHMgKGxpa2UgTUVHQXN5bmMpIHRoYXQgd29uJ3QgcnVuIHByb3Blcmx5IHdpdGhvdXQgb25lLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAia3JhLW1vIgogIH0sCiAgIm5hbWUiOiAiTW9jayBUcmF5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rcmEtbW8vbW9jay10cmF5LyIsCiAgInV1aWQiOiAibW9jay10cmF5QGtyYW1vLnBhZ2UiLAogICJ2ZXJzaW9uIjogMgp9"},
@@ -7064,10 +7123,50 @@
     "45": {"version": "1", "sha256": "1xzj9nj12zzc34qdskrpimlcrq37nmhh7wrwvcv05x2s8slr9rjj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4dGVuc2lvbiB0byBlbmFibGUgcG9ydCBmb3J3YXJkaW5nIHZpYSBTU0ggIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicG9ydGZvcndhcmRpbmctZXh0ZW5zaW9uQFNKQkVSVFJBTkQuZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiUG9ydCBGb3J3YXJkaW5nIEV4dGVuc2lvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wb3J0Zm9yd2FyZGluZy1leHRlbnNpb25AU0pCRVJUUkFORC5naXRodWIuY29tIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TSkJFUlRSQU5EL3BvcnRmb3J3YXJkaW5nLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAicG9ydGZvcndhcmRpbmctZXh0ZW5zaW9uQFNKQkVSVFJBTkQuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="},
     "46": {"version": "1", "sha256": "1xzj9nj12zzc34qdskrpimlcrq37nmhh7wrwvcv05x2s8slr9rjj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4dGVuc2lvbiB0byBlbmFibGUgcG9ydCBmb3J3YXJkaW5nIHZpYSBTU0ggIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicG9ydGZvcndhcmRpbmctZXh0ZW5zaW9uQFNKQkVSVFJBTkQuZ2l0aHViLmNvbSIsCiAgIm5hbWUiOiAiUG9ydCBGb3J3YXJkaW5nIEV4dGVuc2lvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wb3J0Zm9yd2FyZGluZy1leHRlbnNpb25AU0pCRVJUUkFORC5naXRodWIuY29tIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TSkJFUlRSQU5EL3BvcnRmb3J3YXJkaW5nLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAicG9ydGZvcndhcmRpbmctZXh0ZW5zaW9uQFNKQkVSVFJBTkQuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}
   }}
-, {"uuid": "gravatar@dsheeler.net", "name": "Gravatar", "pname": "gravatar", "description": "Synchronize GNOME Shell user icon with Gravatar. This extension is not affiliated, funded, or in any way associated with Automattic and Gravatar.", "link": "https://extensions.gnome.org/extension/6922/gravatar/", "shell_version_map": {
-    "46": {"version": "2", "sha256": "1hxv64cbh3jqxirzpshj35nq4hz1pam86q1n5592yw9h9kfdal6b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5bmNocm9uaXplIEdOT01FIFNoZWxsIHVzZXIgaWNvbiB3aXRoIEdyYXZhdGFyLiBUaGlzIGV4dGVuc2lvbiBpcyBub3QgYWZmaWxpYXRlZCwgZnVuZGVkLCBvciBpbiBhbnkgd2F5IGFzc29jaWF0ZWQgd2l0aCBBdXRvbWF0dGljIGFuZCBHcmF2YXRhci4iLAogICJkb25hdGlvbnMiOiB7CiAgICAiZ2l0aHViIjogImRzaGVlbGVyIiwKICAgICJsaWJlcmFwYXkiOiAiZHNoZWVsZXIiLAogICAgInBheXBhbCI6ICJEYW5pZWxTaGVlbGVyIgogIH0sCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMtZ3JhdmF0YXIiLAogICJuYW1lIjogIkdyYXZhdGFyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdyYXZhdGFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RzaGVlbGVyL2dub21lLXNoZWxsLWV4dGVuc2lvbnMtZ3JhdmF0YXIiLAogICJ1dWlkIjogImdyYXZhdGFyQGRzaGVlbGVyLm5ldCIsCiAgInZlcnNpb24iOiAyCn0="}
+, {"uuid": "gravatar@dsheeler.net", "name": "Gravatar", "pname": "gravatar", "description": "Synchronize GNOME Shell user icon with Gravatar.\nThis extension is not affiliated, funded, or in any way associated with Automattic and Gravatar.", "link": "https://extensions.gnome.org/extension/6922/gravatar/", "shell_version_map": {
+    "46": {"version": "3", "sha256": "1jyirqxwynblvjwh6zbj8j57hf07c1qkkmz8gs0pkzmbxqy1qrjf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5bmNocm9uaXplIEdOT01FIFNoZWxsIHVzZXIgaWNvbiB3aXRoIEdyYXZhdGFyLlxuVGhpcyBleHRlbnNpb24gaXMgbm90IGFmZmlsaWF0ZWQsIGZ1bmRlZCwgb3IgaW4gYW55IHdheSBhc3NvY2lhdGVkIHdpdGggQXV0b21hdHRpYyBhbmQgR3JhdmF0YXIuIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJkc2hlZWxlciIsCiAgICAibGliZXJhcGF5IjogImRzaGVlbGVyIiwKICAgICJwYXlwYWwiOiAiRGFuaWVsU2hlZWxlciIKICB9LAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLWdyYXZhdGFyIiwKICAibmFtZSI6ICJHcmF2YXRhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ncmF2YXRhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kc2hlZWxlci9nbm9tZS1zaGVsbC1leHRlbnNpb25zLWdyYXZhdGFyIiwKICAidXVpZCI6ICJncmF2YXRhckBkc2hlZWxlci5uZXQiLAogICJ2ZXJzaW9uIjogMwp9"}
+  }}
+, {"uuid": "wechsel@transistor.local", "name": "Wechsel", "pname": "wechsel", "description": "Organise your computer by replacing user folders with symlinks to project folders.\nThis extension is the user interface for the wechsel cli tool.\n\nWechsel is a simple tool that helps you by creating individual Download, Desktop, ... folders for each project.\nIt replaces the original folders with symlinks to the folders of the current active project.\nLike this the random files you download, will be placed in the Download folder they belong to.\n\nThis Extension depends on the wechsel cli tool, which you can find here: https://github.com/JustSomeRandomUsername/wechsel", "link": "https://extensions.gnome.org/extension/6925/wechsel/", "shell_version_map": {
+    "44": {"version": "5", "sha256": "1212kva3sj9cwiq6nligk62r1am200413lhp2szw6ydj8mj8mnfi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk9yZ2FuaXNlIHlvdXIgY29tcHV0ZXIgYnkgcmVwbGFjaW5nIHVzZXIgZm9sZGVycyB3aXRoIHN5bWxpbmtzIHRvIHByb2plY3QgZm9sZGVycy5cblRoaXMgZXh0ZW5zaW9uIGlzIHRoZSB1c2VyIGludGVyZmFjZSBmb3IgdGhlIHdlY2hzZWwgY2xpIHRvb2wuXG5cbldlY2hzZWwgaXMgYSBzaW1wbGUgdG9vbCB0aGF0IGhlbHBzIHlvdSBieSBjcmVhdGluZyBpbmRpdmlkdWFsIERvd25sb2FkLCBEZXNrdG9wLCAuLi4gZm9sZGVycyBmb3IgZWFjaCBwcm9qZWN0LlxuSXQgcmVwbGFjZXMgdGhlIG9yaWdpbmFsIGZvbGRlcnMgd2l0aCBzeW1saW5rcyB0byB0aGUgZm9sZGVycyBvZiB0aGUgY3VycmVudCBhY3RpdmUgcHJvamVjdC5cbkxpa2UgdGhpcyB0aGUgcmFuZG9tIGZpbGVzIHlvdSBkb3dubG9hZCwgd2lsbCBiZSBwbGFjZWQgaW4gdGhlIERvd25sb2FkIGZvbGRlciB0aGV5IGJlbG9uZyB0by5cblxuVGhpcyBFeHRlbnNpb24gZGVwZW5kcyBvbiB0aGUgd2VjaHNlbCBjbGkgdG9vbCwgd2hpY2ggeW91IGNhbiBmaW5kIGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9KdXN0U29tZVJhbmRvbVVzZXJuYW1lL3dlY2hzZWwiLAogICJuYW1lIjogIldlY2hzZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2VjaHNlbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDQiLAogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0p1c3RTb21lUmFuZG9tVXNlcm5hbWUvd2VjaHNlbC1leHRlbnNpb24iLAogICJ1dWlkIjogIndlY2hzZWxAdHJhbnNpc3Rvci5sb2NhbCIsCiAgInZlcnNpb24iOiA1Cn0="},
+    "45": {"version": "5", "sha256": "1212kva3sj9cwiq6nligk62r1am200413lhp2szw6ydj8mj8mnfi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk9yZ2FuaXNlIHlvdXIgY29tcHV0ZXIgYnkgcmVwbGFjaW5nIHVzZXIgZm9sZGVycyB3aXRoIHN5bWxpbmtzIHRvIHByb2plY3QgZm9sZGVycy5cblRoaXMgZXh0ZW5zaW9uIGlzIHRoZSB1c2VyIGludGVyZmFjZSBmb3IgdGhlIHdlY2hzZWwgY2xpIHRvb2wuXG5cbldlY2hzZWwgaXMgYSBzaW1wbGUgdG9vbCB0aGF0IGhlbHBzIHlvdSBieSBjcmVhdGluZyBpbmRpdmlkdWFsIERvd25sb2FkLCBEZXNrdG9wLCAuLi4gZm9sZGVycyBmb3IgZWFjaCBwcm9qZWN0LlxuSXQgcmVwbGFjZXMgdGhlIG9yaWdpbmFsIGZvbGRlcnMgd2l0aCBzeW1saW5rcyB0byB0aGUgZm9sZGVycyBvZiB0aGUgY3VycmVudCBhY3RpdmUgcHJvamVjdC5cbkxpa2UgdGhpcyB0aGUgcmFuZG9tIGZpbGVzIHlvdSBkb3dubG9hZCwgd2lsbCBiZSBwbGFjZWQgaW4gdGhlIERvd25sb2FkIGZvbGRlciB0aGV5IGJlbG9uZyB0by5cblxuVGhpcyBFeHRlbnNpb24gZGVwZW5kcyBvbiB0aGUgd2VjaHNlbCBjbGkgdG9vbCwgd2hpY2ggeW91IGNhbiBmaW5kIGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9KdXN0U29tZVJhbmRvbVVzZXJuYW1lL3dlY2hzZWwiLAogICJuYW1lIjogIldlY2hzZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2VjaHNlbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDQiLAogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0p1c3RTb21lUmFuZG9tVXNlcm5hbWUvd2VjaHNlbC1leHRlbnNpb24iLAogICJ1dWlkIjogIndlY2hzZWxAdHJhbnNpc3Rvci5sb2NhbCIsCiAgInZlcnNpb24iOiA1Cn0="},
+    "46": {"version": "5", "sha256": "1212kva3sj9cwiq6nligk62r1am200413lhp2szw6ydj8mj8mnfi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk9yZ2FuaXNlIHlvdXIgY29tcHV0ZXIgYnkgcmVwbGFjaW5nIHVzZXIgZm9sZGVycyB3aXRoIHN5bWxpbmtzIHRvIHByb2plY3QgZm9sZGVycy5cblRoaXMgZXh0ZW5zaW9uIGlzIHRoZSB1c2VyIGludGVyZmFjZSBmb3IgdGhlIHdlY2hzZWwgY2xpIHRvb2wuXG5cbldlY2hzZWwgaXMgYSBzaW1wbGUgdG9vbCB0aGF0IGhlbHBzIHlvdSBieSBjcmVhdGluZyBpbmRpdmlkdWFsIERvd25sb2FkLCBEZXNrdG9wLCAuLi4gZm9sZGVycyBmb3IgZWFjaCBwcm9qZWN0LlxuSXQgcmVwbGFjZXMgdGhlIG9yaWdpbmFsIGZvbGRlcnMgd2l0aCBzeW1saW5rcyB0byB0aGUgZm9sZGVycyBvZiB0aGUgY3VycmVudCBhY3RpdmUgcHJvamVjdC5cbkxpa2UgdGhpcyB0aGUgcmFuZG9tIGZpbGVzIHlvdSBkb3dubG9hZCwgd2lsbCBiZSBwbGFjZWQgaW4gdGhlIERvd25sb2FkIGZvbGRlciB0aGV5IGJlbG9uZyB0by5cblxuVGhpcyBFeHRlbnNpb24gZGVwZW5kcyBvbiB0aGUgd2VjaHNlbCBjbGkgdG9vbCwgd2hpY2ggeW91IGNhbiBmaW5kIGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9KdXN0U29tZVJhbmRvbVVzZXJuYW1lL3dlY2hzZWwiLAogICJuYW1lIjogIldlY2hzZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2VjaHNlbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDQiLAogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0p1c3RTb21lUmFuZG9tVXNlcm5hbWUvd2VjaHNlbC1leHRlbnNpb24iLAogICJ1dWlkIjogIndlY2hzZWxAdHJhbnNpc3Rvci5sb2NhbCIsCiAgInZlcnNpb24iOiA1Cn0="}
   }}
 , {"uuid": "boostvolume@shaquib.dev", "name": "Volume Booster", "pname": "boost-volume", "description": "Boosts volume above limits", "link": "https://extensions.gnome.org/extension/6928/boost-volume/", "shell_version_map": {
     "46": {"version": "6", "sha256": "1z4baifmz6q3h1vkm2196z08nh8z3pp2w8rxcgy7xbsmbppr9i23", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJvb3N0cyB2b2x1bWUgYWJvdmUgbGltaXRzIiwKICAibmFtZSI6ICJCb29zdCBWb2x1bWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2hhcXVpYmltZGFkL2dub21lX2V4dF92b2x1bWVfYm9vc3QiLAogICJ1dWlkIjogImJvb3N0dm9sdW1lQHNoYXF1aWIuZGV2IiwKICAidmVyc2lvbiI6IDYKfQ=="}
   }}
+, {"uuid": "media-progress@krypion17", "name": "Media Progress", "pname": "media-progress", "description": "Progress Bar for the GNOME Media Notification", "link": "https://extensions.gnome.org/extension/6940/media-progress/", "shell_version_map": {
+    "46": {"version": "9", "sha256": "1ni8qqchg0z49nl5yhsvc2z4lmlwpg8sb4fs6x4jv4888jaidfcm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb2dyZXNzIEJhciBmb3IgdGhlIEdOT01FIE1lZGlhIE5vdGlmaWNhdGlvbiIsCiAgIm5hbWUiOiAiTWVkaWEgUHJvZ3Jlc3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vS3J5cGlvbjE3L21lZGlhLXByb2dyZXNzIiwKICAidXVpZCI6ICJtZWRpYS1wcm9ncmVzc0BrcnlwaW9uMTciLAogICJ2ZXJzaW9uIjogOQp9"}
+  }}
+, {"uuid": "autohide-battery-percentage@rukins.github.io", "name": "Autohide Battery Percentage", "pname": "autohide-battery-percentage", "description": "GNOME Shell extension to hide the battery percentage in the top panel, if the computer is plugged in or power saving is disabled", "link": "https://extensions.gnome.org/extension/6943/autohide-battery-percentage/", "shell_version_map": {
+    "45": {"version": "6", "sha256": "1xx6a5jkfpibcayyjg8zyyriw7ah8sz7kwmh0gfmbmjrhd0f53p4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIFNoZWxsIGV4dGVuc2lvbiB0byBoaWRlIHRoZSBiYXR0ZXJ5IHBlcmNlbnRhZ2UgaW4gdGhlIHRvcCBwYW5lbCwgaWYgdGhlIGNvbXB1dGVyIGlzIHBsdWdnZWQgaW4gb3IgcG93ZXIgc2F2aW5nIGlzIGRpc2FibGVkIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJydWtpbnMiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXV0b2hpZGUtYmF0dGVyeS1wZXJjZW50YWdlQHJ1a2lucy5naXRodWIuaW8iLAogICJuYW1lIjogIkF1dG9oaWRlIEJhdHRlcnkgUGVyY2VudGFnZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hdXRvaGlkZS1iYXR0ZXJ5LXBlcmNlbnRhZ2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3J1a2lucy9hdXRvaGlkZS1iYXR0ZXJ5LXBlcmNlbnRhZ2UiLAogICJ1dWlkIjogImF1dG9oaWRlLWJhdHRlcnktcGVyY2VudGFnZUBydWtpbnMuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDYKfQ=="},
+    "46": {"version": "6", "sha256": "1xx6a5jkfpibcayyjg8zyyriw7ah8sz7kwmh0gfmbmjrhd0f53p4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIFNoZWxsIGV4dGVuc2lvbiB0byBoaWRlIHRoZSBiYXR0ZXJ5IHBlcmNlbnRhZ2UgaW4gdGhlIHRvcCBwYW5lbCwgaWYgdGhlIGNvbXB1dGVyIGlzIHBsdWdnZWQgaW4gb3IgcG93ZXIgc2F2aW5nIGlzIGRpc2FibGVkIiwKICAiZG9uYXRpb25zIjogewogICAgImdpdGh1YiI6ICJydWtpbnMiCiAgfSwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXV0b2hpZGUtYmF0dGVyeS1wZXJjZW50YWdlQHJ1a2lucy5naXRodWIuaW8iLAogICJuYW1lIjogIkF1dG9oaWRlIEJhdHRlcnkgUGVyY2VudGFnZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hdXRvaGlkZS1iYXR0ZXJ5LXBlcmNlbnRhZ2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ1IiwKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3J1a2lucy9hdXRvaGlkZS1iYXR0ZXJ5LXBlcmNlbnRhZ2UiLAogICJ1dWlkIjogImF1dG9oaWRlLWJhdHRlcnktcGVyY2VudGFnZUBydWtpbnMuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDYKfQ=="}
+  }}
+, {"uuid": "moveclock@kuvaus.org", "name": "moveclock", "pname": "moveclock", "description": "Move the clock to right side of the panel", "link": "https://extensions.gnome.org/extension/6949/moveclock/", "shell_version_map": {
+    "46": {"version": "5", "sha256": "0lmvnrms8kg0cir6wkaj7sicn5ms9lx9mqh4z7pbh8gfr135n5v9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgdGhlIGNsb2NrIHRvIHJpZ2h0IHNpZGUgb2YgdGhlIHBhbmVsIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibW92ZWNsb2NrIiwKICAibmFtZSI6ICJtb3ZlY2xvY2siLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubW92ZWNsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2t1dmF1cy9tb3ZlY2xvY2siLAogICJ1dWlkIjogIm1vdmVjbG9ja0BrdXZhdXMub3JnIiwKICAidmVyc2lvbiI6IDUKfQ=="}
+  }}
+, {"uuid": "rezmon@azz.lol", "name": "RezMon", "pname": "rezmon", "description": "Shows info about CPU, RAM and NET on Top Bar", "link": "https://extensions.gnome.org/extension/6952/rezmon/", "shell_version_map": {
+    "46": {"version": "4", "sha256": "1d2ikwkxh4v9nswidxr6vv5xp9kaf8grcwgrcw6s1p2g574rk7hh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGluZm8gYWJvdXQgQ1BVLCBSQU0gYW5kIE5FVCBvbiBUb3AgQmFyIiwKICAibmFtZSI6ICJSZXpNb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZXp5d2F5L1Jlek1vbiIsCiAgInV1aWQiOiAicmV6bW9uQGF6ei5sb2wiLAogICJ2ZXJzaW9uIjogNAp9"}
+  }}
+, {"uuid": "drive-activity-indicator@marcosdalvarez.org", "name": "Drive Activity Indicator", "pname": "drive-activity-indicator", "description": "Visualize the activity of storage drives (disk activity LED simulator).", "link": "https://extensions.gnome.org/extension/6955/drive-activity-indicator/", "shell_version_map": {
+    "46": {"version": "2", "sha256": "1p2csc5jdk37qwiqb2ylkqzz3fmbmw9vqik9yv109yqk0zpzbz2y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpc3VhbGl6ZSB0aGUgYWN0aXZpdHkgb2Ygc3RvcmFnZSBkcml2ZXMgKGRpc2sgYWN0aXZpdHkgTEVEIHNpbXVsYXRvcikuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZHJpdmUtYWN0aXZpdHktaW5kaWNhdG9yQG1hcmNvc2RhbHZhcmV6Lm9yZyIsCiAgIm5hbWUiOiAiRHJpdmUgQWN0aXZpdHkgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRyaXZlLWFjdGl2aXR5LWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9tYXJjb3NkYWx2YXJlei9kcml2ZS1hY3Rpdml0eS1pbmRpY2F0b3ItZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJkcml2ZS1hY3Rpdml0eS1pbmRpY2F0b3JAbWFyY29zZGFsdmFyZXoub3JnIiwKICAidmVyc2lvbiI6IDIKfQ=="}
+  }}
+, {"uuid": "usd-rub-er-gse@c0mr8.github.com", "name": "USD to RUB viewer", "pname": "usd-to-rub-viewer", "description": "That simple extension shows USD to Russian RUB exchange rate on the left center part of Gnome top panel. Exchange rate updates every 30 seconds. Compatible with Gnome 45-46. This extension is using economia.awesomeapi.com.br. It is a fork of usd-try.", "link": "https://extensions.gnome.org/extension/6958/usd-to-rub-viewer/", "shell_version_map": {
+    "45": {"version": "4", "sha256": "1c5jdfyz2m7vn6h82qbdbc6bmi86yzxcdqa1rq55kh124cjx88kq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoYXQgc2ltcGxlIGV4dGVuc2lvbiBzaG93cyBVU0QgdG8gUnVzc2lhbiBSVUIgZXhjaGFuZ2UgcmF0ZSBvbiB0aGUgbGVmdCBjZW50ZXIgcGFydCBvZiBHbm9tZSB0b3AgcGFuZWwuIEV4Y2hhbmdlIHJhdGUgdXBkYXRlcyBldmVyeSAzMCBzZWNvbmRzLiBDb21wYXRpYmxlIHdpdGggR25vbWUgNDUtNDYuIFRoaXMgZXh0ZW5zaW9uIGlzIHVzaW5nIGVjb25vbWlhLmF3ZXNvbWVhcGkuY29tLmJyLiBJdCBpcyBhIGZvcmsgb2YgdXNkLXRyeS4iLAogICJuYW1lIjogIlVTRCB0byBSVUIgdmlld2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb21yOC9VU0QtUlVCLUVSLUdTRSIsCiAgInV1aWQiOiAidXNkLXJ1Yi1lci1nc2VAYzBtcjguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="},
+    "46": {"version": "4", "sha256": "1c5jdfyz2m7vn6h82qbdbc6bmi86yzxcdqa1rq55kh124cjx88kq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoYXQgc2ltcGxlIGV4dGVuc2lvbiBzaG93cyBVU0QgdG8gUnVzc2lhbiBSVUIgZXhjaGFuZ2UgcmF0ZSBvbiB0aGUgbGVmdCBjZW50ZXIgcGFydCBvZiBHbm9tZSB0b3AgcGFuZWwuIEV4Y2hhbmdlIHJhdGUgdXBkYXRlcyBldmVyeSAzMCBzZWNvbmRzLiBDb21wYXRpYmxlIHdpdGggR25vbWUgNDUtNDYuIFRoaXMgZXh0ZW5zaW9uIGlzIHVzaW5nIGVjb25vbWlhLmF3ZXNvbWVhcGkuY29tLmJyLiBJdCBpcyBhIGZvcmsgb2YgdXNkLXRyeS4iLAogICJuYW1lIjogIlVTRCB0byBSVUIgdmlld2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jb21yOC9VU0QtUlVCLUVSLUdTRSIsCiAgInV1aWQiOiAidXNkLXJ1Yi1lci1nc2VAYzBtcjguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}
+  }}
+, {"uuid": "tomato-c-to-panel@thomas-philippot.dev", "name": "tomato.C to panel", "pname": "tomatoc-to-panel", "description": "Add tomato.c pomodoro timer to the gnome panel, requires tomato.c : https://github.com/gabrielzschmitz/Tomato.C", "link": "https://extensions.gnome.org/extension/6961/tomatoc-to-panel/", "shell_version_map": {
+    "46": {"version": "3", "sha256": "1m6b84pskdk216kagqnx3wxjlvnx3qpw274qqvkrzk0pmbk2sxsa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCB0b21hdG8uYyBwb21vZG9ybyB0aW1lciB0byB0aGUgZ25vbWUgcGFuZWwsIHJlcXVpcmVzIHRvbWF0by5jIDogaHR0cHM6Ly9naXRodWIuY29tL2dhYnJpZWx6c2NobWl0ei9Ub21hdG8uQyIsCiAgIm5hbWUiOiAidG9tYXRvLkMgdG8gcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVGhvbWFzLVBoaWxpcHBvdC90b21hdG8uYy10by1wYW5lbCIsCiAgInV1aWQiOiAidG9tYXRvLWMtdG8tcGFuZWxAdGhvbWFzLXBoaWxpcHBvdC5kZXYiLAogICJ2ZXJzaW9uIjogMwp9"}
+  }}
+, {"uuid": "removeclock@sudfish.com", "name": "Remove Clock", "pname": "remove-clock", "description": "Remove or hide clock from top panel. For GNOME Shell 45 and later.", "link": "https://extensions.gnome.org/extension/6967/remove-clock/", "shell_version_map": {
+    "45": {"version": "1", "sha256": "1i7ig9jpcdd7nmk5l7zvk7y5bx7yk1m7679x0awzbr84yxchyrly", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBvciBoaWRlIGNsb2NrIGZyb20gdG9wIHBhbmVsLiIsCiAgIm5hbWUiOiAiUmVtb3ZlIENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdWRmaXNoL0hpZGUtQ2xvY2stRXh0ZW5zaW9uIiwKICAidXVpZCI6ICJyZW1vdmVjbG9ja0BzdWRmaXNoLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="},
+    "46": {"version": "1", "sha256": "1i7ig9jpcdd7nmk5l7zvk7y5bx7yk1m7679x0awzbr84yxchyrly", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBvciBoaWRlIGNsb2NrIGZyb20gdG9wIHBhbmVsLiIsCiAgIm5hbWUiOiAiUmVtb3ZlIENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdWRmaXNoL0hpZGUtQ2xvY2stRXh0ZW5zaW9uIiwKICAidXVpZCI6ICJyZW1vdmVjbG9ja0BzdWRmaXNoLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}
+  }}
+, {"uuid": "remove-world-clocks@codemacabre.com", "name": "Remove World Clocks", "pname": "remove-world-clocks", "description": "GNOME shell extension to remove world clocks from the date menu", "link": "https://extensions.gnome.org/extension/6973/remove-world-clocks/", "shell_version_map": {
+    "45": {"version": "1", "sha256": "1xn0n8mckv2nr37m4rr4ml5spaq5iq7adq2vzszksc4flcblmgbg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIHNoZWxsIGV4dGVuc2lvbiB0byByZW1vdmUgd29ybGQgY2xvY2tzIGZyb20gdGhlIGRhdGUgbWVudSIsCiAgIm5hbWUiOiAiUmVtb3ZlIFdvcmxkIENsb2NrcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY29kZW1hY2FicmUvcmVtb3ZlLXdvcmxkLWNsb2NrcyIsCiAgInV1aWQiOiAicmVtb3ZlLXdvcmxkLWNsb2Nrc0Bjb2RlbWFjYWJyZS5jb20iLAogICJ2ZXJzaW9uIjogMQp9"},
+    "46": {"version": "1", "sha256": "1xn0n8mckv2nr37m4rr4ml5spaq5iq7adq2vzszksc4flcblmgbg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdOT01FIHNoZWxsIGV4dGVuc2lvbiB0byByZW1vdmUgd29ybGQgY2xvY2tzIGZyb20gdGhlIGRhdGUgbWVudSIsCiAgIm5hbWUiOiAiUmVtb3ZlIFdvcmxkIENsb2NrcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDUiLAogICAgIjQ2IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY29kZW1hY2FicmUvcmVtb3ZlLXdvcmxkLWNsb2NrcyIsCiAgInV1aWQiOiAicmVtb3ZlLXdvcmxkLWNsb2Nrc0Bjb2RlbWFjYWJyZS5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}
+  }}
+, {"uuid": "vscode-search-provider@mrmarble.github.com", "name": "VSCode Search Provider", "pname": "vscode-search-provider", "description": "Search for your vscode workspaces easily. This extension is not affiliated, funded, or in any way associated with Microsoft and vscode software.", "link": "https://extensions.gnome.org/extension/6976/vscode-search-provider/", "shell_version_map": {
+    "45": {"version": "2", "sha256": "1h0879mi7ljs9mhcs0f0rgndph0xpyzkzrs1nlr7yd098dw38d6n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaCBmb3IgeW91ciB2c2NvZGUgd29ya3NwYWNlcyBlYXNpbHkuIFRoaXMgZXh0ZW5zaW9uIGlzIG5vdCBhZmZpbGlhdGVkLCBmdW5kZWQsIG9yIGluIGFueSB3YXkgYXNzb2NpYXRlZCB3aXRoIE1pY3Jvc29mdCBhbmQgdnNjb2RlIHNvZnR3YXJlLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAibXJtYXJibGUiCiAgfSwKICAibmFtZSI6ICJWU0NvZGUgU2VhcmNoIFByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tcm1hcmJsZS92c2NvZGUtc2VhcmNoLXByb3ZpZGVyIiwKICAidXVpZCI6ICJ2c2NvZGUtc2VhcmNoLXByb3ZpZGVyQG1ybWFyYmxlLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMgp9"},
+    "46": {"version": "2", "sha256": "1h0879mi7ljs9mhcs0f0rgndph0xpyzkzrs1nlr7yd098dw38d6n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaCBmb3IgeW91ciB2c2NvZGUgd29ya3NwYWNlcyBlYXNpbHkuIFRoaXMgZXh0ZW5zaW9uIGlzIG5vdCBhZmZpbGlhdGVkLCBmdW5kZWQsIG9yIGluIGFueSB3YXkgYXNzb2NpYXRlZCB3aXRoIE1pY3Jvc29mdCBhbmQgdnNjb2RlIHNvZnR3YXJlLiIsCiAgImRvbmF0aW9ucyI6IHsKICAgICJnaXRodWIiOiAibXJtYXJibGUiCiAgfSwKICAibmFtZSI6ICJWU0NvZGUgU2VhcmNoIFByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0NSIsCiAgICAiNDYiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tcm1hcmJsZS92c2NvZGUtc2VhcmNoLXByb3ZpZGVyIiwKICAidXVpZCI6ICJ2c2NvZGUtc2VhcmNoLXByb3ZpZGVyQG1ybWFyYmxlLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}
+  }}
 ]
diff --git a/pkgs/desktops/gnome/games/aisleriot/default.nix b/pkgs/desktops/gnome/games/aisleriot/default.nix
index dfba82308d1ac..0263cfe97d345 100644
--- a/pkgs/desktops/gnome/games/aisleriot/default.nix
+++ b/pkgs/desktops/gnome/games/aisleriot/default.nix
@@ -16,16 +16,16 @@
 , yelp-tools
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "aisleriot";
-  version = "3.22.32";
+  version = "3.22.33";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "GNOME";
     repo = "aisleriot";
-    rev = version;
-    sha256 = "sha256-+U/EsKTZjWa05DbILWAxqIpMcZ0DP0l4LIYxM2wCFdM=";
+    rev = finalAttrs.version;
+    sha256 = "sha256-HylhDBgkAJrrs/r42v3aDNR8mBJaqnJHyY7T3QW1eWg=";
   };
 
   nativeBuildInputs = [
@@ -70,4 +70,4 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
   };
-}
+})
diff --git a/pkgs/desktops/gnome/misc/geary/default.nix b/pkgs/desktops/gnome/misc/geary/default.nix
index e2cbaaa6da89b..461402dda8b3d 100644
--- a/pkgs/desktops/gnome/misc/geary/default.nix
+++ b/pkgs/desktops/gnome/misc/geary/default.nix
@@ -47,11 +47,11 @@
 
 stdenv.mkDerivation rec {
   pname = "geary";
-  version = "44.1";
+  version = "46.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "fRHLbhxQThCMLckaoiVqRATcq+fRyHPY1glOLfM1onc=";
+    sha256 = "r60VEwKBfd8Ji15BbnrH8tXupWejuAu5C9PGKv0TuaE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lomiri/applications/lomiri/default.nix b/pkgs/desktops/lomiri/applications/lomiri/default.nix
index f9eead00dafb9..35fdd1e466178 100644
--- a/pkgs/desktops/lomiri/applications/lomiri/default.nix
+++ b/pkgs/desktops/lomiri/applications/lomiri/default.nix
@@ -207,7 +207,7 @@ stdenv.mkDerivation (finalAttrs: {
     lomiri-settings-components
     lomiri-thumbnailer
     qtmultimedia
-    telephony-service
+    # telephony-service # currently broken: https://github.com/NixOS/nixpkgs/pull/314043
   ];
 
   nativeCheckInputs = [
diff --git a/pkgs/desktops/lomiri/services/lomiri-indicator-network/default.nix b/pkgs/desktops/lomiri/services/lomiri-indicator-network/default.nix
index fc552881f4696..6566ec4601d39 100644
--- a/pkgs/desktops/lomiri/services/lomiri-indicator-network/default.nix
+++ b/pkgs/desktops/lomiri/services/lomiri-indicator-network/default.nix
@@ -101,7 +101,8 @@ stdenv.mkDerivation (finalAttrs: {
     (lib.cmakeBool "BUILD_DOC" true) # lacks QML docs, needs qdoc: https://github.com/NixOS/nixpkgs/pull/245379
   ];
 
-  doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
+  # Currently broken: https://github.com/NixOS/nixpkgs/pull/314043
+  doCheck = false;
 
   postInstall = ''
     substituteInPlace $out/etc/dbus-1/services/com.lomiri.connectivity1.service \
diff --git a/pkgs/desktops/lomiri/services/telephony-service/default.nix b/pkgs/desktops/lomiri/services/telephony-service/default.nix
index 975f96bce9923..f07d8b2baa998 100644
--- a/pkgs/desktops/lomiri/services/telephony-service/default.nix
+++ b/pkgs/desktops/lomiri/services/telephony-service/default.nix
@@ -197,5 +197,7 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.gpl3Only;
     maintainers = teams.lomiri.members;
     platforms = platforms.linux;
+    # Completely broken until https://github.com/NixOS/nixpkgs/pull/314043 is merged
+    broken = true;
   };
 })
diff --git a/pkgs/desktops/pantheon/desktop/gala/default.nix b/pkgs/desktops/pantheon/desktop/gala/default.nix
index ec3541b7c83b7..f1c9fd1b103d2 100644
--- a/pkgs/desktops/pantheon/desktop/gala/default.nix
+++ b/pkgs/desktops/pantheon/desktop/gala/default.nix
@@ -47,6 +47,13 @@ stdenv.mkDerivation rec {
       url = "https://github.com/elementary/gala/commit/351722c5a4fded46992b725e03dc94971c5bd31f.patch";
       hash = "sha256-RvdVHQjCUNmLrROBZTF+m1vE2XudtQZjk/YW28P/vKc=";
     })
+
+    # InternalUtils: Fix window placement
+    # https://github.com/elementary/gala/pull/1913
+    (fetchpatch {
+      url = "https://github.com/elementary/gala/commit/2d30bee678788c5a853721d16b5b39c997b23c02.patch";
+      hash = "sha256-vhGFaLpJZFx1VTfjY1BahQiOUvBPi0dBSXLGhYc7r8A=";
+    })
   ];
 
   nativeBuildInputs = [
diff --git a/pkgs/development/compilers/corretto/17.nix b/pkgs/development/compilers/corretto/17.nix
index be79aef0c2446..c557012e8cdb8 100644
--- a/pkgs/development/compilers/corretto/17.nix
+++ b/pkgs/development/compilers/corretto/17.nix
@@ -1,4 +1,5 @@
 { fetchFromGitHub
+, fetchurl
 , gradle_7
 , jdk17
 , lib
@@ -9,17 +10,25 @@
 }:
 
 let
-  corretto = import ./mk-corretto.nix {
+  corretto = import ./mk-corretto.nix rec {
     inherit lib stdenv rsync runCommand testers;
     jdk = jdk17;
     gradle = gradle_7;
-    version = "17.0.8.8.1";
+    version = "17.0.11.9.1";
     src = fetchFromGitHub {
       owner = "corretto";
       repo = "corretto-17";
-      rev = "9a3cc984f76cb5f90598bdb43215bad20e0f7319";
-      sha256 = "sha256-/VuB3ocD5VvDqCU7BoTG+fQ0aKvK1TejegRYmswInqQ=";
+      rev = version;
+      sha256 = "sha256-LxZSFILFfyh8oBiYEnuBQ0Og2i713qdK2jIiCBnrlj0=";
     };
   };
 in
-corretto
+corretto.overrideAttrs (final: prev: {
+  # HACK: Removes the FixNullPtrCast patch, as it fails to apply. Need to figure out what causes it to fail to apply.
+  patches = lib.remove
+    (fetchurl {
+      url = "https://git.alpinelinux.org/aports/plain/community/openjdk17/FixNullPtrCast.patch?id=41e78a067953e0b13d062d632bae6c4f8028d91c";
+      sha256 = "sha256-LzmSew51+DyqqGyyMw2fbXeBluCiCYsS1nCjt9hX6zo=";
+    })
+    (prev.patches or [ ]);
+})
diff --git a/pkgs/development/compilers/gleam/default.nix b/pkgs/development/compilers/gleam/default.nix
index 7e5fd44916b5e..e61a42f4efebb 100644
--- a/pkgs/development/compilers/gleam/default.nix
+++ b/pkgs/development/compilers/gleam/default.nix
@@ -12,13 +12,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "gleam";
-  version = "1.1.0";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "gleam-lang";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-3DlsqUBAKF3zgiS26YQY1MzymLg9GnVzH1HMpbYv5Dc=";
+    hash = "sha256-P0IHO/rO3uHpSfWX+GVuMGuzux1ObGiNsSCCVP+wv5k=";
   };
 
   nativeBuildInputs = [ git pkg-config ];
@@ -26,7 +26,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = [ openssl ] ++
     lib.optionals stdenv.isDarwin [ Security SystemConfiguration ];
 
-  cargoHash = "sha256-KROGDBOsx1WTzv7IhJ3WWLJJ9zvrmZI5poJCr2tFcLY=";
+  cargoHash = "sha256-5KraSw/CtYZ4Al8VQszvuL/ubEVeQOppRRH5SQ8tsA0=";
 
   passthru.updateScript = nix-update-script { };
 
@@ -35,6 +35,6 @@ rustPlatform.buildRustPackage rec {
     mainProgram = "gleam";
     homepage = "https://gleam.run/";
     license = licenses.asl20;
-    maintainers = teams.beam.members;
+    maintainers = teams.beam.members ++ [ lib.maintainers.philtaken ];
   };
 }
diff --git a/pkgs/development/compilers/gnu-smalltalk/0000-fix_mkorder.patch b/pkgs/development/compilers/gnu-smalltalk/0000-fix_mkorder.patch
new file mode 100644
index 0000000000000..7b6fae2d5f03e
--- /dev/null
+++ b/pkgs/development/compilers/gnu-smalltalk/0000-fix_mkorder.patch
@@ -0,0 +1,21 @@
+--- a/packages/gtk/mkorder.awk
++++ b/packages/gtk/mkorder.awk
+@@ -33,6 +33,9 @@
+     paths[1] = "."
+     n_paths = 1
+     n_prefixes = split(_prefixes, prefixes)
++
++	ignored_files = [ "glib/gwin32.h" ]
++
+     split(_libs, libs)
+     split(_files, files)
+     for (i = 1; (i in libs); i++)
+@@ -60,7 +63,7 @@
+
+ function process_file(name, file) {
+     file = find_file(name)
+-    if (file in processed)
++    if ((name in ignored_files) or (file in processed))
+ 	return
+     processed[file] = 1
+     if (file == "")
diff --git a/pkgs/development/compilers/gnu-smalltalk/default.nix b/pkgs/development/compilers/gnu-smalltalk/default.nix
index 1caf96c715cbb..c6d9109031208 100644
--- a/pkgs/development/compilers/gnu-smalltalk/default.nix
+++ b/pkgs/development/compilers/gnu-smalltalk/default.nix
@@ -25,6 +25,12 @@ in stdenv.mkDerivation rec {
     sha256 = "1k2ssrapfzhngc7bg1zrnd9n2vyxp9c9m70byvsma6wapbvib6l1";
   };
 
+  patches = [
+    # The awk script incorrectly parsed `glib/glib.h` and was trying to find `glib/gwin32.h`,
+    # that isn't included since we're building only for linux.
+    ./0000-fix_mkorder.patch
+  ];
+
   # The dependencies and their justification are explained at
   # http://smalltalk.gnu.org/download
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/development/compilers/go/1.22.nix b/pkgs/development/compilers/go/1.22.nix
index c0103090b3314..aad242c886069 100644
--- a/pkgs/development/compilers/go/1.22.nix
+++ b/pkgs/development/compilers/go/1.22.nix
@@ -37,6 +37,7 @@ let
     "riscv64" = "riscv64";
     "s390x" = "s390x";
     "x86_64" = "amd64";
+    "wasm32" = "wasm";
   }.${platform.parsed.cpu.name} or (throw "Unsupported system: ${platform.parsed.cpu.name}");
 
   # We need a target compiler which is still runnable at build time,
@@ -90,7 +91,7 @@ stdenv.mkDerivation (finalAttrs: {
     ./go_no_vendor_checks-1.22.patch
   ];
 
-  GOOS = stdenv.targetPlatform.parsed.kernel.name;
+  GOOS = if stdenv.targetPlatform.isWasi then "wasip1" else stdenv.targetPlatform.parsed.kernel.name;
   GOARCH = goarch stdenv.targetPlatform;
   # GOHOSTOS/GOHOSTARCH must match the building system, not the host system.
   # Go will nevertheless build a for host system that we will copy over in
@@ -113,7 +114,8 @@ stdenv.mkDerivation (finalAttrs: {
 
   GOARM = toString (lib.intersectLists [ (stdenv.hostPlatform.parsed.cpu.version or "") ] [ "5" "6" "7" ]);
   GO386 = "softfloat"; # from Arch: don't assume sse2 on i686
-  CGO_ENABLED = 1;
+  # Wasi does not support CGO
+  CGO_ENABLED = if stdenv.targetPlatform.isWasi then 0 else 1;
 
   GOROOT_BOOTSTRAP = if useGccGoBootstrap then goBootstrap else "${goBootstrap}/share/go";
 
@@ -184,7 +186,7 @@ stdenv.mkDerivation (finalAttrs: {
     homepage = "https://go.dev/";
     license = licenses.bsd3;
     maintainers = teams.golang.members;
-    platforms = platforms.darwin ++ platforms.linux;
+    platforms = platforms.darwin ++ platforms.linux ++ platforms.wasi;
     mainProgram = "go";
   };
 })
diff --git a/pkgs/development/compilers/hvm/default.nix b/pkgs/development/compilers/hvm/default.nix
index b640d4e11c2de..b03b7eed2ea19 100644
--- a/pkgs/development/compilers/hvm/default.nix
+++ b/pkgs/development/compilers/hvm/default.nix
@@ -7,22 +7,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "hvm";
-  version = "2.0.12";
+  version = "2.0.17";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-/55SK/5zBKXmucRQPoYt/8IHxisQlOxNEVMAZVMtCNI=";
+    hash = "sha256-UzPEupmUnph7SjCc/T4sBSGXj8yLVdQlw+X9iM16zD8=";
   };
 
-  cargoHash = "sha256-9U8Y0KaQHIfOZnCKbl94VvjS/7Qmi6UnKMDZDTXcye0=";
+  cargoHash = "sha256-AchVbf+mn4qQtzWu84Dqek+btCm6BA9mcY+8iHWqdiw=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk_11_0.frameworks.IOKit
   ];
 
-  # enable nightly features
-  RUSTC_BOOTSTRAP = true;
-
   meta = with lib; {
     description = "A massively parallel, optimal functional runtime in Rust";
     mainProgram = "hvm";
diff --git a/pkgs/development/compilers/jetbrains-jdk/default.nix b/pkgs/development/compilers/jetbrains-jdk/default.nix
index 1e6b86b17b8e4..76d4079baafbf 100644
--- a/pkgs/development/compilers/jetbrains-jdk/default.nix
+++ b/pkgs/development/compilers/jetbrains-jdk/default.nix
@@ -39,26 +39,26 @@ let
 in
 openjdk17.overrideAttrs (oldAttrs: rec {
   pname = "jetbrains-jdk" + lib.optionalString withJcef "-jcef";
-  javaVersion = "17.0.8";
-  build = "1000.8";
+  javaVersion = "17.0.11";
+  build = "1207.24";
   # To get the new tag:
   # git clone https://github.com/jetbrains/jetbrainsruntime
   # cd jetbrainsruntime
   # git reset --hard [revision]
   # git log --simplify-by-decoration --decorate=short --pretty=short | grep "jbr-" --color=never | cut -d "(" -f2 | cut -d ")" -f1 | awk '{print $2}' | sort -t "-" -k 2 -g | tail -n 1 | tr -d ","
-  openjdkTag = "jbr-17.0.7+7";
+  openjdkTag = "jbr-17.0.8+7";
   version = "${javaVersion}-b${build}";
 
   src = fetchFromGitHub {
     owner = "JetBrains";
     repo = "JetBrainsRuntime";
     rev = "jb${version}";
-    hash = "sha256-PXS8wRF37D9vzeC4CvmB3szFMbt+NRqhQqtPZcbeAO8=";
+    hash = "sha256-a7cJF2iCW/1GK0/GmVbaY5pYcn3YtZy5ngFkyAGRhu0=";
   };
 
   BOOT_JDK = openjdk17-bootstrap.home;
   # run `git log -1 --pretty=%ct` in jdk repo for new value on update
-  SOURCE_DATE_EPOCH = 1691119859;
+  SOURCE_DATE_EPOCH = 1715809405;
 
   patches = [ ];
 
diff --git a/pkgs/development/compilers/llvm/18/default.nix b/pkgs/development/compilers/llvm/18/default.nix
index 3c0e551791e54..5b2b09bbb6ec2 100644
--- a/pkgs/development/compilers/llvm/18/default.nix
+++ b/pkgs/development/compilers/llvm/18/default.nix
@@ -25,7 +25,7 @@
   #   rev-version = /* human readable version; i.e. "unstable-2022-26-07" */;
   #   sha256 = /* checksum for this release, can omit if specifying your own `monorepoSrc` */;
   # }
-, officialRelease ? { version = "18.1.5"; sha256 = "0n44chqn96xsa00ryhwk8g0vv3zx908xjakkgjsa14sjr9mcsq8q"; }
+, officialRelease ? { version = "18.1.6"; sha256 = "sha256-q6avJyzzL6ZEhPmONH6/VTfwBfnXNOLBbuHi0gVy55I="; }
   # i.e.:
   # {
   #   version = /* i.e. "15.0.0" */;
diff --git a/pkgs/development/compilers/openjdk/17.nix b/pkgs/development/compilers/openjdk/17.nix
index d2c71683c9bfe..1c9aee9af5e95 100644
--- a/pkgs/development/compilers/openjdk/17.nix
+++ b/pkgs/development/compilers/openjdk/17.nix
@@ -11,8 +11,8 @@
 let
   version = {
     feature = "17";
-    interim = ".0.7";
-    build = "7";
+    interim = ".0.11";
+    build = "9";
   };
 
   # when building a headless jdk, also bootstrap it with a headless jdk
@@ -26,7 +26,7 @@ let
       owner = "openjdk";
       repo = "jdk${version.feature}u";
       rev = "jdk-${version.feature}${version.interim}+${version.build}";
-      sha256 = "sha256-S6QOB4Tbi+K1yjvvywTfvwFI2eX8AiqIx5c3zfxcskc=";
+      sha256 = "sha256-aO4iSc9MklW/4q9U86WEfiiWnlq6iZSbxzq2fbsqd0A=";
     };
 
     nativeBuildInputs = [ pkg-config autoconf unzip ];
diff --git a/pkgs/development/compilers/openjdk/openjfx/17.nix b/pkgs/development/compilers/openjdk/openjfx/17.nix
index c5d6c6aaa597e..fab6ca5e7df83 100644
--- a/pkgs/development/compilers/openjdk/openjfx/17.nix
+++ b/pkgs/development/compilers/openjdk/openjfx/17.nix
@@ -7,8 +7,8 @@
 
 let
   major = "17";
-  update = ".0.6";
-  build = "+3";
+  update = ".0.11";
+  build = "-ga";
   repover = "${major}${update}${build}";
   gradle_ = (gradle_7.override {
     java = openjdk17_headless;
@@ -31,7 +31,7 @@ let
       owner = "openjdk";
       repo = "jfx${major}u";
       rev = repover;
-      sha256 = "sha256-9VfXk2EfMebMyVKPohPRP2QXRFf8XemUtfY0JtBCHyw=";
+      sha256 = "sha256-WV8NHlYlt7buGbirLSorLnS2TnyBD17zUquFfwSL3xE=";
     };
 
     buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4-headless ];
diff --git a/pkgs/development/compilers/semeru-bin/generate-sources.py b/pkgs/development/compilers/semeru-bin/generate-sources.py
index da23559955d92..44ad583ab48f7 100755
--- a/pkgs/development/compilers/semeru-bin/generate-sources.py
+++ b/pkgs/development/compilers/semeru-bin/generate-sources.py
@@ -6,10 +6,10 @@ import re
 import requests
 import sys
 
-feature_versions = (8, 11, 16, 17)
+feature_versions = (8, 11, 16, 17, 21)
 oses = ("mac", "linux")
 types = ("jre", "jdk")
-impls = ("openj9")
+impls = ("openj9",)
 
 arch_to_nixos = {
     "x64": ("x86_64",),
diff --git a/pkgs/development/compilers/semeru-bin/jdk-darwin.nix b/pkgs/development/compilers/semeru-bin/jdk-darwin.nix
index f58fec3a84c0d..2e9bde029f2d9 100644
--- a/pkgs/development/compilers/semeru-bin/jdk-darwin.nix
+++ b/pkgs/development/compilers/semeru-bin/jdk-darwin.nix
@@ -3,14 +3,18 @@
 let
   sources = (lib.importJSON ./sources.json).openj9.mac;
   common = opts: callPackage (import ./jdk-darwin-base.nix opts) {};
+
+  EOL = [ "This JDK/JRE version has reached End of Life." ];
 in
 {
   jdk-8 = common { sourcePerArch = sources.jdk.openjdk8; };
   jre-8 = common { sourcePerArch = sources.jre.openjdk8; };
   jdk-11 = common { sourcePerArch = sources.jdk.openjdk11; };
   jre-11 = common { sourcePerArch = sources.jre.openjdk11; };
-  jdk-16 = common { sourcePerArch = sources.jdk.openjdk16; };
-  jre-16 = common { sourcePerArch = sources.jre.openjdk16; };
+  jdk-16 = common { sourcePerArch = sources.jdk.openjdk16; knownVulnerabilities = EOL; };
+  jre-16 = common { sourcePerArch = sources.jre.openjdk16; knownVulnerabilities = EOL; };
   jdk-17 = common { sourcePerArch = sources.jdk.openjdk17; };
   jre-17 = common { sourcePerArch = sources.jre.openjdk17; };
+  jdk-21 = common { sourcePerArch = sources.jdk.openjdk21; };
+  jre-21 = common { sourcePerArch = sources.jre.openjdk21; };
 }
diff --git a/pkgs/development/compilers/semeru-bin/jdk-linux.nix b/pkgs/development/compilers/semeru-bin/jdk-linux.nix
index c80dd991bf042..59c6a4862d913 100644
--- a/pkgs/development/compilers/semeru-bin/jdk-linux.nix
+++ b/pkgs/development/compilers/semeru-bin/jdk-linux.nix
@@ -3,14 +3,18 @@
 let
   sources = (lib.importJSON ./sources.json).openj9.linux;
   common = opts: callPackage (import ./jdk-linux-base.nix opts) {};
+
+  EOL = [ "This JDK/JRE version has reached End of Life." ];
 in
 {
   jdk-8 = common { sourcePerArch = sources.jdk.openjdk8; };
   jre-8 = common { sourcePerArch = sources.jre.openjdk8; };
   jdk-11 = common { sourcePerArch = sources.jdk.openjdk11; };
   jre-11 = common { sourcePerArch = sources.jre.openjdk11; };
-  jdk-16 = common { sourcePerArch = sources.jdk.openjdk16; };
-  jre-16 = common { sourcePerArch = sources.jre.openjdk16; };
+  jdk-16 = common { sourcePerArch = sources.jdk.openjdk16; knownVulnerabilities = EOL; };
+  jre-16 = common { sourcePerArch = sources.jre.openjdk16; knownVulnerabilities = EOL; };
   jdk-17 = common { sourcePerArch = sources.jdk.openjdk17; };
   jre-17 = common { sourcePerArch = sources.jre.openjdk17; };
+  jdk-21 = common { sourcePerArch = sources.jdk.openjdk21; };
+  jre-21 = common { sourcePerArch = sources.jre.openjdk21; };
 }
diff --git a/pkgs/development/compilers/semeru-bin/sources.json b/pkgs/development/compilers/semeru-bin/sources.json
index 5e04fa90af748..ccca4a2ee7ad5 100644
--- a/pkgs/development/compilers/semeru-bin/sources.json
+++ b/pkgs/development/compilers/semeru-bin/sources.json
@@ -4,18 +4,18 @@
       "jdk": {
         "openjdk11": {
           "aarch64": {
-            "build": "8",
-            "sha256": "488739171f84e3949df6ccb1c40eaf1b73541748b123d88780329648d6b383d0",
-            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.16%2B8_openj9-0.33.0/ibm-semeru-open-jdk_aarch64_linux_11.0.16_8_openj9-0.33.0.tar.gz",
-            "version": "11.0.16"
+            "build": "9",
+            "sha256": "23e280da1ce418692323f8aad94069ef34bae6566a98ffd349fc2cbb9fa285af",
+            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.23%2B9_openj9-0.44.0/ibm-semeru-open-jdk_aarch64_linux_11.0.23_9_openj9-0.44.0.tar.gz",
+            "version": "11.0.23"
           },
           "packageType": "jdk",
           "vmType": "openj9",
           "x86_64": {
-            "build": "8",
-            "sha256": "eeca01d4e245a001d01663c5c20a8d50ef3d572b47a9b3689a5154f2a37bf005",
-            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.16%2B8_openj9-0.33.0/ibm-semeru-open-jdk_x64_linux_11.0.16_8_openj9-0.33.0.tar.gz",
-            "version": "11.0.16"
+            "build": "9",
+            "sha256": "033261124af247f944f820cad158df2b9db58945b4998750258c37d62fac99ff",
+            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.23%2B9_openj9-0.44.0/ibm-semeru-open-jdk_x64_linux_11.0.23_9_openj9-0.44.0.tar.gz",
+            "version": "11.0.23"
           }
         },
         "openjdk16": {
@@ -36,52 +36,68 @@
         },
         "openjdk17": {
           "aarch64": {
-            "build": "8",
-            "sha256": "18d291411ee4a956018b4dcefe436971e73694128782617f1b44beca991956c5",
-            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.4%2B8_openj9-0.33.0/ibm-semeru-open-jdk_aarch64_linux_17.0.4_8_openj9-0.33.0.tar.gz",
-            "version": "17.0.4"
+            "build": "9",
+            "sha256": "cfdff21ce44ae6af494cba75c1f323bef83a982f2c11944988bab2125f85b906",
+            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.9%2B9_openj9-0.41.0/ibm-semeru-open-jdk_aarch64_linux_17.0.9_9_openj9-0.41.0.tar.gz",
+            "version": "17.0.9"
           },
           "packageType": "jdk",
           "vmType": "openj9",
           "x86_64": {
-            "build": "8",
-            "sha256": "78ae15d9e01fce3a473f4d6a90c331fb766211b950931088c2a85590f178ad39",
-            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.4%2B8_openj9-0.33.0/ibm-semeru-open-jdk_x64_linux_17.0.4_8_openj9-0.33.0.tar.gz",
-            "version": "17.0.4"
+            "build": "9",
+            "sha256": "9b945e58f024108a20eb907015cca4a452332b7644e8dd8e051149a3ec62e3a3",
+            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.9%2B9_openj9-0.41.0/ibm-semeru-open-jdk_x64_linux_17.0.9_9_openj9-0.41.0.tar.gz",
+            "version": "17.0.9"
+          }
+        },
+        "openjdk21": {
+          "aarch64": {
+            "build": "9",
+            "sha256": "718e465d1b22034d889445e8ae371fc58dfc733c454cf344fa5e10db0ab8a775",
+            "url": "https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.3%2B9_openj9-0.44.0/ibm-semeru-open-jdk_aarch64_linux_21.0.3_9_openj9-0.44.0.tar.gz",
+            "version": "21.0.3"
+          },
+          "packageType": "jdk",
+          "vmType": "openj9",
+          "x86_64": {
+            "build": "9",
+            "sha256": "5cccb39dc7ca6c61a11bd7179c4c3c30b747f9f22129576feef921b59725af25",
+            "url": "https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.3%2B9_openj9-0.44.0/ibm-semeru-open-jdk_x64_linux_21.0.3_9_openj9-0.44.0.tar.gz",
+            "version": "21.0.3"
           }
         },
         "openjdk8": {
           "aarch64": {
-            "build": "01",
-            "sha256": "6b89e648899709459b7c7dbe0a5b1ea480a88da84c6163f01255d638dbdd051b",
-            "url": "https://github.com/ibmruntimes/semeru8-binaries/releases/download/8u345-b01_openj9-0.33.0/ibm-semeru-open-jdk_aarch64_linux_8u345b01_openj9-0.33.0.tar.gz",
-            "version": "8.0.345"
+            "build": "08",
+            "sha256": "2baa88e7ed0ea9f72310fb4adfe99ee06fdb514cc04517b0e0be3c0646493ea3",
+            "url": "https://github.com/ibmruntimes/semeru8-binaries/releases/download/jdk8u412-b08_openj9-0.44.0/ibm-semeru-open-jdk_aarch64_linux_8u412b08_openj9-0.44.0.tar.gz",
+            "version": "8.0.412"
           },
           "packageType": "jdk",
           "vmType": "openj9",
           "x86_64": {
-            "build": "01",
-            "sha256": "82c8232a5cb420246457d65a5014602feb8b288079cdae896e22a2eb6e390b58",
-            "url": "https://github.com/ibmruntimes/semeru8-binaries/releases/download/8u345-b01_openj9-0.33.0/ibm-semeru-open-jdk_x64_linux_8u345b01_openj9-0.33.0.tar.gz",
-            "version": "8.0.345"
+            "build": "08",
+            "sha256": "85af2c57078aab240ce31ba3f7a8e86696ff5bdf4c30f3c37f107986f07b23a6",
+            "url": "https://github.com/ibmruntimes/semeru8-binaries/releases/download/jdk8u412-b08_openj9-0.44.0/ibm-semeru-open-jdk_x64_linux_8u412b08_openj9-0.44.0.tar.gz",
+            "version": "8.0.412"
           }
         }
       },
       "jre": {
         "openjdk11": {
           "aarch64": {
-            "build": "8",
-            "sha256": "49dc05a3e9f3f99c5f8fa466261aa3e33a753694c67cabfa7d3f682e5a2e3685",
-            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.16%2B8_openj9-0.33.0/ibm-semeru-open-jre_aarch64_linux_11.0.16_8_openj9-0.33.0.tar.gz",
-            "version": "11.0.16"
+            "build": "9",
+            "sha256": "8613dc2b6c403f48d2a8e25da92ab9f8a7b5dd63cb81d1917e4cb070ae371557",
+            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.23%2B9_openj9-0.44.0/ibm-semeru-open-jre_aarch64_linux_11.0.23_9_openj9-0.44.0.tar.gz",
+            "version": "11.0.23"
           },
           "packageType": "jre",
           "vmType": "openj9",
           "x86_64": {
-            "build": "8",
-            "sha256": "ba09711193b8b8664478f3f949b5320232f65c1bdf61f32a885d84de73c02767",
-            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.16%2B8_openj9-0.33.0/ibm-semeru-open-jre_x64_linux_11.0.16_8_openj9-0.33.0.tar.gz",
-            "version": "11.0.16"
+            "build": "9",
+            "sha256": "b9558416d6d773fce0d9b4d3f875fdfc5ffc1afd922570b0f7a6f7cbab7468ab",
+            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.23%2B9_openj9-0.44.0/ibm-semeru-open-jre_x64_linux_11.0.23_9_openj9-0.44.0.tar.gz",
+            "version": "11.0.23"
           }
         },
         "openjdk16": {
@@ -102,34 +118,50 @@
         },
         "openjdk17": {
           "aarch64": {
-            "build": "8",
-            "sha256": "6c40c1e0d7ee0509c44465e9f26dd970904137a95fd751e6447b1d6a9ef5092a",
-            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.4%2B8_openj9-0.33.0/ibm-semeru-open-jre_aarch64_linux_17.0.4_8_openj9-0.33.0.tar.gz",
-            "version": "17.0.4"
+            "build": "9",
+            "sha256": "9760aa27a5790a8c20a702ff5f036535f3df51d3fb291bb5254b5ae76e096bad",
+            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.9%2B9_openj9-0.41.0/ibm-semeru-open-jre_aarch64_linux_17.0.9_9_openj9-0.41.0.tar.gz",
+            "version": "17.0.9"
+          },
+          "packageType": "jre",
+          "vmType": "openj9",
+          "x86_64": {
+            "build": "9",
+            "sha256": "1caf409f33f7738efe37742197525b5ae6244d6383b2017e7b8e925dc0b6a329",
+            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.9%2B9_openj9-0.41.0/ibm-semeru-open-jre_x64_linux_17.0.9_9_openj9-0.41.0.tar.gz",
+            "version": "17.0.9"
+          }
+        },
+        "openjdk21": {
+          "aarch64": {
+            "build": "9",
+            "sha256": "0222dc3749e1c94bd1b047cdb02eb18310aefd9f7965b66196da06e4e3844b7a",
+            "url": "https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.3%2B9_openj9-0.44.0/ibm-semeru-open-jre_aarch64_linux_21.0.3_9_openj9-0.44.0.tar.gz",
+            "version": "21.0.3"
           },
           "packageType": "jre",
           "vmType": "openj9",
           "x86_64": {
-            "build": "8",
-            "sha256": "b2c176f8aa8cc7138d4c22ce9298d8f49597e1d8e3fdd33125898e5ee0182c93",
-            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.4%2B8_openj9-0.33.0/ibm-semeru-open-jre_x64_linux_17.0.4_8_openj9-0.33.0.tar.gz",
-            "version": "17.0.4"
+            "build": "9",
+            "sha256": "b831e8c418374ccec13c51f60c36f4c32266f3cc83cb31f32286f89c26d66e00",
+            "url": "https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.3%2B9_openj9-0.44.0/ibm-semeru-open-jre_x64_linux_21.0.3_9_openj9-0.44.0.tar.gz",
+            "version": "21.0.3"
           }
         },
         "openjdk8": {
           "aarch64": {
-            "build": "01",
-            "sha256": "03caff41622e84a6e7fa66a225414a9b6eefb38dd215f830cae0bc4bbfc55b5c",
-            "url": "https://github.com/ibmruntimes/semeru8-binaries/releases/download/8u345-b01_openj9-0.33.0/ibm-semeru-open-jre_aarch64_linux_8u345b01_openj9-0.33.0.tar.gz",
-            "version": "8.0.345"
+            "build": "08",
+            "sha256": "08a41a48b79881590d65a09c62c56d8bcd9b8453f03420bcfd5dd3165bbba3c1",
+            "url": "https://github.com/ibmruntimes/semeru8-binaries/releases/download/jdk8u412-b08_openj9-0.44.0/ibm-semeru-open-jre_aarch64_linux_8u412b08_openj9-0.44.0.tar.gz",
+            "version": "8.0.412"
           },
           "packageType": "jre",
           "vmType": "openj9",
           "x86_64": {
-            "build": "01",
-            "sha256": "0d4fe62716b9da2ccce324b5b46d57e8d47e5dfb5d128f87e16135ee9bc36cdc",
-            "url": "https://github.com/ibmruntimes/semeru8-binaries/releases/download/8u345-b01_openj9-0.33.0/ibm-semeru-open-jre_x64_linux_8u345b01_openj9-0.33.0.tar.gz",
-            "version": "8.0.345"
+            "build": "08",
+            "sha256": "ac5022b52b33b22c51d8370655f6157fd999e5e24c6525f91d1e778f34abcb8b",
+            "url": "https://github.com/ibmruntimes/semeru8-binaries/releases/download/jdk8u412-b08_openj9-0.44.0/ibm-semeru-open-jre_x64_linux_8u412b08_openj9-0.44.0.tar.gz",
+            "version": "8.0.412"
           }
         }
       }
@@ -138,18 +170,18 @@
       "jdk": {
         "openjdk11": {
           "aarch64": {
-            "build": "8",
-            "sha256": "9881b292142a129f6f5c6b21608b090f8f94625052b4f7d0ce5bd982c054ca2e",
-            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.16%2B8_openj9-0.33.0/ibm-semeru-open-jdk_aarch64_mac_11.0.16_8_openj9-0.33.0.tar.gz",
-            "version": "11.0.16"
+            "build": "9",
+            "sha256": "451336700a8b219d219e2e3b26b60154c44e8ab209056cc3466b0fcd4b15e53d",
+            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.23%2B9_openj9-0.44.0/ibm-semeru-open-jdk_aarch64_mac_11.0.23_9_openj9-0.44.0.tar.gz",
+            "version": "11.0.23"
           },
           "packageType": "jdk",
           "vmType": "openj9",
           "x86_64": {
-            "build": "8",
-            "sha256": "8638735d2cae3efff212f898728685380355bb0a298076e9e46244d0bf3d4a64",
-            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.16%2B8_openj9-0.33.0/ibm-semeru-open-jdk_x64_mac_11.0.16_8_openj9-0.33.0.tar.gz",
-            "version": "11.0.16"
+            "build": "9",
+            "sha256": "6a225f3024d1919528107ece20256e8a8594523ea2204d93a041c012cbf1e2d2",
+            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.23%2B9_openj9-0.44.0/ibm-semeru-open-jdk_x64_mac_11.0.23_9_openj9-0.44.0.tar.gz",
+            "version": "11.0.23"
           }
         },
         "openjdk16": {
@@ -164,46 +196,62 @@
         },
         "openjdk17": {
           "aarch64": {
-            "build": "8",
-            "sha256": "bf22628b54115dff9939b94751531544ab735b7cbbc8d6ddfe83d1b04df3a532",
-            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.4%2B8_openj9-0.33.0/ibm-semeru-open-jdk_aarch64_mac_17.0.4_8_openj9-0.33.0.tar.gz",
-            "version": "17.0.4"
+            "build": "9",
+            "sha256": "5fed15250cb613a4024f2b2e75ccb54e6526ffa5ff78d955a6e2a11ae330f003",
+            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.9%2B9_openj9-0.41.0/ibm-semeru-open-jdk_aarch64_mac_17.0.9_9_openj9-0.41.0.tar.gz",
+            "version": "17.0.9"
           },
           "packageType": "jdk",
           "vmType": "openj9",
           "x86_64": {
-            "build": "8",
-            "sha256": "a935f20564e347a9292955c04eb57e51efdb1853ae7f0b4fe759b22c9fe248be",
-            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.4%2B8_openj9-0.33.0/ibm-semeru-open-jdk_x64_mac_17.0.4_8_openj9-0.33.0.tar.gz",
-            "version": "17.0.4"
+            "build": "9",
+            "sha256": "585f48be83935a44ef980249aaab024119d4ea6ef0937a2cd2d97d0c77cda1c2",
+            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.9%2B9_openj9-0.41.0/ibm-semeru-open-jdk_x64_mac_17.0.9_9_openj9-0.41.0.tar.gz",
+            "version": "17.0.9"
+          }
+        },
+        "openjdk21": {
+          "aarch64": {
+            "build": "9",
+            "sha256": "a95896a4ca7b69050a25b1557520f430abc66d098e9fd15cd394e20c4c93e5cf",
+            "url": "https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.3%2B9_openj9-0.44.0/ibm-semeru-open-jdk_aarch64_mac_21.0.3_9_openj9-0.44.0.tar.gz",
+            "version": "21.0.3"
+          },
+          "packageType": "jdk",
+          "vmType": "openj9",
+          "x86_64": {
+            "build": "9",
+            "sha256": "95640346ef677fbdbf40efa0298cc61314cffed0c43d1b3bd329b84d445db869",
+            "url": "https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.3%2B9_openj9-0.44.0/ibm-semeru-open-jdk_x64_mac_21.0.3_9_openj9-0.44.0.tar.gz",
+            "version": "21.0.3"
           }
         },
         "openjdk8": {
           "packageType": "jdk",
           "vmType": "openj9",
           "x86_64": {
-            "build": "01",
-            "sha256": "c69086950c006b17484a70ef7bc85e92d121be15e69e282e1446fd238d42b6b4",
-            "url": "https://github.com/ibmruntimes/semeru8-binaries/releases/download/8u345-b01_openj9-0.33.0/ibm-semeru-open-jdk_x64_mac_8u345b01_openj9-0.33.0.tar.gz",
-            "version": "8.0.345"
+            "build": "08",
+            "sha256": "4e8a34442fc0c1c1288ca4d251ecfe744c201ec6494103d8dafa52e785d3f8ae",
+            "url": "https://github.com/ibmruntimes/semeru8-binaries/releases/download/jdk8u412-b08_openj9-0.44.0/ibm-semeru-open-jdk_x64_mac_8u412b08_openj9-0.44.0.tar.gz",
+            "version": "8.0.412"
           }
         }
       },
       "jre": {
         "openjdk11": {
           "aarch64": {
-            "build": "8",
-            "sha256": "39802020896476342dc11486e3cbdf10f6311c172abeb4a1e2931b472da4417e",
-            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.16%2B8_openj9-0.33.0/ibm-semeru-open-jre_aarch64_mac_11.0.16_8_openj9-0.33.0.tar.gz",
-            "version": "11.0.16"
+            "build": "9",
+            "sha256": "be6ba7e6904e8ca2fab9dab38607af1e4d36f6a391584eb8c4de0804493f3626",
+            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.23%2B9_openj9-0.44.0/ibm-semeru-open-jre_aarch64_mac_11.0.23_9_openj9-0.44.0.tar.gz",
+            "version": "11.0.23"
           },
           "packageType": "jre",
           "vmType": "openj9",
           "x86_64": {
-            "build": "8",
-            "sha256": "92f87a3c2fb5fe60d3d51020ff95b9c234b2ae2677b79aebbe749dda717c9cdd",
-            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.16%2B8_openj9-0.33.0/ibm-semeru-open-jre_x64_mac_11.0.16_8_openj9-0.33.0.tar.gz",
-            "version": "11.0.16"
+            "build": "9",
+            "sha256": "9f9505e9ee5082c070de965c790d51758a9969b7bb9ca49057d0d5afb5cfc99b",
+            "url": "https://github.com/ibmruntimes/semeru11-binaries/releases/download/jdk-11.0.23%2B9_openj9-0.44.0/ibm-semeru-open-jre_x64_mac_11.0.23_9_openj9-0.44.0.tar.gz",
+            "version": "11.0.23"
           }
         },
         "openjdk16": {
@@ -218,28 +266,44 @@
         },
         "openjdk17": {
           "aarch64": {
-            "build": "8",
-            "sha256": "4057c94cd46b814cc5a4d683d5f0b95dbd0b9e13e8c2e11155561ad0d8bec85b",
-            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.4%2B8_openj9-0.33.0/ibm-semeru-open-jre_aarch64_mac_17.0.4_8_openj9-0.33.0.tar.gz",
-            "version": "17.0.4"
+            "build": "9",
+            "sha256": "fbd093ab7218c916aa4f49ac851635020dd1c8a98a98158fc44a6565e3d182ed",
+            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.9%2B9_openj9-0.41.0/ibm-semeru-open-jre_aarch64_mac_17.0.9_9_openj9-0.41.0.tar.gz",
+            "version": "17.0.9"
+          },
+          "packageType": "jre",
+          "vmType": "openj9",
+          "x86_64": {
+            "build": "9",
+            "sha256": "f5781de29132c04f54341349e99954ec3cfbdbc65fdebdd00feff47c68793299",
+            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.9%2B9_openj9-0.41.0/ibm-semeru-open-jre_x64_mac_17.0.9_9_openj9-0.41.0.tar.gz",
+            "version": "17.0.9"
+          }
+        },
+        "openjdk21": {
+          "aarch64": {
+            "build": "9",
+            "sha256": "55650c3825a22dc1caabf672ee8e2ef3ce4cee32df92e7317780d3eae18f17a5",
+            "url": "https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.3%2B9_openj9-0.44.0/ibm-semeru-open-jre_aarch64_mac_21.0.3_9_openj9-0.44.0.tar.gz",
+            "version": "21.0.3"
           },
           "packageType": "jre",
           "vmType": "openj9",
           "x86_64": {
-            "build": "8",
-            "sha256": "8e957d2eb47eaca64516ac669272c6e5186155ed8ee4d6a77e0d4b7811cd7bb6",
-            "url": "https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.4%2B8_openj9-0.33.0/ibm-semeru-open-jre_x64_mac_17.0.4_8_openj9-0.33.0.tar.gz",
-            "version": "17.0.4"
+            "build": "9",
+            "sha256": "4b4d6da4da96dfa233d0c262bcaecb15b29162a81c802179f56e4084141c6fd8",
+            "url": "https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.3%2B9_openj9-0.44.0/ibm-semeru-open-jre_x64_mac_21.0.3_9_openj9-0.44.0.tar.gz",
+            "version": "21.0.3"
           }
         },
         "openjdk8": {
           "packageType": "jre",
           "vmType": "openj9",
           "x86_64": {
-            "build": "01",
-            "sha256": "019e08dea8fbd54517dacbeac791d85717902800dd8bba77fbca1dfc6b0abd9e",
-            "url": "https://github.com/ibmruntimes/semeru8-binaries/releases/download/8u345-b01_openj9-0.33.0/ibm-semeru-open-jre_x64_mac_8u345b01_openj9-0.33.0.tar.gz",
-            "version": "8.0.345"
+            "build": "08",
+            "sha256": "baf7d026012acc234fb1c2e64adf544a84449c856ee25a130c5aec32fbe34e3a",
+            "url": "https://github.com/ibmruntimes/semeru8-binaries/releases/download/jdk8u412-b08_openj9-0.44.0/ibm-semeru-open-jre_x64_mac_8u412b08_openj9-0.44.0.tar.gz",
+            "version": "8.0.412"
           }
         }
       }
diff --git a/pkgs/development/coq-modules/mathcomp-infotheo/default.nix b/pkgs/development/coq-modules/mathcomp-infotheo/default.nix
index 6a14e67844c8d..cc7d6973c4689 100644
--- a/pkgs/development/coq-modules/mathcomp-infotheo/default.nix
+++ b/pkgs/development/coq-modules/mathcomp-infotheo/default.nix
@@ -7,10 +7,12 @@
   inherit version;
 
   defaultVersion = with lib.versions; lib.switch [ coq.version mathcomp-analysis.version] [
+    { cases = [ (isGe "8.17") (isGe "1.0") ];                    out = "0.7.1"; }
     { cases = [ (isGe "8.17") (range "0.6.6" "0.7.0") ];         out = "0.6.1"; }
     { cases = [ (range "8.17" "8.18") (range "0.6.0" "0.6.7") ]; out = "0.5.2"; }
     { cases = [ (range "8.15" "8.16") (range "0.5.4" "0.6.5") ]; out = "0.5.1"; }
   ] null;
+  release."0.7.1".sha256 = "sha256-/4Elb35SmscG6EjEcHYDo+AmWrpBUlygZL0WhaD+fcY=";
   release."0.6.1".sha256 = "sha256-tFB5lrwRPIlHkP+ebgcJwu03Cc9yVaOINOAo8Bf2LT4=";
   release."0.5.1".sha256 = "sha256-yBBl5l+V+dggsg5KM59Yo9CULKog/xxE8vrW+ZRnX7Y=";
   release."0.5.2".sha256 = "sha256-8WAnAV53c0pMTdwj8XcUDUkLZbpUgIQbEOgOb63uHQA=";
diff --git a/pkgs/development/haskell-modules/configuration-darwin.nix b/pkgs/development/haskell-modules/configuration-darwin.nix
index ee3f0503d994b..701c86200bd51 100644
--- a/pkgs/development/haskell-modules/configuration-darwin.nix
+++ b/pkgs/development/haskell-modules/configuration-darwin.nix
@@ -325,6 +325,14 @@ self: super: ({
     libraryHaskellDepends = with self; [ base bytestring jsaddle-wkwebview reflex reflex-dom-core text ]; # cabal2nix doesn't add darwin-only deps
   }) super.reflex-dom;
 
+  # Remove a problematic assert, the length is sometimes 1 instead of 2 on darwin
+  di-core = overrideCabal (drv: {
+    preConfigure = ''
+      substituteInPlace test/Main.hs --replace \
+        "2 @=? List.length (List.nub (List.sort (map Di.log_time logs)))" ""
+    '';
+  }) super.di-core;
+
 } // lib.optionalAttrs pkgs.stdenv.isAarch64 {  # aarch64-darwin
 
   # https://github.com/fpco/unliftio/issues/87
diff --git a/pkgs/development/interpreters/bqn/cbqn/cbqn-bytecode.nix b/pkgs/development/interpreters/bqn/cbqn/cbqn-bytecode.nix
deleted file mode 100644
index d311f3d61ebd4..0000000000000
--- a/pkgs/development/interpreters/bqn/cbqn/cbqn-bytecode.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ lib
-, fetchFromGitHub
-, stdenvNoCC
-}:
-
-stdenvNoCC.mkDerivation {
-  pname = "cbqn-bytecode";
-  version = "unstable-2023-05-17";
-
-  src = fetchFromGitHub {
-    owner = "dzaima";
-    repo = "cbqnBytecode";
-    rev = "32db4dfbfc753835bf112f3d8ae2991d8aebbe3d";
-    hash = "sha256-9uBPrEESn/rB9u0xXwKaQ7ABveQWPc8LRMPlnI/79kg=";
-  };
-
-  dontConfigure = true;
-  dontBuild = true;
-
-  installPhase = ''
-    runHook preInstall
-
-    install -D $src/gen/{compiles,explain,formatter,runtime0,runtime1,runtime1x,src} -t $out/dev
-
-    runHook postInstall
-  '';
-
-  meta = with lib; {
-    homepage = "https://github.com/dzaima/cbqnBytecode";
-    description = "CBQN precompiled bytecode";
-    license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ AndersonTorres sternenseemann synthetica shnarazk detegr ];
-    platforms = platforms.all;
-  };
-}
diff --git a/pkgs/development/interpreters/bqn/cbqn/default.nix b/pkgs/development/interpreters/bqn/cbqn/default.nix
index 6f5b889883910..f78eb807b4cfe 100644
--- a/pkgs/development/interpreters/bqn/cbqn/default.nix
+++ b/pkgs/development/interpreters/bqn/cbqn/default.nix
@@ -1,53 +1,36 @@
-{ callPackage
-, lib
-, stdenv
-, stdenvNoCC
+{ lib
+, callPackage
 , fetchFromGitHub
 , fixDarwinDylibNames
-, genBytecode ? false
-, bqn-path ? null
+, libffi
 , mbqn-source
+, pkg-config
+, stdenv
+# Boolean flags
 , enableReplxx ? false
 , enableLibcbqn ? ((stdenv.hostPlatform.isLinux || stdenv.hostPlatform.isDarwin) && !enableReplxx)
-, libffi
-, pkg-config
+, generateBytecode ? false
+# "Configurable" options
+, bqn-interpreter
 }:
 
 let
-  cbqn-bytecode-submodule =
-    callPackage ./cbqn-bytecode.nix { inherit lib fetchFromGitHub stdenvNoCC; };
-  replxx-submodule = callPackage ./replxx.nix { inherit lib fetchFromGitHub stdenvNoCC; };
-  singeli-submodule = callPackage ./singeli.nix { inherit lib fetchFromGitHub stdenvNoCC; };
+  sources = callPackage ./sources.nix { };
 in
-assert genBytecode -> ((bqn-path != null) && (mbqn-source != null));
-
 stdenv.mkDerivation rec {
-  pname = "cbqn" + lib.optionalString (!genBytecode) "-standalone";
-  version = "0.5.0";
-
-  src = fetchFromGitHub {
-    owner = "dzaima";
-    repo = "CBQN";
-    rev = "v${version}";
-    hash = "sha256-PCpePevWQ+aPG6Yx3WqBZ4yTeyJsCGkYMSY6kzGDL1U=";
-  };
+  pname = "cbqn" + lib.optionalString (!generateBytecode) "-standalone";
+  inherit (sources.cbqn) version src;
 
   nativeBuildInputs = [
     pkg-config
-  ] ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
+  ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
+    fixDarwinDylibNames
+  ];
 
   buildInputs = [
     libffi
   ];
 
-  dontConfigure = true;
-  doInstallCheck = true;
-
-  postPatch = ''
-    sed -i '/SHELL =.*/ d' makefile
-    patchShebangs build/build
-  '';
-
   makeFlags = [
     "CC=${stdenv.cc.targetPrefix}cc"
   ];
@@ -64,19 +47,6 @@ stdenv.mkDerivation rec {
     "shared-o3"
   ];
 
-  preBuild = ''
-    # Purity: avoids git downloading bytecode files
-    mkdir -p build/bytecodeLocal/gen
-    cp -r ${singeli-submodule}/dev/* build/singeliLocal/
-  '' + (if genBytecode then ''
-    ${bqn-path} ./build/genRuntime ${mbqn-source} build/bytecodeLocal/
-  '' else ''
-    cp -r ${cbqn-bytecode-submodule}/dev/* build/bytecodeLocal/gen/
-  '')
-  + lib.optionalString enableReplxx ''
-    cp -r ${replxx-submodule}/dev/* build/replxxLocal/
-  '';
-
   outputs = [
     "out"
   ] ++ lib.optionals enableLibcbqn [
@@ -84,6 +54,32 @@ stdenv.mkDerivation rec {
     "dev"
   ];
 
+  dontConfigure = true;
+
+  doInstallCheck = true;
+
+  strictDeps = true;
+
+  postPatch = ''
+    sed -i '/SHELL =.*/ d' makefile
+    patchShebangs build/build
+  '';
+
+  preBuild = ''
+    mkdir -p build/singeliLocal/
+    cp -r ${sources.singeli.src}/* build/singeliLocal/
+  '' + (if generateBytecode then ''
+    mkdir -p build/bytecodeLocal/gen
+    ${bqn-interpreter} ./build/genRuntime ${mbqn-source} build/bytecodeLocal/
+  '' else ''
+    mkdir -p build/bytecodeLocal/gen
+    cp -r ${sources.cbqn-bytecode.src}/* build/bytecodeLocal/
+  '')
+  + lib.optionalString enableReplxx ''
+    mkdir -p build/replxxLocal/
+    cp -r ${sources.replxx.src}/* build/replxxLocal/
+  '';
+
   installPhase = ''
     runHook preInstall
 
@@ -121,12 +117,26 @@ stdenv.mkDerivation rec {
     runHook postInstallCheck
   '';
 
-  meta = with lib; {
+  meta = {
     homepage = "https://github.com/dzaima/CBQN/";
     description = "BQN implementation in C";
-    license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ AndersonTorres sternenseemann synthetica shnarazk detegr ];
-    platforms = platforms.all;
+    license = with lib.licenses; [
+      # https://github.com/dzaima/CBQN?tab=readme-ov-file#licensing
+      asl20
+      boost
+      gpl3Only
+      lgpl3Only
+      mit
+      mpl20
+    ];
     mainProgram = "cbqn";
+    maintainers = with lib.maintainers; [
+      AndersonTorres
+      detegr
+      shnarazk
+      sternenseemann
+      synthetica
+    ];
+    platforms = lib.platforms.all;
   };
 }
diff --git a/pkgs/development/interpreters/bqn/cbqn/replxx.nix b/pkgs/development/interpreters/bqn/cbqn/replxx.nix
deleted file mode 100644
index 71b479a4cda48..0000000000000
--- a/pkgs/development/interpreters/bqn/cbqn/replxx.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{ lib
-, fetchFromGitHub
-, stdenvNoCC
-}:
-
-stdenvNoCC.mkDerivation {
-  pname = "replxx";
-  version = "unstable-2023-10-31";
-
-  src = fetchFromGitHub {
-    owner = "dzaima";
-    repo = "replxx";
-    rev = "13f7b60f4f79c2f14f352a76d94860bad0fc7ce9";
-    hash = "sha256-xPuQ5YBDSqhZCwssbaN/FcTZlc3ampYl7nfl2bbsgBA=";
-  };
-
-  dontConfigure = true;
-  # The CBQN derivation will build replxx, here we just provide the source files.
-  dontBuild = true;
-
-  installPhase = ''
-    runHook preInstall
-
-    mkdir -p $out/dev
-    cp -r $src $out/dev
-
-    runHook postInstall
-  '';
-
-  meta = with lib; {
-    homepage = "https://github.com/dzaima/replxx";
-    description = "A replxx fork for CBQN";
-    license = licenses.free;
-    maintainers = with maintainers; [ AndersonTorres sternenseemann synthetica shnarazk detegr ];
-    platforms = platforms.all;
-  };
-}
diff --git a/pkgs/development/interpreters/bqn/cbqn/singeli.nix b/pkgs/development/interpreters/bqn/cbqn/singeli.nix
deleted file mode 100644
index 212b96b6cb3f0..0000000000000
--- a/pkgs/development/interpreters/bqn/cbqn/singeli.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{ lib
-, fetchFromGitHub
-, stdenvNoCC
-}:
-
-stdenvNoCC.mkDerivation {
-  pname = "singeli";
-  version = "unstable-2023-11-22";
-
-  src = fetchFromGitHub {
-    owner = "mlochbaum";
-    repo = "Singeli";
-    rev = "528faaf9e2a7f4f3434365bcd91d6c18c87c4f08";
-    hash = "sha256-/z1KHqflCqPGC9JU80jtgqdk2mkX06eWSziuf4TU4TM=";
-  };
-
-  dontConfigure = true;
-  # The CBQN derivation will build Singeli, here we just provide the source files.
-  dontBuild = true;
-
-  installPhase = ''
-    runHook preInstall
-
-    mkdir -p $out/dev
-    cp -r $src $out/dev
-
-    runHook postInstall
-  '';
-
-  meta = with lib; {
-    homepage = "https://github.com/mlochbaum/Singeli";
-    description = "A metaprogramming DSL for SIMD";
-    license = licenses.isc;
-    maintainers = with maintainers; [ AndersonTorres sternenseemann synthetica shnarazk detegr ];
-    platforms = platforms.all;
-  };
-}
diff --git a/pkgs/development/interpreters/bqn/cbqn/sources.nix b/pkgs/development/interpreters/bqn/cbqn/sources.nix
new file mode 100644
index 0000000000000..3b9ca78533e36
--- /dev/null
+++ b/pkgs/development/interpreters/bqn/cbqn/sources.nix
@@ -0,0 +1,60 @@
+# Sources required to build CBQN
+# Update them all at the same time, or else misbuilds will happen!
+# TODO: automate the update of this file
+
+{
+  fetchFromGitHub,
+}:
+
+{
+  cbqn = let
+    self = {
+      pname = "cbqn";
+      version = "0.7.0";
+
+      src = fetchFromGitHub {
+        owner = "dzaima";
+        repo = "CBQN";
+        rev = "v${self.version}";
+        hash = "sha256-TUK0HrJ1IyiVi9Y3S1IrK/d4/EZxdRdWyxsAwj79KEc=";
+      };
+    };
+  in
+    self;
+
+  cbqn-bytecode = {
+    pname = "cbqn-bytecode";
+    version = "0-unstable-2024-05-22";
+
+    src = fetchFromGitHub {
+      owner = "dzaima";
+      repo = "cbqnBytecode";
+      rev = "c5674783c11d7569e5a4d166600ffcde2409331d";
+      hash = "sha256-y7gqHzUxVUUVryutlq3Upuso8r3ZRSyF7ydMg1OVlwA=";
+    };
+  };
+
+  replxx = {
+    pname = "replxx";
+    version = "0-unstable-2023-10-31";
+
+    src = fetchFromGitHub {
+      owner = "dzaima";
+      repo = "replxx";
+      rev = "13f7b60f4f79c2f14f352a76d94860bad0fc7ce9";
+      hash = "sha256-xPuQ5YBDSqhZCwssbaN/FcTZlc3ampYl7nfl2bbsgBA=";
+    };
+  };
+
+  singeli = {
+    pname = "singeli";
+    version = "0-unstable-2024-02-26";
+
+    src = fetchFromGitHub {
+      owner = "mlochbaum";
+      repo = "Singeli";
+      rev = "ce6ef5d06d35777f0016bbfe0c6c1cf6a9c1b48e";
+      hash = "sha256-dDoWoq4LYMD2CKyPxXDAwoeH2E+f0FDyvngtWPEr67w=";
+    };
+  };
+}
diff --git a/pkgs/development/libraries/assimp/default.nix b/pkgs/development/libraries/assimp/default.nix
index 8019c6cc943f1..201ebb14a337e 100644
--- a/pkgs/development/libraries/assimp/default.nix
+++ b/pkgs/development/libraries/assimp/default.nix
@@ -8,14 +8,14 @@
 
 stdenv.mkDerivation rec {
   pname = "assimp";
-  version = "5.3.1";
+  version = "5.4.1";
   outputs = [ "out" "lib" "dev" ];
 
   src = fetchFromGitHub {
     owner = "assimp";
     repo = "assimp";
     rev = "v${version}";
-    hash = "sha256-/1A8n7oe9WsF3FpbLZxhifzrdj38t9l5Kc8Q5jfDoyY=";
+    hash = "sha256-F3aaEaHZyOLES6zOYqHRG0BtaKk9d/bAHCtal6FsIWc=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/dbxml/default.nix b/pkgs/development/libraries/dbxml/default.nix
index b6dcf908c4f92..f50b53d47e05c 100644
--- a/pkgs/development/libraries/dbxml/default.nix
+++ b/pkgs/development/libraries/dbxml/default.nix
@@ -28,6 +28,8 @@ stdenv.mkDerivation rec {
     "--with-berkeleydb=${db62.out}"
     "--with-xerces=${xercesc}"
     "--with-xqilla=${xqilla}"
+    # code uses register storage specifier
+    "CXXFLAGS=-std=c++14"
   ];
 
   preConfigure = ''
diff --git a/pkgs/development/libraries/editline/default.nix b/pkgs/development/libraries/editline/default.nix
index 4f891a24f1f0a..e3c9ba32f3921 100644
--- a/pkgs/development/libraries/editline/default.nix
+++ b/pkgs/development/libraries/editline/default.nix
@@ -26,6 +26,8 @@ stdenv.mkDerivation rec {
     })
   ];
 
+  configureFlags = [ (lib.enableFeature true "sigstop") ];
+
   nativeBuildInputs = [ autoreconfHook ];
 
   outputs = [ "out" "dev" "man" "doc" ];
diff --git a/pkgs/development/libraries/geos/3.11.nix b/pkgs/development/libraries/geos/3.11.nix
index 90bdfdb0d6058..dd18855508d13 100644
--- a/pkgs/development/libraries/geos/3.11.nix
+++ b/pkgs/development/libraries/geos/3.11.nix
@@ -29,6 +29,11 @@ stdenv.mkDerivation (finalAttrs: {
 
   nativeBuildInputs = [ cmake ];
 
+  # https://github.com/libgeos/geos/issues/930
+  cmakeFlags = lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [
+    "-DCMAKE_CTEST_ARGUMENTS=--exclude-regex;unit-geom-Envelope"
+  ];
+
   doCheck = true;
 
   passthru.tests = {
diff --git a/pkgs/development/libraries/gnome-online-accounts/default.nix b/pkgs/development/libraries/gnome-online-accounts/default.nix
index 740f7d94f1d99..43ce34ec2ed4f 100644
--- a/pkgs/development/libraries/gnome-online-accounts/default.nix
+++ b/pkgs/development/libraries/gnome-online-accounts/default.nix
@@ -31,13 +31,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gnome-online-accounts";
-  version = "3.50.1";
+  version = "3.50.2";
 
   outputs = [ "out" "dev" ] ++ lib.optionals enableBackend [ "man" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-online-accounts/${lib.versions.majorMinor finalAttrs.version}/gnome-online-accounts-${finalAttrs.version}.tar.xz";
-    hash = "sha256-Qu5D/R4pQrn/YQYlLM3INGAoFVCL96OlLAvf/6Vur0A=";
+    hash = "sha256-3xatl10TnGv8TrsuyLuDJyl6eR7yvwuXfHgHavX6qY4=";
   };
 
   mesonFlags = [
diff --git a/pkgs/development/libraries/gstreamer/bad/default.nix b/pkgs/development/libraries/gstreamer/bad/default.nix
index b94769af76f44..8cc7bdc71a646 100644
--- a/pkgs/development/libraries/gstreamer/bad/default.nix
+++ b/pkgs/development/libraries/gstreamer/bad/default.nix
@@ -140,7 +140,7 @@ stdenv.mkDerivation rec {
     gobject-introspection
   ] ++ lib.optionals enableDocumentation [
     hotdoc
-  ] ++ lib.optionals stdenv.isLinux [
+  ] ++ lib.optionals (gst-plugins-base.waylandEnabled && stdenv.isLinux) [
     wayland # for wayland-scanner
   ];
 
@@ -211,7 +211,7 @@ stdenv.mkDerivation rec {
     bluez
   ] ++ lib.optionals microdnsSupport [
     libmicrodns
-  ] ++ lib.optionals stdenv.isLinux [
+  ] ++ lib.optionals (gst-plugins-base.waylandEnabled && stdenv.isLinux) [
     libva # vaapi requires libva -> libdrm -> libpciaccess, which is Linux-only in nixpkgs
     wayland
     wayland-protocols
@@ -305,6 +305,7 @@ stdenv.mkDerivation rec {
   ++ lib.optionals (!stdenv.isLinux) [
     "-Ddoc=disabled" # needs gstcuda to be enabled which is Linux-only
     "-Dnvcodec=disabled" # Linux-only
+  ] ++ lib.optionals (!stdenv.isLinux || !gst-plugins-base.waylandEnabled) [
     "-Dva=disabled" # see comment on `libva` in `buildInputs`
   ] ++ lib.optionals (!stdenv.isLinux || !guiSupport) [
     "-Ddirectfb=disabled"
@@ -322,8 +323,8 @@ stdenv.mkDerivation rec {
     "-Duvch264=disabled" # requires gudev
     "-Dv4l2codecs=disabled" # requires gudev
     "-Dladspa=disabled" # requires lrdf
-  ] ++ lib.optionals (!stdenv.isLinux || !stdenv.isx86_64) [
-    "-Dqsv=disabled" # Linux (and Windows) x86 only
+  ] ++ lib.optionals (!stdenv.isLinux || !stdenv.isx86_64 || !gst-plugins-base.waylandEnabled) [
+    "-Dqsv=disabled" # Linux (and Windows) x86 only, makes va required
   ] ++ lib.optionals (!gst-plugins-base.glEnabled) [
     "-Dgl=disabled"
   ] ++ lib.optionals (!gst-plugins-base.waylandEnabled || !guiSupport) [
diff --git a/pkgs/development/libraries/gstreamer/rs/default.nix b/pkgs/development/libraries/gstreamer/rs/default.nix
index d1f1259635fa9..d4afb8ce7618a 100644
--- a/pkgs/development/libraries/gstreamer/rs/default.nix
+++ b/pkgs/development/libraries/gstreamer/rs/default.nix
@@ -29,6 +29,7 @@
 , nix-update-script
 # specifies a limited subset of plugins to build (the default `null` means all plugins supported on the stdenv platform)
 , plugins ? null
+, withGtkPlugins ? true
 # Checks meson.is_cross_build(), so even canExecute isn't enough.
 , enableDocumentation ? stdenv.hostPlatform == stdenv.buildPlatform && plugins == null
 , hotdoc
@@ -114,7 +115,7 @@ let
       "reqwest" # tests hang on darwin
       "threadshare" # tests cannot bind to localhost on darwin
       "webp" # not supported on darwin (upstream crate issue)
-    ] ++ lib.optionals (!gst-plugins-base.glEnabled) [
+    ] ++ lib.optionals (!gst-plugins-base.glEnabled || !withGtkPlugins) [
       # these require gstreamer-gl
       "gtk4"
       "livesync"
diff --git a/pkgs/development/libraries/gvfs/default.nix b/pkgs/development/libraries/gvfs/default.nix
index 31bed4c108b46..d60f95c548391 100644
--- a/pkgs/development/libraries/gvfs/default.nix
+++ b/pkgs/development/libraries/gvfs/default.nix
@@ -45,13 +45,13 @@
 , gsettings-desktop-schemas
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "gvfs";
-  version = "1.54.0";
+  version = "1.54.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gvfs/${lib.versions.majorMinor version}/gvfs-${version}.tar.xz";
-    hash = "sha256-9T2B34bC6GzdJRgsLYpmmiI3HoNiPe0bnVQW3Pxt42Y=";
+    url = "mirror://gnome/sources/gvfs/${lib.versions.majorMinor finalAttrs.version}/gvfs-${finalAttrs.version}.tar.xz";
+    hash = "sha256-rEo7zLf+FQIVjvD95cl5q0RxJVfQKKjk8wop8PvZ0Z8=";
   };
 
   patches = [
@@ -137,13 +137,13 @@ stdenv.mkDerivation rec {
   ];
 
   doCheck = false; # fails with "ModuleNotFoundError: No module named 'gi'"
-  doInstallCheck = doCheck;
+  doInstallCheck = finalAttrs.doCheck;
 
   separateDebugInfo = true;
 
   passthru = {
     updateScript = gnome.updateScript {
-      packageName = pname;
+      packageName = "gvfs";
       versionPolicy = "odd-unstable";
     };
   };
@@ -154,4 +154,4 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     maintainers = teams.gnome.members;
   };
-}
+})
diff --git a/pkgs/development/libraries/libadwaita/default.nix b/pkgs/development/libraries/libadwaita/default.nix
index 1301f9fe923d9..7f7f93c37949d 100644
--- a/pkgs/development/libraries/libadwaita/default.nix
+++ b/pkgs/development/libraries/libadwaita/default.nix
@@ -22,7 +22,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "libadwaita";
-  version = "1.5.0";
+  version = "1.5.1";
 
   outputs = [ "out" "dev" "devdoc" ];
   outputBin = "devdoc"; # demo app
@@ -32,7 +32,7 @@ stdenv.mkDerivation (finalAttrs: {
     owner = "GNOME";
     repo = "libadwaita";
     rev = finalAttrs.version;
-    hash = "sha256-uEaBI2jHlMdVprMGRZe/8HszO3nEBUJaJtvJjrMOjE4=";
+    hash = "sha256-dH0VPIt6SGTDcb1I72cKnNlyqZ3dptvKmMDjOd17BfA=";
   };
 
   depsBuildBuild = [
diff --git a/pkgs/development/libraries/libcxxrt/default.nix b/pkgs/development/libraries/libcxxrt/default.nix
index b9c3f82558a45..1858ca1e97e92 100644
--- a/pkgs/development/libraries/libcxxrt/default.nix
+++ b/pkgs/development/libraries/libcxxrt/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation {
   pname = "libcxxrt";
-  version = "4.0.10-unstable-2024-04-15";
+  version = "4.0.10-unstable-2024-05-26";
 
   src = fetchFromGitHub {
     owner = "libcxxrt";
     repo = "libcxxrt";
-    rev = "25541e312f7094e9c90895000d435af520d42418";
-    sha256 = "d5uhtlO+28uc2Xnf5trXsy43jgmzBHs2jZhCK57qRM4=";
+    rev = "c62fe9963148f283b2fbb7eb9888785cfb16d77c";
+    sha256 = "XxXH6pE2v6WTh1ATJ7Fgd3SFw49L44YchtMlPKX4kYw=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/libgeotiff/default.nix b/pkgs/development/libraries/libgeotiff/default.nix
index 9b160e6b29e89..021a7e3ad574d 100644
--- a/pkgs/development/libraries/libgeotiff/default.nix
+++ b/pkgs/development/libraries/libgeotiff/default.nix
@@ -10,14 +10,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.7.1";
+  version = "1.7.2";
   pname = "libgeotiff";
 
   src = fetchFromGitHub {
     owner = "OSGeo";
     repo = "libgeotiff";
     rev = version;
-    hash = "sha256-bE6UAUKiorriTgYrqhxbMAN2NEtmV/8IIfF02RUghSI=";
+    hash = "sha256-PXMbOC3I1yrFrFUek9BMxFT3YW9KxwP3+xZUHs7xm7Y=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/libgtop/default.nix b/pkgs/development/libraries/libgtop/default.nix
index ae49384835909..b7ad5c8bd241c 100644
--- a/pkgs/development/libraries/libgtop/default.nix
+++ b/pkgs/development/libraries/libgtop/default.nix
@@ -10,15 +10,15 @@
 , deterministic-uname
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "libgtop";
-  version = "2.41.2";
+  version = "2.41.3";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    hash = "sha256-2QJs2KSNJ83/0zL41gqSdktWQk5SLEIM0ToB9A2vksM=";
+    url = "mirror://gnome/sources/libgtop/${lib.versions.majorMinor finalAttrs.version}/libgtop-${finalAttrs.version}.tar.xz";
+    hash = "sha256-d1Z235WOLqJFL3Vo8osupYEGPTEnc91cC3Ykwbmy2ow=";
   };
 
   nativeBuildInputs = [
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
 
   passthru = {
     updateScript = gnome.updateScript {
-      packageName = pname;
+      packageName = "libgtop";
       versionPolicy = "odd-unstable";
     };
   };
@@ -48,4 +48,4 @@ stdenv.mkDerivation rec {
     maintainers = teams.gnome.members;
     platforms = platforms.unix;
   };
-}
+})
diff --git a/pkgs/development/libraries/libshumate/default.nix b/pkgs/development/libraries/libshumate/default.nix
index cc6723162a085..d0e6e95ad0c7b 100644
--- a/pkgs/development/libraries/libshumate/default.nix
+++ b/pkgs/development/libraries/libshumate/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchurl
-, fetchpatch2
 , gi-docgen
 , meson
 , ninja
@@ -21,26 +20,18 @@
 , gnome
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "libshumate";
-  version = "1.2.1";
+  version = "1.2.2";
 
   outputs = [ "out" "dev" "devdoc" ];
   outputBin = "devdoc"; # demo app
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    hash = "sha256-EQXuB34hR/KgOc3fphb6XLlDiIPdlAQn4RaZ3NZUnBE=";
+    url = "mirror://gnome/sources/libshumate/${lib.versions.majorMinor finalAttrs.version}/libshumate-${finalAttrs.version}.tar.xz";
+    hash = "sha256-b1h1effy1gs40/RyfrGo0v6snL3AGOU/9fdyqGCPpEs=";
   };
 
-  patches = [
-    (fetchpatch2 {
-      # Fix tests https://gitlab.gnome.org/GNOME/libshumate/-/merge_requests/236
-      url = "https://gitlab.gnome.org/GNOME/libshumate/-/commit/852615b0df2252ea67f4f82e9ace2fc2794467b3.patch";
-      hash = "sha256-Ksye3zNNYmzP4O+QFDVODXUkFJOLDVMEZNfGXwbxWhs=";
-    })
-  ];
-
   depsBuildBuild = [
     # required to find native gi-docgen when cross compiling
     pkg-config
@@ -95,7 +86,7 @@ stdenv.mkDerivation rec {
 
   passthru = {
     updateScript = gnome.updateScript {
-      packageName = pname;
+      packageName = "libshumate";
     };
   };
 
@@ -107,4 +98,4 @@ stdenv.mkDerivation rec {
     maintainers = teams.gnome.members;
     platforms = platforms.unix;
   };
-}
+})
diff --git a/pkgs/development/libraries/libuninameslist/default.nix b/pkgs/development/libraries/libuninameslist/default.nix
index 3cbb78d83ce9b..1b8a4395ad2e9 100644
--- a/pkgs/development/libraries/libuninameslist/default.nix
+++ b/pkgs/development/libraries/libuninameslist/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libuninameslist";
-  version = "20230916";
+  version = "20240524";
 
   src = fetchFromGitHub {
     owner = "fontforge";
     repo = pname;
     rev = version;
-    sha256 = "sha256-8mLXTvi4KbU4NiCPaJINTeFbnTAabGDg8ufpSHSqy0Y=";
+    sha256 = "sha256-LANwM0fhCsscXAdI/qGOmUWDzAhe3g9w3J68g4szDZQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/libxml2/default.nix b/pkgs/development/libraries/libxml2/default.nix
index d2e614b331a1a..79fe8c9f52dac 100644
--- a/pkgs/development/libraries/libxml2/default.nix
+++ b/pkgs/development/libraries/libxml2/default.nix
@@ -4,7 +4,6 @@
 , zlib
 , pkg-config
 , autoreconfHook
-, xz
 , libintl
 , python
 , gettext
@@ -37,6 +36,11 @@ stdenv.mkDerivation (finalAttrs: rec {
     hash = "sha256-JK54/xNjqXPm2L66lBp5RdoqwFbhm1OVautpJ/1s+1Y=";
   };
 
+  # https://gitlab.gnome.org/GNOME/libxml2/-/issues/725
+  postPatch = if stdenv.hostPlatform.isFreeBSD then ''
+    substituteInPlace ./configure.ac --replace-fail pthread_join pthread_create
+  '' else null;
+
   strictDeps = true;
 
   nativeBuildInputs = [
@@ -52,11 +56,6 @@ stdenv.mkDerivation (finalAttrs: rec {
     ncurses
   ] ++ lib.optionals (stdenv.isDarwin && pythonSupport && python?isPy2 && python.isPy2) [
     libintl
-  ] ++ lib.optionals stdenv.isFreeBSD [
-    # Libxml2 has an optional dependency on liblzma.  However, on impure
-    # platforms, it may end up using that from /usr/lib, and thus lack a
-    # RUNPATH for that, leading to undefined references for its users.
-    xz
   ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/libraries/motif/default.nix b/pkgs/development/libraries/motif/default.nix
index 92d0098fc9840..8551510b476ca 100644
--- a/pkgs/development/libraries/motif/default.nix
+++ b/pkgs/development/libraries/motif/default.nix
@@ -26,8 +26,8 @@ stdenv.mkDerivation rec {
 
   propagatedBuildInputs = [ libXp libXau ];
 
-  prePatch = lib.optionalString (!demoSupport) ''
-    sed '/^SUBDIRS =,^$/s/\<demos\>//' -i Makefile.{am,in}
+  postPatch = lib.optionalString (!demoSupport) ''
+    sed 's/\<demos\>//' -i Makefile.{am,in}
   '';
 
   patches = [
@@ -38,6 +38,27 @@ stdenv.mkDerivation rec {
       url = "https://raw.githubusercontent.com/void-linux/void-packages/b9a1110dabb01c052dadc1abae1413bd4afe3652/srcpkgs/motif/patches/02-${name}";
       sha256 = "13vzpf8yxvhf4gl7q0yzlr6ak1yzx382fsqsrv5lc8jbbg4nwrrq";
     })
+    (fetchpatch {
+      name = "missing-headers.patch";
+      url = "https://gitlab.freedesktop.org/xorg/lib/libxpm/-/commit/4cedf181bcfe13e5d206554c51edb82cb17e7ad5.patch";
+      extraPrefix = "lib/Xm/";
+      stripLen = 2;
+      hash = "sha256-WlagHOgf2gZDxXN+SSEW6de1FuN4fbpd9zviMwo1+HI=";
+    })
+    (fetchurl {
+      name = "noreturn.patch";
+      url = "https://dev.gentoo.org/~ulm/distfiles/motif-2.3.8-patches-5.tar.xz";
+      downloadToTemp = true;
+      postFetch = ''
+        tar -xOf $downloadedFile patch/12_all_noreturn.patch > $out
+      '';
+      hash = "sha256-FyaBfqD/TuJVFFHZlp1/b1MyL8BJAfV43ktuusgxbfE=";
+    })
+    (fetchpatch {
+      url = "https://raw.githubusercontent.com/macports/macports-ports/acc8c7cb2247d9892bf5a52eb92431a4c0c8e1cd/x11/openmotif/files/wcs-functions.patch";
+      extraPrefix = "";
+      hash = "sha256-w3zCUs/RbnRoUJ0sNCI00noEOkov/IGV/zIygakSQqc=";
+    })
   ];
 
   enableParallelBuilding = true;
@@ -48,5 +69,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     license = with licenses; [ lgpl21Plus ];
     maintainers = with maintainers; [ qyliss ];
+    broken = demoSupport && stdenv.cc.isClang && lib.versionAtLeast stdenv.cc.version "16";
   };
 }
diff --git a/pkgs/development/libraries/opencv/3.x.nix b/pkgs/development/libraries/opencv/3.x.nix
index 140eee9c06e84..adb6532bd6825 100644
--- a/pkgs/development/libraries/opencv/3.x.nix
+++ b/pkgs/development/libraries/opencv/3.x.nix
@@ -15,7 +15,7 @@
 , enableContrib   ? true
 
 , enableCuda      ? config.cudaSupport
-, cudaPackages ? { }
+, cudaPackages
 , enableUnfree    ? false
 , enableIpp       ? false
 , enablePython    ? false, pythonPackages ? null
@@ -295,6 +295,8 @@ stdenv.mkDerivation {
   meta = with lib; {
     description = "Open Computer Vision Library with more than 500 algorithms";
     homepage = "https://opencv.org/";
+    # OpenCV 3 won't build with CUDA 12+
+    broken = enableCuda && cudaPackages.cudaAtLeast "12";
     license = with licenses; if enableUnfree then unfree else bsd3;
     maintainers = with maintainers; [mdaiter basvandijk];
     platforms = with platforms; linux ++ darwin;
diff --git a/pkgs/development/libraries/openxr-loader/default.nix b/pkgs/development/libraries/openxr-loader/default.nix
index ec4c327d784b4..f153d7f2f18b6 100644
--- a/pkgs/development/libraries/openxr-loader/default.nix
+++ b/pkgs/development/libraries/openxr-loader/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "openxr-loader";
-  version = "1.1.36";
+  version = "1.1.37";
 
   src = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "OpenXR-SDK-Source";
     rev = "release-${version}";
-    sha256 = "sha256-Ki2tp8a67AjIMIGDpWWqCnpMmeZpJ8uPezKE2KWrOjA=";
+    sha256 = "sha256-J9IfhTFFSY+rK0DqFdXtINo7nlGUcy2Lljq81T417qc=";
   };
 
   nativeBuildInputs = [ cmake python3 pkg-config ];
diff --git a/pkgs/development/libraries/protobuf/27.nix b/pkgs/development/libraries/protobuf/27.nix
new file mode 100644
index 0000000000000..8b80ad681c1c2
--- /dev/null
+++ b/pkgs/development/libraries/protobuf/27.nix
@@ -0,0 +1,6 @@
+{ callPackage, ... } @ args:
+
+callPackage ./generic.nix ({
+  version = "27.0";
+  hash = "sha256-QVgDGyNTCSYU/rXTMcHUefUGVjwkkjnpq0Kq+eXK/bo=";
+} // args)
diff --git a/pkgs/development/libraries/rnnoise-plugin/default.nix b/pkgs/development/libraries/rnnoise-plugin/default.nix
index 39a8f1a4b6a6f..e1aaba5270546 100644
--- a/pkgs/development/libraries/rnnoise-plugin/default.nix
+++ b/pkgs/development/libraries/rnnoise-plugin/default.nix
@@ -17,13 +17,13 @@
 }:
 stdenv.mkDerivation rec {
   pname = "rnnoise-plugin";
-  version = "1.03";
+  version = "1.10";
 
   src = fetchFromGitHub {
     owner = "werman";
     repo = "noise-suppression-for-voice";
     rev = "v${version}";
-    sha256 = "sha256-1DgrpGYF7G5Zr9vbgtKm/Yv0HSdI7LrFYPSGKYNnNDQ=";
+    sha256 = "sha256-sfwHd5Fl2DIoGuPDjELrPp5KpApZJKzQikCJmCzhtY8=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/pkgs/development/libraries/sentry-native/default.nix b/pkgs/development/libraries/sentry-native/default.nix
index ec95184707d02..7e14664847f48 100644
--- a/pkgs/development/libraries/sentry-native/default.nix
+++ b/pkgs/development/libraries/sentry-native/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sentry-native";
-  version = "0.7.2";
+  version = "0.7.4";
 
   src = fetchFromGitHub {
     owner = "getsentry";
     repo = "sentry-native";
     rev = version;
-    hash = "sha256-0yFRDQ/f0oVbpZ4wev28xCTVkbXr58Tt0Czda3ppRWk=";
+    hash = "sha256-vmoBTFhSSYMzbjQIGTCvMvOvVv+2y23RZx589rMR5bs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/tbb/2020_3.nix b/pkgs/development/libraries/tbb/2020_3.nix
index 55bb9849d9190..aa526591eb9e8 100644
--- a/pkgs/development/libraries/tbb/2020_3.nix
+++ b/pkgs/development/libraries/tbb/2020_3.nix
@@ -57,6 +57,7 @@ stdenv.mkDerivation rec {
   ] ++ (lib.optional (stdenv.buildPlatform != stdenv.hostPlatform)
     (if stdenv.hostPlatform.isAarch64 then "arch=arm64"
     else if stdenv.hostPlatform.isx86_64 then "arch=intel64"
+    else if stdenv.hostPlatform.isi686 then "arch=ia32"
     else throw "Unsupported cross architecture"));
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/vte/default.nix b/pkgs/development/libraries/vte/default.nix
index 89af6e847a887..1d93b6e6adecf 100644
--- a/pkgs/development/libraries/vte/default.nix
+++ b/pkgs/development/libraries/vte/default.nix
@@ -32,14 +32,14 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "vte";
-  version = "0.76.1";
+  version = "0.76.2";
 
   outputs = [ "out" "dev" ]
     ++ lib.optional (gtkVersion != null) "devdoc";
 
   src = fetchurl {
     url = "mirror://gnome/sources/vte/${lib.versions.majorMinor finalAttrs.version}/vte-${finalAttrs.version}.tar.xz";
-    hash = "sha256-CE6D73ZXdCaaSynfl8oi7cNDuaHYFDPTALjLLQh6HsI=";
+    hash = "sha256-49xggtW9cPiq+qrSzfyvflHaa6AKkZsR3axu+gnHKEc=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/xdg-desktop-portal-gnome/default.nix b/pkgs/development/libraries/xdg-desktop-portal-gnome/default.nix
index e28ea0da6b0a7..00af282c5277b 100644
--- a/pkgs/development/libraries/xdg-desktop-portal-gnome/default.nix
+++ b/pkgs/development/libraries/xdg-desktop-portal-gnome/default.nix
@@ -19,13 +19,13 @@
 , webp-pixbuf-loader
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "xdg-desktop-portal-gnome";
-  version = "46.1";
+  version = "46.2";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    hash = "sha256-fo2WI+nZaonAiXYWgnzUQdzygykn048TXHIlUrEXKqE=";
+    url = "mirror://gnome/sources/xdg-desktop-portal-gnome/${lib.versions.major finalAttrs.version}/xdg-desktop-portal-gnome-${finalAttrs.version}.tar.xz";
+    hash = "sha256-tcZeol6Eg1AtAzphO+bca3GIOsB/Gj5HStGAScR9FtY=";
   };
 
   nativeBuildInputs = [
@@ -64,7 +64,7 @@ stdenv.mkDerivation rec {
 
   passthru = {
     updateScript = gnome.updateScript {
-      packageName = pname;
+      packageName = "xdg-desktop-portal-gnome";
     };
   };
 
@@ -75,4 +75,4 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     license = licenses.lgpl21Plus;
   };
-}
+})
diff --git a/pkgs/development/libraries/xgboost/default.nix b/pkgs/development/libraries/xgboost/default.nix
index 0018a73341e31..ecb90117b6fe4 100644
--- a/pkgs/development/libraries/xgboost/default.nix
+++ b/pkgs/development/libraries/xgboost/default.nix
@@ -2,6 +2,7 @@
 , stdenv
 , lib
 , fetchFromGitHub
+, fetchpatch
 , cmake
 , gtest
 , doCheck ? true
@@ -27,11 +28,12 @@ let
   # This ensures xgboost gets the correct libstdc++ when
   # built with cuda support. This may be removed once
   # #226165 rewrites cudaStdenv
-  inherit (cudaPackages) backendStdenv;
-  stdenv = if cudaSupport then backendStdenv else inputs.stdenv;
+  effectiveStdenv = if cudaSupport then cudaPackages.backendStdenv else inputs.stdenv;
+  # Ensures we don't use the stdenv value by accident.
+  stdenv = builtins.throw "Use effectiveStdenv instead of stdenv in xgboost derivation.";
 in
 
-stdenv.mkDerivation rec {
+effectiveStdenv.mkDerivation rec {
   pnameBase = "xgboost";
   # prefix with r when building the R library
   # The R package build results in a special xgboost.so file
@@ -56,8 +58,16 @@ stdenv.mkDerivation rec {
     hash = "sha256-LWco3A6zwdnAf8blU4qjW7PFEeZaTcJlVTwVrs7nwWM=";
   };
 
+  patches = lib.optionals (cudaSupport && cudaPackages.cudaMajorMinorVersion == "12.4") [
+    (fetchpatch {
+      name = "Fix compilation with the ctk 12.4.";
+      url = "https://github.com/dmlc/xgboost/pull/10123.patch";
+      hash = "sha256-iP9mll9pg8T2ztCR7dBPnLP17/x3ImJFrr5G3e2dqHo=";
+    })
+  ];
+
   nativeBuildInputs = [ cmake ]
-    ++ lib.optionals stdenv.isDarwin [ llvmPackages.openmp ]
+    ++ lib.optionals effectiveStdenv.isDarwin [ llvmPackages.openmp ]
     ++ lib.optionals cudaSupport [ autoAddDriverRunpath ]
     ++ lib.optionals rLibrary [ R ];
 
@@ -75,13 +85,9 @@ stdenv.mkDerivation rec {
     "-DUSE_CUDA=ON"
     # Their CMakeLists.txt does not respect CUDA_HOST_COMPILER, instead using the CXX compiler.
     # https://github.com/dmlc/xgboost/blob/ccf43d4ba0a94e2f0a3cc5a526197539ae46f410/CMakeLists.txt#L145
-    "-DCMAKE_C_COMPILER=${cudaPackages.backendStdenv.cc}/bin/gcc"
-    "-DCMAKE_CXX_COMPILER=${cudaPackages.backendStdenv.cc}/bin/g++"
-  ] ++ lib.optionals
-    (cudaSupport
-      && lib.versionAtLeast cudaPackages.cudatoolkit.version "11.4.0")
-    [ "-DBUILD_WITH_CUDA_CUB=ON" ]
-    ++ lib.optionals ncclSupport [ "-DUSE_NCCL=ON" ]
+    "-DCMAKE_C_COMPILER=${effectiveStdenv.cc}/bin/gcc"
+    "-DCMAKE_CXX_COMPILER=${effectiveStdenv.cc}/bin/g++"
+  ] ++ lib.optionals ncclSupport [ "-DUSE_NCCL=ON" ]
     ++ lib.optionals rLibrary [ "-DR_LIB=ON" ];
 
   preConfigure = lib.optionals rLibrary ''
@@ -104,7 +110,7 @@ stdenv.mkDerivation rec {
   GTEST_FILTER =
     let
       # Upstream Issue: https://github.com/xtensor-stack/xsimd/issues/456
-      filteredTests = lib.optionals stdenv.hostPlatform.isDarwin [
+      filteredTests = lib.optionals effectiveStdenv.hostPlatform.isDarwin [
         "ThreadGroup.TimerThread"
         "ThreadGroup.TimerThreadSimple"
       ];
@@ -112,8 +118,7 @@ stdenv.mkDerivation rec {
     "-${builtins.concatStringsSep ":" filteredTests}";
 
   installPhase =
-    let libname = "libxgboost${stdenv.hostPlatform.extensions.sharedLibrary}";
-    in ''
+    ''
       runHook preInstall
     ''
     # the R library option builds a completely different binary xgboost.so instead of
@@ -137,6 +142,7 @@ stdenv.mkDerivation rec {
     description =
       "Scalable, Portable and Distributed Gradient Boosting (GBDT, GBRT or GBM) Library";
     homepage = "https://github.com/dmlc/xgboost";
+    broken = cudaSupport && cudaPackages.cudaOlder "11.4";
     license = licenses.asl20;
     mainProgram = "xgboost";
     platforms = platforms.unix;
diff --git a/pkgs/development/ocaml-modules/bytestring/default.nix b/pkgs/development/ocaml-modules/bytestring/default.nix
new file mode 100644
index 0000000000000..3714846ee6b5c
--- /dev/null
+++ b/pkgs/development/ocaml-modules/bytestring/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildDunePackage
+, fetchurl
+, ppxlib
+, rio
+, sedlex
+, spices
+, uutf
+, qcheck
+}:
+
+buildDunePackage rec {
+  pname = "bytestring";
+  version = "0.0.8";
+
+  minimalOCamlVersion = "5.1";
+
+  src = fetchurl {
+    url = "https://github.com/riot-ml/riot/releases/download/${version}/riot-${version}.tbz";
+    hash = "sha256-SsiDz53b9bMIT9Q3IwDdB3WKy98WSd9fiieU41qZpeE=";
+  };
+
+  propagatedBuildInputs = [
+    ppxlib
+    sedlex
+    spices
+    rio
+    uutf
+  ];
+
+  checkInputs = [
+    qcheck
+  ];
+
+  # Checks fail with OCaml 5.2
+  doCheck = false;
+
+  meta = {
+    description = "Efficient, immutable, pattern-matchable, UTF friendly byte strings";
+    homepage = "https://github.com/riot-ml/riot";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ ];
+  };
+}
+
diff --git a/pkgs/development/ocaml-modules/colors/default.nix b/pkgs/development/ocaml-modules/colors/default.nix
new file mode 100644
index 0000000000000..0335d5e425ba4
--- /dev/null
+++ b/pkgs/development/ocaml-modules/colors/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildDunePackage
+, fetchurl
+, mdx
+}:
+
+buildDunePackage rec {
+  pname = "colors";
+  version = "0.0.1";
+
+  minimalOCamlVersion = "4.13";
+
+  src = fetchurl {
+    url = "https://github.com/leostera/colors/releases/download/${version}/colors-${version}.tbz";
+    hash = "sha256-fY1j9FODVnifwsI8qkKm0QSmssgWqYFXJ7y8o7/KmEY=";
+  };
+
+  doCheck = true;
+
+  checkInputs = [
+    mdx
+  ];
+
+  nativeCheckInputs = [
+    mdx.bin
+  ];
+
+  meta = {
+    description = "A pure OCaml library for manipulating colors across color spaces";
+    homepage = "https://github.com/leostera/colors";
+    changelog = "https://github.com/leostera/colors/blob/${version}/CHANGES.md";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/config/default.nix b/pkgs/development/ocaml-modules/config/default.nix
new file mode 100644
index 0000000000000..43ad500602ee7
--- /dev/null
+++ b/pkgs/development/ocaml-modules/config/default.nix
@@ -0,0 +1,27 @@
+{ lib
+, buildDunePackage
+, fetchurl
+, ppxlib
+, spices
+}:
+
+buildDunePackage rec {
+  pname = "config";
+  version = "0.0.3";
+
+  src = fetchurl {
+    url = "https://github.com/ocaml-sys/config.ml/releases/download/${version}/config-${version}.tbz";
+    hash = "sha256-bcRCfLX2ro8vnQTJiX2aYGJC+eD26vkPynMYg817YFM=";
+  };
+
+  propagatedBuildInputs = [
+    ppxlib
+    spices
+  ];
+
+  meta = {
+    description = "Ergonomic, lightweight conditional compilation through attributes";
+    homepage = "https://github.com/ocaml-sys/config.ml";
+    license = lib.licenses.mit;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/eio/default.nix b/pkgs/development/ocaml-modules/eio/default.nix
index d90b40d1fe2c8..60e09d35db7b1 100644
--- a/pkgs/development/ocaml-modules/eio/default.nix
+++ b/pkgs/development/ocaml-modules/eio/default.nix
@@ -1,6 +1,6 @@
 { lib
 , ocaml
-, version ? if lib.versionAtLeast ocaml.version "5.1" then "1.0" else "0.12"
+, version ? if lib.versionAtLeast ocaml.version "5.1" then "1.1" else "0.12"
 , buildDunePackage
 , bigstringaf
 , cstruct
@@ -24,9 +24,9 @@ let
       minimalOCamlVersion = "5.0";
       hash = "sha256-2EhHzoX/t4ZBSWrSS+PGq1zCxohc7a1q4lfsrFnZJqA=";
     };
-    "1.0" = {
+    "1.1" = {
       minimalOCamlVersion = "5.1";
-      hash = "sha256-2iYNnaOLPd6fMWZSogsTomHPkLhaJJisZpt9Vk5hlC0=";
+      hash = "sha256-NGEEiEB38UCzV04drMwCISlgxu/reTyAPj5ri6/qD6s=";
     };
   }."${version}";
 in
diff --git a/pkgs/development/ocaml-modules/gluon/default.nix b/pkgs/development/ocaml-modules/gluon/default.nix
new file mode 100644
index 0000000000000..df700d933ebfc
--- /dev/null
+++ b/pkgs/development/ocaml-modules/gluon/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, buildDunePackage
+, fetchurl
+, bytestring
+, config
+, libc
+, rio
+, uri
+}:
+
+buildDunePackage rec {
+  pname = "gluon";
+  version = "0.0.9";
+
+  minimalOCamlVersion = "5.1";
+
+  src = fetchurl {
+    url = "https://github.com/riot-ml/gluon/releases/download/${version}/gluon-${version}.tbz";
+    hash = "sha256-YWJCPokY1A7TGqCGoxJl14oKDVeMNybEEB7KiK92WSo=";
+  };
+
+  buildInputs = [
+    config
+  ];
+
+  propagatedBuildInputs = [
+    bytestring
+    libc
+    rio
+    uri
+  ];
+
+  meta = {
+    description = "A minimal, portable, and fast API on top of the operating-system's evented I/O API";
+    homepage = "https://github.com/riot-ml/gluon";
+    changelog = "https://github.com/riot-ml/gluon/blob/${version}/CHANGES.md";
+    license = lib.licenses.mit;
+    maintainers = [ ];
+  };
+}
+
+
diff --git a/pkgs/development/ocaml-modules/libc/default.nix b/pkgs/development/ocaml-modules/libc/default.nix
new file mode 100644
index 0000000000000..13e0f04ddfc78
--- /dev/null
+++ b/pkgs/development/ocaml-modules/libc/default.nix
@@ -0,0 +1,26 @@
+{ lib
+, buildDunePackage
+, fetchurl
+, config
+}:
+
+buildDunePackage rec {
+  pname = "libc";
+  version = "0.0.1";
+
+  src = fetchurl {
+    url = "https://github.com/ocaml-sys/libc.ml/releases/download/${version}/libc-${version}.tbz";
+    hash = "sha256-e5x5Yae7V6qOpq+aLZaV+6L9ldy9qDqd9Kc8nkAsENg=";
+  };
+
+  buildInputs = [
+    config
+  ];
+
+  meta = {
+    description = "Raw definitions and bindings to platforms system libraries";
+    homepage = "https://github.com/ocaml-sys/libc.ml";
+    license = lib.licenses.mit;
+  };
+}
+
diff --git a/pkgs/development/ocaml-modules/minttea/default.nix b/pkgs/development/ocaml-modules/minttea/default.nix
index 8d81317edd1f3..75ff04929f9b3 100644
--- a/pkgs/development/ocaml-modules/minttea/default.nix
+++ b/pkgs/development/ocaml-modules/minttea/default.nix
@@ -7,13 +7,13 @@
 
 buildDunePackage rec {
   pname = "minttea";
-  version = "0.0.1";
+  version = "0.0.3";
 
   minimalOCamlVersion = "5.1";
 
   src = fetchurl {
     url = "https://github.com/leostera/minttea/releases/download/${version}/minttea-${version}.tbz";
-    hash = "sha256-+4nVeYKx2A2i2nll/PbStcEa+Dvxd0T7e/KsdJqY4bI=";
+    hash = "sha256-WEaJVCCvsmKcF8+yzovljt8dGWaIv4UmAr74jq6Vo9M=";
   };
 
   propagatedBuildInputs = [
@@ -21,8 +21,6 @@ buildDunePackage rec {
     tty
   ];
 
-  doCheck = true;
-
   meta = {
     description = "A fun, functional, and stateful way to build terminal apps in OCaml heavily inspired by Go's BubbleTea";
     homepage = "https://github.com/leostera/minttea";
diff --git a/pkgs/development/ocaml-modules/rio/default.nix b/pkgs/development/ocaml-modules/rio/default.nix
new file mode 100644
index 0000000000000..853670be35288
--- /dev/null
+++ b/pkgs/development/ocaml-modules/rio/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildDunePackage
+, fetchurl
+, cstruct
+}:
+
+buildDunePackage rec {
+  pname = "rio";
+  version = "0.0.8";
+
+  minimalOCamlVersion = "5.1";
+
+  src = fetchurl {
+    url = "https://github.com/riot-ml/riot/releases/download/${version}/riot-${version}.tbz";
+    hash = "sha256-SsiDz53b9bMIT9Q3IwDdB3WKy98WSd9fiieU41qZpeE=";
+  };
+
+  propagatedBuildInputs = [
+    cstruct
+  ];
+
+  meta = {
+    description = "Ergonomic, composable, efficient read/write streams";
+    homepage = "https://github.com/riot-ml/riot";
+    changelog = "https://github.com/riot-ml/riot/blob/${version}/CHANGES.md";
+    license = lib.licenses.mit;
+    maintainers = [ ];
+  };
+}
+
diff --git a/pkgs/development/ocaml-modules/riot/default.nix b/pkgs/development/ocaml-modules/riot/default.nix
index a6f599639111f..4e88d0c8d0901 100644
--- a/pkgs/development/ocaml-modules/riot/default.nix
+++ b/pkgs/development/ocaml-modules/riot/default.nix
@@ -1,36 +1,34 @@
 { lib
 , buildDunePackage
-, cstruct
 , fetchurl
-, mdx
-, poll
-, ptime
+, mirage-crypto-rng
+, mtime
+, gluon
+, randomconv
+, rio
 , telemetry
-, uri
+, tls
 }:
 
 buildDunePackage rec {
   pname = "riot";
-  version = "0.0.7";
+  version = "0.0.8";
 
   minimalOCamlVersion = "5.1";
 
   src = fetchurl {
     url = "https://github.com/leostera/riot/releases/download/${version}/riot-${version}.tbz";
-    hash = "sha256-t+PMBh4rZXi82dUljv3nLzZX5o1iagBbQ9FfGnr/dp4=";
+    hash = "sha256-SsiDz53b9bMIT9Q3IwDdB3WKy98WSd9fiieU41qZpeE=";
   };
 
   propagatedBuildInputs = [
-    cstruct
-    poll
-    ptime
+    gluon
+    mirage-crypto-rng
+    mtime
+    randomconv
+    rio
     telemetry
-    uri
-  ];
-
-  checkInputs = [
-    mdx
-    mdx.bin
+    tls
   ];
 
   doCheck = false; # fails on sandbox
diff --git a/pkgs/development/ocaml-modules/spices/default.nix b/pkgs/development/ocaml-modules/spices/default.nix
new file mode 100644
index 0000000000000..a1d6b06d156bb
--- /dev/null
+++ b/pkgs/development/ocaml-modules/spices/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildDunePackage
+, fetchurl
+, colors
+, tty
+}:
+
+buildDunePackage rec {
+  pname = "spices";
+  version = "0.0.2";
+
+  minimalOCamlVersion = "5.1";
+
+  src = fetchurl {
+    url = "https://github.com/leostera/minttea/releases/download/${version}/minttea-${version}.tbz";
+    hash = "sha256-0eB7OuxcPdv9bf2aIQEeir44mQfx5W2AJj7Vb4pGtLI=";
+  };
+
+  propagatedBuildInputs = [
+    colors
+    tty
+  ];
+
+  doCheck = true;
+
+  meta = {
+    description = "Declarative styles for TUI applications";
+    homepage = "https://github.com/leostera/minttea";
+    changelog = "https://github.com/leostera/minttea/blob/${version}/CHANGES.md";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ ];
+  };
+}
+
diff --git a/pkgs/development/php-packages/mongodb/default.nix b/pkgs/development/php-packages/mongodb/default.nix
index 8a1b224627d0a..f79a308a33ce7 100644
--- a/pkgs/development/php-packages/mongodb/default.nix
+++ b/pkgs/development/php-packages/mongodb/default.nix
@@ -16,13 +16,13 @@
 
 buildPecl rec {
   pname = "mongodb";
-  version = "1.19.0";
+  version = "1.19.1";
 
   src = fetchFromGitHub {
     owner = "mongodb";
     repo = "mongo-php-driver";
     rev = version;
-    hash = "sha256-hog6bOKAhLwZMjrUD5yOJ607B1MLYaZJjq6CXIYPlH4=";
+    hash = "sha256-5HGQDgZZu+miPijJD/Y48WlUVfxjkeU9gA7hByzxb/o=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/development/python-modules/accelerate/default.nix b/pkgs/development/python-modules/accelerate/default.nix
index 9c3cf1171dca0..eb02220e50352 100644
--- a/pkgs/development/python-modules/accelerate/default.nix
+++ b/pkgs/development/python-modules/accelerate/default.nix
@@ -88,6 +88,7 @@ buildPythonPackage rec {
     ++ lib.optionals (pythonAtLeast "3.12") [
       # RuntimeError: Dynamo is not supported on Python 3.12+
       "test_convert_to_fp32"
+      "test_dynamo_extract_model"
       "test_send_to_device_compiles"
     ]
     ++ lib.optionals (stdenv.isLinux && stdenv.isAarch64) [
diff --git a/pkgs/development/python-modules/aioshutil/default.nix b/pkgs/development/python-modules/aioshutil/default.nix
index 599745e19180d..1aeccdce9fe9c 100644
--- a/pkgs/development/python-modules/aioshutil/default.nix
+++ b/pkgs/development/python-modules/aioshutil/default.nix
@@ -10,18 +10,23 @@
 
 buildPythonPackage rec {
   pname = "aioshutil";
-  version = "1.3";
-  format = "pyproject";
+  version = "1.4";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "kumaraditya303";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-XIGjiLjoyS/7vUDIyBPvHNMyHOBa0gsg/c/vGgrhZAg=";
+    repo = "aioshutil";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-OGxD7GusRcHpz7FdUpa/dJ6/jIAVexbTvXfouVw0C+I=";
   };
 
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace-fail " --cov aioshutil --cov-report xml" ""
+  '';
+
   nativeBuildInputs = [ setuptools-scm ];
 
   nativeCheckInputs = [
@@ -29,17 +34,12 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  postPatch = ''
-    substituteInPlace setup.cfg \
-      --replace " --cov aioshutil --cov-report xml" ""
-  '';
-
   pythonImportsCheck = [ "aioshutil" ];
 
   meta = with lib; {
     description = "Asynchronous version of function of shutil module";
     homepage = "https://github.com/kumaraditya303/aioshutil";
-    license = with licenses; [ bsd3 ];
+    license = licenses.bsd3;
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/aioswitcher/default.nix b/pkgs/development/python-modules/aioswitcher/default.nix
index bd6b8df30a915..cfdde67b22dd6 100644
--- a/pkgs/development/python-modules/aioswitcher/default.nix
+++ b/pkgs/development/python-modules/aioswitcher/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "aioswitcher";
-  version = "3.4.2";
+  version = "3.4.3";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "TomerFi";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-UpwIzwOl1yKqK8KxFDXAWoZFkQ+1r1sUcDfx6AxRdNw=";
+    hash = "sha256-yKHSExtnO9m8Tc3BmCqV8tJs59ynKOqUmekaOatGRTc=";
   };
 
   __darwinAllowLocalNetworking = true;
diff --git a/pkgs/development/python-modules/amcrest/default.nix b/pkgs/development/python-modules/amcrest/default.nix
index 4fffb467ef73d..0a217c6f7832b 100644
--- a/pkgs/development/python-modules/amcrest/default.nix
+++ b/pkgs/development/python-modules/amcrest/default.nix
@@ -3,11 +3,10 @@
   argcomplete,
   buildPythonPackage,
   fetchFromGitHub,
+  fetchpatch2,
   httpx,
   mock,
   pytestCheckHook,
-  pythonAtLeast,
-  pythonOlder,
   requests,
   responses,
   setuptools,
@@ -20,9 +19,6 @@ buildPythonPackage rec {
   version = "1.9.8";
   pyproject = true;
 
-  # Still uses distutils, https://github.com/tchellomello/python-amcrest/issues/234
-  disabled = pythonOlder "3.7" || pythonAtLeast "3.12";
-
   src = fetchFromGitHub {
     owner = "tchellomello";
     repo = "python-amcrest";
@@ -30,6 +26,15 @@ buildPythonPackage rec {
     hash = "sha256-v0jWEZo06vltEq//suGrvJ/AeeDxUG5CCFhbf03q34w=";
   };
 
+  patches = [
+    (fetchpatch2 {
+      # https://github.com/tchellomello/python-amcrest/pull/235
+      name = "replace-distutils.patch";
+      url = "https://github.com/tchellomello/python-amcrest/commit/ec56049c0f5b49bc4c5bcf0acb7fea89ec1c1df4.patch";
+      hash = "sha256-ym+Bn795y+JqhNMk4NPnOVr3DwO9DkUV0d9LEaz3CMo=";
+    })
+  ];
+
   build-system = [ setuptools ];
 
   dependencies = [
diff --git a/pkgs/development/python-modules/apricot-select/default.nix b/pkgs/development/python-modules/apricot-select/default.nix
index b50707e96e6fa..f05e9b8e5e95f 100644
--- a/pkgs/development/python-modules/apricot-select/default.nix
+++ b/pkgs/development/python-modules/apricot-select/default.nix
@@ -2,6 +2,7 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
+  apricot-select,
   numba,
   numpy,
   pynose,
@@ -37,15 +38,15 @@ buildPythonPackage rec {
   dependencies = [
     numba
     numpy
+    scikit-learn
     scipy
+    torchvision
     tqdm
   ];
 
   nativeCheckInputs = [
     pynose
     pytestCheckHook
-    scikit-learn
-    torchvision
   ];
 
   pythonImportsCheck = [ "apricot" ];
@@ -56,6 +57,21 @@ buildPythonPackage rec {
     "tests/test_optimizers/test_knapsack_feature_based.py"
   ];
 
+  # NOTE: These tests seem to be flaky.
+  disabledTests = [
+    "test_digits_modular"
+    "test_digits_modular_object"
+    "test_digits_modular_sparse"
+    "test_digits_sqrt_modular"
+    "test_digits_sqrt_modular_object"
+    "test_digits_sqrt_modular_sparse"
+  ];
+
+  # NOTE: Tests are disabled by default because they can run for hours and timeout on Hydra.
+  doCheck = false;
+
+  passthru.tests.check = apricot-select.overridePythonAttrs { doCheck = true; };
+
   meta = with lib; {
     description = "Module for submodular optimization for the purpose of selecting subsets of massive data sets";
     homepage = "https://github.com/jmschrei/apricot";
diff --git a/pkgs/development/python-modules/asyncwhois/default.nix b/pkgs/development/python-modules/asyncwhois/default.nix
index 938ff02ce7e81..cc8879e35df4e 100644
--- a/pkgs/development/python-modules/asyncwhois/default.nix
+++ b/pkgs/development/python-modules/asyncwhois/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "asyncwhois";
-  version = "1.1.2";
+  version = "1.1.3";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "pogzyb";
     repo = "asyncwhois";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ESVgK4Z26OAamdHPEVxysnlJ0rEUlr8KNd24fawHuEg=";
+    hash = "sha256-+FSf2H+IlLJlbZvzSH/Speyt+D2ZdXhQIKJpZYRfIyg=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/ax/default.nix b/pkgs/development/python-modules/ax/default.nix
index ac6f96e48f2aa..dddcc6e1ebeb5 100644
--- a/pkgs/development/python-modules/ax/default.nix
+++ b/pkgs/development/python-modules/ax/default.nix
@@ -2,11 +2,13 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
+  ax,
   botorch,
   ipywidgets,
   jinja2,
   pandas,
   plotly,
+  python,
   setuptools,
   setuptools-scm,
   typeguard,
@@ -79,6 +81,11 @@ buildPythonPackage rec {
   ];
   pythonImportsCheck = [ "ax" ];
 
+  # Many portions of the test suite fail under Python 3.12
+  doCheck = lib.versions.majorMinor python.version != "3.12";
+
+  passthru.tests.check = ax.overridePythonAttrs { doCheck = true; };
+
   meta = with lib; {
     description = "Ax is an accessible, general-purpose platform for understanding, managing, deploying, and automating adaptive experiments";
     homepage = "https://ax.dev/";
diff --git a/pkgs/development/python-modules/bugsnag/default.nix b/pkgs/development/python-modules/bugsnag/default.nix
index d6f2cc38be6ed..18466cb31cb39 100644
--- a/pkgs/development/python-modules/bugsnag/default.nix
+++ b/pkgs/development/python-modules/bugsnag/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "bugsnag";
-  version = "4.7.0";
+  version = "4.7.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-+w0lI2goXYnfX2KB+DNFPXl6UCOhg5o17zggalyYXr8=";
+    hash = "sha256-mECP4X1KfzAKVlNUB6ZEi5hE2bUoxEUnkIho/DZG6HM=";
   };
 
   propagatedBuildInputs = [ webob ];
diff --git a/pkgs/development/python-modules/cleanlab/default.nix b/pkgs/development/python-modules/cleanlab/default.nix
index e90989967b110..1d42c24609f8b 100644
--- a/pkgs/development/python-modules/cleanlab/default.nix
+++ b/pkgs/development/python-modules/cleanlab/default.nix
@@ -3,42 +3,45 @@
   buildPythonPackage,
   fetchFromGitHub,
   pythonOlder,
+  numpy,
   scikit-learn,
   termcolor,
   tqdm,
   pandas,
   setuptools,
   # test dependencies
+  datasets,
+  fasttext,
+  hypothesis,
+  keras,
+  matplotlib,
   pytestCheckHook,
   pytest-lazy-fixture,
+  skorch,
   tensorflow,
   torch,
-  datasets,
   torchvision,
-  keras,
-  fasttext,
-  hypothesis,
   wget,
-  matplotlib,
-  skorch,
 }:
 
 buildPythonPackage rec {
   pname = "cleanlab";
-  version = "2.6.1";
+  version = "2.6.5";
   pyproject = true;
-  disabled = pythonOlder "3.7";
+
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "cleanlab";
-    repo = pname;
+    repo = "cleanlab";
     rev = "refs/tags/v${version}";
-    hash = "sha256-+uJtm/t6Ri25V/9N/2fcOgCOBaBy8PrsM/tO1uX7FEY=";
+    hash = "sha256-wehvGh27Ey1YK+eWTjT6jRwa7yqPpx3P0HUNePoljpw=";
   };
 
-  nativeBuildInputs = [ setuptools ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
+    numpy
     scikit-learn
     termcolor
     tqdm
@@ -53,18 +56,18 @@ buildPythonPackage rec {
   doCheck = true;
 
   nativeCheckInputs = [
+    datasets
+    fasttext
+    hypothesis
+    keras
+    matplotlib
     pytestCheckHook
     pytest-lazy-fixture
+    skorch
     tensorflow
     torch
-    datasets
     torchvision
-    keras
-    fasttext
-    hypothesis
     wget
-    matplotlib
-    skorch
   ];
 
   disabledTests = [
@@ -77,13 +80,15 @@ buildPythonPackage rec {
     "tests/test_dataset.py"
     # Requires the datasets we just prevented from downloading
     "tests/datalab/test_cleanvision_integration.py"
+    # Fails because of issues with the keras derivation
+    "tests/test_frameworks.py"
   ];
 
-  meta = with lib; {
+  meta = {
     description = "The standard data-centric AI package for data quality and machine learning with messy, real-world data and labels.";
     homepage = "https://github.com/cleanlab/cleanlab";
     changelog = "https://github.com/cleanlab/cleanlab/releases/tag/v${version}";
-    license = licenses.agpl3Only;
-    maintainers = with maintainers; [ happysalada ];
+    license = lib.licenses.agpl3Only;
+    maintainers = with lib.maintainers; [ happysalada ];
   };
 }
diff --git a/pkgs/development/python-modules/clickgen/default.nix b/pkgs/development/python-modules/clickgen/default.nix
index b23f1d170b290..8e1f92aca382e 100644
--- a/pkgs/development/python-modules/clickgen/default.nix
+++ b/pkgs/development/python-modules/clickgen/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "clickgen";
-  version = "2.2.2";
+  version = "2.2.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "ful1e5";
     repo = "clickgen";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Lsb0FvJohwsXofpcq7OgWfhl/3qVxAqY0wdvum6ywSQ=";
+    hash = "sha256-hYorjqm/FCnff3ZTgIlicwmSLA9ZnHGDyPt1BcijBII=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/deepdiff/default.nix b/pkgs/development/python-modules/deepdiff/default.nix
index dc82f82718322..e16fd6e90cc30 100644
--- a/pkgs/development/python-modules/deepdiff/default.nix
+++ b/pkgs/development/python-modules/deepdiff/default.nix
@@ -36,6 +36,7 @@ buildPythonPackage rec {
   '';
 
   propagatedBuildInputs = [
+    click
     ordered-set
     orjson
   ];
diff --git a/pkgs/development/python-modules/django-import-export/default.nix b/pkgs/development/python-modules/django-import-export/default.nix
index a57a770444eda..f9898a8d6f9eb 100644
--- a/pkgs/development/python-modules/django-import-export/default.nix
+++ b/pkgs/development/python-modules/django-import-export/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "django-import-export";
-  version = "4.0.3";
+  version = "4.0.5";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "django-import-export";
     repo = "django-import-export";
     rev = "refs/tags/${version}";
-    hash = "sha256-ItJx9yJSy88/OvkpjGDWGBOMk5YlSquicSWi0tbKeWE=";
+    hash = "sha256-jH/f2eebVcvd96XpaN2eBh5Yx5n0DRbDeKPh7+AaTE8=";
   };
 
   pythonRelaxDeps = [ "tablib" ];
diff --git a/pkgs/development/python-modules/django-modeltranslation/default.nix b/pkgs/development/python-modules/django-modeltranslation/default.nix
index eb6458d6a96cd..be8cf7def52f7 100644
--- a/pkgs/development/python-modules/django-modeltranslation/default.nix
+++ b/pkgs/development/python-modules/django-modeltranslation/default.nix
@@ -11,7 +11,7 @@
 let
   # 0.18.12 was yanked from PyPI, it refers to this issue:
   # https://github.com/deschler/django-modeltranslation/issues/701
-  version = "0.18.13";
+  version = "0.19.0";
 in
 buildPythonPackage {
   pname = "django-modeltranslation";
@@ -21,7 +21,7 @@ buildPythonPackage {
     owner = "deschler";
     repo = "django-modeltranslation";
     rev = "refs/tags/v${version}";
-    hash = "sha256-9tfB5/XMLnwn+AgaT9TkHtc3HcHiD4pme/+BW1uztIs=";
+    hash = "sha256-Ypz1C+Dx1v61A7LvIsW644qfFjNHQ7KXeKewQ5MAgi0=";
   };
 
   # Remove all references to pytest-cov
diff --git a/pkgs/development/python-modules/dploot/default.nix b/pkgs/development/python-modules/dploot/default.nix
index d8afa8317043f..4104ec2ac44b0 100644
--- a/pkgs/development/python-modules/dploot/default.nix
+++ b/pkgs/development/python-modules/dploot/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "dploot";
-  version = "2.7.1";
+  version = "2.7.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-vNL5xrZkfYO11i8ERqD9637vrMb3Gkmo3RjvQ1ONXbY=";
+    hash = "sha256-Vbaghcomf9gRso4DN/cpJ4j7t6AU2vg2OhucKbfS1hc=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/development/python-modules/elasticsearch8/default.nix b/pkgs/development/python-modules/elasticsearch8/default.nix
index 27760df9b8e73..e36ec5eab06ce 100644
--- a/pkgs/development/python-modules/elasticsearch8/default.nix
+++ b/pkgs/development/python-modules/elasticsearch8/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "elasticsearch8";
-  version = "8.13.1";
+  version = "8.13.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-jVi5yYPll7ej8lmDEbvcLCEdBbpMiZUi2n4AORre81E=";
+    hash = "sha256-rl8IoV8kt68AJSkPMDx3d9eB6+2yPBgFpGEU6g+RjQ4=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/foolscap/default.nix b/pkgs/development/python-modules/foolscap/default.nix
index 5c322bd8debde..5db308aa20cd5 100644
--- a/pkgs/development/python-modules/foolscap/default.nix
+++ b/pkgs/development/python-modules/foolscap/default.nix
@@ -1,32 +1,42 @@
 {
-  lib,
   buildPythonPackage,
   fetchPypi,
+  lib,
   mock,
   pyopenssl,
   pytestCheckHook,
   pythonOlder,
-  service-identity,
+  setuptools,
   six,
   twisted,
   txi2p-tahoe,
   txtorcon,
+  versioneer,
 }:
 
 buildPythonPackage rec {
   pname = "foolscap";
   version = "23.3.0";
 
-  disabled = pythonOlder "3.7";
+  pyproject = true;
+  build-system = [
+    setuptools
+    versioneer
+  ];
 
-  format = "setuptools";
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-Vu7oXC1brsgBwr2q59TAgx8j1AFRbi5mjRNIWZTbkUU=";
   };
 
-  propagatedBuildInputs = [
+  postPatch = ''
+    # Remove vendorized versioneer.py
+    rm versioneer.py
+  '';
+
+  dependencies = [
     six
     twisted
     pyopenssl
diff --git a/pkgs/development/python-modules/goodwe/default.nix b/pkgs/development/python-modules/goodwe/default.nix
index feff5d186fead..ef2976a2694a3 100644
--- a/pkgs/development/python-modules/goodwe/default.nix
+++ b/pkgs/development/python-modules/goodwe/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "goodwe";
-  version = "0.4.5";
+  version = "0.4.6";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "marcelblijleven";
     repo = "goodwe";
     rev = "refs/tags/v${version}";
-    hash = "sha256-xWVYxOc0PibttftZIrnmClPcu4EnJCQ1Zob8Pg+FTBE=";
+    hash = "sha256-Si2sdqaAhENF/PjaJeD3VdZATecJUsX7TtfX819800A=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/gophish/default.nix b/pkgs/development/python-modules/gophish/default.nix
new file mode 100644
index 0000000000000..8a7d8c90d487c
--- /dev/null
+++ b/pkgs/development/python-modules/gophish/default.nix
@@ -0,0 +1,65 @@
+{
+  lib,
+  appdirs,
+  buildPythonPackage,
+  certifi,
+  chardet,
+  fetchFromGitHub,
+  idna,
+  packaging,
+  pyparsing,
+  python-dateutil,
+  pythonOlder,
+  pythonRelaxDepsHook,
+  requests,
+  setuptools,
+  six,
+  urllib3,
+}:
+
+buildPythonPackage rec {
+  pname = "gophish";
+  version = "0.5.1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "gophish";
+    repo = "api-client-python";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-ITwwU/Xixyi9JSWbYf606HB7S5E4jiI0lEYcOdNg3mo=";
+  };
+
+  pythonRelaxDeps = true;
+
+  build-system = [ setuptools ];
+
+  nativeBuildInputs = [ pythonRelaxDepsHook ];
+
+  dependencies = [
+    appdirs
+    certifi
+    chardet
+    idna
+    packaging
+    pyparsing
+    python-dateutil
+    requests
+    six
+    urllib3
+  ];
+
+  pythonImportsCheck = [ "gophish" ];
+
+  # Module has no test
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Module to interact with Gophish";
+    homepage = "https://github.com/gophish/api-client-python";
+    changelog = "https://github.com/gophish/api-client-python/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/heatzypy/default.nix b/pkgs/development/python-modules/heatzypy/default.nix
index 843c8cbf1348b..78baf88849c7f 100644
--- a/pkgs/development/python-modules/heatzypy/default.nix
+++ b/pkgs/development/python-modules/heatzypy/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "heatzypy";
-  version = "2.5.4";
+  version = "2.5.5";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "Cyr-ius";
     repo = "heatzypy";
     rev = "refs/tags/${version}";
-    hash = "sha256-A01e3duNQmVv9vyOs6+gF/BdevLiYi/uXSq5bKmuRao=";
+    hash = "sha256-S1wIVeUTbtF5omImt38YNvZEutyCEYMGExccs0FIK44=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/huggingface-hub/default.nix b/pkgs/development/python-modules/huggingface-hub/default.nix
index 993316e030f63..e72e987779fbe 100644
--- a/pkgs/development/python-modules/huggingface-hub/default.nix
+++ b/pkgs/development/python-modules/huggingface-hub/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "huggingface-hub";
-  version = "0.23.1";
+  version = "0.23.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "huggingface";
     repo = "huggingface_hub";
     rev = "refs/tags/v${version}";
-    hash = "sha256-xMtCyYVstHLgX4++IlJ4ON/2vhMa6oafhMkdxk3+yGQ=";
+    hash = "sha256-BXuFX4Y7t3Y3I/W3MIlUJ1zwTZ1CHpJ1aoHNHhnuz0M=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/import-expression/default.nix b/pkgs/development/python-modules/import-expression/default.nix
index 4dc6d053154d3..3407aa277152c 100644
--- a/pkgs/development/python-modules/import-expression/default.nix
+++ b/pkgs/development/python-modules/import-expression/default.nix
@@ -1,7 +1,7 @@
 {
   lib,
   buildPythonPackage,
-  fetchFromGitHub,
+  fetchPypi,
   fetchpatch,
   pytestCheckHook,
   astunparse,
@@ -9,25 +9,17 @@
 }:
 buildPythonPackage rec {
   pname = "import-expression";
-  version = "1.1.4";
+  version = "1.1.5";
   pyproject = true;
 
-  src = fetchFromGitHub {
-    owner = "ioistired";
-    repo = "import-expression-parser";
-    rev = "refs/tags/v${version}";
-    hash = "sha256-mll2NePB7fthzltLOk6D9BgaDpH6GaW4psqcGun/0qM=";
+  src = fetchPypi {
+    inherit version;
+    pname = "import_expression";
+    hash = "sha256-mVlYj8/I3LFEoHJRds/vbCjH2x/C1oNiUCXmh1FtQME=";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/ioistired/import-expression-parser/commit/3daf968c3163b64685aa529740e132f0df5ab262.patch";
-      hash = "sha256-2Ubv3onor2D26udZbDDMb3iNLopEIRnIcO/X6WUVmJU=";
-    })
-  ];
-
-  nativeBuildInputs = [ setuptools ];
-  propagatedBuildInputs = [ astunparse ];
+  build-system = [ setuptools ];
+  dependencies = [ astunparse ];
   nativeCheckInputs = [ pytestCheckHook ];
   pytestFlagsArray = [ "tests.py" ];
 
diff --git a/pkgs/development/python-modules/latex2pydata/default.nix b/pkgs/development/python-modules/latex2pydata/default.nix
new file mode 100644
index 0000000000000..f6b9654aaad51
--- /dev/null
+++ b/pkgs/development/python-modules/latex2pydata/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, fetchPypi
+, buildPythonPackage
+, setuptools
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "latex2pydata";
+  version = "0.2.0";
+
+  format = "pyproject";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-lFYGBFox7fv/vlfqZN3xsh9UIRCQ+C5Cizq9j4RTcJ0=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  meta = {
+    homepage = "https://github.com/gpoore/latex2pydata";
+    description = "Send data from LaTeX to Python using Python literal format";
+    license = lib.licenses.bsd3;
+    platforms = lib.platforms.unix;
+    maintainers = with lib.maintainers; [ romildo ];
+  };
+}
diff --git a/pkgs/development/python-modules/ledgerblue/default.nix b/pkgs/development/python-modules/ledgerblue/default.nix
index 093002f65433f..0a1f6841d3909 100644
--- a/pkgs/development/python-modules/ledgerblue/default.nix
+++ b/pkgs/development/python-modules/ledgerblue/default.nix
@@ -24,14 +24,14 @@
 
 buildPythonPackage rec {
   pname = "ledgerblue";
-  version = "0.1.53";
+  version = "0.1.54";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-j5FCQnp+MNrJ8zgYeLRuWF+Gdq0FwJeBYyJALb+H8So=";
+    hash = "sha256-Hn99ST6RnER6XI6+rqA3O9/aC+whYoTOzeoHGF/fFz4=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/litellm/default.nix b/pkgs/development/python-modules/litellm/default.nix
index 068566ea139f7..d55ecbefaf0d7 100644
--- a/pkgs/development/python-modules/litellm/default.nix
+++ b/pkgs/development/python-modules/litellm/default.nix
@@ -34,7 +34,7 @@
 
 buildPythonPackage rec {
   pname = "litellm";
-  version = "1.37.16";
+  version = "1.38.8";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -43,7 +43,7 @@ buildPythonPackage rec {
     owner = "BerriAI";
     repo = "litellm";
     rev = "refs/tags/v${version}";
-    hash = "sha256-WOkblyzncIn1F67qlh8rTosCal6j4zlXsHHrWbwhJOo=";
+    hash = "sha256-JzSAdr238wRAl2HGd6RVEgbHC4b2xw1GsYRCHSVVaQk=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/llama-index-core/default.nix b/pkgs/development/python-modules/llama-index-core/default.nix
index 7122c4aba058d..eff0165238cc7 100644
--- a/pkgs/development/python-modules/llama-index-core/default.nix
+++ b/pkgs/development/python-modules/llama-index-core/default.nix
@@ -46,7 +46,7 @@ in
 
 buildPythonPackage rec {
   pname = "llama-index-core";
-  version = "0.10.38";
+  version = "0.10.39";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -55,7 +55,7 @@ buildPythonPackage rec {
     owner = "run-llama";
     repo = "llama_index";
     rev = "refs/tags/v${version}";
-    hash = "sha256-A5wOQE8WK8Mt7TvquSfgPorr39lap2n8AVQP7rr6y/Y=";
+    hash = "sha256-mSzVUTC6O/qf9EtA9UKmGKsv50SJp0tZwg+kmqFCGLE=";
   };
 
   sourceRoot = "${src.name}/${pname}";
diff --git a/pkgs/development/python-modules/model-checker/default.nix b/pkgs/development/python-modules/model-checker/default.nix
index 723bca2ebc962..86a1567e55720 100644
--- a/pkgs/development/python-modules/model-checker/default.nix
+++ b/pkgs/development/python-modules/model-checker/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "model-checker";
-  version = "0.3.21";
+  version = "0.4.4";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "model_checker";
     inherit version;
-    hash = "sha256-+bWJd1mntTH+Wi+mjDJl/TTDqGwihAFyKRlT4kR2sqo=";
+    hash = "sha256-Ypp1h4qfrY3q27Oohf/UXsl2Vlmuj78hPhlcAzXVMq4=";
   };
 
   # z3 does not provide a dist-info, so python-runtime-deps-check will fail
diff --git a/pkgs/development/python-modules/okonomiyaki/default.nix b/pkgs/development/python-modules/okonomiyaki/default.nix
index d68f9d5b92831..5845857ea1650 100644
--- a/pkgs/development/python-modules/okonomiyaki/default.nix
+++ b/pkgs/development/python-modules/okonomiyaki/default.nix
@@ -12,6 +12,7 @@
   mock,
   packaging,
   testfixtures,
+  pythonAtLeast,
 }:
 
 buildPythonPackage rec {
@@ -58,5 +59,6 @@ buildPythonPackage rec {
     description = "An experimental library aimed at consolidating a lot of low-level code used for Enthought's eggs";
     maintainers = with maintainers; [ genericnerdyusername ];
     license = licenses.bsd3;
+    broken = pythonAtLeast "3.12"; # multiple tests are failing
   };
 }
diff --git a/pkgs/development/python-modules/ome-zarr/default.nix b/pkgs/development/python-modules/ome-zarr/default.nix
index d14f7a7cca0dc..05786117dc9e1 100644
--- a/pkgs/development/python-modules/ome-zarr/default.nix
+++ b/pkgs/development/python-modules/ome-zarr/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "ome-zarr";
-  version = "0.8.3";
+  version = "0.9.0";
   format = "setuptools";
   disabled = pythonOlder "3.6";
 
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "ome";
     repo = "ome-zarr-py";
     rev = "refs/tags/v${version}";
-    hash = "sha256-JuNXVse/n/lFbNaLwMcir8NBHiRxcbYvtbxePwI6YoY=";
+    hash = "sha256-YOG9+ONf2OnkSZBL/Vb8Inebx4XDSGJb2fqypaWebhY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/oslo-db/default.nix b/pkgs/development/python-modules/oslo-db/default.nix
index 3bb388329b658..6b2c64de5d0c7 100644
--- a/pkgs/development/python-modules/oslo-db/default.nix
+++ b/pkgs/development/python-modules/oslo-db/default.nix
@@ -21,13 +21,13 @@
 
 buildPythonPackage rec {
   pname = "oslo-db";
-  version = "15.0.0";
+  version = "15.1.0";
   pyproject = true;
 
   src = fetchPypi {
     pname = "oslo.db";
     inherit version;
-    hash = "sha256-6QJDUgX1xQtw7mNYY8i06lS9Hr4ABpXAZeMN1C2Xb/o=";
+    hash = "sha256-FqvjqOYf52zaLwPZx9xZEITRnvYU8xiHvylp7fsg6E4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/oslo-log/default.nix b/pkgs/development/python-modules/oslo-log/default.nix
index 9f18906cb8758..882131c7c60b9 100644
--- a/pkgs/development/python-modules/oslo-log/default.nix
+++ b/pkgs/development/python-modules/oslo-log/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "oslo-log";
-  version = "5.5.1";
+  version = "6.0.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "oslo.log";
     inherit version;
-    hash = "sha256-SEFIUSxdsqizXIPNmX6ZU3Vf2L+oqvbuDMjHrrdCkhA=";
+    hash = "sha256-ifDW+iy6goH4m1CKf+Sb+5far1XFJ4GH1FowaZceaH8=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pdfplumber/default.nix b/pkgs/development/python-modules/pdfplumber/default.nix
index f18e1ad044bd7..d35bf4f2ad1b3 100644
--- a/pkgs/development/python-modules/pdfplumber/default.nix
+++ b/pkgs/development/python-modules/pdfplumber/default.nix
@@ -2,6 +2,7 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
+  ghostscript,
   jupyterlab,
   nbexec,
   pandas,
@@ -45,6 +46,7 @@ buildPythonPackage rec {
   '';
 
   nativeCheckInputs = [
+    ghostscript
     jupyterlab
     nbexec
     pandas
@@ -66,8 +68,6 @@ buildPythonPackage rec {
     "tests/test_display.py"
     # Tests requires pypdfium2
     "tests/test_issues.py"
-    # Tests require Ghostscript
-    "tests/test_repair.py"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/peaqevcore/default.nix b/pkgs/development/python-modules/peaqevcore/default.nix
index ff4baf1aa2be0..3c55be1d16698 100644
--- a/pkgs/development/python-modules/peaqevcore/default.nix
+++ b/pkgs/development/python-modules/peaqevcore/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "peaqevcore";
-  version = "19.10.8";
+  version = "19.10.12";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-H9AJErjJC/zo5Fy1sZFLw6GCMm4YirMzwWbAhzXM7mg=";
+    hash = "sha256-9k6bFEZychZXr/vE5AznQ36hhm/JXgjByM9wSZmyzts=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/plugp100/default.nix b/pkgs/development/python-modules/plugp100/default.nix
new file mode 100644
index 0000000000000..cd2c09467ffd3
--- /dev/null
+++ b/pkgs/development/python-modules/plugp100/default.nix
@@ -0,0 +1,51 @@
+{
+  stdenv,
+  pkgs,
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  certifi,
+  scapy,
+  urllib3,
+  semantic-version,
+  aiohttp,
+  jsons,
+  requests,
+  # Test inputs
+  pytestCheckHook,
+  pyyaml,
+  pytest-asyncio,
+  async-timeout,
+  }:
+
+buildPythonPackage rec {
+  pname = "plugp100";
+  version = "5.1.3";
+
+  src = fetchFromGitHub {
+    owner = "petretiandrea";
+    repo = "plugp100";
+    rev = version;
+    sha256 = "sha256-V+9cVBMN8H4oFU51T9BDrLF46xgQHqIsMj8nuPedUGA=";
+  };
+
+  propagatedBuildInputs =
+    [ certifi jsons requests aiohttp semantic-version scapy urllib3 pyyaml ];
+
+  nativeCheckInputs = [ pytestCheckHook pytest-asyncio async-timeout ];
+
+  disabledTestPaths = [
+    "tests/integration/"
+    "tests/unit/hub_child/"
+    "tests/unit/test_plug_strip.py"
+    "tests/unit/test_hub.py "
+    "tests/unit/test_klap_protocol.py"
+  ];
+
+  meta = with lib; {
+    description = "Python library to control Tapo Plug P100 devices";
+    homepage = "https://github.com/petretiandrea/plugp100";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ pyle ];
+  };
+}
diff --git a/pkgs/development/python-modules/plugwise/default.nix b/pkgs/development/python-modules/plugwise/default.nix
index eb9711c6ebd63..9c1aa683003b2 100644
--- a/pkgs/development/python-modules/plugwise/default.nix
+++ b/pkgs/development/python-modules/plugwise/default.nix
@@ -22,7 +22,7 @@
 
 buildPythonPackage rec {
   pname = "plugwise";
-  version = "0.37.8";
+  version = "0.37.9";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     owner = "plugwise";
     repo = "python-plugwise";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Mh4BZ0Gnsy046I537R4SZ/rC9Jm7XjF0slAP/0e5Ov8=";
+    hash = "sha256-8o2cTGkoYLrHQsAWnTg7cj9bJ+Wv1/lbHJiZ50jjFxo=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/ptpython/default.nix b/pkgs/development/python-modules/ptpython/default.nix
index fdacceff4ad35..b9ea300c15842 100644
--- a/pkgs/development/python-modules/ptpython/default.nix
+++ b/pkgs/development/python-modules/ptpython/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "ptpython";
-  version = "3.0.26";
+  version = "3.0.27";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-yPsUBlAtw0nZnFfq8G5xFvOy3qyU8C80K65ocIkJ90M=";
+    hash = "sha256-JLD9qUtz0cmaJ+b9DQi+by582nmi25lcfjx7ixJUutk=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/publicsuffixlist/default.nix b/pkgs/development/python-modules/publicsuffixlist/default.nix
index a693890d45668..d9080684581f2 100644
--- a/pkgs/development/python-modules/publicsuffixlist/default.nix
+++ b/pkgs/development/python-modules/publicsuffixlist/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "publicsuffixlist";
-  version = "0.10.0.20240515";
+  version = "0.10.0.20240525";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-0BlbqefYDjYRIWv5UgjTRInD12l1wGp+nnwJBE5vbXs=";
+    hash = "sha256-uH+o+M/aFLEaGOgdusSXJN7PtHdwD6v3tlhkwRybTjY=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/pycaption/default.nix b/pkgs/development/python-modules/pycaption/default.nix
index 609a3b0341801..b664fa6e0e5fc 100644
--- a/pkgs/development/python-modules/pycaption/default.nix
+++ b/pkgs/development/python-modules/pycaption/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "pycaption";
-  version = "2.2.7";
+  version = "2.2.10";
 
   disabled = pythonOlder "3.8";
 
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "pbs";
     repo = "pycaption";
     rev = "refs/tags/${version}";
-    hash = "sha256-0rh8w4zQN5qAIPwnm7FO6VyPxMdutYFflpY+xWdEm3M=";
+    hash = "sha256-U4ooAKs0vy6jQdUake2R0RKs9lz+DNvS1f3/c2Mck5k=";
   };
 
   nativeBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/pyexploitdb/default.nix b/pkgs/development/python-modules/pyexploitdb/default.nix
index 4178d616ae8f0..9e2e4f5c33718 100644
--- a/pkgs/development/python-modules/pyexploitdb/default.nix
+++ b/pkgs/development/python-modules/pyexploitdb/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "pyexploitdb";
-  version = "0.2.18";
+  version = "0.2.19";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "pyExploitDb";
     inherit version;
-    hash = "sha256-pwlS0304aTSrGZFIj5f+jstcFwcy/liqQBW8p7hUhKE=";
+    hash = "sha256-coxO3WQt60b6I2QfhViuTiOp+VuktUoddWjbMxUOx7E=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/pymongo-inmemory/default.nix b/pkgs/development/python-modules/pymongo-inmemory/default.nix
index 2b9d9b924369a..d90652a53726c 100644
--- a/pkgs/development/python-modules/pymongo-inmemory/default.nix
+++ b/pkgs/development/python-modules/pymongo-inmemory/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "pymongo-inmemory";
-  version = "0.4.1";
+  version = "0.4.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "kaizendorks";
     repo = "pymongo_inmemory";
     rev = "refs/tags/v${version}";
-    hash = "sha256-vYWVMSawk+03ie3PtqOyzd6wxiviq+IzyQ8bvEHNHfc=";
+    hash = "sha256-FDHHf9x62EqNcHjDF2vH8w8WG/15efEe+fDqGiiOe4A=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pyquil/default.nix b/pkgs/development/python-modules/pyquil/default.nix
index dc718777af700..77f2f3df334ed 100644
--- a/pkgs/development/python-modules/pyquil/default.nix
+++ b/pkgs/development/python-modules/pyquil/default.nix
@@ -3,7 +3,6 @@
   buildPythonPackage,
   deprecated,
   fetchFromGitHub,
-  importlib-metadata,
   ipython,
   lark,
   matplotlib-inline,
@@ -12,7 +11,6 @@
   numpy,
   packaging,
   poetry-core,
-  pydantic,
   pytest-asyncio,
   pytest-mock,
   pytestCheckHook,
@@ -27,20 +25,21 @@
   types-deprecated,
   types-python-dateutil,
   types-retry,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "pyquil";
-  version = "4.8.0";
+  version = "4.9.2";
   pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "rigetti";
     repo = "pyquil";
     rev = "refs/tags/v${version}";
-    hash = "sha256-MGI+R3oteqDWsXP+SlAGSRGiQiAj44YG6V7o90A4Krc=";
+    hash = "sha256-TxmQ9QXTTr4Xv37WmgArfK8Q5H1zAu8qx8wRsvK+vVM=";
   };
 
   pythonRelaxDeps = [
@@ -61,7 +60,6 @@ buildPythonPackage rec {
     networkx
     numpy
     packaging
-    pydantic
     qcs-sdk-python
     rpcq
     scipy
@@ -69,7 +67,8 @@ buildPythonPackage rec {
     types-deprecated
     types-python-dateutil
     types-retry
-  ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
+    typing-extensions
+  ];
 
   nativeCheckInputs = [
     nest-asyncio
diff --git a/pkgs/development/python-modules/pystray/default.nix b/pkgs/development/python-modules/pystray/default.nix
index 07cd05cad5277..a448933fcc78f 100644
--- a/pkgs/development/python-modules/pystray/default.nix
+++ b/pkgs/development/python-modules/pystray/default.nix
@@ -2,6 +2,7 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
+  fetchpatch,
   pillow,
   xlib,
   six,
@@ -15,19 +16,28 @@
 
 buildPythonPackage rec {
   pname = "pystray";
-  version = "0.19.2";
-  format = "pyproject";
+  version = "0.19.5";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "moses-palmer";
     repo = "pystray";
     rev = "v${version}";
-    hash = "sha256-8B178MSe4ujlnGBmQhIu+BoAh1doP9V5cL0ermLQTvs=";
+    hash = "sha256-CZhbaXwKFrRBEomzfFPMQdMkTOl5lbgI64etfDRiRu4=";
   };
 
+  patches = [
+    # fix test_menu_construct_from_none test case
+    # https://github.com/moses-palmer/pystray/pull/133
+    (fetchpatch {
+      url = "https://github.com/moses-palmer/pystray/commit/813007e3034d950d93a2f3e5b029611c3c9c98ad.patch";
+      hash = "sha256-m2LfZcWXSfgxb73dac21VDdMDVz3evzcCz5QjdnfM1U=";
+    })
+  ];
+
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "'sphinx >=1.3.1'" ""
+      --replace-fail "'sphinx >=1.3.1'" ""
   '';
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pytest-testinfra/default.nix b/pkgs/development/python-modules/pytest-testinfra/default.nix
index d9743ad803e69..888233166693c 100644
--- a/pkgs/development/python-modules/pytest-testinfra/default.nix
+++ b/pkgs/development/python-modules/pytest-testinfra/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "pytest-testinfra";
-  version = "10.1.0";
+  version = "10.1.1";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-93Qzm5R3Ws3zqMSjeTqOrS6N/HD/NLd4vhWquhQPoZ4=";
+    hash = "sha256-qHbxRToBtY2U2dk23VA0TCwBrHiAorQdFb3yM67Zzx8=";
   };
 
   build-system = [ setuptools-scm ];
diff --git a/pkgs/development/python-modules/pytubefix/default.nix b/pkgs/development/python-modules/pytubefix/default.nix
new file mode 100644
index 0000000000000..01522c0f3c1fb
--- /dev/null
+++ b/pkgs/development/python-modules/pytubefix/default.nix
@@ -0,0 +1,28 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools-scm,
+}:
+
+buildPythonPackage rec {
+  pname = "pytubefix";
+  version = "5.6.3";
+  format = "pyproject";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-qYNIQhwSZ3ZG3WMY6qCul1OEno1PWgMlfcFSxN3c6aw=";
+  };
+
+  nativeBuildInputs = [ setuptools-scm ];
+
+  pythonImportsCheck = [ "pytubefix" ];
+
+  meta = {
+    homepage = "https://github.com/JuanBindez/pytubefix";
+    description = "A pytube fork with additional features and fixes";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ roshaen ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyxnat/default.nix b/pkgs/development/python-modules/pyxnat/default.nix
index b905ba64bead3..b6f0944cfa5ac 100644
--- a/pkgs/development/python-modules/pyxnat/default.nix
+++ b/pkgs/development/python-modules/pyxnat/default.nix
@@ -9,13 +9,14 @@
   networkx,
   pandas,
   requests,
-  six,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "pyxnat";
-  version = "1.6";
-  format = "setuptools";
+  version = "1.6.2";
+  pyproject = true;
+
   disabled = pythonOlder "3.8";
 
   # PyPI dist missing test configuration files:
@@ -23,21 +24,19 @@ buildPythonPackage rec {
     owner = "pyxnat";
     repo = "pyxnat";
     rev = "refs/tags/${version}";
-    hash = "sha256-QejYisvQFN7CsDOx9wAgTHmRZcSEqgIr8twG4XucfZ4=";
+    hash = "sha256-21nTIYbIYlFWNJTxqsuijamqRunpdc7/VBawvrWadWI=";
   };
 
+  build-system = [ setuptools ];
+
   propagatedBuildInputs = [
     lxml
     requests
-    six
   ];
 
-  # future is not used, and pathlib is installed part of python38+
-  # w/o an external package
+  # pathlib is installed part of python38+ w/o an external package
   prePatch = ''
-    substituteInPlace setup.py \
-      --replace "pathlib>=1.0" "" \
-      --replace "future>=0.16" ""
+    substituteInPlace setup.py --replace-fail "pathlib>=1.0" ""
     sed -i '/--cov/d' setup.cfg
   '';
 
@@ -52,15 +51,24 @@ buildPythonPackage rec {
   '';
   pytestFlagsArray = [ "pyxnat" ];
   disabledTestPaths = [
-    # try to access network even though PYXNAT_SKIP_NETWORK_TESTS is set:
+    # require a running local XNAT instance e.g. in a docker container:
+    "pyxnat/tests/attributes_test.py"
+    "pyxnat/tests/custom_variables_test.py"
+    "pyxnat/tests/interfaces_test.py"
     "pyxnat/tests/pipelines_test.py"
+    "pyxnat/tests/provenance_test.py"
+    "pyxnat/tests/prearchive_test.py"
+    "pyxnat/tests/repr_test.py"
+    "pyxnat/tests/resources_test.py"
     "pyxnat/tests/search_test.py"
+    "pyxnat/tests/sessionmirror_test.py"
+    "pyxnat/tests/test_resource_functions.py"
     "pyxnat/tests/user_and_project_management_test.py"
   ];
   disabledTests = [
     # try to access network even though PYXNAT_SKIP_NETWORK_TESTS is set:
-    "test_ashs_volumes"
     "test_inspector_structure"
+    "test_project_manager"
   ];
 
   pythonImportsCheck = [ "pyxnat" ];
diff --git a/pkgs/development/python-modules/qcs-api-client/default.nix b/pkgs/development/python-modules/qcs-api-client/default.nix
index c884dfe01e628..0847a10ce625c 100644
--- a/pkgs/development/python-modules/qcs-api-client/default.nix
+++ b/pkgs/development/python-modules/qcs-api-client/default.nix
@@ -24,16 +24,16 @@
 
 buildPythonPackage rec {
   pname = "qcs-api-client";
-  version = "0.25.0";
+  version = "0.25.1";
   pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "rigetti";
     repo = "qcs-api-client-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-dKjiicrPLRlaIwHwSqpY5dBMTzrZD4xfw3h54IN3rh0=";
+    hash = "sha256-GtHAV4BvBdexjJxlT1jcNklSogYor2aWoQI2QNs/dOQ=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/qcs-sdk-python/Cargo.lock b/pkgs/development/python-modules/qcs-sdk-python/Cargo.lock
index 0c1265d5ac40c..fc65e87b236e6 100644
--- a/pkgs/development/python-modules/qcs-sdk-python/Cargo.lock
+++ b/pkgs/development/python-modules/qcs-sdk-python/Cargo.lock
@@ -912,7 +912,7 @@ dependencies = [
  "futures-sink",
  "futures-util",
  "http",
- "indexmap 2.2.5",
+ "indexmap 2.2.6",
  "slab",
  "tokio",
  "tokio-util",
@@ -1180,9 +1180,9 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "2.2.5"
+version = "2.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4"
+checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
 dependencies = [
  "equivalent",
  "hashbrown 0.14.3",
@@ -1901,7 +1901,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9"
 dependencies = [
  "fixedbitset",
- "indexmap 2.2.5",
+ "indexmap 2.2.6",
 ]
 
 [[package]]
@@ -2124,7 +2124,7 @@ dependencies = [
 
 [[package]]
 name = "qcs"
-version = "0.21.4"
+version = "0.21.7"
 dependencies = [
  "assert2",
  "async-trait",
@@ -2136,7 +2136,7 @@ dependencies = [
  "float-cmp",
  "futures",
  "hex",
- "indexmap 1.9.3",
+ "indexmap 2.2.6",
  "insta",
  "itertools 0.11.0",
  "lazy_static",
@@ -2260,7 +2260,7 @@ dependencies = [
 
 [[package]]
 name = "qcs-sdk-python"
-version = "0.17.4"
+version = "0.17.7"
 dependencies = [
  "async-trait",
  "numpy",
@@ -2290,11 +2290,11 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
 
 [[package]]
 name = "quil-rs"
-version = "0.23.0"
-source = "git+https://github.com/rigetti/quil-rs?tag=quil-py/v0.7.0#3bb618124c2165b7329c58c0f217d8ee9d816e67"
+version = "0.25.1"
+source = "git+https://github.com/rigetti/quil-rs?tag=quil-py/v0.9.1#4179fb03feff6b83edfb7a0448b0b3967ed28212"
 dependencies = [
  "approx",
- "indexmap 2.2.5",
+ "indexmap 2.2.6",
  "itertools 0.12.1",
  "lexical",
  "ndarray",
@@ -3381,7 +3381,7 @@ version = "0.19.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
 dependencies = [
- "indexmap 2.2.5",
+ "indexmap 2.2.6",
  "serde",
  "serde_spanned",
  "toml_datetime",
@@ -3394,7 +3394,7 @@ version = "0.22.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c12219811e0c1ba077867254e5ad62ee2c9c190b0d957110750ac0cda1ae96cd"
 dependencies = [
- "indexmap 2.2.5",
+ "indexmap 2.2.6",
  "serde",
  "serde_spanned",
  "toml_datetime",
diff --git a/pkgs/development/python-modules/qcs-sdk-python/default.nix b/pkgs/development/python-modules/qcs-sdk-python/default.nix
index d63eb97b9faa5..b47603e24a55e 100644
--- a/pkgs/development/python-modules/qcs-sdk-python/default.nix
+++ b/pkgs/development/python-modules/qcs-sdk-python/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "qcs-sdk-python";
-  version = "0.17.4";
+  version = "0.17.7";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -24,13 +24,13 @@ buildPythonPackage rec {
     owner = "rigetti";
     repo = "qcs-sdk-rust";
     rev = "python/v${version}";
-    hash = "sha256-Z/NK+xnugFieJqAbvGaVvxUaz9RC1vpWb4ydZTVbZeU=";
+    hash = "sha256-6Rh5gQH+ObpWGR9rYJfkXnGfG1GjKLn+ckiR7RhKzoE=";
   };
 
   cargoDeps = rustPlatform.importCargoLock {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "quil-rs-0.23.0" = "sha256-l9wj1j7PJ5L497dPlkEpJ4ctAfjUIada5Vbn2h5ioVE=";
+      "quil-rs-0.25.1" = "sha256-zC4DEjCN6y9XeZlzmXHSTbVTpFQ4Srozix89IHDhHXc=";
     };
   };
 
diff --git a/pkgs/development/python-modules/quil/default.nix b/pkgs/development/python-modules/quil/default.nix
index 1d77ff861e48a..a987561d08573 100644
--- a/pkgs/development/python-modules/quil/default.nix
+++ b/pkgs/development/python-modules/quil/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "quil";
-  version = "0.7.1";
+  version = "0.9.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -22,13 +22,13 @@ buildPythonPackage rec {
     owner = "rigetti";
     repo = "quil-rs";
     rev = "quil-py/v${version}";
-    hash = "sha256-GFePbCJnVbzL4cpQ7fy1tk2l7NhAyTVW63lVYTv0/Oo=";
+    hash = "sha256-c9nFF74Mr6S2b7NthRVUnarwxFZ9s5RUaoxYruE6QvI=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     name = "${pname}-${version}";
     inherit src;
-    hash = "sha256-catUGCFbkvov1z52f6eyxogflu61VcjIItgEVEWzkpY=";
+    hash = "sha256-FNkXdBLfKnrD9aUe25uJHi+TtApgFSCryYCY1r8ebho=";
   };
 
   buildAndTestSubdir = "quil-py";
diff --git a/pkgs/development/python-modules/resend/default.nix b/pkgs/development/python-modules/resend/default.nix
index bbcb620123fc6..d33421f11a9e8 100644
--- a/pkgs/development/python-modules/resend/default.nix
+++ b/pkgs/development/python-modules/resend/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "resend";
-  version = "1.1.0";
+  version = "2.0.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "resend";
     repo = "resend-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-xLrqkOHdynlwuY3+9aHWgCz8TX9v4RiVCvvPtu6k14c=";
+    hash = "sha256-3dYs3U3UaD3eiLs5s71VfivSurp5R3BiA1r0L5Py7XY=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/scikit-fmm/default.nix b/pkgs/development/python-modules/scikit-fmm/default.nix
index c1a9ba9abcab7..aa97c1b9bb7a5 100644
--- a/pkgs/development/python-modules/scikit-fmm/default.nix
+++ b/pkgs/development/python-modules/scikit-fmm/default.nix
@@ -1,7 +1,9 @@
 {
   lib,
   buildPythonPackage,
+  fetchpatch,
   fetchPypi,
+  meson-python,
   numpy,
   python,
 }:
@@ -9,14 +11,42 @@
 buildPythonPackage rec {
   pname = "scikit-fmm";
   version = "2023.4.2";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-14ccR/ggdyq6kvJWUe8U5NJ96M45PArjwCqzxuJCPAs=";
   };
 
-  propagatedBuildInputs = [ numpy ];
+  # TODO: Remove these patches after another stable release is made.
+  # For now, these allow us to build with Python 3.12+ by switching to Meson
+  # and off the deprecated distutils.
+  patches = [
+    (fetchpatch {
+      name = "first-try-at-meson-build.patch";
+      hash = "sha256-Kclg4YrQZL6ZSVsLh6X6DqdztPjDK35L5dp5PqYjzaY=";
+      url = "https://github.com/scikit-fmm/scikit-fmm/commit/a52c0eccb70077553607a5084152316d136b668b.patch";
+    })
+    (fetchpatch {
+      name = "work-in-progress-on-meson-build.patch";
+      hash = "sha256-WvSwBz7exqe1H+CqdoMfT5jEoIHnyt/nbc/CryuEKiA=";
+      url = "https://github.com/scikit-fmm/scikit-fmm/commit/db0e7a5f51541745027c3d081d7841e74587793e.patch";
+    })
+    (fetchpatch {
+      name = "re-cythonize-the-heap-wrapper.patch";
+      hash = "sha256-ro97+06R0szXQ9I8/sR4JAnFxoQwJeiImDcl1Yp9P0Y=";
+      url = "https://github.com/scikit-fmm/scikit-fmm/commit/4168323e209343facd5f6ba93a85893242e781a2.patch";
+    })
+  ];
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-fail "oldest-supported-numpy" "numpy"
+  '';
+
+  build-system = [ meson-python ];
+
+  dependencies = [ numpy ];
 
   checkPhase = ''
     mkdir testdir; cd testdir
diff --git a/pkgs/development/python-modules/shiboken2/default.nix b/pkgs/development/python-modules/shiboken2/default.nix
index 5d313334ae3a5..abf29ffaff97e 100644
--- a/pkgs/development/python-modules/shiboken2/default.nix
+++ b/pkgs/development/python-modules/shiboken2/default.nix
@@ -7,6 +7,7 @@
   qt5,
   libxcrypt,
   llvmPackages_15,
+  pythonAtLeast,
 }:
 
 stdenv.mkDerivation {
@@ -58,6 +59,6 @@ stdenv.mkDerivation {
     ];
     homepage = "https://wiki.qt.io/Qt_for_Python";
     maintainers = with maintainers; [ gebner ];
-    broken = stdenv.isDarwin;
+    broken = stdenv.isDarwin || pythonAtLeast "3.12";
   };
 }
diff --git a/pkgs/development/python-modules/stripe/default.nix b/pkgs/development/python-modules/stripe/default.nix
index ff64f0362fdc0..4efdf348ecc0e 100644
--- a/pkgs/development/python-modules/stripe/default.nix
+++ b/pkgs/development/python-modules/stripe/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "stripe";
-  version = "9.7.0";
+  version = "9.8.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-r2lHI795aM6hipVmQdzveG7B9y3oAicY+j7194aL1DA=";
+    hash = "sha256-YxYfynRstqgeIVi/YZUMy4118bcjHH9KyeBYF6q1hrQ=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix b/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix
index 0325b42e111ed..88d08613850b7 100644
--- a/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix
+++ b/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "tencentcloud-sdk-python";
-  version = "3.0.1154";
+  version = "3.0.1156";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "TencentCloud";
     repo = "tencentcloud-sdk-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-rVNmNnLRtW7ZhJgNUoZvYlbU9dkiXXOv7/vBAvaQ18w=";
+    hash = "sha256-evhgB8MljJBru+6ovMaUMIwSRcVA+zG+EHYtubSVr7o=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/teslajsonpy/default.nix b/pkgs/development/python-modules/teslajsonpy/default.nix
index bbfabbefd78a6..b4c489303dc42 100644
--- a/pkgs/development/python-modules/teslajsonpy/default.nix
+++ b/pkgs/development/python-modules/teslajsonpy/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "teslajsonpy";
-  version = "3.10.3";
+  version = "3.11.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "zabuldon";
     repo = "teslajsonpy";
     rev = "refs/tags/v${version}";
-    hash = "sha256-g5csh014gXdYJ28cBn0Frk5g3zFuZ9ufrypcLcNPwg0=";
+    hash = "sha256-Hb/O4kdmJVN6yGhg/FQ6i0qUrtEuD1dZooJ6pbZ+qig=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/types-requests/default.nix b/pkgs/development/python-modules/types-requests/default.nix
index 6cabdc3b89a5e..077a0980df0e0 100644
--- a/pkgs/development/python-modules/types-requests/default.nix
+++ b/pkgs/development/python-modules/types-requests/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "types-requests";
-  version = "2.31.0.20240406";
+  version = "2.32.0.20240523";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-RCjfM8VQOUXHSz9C6CsYHobse3JGIEGaKWbi3mBM4aE=";
+    hash = "sha256-Jrim3jLZ9WEZK5lCtBwKstgBDfVnfKiqFGKJ0R1QX1c=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/vnoise/default.nix b/pkgs/development/python-modules/vnoise/default.nix
new file mode 100644
index 0000000000000..02f917bc17aca
--- /dev/null
+++ b/pkgs/development/python-modules/vnoise/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, numpy
+, pytestCheckHook
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "vnoise";
+  version = "0.1.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "plottertools";
+    repo = "vnoise";
+    rev = version;
+    hash = "sha256-nflAh3vj48wneM0wy/+M+XD6GC63KZEIFb1x4SS46YI=";
+  };
+
+  nativeBuildInputs = [ setuptools ];
+
+  propagatedBuildInputs = [ numpy ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "vnoise" ];
+
+  meta = with lib; {
+    description = "Vectorized, pure-Python Perlin noise library";
+    homepage = "https://github.com/plottertools/vnoise";
+    license = licenses.mit;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/pkgs/development/python-modules/xyzservices/default.nix b/pkgs/development/python-modules/xyzservices/default.nix
index 5d9e1d4d48e1d..1e808d5875376 100644
--- a/pkgs/development/python-modules/xyzservices/default.nix
+++ b/pkgs/development/python-modules/xyzservices/default.nix
@@ -12,7 +12,7 @@
 buildPythonPackage rec {
   pname = "xyzservices";
   version = "2024.4.0";
-  format = "pyproject";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
@@ -24,9 +24,9 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  disabledTests = [
+  pytestFlagsArray = [
     # requires network connections
-    "test_free_providers"
+    "-m 'not request'"
   ];
 
   pythonImportsCheck = [ "xyzservices.providers" ];
@@ -37,11 +37,11 @@ buildPythonPackage rec {
     requests
   ];
 
-  meta = with lib; {
+  meta = {
     changelog = "https://github.com/geopandas/xyzservices/releases/tag/${version}";
     description = "Source of XYZ tiles providers";
     homepage = "https://github.com/geopandas/xyzservices";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ ];
+    license = lib.licenses.bsd3;
+    maintainers = lib.teams.geospatial.members;
   };
 }
diff --git a/pkgs/development/python-modules/yara-python/default.nix b/pkgs/development/python-modules/yara-python/default.nix
index ae1b88bec239b..fb894f05c22af 100644
--- a/pkgs/development/python-modules/yara-python/default.nix
+++ b/pkgs/development/python-modules/yara-python/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "yara-python";
-  version = "4.5.0";
+  version = "4.5.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -18,18 +18,18 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "VirusTotal";
     repo = "yara-python";
-    rev = "v${version}";
-    hash = "sha256-RcrzzJQdzn+BXEp5M3ziGL6qSgfUN3wJ3JxwgjzVeuk=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-P+OQljzp+ZwVOXAgJqK7GNrqBep40MyVtMKDtT4ZUr8=";
   };
 
   # undefined symbol: yr_finalize
   # https://github.com/VirusTotal/yara-python/issues/7
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "include_dirs=['yara/libyara/include', 'yara/libyara/', '.']" "libraries = ['yara']"
+      --replace-fail "include_dirs=['yara/libyara/include', 'yara/libyara/', '.']" "libraries = ['yara']"
   '';
 
-  nativeBuildInputs = [ setuptools ];
+  build-system = [ setuptools ];
 
   buildInputs = [ yara ];
 
@@ -44,7 +44,8 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python interface for YARA";
     homepage = "https://github.com/VirusTotal/yara-python";
-    license = with licenses; [ asl20 ];
+    changelog = "https://github.com/VirusTotal/yara-python/releases/tag/v${version}";
+    license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/ytmusicapi/default.nix b/pkgs/development/python-modules/ytmusicapi/default.nix
index edaae03db7cc6..a34b2e7f7e614 100644
--- a/pkgs/development/python-modules/ytmusicapi/default.nix
+++ b/pkgs/development/python-modules/ytmusicapi/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "ytmusicapi";
-  version = "1.7.1";
+  version = "1.7.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "sigma67";
     repo = "ytmusicapi";
     rev = "refs/tags/${version}";
-    hash = "sha256-HMWb9NScT4rRMFsUXw6TW/T0P1eH0a46OegUZ0JceiE=";
+    hash = "sha256-mFjNtZdLpS1jfqF/KZ1p8H0pWUGsIdFDxhc4dZnv6HM=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/zconfig/default.nix b/pkgs/development/python-modules/zconfig/default.nix
index 3fc0d7946757c..ee8eb919c3ebf 100644
--- a/pkgs/development/python-modules/zconfig/default.nix
+++ b/pkgs/development/python-modules/zconfig/default.nix
@@ -14,15 +14,14 @@
 
 buildPythonPackage rec {
   pname = "zconfig";
-  version = "4.0";
+  version = "4.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    pname = "ZConfig";
-    inherit version;
-    hash = "sha256-+NZC+6a6mNCGMb4sH3GtGVfAUf70qj0/ufHgjcYdAVY=";
+    inherit pname version;
+    hash = "sha256-tqed2hV/NpjIdo0s7cJjIW6K8kDTz50JoCpkKREU6yA=";
   };
 
   patches = lib.optional stdenv.hostPlatform.isMusl ./remove-setlocale-test.patch;
diff --git a/pkgs/development/python-modules/zipfile2/default.nix b/pkgs/development/python-modules/zipfile2/default.nix
index e16a0cc6b25b1..967497c009665 100644
--- a/pkgs/development/python-modules/zipfile2/default.nix
+++ b/pkgs/development/python-modules/zipfile2/default.nix
@@ -2,6 +2,7 @@
   buildPythonPackage,
   fetchFromGitHub,
   lib,
+  pythonAtLeast,
 }:
 
 buildPythonPackage rec {
@@ -25,5 +26,6 @@ buildPythonPackage rec {
     description = "A backwards-compatible improved zipfile class";
     maintainers = with maintainers; [ genericnerdyusername ];
     license = licenses.psfl;
+    broken = pythonAtLeast "3.12"; # tests are failing because the signature of ZipInfo._decodeExtra changed
   };
 }
diff --git a/pkgs/development/r-modules/default.nix b/pkgs/development/r-modules/default.nix
index 8d4004d7580f3..ce5f581be1bcf 100644
--- a/pkgs/development/r-modules/default.nix
+++ b/pkgs/development/r-modules/default.nix
@@ -1498,6 +1498,43 @@ let
       buildInputs = [ cacert ] ++ attrs.buildInputs;
     });
 
+
+    immunotation = let
+      MHC41alleleList = fetchurl {
+        url = "https://services.healthtech.dtu.dk/services/NetMHCpan-4.1/allele.list";
+        hash = "sha256-CRZ+0uHzcq5zK5eONucAChXIXO8tnq5sSEAS80Z7jhg=";
+      };
+
+      MHCII40alleleList = fetchurl {
+        url = "https://services.healthtech.dtu.dk/services/NetMHCIIpan-4.0/alleles_name.list";
+        hash = "sha256-K4Ic2NUs3P4IkvOODwZ0c4Yh8caex5Ih0uO5jXRHp40=";
+      };
+
+      # List of valid countries, regions and ethnic groups
+      # The original page is changing a bit every day, but the relevant
+      # content does not. Use archive.org to get a stable snapshot.
+      # It can be updated from time to time, or when the package becomes
+      # deficient. This may be difficult to know.
+      # Update the snapshot date, and add id_ after it, as described here:
+      # https://web.archive.org/web/20130806040521/http://faq.web.archive.org/page-without-wayback-code/
+      validGeographics = fetchurl {
+        url = "https://web.archive.org/web/20240418194005id_/http://www.allelefrequencies.net/hla6006a.asp";
+        hash = "sha256-m7Wkmh/cPxeqn94LwoznIh+fcFXskmSGErUYj6kTqak=";
+      };
+    in old.immunotation.overrideAttrs (attrs: {
+      patches = [ ./patches/immunotation.patch ];
+      postPatch = ''
+        substituteInPlace "R/external_resources_input.R" --replace-fail \
+          "nix-NetMHCpan-4.1-allele-list" ${MHC41alleleList}
+
+        substituteInPlace "R/external_resources_input.R" --replace-fail \
+          "nix-NETMHCIIpan-4.0-alleles-name-list" ${MHCII40alleleList}
+
+        substituteInPlace "R/AFND_interface.R" --replace-fail \
+          "nix-valid-geographics" ${validGeographics}
+      '';
+    });
+
     rstan = old.rstan.overrideAttrs (attrs: {
       env = (attrs.env or { }) // {
         NIX_CFLAGS_COMPILE = attrs.env.NIX_CFLAGS_COMPILE + " -DBOOST_PHOENIX_NO_VARIADIC_EXPRESSION";
diff --git a/pkgs/development/r-modules/patches/immunotation.patch b/pkgs/development/r-modules/patches/immunotation.patch
new file mode 100644
index 0000000000000..2019e8e50a029
--- /dev/null
+++ b/pkgs/development/r-modules/patches/immunotation.patch
@@ -0,0 +1,47 @@
+diff --git a/R/AFND_interface.R b/R/AFND_interface.R
+index b62e8e0..0f22d85 100644
+--- a/R/AFND_interface.R
++++ b/R/AFND_interface.R
+@@ -244,9 +244,9 @@ check_population <- function(hla_population) {
+ #' @return list of valid countries, regions and ethnic origin
+ #' @keywords internal
+ get_valid_geographics <- function() {
+-    url <- "http://www.allelefrequencies.net/hla6006a.asp?"
+-    html_input <- getURL(url, read_method = "html")
+-    
++    # http://www.allelefrequencies.net/hla6006a.asp?
++    html_input <- xml2::read_html("nix-valid-geographics")
++      
+     rvest_tables <- rvest::html_table(html_input, fill = TRUE)
+     
+     # country
+diff --git a/R/external_resources_input.R b/R/external_resources_input.R
+index c4b1dc1..8fc5881 100644
+--- a/R/external_resources_input.R
++++ b/R/external_resources_input.R
+@@ -74,16 +74,17 @@ getURL <- function(URL, N.TRIES=2L,
+ # MHC I
+ # netmhcI_input_template is an internal variable containing list of valid 
+ # NetMHCpan input alleles
+-netmhcI_input_template <- getURL(
+-    URL="https://services.healthtech.dtu.dk/services/NetMHCpan-4.1/allele.list",
+-    read_method = "delim", delim = "\t",
+-    col_names = c("netmhc_input", "hla_chain_name", "HLA_gene"))
++netmhcI_input_template <- readr::read_delim(
++        # https://services.healthtech.dtu.dk/services/NetMHCpan-4.1/allele.list
++	"nix-NetMHCpan-4.1-allele-list",
++	delim = "\t",
++	skip = 0,
++        col_names = c("netmhc_input", "hla_chain_name", "HLA_gene")
++    )
+ 
+ # MHC II
+-lines <- getURL(
+-    URL = paste0("https://services.healthtech.dtu.dk/services/",
+-    "NetMHCIIpan-4.0/alleles_name.list"),
+-    read_method = "lines")
++# https://services.healthtech.dtu.dk/services/NetMHCIIpan-4.0/alleles_name.list
++lines <- readr::read_lines("nix-NETMHCIIpan-4.0-alleles-name-list")
+ lines_rep <- stringr::str_replace_all(lines, "\t+|\\s\\s+", "\t")
+ netmhcII_input_template <- suppressWarnings(
+     suppressMessages(read.delim(textConnection(lines_rep), sep = "\t")))
diff --git a/pkgs/development/rocm-modules/5/rocm-runtime/default.nix b/pkgs/development/rocm-modules/5/rocm-runtime/default.nix
index f94f49d00bd4c..58730f40817fe 100644
--- a/pkgs/development/rocm-modules/5/rocm-runtime/default.nix
+++ b/pkgs/development/rocm-modules/5/rocm-runtime/default.nix
@@ -7,7 +7,7 @@
 , xxd
 , rocm-device-libs
 , rocm-thunk
-, libelf
+, elfutils
 , libdrm
 , numactl
 , valgrind
@@ -35,7 +35,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   buildInputs = [
     rocm-thunk
-    libelf
+    elfutils
     libdrm
     numactl
     valgrind
diff --git a/pkgs/development/rocm-modules/6/rocm-runtime/default.nix b/pkgs/development/rocm-modules/6/rocm-runtime/default.nix
index f603b708265de..1e728fb73cf79 100644
--- a/pkgs/development/rocm-modules/6/rocm-runtime/default.nix
+++ b/pkgs/development/rocm-modules/6/rocm-runtime/default.nix
@@ -8,7 +8,7 @@
 , xxd
 , rocm-device-libs
 , rocm-thunk
-, libelf
+, elfutils
 , libdrm
 , numactl
 , valgrind
@@ -36,7 +36,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   buildInputs = [
     rocm-thunk
-    libelf
+    elfutils
     libdrm
     numactl
     valgrind
diff --git a/pkgs/development/tools/algolia-cli/default.nix b/pkgs/development/tools/algolia-cli/default.nix
index 1f2456b8cc618..91a78a78fdce8 100644
--- a/pkgs/development/tools/algolia-cli/default.nix
+++ b/pkgs/development/tools/algolia-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "algolia-cli";
-  version = "1.6.9";
+  version = "1.6.10";
 
   src = fetchFromGitHub {
     owner = "algolia";
     repo = "cli";
     rev = "v${version}";
-    hash = "sha256-I4aANk/FurYsT2e3YFxRgbfpl7nEXgBwNiQeA2LMdkw=";
+    hash = "sha256-hYr2T3BLoBJzcVcINNVdnK3T0Hvs+zwsDkk9iE/csTY=";
   };
 
   vendorHash = "sha256-cNuBTH7L2K4TgD0H9FZ9CjhE5AGXADaniGLD9Lhrtrk=";
diff --git a/pkgs/development/tools/analysis/checkstyle/default.nix b/pkgs/development/tools/analysis/checkstyle/default.nix
index 1565d7bdc546f..24b8e1715fc45 100644
--- a/pkgs/development/tools/analysis/checkstyle/default.nix
+++ b/pkgs/development/tools/analysis/checkstyle/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenvNoCC, fetchurl, makeBinaryWrapper, jre }:
 
 stdenvNoCC.mkDerivation rec {
-  version = "10.16.0";
+  version = "10.17.0";
   pname = "checkstyle";
 
   src = fetchurl {
     url = "https://github.com/checkstyle/checkstyle/releases/download/checkstyle-${version}/checkstyle-${version}-all.jar";
-    sha256 = "sha256-0Hmg7WnLAGy9YOipW7Oe6KQDxRiRqZ5eI3bKQGU0aQQ=";
+    sha256 = "sha256-UcNNc4UgwTidcZmKmrDm2r4NfPJiFJ8+AacpRJYGLkI=";
   };
 
   nativeBuildInputs = [ makeBinaryWrapper ];
diff --git a/pkgs/development/tools/analysis/tflint-plugins/tflint-ruleset-google.nix b/pkgs/development/tools/analysis/tflint-plugins/tflint-ruleset-google.nix
index 5dd4429280606..5fa8efd23a1c6 100644
--- a/pkgs/development/tools/analysis/tflint-plugins/tflint-ruleset-google.nix
+++ b/pkgs/development/tools/analysis/tflint-plugins/tflint-ruleset-google.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "tflint-ruleset-google";
-  version = "0.28.0";
+  version = "0.29.0";
 
   src = fetchFromGitHub {
     owner = "terraform-linters";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-9/JCpT7zwuT8Tf8Pa2cj/pVlowFbQ8kv2XPvwJf/b10=";
+    hash = "sha256-cflmuvILMJX7jsz6OKPcaN/KezvWiqiv20Sw4vJ/mUk=";
   };
 
-  vendorHash = "sha256-mh8RXD+RD8juhSY2jWGsmwqAnnudIZIZmq8JjHh/eNQ=";
+  vendorHash = "sha256-xxSOjnzqESCOWtXsAGuTwVEoinvBNuJFaxDrIVc1O08=";
 
   # upstream Makefile also does a go test $(go list ./... | grep -v integration)
   preCheck = ''
diff --git a/pkgs/development/tools/bazel-gazelle/default.nix b/pkgs/development/tools/bazel-gazelle/default.nix
index 6b0a0d09eba23..030b02b1b5265 100644
--- a/pkgs/development/tools/bazel-gazelle/default.nix
+++ b/pkgs/development/tools/bazel-gazelle/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "bazel-gazelle";
-  version = "0.36.0";
+  version = "0.37.0";
 
   src = fetchFromGitHub {
     owner = "bazelbuild";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-jT+h3ehaqA6LLg2Q5JdWeHPwUomRDIapNALwa7nFDJ4=";
+    hash = "sha256-YtgqhwPpkw+lPgsBDCDxkcNsSu1/ZoIhXMuQeZgLXNU=";
   };
 
   vendorHash = null;
diff --git a/pkgs/development/tools/build-managers/buck2/default.nix b/pkgs/development/tools/build-managers/buck2/default.nix
index 3aad79ce1e581..c1e504a2da5db 100644
--- a/pkgs/development/tools/build-managers/buck2/default.nix
+++ b/pkgs/development/tools/build-managers/buck2/default.nix
@@ -38,7 +38,7 @@ let
   buildHashes = builtins.fromJSON (builtins.readFile ./hashes.json);
 
   # our version of buck2; this should be a git tag
-  version = "2024-03-15";
+  version = "2024-05-15";
 
   # the platform-specific, statically linked binary — which is also
   # zstd-compressed
@@ -63,7 +63,7 @@ let
   # tooling
   prelude-src =
     let
-      prelude-hash = "c68a0e4b35928891e72df1738c890bfcb76a6174";
+      prelude-hash = "4e9e6d50b8b461564a7e351ff60b87fe59d7e53b";
       name = "buck2-prelude-${version}.tar.gz";
       hash = buildHashes."_prelude";
       url = "https://github.com/facebook/buck2-prelude/archive/${prelude-hash}.tar.gz";
diff --git a/pkgs/development/tools/build-managers/buck2/hashes.json b/pkgs/development/tools/build-managers/buck2/hashes.json
index 280228e6f4e8e..0aa1592ceb1fc 100644
--- a/pkgs/development/tools/build-managers/buck2/hashes.json
+++ b/pkgs/development/tools/build-managers/buck2/hashes.json
@@ -1,7 +1,7 @@
 { "_comment": "@generated by pkgs/development/tools/build-managers/buck2/update.sh"
-, "_prelude": "sha256-PTetJetdpFU3bKLU1WESMwIEZox86IcrczvCxmaQzoE="
-, "x86_64-linux": "sha256-2vaKYCFRu2fNA/Nsu3HHT5DWtNeMnEfE8FVl7bat1HQ="
-, "x86_64-darwin": "sha256-zzB3sPOCDGWAb4CQO0yjb7Bph+ioi3cJoMYO/2YzXfU="
-, "aarch64-linux": "sha256-sx8rcADlfdAECL/SSHeB7vzxoedqx6+yT7yJp1qLBgM="
-, "aarch64-darwin": "sha256-GKQ8Xfe9iRpgq5SrM6nyyIPBh9gC25uN/vzGRjViQdQ="
+, "_prelude": "sha256-r2opeCtXAFxF3PbqKDKK0+pcySe70hUEtMiX7QlWZCQ="
+, "x86_64-linux": "sha256-Ln2FkZDQRKlTLU+EvcEE0VNW0BdnaZRd9nNeY8YgGVA="
+, "x86_64-darwin": "sha256-qSO+eERWWBH7KKBft/cze3sV04QZl3itpFNud6AFrFM="
+, "aarch64-linux": "sha256-KNYsZv5io4NYa/45rxzx+5ta6L7LrxV/GnqNWT4Y5/k="
+, "aarch64-darwin": "sha256-YUMrU5WsRu9ZAMzUS3xS/FFuiXtfbByMtT49CRGQ8do="
 }
diff --git a/pkgs/development/tools/build-managers/scala-cli/sources.json b/pkgs/development/tools/build-managers/scala-cli/sources.json
index aa8a580f45ac8..27db1b9db55e1 100644
--- a/pkgs/development/tools/build-managers/scala-cli/sources.json
+++ b/pkgs/development/tools/build-managers/scala-cli/sources.json
@@ -1,21 +1,21 @@
 {
-  "version": "1.3.1",
+  "version": "1.3.2",
   "assets": {
     "aarch64-darwin": {
       "asset": "scala-cli-aarch64-apple-darwin.gz",
-      "sha256": "04piwgd7jy7m4mx263lmlxfwh839q02b9jzycrr9bydqgfx7i0sk"
+      "sha256": "0xs60pnqsxxkamcq0n0am4jbnx4lgnr91ngcwxk0ccfpqf24jpk8"
     },
     "aarch64-linux": {
       "asset": "scala-cli-aarch64-pc-linux.gz",
-      "sha256": "0f01ilxr7zc0p6jcmn034j16ynjv1r2miik25pqlhcafjhv9sp20"
+      "sha256": "1419s6dnwk703mkp209m5fxqphx8g65h0b2kam3zs9z9rii3mjvs"
     },
     "x86_64-darwin": {
       "asset": "scala-cli-x86_64-apple-darwin.gz",
-      "sha256": "1yj49fskajf1fffkxh5hyg3vcrxyhjgcha1hj61dw0iblazfa440"
+      "sha256": "0ms7yggldckkyayz8wksyg79kgk6xl13g47a2jc7q66syzr495yw"
     },
     "x86_64-linux": {
       "asset": "scala-cli-x86_64-pc-linux.gz",
-      "sha256": "1kr035l4vwv76041yy82347f01kvbl8n676jd3dayzw48xg6j5l2"
+      "sha256": "1jy5xz8n79ck8gxcmy14ldsaj7dfrwrqgdfhp5h39hzvgcs1mjvl"
     }
   }
 }
diff --git a/pkgs/development/tools/buildah/default.nix b/pkgs/development/tools/buildah/default.nix
index d1ba00dc616d6..e6c7f0a865ad0 100644
--- a/pkgs/development/tools/buildah/default.nix
+++ b/pkgs/development/tools/buildah/default.nix
@@ -17,13 +17,13 @@
 
 buildGoModule rec {
   pname = "buildah";
-  version = "1.35.4";
+  version = "1.36.0";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = "buildah";
     rev = "v${version}";
-    hash = "sha256-lcB23yU7Wn+aILGFLDBnFg30NRDQgJt3J61FmGuQtRo=";
+    hash = "sha256-Ttz1D/jFbxFfpbT2VAkcao2AFwFRD8PLrH8yDSYt3AI=";
   };
 
   outputs = [ "out" "man" ];
diff --git a/pkgs/development/tools/coder/default.nix b/pkgs/development/tools/coder/default.nix
index df4522faf26ea..155f2939cf789 100644
--- a/pkgs/development/tools/coder/default.nix
+++ b/pkgs/development/tools/coder/default.nix
@@ -13,21 +13,21 @@ let
 
   channels = {
     stable = {
-      version = "2.10.2";
+      version = "2.10.3";
       hash = {
-        x86_64-linux = "sha256-U3qHEjIKq8JkpDp6TehMs6t5L3GpSGt4D10XSAQ9Ii0=";
-        x86_64-darwin = "sha256-ibfqqxRRD3IfIN2FqSxk5qd7d87RvBgKKFv9F0hACgo=";
-        aarch64-linux = "sha256-HdBVnLKen6W1crZfnc2hpA0cAYIYeYFHKvANwnLqkjY=";
-        aarch64-darwin = "sha256-3sHmR6PTRlBSIdD4rja4y8v0gOY4cbbyhW7qssgpqp8=";
+        x86_64-linux = "sha256-FjvGGJqo1/LskZ6RteaE2q+W6K1zi8mphAD+TzYp6K4=";
+        x86_64-darwin = "sha256-/Z8nOqeFzBfauGDGZtrBheSbSQhtWI3HuE36o0cPJ4Y=";
+        aarch64-linux = "sha256-RI6FqL5GXFCwvgZAO2/evPfZAsO8NatRfTRrkL7jYt0=";
+        aarch64-darwin = "sha256-x1Wf6tyZPUo1y2IdL15v8SjYgYWuiI0wL94oi9Uak6w=";
       };
     };
     mainline = {
-      version = "2.11.0";
+      version = "2.11.2";
       hash = {
-        x86_64-linux = "sha256-aJwL4WCJXxSBrfaUHEECQqedz2lKBOa8sdRItSBpxp4=";
-        x86_64-darwin = "sha256-4D4MoDrEJtawFeUBG9BiJ6HZ9uqx9uQDIHHNB7m2pp8=";
-        aarch64-linux = "sha256-2UlCxykSfnK50OPb61YC42MTTlPL1njf0vpwmqaUbI8=";
-        aarch64-darwin = "sha256-mh0Lr+SH4jZTx1xH7QoqfSLDma5nS61sv31QuOYAgQk=";
+        x86_64-linux = "sha256-kvQPrYGDkfzTOb3c9f3VNdg3oltKmm1Z4pXeHJ9LIyo=";
+        x86_64-darwin = "sha256-AUfbdJNBK2fCJ6Pq4gkH4+y/undu6Nx64wcejVAB7iU=";
+        aarch64-linux = "sha256-FWgTLE3fW/6j1W1FNDqyVOTMGuFqc4e3Eq2tj8IEcWk=";
+        aarch64-darwin = "sha256-oM+dEUYNUcYHemDWYBf5mqUo3aHXEu6LUuLOboGfTrQ=";
       };
     };
   };
diff --git a/pkgs/development/tools/database/clickhouse-backup/default.nix b/pkgs/development/tools/database/clickhouse-backup/default.nix
index a958bba1ac451..4a12be195c83f 100644
--- a/pkgs/development/tools/database/clickhouse-backup/default.nix
+++ b/pkgs/development/tools/database/clickhouse-backup/default.nix
@@ -7,13 +7,13 @@
 
 buildGoModule rec {
   pname = "clickhouse-backup";
-  version = "2.5.9";
+  version = "2.5.10";
 
   src = fetchFromGitHub {
     owner = "AlexAkulov";
     repo = "clickhouse-backup";
     rev = "v${version}";
-    hash = "sha256-wzc++enDDjUfj5zYW+hRTOtXkZbFByl2pmFGSrAtUHo=";
+    hash = "sha256-09xRELdWcwyTgvJKE5+srM9Uxb6BIZEQN3pR5ggRhYk=";
   };
 
   vendorHash = "sha256-vwcItklYe6ljFdGTxef19plaI5OMoOtQohY0xZLBUos=";
diff --git a/pkgs/development/tools/database/vitess/default.nix b/pkgs/development/tools/database/vitess/default.nix
index 2d107cc56246a..d0e2e5d7a0df5 100644
--- a/pkgs/development/tools/database/vitess/default.nix
+++ b/pkgs/development/tools/database/vitess/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "vitess";
-  version = "19.0.3";
+  version = "19.0.4";
 
   src = fetchFromGitHub {
     owner = "vitessio";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-Zy54nZCnwyZ1JNPvaKi0/bRt5g5ucPANwer/3pl4dGU=";
+    hash = "sha256-rP2a/t+5FhGIj9T6CQodMp9YXYf3fL5oBdFpAn7e7hw=";
   };
 
-  vendorHash = "sha256-QUzBxYEvxVzv4c8tKiFb+4NLy8RsXh0QTn9twfstMtw=";
+  vendorHash = "sha256-BlHd5GQJwdntmvVti+Jvfw65LrYM+hjwdvQ0duKk5d8=";
 
   buildInputs = [ sqlite ];
 
diff --git a/pkgs/development/tools/devpod/default.nix b/pkgs/development/tools/devpod/default.nix
index 0f006fca5c920..ce84ab242f447 100644
--- a/pkgs/development/tools/devpod/default.nix
+++ b/pkgs/development/tools/devpod/default.nix
@@ -23,13 +23,13 @@
 
 let
   pname = "devpod";
-  version = "0.5.7";
+  version = "0.5.8";
 
   src = fetchFromGitHub {
     owner = "loft-sh";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-h7FT8Mp/JOOf3XoAJDl1tBKoLfOAS7oaacirPZRQr6A=";
+    sha256 = "sha256-fIksTguHaWlbwUWnANyb/ftx3Fhhiz8k5n7N/7lhspc=";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/tools/earthly/default.nix b/pkgs/development/tools/earthly/default.nix
index 0a266560d5598..6662cf4e37659 100644
--- a/pkgs/development/tools/earthly/default.nix
+++ b/pkgs/development/tools/earthly/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "earthly";
-  version = "0.8.11";
+  version = "0.8.12";
 
   src = fetchFromGitHub {
     owner = "earthly";
     repo = "earthly";
     rev = "v${version}";
-    hash = "sha256-73Ftm5/eGqgjtYcvKcRuHGzKnKYdCJ5WqDBsMSSiMuA=";
+    hash = "sha256-9yo2LgZ/c23FcZuOxUTlp1CfwFmg6yvhlOsDpY71Pic=";
   };
 
-  vendorHash = "sha256-Uj7GGRknXtcu64rzS7SSnwQyE84hnGAyiT62vyppDE4=";
+  vendorHash = "sha256-OuZypIUIUDG1Gipg4RYkQZVUD8+G/U3N2VkbP+rnbkc=";
   subPackages = [ "cmd/earthly" "cmd/debugger" ];
 
   CGO_ENABLED = 0;
diff --git a/pkgs/development/tools/extism-cli/default.nix b/pkgs/development/tools/extism-cli/default.nix
index b9ca4160fe3eb..8ac2f2499fb9e 100644
--- a/pkgs/development/tools/extism-cli/default.nix
+++ b/pkgs/development/tools/extism-cli/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "extism-cli";
-  version = "1.4.0";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "extism";
     repo = "cli";
     rev = "refs/tags/v${version}";
-    hash = "sha256-F+Kb9ZAgHkw5kcOSt2Q8Lm+B8B4VPkr4FVYbe6HD+is=";
+    hash = "sha256-t0SbjTuM298Cka2zhavR6bOGDriz2XUGcfAy25se7M4=";
   };
 
-  vendorHash = "sha256-/faWWYwY7oxbIOoqpyXC+EU4gECl/o34M+SFyfMOWj8=";
+  vendorHash = "sha256-5QSZDPRMlLVyOQGCSxNC5BBiuegschkHA0sWvOVAODI=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/development/tools/firebase-tools/default.nix b/pkgs/development/tools/firebase-tools/default.nix
index 4af5783d7112a..2239e42df3ead 100644
--- a/pkgs/development/tools/firebase-tools/default.nix
+++ b/pkgs/development/tools/firebase-tools/default.nix
@@ -8,16 +8,16 @@
 
 buildNpmPackage rec {
   pname = "firebase-tools";
-  version = "13.10.0";
+  version = "13.10.1";
 
   src = fetchFromGitHub {
     owner = "firebase";
     repo = "firebase-tools";
     rev = "v${version}";
-    hash = "sha256-g6VmfVBGAjMH2a+oQpS3fVJm9rRNrYFaVfZ/GeqLSus=";
+    hash = "sha256-20YDBbkMJblZisFewTXLcvgT+Jtr7T/iaCukoTpbNF8=";
   };
 
-  npmDepsHash = "sha256-W+XiuYTFmPgcS03U579/J3HsdPkX9WIHMR33DzWQlr8=";
+  npmDepsHash = "sha256-HSzX4Ptl2WVRf0kw4pDrRoBH6b6JVOB+FD7LymJeaO0=";
 
   postPatch = ''
     ln -s npm-shrinkwrap.json package-lock.json
diff --git a/pkgs/development/tools/ginkgo/default.nix b/pkgs/development/tools/ginkgo/default.nix
index ecbda3802d4d8..e2b468b740af6 100644
--- a/pkgs/development/tools/ginkgo/default.nix
+++ b/pkgs/development/tools/ginkgo/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "ginkgo";
-  version = "2.18.0";
+  version = "2.19.0";
 
   src = fetchFromGitHub {
     owner = "onsi";
     repo = "ginkgo";
     rev = "v${version}";
-    sha256 = "sha256-e8XL79Qj38I+oYJdBut1VL0DlU/tE1q7v1N8JmWjrfA=";
+    sha256 = "sha256-+Kh+Pn0oEq/eDXE+vsYrSOqhSoeQoIueb6mVpT2bljc=";
   };
   vendorHash = "sha256-ccqhuUL99dtIeiEM4hRdi0479I0cyf8pxSZz0G6Vm+w=";
 
diff --git a/pkgs/development/tools/golangci-lint/default.nix b/pkgs/development/tools/golangci-lint/default.nix
index c4210b1f37381..e91020494036e 100644
--- a/pkgs/development/tools/golangci-lint/default.nix
+++ b/pkgs/development/tools/golangci-lint/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "golangci-lint";
-  version = "1.58.2";
+  version = "1.59.0";
 
   src = fetchFromGitHub {
     owner = "golangci";
     repo = "golangci-lint";
     rev = "v${version}";
-    hash = "sha256-LVkBIoRzmGQ6aJTOEyW51pdPqi7YOvuuAnaQwm0Fuyw=";
+    hash = "sha256-m4VT4jJa8AQipH1KQOYYEG84cbCS6qXORZQC8PA7838=";
   };
 
-  vendorHash = "sha256-BqNBglFoQQHhXIlI0UYerz0JLKmIzjjwqg2NYIeE14E=";
+  vendorHash = "sha256-ZNoBXSJsLCqRXc09/3woUCJVyeMrFjHIznXMlNz8MsI=";
 
   subPackages = [ "cmd/golangci-lint" ];
 
diff --git a/pkgs/development/tools/jaq/default.nix b/pkgs/development/tools/jaq/default.nix
index b95473aac7452..bdae66da33669 100644
--- a/pkgs/development/tools/jaq/default.nix
+++ b/pkgs/development/tools/jaq/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "jaq";
-  version = "1.3.0";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "01mf02";
     repo = "jaq";
     rev = "v${version}";
-    hash = "sha256-QXlHiVlKx9qmW5Cw4IGzjuUSUfoc9IvA5ZkTc1Ev37Q=";
+    hash = "sha256-6HqZBJeUaYykTZLSrqQN0Rt6rvnvzb53T56oy06wIUw=";
   };
 
-  cargoHash = "sha256-9fv8Z9AE9GV/Bq+iAsxUkD/CS25/kOBKKS4SAke/tFk=";
+  cargoHash = "sha256-Zais+yGfrzxKrKA4uAG65uzhamnuYxQEKkIaeiOlcLQ=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.Security
diff --git a/pkgs/development/tools/language-servers/neocmakelsp/default.nix b/pkgs/development/tools/language-servers/neocmakelsp/default.nix
index fe2678be6d2c2..d3c8d86a14e12 100644
--- a/pkgs/development/tools/language-servers/neocmakelsp/default.nix
+++ b/pkgs/development/tools/language-servers/neocmakelsp/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "neocmakelsp";
-  version = "0.6.25";
+  version = "0.6.26";
 
   src = fetchFromGitHub {
     owner = "Decodetalkers";
     repo = "neocmakelsp";
     rev = "v${version}";
-    hash = "sha256-2eZ1f0oxCNf0hJEQ8hkvsTwCaAWJrIYCyIY5PNfaxI4=";
+    hash = "sha256-9pCi7bevgE2tO0n1LvhLIcFV8sVpAagkVB8l5WWdIbM=";
   };
 
-  cargoHash = "sha256-mo/d99Y41/pxMzVvI6LkjnhotGV5j0ee4GItly0aqpY=";
+  cargoHash = "sha256-xm+8IDLvPDOFJ6FyeQdpbWgQ9XE6bW5i29W0S9JSQzc=";
 
   meta = with lib; {
     description = "A cmake lsp based on tower-lsp and treesitter";
diff --git a/pkgs/development/tools/micronaut/default.nix b/pkgs/development/tools/micronaut/default.nix
index 1adea9552be07..7e9e83ea6fb3a 100644
--- a/pkgs/development/tools/micronaut/default.nix
+++ b/pkgs/development/tools/micronaut/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "micronaut";
-  version = "4.4.2";
+  version = "4.4.3";
 
   src = fetchzip {
     url = "https://github.com/micronaut-projects/micronaut-starter/releases/download/v${version}/micronaut-cli-${version}.zip";
-    sha256 = "sha256-5Loc9H5wqafoZYjPGCJ4kTNulS1/Njgn35T74zHr9s4=";
+    sha256 = "sha256-lRZs/+oClNdSGapBDt9hROfergHi1cGeP5jlkL8LWxs=";
   };
 
   nativeBuildInputs = [ makeWrapper installShellFiles ];
diff --git a/pkgs/development/tools/misc/binutils/default.nix b/pkgs/development/tools/misc/binutils/default.nix
index c707d0daec896..a60457e73591e 100644
--- a/pkgs/development/tools/misc/binutils/default.nix
+++ b/pkgs/development/tools/misc/binutils/default.nix
@@ -170,8 +170,13 @@ stdenv.mkDerivation (finalAttrs: {
 
   # As binutils takes part in the stdenv building, we don't want references
   # to the bootstrap-tools libgcc (as uses to happen on arm/mips)
+  #
+  # for FreeBSD it's more complicated. With -static-libgcc, configure
+  # thinks that limits.h does not exist and the build fails for not finding
+  # LONG_MIN. The configure test itself succeeds but the compiler issues a
+  # warning about -static-libgcc being unused.
   env.NIX_CFLAGS_COMPILE =
-    if hostPlatform.isDarwin
+    if (hostPlatform.isDarwin || hostPlatform.isFreeBSD)
     then "-Wno-string-plus-int -Wno-deprecated-declarations"
     else "-static-libgcc";
 
@@ -217,6 +222,14 @@ stdenv.mkDerivation (finalAttrs: {
   ] ++ (if enableShared
       then [ "--enable-shared" "--disable-static" ]
       else [ "--disable-shared" "--enable-static" ])
+  ++ (lib.optionals (stdenv.cc.bintools.isLLVM && lib.versionAtLeast stdenv.cc.bintools.version "17") [
+      # lld17+ passes `--no-undefined-version` by default and makes this a hard
+      # error; libctf.ver version script references symbols that aren't present.
+      #
+      # This is fixed upstream and can be removed with the future release of 2.43.
+      # For now we allow this with `--undefined-version`:
+      "LDFLAGS=-Wl,--undefined-version"
+  ])
   ;
 
   # Fails
diff --git a/pkgs/development/tools/misc/blackfire/php-probe.nix b/pkgs/development/tools/misc/blackfire/php-probe.nix
index df6e223aeb19a..34389a5506b8a 100644
--- a/pkgs/development/tools/misc/blackfire/php-probe.nix
+++ b/pkgs/development/tools/misc/blackfire/php-probe.nix
@@ -14,47 +14,47 @@ assert lib.assertMsg (!php.ztsSupport) "blackfire only supports non zts versions
 let
   phpMajor = lib.versions.majorMinor php.version;
 
-  version = "1.92.15";
+  version = "1.92.16";
 
   hashes = {
     "x86_64-linux" = {
       system = "amd64";
       hash = {
-        "8.1" = "sha256-CTh3HdTZS5tjnSN5JUX55aioFSqs3FQfy7S5ofXlyBs=";
-        "8.2" = "sha256-q/Zwpvm+pT6JdkC2nX7fEf+eDmWmtLniL+5Cys8kdNI=";
-        "8.3" = "sha256-8MGY3Spa4cWqUL4S/qHKPJql5DRhtvmYEE3oBLNNm3M=";
+        "8.1" = "sha256-HcgIDyz7O3B4PGyNvf87Qw9ddxIyMy4Wt1HunsFDYto=";
+        "8.2" = "sha256-JKUAw3WDw99lFF/Rl4Pw2Wm3EpAQLR0awfyjpiEkOcg=";
+        "8.3" = "sha256-bXSJbLW3Oz4mgSRyzkbSzqP8YTdilKas+W4HtrX8YTk=";
       };
     };
     "i686-linux" = {
       system = "i386";
       hash = {
-        "8.1" = "sha256-mOiBQLXiPYMgHpcPTguEm0hffm+DZnv6MCbFbmRoEdE=";
-        "8.2" = "sha256-3xPG33DSxnQ9a9rbTov5ILi3hPWsruNZJS1NXttxfxQ=";
-        "8.3" = "sha256-4Nk+8ZIZ83/oeygDdhHI0mRRCvOEMmdWJoteDVkYuT4=";
+        "8.1" = "sha256-Eo4teWlzEPw3j/v/5FqFNGykXUZDmWGMLK6LNNkFBRQ=";
+        "8.2" = "sha256-hf4lmaJeSBT1f2fJ3qduen8i8Fat+U/u0LXecaca+J8=";
+        "8.3" = "sha256-p4+/B11BDJlvh+tFfn3rgE/Mp3vJ5QRV/hVZjn9wAUI=";
       };
     };
     "aarch64-linux" = {
       system = "arm64";
       hash = {
-        "8.1" = "sha256-5XUk2v65ceHqnfatLq9E1+J5QRgCDpKxR4ZFpCAsfdI=";
-        "8.2" = "sha256-Lr8wBAXYHXwPokwQMni5tsNncor9ZRjNwtL/5hodUq8=";
-        "8.3" = "sha256-KZLPFaa5NPksfhA99S8qV3FngJTDonhG+MMPkCwxUys=";
+        "8.1" = "sha256-LcOjqZ7WUfm7Woa0S4Zs0jEsErd9yfdSj448s3ym6PA=";
+        "8.2" = "sha256-ZT2QQqMyezZ0FFgBUECvvYxFWZ8UnDPrQB6zLx0m5hU=";
+        "8.3" = "sha256-q8aNtMq/olCms240b0gTyEsTqNYgJWJhdtmzIU0S0jw=";
       };
     };
     "aarch64-darwin" = {
       system = "arm64";
       hash = {
-        "8.1" = "sha256-G5wrH9M+b69BLKRI4n9FydGDV/q7Ch7u+Zvol2+ptwI=";
-        "8.2" = "sha256-zgcYT2oWCa2kc4wLx94nxRjg0sebjdGxuPJNbiBZ/Is=";
-        "8.3" = "sha256-l1zNH47lNpHj7qRgqoxJisn7dU2VzSGFt0v8/9VpYiI=";
+        "8.1" = "sha256-lzOmGL08eQlIYnHzy7wijPiFYC7bS8Rn/6zDMj6Zhj0=";
+        "8.2" = "sha256-PcUZ8elx/wojILwNvH8bF9DxUXBUiSkHzBeD2h2ypGM=";
+        "8.3" = "sha256-8z2zYYvoq8adeYm22TQ6iypjwfh/dKzCbXAkoNIBMpY=";
       };
     };
     "x86_64-darwin" = {
       system = "amd64";
       hash = {
-        "8.1" = "sha256-mmmzmR4yzwmXAl6YoSOKSivF7uixGZYaFQVIqWd0Ud4=";
-        "8.2" = "sha256-1jnw3BADm38C1Hi4lBs5B+kJl1karTljVHxHGEfZmtw=";
-        "8.3" = "sha256-7a2JyeLP4HwyaYsb7zAio2HrUPbBVpVEOUjWKCilkFY=";
+        "8.1" = "sha256-8X3oeEUWdiqurGSreCxe3lmexsBix4KzrWYNWxOfceU=";
+        "8.2" = "sha256-iwJs205ZiInw3Rs6TxBF3iw2/t/wxRMXHQpVnxRPPb4=";
+        "8.3" = "sha256-fshkfbS7wOmevw8ClqPKneIv+UtXYo4sWTatvS9gOnM=";
       };
     };
   };
diff --git a/pkgs/development/tools/misc/ctags/wrapped.nix b/pkgs/development/tools/misc/ctags/wrapped.nix
index 2bc3aa5ecf4fa..b3734bbf06a4e 100644
--- a/pkgs/development/tools/misc/ctags/wrapped.nix
+++ b/pkgs/development/tools/misc/ctags/wrapped.nix
@@ -1,78 +1,90 @@
-{ pkgs, ctags }:
-
-with pkgs.lib;
-
-# define some ctags wrappers adding support for some not that common languages
-# customization:
-# a) add stuff here
-# b) override asLang, phpLang, ... using packageOverrides
-# c) use ctagsWrapped.override {args = [ your liste ];}
+{
+  lib,
+  ctags,
+  writeTextFile,
+  runtimeShell,
+  ctagsWrapped,
+  name ? "${ctags.name}-wrapped",
+  args ? lib.concatLists [
+    ctagsWrapped.defaultArgs
+    ctagsWrapped.phpLang
+    ctagsWrapped.jsLang
+    ctagsWrapped.nixLang
+    ctagsWrapped.asLang
+    ctagsWrapped.rubyLang
+  ],
+}:
 
-# install using -iA ctagsWrapped.ctagsWrapped
+# Define a ctags wrapper derivation adding support for some not-that-common languages customization.
+# Override this to provide different args.
 
-{
+writeTextFile {
+  inherit name;
+  executable = true;
+  destination = "/bin/${name}";
+  text = ''
+    #!${runtimeShell}
+    exec ${ctags}/bin/ctags ${lib.concatStringsSep " " (map lib.escapeShellArg args)} "$@"
+  '';
+  derivationArgs = {
+    # Inherit the metadata from the parent `ctags` derivation.
+    inherit (ctags) meta;
 
-  # the derivation. use language extensions specified by args
-  ctagsWrapped = makeOverridable ( {args, name} :  pkgs.writeScriptBin name ''
-  #!${pkgs.runtimeShell}
-  exec ${pkgs.ctags}/bin/ctags ${concatStringsSep " " (map escapeShellArg args)} "$@"
-  '') {
-    args = let x = pkgs.ctagsWrapped; in concatLists [
-      x.defaultArgs x.phpLang x.jsLang x.nixLang x.asLang x.rubyLang
-    ];
-    name = "${ctags.name}-wrapped";
-  };
+    passthru = {
+      # `ctagsWrapped` exists for backwards compatibility; ctagsWrapped used to be an attrset and
+      # now is a derivation, so keep supporting the use of `ctagsWrapped.ctagsWrapped`.
+      inherit ctagsWrapped;
 
-  ### language arguments
+      ### language arguments
 
-  # don't scan version control directories
-  defaultArgs = [
-    "--exclude=.svn"
-    "--exclude=.hg"
-    "--exclude=.git"
-    "--exclude=_darcs"
-    "--sort=yes"
-  ];
+      # don't scan version control directories
+      defaultArgs = [
+        "--exclude=.svn"
+        "--exclude=.hg"
+        "--exclude=.git"
+        "--exclude=_darcs"
+        "--sort=yes"
+      ];
 
-  # actionscript
-  asLang = [
-    "--langdef=ActionScript"
-    "--langmap=ActionScript:.as"
-    "--regex-ActionScript=/function[ \\t]+([A-Za-z0-9_]+)[ \\t]*\\(/\\1/f,function,functions/"
-    "--regex-ActionScript=/function[ \\t]+(set|get)[ \\t]+([A-Za-z0-9_]+)[ \\t]*\\(/\\2/p,property,properties/"
-    "--regex-ActionScript=/interface[ \\t]+[a-z0-9_.]*([A-Z][A-Za-z0-9_]+)/\\1/i,interface,interfaces/"
-    "--regex-ActionScript=/package[ \\t]+([^ \\t]*)/\\1/p/"
-    "--regex-ActionScript=/class[ \\t]+[a-z0-9_.]*([A-Z][A-Za-z0-9_]+)/\\1/c,class,classes/"
-  ];
+      # actionscript
+      asLang = [
+        "--langdef=ActionScript"
+        "--langmap=ActionScript:.as"
+        "--regex-ActionScript=/function[ \\t]+([A-Za-z0-9_]+)[ \\t]*\\(/\\1/f,function,functions/"
+        "--regex-ActionScript=/function[ \\t]+(set|get)[ \\t]+([A-Za-z0-9_]+)[ \\t]*\\(/\\2/p,property,properties/"
+        "--regex-ActionScript=/interface[ \\t]+[a-z0-9_.]*([A-Z][A-Za-z0-9_]+)/\\1/i,interface,interfaces/"
+        "--regex-ActionScript=/package[ \\t]+([^ \\t]*)/\\1/p/"
+        "--regex-ActionScript=/class[ \\t]+[a-z0-9_.]*([A-Z][A-Za-z0-9_]+)/\\1/c,class,classes/"
+      ];
 
-  # PHP
-  phpLang = [
-    "--langmap=PHP:.php"
-    "--regex-PHP=/abstract class ([^ ]*)/\\1/c/"
-    "--regex-PHP=/interface ([^ ]*)/\\1/i/"
-    "--regex-PHP=/function[ \\t]+([^ (]*)/\\1/f/"
-  ];
+      # PHP
+      phpLang = [
+        "--langmap=PHP:.php"
+        "--regex-PHP=/abstract class ([^ ]*)/\\1/c/"
+        "--regex-PHP=/interface ([^ ]*)/\\1/i/"
+        "--regex-PHP=/function[ \\t]+([^ (]*)/\\1/f/"
+      ];
 
-  # Javascript: also find unnamed functions and functions being passed within a dict.
-  # the dict properties is used to implement duck typing in frameworks
-  # var foo = function () { ... }
-  # {
-  # a : function () {}
-  # only recognize names up 100 characters. Else you'll be in trouble scanning compressed .js files.
-  jsLang = [
-    "--regex-JavaScript=/([^ \\t]{1,100})[ \\t]*:[ \\t]*function[ \\t]*\\(/\\1/f/"
-  ];
+      # Javascript: also find unnamed functions and functions being passed within a dict.
+      # the dict properties is used to implement duck typing in frameworks
+      # var foo = function () { ... }
+      # {
+      # a : function () {}
+      # only recognize names up 100 characters. Else you'll be in trouble scanning compressed .js files.
+      jsLang = [ "--regex-JavaScript=/([^ \\t]{1,100})[ \\t]*:[ \\t]*function[ \\t]*\\(/\\1/f/" ];
 
-  # find foo in "foo =", don't think we can do a lot better
-  nixLang = [
-    "--langdef=NIX"
-    "--langmap=NIX:.nix"
-    "--regex-NIX=/([^ \\t*]*)[ \\t]*=/\\1/f/"
-  ];
+      # find foo in "foo =", don't think we can do a lot better
+      nixLang = [
+        "--langdef=NIX"
+        "--langmap=NIX:.nix"
+        "--regex-NIX=/([^ \\t*]*)[ \\t]*=/\\1/f/"
+      ];
 
-  rubyLang = [
-    "--langmap=RUBY:.rb"
-    "--regex-RUBY=/class ([^ ]*)/\\1/c/"
-    "--regex-RUBY=/^[ ]*module[ ]*([^ ]*)/\\1/m/"
-  ];
+      rubyLang = [
+        "--langmap=RUBY:.rb"
+        "--regex-RUBY=/class ([^ ]*)/\\1/c/"
+        "--regex-RUBY=/^[ ]*module[ ]*([^ ]*)/\\1/m/"
+      ];
+    };
+  };
 }
diff --git a/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix b/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix
index ed68482d0a86f..54067eb63d217 100644
--- a/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix
+++ b/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix
@@ -5,12 +5,12 @@
 
 buildDunePackage rec {
   pname = "js_of_ocaml-compiler";
-  version = "5.8.1";
+  version = "5.8.2";
   minimalOCamlVersion = "4.08";
 
   src = fetchurl {
     url = "https://github.com/ocsigen/js_of_ocaml/releases/download/${version}/js_of_ocaml-${version}.tbz";
-    hash = "sha256-DohuELJzqMSNn0U9XEuHacofPrpe6VDgsYha3JQ/SlM=";
+    hash = "sha256-ciAZS9L5sU2VgVOlogZ1A1nXtJ3hL+iNdFDThc7L8Eo=";
   };
 
   nativeBuildInputs = [ menhir ];
diff --git a/pkgs/development/tools/okteto/default.nix b/pkgs/development/tools/okteto/default.nix
index 79514af491938..be53e197bd9bb 100644
--- a/pkgs/development/tools/okteto/default.nix
+++ b/pkgs/development/tools/okteto/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "okteto";
-  version = "2.27.1";
+  version = "2.27.2";
 
   src = fetchFromGitHub {
     owner = "okteto";
     repo = "okteto";
     rev = version;
-    hash = "sha256-CpU29+dVC/OHZdVtbQKSUwoBHsUUb2ZmBNtU1YSa/UA=";
+    hash = "sha256-aackeTtByetowH0SVk4/+Pwyeywe6Vpb/mRHudhzLao=";
   };
 
   vendorHash = "sha256-RpkKWz/cJ1StbpVydqpSfA6uwIYgKa1YOCJVXZRer6k=";
diff --git a/pkgs/development/tools/ols/default.nix b/pkgs/development/tools/ols/default.nix
index 613dd0f5acbdc..2823cdc3b45ad 100644
--- a/pkgs/development/tools/ols/default.nix
+++ b/pkgs/development/tools/ols/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation {
   pname = "ols";
-  version = "0-unstable-2024-05-18";
+  version = "0-unstable-2024-05-22";
 
   src = fetchFromGitHub {
     owner = "DanielGavin";
     repo = "ols";
-    rev = "b5b6733320bd866b6895cc2f44910f180dda4e0b";
-    hash = "sha256-Mok77ioHklE3jeSFT2um1XgrnRuQf0ysDcTo3Fjukmk=";
+    rev = "a2f333bfbdd187aa7463ae230f7a617f6bccb611";
+    hash = "sha256-sM8UkfuzQib0L8mUhmtVZAjbZKA07aY2YLvooj3zdc0=";
   };
 
   passthru.updateScript = unstableGitUpdater {
diff --git a/pkgs/development/tools/rubyfmt/default.nix b/pkgs/development/tools/rubyfmt/default.nix
index 15457e80aad9e..756340e3f091e 100644
--- a/pkgs/development/tools/rubyfmt/default.nix
+++ b/pkgs/development/tools/rubyfmt/default.nix
@@ -13,6 +13,7 @@
 , libunwind
 , libxcrypt
 , libyaml
+, rust-jemalloc-sys-unprefixed
 , Foundation
 , Security
 }:
@@ -40,6 +41,7 @@ rustPlatform.buildRustPackage rec {
     zlib
     libxcrypt
     libyaml
+    rust-jemalloc-sys-unprefixed
   ] ++ lib.optionals stdenv.isDarwin [
     readline
     libiconv
diff --git a/pkgs/development/tools/rust/cargo-dist/default.nix b/pkgs/development/tools/rust/cargo-dist/default.nix
index 04aae84d0d860..6d55e580291e9 100644
--- a/pkgs/development/tools/rust/cargo-dist/default.nix
+++ b/pkgs/development/tools/rust/cargo-dist/default.nix
@@ -14,16 +14,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-dist";
-  version = "0.13.2";
+  version = "0.14.1";
 
   src = fetchFromGitHub {
     owner = "axodotdev";
     repo = "cargo-dist";
     rev = "v${version}";
-    hash = "sha256-sD3Y/FFfUgMtvBoSP0BBhS5aCZy+TkyO8S28q8Hoc5I=";
+    hash = "sha256-4NsEvmIvgyv186WwMVxjo/PM4ccUtcIVCde4pwXUX98=";
   };
 
-  cargoHash = "sha256-efVhaL1yUEpOgNZ4Bog1OB37lT1yQHJVE9M938jnGeE=";
+  cargoHash = "sha256-89YN0P6dsmliOf8mv5ugyWPbg/aflACfkDaZp8f1HBo=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/development/tools/rust/cargo-public-api/default.nix b/pkgs/development/tools/rust/cargo-public-api/default.nix
index 11e5ba601c3e3..c3a42b7a059a2 100644
--- a/pkgs/development/tools/rust/cargo-public-api/default.nix
+++ b/pkgs/development/tools/rust/cargo-public-api/default.nix
@@ -10,14 +10,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-public-api";
-  version = "0.34.1";
+  version = "0.34.2";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-fNQ4FfOaS38KGhI/hCRLdtYmb0FXkoXyJsbcT+1K6Ow=";
+    hash = "sha256-cqFpvhlhgmytv8MzhwKafZYTWwLUXl9o2FQPCY8EN6Y=";
   };
 
-  cargoHash = "sha256-DwhaVn6nuy2KbXaRcIUQN6iS85ONwAbCWX+vxfa0F7U=";
+  cargoHash = "sha256-HaZqvsM8QsHo5sdMKHrKdTdWgHIXpBiU3eTojqZXIDA=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/development/tools/sentry-cli/default.nix b/pkgs/development/tools/sentry-cli/default.nix
index e291ed8eab377..188568c43f450 100644
--- a/pkgs/development/tools/sentry-cli/default.nix
+++ b/pkgs/development/tools/sentry-cli/default.nix
@@ -11,13 +11,13 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "sentry-cli";
-  version = "2.31.2";
+  version = "2.32.1";
 
   src = fetchFromGitHub {
     owner = "getsentry";
     repo = "sentry-cli";
     rev = version;
-    sha256 = "sha256-UL8PJnz+fV67F0t24OEReF4tIUa8S2NzICYgUU7fgUo=";
+    sha256 = "sha256-N92qv1CjOSeoknIbf+LA0oAzy75uRGjOpcpHCg7g5lY=";
   };
   doCheck = false;
 
@@ -27,7 +27,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ CoreServices Security SystemConfiguration ];
   nativeBuildInputs = [ installShellFiles pkg-config ];
 
-  cargoHash = "sha256-S1NwnPn3PRL6GoRBFEhhNuy9StrAhG5qCDW2uWNyU4E=";
+  cargoHash = "sha256-9L02ox2T+dBRx+mmFpy5Bktsyp3C/havfZoDaNevIMw=";
 
   postInstall = ''
     installShellCompletion --cmd sentry-cli \
diff --git a/pkgs/development/tools/wasmedge/default.nix b/pkgs/development/tools/wasmedge/default.nix
index 4346b51efac89..25468947b5c7c 100644
--- a/pkgs/development/tools/wasmedge/default.nix
+++ b/pkgs/development/tools/wasmedge/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "wasmedge";
-  version = "0.13.5";
+  version = "0.14.0";
 
   src = fetchFromGitHub {
     owner = "WasmEdge";
     repo = "WasmEdge";
     rev = finalAttrs.version;
-    sha256 = "sha256-JaFaqYIwcRXYl5JukAfViUn8VTpMPThFO8EaVTPIudA=";
+    sha256 = "sha256-JPuJIM5OU1qCvFZEQ3gDNBZsIiJijtWLAVGp54z7lt0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/tools/xqilla/default.nix b/pkgs/development/tools/xqilla/default.nix
index 352f41f47bb49..ad568f42673c9 100644
--- a/pkgs/development/tools/xqilla/default.nix
+++ b/pkgs/development/tools/xqilla/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, xercesc }:
+{ lib, stdenv, fetchurl, fetchpatch, darwin, xercesc }:
 
 stdenv.mkDerivation rec {
   pname = "xqilla";
@@ -17,7 +17,18 @@ stdenv.mkDerivation rec {
     })
   ];
 
-  configureFlags = [ "--with-xerces=${xercesc}" ];
+  configureFlags = [
+    "--with-xerces=${xercesc}"
+    # code uses register storage specifier
+    "CXXFLAGS=-std=c++14"
+  ];
+
+  buildInputs = [
+    xercesc
+  ] ++ lib.optionals stdenv.hostPlatform.isDarwin (with darwin.apple_sdk.frameworks; [
+    CoreServices
+    SystemConfiguration
+  ]);
 
   meta = with lib; {
     description = "An XQuery and XPath 2 library and command line utility written in C++, implemented on top of the Xerces-C library";
diff --git a/pkgs/development/web/bun/default.nix b/pkgs/development/web/bun/default.nix
index 38f926c22ecac..e769924b86291 100644
--- a/pkgs/development/web/bun/default.nix
+++ b/pkgs/development/web/bun/default.nix
@@ -12,7 +12,7 @@
 }:
 
 stdenvNoCC.mkDerivation rec {
-  version = "1.1.8";
+  version = "1.1.9";
   pname = "bun";
 
   src = passthru.sources.${stdenvNoCC.hostPlatform.system} or (throw "Unsupported system: ${stdenvNoCC.hostPlatform.system}");
@@ -51,19 +51,19 @@ stdenvNoCC.mkDerivation rec {
     sources = {
       "aarch64-darwin" = fetchurl {
         url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-darwin-aarch64.zip";
-        hash = "sha256-n5ElTDuD0fap+llzrXN7de937jYaAG8dpJlKUB0npT4=";
+        hash = "sha256-gk3Zi8AcpMTCexL8ASY29W2LcwYICpD2QwpvuEbQpB4=";
       };
       "aarch64-linux" = fetchurl {
         url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-linux-aarch64.zip";
-        hash = "sha256-4/kEyaF2kmu8MAjlrPgBqKFDId8bBibu3Zll3b0w8Ro=";
+        hash = "sha256-F5yfovHAsWeLiQ4Uigrm0hy3gwz8pK5PA6AuZiyrfOI=";
       };
       "x86_64-darwin" = fetchurl {
         url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-darwin-x64.zip";
-        hash = "sha256-btyslaKqdk86whAnQV0on7NWTBTRTegFvMsOl0YyloY=";
+        hash = "sha256-HV8iVZwHPPyini8rCVMnSHmqL7HUM27uOSfaTcdnnZ0=";
       };
       "x86_64-linux" = fetchurl {
         url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-linux-x64.zip";
-        hash = "sha256-JuDT+8FHbamdMVCDeSTGPYOvhPY2EZ9XeD2zjHEj36Y=";
+        hash = "sha256-yIz/CWKTSKoeOTb/2rxbyYovw0rralSj0r2ZMPu29i8=";
       };
     };
     updateScript = writeShellScript "update-bun" ''
diff --git a/pkgs/games/chiaki4deck/default.nix b/pkgs/games/chiaki4deck/default.nix
index 7bdce8d1df421..54e3c978c4da0 100644
--- a/pkgs/games/chiaki4deck/default.nix
+++ b/pkgs/games/chiaki4deck/default.nix
@@ -35,13 +35,13 @@
 
 stdenv.mkDerivation rec {
   pname = "chiaki4deck";
-  version = "1.7.0";
+  version = "1.7.1";
 
   src = fetchFromGitHub {
     owner = "streetpea";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-gJafzBryuGDU8ke3JTKkQdSEND+btSZ93Ei7ZRsqchg=";
+    hash = "sha256-dSipQH04NSB6t9ZmDq9cjFTmtabnzPRwL9ssmEEmEws=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/games/fheroes2/default.nix b/pkgs/games/fheroes2/default.nix
index bc96eb5cfcc35..0508fda010930 100644
--- a/pkgs/games/fheroes2/default.nix
+++ b/pkgs/games/fheroes2/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fheroes2";
-  version = "1.0.13";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "ihhub";
     repo = "fheroes2";
     rev = version;
-    hash = "sha256-uR46G1DISurBk17GQdo+x94F2cP0+157PxjdG2s1Ik4=";
+    hash = "sha256-a4IZX0aq2iXLPKTVRWxkr50vhCEqAMUA0z50rOpEIjU=";
   };
 
   nativeBuildInputs = [ imagemagick ];
diff --git a/pkgs/games/minetest/default.nix b/pkgs/games/minetest/default.nix
index fcea007ff5988..ff6a59e08ad72 100644
--- a/pkgs/games/minetest/default.nix
+++ b/pkgs/games/minetest/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, gitUpdater
 , cmake
 , irrlichtmt
 , coreutils
@@ -128,6 +129,10 @@ stdenv.mkDerivation (finalAttrs: {
     mv $out/minetest.app $out/Applications
   '';
 
+  passthru.updateScript = gitUpdater {
+    ignoredVersions = "^[^.]+$|.*-android$";
+  };
+
   meta = with lib; {
     homepage = "https://minetest.net/";
     description = "Infinite-world block sandbox game";
diff --git a/pkgs/games/nile/default.nix b/pkgs/games/nile/default.nix
index 928ba0743d04b..a0dc32db86212 100644
--- a/pkgs/games/nile/default.nix
+++ b/pkgs/games/nile/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonApplication rec {
   pname = "nile";
-  version = "1.0.3-unstable-2024-05-10";
+  version = "1.0.3-unstable-2024-05-25";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "imLinguin";
     repo = "nile";
-    rev = "74e3ca979b2a66f9174c04fd0279211e0276ac9c";
-    hash = "sha256-ezX9MLQsULRvX+X2NXYBQnKRzBRt9eN9JnJinzysI9o=";
+    rev = "6e6968c37aef59772248de8602374b4831202854";
+    hash = "sha256-0UHXF9It/JjHMfBzQM5GRn4FU9rNrh3EM90M8Ki/fTE=";
   };
 
   disabled = pythonOlder "3.8";
diff --git a/pkgs/games/shattered-pixel-dungeon/experienced-pixel-dungeon.nix b/pkgs/games/shattered-pixel-dungeon/experienced-pixel-dungeon.nix
index 26d89978c1a21..72ce4f790ad49 100644
--- a/pkgs/games/shattered-pixel-dungeon/experienced-pixel-dungeon.nix
+++ b/pkgs/games/shattered-pixel-dungeon/experienced-pixel-dungeon.nix
@@ -4,18 +4,18 @@
 
 callPackage ./generic.nix rec {
   pname = "experienced-pixel-dungeon";
-  version = "2.17.2";
+  version = "2.18";
 
   src = fetchFromGitHub {
     owner = "TrashboxBobylev";
     repo = "Experienced-Pixel-Dungeon-Redone";
     rev = "ExpPD-${version}";
-    hash = "sha256-eX+wPw2Bi37yQZ+ftjEkiGzvheJZingqDqy1481ABvs=";
+    hash = "sha256-jOKHBd9LaDn3oqLdQWqAcJnicktlbkDGw00nT8JveoI=";
   };
 
   postPatch = ''
     substituteInPlace build.gradle \
-      --replace-fail "gdxControllersVersion = '2.2.3-SNAPSHOT'" "gdxControllersVersion = '2.2.3'"
+      --replace-fail "gdxControllersVersion = '2.2.4-SNAPSHOT'" "gdxControllersVersion = '2.2.3'"
   '';
 
   depsHash = "sha256-PyBEhlOOVD3/YH4SWs1yMkdg3U96znk1/VV6SAr8S30=";
diff --git a/pkgs/games/shattered-pixel-dungeon/shorter-pixel-dungeon.nix b/pkgs/games/shattered-pixel-dungeon/shorter-pixel-dungeon.nix
index 6b52ebe0b5f34..7d775e7e6ed58 100644
--- a/pkgs/games/shattered-pixel-dungeon/shorter-pixel-dungeon.nix
+++ b/pkgs/games/shattered-pixel-dungeon/shorter-pixel-dungeon.nix
@@ -4,13 +4,13 @@
 
 callPackage ./generic.nix rec {
   pname = "shorter-pixel-dungeon";
-  version = "1.3.0";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "TrashboxBobylev";
     repo = "Shorter-Pixel-Dungeon";
     rev = "Short-${version}";
-    hash = "sha256-dfBFAXlMjazTjvvRZ87H48OmitZuHhaa3qUF81pF4wc=";
+    hash = "sha256-iG90T/Ho8/JY3HgkACiBnGdbUGsVRlfxXbcNFHhzZi4=";
   };
 
   postPatch = ''
@@ -18,7 +18,7 @@ callPackage ./generic.nix rec {
       --replace-fail "gdxControllersVersion = '2.2.4-SNAPSHOT'" "gdxControllersVersion = '2.2.3'"
   '';
 
-  depsHash = "sha256-MUUeWZUCVPakK1MJwn0lPnjAlLpPWB/J17Ad68XRcHg=";
+  depsHash = "sha256-PyBEhlOOVD3/YH4SWs1yMkdg3U96znk1/VV6SAr8S30=";
 
   desktopName = "Shorter Pixel Dungeon";
 
diff --git a/pkgs/misc/seafile-shared/default.nix b/pkgs/misc/seafile-shared/default.nix
index 48e764b5f3e24..0f9457c9aaef4 100644
--- a/pkgs/misc/seafile-shared/default.nix
+++ b/pkgs/misc/seafile-shared/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "seafile-shared";
-  version = "9.0.5";
+  version = "9.0.6";
 
   src = fetchFromGitHub {
     owner = "haiwen";
     repo = "seafile";
     rev = "v${version}";
-    sha256 = "sha256-ENxmRnnQVwRm/3OXouM5Oj0fLVRSj0aOHJeVT627UdY=";
+    sha256 = "sha256-ig22Rw9VWPqOsJS1Wxy69OjdMRcxh2fOyqMHBEky/Uo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix
index 84090cba867e1..c9bf296160629 100644
--- a/pkgs/os-specific/linux/kernel/common-config.nix
+++ b/pkgs/os-specific/linux/kernel/common-config.nix
@@ -441,7 +441,8 @@ let
       # (stable) amdgpu support for bonaire and newer chipsets
       DRM_AMDGPU_CIK = yes;
       # Allow device firmware updates
-      DRM_DP_AUX_CHARDEV = yes;
+      DRM_DP_AUX_CHARDEV = whenOlder "6.10" yes;
+      DRM_DISPLAY_DP_AUX_CHARDEV = whenAtLeast "6.10" yes;
       # amdgpu display core (DC) support
       DRM_AMD_DC_DCN1_0 = whenOlder "5.6" yes;
       DRM_AMD_DC_DCN2_0 = whenBetween "5.3" "5.6" yes;
@@ -470,7 +471,8 @@ let
       MEDIA_CEC_RC = whenAtLeast "5.10" yes;
 
       # Enable CEC over DisplayPort
-      DRM_DP_CEC = yes;
+      DRM_DP_CEC = whenOlder "6.10" yes;
+      DRM_DISPLAY_DP_AUX_CEC = whenAtLeast "6.10" yes;
     } // optionalAttrs (stdenv.hostPlatform.system == "x86_64-linux") {
       # Intel GVT-g graphics virtualization supports 64-bit only
       DRM_I915_GVT = yes;
@@ -927,8 +929,10 @@ let
       # i686 issues: https://github.com/NixOS/nixpkgs/pull/117961#issuecomment-812106375
       useZstd = stdenv.buildPlatform.is64bit && versionAtLeast version "5.9";
     in {
-      KERNEL_XZ            = mkIf (!useZstd) yes;
-      KERNEL_ZSTD          = mkIf useZstd yes;
+      # stdenv.hostPlatform.linux-kernel.target assumes uncompressed on RISC-V.
+      KERNEL_UNCOMPRESSED  = mkIf stdenv.hostPlatform.isRiscV yes;
+      KERNEL_XZ            = mkIf (!stdenv.hostPlatform.isRiscV && !useZstd) yes;
+      KERNEL_ZSTD          = mkIf (!stdenv.hostPlatform.isRiscV && useZstd) yes;
 
       HID_BATTERY_STRENGTH = yes;
       # enabled by default in x86_64 but not arm64, so we do that here
diff --git a/pkgs/os-specific/linux/kernel/hardened/patches.json b/pkgs/os-specific/linux/kernel/hardened/patches.json
index b59451611e4a3..62f1fcdda20c6 100644
--- a/pkgs/os-specific/linux/kernel/hardened/patches.json
+++ b/pkgs/os-specific/linux/kernel/hardened/patches.json
@@ -2,81 +2,81 @@
     "4.19": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-4.19.314-hardened1.patch",
-            "sha256": "18k8rvcfqjdrjv4a8lbfxdi5nipn0widarncxgmbaykc2x37q4vr",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.19.314-hardened1/linux-hardened-4.19.314-hardened1.patch"
+            "name": "linux-hardened-4.19.315-hardened1.patch",
+            "sha256": "1w17mwsv618pw5bkahmz6in0i5zjjxd3d14gggafqdd3dgfr1h8q",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.19.315-hardened1/linux-hardened-4.19.315-hardened1.patch"
         },
-        "sha256": "0nvrpg5aj2q4h2drmczprqaprcc2zhcrijfri77b830ms8rg4y2a",
-        "version": "4.19.314"
+        "sha256": "1j1j8awy0237jp2r211qpa305c10y7rlcbkxkzdvzbgyhwy4spkc",
+        "version": "4.19.315"
     },
     "5.10": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-5.10.217-hardened1.patch",
-            "sha256": "1isql7dsky91kp856gcwczzd4vwyfi0xxdgv7s0987v4p6ih3gbz",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.10.217-hardened1/linux-hardened-5.10.217-hardened1.patch"
+            "name": "linux-hardened-5.10.218-hardened1.patch",
+            "sha256": "1ah4pznha17ngg3w7l0j74h4910gjv8qj503adrap7plvapf82m4",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.10.218-hardened1/linux-hardened-5.10.218-hardened1.patch"
         },
-        "sha256": "0qhzqrjci45vcbzjch7vq75i6hpyap6yb7jw6g71phcnqgzw2ay5",
-        "version": "5.10.217"
+        "sha256": "1mmj5hwm5i16gc1y4nzr1cs882vi6vrihrincdcivv63x11v4dlw",
+        "version": "5.10.218"
     },
     "5.15": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-5.15.159-hardened1.patch",
-            "sha256": "1dscwbzjajb2wph0m0kijhagmclg5jz614mgah98nkj9b4sbgzli",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.15.159-hardened1/linux-hardened-5.15.159-hardened1.patch"
+            "name": "linux-hardened-5.15.160-hardened1.patch",
+            "sha256": "1r10ylx886rslsmrixlijjm4crhwzkl3wj6kpyn2344qik1gxpqr",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.15.160-hardened1/linux-hardened-5.15.160-hardened1.patch"
         },
-        "sha256": "1ia1nfci2wkx4nhnldfczpcq47mp7y7g657ikkh8i72y498gwy1l",
-        "version": "5.15.159"
+        "sha256": "018v19a7rhzc4szybzzn86jlnk42x7jm6xkadfd2d3xq6f7727pl",
+        "version": "5.15.160"
     },
     "5.4": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-5.4.276-hardened1.patch",
-            "sha256": "1hhy6jhq1h5v69319cjz5vidaqm4paiqvb62rairsdbabd2ycgvl",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.4.276-hardened1/linux-hardened-5.4.276-hardened1.patch"
+            "name": "linux-hardened-5.4.277-hardened1.patch",
+            "sha256": "1zjw5wl8lj69j402qm8dg3m4dxgq3ppx2jyz8jks976vyhh8fsg4",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.4.277-hardened1/linux-hardened-5.4.277-hardened1.patch"
         },
-        "sha256": "01vfx19n8rv9fgjjzvi78125md71zgn5jrinbarabzr18jyjwwg2",
-        "version": "5.4.276"
+        "sha256": "0l8zq3k07hdprfpvw69ykkf2pdg8wiv28xz733yxsjcfb0l5n7vy",
+        "version": "5.4.277"
     },
     "6.1": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-6.1.91-hardened1.patch",
-            "sha256": "0rsrsrzjwiwkhr0hhcf1h56g5a0ymwl4h20452s2h7jvh2l8gi6j",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/6.1.91-hardened1/linux-hardened-6.1.91-hardened1.patch"
+            "name": "linux-hardened-6.1.92-hardened1.patch",
+            "sha256": "0cw87ygmisi823y3f7xrck12b6zh3mq1qmb7lcmr3hg6w3xskmn3",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/6.1.92-hardened1/linux-hardened-6.1.92-hardened1.patch"
         },
-        "sha256": "1v2d5syxwwqlhvjzxk003qz9sr18r0n8dgg976vbi492r9iww2l8",
-        "version": "6.1.91"
+        "sha256": "1j9n8gk76nn4gw42iba5zgghr360gb9n1mslr5dyv76wpwkz86ch",
+        "version": "6.1.92"
     },
     "6.6": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-6.6.31-hardened1.patch",
-            "sha256": "1asn2q825ffinx59czidhs8fhj31mw5sin7bd11jg2z5n6xi3a08",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/6.6.31-hardened1/linux-hardened-6.6.31-hardened1.patch"
+            "name": "linux-hardened-6.6.32-hardened1.patch",
+            "sha256": "19362a6lxs3cnaw19jvda7n791y95lfgn9ki4wmaxnw2qbpi0bgg",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/6.6.32-hardened1/linux-hardened-6.6.32-hardened1.patch"
         },
-        "sha256": "080wwrc231fbf43hvvygddmdxdspyw23jc5vnd6fr5ccdybgzv6n",
-        "version": "6.6.31"
+        "sha256": "1qbc8dqmk2xs1cz968rysw5xvhq3lj8g0pxp48fr2qbzy3m29a5a",
+        "version": "6.6.32"
     },
     "6.8": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-6.8.10-hardened1.patch",
-            "sha256": "0671ylf01gsgbgxd1baswj0h6hwgxxkgrvd03qh81kp3pmr2bpb3",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/6.8.10-hardened1/linux-hardened-6.8.10-hardened1.patch"
+            "name": "linux-hardened-6.8.11-hardened1.patch",
+            "sha256": "08i03dmri9h6jxcjd9g6s7pv0spqi3f4fgch1ars68cgngikvbpq",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/6.8.11-hardened1/linux-hardened-6.8.11-hardened1.patch"
         },
-        "sha256": "0xjirg2w5fc2w2q6wr702akszq32m31lk4q5nbjq10zqhbcr5fxh",
-        "version": "6.8.10"
+        "sha256": "1di8kr596sf68sm61kp5rz6bn3sb0q5ag1qc5hm8f9dpyq4wv3dp",
+        "version": "6.8.11"
     },
     "6.9": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-6.9.1-hardened1.patch",
-            "sha256": "1zp0qwri43v4h234x1vqbwcbd50hryshi7i717xandzkpxvq72l2",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/6.9.1-hardened1/linux-hardened-6.9.1-hardened1.patch"
+            "name": "linux-hardened-6.9.2-hardened1.patch",
+            "sha256": "0ph1m0pnlqrhvddz2mjgcwvs0ddcpzigz8kgi9zi063qinlfbm3q",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/6.9.2-hardened1/linux-hardened-6.9.2-hardened1.patch"
         },
-        "sha256": "0jn0qp22vx7xf2mgaj7cwf8agqhahvrwlda4ak6rw67xk2x19d01",
-        "version": "6.9.1"
+        "sha256": "1yg5j284y1gz7zwxjz2abvlnas259m1y1vzd9lmcqqar5kgmnv6l",
+        "version": "6.9.2"
     }
 }
diff --git a/pkgs/os-specific/linux/kernel/kernels-org.json b/pkgs/os-specific/linux/kernel/kernels-org.json
index 4ca1161c46d28..2d6bf9b33baec 100644
--- a/pkgs/os-specific/linux/kernel/kernels-org.json
+++ b/pkgs/os-specific/linux/kernel/kernels-org.json
@@ -1,7 +1,7 @@
 {
     "testing": {
-        "version": "6.9-rc6",
-        "hash": "sha256:075l5vhk8zmwln4jks7gr5n5k67s65qvs07l2rpbc7a75fdp6c14"
+        "version": "6.10-rc1",
+        "hash": "sha256:006frl76cwi9a4mw7x6vsyazgrjfiz1gn4q4hvpykqql5mar3a05"
     },
     "6.1": {
         "version": "6.1.92",
diff --git a/pkgs/os-specific/linux/kernel/linux-libre.nix b/pkgs/os-specific/linux/kernel/linux-libre.nix
index 3ee93bb04e067..4bb2ebda3d028 100644
--- a/pkgs/os-specific/linux/kernel/linux-libre.nix
+++ b/pkgs/os-specific/linux/kernel/linux-libre.nix
@@ -1,8 +1,8 @@
 { stdenv, lib, fetchsvn, linux
 , scripts ? fetchsvn {
     url = "https://www.fsfla.org/svn/fsfla/software/linux-libre/releases/branches/";
-    rev = "19569";
-    sha256 = "0nm3vzzfwx3g8scgwyszjbf7sa08kwd1xyq4v1m5py63pma7p80r";
+    rev = "19575";
+    sha256 = "1f826x8a6nmqcjcplg5x4rcqkr3p886abxhyqir8a102ymnh7wkw";
   }
 , ...
 }:
diff --git a/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix b/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix
index e19b0699a33fe..d2cc98b8159dc 100644
--- a/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix
+++ b/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix
@@ -6,7 +6,7 @@
 , ... } @ args:
 
 let
-  version = "5.10.216-rt108"; # updated by ./update-rt.sh
+  version = "5.10.217-rt109"; # updated by ./update-rt.sh
   branch = lib.versions.majorMinor version;
   kversion = builtins.elemAt (lib.splitString "-" version) 0;
 in buildLinux (args // {
@@ -17,14 +17,14 @@ in buildLinux (args // {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${kversion}.tar.xz";
-    sha256 = "0lg1zfb9y4ps86q85mlnyalb3s90zix003z62jb9bw139f65h473";
+    sha256 = "0qhzqrjci45vcbzjch7vq75i6hpyap6yb7jw6g71phcnqgzw2ay5";
   };
 
   kernelPatches = let rt-patch = {
     name = "rt";
     patch = fetchurl {
       url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz";
-      sha256 = "0p0qmyz3g7fqlz4f638dlcp37az8lpq5yqw2fy5zqqs3qagy018j";
+      sha256 = "1cszl9414vbycswx2gjv12wdghhw5s6amd9mjmx619r2a1r0gnb7";
     };
   }; in [ rt-patch ] ++ kernelPatches;
 
diff --git a/pkgs/os-specific/linux/kernel/linux-rt-6.1.nix b/pkgs/os-specific/linux/kernel/linux-rt-6.1.nix
index 5c185e9a2d72c..f7f21a71263bd 100644
--- a/pkgs/os-specific/linux/kernel/linux-rt-6.1.nix
+++ b/pkgs/os-specific/linux/kernel/linux-rt-6.1.nix
@@ -6,7 +6,7 @@
 , ... } @ args:
 
 let
-  version = "6.1.91-rt31"; # updated by ./update-rt.sh
+  version = "6.1.92-rt32"; # updated by ./update-rt.sh
   branch = lib.versions.majorMinor version;
   kversion = builtins.elemAt (lib.splitString "-" version) 0;
 in buildLinux (args // {
@@ -18,14 +18,14 @@ in buildLinux (args // {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v6.x/linux-${kversion}.tar.xz";
-    sha256 = "1v2d5syxwwqlhvjzxk003qz9sr18r0n8dgg976vbi492r9iww2l8";
+    sha256 = "1j9n8gk76nn4gw42iba5zgghr360gb9n1mslr5dyv76wpwkz86ch";
   };
 
   kernelPatches = let rt-patch = {
     name = "rt";
     patch = fetchurl {
       url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz";
-      sha256 = "1p8i0rv4vzm1h50g08mm7a5zbxyaibqs2894nwvalhb4dfj1vas7";
+      sha256 = "00qa6l4jvkdny276jnwnra5dkagnp3qr43amf2mpqx3kdfw28g1q";
     };
   }; in [ rt-patch ] ++ kernelPatches;
 
diff --git a/pkgs/os-specific/linux/kernel/linux-rt-6.6.nix b/pkgs/os-specific/linux/kernel/linux-rt-6.6.nix
index fa3fe59c134be..2f035b259b602 100644
--- a/pkgs/os-specific/linux/kernel/linux-rt-6.6.nix
+++ b/pkgs/os-specific/linux/kernel/linux-rt-6.6.nix
@@ -6,7 +6,7 @@
 , ... } @ args:
 
 let
-  version = "6.6.31-rt31"; # updated by ./update-rt.sh
+  version = "6.6.32-rt32"; # updated by ./update-rt.sh
   branch = lib.versions.majorMinor version;
   kversion = builtins.elemAt (lib.splitString "-" version) 0;
 in buildLinux (args // {
@@ -18,14 +18,14 @@ in buildLinux (args // {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v6.x/linux-${kversion}.tar.xz";
-    sha256 = "080wwrc231fbf43hvvygddmdxdspyw23jc5vnd6fr5ccdybgzv6n";
+    sha256 = "1qbc8dqmk2xs1cz968rysw5xvhq3lj8g0pxp48fr2qbzy3m29a5a";
   };
 
   kernelPatches = let rt-patch = {
     name = "rt";
     patch = fetchurl {
       url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz";
-      sha256 = "0pj4j420ac9khw7wk6k3bcgdvcmi7p3lwycaa896q2fscz47zf01";
+      sha256 = "0hv2z6d2gw7hqfzw6dgrzxlirk4yifcxbmx71hxlvd9l2vgp72q5";
     };
   }; in [ rt-patch ] ++ kernelPatches;
 
diff --git a/pkgs/os-specific/linux/kernel/zen-kernels.nix b/pkgs/os-specific/linux/kernel/zen-kernels.nix
index 0482cbbc09c59..89c776e611e5c 100644
--- a/pkgs/os-specific/linux/kernel/zen-kernels.nix
+++ b/pkgs/os-specific/linux/kernel/zen-kernels.nix
@@ -4,16 +4,16 @@ let
   # comments with variant added for update script
   # ./update-zen.py zen
   zenVariant = {
-    version = "6.9.1"; #zen
+    version = "6.9.2"; #zen
     suffix = "zen1"; #zen
-    sha256 = "1a6jqi474kf3353nx927wj5yqx6pcr3nz9qzrpb1vlrq9mwr7jls"; #zen
+    sha256 = "1fsmpryk7an6xqppvilcf3bmxs41mqpc3v4f4c81jgrikg21gxbb"; #zen
     isLqx = false;
   };
   # ./update-zen.py lqx
   lqxVariant = {
-    version = "6.8.10"; #lqx
+    version = "6.8.11"; #lqx
     suffix = "lqx1"; #lqx
-    sha256 = "1j1n3r497wfdpichp38wqcg7sps3nymchdx41i7gq5nlnfwk290q"; #lqx
+    sha256 = "1dj4znir4wp6jqs680dcxn8z6p02d518993rmrx54ch04jyy5brj"; #lqx
     isLqx = true;
   };
   zenKernelsFor = { version, suffix, sha256, isLqx }: buildLinux (args // {
diff --git a/pkgs/os-specific/linux/lttng-modules/default.nix b/pkgs/os-specific/linux/lttng-modules/default.nix
index 89b49068d40c1..cfb38f0983cea 100644
--- a/pkgs/os-specific/linux/lttng-modules/default.nix
+++ b/pkgs/os-specific/linux/lttng-modules/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lttng-modules-${kernel.version}";
-  version = "2.13.10";
+  version = "2.13.13";
 
   src = fetchFromGitHub {
     owner = "lttng";
     repo = "lttng-modules";
     rev = "v${version}";
-    hash = "sha256-R5qwB1ayw0KueMBSSxm0TwINt78N6w356kY7WGBX0zM=";
+    hash = "sha256-iA3B838EUU5rFWCL8BAubkTrTO1itDFp5d1653OPnS0=";
   };
 
   nativeBuildInputs = kernel.moduleBuildDependencies;
diff --git a/pkgs/os-specific/linux/pcm/default.nix b/pkgs/os-specific/linux/pcm/default.nix
index e464d113e2f73..5c111952727de 100644
--- a/pkgs/os-specific/linux/pcm/default.nix
+++ b/pkgs/os-specific/linux/pcm/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pcm";
-  version = "202403";
+  version = "202405";
 
   src = fetchFromGitHub {
     owner = "opcm";
     repo = "pcm";
     rev = version;
-    hash = "sha256-qefqtuxRaQEsWpXNAuGxuIT3LiH2b8xQb54B0RkzKGA=";
+    hash = "sha256-yEe1lWbvafc3N3+K9WMMlIXVVX+fVO8QsuKdyIqiKAg=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/pkgs-lib/formats.nix b/pkgs/pkgs-lib/formats.nix
index 7cc0bf4f4e504..8fc808b2646f4 100644
--- a/pkgs/pkgs-lib/formats.nix
+++ b/pkgs/pkgs-lib/formats.nix
@@ -65,6 +65,7 @@ rec {
       nativeBuildInputs = [ jq ];
       value = builtins.toJSON value;
       passAsFile = [ "value" ];
+      preferLocalBuild = true;
     } ''
       jq . "$valuePath"> $out
     '') {};
@@ -77,6 +78,7 @@ rec {
       nativeBuildInputs = [ remarshal ];
       value = builtins.toJSON value;
       passAsFile = [ "value" ];
+      preferLocalBuild = true;
     } ''
       json2yaml "$valuePath" "$out"
     '') {};
@@ -270,6 +272,7 @@ rec {
       nativeBuildInputs = [ remarshal ];
       value = builtins.toJSON value;
       passAsFile = [ "value" ];
+      preferLocalBuild = true;
     } ''
       json2toml "$valuePath" "$out"
     '') {};
@@ -467,6 +470,7 @@ rec {
           value = toConf value;
           passAsFile = [ "value" ];
           nativeBuildInputs = [ elixir ];
+          preferLocalBuild = true;
         } ''
         cp "$valuePath" "$out"
         mix format "$out"
@@ -501,6 +505,7 @@ rec {
                 print(f"{key} = {repr(value)}")
       '';
       passAsFile = [ "value" "pythonGen" ];
+      preferLocalBuild = true;
     } ''
       cat "$valuePath"
       python3 "$pythonGenPath" > $out
diff --git a/pkgs/pkgs-lib/formats/hocon/default.nix b/pkgs/pkgs-lib/formats/hocon/default.nix
index 0ae9c569ed2b1..d7ff1e85bda63 100644
--- a/pkgs/pkgs-lib/formats/hocon/default.nix
+++ b/pkgs/pkgs-lib/formats/hocon/default.nix
@@ -153,6 +153,7 @@ in
           inherit name;
 
           dontUnpack = true;
+          preferLocalBuild = true;
 
           json = builtins.toJSON finalValue;
           passAsFile = [ "json" ];
diff --git a/pkgs/pkgs-lib/formats/java-properties/default.nix b/pkgs/pkgs-lib/formats/java-properties/default.nix
index d3a4761f0f803..50eabb8cf3f31 100644
--- a/pkgs/pkgs-lib/formats/java-properties/default.nix
+++ b/pkgs/pkgs-lib/formats/java-properties/default.nix
@@ -46,7 +46,7 @@ in
       in attrsOf elemType;
 
     generate = name: value:
-      pkgs.runCommandLocal name
+      pkgs.runCommand name
         {
           # Requirements
           # ============
@@ -80,6 +80,7 @@ in
           #    libraries, but we can't rely on this in
           #    general.
 
+          preferLocalBuild = true;
           passAsFile = [ "value" ];
           value = builtins.toJSON value;
           nativeBuildInputs = [
diff --git a/pkgs/pkgs-lib/formats/libconfig/default.nix b/pkgs/pkgs-lib/formats/libconfig/default.nix
index 7433a72853533..5687ab8c00578 100644
--- a/pkgs/pkgs-lib/formats/libconfig/default.nix
+++ b/pkgs/pkgs-lib/formats/libconfig/default.nix
@@ -85,6 +85,7 @@ in
           inherit name;
 
           dontUnpack = true;
+          preferLocalBuild = true;
 
           json = builtins.toJSON value;
           passAsFile = [ "json" ];
diff --git a/pkgs/servers/adguardhome/bins.nix b/pkgs/servers/adguardhome/bins.nix
index e854a32266725..f683fd2583576 100644
--- a/pkgs/servers/adguardhome/bins.nix
+++ b/pkgs/servers/adguardhome/bins.nix
@@ -1,31 +1,31 @@
 { fetchurl, fetchzip }:
 {
 x86_64-darwin = fetchzip {
-  sha256 = "sha256-97o4rMNwikQZR3DPhhE+OPlY3gA9HqCQxBf+mZSfDMs=";
-  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.48/AdGuardHome_darwin_amd64.zip";
+  sha256 = "sha256-T5iD2Ojo+/125NeEhy911kitypLNcyJq9JPnPd/91HE=";
+  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.50/AdGuardHome_darwin_amd64.zip";
 };
 aarch64-darwin = fetchzip {
-  sha256 = "sha256-ZTGqn6xM9vRHmw2ask5P4vu+5BqkWfGS3ROzTN9VfXM=";
-  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.48/AdGuardHome_darwin_arm64.zip";
+  sha256 = "sha256-cge+z/oAiRcbZXijm6FDP7C5L7jLoi/QCr4unYoN+jQ=";
+  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.50/AdGuardHome_darwin_arm64.zip";
 };
 i686-linux = fetchurl {
-  sha256 = "sha256-EbRiiThZsmBD/grtm58Su78OeF/6buwMbx6eBsusgII=";
-  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.48/AdGuardHome_linux_386.tar.gz";
+  sha256 = "sha256-PHUUqWL3ILlQutWqUyd9jGi80lC/PQPInFQa66sx3CI=";
+  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.50/AdGuardHome_linux_386.tar.gz";
 };
 x86_64-linux = fetchurl {
-  sha256 = "sha256-FUnQJ3RRtsWz4DIO8Zi9Y6dO130qTdwj6RhJ6RNpljc=";
-  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.48/AdGuardHome_linux_amd64.tar.gz";
+  sha256 = "sha256-krxAIJSQrvZrXsAfFZOr/ons4mSKnaQ+fIdHULKcvyA=";
+  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.50/AdGuardHome_linux_amd64.tar.gz";
 };
 aarch64-linux = fetchurl {
-  sha256 = "sha256-OZDryRiwyM6XgoiOhCsM6AFOE9masnGu2m6sDRUAaeY=";
-  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.48/AdGuardHome_linux_arm64.tar.gz";
+  sha256 = "sha256-JDGOE+tdRo6De7+zQK8hKNu7YwJKphm2/PY8jfaE8QE=";
+  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.50/AdGuardHome_linux_arm64.tar.gz";
 };
 armv6l-linux = fetchurl {
-  sha256 = "sha256-aL/wKQ9lbPgaTGCjZAph5iggSTJB1+Rrxbpf6IVgjuU=";
-  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.48/AdGuardHome_linux_armv6.tar.gz";
+  sha256 = "sha256-yDtOpbfuiI0kt4XSLZvwf5Uvai2N0zpJhg6kKxyyM+8=";
+  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.50/AdGuardHome_linux_armv6.tar.gz";
 };
 armv7l-linux = fetchurl {
-  sha256 = "sha256-siWf7frIciYGVP7KgqS4Dr7o52y3QqGYvQlxtw2HnEo=";
-  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.48/AdGuardHome_linux_armv7.tar.gz";
+  sha256 = "sha256-UvuWyrinTozuc+SEc7twUhYbYUCUc6cG66sqmUS01nk=";
+  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.50/AdGuardHome_linux_armv7.tar.gz";
 };
 }
diff --git a/pkgs/servers/adguardhome/default.nix b/pkgs/servers/adguardhome/default.nix
index 88163d9935974..a226ee78733ad 100644
--- a/pkgs/servers/adguardhome/default.nix
+++ b/pkgs/servers/adguardhome/default.nix
@@ -7,7 +7,7 @@ in
 
 stdenv.mkDerivation rec {
   pname = "adguardhome";
-  version = "0.107.48";
+  version = "0.107.50";
   src = sources.${system} or (throw "Source for ${pname} is not available for ${system}");
 
   installPhase = ''
diff --git a/pkgs/servers/apcupsd/default.nix b/pkgs/servers/apcupsd/default.nix
index c5db5289c5a48..eeecfa2f0ec48 100644
--- a/pkgs/servers/apcupsd/default.nix
+++ b/pkgs/servers/apcupsd/default.nix
@@ -61,7 +61,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Daemon for controlling APC UPSes";
     homepage = "http://www.apcupsd.com/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     platforms = platforms.linux;
     maintainers = [ maintainers.bjornfor ];
   };
diff --git a/pkgs/servers/brickd/default.nix b/pkgs/servers/brickd/default.nix
index 590f6f315fe81..484d6cbaa5f2e 100644
--- a/pkgs/servers/brickd/default.nix
+++ b/pkgs/servers/brickd/default.nix
@@ -57,7 +57,7 @@ stdenv.mkDerivation {
     homepage = "https://www.tinkerforge.com/";
     description = "A daemon (or service on Windows) that acts as a bridge between the Bricks/Bricklets and the API bindings for the different programming languages";
     maintainers = [ lib.maintainers.qknight ];
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.all;
     mainProgram = "brickd";
   };
diff --git a/pkgs/servers/dns/dnsdist/default.nix b/pkgs/servers/dns/dnsdist/default.nix
index 98a1bf7cc8c8c..e3afc6c8956d0 100644
--- a/pkgs/servers/dns/dnsdist/default.nix
+++ b/pkgs/servers/dns/dnsdist/default.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
     description = "DNS Loadbalancer";
     mainProgram = "dnsdist";
     homepage = "https://dnsdist.org";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     maintainers = with maintainers; [ jojosch ];
   };
 }
diff --git a/pkgs/servers/dns/pdns/default.nix b/pkgs/servers/dns/pdns/default.nix
index d4c664802aa33..dfa4a3e617328 100644
--- a/pkgs/servers/dns/pdns/default.nix
+++ b/pkgs/servers/dns/pdns/default.nix
@@ -97,7 +97,7 @@ stdenv.mkDerivation (finalAttrs: {
     homepage = "https://www.powerdns.com";
     platforms = platforms.unix;
     broken = stdenv.isDarwin;
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     maintainers = with maintainers; [ mic92 disassembler nickcao ];
   };
 })
diff --git a/pkgs/servers/freeradius/default.nix b/pkgs/servers/freeradius/default.nix
index 7dfd0ceb8c473..36d16fda4fb4f 100644
--- a/pkgs/servers/freeradius/default.nix
+++ b/pkgs/servers/freeradius/default.nix
@@ -76,7 +76,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://freeradius.org/";
     description = "A modular, high performance free RADIUS suite";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ sheenobu willibutz lheckemann ];
     platforms = with platforms; linux;
   };
diff --git a/pkgs/servers/ftp/vsftpd/default.nix b/pkgs/servers/ftp/vsftpd/default.nix
index 133fe17ec088c..da9b76526fa1f 100644
--- a/pkgs/servers/ftp/vsftpd/default.nix
+++ b/pkgs/servers/ftp/vsftpd/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A very secure FTP daemon";
     mainProgram = "vsftpd";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     maintainers = with maintainers; [ peterhoeg ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/servers/gopher/gofish/default.nix b/pkgs/servers/gopher/gofish/default.nix
index d346c1372997b..04613fd6e170a 100644
--- a/pkgs/servers/gopher/gofish/default.nix
+++ b/pkgs/servers/gopher/gofish/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A lightweight Gopher server";
     homepage = "https://gofish.sourceforge.net/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = [ maintainers.AndersonTorres ];
     platforms = platforms.unix;
   };
diff --git a/pkgs/servers/gpm/default.nix b/pkgs/servers/gpm/default.nix
index 1c083b8d21560..4ce3843181613 100644
--- a/pkgs/servers/gpm/default.nix
+++ b/pkgs/servers/gpm/default.nix
@@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.nico.schottelius.org/software/gpm/";
     description = "A daemon that provides mouse support on the Linux console";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.linux ++ platforms.cygwin;
     maintainers = with maintainers; [ eelco ];
   };
diff --git a/pkgs/servers/headphones/default.nix b/pkgs/servers/headphones/default.nix
index 704268c24257e..fa33d16961fe2 100644
--- a/pkgs/servers/headphones/default.nix
+++ b/pkgs/servers/headphones/default.nix
@@ -2,14 +2,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "headphones";
-  version = "0.6.1";
+  version = "0.6.3";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "rembo10";
     repo = "headphones";
     rev = "v${version}";
-    sha256 = "1pj6xrcc6g336lb2knlc9l3qxgj3jaaymnbd7bmfjahgq5cp4d4v";
+    sha256 = "195v0ylhqd49bqq3dpig5nh0kivmwgmn0977fknix9j14jpvmd3b";
   };
 
   dontBuild = true;
diff --git a/pkgs/servers/home-assistant/custom-lovelace-modules/android-tv-card/default.nix b/pkgs/servers/home-assistant/custom-lovelace-modules/android-tv-card/default.nix
index 54186a99ab2da..bf98c9a9438ae 100644
--- a/pkgs/servers/home-assistant/custom-lovelace-modules/android-tv-card/default.nix
+++ b/pkgs/servers/home-assistant/custom-lovelace-modules/android-tv-card/default.nix
@@ -5,18 +5,18 @@
 
 buildNpmPackage rec {
   pname = "android-tv-card";
-  version = "3.7.3";
+  version = "3.7.4";
 
   src = fetchFromGitHub {
     owner = "Nerwyn";
     repo = "android-tv-card";
     rev = version;
-    hash = "sha256-uhdo4K5JqKogQGKr0dkFl579YeAQNbhOwHAFTLpqY6Y=";
+    hash = "sha256-5GdN6zCE24kGLM4ka8vHdpIEWTQAzve/1l3+5OV95i0=";
   };
 
   patches = [ ./dont-call-git.patch ];
 
-  npmDepsHash = "sha256-wrmj4lewxBnWVlpkb/AP3lfuGNcvYGf+HWBQw7bcr1Q=";
+  npmDepsHash = "sha256-fVnqGe/ao0Ilk/mWbHGscYQlIIk3K0mpm1wS4F8Lio4=";
 
   installPhase = ''
     runHook preInstall
diff --git a/pkgs/servers/home-assistant/stubs.nix b/pkgs/servers/home-assistant/stubs.nix
index 6587cda515dc6..dd7cc66e01e86 100644
--- a/pkgs/servers/home-assistant/stubs.nix
+++ b/pkgs/servers/home-assistant/stubs.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "homeassistant-stubs";
-  version = "2024.5.4";
+  version = "2024.5.5";
   format = "pyproject";
 
   disabled = python.version != home-assistant.python.version;
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "KapJI";
     repo = "homeassistant-stubs";
     rev = "refs/tags/${version}";
-    hash = "sha256-wW3qRXdT3FmAj5bOBzBmrD97o/pONowi7F0Cbj6ndLg=";
+    hash = "sha256-lZuP6DL9nuc5md2vDVGucOE8MrQOg7QHx5vYPuvFw50=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/servers/http/angie/default.nix b/pkgs/servers/http/angie/default.nix
index 4c447f2b8c75c..f57dc2e012bd9 100644
--- a/pkgs/servers/http/angie/default.nix
+++ b/pkgs/servers/http/angie/default.nix
@@ -3,6 +3,7 @@
 , lib
 , fetchurl
 , nixosTests
+, withAcme ? false
 , withQuic ? false
 , fetchpatch
 , ...
@@ -17,7 +18,10 @@ callPackage ../nginx/generic.nix args rec {
     hash = "sha256-pSBy+Gv3rSa0WqQOxLHM0V03/vLqvOYBGxrjY9qsBfQ=";
   };
 
-  configureFlags = lib.optional withQuic [
+  configureFlags = lib.optionals withAcme [
+    "--with-http_acme_module"
+    "--http-acme-client-path=/var/lib/nginx/acme"
+  ] ++ lib.optionals withQuic [
     "--with-http_v3_module"
   ];
 
diff --git a/pkgs/servers/http/apache-modules/mod_tile/default.nix b/pkgs/servers/http/apache-modules/mod_tile/default.nix
index f97ae6269011d..cd3937fe1fa62 100644
--- a/pkgs/servers/http/apache-modules/mod_tile/default.nix
+++ b/pkgs/servers/http/apache-modules/mod_tile/default.nix
@@ -70,7 +70,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/openstreetmap/mod_tile";
     description = "Efficiently render and serve OpenStreetMap tiles using Apache and Mapnik";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ jglukasik ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/servers/http/gatling/default.nix b/pkgs/servers/http/gatling/default.nix
index 1474232bd6243..5efd3b039c9f4 100644
--- a/pkgs/servers/http/gatling/default.nix
+++ b/pkgs/servers/http/gatling/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A high performance web server";
     homepage = "http://www.fefe.de/gatling/";
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Only;
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/servers/http/hiawatha/default.nix b/pkgs/servers/http/hiawatha/default.nix
index d92d5d51a4f8e..55414800361c6 100644
--- a/pkgs/servers/http/hiawatha/default.nix
+++ b/pkgs/servers/http/hiawatha/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.hiawatha-webserver.org";
     description = "An advanced and secure webserver";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     platforms = platforms.unix;    # "Hiawatha runs perfectly on Linux, BSD and MacOS X"
     maintainers = [];
   };
diff --git a/pkgs/servers/http/lwan/default.nix b/pkgs/servers/http/lwan/default.nix
index bc155d353b9fe..14346530571ec 100644
--- a/pkgs/servers/http/lwan/default.nix
+++ b/pkgs/servers/http/lwan/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
       support.
     ";
     homepage = "https://lwan.ws/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ leenaars ];
   };
diff --git a/pkgs/servers/http/nginx/generic.nix b/pkgs/servers/http/nginx/generic.nix
index 67e84f08448e4..bc97c4972be76 100644
--- a/pkgs/servers/http/nginx/generic.nix
+++ b/pkgs/servers/http/nginx/generic.nix
@@ -4,6 +4,8 @@ outer@{ lib, stdenv, fetchurl, fetchpatch, openssl, zlib, pcre, libxml2, libxslt
 , nixosTests
 , installShellFiles, substituteAll, removeReferencesTo, gd, geoip, perl
 , withDebug ? false
+, withGeoIP ? false
+, withImageFilter ? false
 , withKTLS ? true
 , withStream ? true
 , withMail ? false
@@ -64,9 +66,11 @@ stdenv.mkDerivation {
     removeReferencesTo
   ] ++ nativeBuildInputs;
 
-  buildInputs = [ openssl zlib pcre libxml2 libxslt gd geoip perl ]
+  buildInputs = [ openssl zlib pcre libxml2 libxslt perl ]
     ++ buildInputs
-    ++ mapModules "inputs";
+    ++ mapModules "inputs"
+    ++ lib.optional withGeoIP geoip
+    ++ lib.optional withImageFilter gd;
 
   configureFlags = [
     "--sbin-path=bin/nginx"
@@ -112,10 +116,9 @@ stdenv.mkDerivation {
     "--with-http_perl_module"
     "--with-perl=${perl}/bin/perl"
     "--with-perl_modules_path=lib/perl5"
-  ] ++ lib.optional withSlice "--with-http_slice_module"
-    ++ lib.optional (gd != null) "--with-http_image_filter_module"
-    ++ lib.optional (geoip != null) "--with-http_geoip_module"
-    ++ lib.optional (withStream && geoip != null) "--with-stream_geoip_module"
+  ] ++ lib.optional withImageFilter "--with-http_image_filter_module"
+    ++ lib.optional withSlice "--with-http_slice_module"
+    ++ lib.optionals withGeoIP ([ "--with-http_geoip_module" ] ++ lib.optional withStream "--with-stream_geoip_module")
     ++ lib.optional (with stdenv.hostPlatform; isLinux || isFreeBSD) "--with-file-aio"
     ++ configureFlags
     ++ map (mod: "--add-module=${mod.src}") modules;
diff --git a/pkgs/servers/http/webfs/default.nix b/pkgs/servers/http/webfs/default.nix
index 812f5a0d00f5a..e8552b4b57c38 100644
--- a/pkgs/servers/http/webfs/default.nix
+++ b/pkgs/servers/http/webfs/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "HTTP server for purely static content";
     homepage    = "http://linux.bytesex.org/misc/webfs.html";
-    license     = licenses.gpl2;
+    license     = licenses.gpl2Plus;
     platforms   = platforms.all;
     maintainers = with maintainers; [ zimbatm ];
     mainProgram = "webfsd";
diff --git a/pkgs/servers/icecast/default.nix b/pkgs/servers/icecast/default.nix
index de375bb51841f..488c96a52123f 100644
--- a/pkgs/servers/icecast/default.nix
+++ b/pkgs/servers/icecast/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
     '';
 
     homepage = "https://www.icecast.org";
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [ jcumming ];
     platforms = with lib.platforms; unix;
   };
diff --git a/pkgs/servers/icecream/default.nix b/pkgs/servers/icecream/default.nix
index e6691e29aa126..20c782e702382 100644
--- a/pkgs/servers/icecream/default.nix
+++ b/pkgs/servers/icecream/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Distributed compiler with a central scheduler to share build load";
     inherit (src.meta) homepage;
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ emantor ];
     platforms = with platforms; linux ++ darwin;
   };
diff --git a/pkgs/servers/identd/nullidentdmod/default.nix b/pkgs/servers/identd/nullidentdmod/default.nix
index c027e143b5031..7df6eac5fb0d6 100644
--- a/pkgs/servers/identd/nullidentdmod/default.nix
+++ b/pkgs/servers/identd/nullidentdmod/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Simple identd that just replies with a random string or customized userid";
     mainProgram = "nullidentdmod";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     homepage = "http://acidhub.click/NullidentdMod";
     maintainers = with maintainers; [ das_j ];
     platforms = platforms.linux; # Must be run by systemd
diff --git a/pkgs/servers/identd/oidentd/default.nix b/pkgs/servers/identd/oidentd/default.nix
index 510834ed282f7..4d3c03d90564e 100644
--- a/pkgs/servers/identd/oidentd/default.nix
+++ b/pkgs/servers/identd/oidentd/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     description = "Configurable Ident protocol server";
     mainProgram = "oidentd";
     homepage = "https://oidentd.janikrabe.com/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/servers/irc/charybdis/default.nix b/pkgs/servers/irc/charybdis/default.nix
index 37d5b299837d1..387914e8a6abd 100644
--- a/pkgs/servers/irc/charybdis/default.nix
+++ b/pkgs/servers/irc/charybdis/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "IRCv3 server designed to be highly scalable";
     homepage    = "https://github.com/charybdis-ircd/charybdis";
-    license     = licenses.gpl2;
+    license     = licenses.gpl2Plus;
     maintainers = with maintainers; [ lassulus ];
     platforms   = platforms.unix;
   };
diff --git a/pkgs/servers/irc/ngircd/default.nix b/pkgs/servers/irc/ngircd/default.nix
index caff85394f2ed..53afea069fea5 100644
--- a/pkgs/servers/irc/ngircd/default.nix
+++ b/pkgs/servers/irc/ngircd/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     description = "Next Generation IRC Daemon";
     mainProgram = "ngircd";
     homepage    = "https://ngircd.barton.de";
-    license     = lib.licenses.gpl2;
+    license     = lib.licenses.gpl2Plus;
     platforms   = lib.platforms.all;
   };
 }
diff --git a/pkgs/servers/jellyfin/default.nix b/pkgs/servers/jellyfin/default.nix
index ce59d31ce3031..b122231c1f285 100644
--- a/pkgs/servers/jellyfin/default.nix
+++ b/pkgs/servers/jellyfin/default.nix
@@ -1,30 +1,29 @@
-{ lib
-, fetchFromGitHub
-, nixosTests
-, stdenv
-, dotnetCorePackages
-, buildDotnetModule
-, ffmpeg
-, fontconfig
-, freetype
-, jellyfin-web
-, sqlite
+{
+  lib,
+  fetchFromGitHub,
+  nixosTests,
+  stdenv,
+  dotnetCorePackages,
+  buildDotnetModule,
+  ffmpeg,
+  fontconfig,
+  freetype,
+  jellyfin-web,
+  sqlite,
 }:
 
 buildDotnetModule rec {
   pname = "jellyfin";
-  version = "10.9.1"; # ensure that jellyfin-web has matching version
+  version = "10.9.3"; # ensure that jellyfin-web has matching version
 
   src = fetchFromGitHub {
     owner = "jellyfin";
     repo = "jellyfin";
     rev = "v${version}";
-    sha256 = "sha256-ZvXz4gnpYE9bMvOHbmLhqJLUomPmk1K9ysw+Wlsyhr4=";
+    sha256 = "sha256-gJMz2LfxC0JXqGYNKNz1zRbWZOH1UxbcoGtmdymZ/Oo=";
   };
 
-  propagatedBuildInputs = [
-    sqlite
-  ];
+  propagatedBuildInputs = [ sqlite ];
 
   projectFile = "Jellyfin.Server/Jellyfin.Server.csproj";
   executables = [ "jellyfin" ];
@@ -56,7 +55,12 @@ buildDotnetModule rec {
     homepage = "https://jellyfin.org/";
     # https://github.com/jellyfin/jellyfin/issues/610#issuecomment-537625510
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ nyanloutre minijackson purcell jojosch ];
+    maintainers = with maintainers; [
+      nyanloutre
+      minijackson
+      purcell
+      jojosch
+    ];
     mainProgram = "jellyfin";
     platforms = dotnet-runtime.meta.platforms;
   };
diff --git a/pkgs/servers/jellyfin/web.nix b/pkgs/servers/jellyfin/web.nix
index 73bae649e834d..f5d65ae059837 100644
--- a/pkgs/servers/jellyfin/web.nix
+++ b/pkgs/servers/jellyfin/web.nix
@@ -4,6 +4,7 @@
   overrideSDK,
   fetchFromGitHub,
   buildNpmPackage,
+  jellyfin,
   nix-update-script,
   pkg-config,
   xcbuild,
@@ -26,16 +27,18 @@ let
 in
 buildNpmPackage' rec {
   pname = "jellyfin-web";
-  version = "10.9.2";
+  version = "10.9.3";
 
-  src = fetchFromGitHub {
-    owner = "jellyfin";
-    repo = "jellyfin-web";
-    rev = "v${version}";
-    hash = "sha256-0MBVcMajRk+CR0nZ8Dtd3Mg4tKdLiHGs3AhI8BEqZyE=";
-  };
+  src =
+    assert version == jellyfin.version;
+    fetchFromGitHub {
+      owner = "jellyfin";
+      repo = "jellyfin-web";
+      rev = "v${version}";
+      hash = "sha256-duq2tilUDEzj7o3Nq3Ku5qVJm4XDqVmqkQQIK/dlTpE=";
+    };
 
-  npmDepsHash = "sha256-aN+EXHRXez26oS4Ad1d9HSBkwVKnvYQMJvJVypDCk+0=";
+  npmDepsHash = "sha256-nKA/mR1ug1yq4+jJGhWGtAL9Zsx3KjDPqt5rkCE4LFU=";
 
   npmBuildScript = [ "build:production" ];
 
diff --git a/pkgs/servers/klipper/default.nix b/pkgs/servers/klipper/default.nix
index cb8e81a6853c7..10732156ada41 100644
--- a/pkgs/servers/klipper/default.nix
+++ b/pkgs/servers/klipper/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "klipper";
-  version = "0.12.0-unstable-2024-05-16";
+  version = "0.12.0-unstable-2024-05-25";
 
   src = fetchFromGitHub {
     owner = "KevinOConnor";
     repo = "klipper";
-    rev = "b7f7b8a346388cc32d80b6e6f60e5fdb4cbd3ce6";
-    sha256 = "sha256-TkhDLy7H1U2tjLJikkOgP+2apRJtZe9EIsNHzzljiB4=";
+    rev = "3078912f1d9e063906b9b40eda73d63065900212";
+    sha256 = "sha256-DvGxsUJ24yfbSR8gNA6vBBSw72VIOr1R6mGXzcpQZ7I=";
   };
 
   sourceRoot = "${src.name}/klippy";
diff --git a/pkgs/servers/kwakd/default.nix b/pkgs/servers/kwakd/default.nix
index fc0cdc43831d5..297e16cc52187 100644
--- a/pkgs/servers/kwakd/default.nix
+++ b/pkgs/servers/kwakd/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     description = "A super small webserver that serves blank pages";
     mainProgram = "kwakd";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     maintainers = [ maintainers.nicknovitski ];
     platforms = platforms.unix;
   };
diff --git a/pkgs/servers/ldap/389/default.nix b/pkgs/servers/ldap/389/default.nix
index ce61f9676e188..c49f606c8fd7c 100644
--- a/pkgs/servers/ldap/389/default.nix
+++ b/pkgs/servers/ldap/389/default.nix
@@ -31,26 +31,35 @@
 , withSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd, systemd
 , zlib
 , rsync
+, fetchpatch
 , withCockpit ? true
 , withAsan ? false
 }:
 
 stdenv.mkDerivation rec {
   pname = "389-ds-base";
-  version = "2.4.3";
+  version = "2.4.5";
 
   src = fetchFromGitHub {
     owner = "389ds";
     repo = pname;
     rev = "${pname}-${version}";
-    hash = "sha256-bUjL1fjzyrq9jjpB/xbRCAISiPBwrlXbbDqT0aLOVOc=";
+    hash = "sha256-12JCd2R00L0T5EPUNO/Aw2HRID+z2krNQ09RSX9Qkj8=";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "fix-32bit.patch";
+      url = "https://github.com/389ds/389-ds-base/commit/1fe029c495cc9f069c989cfbb09d449a078c56e2.patch";
+      hash = "sha256-b0HSaDjuEUKERIXKg8np+lZDdZNmrCTAXybJzF+0hq0=";
+    })
+  ];
+
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     sourceRoot = "${src.name}/src";
     name = "${pname}-${version}";
-    hash = "sha256-FlrHaz1whwzDvm3MA+wEaQpq7h2X9ZDnQc3f73vLZ58=";
+    hash = "sha256-fE3bJROwti9Ru0jhCiWhXcuQdxXTqzN9yOd2nlhKABI=";
   };
 
   nativeBuildInputs = [
@@ -141,9 +150,5 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.ners ];
-    # https://hydra.nixos.org/build/249763145, doesn't build since glibc 2.39.
-    # Potential fix is documented in https://github.com/389ds/389-ds-base/issues/5332,
-    # but it doesn't apply here.
-    broken = true;
   };
 }
diff --git a/pkgs/servers/limesurvey/default.nix b/pkgs/servers/limesurvey/default.nix
index 791106ca3b0ff..9f7db0b916b6d 100644
--- a/pkgs/servers/limesurvey/default.nix
+++ b/pkgs/servers/limesurvey/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Open source survey application";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     homepage = "https://www.limesurvey.org";
     maintainers = with maintainers; [offline];
     platforms = with platforms; unix;
diff --git a/pkgs/servers/mail/nullmailer/default.nix b/pkgs/servers/mail/nullmailer/default.nix
index 95263e435f025..f223f163fdcbf 100644
--- a/pkgs/servers/mail/nullmailer/default.nix
+++ b/pkgs/servers/mail/nullmailer/default.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
       A sendmail/qmail/etc replacement MTA for hosts which relay to a fixed set of smart relays.
       It is designed to be simple to configure, secure, and easily extendable.
     '';
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.all;
     maintainers = with lib.maintainers ; [ sargon ];
   };
diff --git a/pkgs/servers/mail/postgrey/default.nix b/pkgs/servers/mail/postgrey/default.nix
index 07b351bfb2161..65fbe41b91016 100644
--- a/pkgs/servers/mail/postgrey/default.nix
+++ b/pkgs/servers/mail/postgrey/default.nix
@@ -19,7 +19,7 @@ in runCommand name {
     description = "A postfix policy server to provide greylisting";
     homepage = "https://postgrey.schweikert.ch/";
     platforms = postfix.meta.platforms;
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
   };
 } ''
     mkdir -p $out/bin
diff --git a/pkgs/servers/mail/postsrsd/default.nix b/pkgs/servers/mail/postsrsd/default.nix
index c31fadc8ecbda..65e6b83a693ff 100644
--- a/pkgs/servers/mail/postsrsd/default.nix
+++ b/pkgs/servers/mail/postsrsd/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/roehling/postsrsd";
     description = "Postfix Sender Rewriting Scheme daemon";
     mainProgram = "postsrsd";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.all;
     maintainers = with maintainers; [ abbradar ];
   };
diff --git a/pkgs/servers/mail/smtprelay/default.nix b/pkgs/servers/mail/smtprelay/default.nix
index 688c415caf26d..be8cfb4861f2a 100644
--- a/pkgs/servers/mail/smtprelay/default.nix
+++ b/pkgs/servers/mail/smtprelay/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "smtprelay";
-  version = "1.10.0";
+  version = "1.11.0";
 
   src = fetchFromGitHub {
     owner = "decke";
     repo = "smtprelay";
     rev = "refs/tags/v${version}";
-    hash = "sha256-zZ3rgbo8nvrpFMtUmhyXnTgoVd0FIh1kWzuM2hCh5gY=";
+    hash = "sha256-8N+JJp0/d59s8rU7t0YtrTepVXpxXc8PET1f+AgEpG0=";
   };
 
-  vendorHash = "sha256-assGzM8/APNVVm2vZapPK6sh3tWNTnw6PSFwvEqNDPk=";
+  vendorHash = "sha256-BX1Ll0EEo59p+Pe5oM6+6zT6fvnv1RsfX8YEh9RKkWU=";
 
   subPackages = [
     "."
diff --git a/pkgs/servers/mail/sympa/default.nix b/pkgs/servers/mail/sympa/default.nix
index 5d29f6fbb5362..f431278de4d17 100644
--- a/pkgs/servers/mail/sympa/default.nix
+++ b/pkgs/servers/mail/sympa/default.nix
@@ -111,7 +111,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Open source mailing list manager";
     homepage = "https://www.sympa.org";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ sorki mmilata ];
     platforms = platforms.all;
   };
diff --git a/pkgs/servers/minio/default.nix b/pkgs/servers/minio/default.nix
index 1d54e942eda8e..9109a09a866b8 100644
--- a/pkgs/servers/minio/default.nix
+++ b/pkgs/servers/minio/default.nix
@@ -21,16 +21,16 @@ let
 in
 buildGoModule rec {
   pname = "minio";
-  version = "2024-05-10T01-41-38Z";
+  version = "2024-05-27T19-17-46Z";
 
   src = fetchFromGitHub {
     owner = "minio";
     repo = "minio";
     rev = "RELEASE.${version}";
-    hash = "sha256-qYNyAfWdmQPMIwHEzSlA4nf93aFkR1TvulOVNf46wAI=";
+    hash = "sha256-8ZoTRYsY8aXy0wxN38xFhi7EskBin5s9xOG0sXUC4gU=";
   };
 
-  vendorHash = "sha256-fyNOROkByuH5oEnYiQd0XhqqDKL4EnOEZedXCBI6BuY=";
+  vendorHash = "sha256-hiy1pzB+DOjbs/eUv6zXYIrGzSXfVp36jrcs+Bw8Mrs=";
 
   doCheck = false;
 
diff --git a/pkgs/servers/monitoring/buildkite-agent-metrics/default.nix b/pkgs/servers/monitoring/buildkite-agent-metrics/default.nix
index 4139b9e6f81d3..b6fc47b40bc3d 100644
--- a/pkgs/servers/monitoring/buildkite-agent-metrics/default.nix
+++ b/pkgs/servers/monitoring/buildkite-agent-metrics/default.nix
@@ -4,7 +4,7 @@
 }:
 buildGoModule rec {
   pname = "buildkite-agent-metrics";
-  version = "5.9.4";
+  version = "5.9.5";
 
   outputs = [ "out" "lambda" ];
 
@@ -12,10 +12,10 @@ buildGoModule rec {
     owner = "buildkite";
     repo = "buildkite-agent-metrics";
     rev = "v${version}";
-    hash = "sha256-S9dkahAAoOwwEcWTzo+JkoZkQAQqPT5tfSZY9IWnWaU=";
+    hash = "sha256-oNUNSy8VzyOteNge/ZIoln+GGa/xWl6MNmU/Ke/nlBk=";
   };
 
-  vendorHash = "sha256-r+K/RbNmVYm1LKTZvvKR9zBM35xLkMN8SadOttoTWzo=";
+  vendorHash = "sha256-i2+nefRE4BD93rG842oZj0/coamYVRMPxEHio80bdWk=";
 
   postInstall = ''
     mkdir -p $lambda/bin
diff --git a/pkgs/servers/monitoring/consul-alerts/default.nix b/pkgs/servers/monitoring/consul-alerts/default.nix
index 23bf58c98e597..e65e291b3df83 100644
--- a/pkgs/servers/monitoring/consul-alerts/default.nix
+++ b/pkgs/servers/monitoring/consul-alerts/default.nix
@@ -22,7 +22,7 @@ buildGoPackage rec {
     homepage = "https://github.com/AcalephStorage/consul-alerts";
     # As per README
     platforms = platforms.linux ++ platforms.freebsd ++ platforms.darwin;
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     maintainers = with maintainers; [ nh2 ];
   };
 }
diff --git a/pkgs/servers/monitoring/fusion-inventory/default.nix b/pkgs/servers/monitoring/fusion-inventory/default.nix
index c4e2cc53291b6..b4535c80877de 100644
--- a/pkgs/servers/monitoring/fusion-inventory/default.nix
+++ b/pkgs/servers/monitoring/fusion-inventory/default.nix
@@ -78,7 +78,7 @@ perlPackages.buildPerlPackage rec {
   meta = with lib; {
     homepage = "http://www.fusioninventory.org";
     description = "FusionInventory unified Agent for UNIX, Linux, Windows and MacOSX";
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Only;
     maintainers = [ maintainers.phile314 ];
   };
 }
diff --git a/pkgs/servers/monitoring/grafana-image-renderer/default.nix b/pkgs/servers/monitoring/grafana-image-renderer/default.nix
index 659387d52e0ee..92d14466b00c5 100644
--- a/pkgs/servers/monitoring/grafana-image-renderer/default.nix
+++ b/pkgs/servers/monitoring/grafana-image-renderer/default.nix
@@ -7,18 +7,18 @@
 
 mkYarnPackage rec {
   pname = "grafana-image-renderer";
-  version = "3.10.2";
+  version = "3.10.5";
 
   src = fetchFromGitHub {
     owner = "grafana";
     repo = "grafana-image-renderer";
     rev = "v${version}";
-    hash = "sha256-GL9uJV4/j3tcD9DMoBuO/59OsfG+njc2FH1Bt3VP7K8=";
+    hash = "sha256-Ah78mapwGTD5mTPN7oKk8iwXpp2RMQ8nm0QX3/jTjKU=";
   };
 
   offlineCache = fetchYarnDeps {
     yarnLock = src + "/yarn.lock";
-    hash = "sha256-xgaaIY5Jy8JTSJVGHwPOYgh+fASSPiyoUcmLN516jic=";
+    hash = "sha256-o8Bxc5KyoYMYJ6FwQ6PSi7A0LhU4VNuXh5xXbEXLb4Y=";
   };
 
   packageJSON = ./package.json;
diff --git a/pkgs/servers/monitoring/grafana-image-renderer/package.json b/pkgs/servers/monitoring/grafana-image-renderer/package.json
index 0d81a12c11094..e7435c2ebdaba 100644
--- a/pkgs/servers/monitoring/grafana-image-renderer/package.json
+++ b/pkgs/servers/monitoring/grafana-image-renderer/package.json
@@ -18,6 +18,7 @@
     "build": "tsc",
     "start": "node build/app.js server --config=dev.json",
     "create-gcom-plugin-json": "ts-node scripts/createGcomPluginJson.ts ./scripts/tmp",
+    "push-to-gcom": "sh ./scripts/push-to-gcom.sh",
     "test-update": "cross-env UPDATE_GOLDEN=true jest",
     "test": "sh ./scripts/run_tests.sh",
     "test-ci": "jest",
@@ -32,7 +33,6 @@
     "dompurify": "^2.4.0",
     "express": "^4.19.2",
     "express-prom-bundle": "^6.5.0",
-    "google-protobuf": "3.21.0",
     "jimp": "^0.22.10",
     "jsdom": "20.0.0",
     "lodash": "^4.17.21",
@@ -51,7 +51,7 @@
     "@grafana/eslint-config": "^6.0.0",
     "@types/dompurify": "2.3.4",
     "@types/express": "^4.17.14",
-    "@types/jest": "^29.5.7",
+    "@types/jest": "^29.5.12",
     "@types/jsdom": "20.0.0",
     "@types/multer": "1.4.7",
     "@types/node": "^18.7.18",
@@ -62,20 +62,13 @@
     "axios": "1.6.7",
     "cross-env": "7.0.3",
     "eslint": "8.23.1",
-    "eslint-config-prettier": "8.5.0",
-    "eslint-plugin-jsdoc": "^46.5.0",
-    "eslint-plugin-prettier": "4.2.1",
-    "eslint-plugin-react": "7.31.8",
-    "eslint-plugin-react-hooks": "4.6.0",
     "fast-png": "^6.2.0",
-    "husky": "8.0.1",
     "jest": "^29.7.0",
     "jsonwebtoken": "^9.0.2",
     "lint-staged": "13.0.3",
-    "pkg": "5.8.1",
+    "pkg": "^5.8.1",
     "prettier": "2.7.1",
-    "superagent": "^8.1.2",
-    "supertest": "^6.3.3",
+    "supertest": "^7.0.0",
     "ts-jest": "^29.1.1",
     "ts-node": "10.9.1",
     "tsc-watch": "5.0.3",
diff --git a/pkgs/servers/monitoring/grafana/default.nix b/pkgs/servers/monitoring/grafana/default.nix
index 6fdae7302d7d7..927a011ded284 100644
--- a/pkgs/servers/monitoring/grafana/default.nix
+++ b/pkgs/servers/monitoring/grafana/default.nix
@@ -3,6 +3,7 @@
 , yarn, nodejs, python3, cacert
 , jq, moreutils
 , nix-update-script, nixosTests, xcbuild
+, util-linux
 }:
 
 let
@@ -21,7 +22,7 @@ let
 in
 buildGoModule rec {
   pname = "grafana";
-  version = "10.4.2";
+  version = "11.0.0";
 
   subPackages = [ "pkg/cmd/grafana" "pkg/cmd/grafana-server" "pkg/cmd/grafana-cli" ];
 
@@ -29,7 +30,7 @@ buildGoModule rec {
     owner = "grafana";
     repo = "grafana";
     rev = "v${version}";
-    hash = "sha256-ahG9ABJJUUgrFqqNjkJRA1Gia8T4J90jIsCMFOhZ55w=";
+    hash = "sha256-cC1dpgb8IiyPIqlVvn8Qi1l7j6lLtQF+BOOO+DQCp4E=";
   };
 
   # borrowed from: https://github.com/NixOS/nixpkgs/blob/d70d9425f49f9aba3c49e2c389fe6d42bac8c5b0/pkgs/development/tools/analysis/snyk/default.nix#L20-L22
@@ -65,16 +66,16 @@ buildGoModule rec {
     dontFixup = true;
     outputHashMode = "recursive";
     outputHash = rec {
-      x86_64-linux = "sha256-3CZgs732c6Z64t2sfWjPAmMFKVTzoolv2TwrbjeRCBA=";
+      x86_64-linux = "sha256-+Udq8oQSIAHku55VKnrfgHHevzBels0QiOZwnwuts8k=";
       aarch64-linux = x86_64-linux;
-      aarch64-darwin = "sha256-NKEajOe9uDZw0MF5leiKBIRH1CHUELRho7gyCa96BO8=";
+      aarch64-darwin = "sha256-m3jtZNz0J2nZwFHXVp3ApgDfnGBOJvFeUpqOPQqv200=";
       x86_64-darwin = aarch64-darwin;
     }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
   };
 
   disallowedRequisites = [ offlineCache ];
 
-  vendorHash = "sha256-XmIF/ZWVO1qjSmRPTFnHgxvnliXXicGgsV8gQcKJl9U=";
+  vendorHash = "sha256-kcdW6RQghyAOZUDmIo9G6YBC+YaLHdafvj+fCd+dcDE=";
 
   proxyVendor = true;
 
@@ -90,7 +91,6 @@ buildGoModule rec {
     wire gen -tags oss ./pkg/server
     wire gen -tags oss ./pkg/cmd/grafana-cli/runner
 
-    GOARCH= CGO_ENABLED=0 go generate ./pkg/plugins/plugindef
     GOARCH= CGO_ENABLED=0 go generate ./kinds/gen.go
     GOARCH= CGO_ENABLED=0 go generate ./public/app/plugins/gen.go
     # Setup node_modules
@@ -105,7 +105,7 @@ buildGoModule rec {
 
     yarn config set enableTelemetry 0
     yarn config set cacheFolder $offlineCache
-    yarn --immutable-cache
+    yarn install --immutable-cache
 
     # The build OOMs on memory constrained aarch64 without this
     export NODE_OPTIONS=--max_old_space_size=4096
@@ -113,7 +113,9 @@ buildGoModule rec {
 
   postBuild = ''
     # After having built all the Go code, run the JS builders now.
-    yarn run build
+
+    # Workaround for https://github.com/nrwl/nx/issues/22445
+    ${util-linux}/bin/script -c 'yarn run build' /dev/null
     yarn run plugins:build-bundled
   '';
 
@@ -154,5 +156,8 @@ buildGoModule rec {
     maintainers = with maintainers; [ offline fpletz willibutz globin ma27 Frostman ];
     platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ];
     mainProgram = "grafana-server";
+    # requires util-linux to work around https://github.com/nrwl/nx/issues/22445
+    # `script` doesn't seem to be part of util-linux on Darwin though.
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/servers/monitoring/lcdproc/default.nix b/pkgs/servers/monitoring/lcdproc/default.nix
index 1ce82c13311c9..d70ba0ea19914 100644
--- a/pkgs/servers/monitoring/lcdproc/default.nix
+++ b/pkgs/servers/monitoring/lcdproc/default.nix
@@ -71,7 +71,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Client/server suite for controlling a wide variety of LCD devices";
     homepage = "https://lcdproc.org/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ peterhoeg ];
     platforms = platforms.unix;
     # never built on aarch64-darwin since first introduction in nixpkgs
diff --git a/pkgs/servers/monitoring/munin/default.nix b/pkgs/servers/monitoring/munin/default.nix
index 045fc8f89ac38..c1446b90c870d 100644
--- a/pkgs/servers/monitoring/munin/default.nix
+++ b/pkgs/servers/monitoring/munin/default.nix
@@ -142,7 +142,7 @@ stdenv.mkDerivation rec {
       to kill our performance?' problems.
     '';
     homepage = "https://munin-monitoring.org/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     maintainers = [ maintainers.bjornfor ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/servers/monitoring/nagios/default.nix b/pkgs/servers/monitoring/nagios/default.nix
index 4f39239bfe08f..c8c4db1c401df 100644
--- a/pkgs/servers/monitoring/nagios/default.nix
+++ b/pkgs/servers/monitoring/nagios/default.nix
@@ -74,7 +74,7 @@ stdenv.mkDerivation (finalAttrs: {
     description = "A host, service and network monitoring program";
     homepage = "https://www.nagios.org/";
     changelog = "https://github.com/NagiosEnterprises/nagioscore/blob/nagios-${finalAttrs.version}/Changelog";
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Only;
     platforms = lib.platforms.unix;
     mainProgram = "nagios";
     maintainers = with lib.maintainers; [ immae thoughtpolice relrod anthonyroussel ];
diff --git a/pkgs/servers/monitoring/nagios/plugins/check_ssl_cert.nix b/pkgs/servers/monitoring/nagios/plugins/check_ssl_cert.nix
index 9572c1d2c87e4..c3098a8a8e276 100644
--- a/pkgs/servers/monitoring/nagios/plugins/check_ssl_cert.nix
+++ b/pkgs/servers/monitoring/nagios/plugins/check_ssl_cert.nix
@@ -17,13 +17,13 @@
 
 stdenv.mkDerivation rec {
   pname = "check_ssl_cert";
-  version = "2.81.0";
+  version = "2.81.1";
 
   src = fetchFromGitHub {
     owner = "matteocorti";
     repo = "check_ssl_cert";
     rev = "refs/tags/v${version}";
-    hash = "sha256-6C6shxu9ze0ffx6Mg2K9TkqJl98Wz7loTcCptg92IY8=";
+    hash = "sha256-ZF1izxIgpoQrWWI+G5vuAJsbc/IwUlAZHhUIHKCY2DA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/servers/monitoring/plugins/esxi.nix b/pkgs/servers/monitoring/plugins/esxi.nix
index ccd77548c0c06..85192c0174d1a 100644
--- a/pkgs/servers/monitoring/plugins/esxi.nix
+++ b/pkgs/servers/monitoring/plugins/esxi.nix
@@ -31,7 +31,7 @@ in python3Packages.buildPythonApplication rec {
 
   meta = with lib; {
     homepage = "https://www.claudiokuenzler.com/nagios-plugins/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ peterhoeg ];
   };
 }
diff --git a/pkgs/servers/monitoring/plugins/labs_consol_de.nix b/pkgs/servers/monitoring/plugins/labs_consol_de.nix
index c293a4daa2153..b30fd4b275772 100644
--- a/pkgs/servers/monitoring/plugins/labs_consol_de.nix
+++ b/pkgs/servers/monitoring/plugins/labs_consol_de.nix
@@ -44,7 +44,7 @@ let
 
     meta = with lib; {
       homepage    = "https://labs.consol.de/";
-      license     = licenses.gpl2;
+      license     = licenses.gpl2Only;
       maintainers = with maintainers; [ peterhoeg ];
       inherit description;
     };
diff --git a/pkgs/servers/monitoring/plugins/wmiplus/default.nix b/pkgs/servers/monitoring/plugins/wmiplus/default.nix
index 00474e12b9ac7..dfc3080b6181f 100644
--- a/pkgs/servers/monitoring/plugins/wmiplus/default.nix
+++ b/pkgs/servers/monitoring/plugins/wmiplus/default.nix
@@ -71,7 +71,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A sensu/nagios plugin using WMI to query Windows hosts";
     homepage = "http://edcint.co.nz/checkwmiplus";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ peterhoeg ];
   };
 }
diff --git a/pkgs/servers/monitoring/zabbix/agent.nix b/pkgs/servers/monitoring/zabbix/agent.nix
index 3f1d80ca4df91..091c499e0f0b4 100644
--- a/pkgs/servers/monitoring/zabbix/agent.nix
+++ b/pkgs/servers/monitoring/zabbix/agent.nix
@@ -36,7 +36,7 @@ import ./versions.nix ({ version, hash, ... }:
     meta = with lib; {
       description = "An enterprise-class open source distributed monitoring solution (client-side agent)";
       homepage = "https://www.zabbix.com/";
-      license = licenses.gpl2;
+      license = licenses.gpl2Plus;
       maintainers = with maintainers; [ mmahut psyanticy ];
       platforms = platforms.linux;
     };
diff --git a/pkgs/servers/monitoring/zabbix/proxy.nix b/pkgs/servers/monitoring/zabbix/proxy.nix
index b287ef56c76fb..7f4a52228d5a2 100644
--- a/pkgs/servers/monitoring/zabbix/proxy.nix
+++ b/pkgs/servers/monitoring/zabbix/proxy.nix
@@ -81,7 +81,7 @@ in
       meta = with lib; {
         description = "An enterprise-class open source distributed monitoring solution (client-server proxy)";
         homepage = "https://www.zabbix.com/";
-        license = licenses.gpl2;
+        license = licenses.gpl2Plus;
         maintainers = [ maintainers.mmahut ];
         platforms = platforms.linux;
       };
diff --git a/pkgs/servers/monitoring/zabbix/server.nix b/pkgs/servers/monitoring/zabbix/server.nix
index 5abf6a93d55d5..99942f600f9f9 100644
--- a/pkgs/servers/monitoring/zabbix/server.nix
+++ b/pkgs/servers/monitoring/zabbix/server.nix
@@ -90,7 +90,7 @@ in
       meta = with lib; {
         description = "An enterprise-class open source distributed monitoring solution";
         homepage = "https://www.zabbix.com/";
-        license = licenses.gpl2;
+        license = licenses.gpl2Plus;
         maintainers = with maintainers; [ mmahut psyanticy ];
         platforms = platforms.linux;
       };
diff --git a/pkgs/servers/monitoring/zabbix/web.nix b/pkgs/servers/monitoring/zabbix/web.nix
index 7267e3046dd7f..e9529ecb58c94 100644
--- a/pkgs/servers/monitoring/zabbix/web.nix
+++ b/pkgs/servers/monitoring/zabbix/web.nix
@@ -25,7 +25,7 @@ import ./versions.nix ({ version, hash, ... }:
     meta = with lib; {
       description = "An enterprise-class open source distributed monitoring solution (web frontend)";
       homepage = "https://www.zabbix.com/";
-      license = licenses.gpl2;
+      license = licenses.gpl2Plus;
       maintainers = [ maintainers.mmahut ];
       platforms = platforms.linux;
     };
diff --git a/pkgs/servers/photofield/default.nix b/pkgs/servers/photofield/default.nix
index ffb647c03be53..3c9cf8245022a 100644
--- a/pkgs/servers/photofield/default.nix
+++ b/pkgs/servers/photofield/default.nix
@@ -1,5 +1,6 @@
 { lib
 , fetchFromGitHub
+, fetchpatch
 , buildGoModule
 , buildNpmPackage
 , makeWrapper
@@ -10,7 +11,6 @@
 }:
 
 let
-  pname = "photofield-ui";
   version = "0.13.0";
 
   src = fetchFromGitHub {
@@ -35,11 +35,20 @@ let
   };
 in
 
-buildGoModule rec {
+buildGoModule {
   pname = "photofield";
   inherit version src;
 
-  vendorHash = "sha256-4JFP3vs/Z8iSKgcwfxpdnQpO9kTF68XQArFHYP8IoDQ=";
+  patches = [
+    # Needed for Go 1.22 build support
+    (fetchpatch {
+      name = "upgrade-pyroscope-go.patch";
+      url = "https://github.com/SmilyOrg/photofield/commit/681dcd48ab4113b0e99fe1a0d3638f0dfe985c05.patch";
+      hash = "sha256-JGb5KAI/SmR1kiiaPoSsAF7G4YWDFXj0K3Gjw0zA3Ro=";
+    })
+  ];
+
+  vendorHash = "sha256-BnImE4wK2MDO21N5tT9Q9w+NkDpdBCEqUwzuH/xb6fg=";
 
   preBuild = ''
     cp -r ${webui}/share/photofield-ui ui/dist
diff --git a/pkgs/servers/search/sphinxsearch/default.nix b/pkgs/servers/search/sphinxsearch/default.nix
index a44f96db7026a..6adf73203daab 100644
--- a/pkgs/servers/search/sphinxsearch/default.nix
+++ b/pkgs/servers/search/sphinxsearch/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "An open source full text search server";
     homepage    = "http://sphinxsearch.com";
-    license     = lib.licenses.gpl2;
+    license     = lib.licenses.gpl2Plus;
     platforms   = lib.platforms.all;
     maintainers = with lib.maintainers; [ ederoyd46 valodim ];
   };
diff --git a/pkgs/servers/sftpgo/default.nix b/pkgs/servers/sftpgo/default.nix
index 9e7f1b6b456cc..3922300410afa 100644
--- a/pkgs/servers/sftpgo/default.nix
+++ b/pkgs/servers/sftpgo/default.nix
@@ -59,7 +59,7 @@ buildGoModule rec {
       Google Cloud Storage, Azure Blob Storage, SFTP.
     '';
     license = licenses.agpl3Only;
-    maintainers = with maintainers; [ thenonameguy yayayayaka ];
+    maintainers = with maintainers; [ thenonameguy ];
     mainProgram = "sftpgo";
   };
 }
diff --git a/pkgs/servers/sickbeard/sickgear.nix b/pkgs/servers/sickbeard/sickgear.nix
index 1ad5c7c26effa..4f4e2a872da5a 100644
--- a/pkgs/servers/sickbeard/sickgear.nix
+++ b/pkgs/servers/sickbeard/sickgear.nix
@@ -4,13 +4,13 @@ let
   pythonEnv = python3.withPackages(ps: with ps; [ cheetah3 lxml ]);
 in stdenv.mkDerivation rec {
   pname = "sickgear";
-  version = "3.30.19";
+  version = "3.30.20";
 
   src = fetchFromGitHub {
     owner = "SickGear";
     repo = "SickGear";
     rev = "release_${version}";
-    hash = "sha256-OC/BJ0wG6as1dt2dO9gUFD+FG85Vt2ehCoTcmh6iT7w=";
+    hash = "sha256-GLfRBlStnHv6fWpwGjZVfXXubkTLxZ2Q4AL6OnfhEMQ=";
   };
 
   patches = [
diff --git a/pkgs/servers/silc-server/default.nix b/pkgs/servers/silc-server/default.nix
index 53a2f47cf2adb..dcb5eb4e99904 100644
--- a/pkgs/servers/silc-server/default.nix
+++ b/pkgs/servers/silc-server/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     homepage = "http://silcnet.org/";
     description = "Secure Internet Live Conferencing server";
     mainProgram = "silcd";
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [viric];
     platforms = with lib.platforms; linux;
   };
diff --git a/pkgs/servers/sql/mariadb/default.nix b/pkgs/servers/sql/mariadb/default.nix
index 3ff31ba1d3abe..5db93980fa518 100644
--- a/pkgs/servers/sql/mariadb/default.nix
+++ b/pkgs/servers/sql/mariadb/default.nix
@@ -139,7 +139,7 @@ let
       meta = with lib; {
         description = "An enhanced, drop-in replacement for MySQL";
         homepage    = "https://mariadb.org/";
-        license     = licenses.gpl2;
+        license     = licenses.gpl2Plus;
         maintainers = with maintainers; [ thoughtpolice ] ++ teams.helsinki-systems.members;
         platforms   = platforms.all;
       };
diff --git a/pkgs/servers/sql/mysql/8.0.x.nix b/pkgs/servers/sql/mysql/8.0.x.nix
index 521e748198a36..e64b10bae6aea 100644
--- a/pkgs/servers/sql/mysql/8.0.x.nix
+++ b/pkgs/servers/sql/mysql/8.0.x.nix
@@ -72,7 +72,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     homepage = "https://www.mysql.com/";
     description = "The world's most popular open source database";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     maintainers = with maintainers; [ orivej ];
     platforms = platforms.unix;
   };
diff --git a/pkgs/servers/sql/mysql/jdbc/default.nix b/pkgs/servers/sql/mysql/jdbc/default.nix
index e50b7d579db2a..cdc1ad095919e 100644
--- a/pkgs/servers/sql/mysql/jdbc/default.nix
+++ b/pkgs/servers/sql/mysql/jdbc/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
     changelog = "https://dev.mysql.com/doc/relnotes/connector-j/en/";
     maintainers = with maintainers; [ ];
     platforms = platforms.unix;
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
   };
 }
diff --git a/pkgs/servers/sql/percona-server/lts.nix b/pkgs/servers/sql/percona-server/lts.nix
index f8b13aa4180af..4531a2db7b7ad 100644
--- a/pkgs/servers/sql/percona-server/lts.nix
+++ b/pkgs/servers/sql/percona-server/lts.nix
@@ -89,7 +89,7 @@ stdenv.mkDerivation (finalAttrs: {
       A free, fully compatible, enhanced, open source drop-in replacement for
       MySQL® that provides superior performance, scalability and instrumentation.
     '';
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = teams.flyingcircus.members;
     platforms = platforms.unix;
   };
diff --git a/pkgs/servers/sql/postgresql/ext/pg_similarity.nix b/pkgs/servers/sql/postgresql/ext/pg_similarity.nix
index 227ea8357861c..92ab0be32e1ab 100644
--- a/pkgs/servers/sql/postgresql/ext/pg_similarity.nix
+++ b/pkgs/servers/sql/postgresql/ext/pg_similarity.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation {
        operators (= and <>) you can use ~~~ and ~!~ (any of these operators represents a similarity function).
     '';
     platforms = postgresql.meta.platforms;
-    license = lib.licenses.gpl2;
+    license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ danbst ];
   };
 }
diff --git a/pkgs/servers/sql/postgresql/ext/postgis.nix b/pkgs/servers/sql/postgresql/ext/postgis.nix
index 6569439e351eb..ee1669e5db185 100644
--- a/pkgs/servers/sql/postgresql/ext/postgis.nix
+++ b/pkgs/servers/sql/postgresql/ext/postgis.nix
@@ -80,7 +80,7 @@ stdenv.mkDerivation rec {
     description = "Geographic Objects for PostgreSQL";
     homepage = "https://postgis.net/";
     changelog = "https://git.osgeo.org/gitea/postgis/postgis/raw/tag/${version}/NEWS";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; teams.geospatial.members ++ [ marcweber wolfgangwalther ];
     inherit (postgresql.meta) platforms;
   };
diff --git a/pkgs/servers/tailscale/default.nix b/pkgs/servers/tailscale/default.nix
index 9e1a31873e46a..216add099af5c 100644
--- a/pkgs/servers/tailscale/default.nix
+++ b/pkgs/servers/tailscale/default.nix
@@ -2,6 +2,7 @@
 , stdenv
 , buildGoModule
 , fetchFromGitHub
+, fetchpatch
 , makeWrapper
 , getent
 , iproute2
@@ -24,6 +25,16 @@ buildGoModule {
     rev = "v${version}";
     hash = "sha256-ETBca3qKO2iS30teIF5sr/oyJdRSKFqLFVO3+mmm7bo=";
   };
+
+  patches = [
+    # Fix "tailscale ssh" when built with ts_include_cli tag
+    # https://github.com/tailscale/tailscale/pull/12109
+    (fetchpatch {
+      url = "https://github.com/tailscale/tailscale/commit/325ca13c4549c1af58273330744d160602218af9.patch";
+      hash = "sha256-SMwqZiGNVflhPShlHP+7Gmn0v4b6Gr4VZGIF/oJAY8M=";
+    })
+  ];
+
   vendorHash = "sha256-Hd77xy8stw0Y6sfk3/ItqRIbM/349M/4uf0iNy1xJGw=";
 
   nativeBuildInputs = lib.optionals stdenv.isLinux [ makeWrapper ];
diff --git a/pkgs/servers/teleport/13/Cargo.lock b/pkgs/servers/teleport/13/Cargo.lock
deleted file mode 100644
index 52daefdf5c3a2..0000000000000
--- a/pkgs/servers/teleport/13/Cargo.lock
+++ /dev/null
@@ -1,1956 +0,0 @@
-# This file is automatically @generated by Cargo.
-# It is not intended for manual editing.
-version = 3
-
-[[package]]
-name = "adler"
-version = "1.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
-
-[[package]]
-name = "aho-corasick"
-version = "0.7.20"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "asn1-rs"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf6690c370453db30743b373a60ba498fc0d6d83b11f4abfd87a84a075db5dd4"
-dependencies = [
- "asn1-rs-derive",
- "asn1-rs-impl",
- "displaydoc",
- "nom",
- "num-traits",
- "rusticata-macros",
- "thiserror",
- "time",
-]
-
-[[package]]
-name = "asn1-rs-derive"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.107",
- "synstructure",
-]
-
-[[package]]
-name = "asn1-rs-impl"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.107",
-]
-
-[[package]]
-name = "atomic-polyfill"
-version = "0.1.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3ff7eb3f316534d83a8a2c3d1674ace8a5a71198eba31e2e2b597833f699b28"
-dependencies = [
- "critical-section",
-]
-
-[[package]]
-name = "atty"
-version = "0.2.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
-dependencies = [
- "hermit-abi 0.1.19",
- "libc",
- "winapi",
-]
-
-[[package]]
-name = "autocfg"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
-
-[[package]]
-name = "base64"
-version = "0.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
-
-[[package]]
-name = "base64ct"
-version = "1.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b645a089122eccb6111b4f81cbc1a49f5900ac4666bb93ac027feaecf15607bf"
-
-[[package]]
-name = "bindgen"
-version = "0.66.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2b84e06fc203107bfbad243f4aba2af864eb7db3b1cf46ea0a023b0b433d2a7"
-dependencies = [
- "bitflags 2.4.1",
- "cexpr",
- "clang-sys",
- "lazy_static",
- "lazycell",
- "peeking_take_while",
- "proc-macro2",
- "quote",
- "regex",
- "rustc-hash",
- "shlex",
- "syn 2.0.39",
-]
-
-[[package]]
-name = "bitflags"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
-
-[[package]]
-name = "bitflags"
-version = "2.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
-
-[[package]]
-name = "block-buffer"
-version = "0.7.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b"
-dependencies = [
- "block-padding",
- "byte-tools",
- "byteorder",
- "generic-array 0.12.4",
-]
-
-[[package]]
-name = "block-padding"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5"
-dependencies = [
- "byte-tools",
-]
-
-[[package]]
-name = "boring"
-version = "3.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ae1aba472e42d3cf45ac6d0a6c8fc3ddf743871209e1b40229aed9fbdf48ece"
-dependencies = [
- "bitflags 2.4.1",
- "boring-sys",
- "foreign-types",
- "libc",
- "once_cell",
-]
-
-[[package]]
-name = "boring-sys"
-version = "3.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ceced5be0047c7c48d77599535fd7f0a81c1b0f0a1e97e7eece24c45022bb481"
-dependencies = [
- "bindgen",
- "cmake",
- "fs_extra",
- "fslock",
-]
-
-[[package]]
-name = "bufstream"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "40e38929add23cdf8a366df9b0e088953150724bcbe5fc330b0d8eb3b328eec8"
-
-[[package]]
-name = "bumpalo"
-version = "3.11.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba"
-
-[[package]]
-name = "byte-tools"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7"
-
-[[package]]
-name = "byteorder"
-version = "1.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
-
-[[package]]
-name = "cbindgen"
-version = "0.24.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a6358dedf60f4d9b8db43ad187391afe959746101346fe51bb978126bec61dfb"
-dependencies = [
- "clap",
- "heck",
- "indexmap",
- "log",
- "proc-macro2",
- "quote",
- "serde",
- "serde_json",
- "syn 1.0.107",
- "tempfile",
- "toml",
-]
-
-[[package]]
-name = "cc"
-version = "1.0.78"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a20104e2335ce8a659d6dd92a51a767a0c062599c73b343fd152cb401e828c3d"
-
-[[package]]
-name = "cexpr"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
-dependencies = [
- "nom",
-]
-
-[[package]]
-name = "cfg-if"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-
-[[package]]
-name = "cipher"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d1873270f8f7942c191139cb8a40fd228da6c3fd2fc376d7e92d47aa14aeb59e"
-dependencies = [
- "crypto-common",
- "inout",
-]
-
-[[package]]
-name = "clang-sys"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa2e27ae6ab525c3d369ded447057bca5438d86dc3a68f6faafb8269ba82ebf3"
-dependencies = [
- "glob",
- "libc",
- "libloading",
-]
-
-[[package]]
-name = "clap"
-version = "3.2.23"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "71655c45cb9845d3270c9d6df84ebe72b4dad3c2ba3f7023ad47c144e4e473a5"
-dependencies = [
- "atty",
- "bitflags 1.3.2",
- "clap_lex",
- "indexmap",
- "strsim",
- "termcolor",
- "textwrap",
-]
-
-[[package]]
-name = "clap_lex"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5"
-dependencies = [
- "os_str_bytes",
-]
-
-[[package]]
-name = "cmake"
-version = "0.1.49"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db34956e100b30725f2eb215f90d4871051239535632f84fea3bc92722c66b7c"
-dependencies = [
- "cc",
-]
-
-[[package]]
-name = "const-oid"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e4c78c047431fee22c1a7bb92e00ad095a02a983affe4d8a72e2a2c62c1b94f3"
-
-[[package]]
-name = "const-oid"
-version = "0.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cec318a675afcb6a1ea1d4340e2d377e56e47c266f28043ceccbf4412ddfdd3b"
-
-[[package]]
-name = "crc32fast"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "critical-section"
-version = "1.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6548a0ad5d2549e111e1f6a11a6c2e2d00ce6a3dafe22948d67c2b443f775e52"
-
-[[package]]
-name = "crypto-bigint"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03c6a1d5fa1de37e071642dfa44ec552ca5b299adb128fab16138e24b548fd21"
-dependencies = [
- "generic-array 0.14.6",
- "subtle 2.4.1",
-]
-
-[[package]]
-name = "crypto-common"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
-dependencies = [
- "generic-array 0.14.6",
- "typenum",
-]
-
-[[package]]
-name = "crypto-mac"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5"
-dependencies = [
- "generic-array 0.12.4",
- "subtle 1.0.0",
-]
-
-[[package]]
-name = "data-encoding"
-version = "2.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23d8666cb01533c39dde32bcbab8e227b4ed6679b2c925eba05feabea39508fb"
-
-[[package]]
-name = "delog"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4cd67f90cc14e0a91cf693141453cccf2b74db9d59c40f6be18b79169fe77dfd"
-dependencies = [
- "log",
-]
-
-[[package]]
-name = "der"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6919815d73839e7ad218de758883aae3a257ba6759ce7a9992501efbb53d705c"
-dependencies = [
- "const-oid 0.7.1",
- "crypto-bigint",
- "pem-rfc7468 0.3.1",
-]
-
-[[package]]
-name = "der"
-version = "0.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de"
-dependencies = [
- "const-oid 0.9.1",
- "pem-rfc7468 0.6.0",
- "zeroize",
-]
-
-[[package]]
-name = "der-parser"
-version = "8.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "42d4bc9b0db0a0df9ae64634ac5bdefb7afcb534e182275ca0beadbe486701c1"
-dependencies = [
- "asn1-rs",
- "displaydoc",
- "nom",
- "num-bigint 0.4.3",
- "num-traits",
- "rusticata-macros",
-]
-
-[[package]]
-name = "derivative"
-version = "2.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.107",
-]
-
-[[package]]
-name = "digest"
-version = "0.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5"
-dependencies = [
- "generic-array 0.12.4",
-]
-
-[[package]]
-name = "digest"
-version = "0.10.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f"
-dependencies = [
- "const-oid 0.9.1",
- "crypto-common",
-]
-
-[[package]]
-name = "displaydoc"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3bf95dc3f046b9da4f2d51833c0d3547d8564ef6910f5c1ed130306a75b92886"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.107",
-]
-
-[[package]]
-name = "env_logger"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
-dependencies = [
- "humantime",
- "is-terminal",
- "log",
- "regex",
- "termcolor",
-]
-
-[[package]]
-name = "errno"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50d6a0976c999d473fe89ad888d5a284e55366d9dc9038b1ba2aa15128c4afa0"
-dependencies = [
- "errno-dragonfly",
- "libc",
- "windows-sys 0.45.0",
-]
-
-[[package]]
-name = "errno-dragonfly"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
-dependencies = [
- "cc",
- "libc",
-]
-
-[[package]]
-name = "fake-simd"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed"
-
-[[package]]
-name = "fastrand"
-version = "1.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499"
-dependencies = [
- "instant",
-]
-
-[[package]]
-name = "fdeflate"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d329bdeac514ee06249dabc27877490f17f5d371ec693360768b838e19f3ae10"
-dependencies = [
- "simd-adler32",
-]
-
-[[package]]
-name = "flate2"
-version = "1.0.25"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841"
-dependencies = [
- "crc32fast",
- "miniz_oxide 0.6.2",
-]
-
-[[package]]
-name = "foreign-types"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965"
-dependencies = [
- "foreign-types-macros",
- "foreign-types-shared",
-]
-
-[[package]]
-name = "foreign-types-macros"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8469d0d40519bc608ec6863f1cc88f3f1deee15913f2f3b3e573d81ed38cccc"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.107",
-]
-
-[[package]]
-name = "foreign-types-shared"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b"
-
-[[package]]
-name = "fs_extra"
-version = "1.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c"
-
-[[package]]
-name = "fslock"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04412b8935272e3a9bae6f48c7bfff74c2911f60525404edfdd28e49884c3bfb"
-dependencies = [
- "libc",
- "winapi",
-]
-
-[[package]]
-name = "generic-array"
-version = "0.12.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd"
-dependencies = [
- "typenum",
-]
-
-[[package]]
-name = "generic-array"
-version = "0.14.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9"
-dependencies = [
- "typenum",
- "version_check",
-]
-
-[[package]]
-name = "gethostname"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e"
-dependencies = [
- "libc",
- "winapi",
-]
-
-[[package]]
-name = "getrandom"
-version = "0.1.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
-dependencies = [
- "cfg-if",
- "libc",
- "wasi 0.9.0+wasi-snapshot-preview1",
-]
-
-[[package]]
-name = "getrandom"
-version = "0.2.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"
-dependencies = [
- "cfg-if",
- "libc",
- "wasi 0.11.0+wasi-snapshot-preview1",
-]
-
-[[package]]
-name = "glob"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
-
-[[package]]
-name = "hash32"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67"
-dependencies = [
- "byteorder",
-]
-
-[[package]]
-name = "hashbrown"
-version = "0.12.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
-
-[[package]]
-name = "heapless"
-version = "0.7.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db04bc24a18b9ea980628ecf00e6c0264f3c1426dac36c00cb49b6fbad8b0743"
-dependencies = [
- "atomic-polyfill",
- "hash32",
- "rustc_version",
- "spin 0.9.4",
- "stable_deref_trait",
-]
-
-[[package]]
-name = "heck"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9"
-
-[[package]]
-name = "hermit-abi"
-version = "0.1.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "hermit-abi"
-version = "0.2.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "hmac"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5dcb5e64cda4c23119ab41ba960d1e170a774c8e4b9d9e6a9bc18aabf5e59695"
-dependencies = [
- "crypto-mac",
- "digest 0.8.1",
-]
-
-[[package]]
-name = "humantime"
-version = "2.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
-
-[[package]]
-name = "indexmap"
-version = "1.9.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399"
-dependencies = [
- "autocfg",
- "hashbrown",
-]
-
-[[package]]
-name = "inout"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5"
-dependencies = [
- "generic-array 0.14.6",
-]
-
-[[package]]
-name = "instant"
-version = "0.1.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "io-lifetimes"
-version = "1.0.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46112a93252b123d31a119a8d1a1ac19deac4fac6e0e8b0df58f0d4e5870e63c"
-dependencies = [
- "libc",
- "windows-sys 0.42.0",
-]
-
-[[package]]
-name = "is-terminal"
-version = "0.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28dfb6c8100ccc63462345b67d1bbc3679177c75ee4bf59bf29c8b1d110b8189"
-dependencies = [
- "hermit-abi 0.2.6",
- "io-lifetimes",
- "rustix 0.36.16",
- "windows-sys 0.42.0",
-]
-
-[[package]]
-name = "iso7816"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7e6ac743d509349b7865595ce90bbfcfbe59f42b8ec0db9e76ec361ace3f652"
-dependencies = [
- "delog",
- "heapless",
-]
-
-[[package]]
-name = "iso7816-tlv"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d47365efc3b4c252f8a3384445c0f7e8a4e0ae5c22bf3bedd2dd16f9bb45016a"
-dependencies = [
- "untrusted 0.9.0",
-]
-
-[[package]]
-name = "itoa"
-version = "1.0.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440"
-
-[[package]]
-name = "js-sys"
-version = "0.3.60"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47"
-dependencies = [
- "wasm-bindgen",
-]
-
-[[package]]
-name = "lazy_static"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-dependencies = [
- "spin 0.5.2",
-]
-
-[[package]]
-name = "lazycell"
-version = "1.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
-
-[[package]]
-name = "libc"
-version = "0.2.141"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3304a64d199bb964be99741b7a14d26972741915b3649639149b2479bb46f4b5"
-
-[[package]]
-name = "libloading"
-version = "0.7.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
-dependencies = [
- "cfg-if",
- "winapi",
-]
-
-[[package]]
-name = "libm"
-version = "0.2.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb"
-
-[[package]]
-name = "linux-raw-sys"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4"
-
-[[package]]
-name = "linux-raw-sys"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd550e73688e6d578f0ac2119e32b797a327631a42f9433e59d02e139c8df60d"
-
-[[package]]
-name = "lock_api"
-version = "0.4.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
-dependencies = [
- "autocfg",
- "scopeguard",
-]
-
-[[package]]
-name = "log"
-version = "0.4.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "md-5"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a18af3dcaf2b0219366cdb4e2af65a6101457b415c3d1a5c71dd9c2b7c77b9c8"
-dependencies = [
- "block-buffer",
- "digest 0.8.1",
- "opaque-debug",
-]
-
-[[package]]
-name = "md4"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4030c65cf2aab7ada769cae7d1e7159f8d034d6ded4f39afba037f094bfd9a1"
-dependencies = [
- "block-buffer",
- "digest 0.8.1",
- "fake-simd",
- "opaque-debug",
-]
-
-[[package]]
-name = "memchr"
-version = "2.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
-
-[[package]]
-name = "minimal-lexical"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
-
-[[package]]
-name = "miniz_oxide"
-version = "0.6.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa"
-dependencies = [
- "adler",
-]
-
-[[package]]
-name = "miniz_oxide"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
-dependencies = [
- "adler",
- "simd-adler32",
-]
-
-[[package]]
-name = "nom"
-version = "7.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8903e5a29a317527874d0402f867152a3d21c908bb0b933e416c65e301d4c36"
-dependencies = [
- "memchr",
- "minimal-lexical",
-]
-
-[[package]]
-name = "num-bigint"
-version = "0.2.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304"
-dependencies = [
- "autocfg",
- "num-integer",
- "num-traits",
-]
-
-[[package]]
-name = "num-bigint"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f"
-dependencies = [
- "autocfg",
- "num-integer",
- "num-traits",
-]
-
-[[package]]
-name = "num-bigint-dig"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2399c9463abc5f909349d8aa9ba080e0b88b3ce2885389b60b993f39b1a56905"
-dependencies = [
- "byteorder",
- "lazy_static",
- "libm",
- "num-integer",
- "num-iter",
- "num-traits",
- "rand 0.8.5",
- "smallvec",
- "zeroize",
-]
-
-[[package]]
-name = "num-derive"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.107",
-]
-
-[[package]]
-name = "num-integer"
-version = "0.1.45"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
-dependencies = [
- "autocfg",
- "num-traits",
-]
-
-[[package]]
-name = "num-iter"
-version = "0.1.43"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252"
-dependencies = [
- "autocfg",
- "num-integer",
- "num-traits",
-]
-
-[[package]]
-name = "num-traits"
-version = "0.2.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
-dependencies = [
- "autocfg",
- "libm",
-]
-
-[[package]]
-name = "num_enum"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca565a7df06f3d4b485494f25ba05da1435950f4dc263440eda7a6fa9b8e36e4"
-dependencies = [
- "derivative",
- "num_enum_derive",
-]
-
-[[package]]
-name = "num_enum_derive"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffa5a33ddddfee04c0283a7653987d634e880347e96b5b2ed64de07efb59db9d"
-dependencies = [
- "proc-macro-crate",
- "proc-macro2",
- "quote",
- "syn 1.0.107",
-]
-
-[[package]]
-name = "oid-registry"
-version = "0.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff"
-dependencies = [
- "asn1-rs",
-]
-
-[[package]]
-name = "once_cell"
-version = "1.16.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860"
-
-[[package]]
-name = "opaque-debug"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c"
-
-[[package]]
-name = "os_str_bytes"
-version = "6.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee"
-
-[[package]]
-name = "peeking_take_while"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
-
-[[package]]
-name = "pem-rfc7468"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01de5d978f34aa4b2296576379fcc416034702fd94117c56ffd8a1a767cefb30"
-dependencies = [
- "base64ct",
-]
-
-[[package]]
-name = "pem-rfc7468"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24d159833a9105500e0398934e205e0773f0b27529557134ecfc51c27646adac"
-dependencies = [
- "base64ct",
-]
-
-[[package]]
-name = "pkcs1"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a78f66c04ccc83dd4486fd46c33896f4e17b24a7a3a6400dedc48ed0ddd72320"
-dependencies = [
- "der 0.5.1",
- "pkcs8 0.8.0",
- "zeroize",
-]
-
-[[package]]
-name = "pkcs1"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eff33bdbdfc54cc98a2eca766ebdec3e1b8fb7387523d5c9c9a2891da856f719"
-dependencies = [
- "der 0.6.1",
- "pkcs8 0.9.0",
- "spki 0.6.0",
- "zeroize",
-]
-
-[[package]]
-name = "pkcs8"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7cabda3fb821068a9a4fab19a683eac3af12edf0f34b94a8be53c4972b8149d0"
-dependencies = [
- "der 0.5.1",
- "spki 0.5.4",
- "zeroize",
-]
-
-[[package]]
-name = "pkcs8"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba"
-dependencies = [
- "der 0.6.1",
- "spki 0.6.0",
-]
-
-[[package]]
-name = "png"
-version = "0.17.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aaeebc51f9e7d2c150d3f3bfeb667f2aa985db5ef1e3d212847bdedb488beeaa"
-dependencies = [
- "bitflags 1.3.2",
- "crc32fast",
- "fdeflate",
- "flate2",
- "miniz_oxide 0.7.1",
-]
-
-[[package]]
-name = "ppv-lite86"
-version = "0.2.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
-
-[[package]]
-name = "proc-macro-crate"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785"
-dependencies = [
- "toml",
-]
-
-[[package]]
-name = "proc-macro2"
-version = "1.0.69"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da"
-dependencies = [
- "unicode-ident",
-]
-
-[[package]]
-name = "quote"
-version = "1.0.33"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
-dependencies = [
- "proc-macro2",
-]
-
-[[package]]
-name = "rand"
-version = "0.7.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
-dependencies = [
- "getrandom 0.1.16",
- "libc",
- "rand_chacha 0.2.2",
- "rand_core 0.5.1",
- "rand_hc",
-]
-
-[[package]]
-name = "rand"
-version = "0.8.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
-dependencies = [
- "libc",
- "rand_chacha 0.3.1",
- "rand_core 0.6.4",
-]
-
-[[package]]
-name = "rand_chacha"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
-dependencies = [
- "ppv-lite86",
- "rand_core 0.5.1",
-]
-
-[[package]]
-name = "rand_chacha"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
-dependencies = [
- "ppv-lite86",
- "rand_core 0.6.4",
-]
-
-[[package]]
-name = "rand_core"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
-dependencies = [
- "getrandom 0.1.16",
-]
-
-[[package]]
-name = "rand_core"
-version = "0.6.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
-dependencies = [
- "getrandom 0.2.8",
-]
-
-[[package]]
-name = "rand_hc"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
-dependencies = [
- "rand_core 0.5.1",
-]
-
-[[package]]
-name = "rc4"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f1256e23efe6097f27aa82d6ca6889361c001586ae0f6917cbad072f05eb275"
-dependencies = [
- "cipher",
-]
-
-[[package]]
-name = "rdp-client"
-version = "0.1.0"
-dependencies = [
- "bitflags 2.4.1",
- "byteorder",
- "cbindgen",
- "env_logger",
- "iso7816",
- "iso7816-tlv",
- "libc",
- "log",
- "num-derive",
- "num-traits",
- "png",
- "rand 0.8.5",
- "rand_chacha 0.3.1",
- "rdp-rs",
- "rsa 0.8.2",
- "tempfile",
- "utf16string",
- "uuid",
-]
-
-[[package]]
-name = "rdp-rs"
-version = "0.1.0"
-source = "git+https://github.com/gravitational/rdp-rs?rev=0ddb504e10051aaa8f0de57580a973d2853a5b7d#0ddb504e10051aaa8f0de57580a973d2853a5b7d"
-dependencies = [
- "boring",
- "bufstream",
- "byteorder",
- "gethostname",
- "hmac",
- "indexmap",
- "md-5",
- "md4",
- "num-bigint 0.2.6",
- "num_enum",
- "oid-registry",
- "rand 0.7.3",
- "rc4",
- "ring",
- "rsa 0.6.1",
- "rustls",
- "x509-parser",
- "yasna",
-]
-
-[[package]]
-name = "redox_syscall"
-version = "0.3.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
-dependencies = [
- "bitflags 1.3.2",
-]
-
-[[package]]
-name = "regex"
-version = "1.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e076559ef8e241f2ae3479e36f97bd5741c0330689e217ad51ce2c76808b868a"
-dependencies = [
- "aho-corasick",
- "memchr",
- "regex-syntax",
-]
-
-[[package]]
-name = "regex-syntax"
-version = "0.6.28"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848"
-
-[[package]]
-name = "ring"
-version = "0.16.20"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"
-dependencies = [
- "cc",
- "libc",
- "once_cell",
- "spin 0.5.2",
- "untrusted 0.7.1",
- "web-sys",
- "winapi",
-]
-
-[[package]]
-name = "rsa"
-version = "0.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4cf22754c49613d2b3b119f0e5d46e34a2c628a937e3024b8762de4e7d8c710b"
-dependencies = [
- "byteorder",
- "digest 0.10.6",
- "num-bigint-dig",
- "num-integer",
- "num-iter",
- "num-traits",
- "pkcs1 0.3.3",
- "pkcs8 0.8.0",
- "rand_core 0.6.4",
- "smallvec",
- "subtle 2.4.1",
- "zeroize",
-]
-
-[[package]]
-name = "rsa"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "55a77d189da1fee555ad95b7e50e7457d91c0e089ec68ca69ad2989413bbdab4"
-dependencies = [
- "byteorder",
- "digest 0.10.6",
- "num-bigint-dig",
- "num-integer",
- "num-iter",
- "num-traits",
- "pkcs1 0.4.1",
- "pkcs8 0.9.0",
- "rand_core 0.6.4",
- "signature",
- "subtle 2.4.1",
- "zeroize",
-]
-
-[[package]]
-name = "rustc-hash"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
-
-[[package]]
-name = "rustc_version"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
-dependencies = [
- "semver",
-]
-
-[[package]]
-name = "rusticata-macros"
-version = "4.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632"
-dependencies = [
- "nom",
-]
-
-[[package]]
-name = "rustix"
-version = "0.36.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6da3636faa25820d8648e0e31c5d519bbb01f72fdf57131f0f5f7da5fed36eab"
-dependencies = [
- "bitflags 1.3.2",
- "errno",
- "io-lifetimes",
- "libc",
- "linux-raw-sys 0.1.4",
- "windows-sys 0.45.0",
-]
-
-[[package]]
-name = "rustix"
-version = "0.37.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c348b5dc624ecee40108aa2922fed8bad89d7fcc2b9f8cb18f632898ac4a37f9"
-dependencies = [
- "bitflags 1.3.2",
- "errno",
- "io-lifetimes",
- "libc",
- "linux-raw-sys 0.3.0",
- "windows-sys 0.45.0",
-]
-
-[[package]]
-name = "rustls"
-version = "0.20.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "539a2bfe908f471bfa933876bd1eb6a19cf2176d375f82ef7f99530a40e48c2c"
-dependencies = [
- "log",
- "ring",
- "sct",
- "webpki",
-]
-
-[[package]]
-name = "ryu"
-version = "1.0.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde"
-
-[[package]]
-name = "scopeguard"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
-
-[[package]]
-name = "sct"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4"
-dependencies = [
- "ring",
- "untrusted 0.7.1",
-]
-
-[[package]]
-name = "semver"
-version = "1.0.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58bc9567378fc7690d6b2addae4e60ac2eeea07becb2c64b9f218b53865cba2a"
-
-[[package]]
-name = "serde"
-version = "1.0.151"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97fed41fc1a24994d044e6db6935e69511a1153b52c15eb42493b26fa87feba0"
-dependencies = [
- "serde_derive",
-]
-
-[[package]]
-name = "serde_derive"
-version = "1.0.151"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "255abe9a125a985c05190d687b320c12f9b1f0b99445e608c21ba0782c719ad8"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.107",
-]
-
-[[package]]
-name = "serde_json"
-version = "1.0.91"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "877c235533714907a8c2464236f5c4b2a17262ef1bd71f38f35ea592c8da6883"
-dependencies = [
- "itoa",
- "ryu",
- "serde",
-]
-
-[[package]]
-name = "shlex"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3"
-
-[[package]]
-name = "signature"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8fe458c98333f9c8152221191a77e2a44e8325d0193484af2e9421a53019e57d"
-dependencies = [
- "digest 0.10.6",
- "rand_core 0.6.4",
-]
-
-[[package]]
-name = "simd-adler32"
-version = "0.3.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "238abfbb77c1915110ad968465608b68e869e0772622c9656714e73e5a1a522f"
-
-[[package]]
-name = "smallvec"
-version = "1.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
-
-[[package]]
-name = "spin"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
-
-[[package]]
-name = "spin"
-version = "0.9.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f6002a767bff9e83f8eeecf883ecb8011875a21ae8da43bffb817a57e78cc09"
-dependencies = [
- "lock_api",
-]
-
-[[package]]
-name = "spki"
-version = "0.5.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44d01ac02a6ccf3e07db148d2be087da624fea0221a16152ed01f0496a6b0a27"
-dependencies = [
- "base64ct",
- "der 0.5.1",
-]
-
-[[package]]
-name = "spki"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b"
-dependencies = [
- "base64ct",
- "der 0.6.1",
-]
-
-[[package]]
-name = "stable_deref_trait"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
-
-[[package]]
-name = "strsim"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
-
-[[package]]
-name = "subtle"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee"
-
-[[package]]
-name = "subtle"
-version = "2.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
-
-[[package]]
-name = "syn"
-version = "1.0.107"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
-]
-
-[[package]]
-name = "syn"
-version = "2.0.39"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
-]
-
-[[package]]
-name = "synstructure"
-version = "0.12.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.107",
- "unicode-xid",
-]
-
-[[package]]
-name = "tempfile"
-version = "3.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998"
-dependencies = [
- "cfg-if",
- "fastrand",
- "redox_syscall",
- "rustix 0.37.4",
- "windows-sys 0.45.0",
-]
-
-[[package]]
-name = "termcolor"
-version = "1.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
-dependencies = [
- "winapi-util",
-]
-
-[[package]]
-name = "textwrap"
-version = "0.16.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
-
-[[package]]
-name = "thiserror"
-version = "1.0.38"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0"
-dependencies = [
- "thiserror-impl",
-]
-
-[[package]]
-name = "thiserror-impl"
-version = "1.0.38"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.107",
-]
-
-[[package]]
-name = "time"
-version = "0.3.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a561bf4617eebd33bca6434b988f39ed798e527f51a1e797d0ee4f61c0a38376"
-dependencies = [
- "itoa",
- "serde",
- "time-core",
- "time-macros",
-]
-
-[[package]]
-name = "time-core"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd"
-
-[[package]]
-name = "time-macros"
-version = "0.2.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d967f99f534ca7e495c575c62638eebc2898a8c84c119b89e250477bc4ba16b2"
-dependencies = [
- "time-core",
-]
-
-[[package]]
-name = "toml"
-version = "0.5.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1333c76748e868a4d9d1017b5ab53171dfd095f70c712fdb4653a406547f598f"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "typenum"
-version = "1.16.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
-
-[[package]]
-name = "unicode-ident"
-version = "1.0.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc"
-
-[[package]]
-name = "unicode-xid"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
-
-[[package]]
-name = "untrusted"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
-
-[[package]]
-name = "untrusted"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
-
-[[package]]
-name = "utf16string"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b62a1e85e12d5d712bf47a85f426b73d303e2d00a90de5f3004df3596e9d216"
-dependencies = [
- "byteorder",
-]
-
-[[package]]
-name = "uuid"
-version = "1.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b55a3fef2a1e3b3a00ce878640918820d3c51081576ac657d23af9fc7928fdb"
-dependencies = [
- "getrandom 0.2.8",
-]
-
-[[package]]
-name = "version_check"
-version = "0.9.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
-
-[[package]]
-name = "wasi"
-version = "0.9.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
-
-[[package]]
-name = "wasi"
-version = "0.11.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
-
-[[package]]
-name = "wasm-bindgen"
-version = "0.2.83"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268"
-dependencies = [
- "cfg-if",
- "wasm-bindgen-macro",
-]
-
-[[package]]
-name = "wasm-bindgen-backend"
-version = "0.2.83"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142"
-dependencies = [
- "bumpalo",
- "log",
- "once_cell",
- "proc-macro2",
- "quote",
- "syn 1.0.107",
- "wasm-bindgen-shared",
-]
-
-[[package]]
-name = "wasm-bindgen-macro"
-version = "0.2.83"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810"
-dependencies = [
- "quote",
- "wasm-bindgen-macro-support",
-]
-
-[[package]]
-name = "wasm-bindgen-macro-support"
-version = "0.2.83"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.107",
- "wasm-bindgen-backend",
- "wasm-bindgen-shared",
-]
-
-[[package]]
-name = "wasm-bindgen-shared"
-version = "0.2.83"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f"
-
-[[package]]
-name = "web-sys"
-version = "0.3.60"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f"
-dependencies = [
- "js-sys",
- "wasm-bindgen",
-]
-
-[[package]]
-name = "webpki"
-version = "0.22.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07ecc0cd7cac091bf682ec5efa18b1cff79d617b84181f38b3951dbe135f607f"
-dependencies = [
- "ring",
- "untrusted 0.7.1",
-]
-
-[[package]]
-name = "winapi"
-version = "0.3.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
-dependencies = [
- "winapi-i686-pc-windows-gnu",
- "winapi-x86_64-pc-windows-gnu",
-]
-
-[[package]]
-name = "winapi-i686-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-
-[[package]]
-name = "winapi-util"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "winapi-x86_64-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-
-[[package]]
-name = "windows-sys"
-version = "0.42.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
-dependencies = [
- "windows_aarch64_gnullvm",
- "windows_aarch64_msvc",
- "windows_i686_gnu",
- "windows_i686_msvc",
- "windows_x86_64_gnu",
- "windows_x86_64_gnullvm",
- "windows_x86_64_msvc",
-]
-
-[[package]]
-name = "windows-sys"
-version = "0.45.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
-dependencies = [
- "windows-targets",
-]
-
-[[package]]
-name = "windows-targets"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
-dependencies = [
- "windows_aarch64_gnullvm",
- "windows_aarch64_msvc",
- "windows_i686_gnu",
- "windows_i686_msvc",
- "windows_x86_64_gnu",
- "windows_x86_64_gnullvm",
- "windows_x86_64_msvc",
-]
-
-[[package]]
-name = "windows_aarch64_gnullvm"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
-
-[[package]]
-name = "windows_aarch64_msvc"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
-
-[[package]]
-name = "windows_i686_gnu"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
-
-[[package]]
-name = "windows_i686_msvc"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
-
-[[package]]
-name = "windows_x86_64_gnu"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
-
-[[package]]
-name = "windows_x86_64_gnullvm"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
-
-[[package]]
-name = "windows_x86_64_msvc"
-version = "0.42.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
-
-[[package]]
-name = "x509-parser"
-version = "0.14.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e0ecbeb7b67ce215e40e3cc7f2ff902f94a223acf44995934763467e7b1febc8"
-dependencies = [
- "asn1-rs",
- "base64",
- "data-encoding",
- "der-parser",
- "lazy_static",
- "nom",
- "oid-registry",
- "rusticata-macros",
- "thiserror",
- "time",
-]
-
-[[package]]
-name = "yasna"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0de7bff972b4f2a06c85f6d8454b09df153af7e3a4ec2aac81db1b105b684ddb"
-
-[[package]]
-name = "zeroize"
-version = "1.5.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c394b5bd0c6f669e7275d9c20aa90ae064cb22e75a1cad54e1b34088034b149f"
diff --git a/pkgs/servers/teleport/13/default.nix b/pkgs/servers/teleport/13/default.nix
deleted file mode 100644
index a35385374c585..0000000000000
--- a/pkgs/servers/teleport/13/default.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-args:
-import ../generic.nix (args // {
-  version = "13.4.14";
-  hash = "sha256-g11D5lekI3pUpKf5CLUuNjejs0gN/bEemHkCj3akha0=";
-  vendorHash = "sha256-kiDhlR/P81u/yNq72JuskES/UzMrTFzJT0H3xldGk8I=";
-  yarnHash = "sha256-E9T+7aXVoERdUnVEL4va2fcMnv1jsL9Js/R2LZo4hu4=";
-  cargoLock = {
-    lockFile = ./Cargo.lock;
-    outputHashes = {
-      "rdp-rs-0.1.0" = "sha256-4NbAsEmyUdmBcHuzx+SLQCGKICC4V4FX4GTK2SzyHC0=";
-    };
-  };
-  extPatches = [
-    # https://github.com/NixOS/nixpkgs/issues/120738
-    ../tsh.patch
-  ];
-})
diff --git a/pkgs/servers/teleport/14/Cargo.lock b/pkgs/servers/teleport/14/Cargo.lock
index d8ea54f8599fc..7148f803bba23 100644
--- a/pkgs/servers/teleport/14/Cargo.lock
+++ b/pkgs/servers/teleport/14/Cargo.lock
@@ -96,9 +96,9 @@ checksum = "b645a089122eccb6111b4f81cbc1a49f5900ac4666bb93ac027feaecf15607bf"
 
 [[package]]
 name = "bindgen"
-version = "0.66.1"
+version = "0.68.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2b84e06fc203107bfbad243f4aba2af864eb7db3b1cf46ea0a023b0b433d2a7"
+checksum = "726e4313eb6ec35d2730258ad4e15b547ee75d6afaa1361a922e78e59b7d8078"
 dependencies = [
  "bitflags 2.4.0",
  "cexpr",
@@ -149,9 +149,9 @@ dependencies = [
 
 [[package]]
 name = "boring"
-version = "3.1.0"
+version = "4.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ae1aba472e42d3cf45ac6d0a6c8fc3ddf743871209e1b40229aed9fbdf48ece"
+checksum = "92667e5967bf826198f88dd3e43616973f8902769a6151616a65be1289a3c531"
 dependencies = [
  "bitflags 2.4.0",
  "boring-sys",
@@ -162,9 +162,9 @@ dependencies = [
 
 [[package]]
 name = "boring-sys"
-version = "3.1.0"
+version = "4.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ceced5be0047c7c48d77599535fd7f0a81c1b0f0a1e97e7eece24c45022bb481"
+checksum = "f04f5e0e2dc8315f68251391a4ac6da54793525c01d0206b10732b71139768cd"
 dependencies = [
  "bindgen",
  "cmake",
@@ -1233,7 +1233,7 @@ dependencies = [
 [[package]]
 name = "rdp-rs"
 version = "0.1.0"
-source = "git+https://github.com/gravitational/rdp-rs?rev=0ddb504e10051aaa8f0de57580a973d2853a5b7d#0ddb504e10051aaa8f0de57580a973d2853a5b7d"
+source = "git+https://github.com/gravitational/rdp-rs?rev=edfb5330a11d11eaf36d65e4300555368b4c6b02#edfb5330a11d11eaf36d65e4300555368b4c6b02"
 dependencies = [
  "boring",
  "bufstream",
@@ -1462,9 +1462,9 @@ dependencies = [
 
 [[package]]
 name = "shlex"
-version = "1.1.0"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3"
+checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
 
 [[package]]
 name = "signature"
diff --git a/pkgs/servers/teleport/14/default.nix b/pkgs/servers/teleport/14/default.nix
index 59cf021201ddb..456938012664d 100644
--- a/pkgs/servers/teleport/14/default.nix
+++ b/pkgs/servers/teleport/14/default.nix
@@ -1,13 +1,13 @@
 args:
 import ../generic.nix (args // {
-  version = "14.3.0";
-  hash = "sha256-yTbJeHCmPlelq7BrZQRY3XyNQiovV7NQ1tNh2NfYGbk=";
-  vendorHash = "sha256-lHsgSbY1nqQminU67QgV6FbHXNlv5tCMv2oVq48S33M=";
-  yarnHash = "sha256-m934P+KygGiCzr5fDsNTlmZ1T9JxA6P8zTimocQyVi0=";
+  version = "14.3.20";
+  hash = "sha256-oGN3t0xt7z3+U7wlhnJu4B8cSSMwONdiHZkv8UY7lkA=";
+  vendorHash = "sha256-RMTHWrbwKCGlxi9SP+8ccGk8YYqwhC8yWLPDf2Ha5bE=";
+  yarnHash = "sha256-c5ItZpq9Wp+kE9gw2WQdm5gTvBKA9I+nHAX/pT4Hqhs=";
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "rdp-rs-0.1.0" = "sha256-4NbAsEmyUdmBcHuzx+SLQCGKICC4V4FX4GTK2SzyHC0=";
+      "rdp-rs-0.1.0" = "sha256-U52FVuqo2DH/7f0cQ1qcb1GbFZ97yxExVFMX5cs0zw4=";
     };
   };
   extPatches = [
diff --git a/pkgs/servers/teleport/15/Cargo.lock b/pkgs/servers/teleport/15/Cargo.lock
index 2ca88c909399a..f3606ee85f562 100644
--- a/pkgs/servers/teleport/15/Cargo.lock
+++ b/pkgs/servers/teleport/15/Cargo.lock
@@ -1161,7 +1161,7 @@ dependencies = [
 [[package]]
 name = "ironrdp-async"
 version = "0.1.0"
-source = "git+https://github.com/Devolutions/IronRDP?rev=04d78b6581efe91095169fb8a83eef1aa2d33a2d#04d78b6581efe91095169fb8a83eef1aa2d33a2d"
+source = "git+https://github.com/Devolutions/IronRDP?rev=fd105e4b56647ab2f54aa23954aec4aaeef118e2#fd105e4b56647ab2f54aa23954aec4aaeef118e2"
 dependencies = [
  "bytes",
  "ironrdp-connector",
@@ -1172,7 +1172,7 @@ dependencies = [
 [[package]]
 name = "ironrdp-cliprdr"
 version = "0.1.0"
-source = "git+https://github.com/Devolutions/IronRDP?rev=04d78b6581efe91095169fb8a83eef1aa2d33a2d#04d78b6581efe91095169fb8a83eef1aa2d33a2d"
+source = "git+https://github.com/Devolutions/IronRDP?rev=fd105e4b56647ab2f54aa23954aec4aaeef118e2#fd105e4b56647ab2f54aa23954aec4aaeef118e2"
 dependencies = [
  "bitflags 2.4.2",
  "ironrdp-pdu",
@@ -1184,7 +1184,7 @@ dependencies = [
 [[package]]
 name = "ironrdp-connector"
 version = "0.1.0"
-source = "git+https://github.com/Devolutions/IronRDP?rev=04d78b6581efe91095169fb8a83eef1aa2d33a2d#04d78b6581efe91095169fb8a83eef1aa2d33a2d"
+source = "git+https://github.com/Devolutions/IronRDP?rev=fd105e4b56647ab2f54aa23954aec4aaeef118e2#fd105e4b56647ab2f54aa23954aec4aaeef118e2"
 dependencies = [
  "ironrdp-error",
  "ironrdp-pdu",
@@ -1197,9 +1197,20 @@ dependencies = [
 ]
 
 [[package]]
+name = "ironrdp-displaycontrol"
+version = "0.1.0"
+source = "git+https://github.com/Devolutions/IronRDP?rev=fd105e4b56647ab2f54aa23954aec4aaeef118e2#fd105e4b56647ab2f54aa23954aec4aaeef118e2"
+dependencies = [
+ "ironrdp-dvc",
+ "ironrdp-pdu",
+ "ironrdp-svc",
+ "tracing",
+]
+
+[[package]]
 name = "ironrdp-dvc"
 version = "0.1.0"
-source = "git+https://github.com/Devolutions/IronRDP?rev=04d78b6581efe91095169fb8a83eef1aa2d33a2d#04d78b6581efe91095169fb8a83eef1aa2d33a2d"
+source = "git+https://github.com/Devolutions/IronRDP?rev=fd105e4b56647ab2f54aa23954aec4aaeef118e2#fd105e4b56647ab2f54aa23954aec4aaeef118e2"
 dependencies = [
  "ironrdp-pdu",
  "ironrdp-svc",
@@ -1210,12 +1221,12 @@ dependencies = [
 [[package]]
 name = "ironrdp-error"
 version = "0.1.0"
-source = "git+https://github.com/Devolutions/IronRDP?rev=04d78b6581efe91095169fb8a83eef1aa2d33a2d#04d78b6581efe91095169fb8a83eef1aa2d33a2d"
+source = "git+https://github.com/Devolutions/IronRDP?rev=fd105e4b56647ab2f54aa23954aec4aaeef118e2#fd105e4b56647ab2f54aa23954aec4aaeef118e2"
 
 [[package]]
 name = "ironrdp-graphics"
 version = "0.1.0"
-source = "git+https://github.com/Devolutions/IronRDP?rev=04d78b6581efe91095169fb8a83eef1aa2d33a2d#04d78b6581efe91095169fb8a83eef1aa2d33a2d"
+source = "git+https://github.com/Devolutions/IronRDP?rev=fd105e4b56647ab2f54aa23954aec4aaeef118e2#fd105e4b56647ab2f54aa23954aec4aaeef118e2"
 dependencies = [
  "bit_field",
  "bitflags 2.4.2",
@@ -1232,7 +1243,7 @@ dependencies = [
 [[package]]
 name = "ironrdp-pdu"
 version = "0.1.0"
-source = "git+https://github.com/Devolutions/IronRDP?rev=04d78b6581efe91095169fb8a83eef1aa2d33a2d#04d78b6581efe91095169fb8a83eef1aa2d33a2d"
+source = "git+https://github.com/Devolutions/IronRDP?rev=fd105e4b56647ab2f54aa23954aec4aaeef118e2#fd105e4b56647ab2f54aa23954aec4aaeef118e2"
 dependencies = [
  "bit_field",
  "bitflags 2.4.2",
@@ -1254,7 +1265,7 @@ dependencies = [
 [[package]]
 name = "ironrdp-rdpdr"
 version = "0.1.0"
-source = "git+https://github.com/Devolutions/IronRDP?rev=04d78b6581efe91095169fb8a83eef1aa2d33a2d#04d78b6581efe91095169fb8a83eef1aa2d33a2d"
+source = "git+https://github.com/Devolutions/IronRDP?rev=fd105e4b56647ab2f54aa23954aec4aaeef118e2#fd105e4b56647ab2f54aa23954aec4aaeef118e2"
 dependencies = [
  "bitflags 2.4.2",
  "ironrdp-error",
@@ -1266,7 +1277,7 @@ dependencies = [
 [[package]]
 name = "ironrdp-rdpsnd"
 version = "0.1.0"
-source = "git+https://github.com/Devolutions/IronRDP?rev=04d78b6581efe91095169fb8a83eef1aa2d33a2d#04d78b6581efe91095169fb8a83eef1aa2d33a2d"
+source = "git+https://github.com/Devolutions/IronRDP?rev=fd105e4b56647ab2f54aa23954aec4aaeef118e2#fd105e4b56647ab2f54aa23954aec4aaeef118e2"
 dependencies = [
  "ironrdp-pdu",
  "ironrdp-svc",
@@ -1275,9 +1286,10 @@ dependencies = [
 [[package]]
 name = "ironrdp-session"
 version = "0.1.0"
-source = "git+https://github.com/Devolutions/IronRDP?rev=04d78b6581efe91095169fb8a83eef1aa2d33a2d#04d78b6581efe91095169fb8a83eef1aa2d33a2d"
+source = "git+https://github.com/Devolutions/IronRDP?rev=fd105e4b56647ab2f54aa23954aec4aaeef118e2#fd105e4b56647ab2f54aa23954aec4aaeef118e2"
 dependencies = [
  "ironrdp-connector",
+ "ironrdp-displaycontrol",
  "ironrdp-dvc",
  "ironrdp-error",
  "ironrdp-graphics",
@@ -1289,7 +1301,7 @@ dependencies = [
 [[package]]
 name = "ironrdp-svc"
 version = "0.1.0"
-source = "git+https://github.com/Devolutions/IronRDP?rev=04d78b6581efe91095169fb8a83eef1aa2d33a2d#04d78b6581efe91095169fb8a83eef1aa2d33a2d"
+source = "git+https://github.com/Devolutions/IronRDP?rev=fd105e4b56647ab2f54aa23954aec4aaeef118e2#fd105e4b56647ab2f54aa23954aec4aaeef118e2"
 dependencies = [
  "bitflags 2.4.2",
  "ironrdp-pdu",
@@ -1298,7 +1310,7 @@ dependencies = [
 [[package]]
 name = "ironrdp-tls"
 version = "0.1.0"
-source = "git+https://github.com/Devolutions/IronRDP?rev=04d78b6581efe91095169fb8a83eef1aa2d33a2d#04d78b6581efe91095169fb8a83eef1aa2d33a2d"
+source = "git+https://github.com/Devolutions/IronRDP?rev=fd105e4b56647ab2f54aa23954aec4aaeef118e2#fd105e4b56647ab2f54aa23954aec4aaeef118e2"
 dependencies = [
  "tokio",
  "tokio-rustls",
@@ -1308,7 +1320,7 @@ dependencies = [
 [[package]]
 name = "ironrdp-tokio"
 version = "0.1.0"
-source = "git+https://github.com/Devolutions/IronRDP?rev=04d78b6581efe91095169fb8a83eef1aa2d33a2d#04d78b6581efe91095169fb8a83eef1aa2d33a2d"
+source = "git+https://github.com/Devolutions/IronRDP?rev=fd105e4b56647ab2f54aa23954aec4aaeef118e2#fd105e4b56647ab2f54aa23954aec4aaeef118e2"
 dependencies = [
  "bytes",
  "ironrdp-async",
@@ -1972,6 +1984,8 @@ dependencies = [
  "env_logger",
  "ironrdp-cliprdr",
  "ironrdp-connector",
+ "ironrdp-displaycontrol",
+ "ironrdp-dvc",
  "ironrdp-pdu",
  "ironrdp-rdpdr",
  "ironrdp-rdpsnd",
@@ -2172,9 +2186,9 @@ dependencies = [
 
 [[package]]
 name = "rustls"
-version = "0.21.9"
+version = "0.21.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "629648aced5775d558af50b2b4c7b02983a04b312126d45eeead26e7caa498b9"
+checksum = "7fecbfb7b1444f477b345853b1fce097a2c6fb637b2bfb87e6bc5db0f043fae4"
 dependencies = [
  "log",
  "ring",
@@ -2976,9 +2990,9 @@ dependencies = [
 
 [[package]]
 name = "uuid"
-version = "1.6.1"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560"
+checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0"
 dependencies = [
  "getrandom",
  "serde",
diff --git a/pkgs/servers/teleport/15/default.nix b/pkgs/servers/teleport/15/default.nix
index a3d0bcefda34a..8c356547270a4 100644
--- a/pkgs/servers/teleport/15/default.nix
+++ b/pkgs/servers/teleport/15/default.nix
@@ -1,14 +1,14 @@
 { wasm-bindgen-cli, ... }@args:
 import ../generic.nix (args // {
-  version = "15.2.2";
-  hash = "sha256-LzJaskFaBtWkodeuT4mDNTs4+6FZj2OI+ZtjogU3KzQ=";
-  vendorHash = "sha256-D62Jk6LKdbprvkzAKoQVnEKdGQp5ITJYFf53q6154pU=";
-  yarnHash = "sha256-jpcjO1wT6m8J7LNQVeWo1j2G5P+sexrnNF1ipCZ8lCU=";
+  version = "15.3.7";
+  hash = "sha256-d+lfM1yt0xAWBqAqBCdEFcOHz32VT0EI4LybVbmjW0o=";
+  vendorHash = "sha256-pM6wy1tuMmUg8iNfeSmg8dW1cvP7G3fXa3vYuSEEdOc=";
+  yarnHash = "sha256-eWrR06FVkFxCrk+Z7BrY4dJjvEnUYzYrhSeD8ir3a08=";
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
       "boring-4.4.0" = "sha256-4wdl2kIA5oHQ0H6IddKQ+B5kRwrTeMbKe1+tAYZt2uw=";
-      "ironrdp-async-0.1.0" = "sha256-BKaVPr3O4D7DdwNJUjrU1zB7OwmJZnpJeyuMx+FqKjI=";
+      "ironrdp-async-0.1.0" = "sha256-NpBzPsvopu5Te6Ljln5rp1Wxc6O6mRB4lLh0JVnN+Xc=";
       "sspi-0.10.1" = "sha256-fkclC/plTh2d8zcmqthYmr5yXqbPTeFxI1VuaPX5vxk=";
     };
   };
diff --git a/pkgs/servers/teleport/default.nix b/pkgs/servers/teleport/default.nix
index b5fc9936e814b..79eafe5286831 100644
--- a/pkgs/servers/teleport/default.nix
+++ b/pkgs/servers/teleport/default.nix
@@ -1,7 +1,6 @@
 { callPackages, lib, ... }@args:
 let
   f = args: rec {
-    teleport_13 = import ./13 args;
     teleport_14 = import ./14 args;
     teleport_15 = import ./15 args;
     teleport = teleport_15;
diff --git a/pkgs/servers/ums/default.nix b/pkgs/servers/ums/default.nix
index e862884a457b6..bfed80373746e 100644
--- a/pkgs/servers/ums/default.nix
+++ b/pkgs/servers/ums/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = {
       description = "Universal Media Server: a DLNA-compliant UPnP Media Server";
-      license = lib.licenses.gpl2;
+      license = lib.licenses.gpl2Only;
       platforms = lib.platforms.linux;
       maintainers = with lib.maintainers; [ thall snicket2100 ];
       mainProgram = "ums";
diff --git a/pkgs/servers/uwsgi/default.nix b/pkgs/servers/uwsgi/default.nix
index 92b0131ff411e..d5ffb81196ff9 100644
--- a/pkgs/servers/uwsgi/default.nix
+++ b/pkgs/servers/uwsgi/default.nix
@@ -165,7 +165,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = {
     description = "A fast, self-healing and developer/sysadmin-friendly application container server coded in pure C";
     homepage = "https://uwsgi-docs.readthedocs.org/en/latest/";
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [ abbradar schneefux globin ];
     platforms = lib.platforms.unix;
     mainProgram = "uwsgi";
diff --git a/pkgs/servers/web-apps/discourse/asserts_patch-package_from_path.patch b/pkgs/servers/web-apps/discourse/asserts_patch-package_from_path.patch
deleted file mode 100644
index 9f7d98b069f44..0000000000000
--- a/pkgs/servers/web-apps/discourse/asserts_patch-package_from_path.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/app/assets/javascripts/discourse/package.json b/app/assets/javascripts/discourse/package.json
-index 9e4533d2..e57f8a5f 100644
---- a/app/assets/javascripts/discourse/package.json
-+++ b/app/assets/javascripts/discourse/package.json
-@@ -14,7 +14,7 @@
-     "build": "ember build",
-     "start": "ember serve",
-     "test": "ember test",
--    "postinstall": "yarn --silent --cwd .. patch-package"
-+    "postinstall": "patch-package"
-   },
-   "dependencies": {
-     "@babel/core": "^7.21.4",
diff --git a/pkgs/servers/web-apps/discourse/assets_rake_command.patch b/pkgs/servers/web-apps/discourse/assets_rake_command.patch
index b37b6d1d79944..b3e2e97ff8545 100644
--- a/pkgs/servers/web-apps/discourse/assets_rake_command.patch
+++ b/pkgs/servers/web-apps/discourse/assets_rake_command.patch
@@ -1,13 +1,13 @@
 diff --git a/lib/tasks/assets.rake b/lib/tasks/assets.rake
-index 68b5db61ac..d460b5753e 100644
+index 9608297789..5487490915 100644
 --- a/lib/tasks/assets.rake
 +++ b/lib/tasks/assets.rake
-@@ -19,7 +19,7 @@ task 'assets:precompile:before' do
- 
-     if only_assets_precompile_remaining
-       # Using exec to free up Rails app memory during ember build
--      exec "#{compile_command} && EMBER_CLI_COMPILE_DONE=1 bin/rake assets:precompile"
-+      exec "#{compile_command} && EMBER_CLI_COMPILE_DONE=1 bundle exec rake assets:precompile"
+@@ -36,7 +36,7 @@ task "assets:precompile:build" do
+     if only_ember_precompile_build_remaining
+       exec "#{compile_command}"
+     elsif only_assets_precompile_remaining
+-      exec "#{compile_command} && SKIP_EMBER_CLI_COMPILE=1 bin/rake assets:precompile"
++      exec "#{compile_command} && SKIP_EMBER_CLI_COMPILE=1 bundle exec rake assets:precompile"
      else
-       system compile_command
-     end
+       system compile_command, exception: true
+       EmberCli.clear_cache!
diff --git a/pkgs/servers/web-apps/discourse/default.nix b/pkgs/servers/web-apps/discourse/default.nix
index 57c252054eb94..79d7d096f6688 100644
--- a/pkgs/servers/web-apps/discourse/default.nix
+++ b/pkgs/servers/web-apps/discourse/default.nix
@@ -46,13 +46,13 @@
 }@args:
 
 let
-  version = "3.1.0";
+  version = "3.2.2";
 
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse";
     rev = "v${version}";
-    sha256 = "sha256-Iv7VSnK8nZDpmIwIRPedSWlftABKuMOQ4MXDGpjuWrY=";
+    sha256 = "sha256-JUCFtB5BvBytO3flq9o6iI3HPmvLU358HEmE6wbBsSk=";
   };
 
   ruby = ruby_3_2;
@@ -65,6 +65,7 @@ let
     gnutar
     git
     brotli
+    nodejs_18
 
     # Misc required system utils
     which
@@ -200,9 +201,14 @@ let
     pname = "discourse-assets";
     inherit version src;
 
+    yarnDevOfflineCache = fetchYarnDeps {
+      yarnLock = src + "/yarn.lock";
+      hash = "sha256-0s8c2V8Wl3f5kL1OIn2ps6hL7CUQD5+LJm+9LYHc+W0=";
+    };
+
     yarnOfflineCache = fetchYarnDeps {
-      yarnLock = src + "/app/assets/javascripts/yarn.lock";
-      sha256 = "0sclrv3303dgg3r08dwhd1yvi3pvlnvnikn300vjsh6c71fnzhnj";
+      yarnLock = src + "/app/assets/javascripts/yarn-ember5.lock";
+      hash = "sha256-ZBXvNdHHV92kSAswe6KA+OqaY5smf7ZKTTOiY8g78D0=";
     };
 
     nativeBuildInputs = runtimeDeps ++ [
@@ -210,9 +216,7 @@ let
       redis
       nodePackages.uglify-js
       terser
-      nodePackages.patch-package
       yarn
-      nodejs_18
       jq
       moreutils
       fixup-yarn-lock
@@ -234,13 +238,14 @@ let
       # assets precompilation task.
       ./assets_rake_command.patch
 
-      # `app/assets/javascripts/discourse/package.json`'s postinstall
-      # hook tries to call `../node_modules/.bin/patch-package`, which
-      # hasn't been `patchShebangs`-ed yet. So instead we just use
-      # `patch-package` from `nativeBuildInputs`.
-      ./asserts_patch-package_from_path.patch
+      # Little does he know, so he decided there is no need to generate the
+      # theme-transpiler over and over again. Which at the same time allows the removal
+      # of javascript devDependencies from the runtime environment.
+      ./prebuild-theme-transpiler.patch
     ];
 
+    env.RAILS_ENV = "production";
+
     # We have to set up an environment that is close enough to
     # production ready or the assets:precompile task refuses to
     # run. This means that Redis and PostgreSQL has to be running and
@@ -249,26 +254,29 @@ let
       # Yarn wants a real home directory to write cache, config, etc to
       export HOME=$NIX_BUILD_TOP/fake_home
 
-      # Make yarn install packages from our offline cache, not the registry
-      yarn config --offline set yarn-offline-mirror $yarnOfflineCache
+      yarn_install() {
+        local offlineCache=$1 yarnLock=$2
 
-      # Fixup "resolved"-entries in yarn.lock to match our offline cache
-      fixup-yarn-lock app/assets/javascripts/yarn.lock
+        # Make yarn install packages from our offline cache, not the registry
+        yarn config --offline set yarn-offline-mirror $offlineCache
 
-      export SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt
+        # Fixup "resolved"-entries in yarn.lock to match our offline cache
+        fixup-yarn-lock $yarnLock
 
-      find app/assets/javascripts -name package.json -print0 \
-        | xargs -0 -I {} bash -c "jq 'del(.scripts.postinstall)' -r <{} | sponge {}"
-      yarn install --offline --cwd app/assets/javascripts/discourse
+        # Install while ignoring hook scripts
+        yarn --offline --ignore-scripts --cwd $(dirname $yarnLock) install
+      }
 
-      patchShebangs app/assets/javascripts/node_modules/
+      # Install devDependencies for generating the theme-transpiler executed as
+      # dependent task assets:precompile:theme_transpiler before db:migrate
+      yarn_install $yarnDevOfflineCache yarn.lock
 
-      # Run `patch-package` AFTER the corresponding shebang inside `.bin/patch-package`
-      # got patched. Otherwise this will fail with
-      #     /bin/sh: line 1: /build/source/app/assets/javascripts/node_modules/.bin/patch-package: cannot execute: required file not found
-      pushd app/assets/javascripts &>/dev/null
-        yarn run patch-package
-      popd &>/dev/null
+      # Install the runtime dependencies
+      yarn_install $yarnOfflineCache app/assets/javascripts/yarn-ember5.lock
+      # Patch before running postinstall hook script
+      patchShebangs --build app/assets/javascripts
+      yarn --offline --cwd app/assets/javascripts run postinstall
+      export SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt
 
       redis-server >/dev/null &
 
@@ -286,14 +294,8 @@ let
       psql 'discourse' -tAc "CREATE EXTENSION IF NOT EXISTS pg_trgm"
       psql 'discourse' -tAc "CREATE EXTENSION IF NOT EXISTS hstore"
 
-      # Create a temporary home dir to stop bundler from complaining
-      mkdir $NIX_BUILD_TOP/tmp_home
-      export HOME=$NIX_BUILD_TOP/tmp_home
-
       ${lib.concatMapStringsSep "\n" (p: "ln -sf ${p} plugins/${p.pluginName or ""}") plugins}
 
-      export RAILS_ENV=production
-
       bundle exec rake db:migrate >/dev/null
       chmod -R +w tmp
     '';
@@ -352,6 +354,11 @@ let
 
       # Make sure the notification email setting applies
       ./notification_email.patch
+
+      # Little does he know, so he decided there is no need to generate the
+      # theme-transpiler over and over again. Which at the same time allows the removal
+      # of javascript devDependencies from the runtime environment.
+      ./prebuild-theme-transpiler.patch
     ];
 
     postPatch = ''
@@ -402,6 +409,9 @@ let
 
     passthru = {
       inherit rubyEnv runtimeEnv runtimeDeps rake mkDiscoursePlugin assets;
+      inherit (pkgs)
+        discourseAllPlugins
+      ;
       enabledPlugins = plugins;
       plugins = callPackage ./plugins/all-plugins.nix { inherit mkDiscoursePlugin; };
       ruby = rubyEnv.wrappedRuby;
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-assign/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-assign/default.nix
index 68cd69dcc3a6e..ff7df0dfc70ea 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-assign/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-assign/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-assign";
-    rev = "0cbf10b8055370445bd36536e51986bf48bdc57e";
-    sha256 = "sha256-7rJ2zQo1nCHwtVuLJUmdj66Ky2bi4Cpo+22H3DbO1uo=";
+    rev = "b796ae3fcc89b48cf777de5ee3a4c21aada9271e";
+    sha256 = "sha256-PnSD2ZuUVjH8TifHuzbkpmpfGSN/q4VWyJtkOPND44o=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-docs";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-bbcode-color/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-bbcode-color/default.nix
index 266c43e4f8e28..06bb5b659d7e5 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-bbcode-color/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-bbcode-color/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-bbcode-color";
-    rev = "35aab2e9b92f8b01633d374ea999e7fd59d020d7";
-    sha256 = "sha256-DHckx921EeQysm1UPloCrt43BJetTnZKnTbJGk15NMs=";
+    rev = "3336efe231e6c02e1dbe11ada71296af258cff58";
+    sha256 = "sha256-C2PPF8kJm0agcYcRSUUBmmxZJliPatPM1vRtjufEd4M=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-bbcode-color";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/Gemfile.lock b/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/Gemfile.lock
index 183ead8d51d44..15aafaf94c9c8 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/Gemfile.lock
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/Gemfile.lock
@@ -1,15 +1,25 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    activesupport (7.0.8)
+    activesupport (7.1.3.3)
+      base64
+      bigdecimal
       concurrent-ruby (~> 1.0, >= 1.0.2)
+      connection_pool (>= 2.2.5)
+      drb
       i18n (>= 1.6, < 2)
       minitest (>= 5.1)
+      mutex_m
       tzinfo (~> 2.0)
-    concurrent-ruby (1.2.2)
-    i18n (1.14.1)
+    base64 (0.2.0)
+    bigdecimal (3.1.8)
+    concurrent-ruby (1.2.3)
+    connection_pool (2.4.1)
+    drb (2.2.1)
+    i18n (1.14.5)
       concurrent-ruby (~> 1.0)
-    minitest (5.20.0)
+    minitest (5.23.1)
+    mutex_m (0.2.0)
     rrule (0.4.4)
       activesupport (>= 2.3)
     tzinfo (2.0.6)
@@ -22,4 +32,4 @@ DEPENDENCIES
   rrule (= 0.4.4)
 
 BUNDLED WITH
-   2.4.13
+   2.5.9
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/default.nix
index 7a6bd7f692707..235f5f717755f 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/default.nix
@@ -6,8 +6,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-calendar";
-    rev = "afc2ee684de41601d6cecc46713d139760f176a6";
-    sha256 = "sha256-rTQWO+E/Jg4zjZDYDvBrDQsox5q4dHkdQjwnJxgv3dI=";
+    rev = "455eeed541a9b5cacf627349e543028427178a44";
+    sha256 = "sha256-RXjMpeqCvAvwNsHpc3Fyms4pRXXqvarU8hWo3o1VgXY=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-calendar";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/gemset.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/gemset.nix
index 2e9b15ee5b9ee..51922b163d4b5 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/gemset.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/gemset.nix
@@ -1,24 +1,64 @@
 {
   activesupport = {
-    dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
+    dependencies = ["base64" "bigdecimal" "concurrent-ruby" "connection_pool" "drb" "i18n" "minitest" "mutex_m" "tzinfo"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "188kbwkn1lbhz40ala8ykp20jzqphgc68g3d8flin8cqa2xid0s5";
+      sha256 = "0z8kygxmz99krz9pwp947znkzf0jr64sml28df0vf1gzxlg7y57i";
       type = "gem";
     };
-    version = "7.0.8";
+    version = "7.1.3.3";
+  };
+  base64 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01qml0yilb9basf7is2614skjp8384h2pycfx86cr8023arfj98g";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
+  bigdecimal = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1gi7zqgmqwi5lizggs1jhc3zlwaqayy9rx2ah80sxy24bbnng558";
+      type = "gem";
+    };
+    version = "3.1.8";
   };
   concurrent-ruby = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0krcwb6mn0iklajwngwsg850nk8k9b35dhmc2qkbdqvmifdi2y9q";
+      sha256 = "1qh1b14jwbbj242klkyz5fc7npd4j0mvndz62gajhvl1l3wd7zc2";
       type = "gem";
     };
-    version = "1.2.2";
+    version = "1.2.3";
+  };
+  connection_pool = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1x32mcpm2cl5492kd6lbjbaf17qsssmpx9kdyr7z1wcif2cwyh0g";
+      type = "gem";
+    };
+    version = "2.4.1";
+  };
+  drb = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0h5kbj9hvg5hb3c7l425zpds0vb42phvln2knab8nmazg2zp5m79";
+      type = "gem";
+    };
+    version = "2.2.1";
   };
   i18n = {
     dependencies = ["concurrent-ruby"];
@@ -26,20 +66,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0qaamqsh5f3szhcakkak8ikxlzxqnv49n2p7504hcz2l0f4nj0wx";
+      sha256 = "1ffix518y7976qih9k1lgnc17i3v6yrlh0a3mckpxdb4wc2vrp16";
       type = "gem";
     };
-    version = "1.14.1";
+    version = "1.14.5";
   };
   minitest = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bkmfi9mb49m0fkdhl2g38i3xxa02d411gg0m8x0gvbwfmmg5ym3";
+      sha256 = "1gkslxvkhh44s21rbjvka3zsvfxxrf5pcl6f75rv2vyrzzbgis7i";
+      type = "gem";
+    };
+    version = "5.23.1";
+  };
+  mutex_m = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ma093ayps1m92q845hmpk0dmadicvifkbf05rpq9pifhin0rvxn";
       type = "gem";
     };
-    version = "5.20.0";
+    version = "0.2.0";
   };
   rrule = {
     dependencies = ["activesupport"];
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-chat-integration/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-chat-integration/default.nix
index 499d2e6447bd1..701b5479ce1d7 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-chat-integration/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-chat-integration/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-chat-integration";
-    rev = "70fea6b66b68868aa4c00b45a169436deaa142a8";
-    sha256 = "sha256-K9MmP1F0B6Na2dTqgnsjMbTQFkF+nNKkI8aF3zPAodc=";
+    rev = "2e17b03e9a435de0079ae1c2eed1b48a11ad16a9";
+    sha256 = "sha256-FOIQrpVFHak2PB8eNFv/oJwYiESJcHBqeC+MZMXnexo=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-chat-integration";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-checklist/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-checklist/default.nix
index f3fdd5459432e..ab7ee28a7f643 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-checklist/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-checklist/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-checklist";
-    rev = "d94e58c3060ee7ca0fe76339215ed9456d5f4ea4";
-    sha256 = "sha256-zTMkU8NRqxLQ3/ghYTmEhRqbCgdYsYaImHdGu7WwuFk=";
+    rev = "6fcf9fed5c3ae3baf9ddd1cca9cef4dc089996c1";
+    sha256 = "sha256-RIuoqZo7dW1DXbfbWhyyhCOGe4R5sLerzFW2TT0zO6U=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-checklist";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-data-explorer/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-data-explorer/default.nix
index 39320637ddcdc..bb21a6bdb4f63 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-data-explorer/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-data-explorer/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-data-explorer";
-    rev = "e4f8d3924a18b303c2bb7da9472cf0c060060e4e";
-    sha256 = "sha256-K+GPszO3je6NmnhIRSqSEhylUK5oEByaS0bLfAGjvB4=";
+    rev = "ebe71a7a138c856d88737eb11b5096a42d4fbaf3";
+    sha256 = "sha256-3CdA4liSrPhucOGevEbKuIYETlXpAn9qtsG0+Tr67EQ=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-data-explorer";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-docs/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-docs/default.nix
index 3dcd2b86a9692..ee3910b8e0ab0 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-docs/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-docs/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-docs";
-    rev = "a4b203274b88c5277d0b5b936de0bc0e0016726c";
-    sha256 = "sha256-R+VP/gsb2Oa6lPVMhRoGZzOBx5C7kRSxqwYpWE10GHw=";
+    rev = "94c7b7da216c66d773f800a714493f087affaac9";
+    sha256 = "sha256-4ZPv42fw5YdJ3+QUGOh5CJMWkXoUVs4bTVd9zuFekQM=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-docs";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-github/Gemfile.lock b/pkgs/servers/web-apps/discourse/plugins/discourse-github/Gemfile.lock
index 3640cbc601dad..87fbcc8f726bf 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-github/Gemfile.lock
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-github/Gemfile.lock
@@ -1,20 +1,22 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    addressable (2.8.5)
+    addressable (2.8.6)
       public_suffix (>= 2.0.2, < 6.0)
-    faraday (2.7.10)
-      faraday-net_http (>= 2.0, < 3.1)
-      ruby2_keywords (>= 0.0.4)
-    faraday-net_http (3.0.2)
+    faraday (2.9.0)
+      faraday-net_http (>= 2.0, < 3.2)
+    faraday-net_http (3.1.0)
+      net-http
+    net-http (0.4.1)
+      uri
     octokit (5.6.1)
       faraday (>= 1, < 3)
       sawyer (~> 0.9)
-    public_suffix (5.0.3)
-    ruby2_keywords (0.0.5)
+    public_suffix (5.0.5)
     sawyer (0.9.2)
       addressable (>= 2.3.5)
       faraday (>= 0.17.3, < 3)
+    uri (0.13.0)
 
 PLATFORMS
   ruby
@@ -24,4 +26,4 @@ DEPENDENCIES
   sawyer (= 0.9.2)
 
 BUNDLED WITH
-   2.4.13
+   2.5.9
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-github/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-github/default.nix
index 50a59136ecf50..c47454aad43c5 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-github/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-github/default.nix
@@ -6,8 +6,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-github";
-    rev = "8aa068d56ef010cecaabd50657e7753f4bbecc1f";
-    sha256 = "sha256-WzljuGvv6pki3ROkvhXZWQaq5D9JkCbWjdlkdRI8lHE=";
+    rev = "53e22ccbd32dd868435f66efa2d48e0389673dea";
+    sha256 = "sha256-QaKmnftCxkgGUP5U9wNYm483D+GdpcU8F96CLl8woo8=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-github";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-github/gemset.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-github/gemset.nix
index 87599999d894f..73552eb610eef 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-github/gemset.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-github/gemset.nix
@@ -5,31 +5,43 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05r1fwy487klqkya7vzia8hnklcxy4vr92m9dmni3prfwk6zpw33";
+      sha256 = "0irbdwkkjwzajq1ip6ba46q49sxnrl2cw7ddkdhsfhb6aprnm3vr";
       type = "gem";
     };
-    version = "2.8.5";
+    version = "2.8.6";
   };
   faraday = {
-    dependencies = ["faraday-net_http" "ruby2_keywords"];
+    dependencies = ["faraday-net_http"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "187clqhp9mv5mnqmjlfdp57svhsg1bggz84ak8v333j9skrnrgh9";
+      sha256 = "1qqb1rmk0f9m82iijjlqadh5yby1bhnr6svjk9vxdvh6f181988s";
       type = "gem";
     };
-    version = "2.7.10";
+    version = "2.9.0";
   };
   faraday-net_http = {
+    dependencies = ["net-http"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13byv3mp1gsjyv8k0ih4612y6vw5kqva6i03wcg4w2fqpsd950k8";
+      sha256 = "17w51yk4rrm9rpnbc3x509s619kba0jga3qrj4b17l30950vw9qn";
       type = "gem";
     };
-    version = "3.0.2";
+    version = "3.1.0";
+  };
+  net-http = {
+    dependencies = ["uri"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10n2n9aq00ih8v881af88l1zyrqgs5cl3njdw8argjwbl5ggqvm9";
+      type = "gem";
+    };
+    version = "0.4.1";
   };
   octokit = {
     dependencies = ["faraday" "sawyer"];
@@ -47,30 +59,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0n9j7mczl15r3kwqrah09cxj8hxdfawiqxa60kga2bmxl9flfz9k";
+      sha256 = "14y4vzjwf5gp0mqgs880kis0k7n2biq8i6ci6q2n315kichl1hvj";
       type = "gem";
     };
-    version = "5.0.3";
+    version = "5.0.5";
   };
-  ruby2_keywords = {
+  sawyer = {
+    dependencies = ["addressable" "faraday"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vz322p8n39hz3b4a9gkmz9y7a5jaz41zrm2ywf31dvkqm03glgz";
+      sha256 = "1jks1qjbmqm8f9kvwa81vqj39avaj9wdnzc531xm29a55bb74fps";
       type = "gem";
     };
-    version = "0.0.5";
+    version = "0.9.2";
   };
-  sawyer = {
-    dependencies = ["addressable" "faraday"];
+  uri = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1jks1qjbmqm8f9kvwa81vqj39avaj9wdnzc531xm29a55bb74fps";
+      sha256 = "094gk72ckazf495qc76gk09b5i318d5l9m7bicg2wxlrjcm3qm96";
       type = "gem";
     };
-    version = "0.9.2";
+    version = "0.13.0";
   };
 }
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-math/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-math/default.nix
index 3a07b4bfd3424..90fd6927ac946 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-math/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-math/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-math";
-    rev = "529ad1fe6da924da378a60bec48c35657bb01a68";
-    sha256 = "sha256-zhtAy0tTVMzQfPilTwfyyzxgCJD4xazOITBuliFR5Gg=";
+    rev = "2984713f68044544129b3575b9e2f9be31105293";
+    sha256 = "sha256-3jxSwjKGyKQy+ed6S2tQ27jseB9NygeiYvaldgV1XW4=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-math";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/Gemfile b/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/Gemfile
index 59c64586dc17b..d2a2d943c408e 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/Gemfile
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/Gemfile
@@ -5,6 +5,6 @@ source "https://rubygems.org"
 # gem "rails"
 gem 'bcrypt', '3.1.13'
 gem 'unix-crypt', '1.3.0'
-gem 'ffi', '1.15.5', require: false
+gem 'ffi', '1.16.3', require: false
 gem 'ffi-compiler', '1.0.1', require: false
 gem 'argon2', '2.2.0'
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/Gemfile.lock b/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/Gemfile.lock
index 75a9a363b6cce..a7bfa717ed9db 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/Gemfile.lock
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/Gemfile.lock
@@ -5,11 +5,11 @@ GEM
       ffi (~> 1.15)
       ffi-compiler (~> 1.0)
     bcrypt (3.1.13)
-    ffi (1.15.5)
+    ffi (1.16.3)
     ffi-compiler (1.0.1)
       ffi (>= 1.0.0)
       rake
-    rake (13.0.6)
+    rake (13.2.1)
     unix-crypt (1.3.0)
 
 PLATFORMS
@@ -18,9 +18,9 @@ PLATFORMS
 DEPENDENCIES
   argon2 (= 2.2.0)
   bcrypt (= 3.1.13)
-  ffi (= 1.15.5)
+  ffi (= 1.16.3)
   ffi-compiler (= 1.0.1)
   unix-crypt (= 1.3.0)
 
 BUNDLED WITH
-   2.4.13
+   2.5.9
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/default.nix
index ee8d03e66ca81..2189ba854eb7a 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/default.nix
@@ -6,8 +6,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "communiteq";
     repo = "discourse-migratepassword";
-    rev = "a95ae6bca4126172186fafcd2315f51a4504c23b";
-    sha256 = "sha256-lr2xHz+8q4XnHc/7KLX0Z2m0KMffLgGYk36zxGG9X5o=";
+    rev = "32d5fca6de3e8daf3869696ce835fefca1f00bfa";
+    sha256 = "sha256-kNYkA6zuiuUZlPgvIvaO49P8bD+nNysEsow33xG1PnI=";
   };
   meta = with lib; {
     homepage = "https://github.com/communiteq/discourse-migratepassword";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/gemset.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/gemset.nix
index 97aa9bfc70485..49174f05d0e91 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/gemset.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-migratepassword/gemset.nix
@@ -25,10 +25,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1862ydmclzy1a0cjbvm8dz7847d9rch495ib0zb64y84d3xd4bkg";
+      sha256 = "1yvii03hcgqj30maavddqamqy50h7y6xcn2wcyq72wn823zl4ckd";
       type = "gem";
     };
-    version = "1.15.5";
+    version = "1.16.3";
   };
   ffi-compiler = {
     dependencies = ["ffi" "rake"];
@@ -46,10 +46,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15whn7p9nrkxangbs9hh75q585yfn66lv0v2mhj6q6dl6x8bzr2w";
+      sha256 = "17850wcwkgi30p7yqh60960ypn7yibacjjha0av78zaxwvd3ijs6";
       type = "gem";
     };
-    version = "13.0.6";
+    version = "13.2.1";
   };
   unix-crypt = {
     groups = ["default"];
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-openid-connect/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-openid-connect/default.nix
index a467f4d17b399..aab60ca9bc9fa 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-openid-connect/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-openid-connect/default.nix
@@ -6,8 +6,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-openid-connect";
-    rev = "b1df541ad29f6f6098a1008b83393b2d400986ed";
-    sha256 = "sha256-afRd/9M0nQGkS14Q8BJhcJwMCkOku3Fr0uHxcRl44vQ=";
+    rev = "f31a869611a2fad8efadd9b2504440215169a391";
+    sha256 = "sha256-cEgAjf7EPAVKsJOmm9lj9Jm0YNFjRswOJFFHU12Q5/Y=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-openid-connect";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile.lock b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile.lock
index 88a3a3c8d6548..e7939eadbb0e7 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile.lock
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile.lock
@@ -13,4 +13,4 @@ DEPENDENCIES
   webrick (= 1.7.0)
 
 BUNDLED WITH
-   2.4.13
+   2.5.9
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/default.nix
index 95bf4c5a679a3..d0fa5b690bb6e 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/default.nix
@@ -6,8 +6,8 @@
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-prometheus";
-    rev = "8a7a46a80cc65aa0839bc5e3c3b6f8ef6544089f";
-    sha256 = "sha256-TL+pbP26LvRMKdy8CAuBEK+LZfAs8HfggMeUDaBu9hc=";
+    rev = "831dba15659055361966e0c42e6b517b3d7b133b";
+    sha256 = "sha256-b7Du8rENY/gBbkqZSu6b9KHbvklYMkIRl8IGd1W4dHk=";
   };
 
   patches = [
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-reactions/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-reactions/default.nix
index 36e4ac19c4bd6..656acb2a9b1ea 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-reactions/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-reactions/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-reactions";
-    rev = "643f807a3a2195f08211064301f0350d9f51604f";
-    sha256 = "sha256-4FdiYUNysSuOJ664G3YvlUHx/J7MLUS3kVBdXT47oEw=";
+    rev = "354695cf5fce2bf516c9be451fe4bb56e487b95a";
+    sha256 = "sha256-pTK7gcDgWAlRPrUnJikMOEd0N/DBrHE0hOP23t//MiE=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-reactions";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-saved-searches/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-saved-searches/default.nix
index 32709666189e3..150cf2216c20a 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-saved-searches/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-saved-searches/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-saved-searches";
-    rev = "7c9bdcd68951e7cef16cafe3c4bfb583bb994d2a";
-    sha256 = "sha256-6RIN12ACDCeRcxmsC3FgeIPdvovI4arn7w/Dqil1yCI=";
+    rev = "063e35ec5a905aac3332be6821b15eec6909f022";
+    sha256 = "sha256-33aBhw00/tIF0Y0isYISctn3Bd+KntrRngj6sxW30EY=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-saved-searches";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-solved/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-solved/default.nix
index ed47f9e15e924..c44d5420941f5 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-solved/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-solved/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-solved";
-    rev = "b5d487d6a5bfe2571d936eec5911d02a5f3fcc32";
-    sha256 = "sha256-Tt7B9PcsV8E7B+m8GnJw+MBz9rGYtojKt6NjBFMQvOM=";
+    rev = "a18ce6d712fafed286bcc99543dd173110c6dfb8";
+    sha256 = "sha256-MUkQ/6ChMGqSNFZO2t8amecrYZbK1OyVq5lhPeB99ow=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-solved";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-spoiler-alert/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-spoiler-alert/default.nix
index 23ce34dcd694e..56240177a73e5 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-spoiler-alert/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-spoiler-alert/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-spoiler-alert";
-    rev = "65989714af08eda44196cca3a0afe85c9e9443f9";
-    sha256 = "sha256-R/vqNEDst50+Y7anckIvhy4viBOqBemIZMh4sPt7kRM=";
+    rev = "42b77ec048b9b386a8b25a22bfec6472817da465";
+    sha256 = "sha256-BQeID+y9RvmcnuNsodOMXseVvre5QYxv+E/ul8bucUI=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-spoiler-alert";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-voting/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-voting/default.nix
index a311dbcfbfcf9..3ddbc37cf7e9d 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-voting/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-voting/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-voting";
-    rev = "6449fc15658d972e20086a3f1fae3dbac9cd9eeb";
-    sha256 = "sha256-f04LpVeodCVEB/t5Ic2dketp542Nrc0rZWbQ6hrC22g=";
+    rev = "ba41633e0abe0535fd358a0809e0b4e0c79be128";
+    sha256 = "sha256-Ni+g9mWftvYsknIoSFBRoq7IMIWPbj4mgGM+k8fjOuI=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-voting";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-yearly-review/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-yearly-review/default.nix
index 979398f7394b7..2a5b3ff7f5ec8 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-yearly-review/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-yearly-review/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-yearly-review";
-    rev = "3246c6b378f9e69e664c575efc63c2ad83bcac2f";
-    sha256 = "sha256-usHHyfYP4YAQ94f7gvNSH7VBRRkdZMmsSi9QQM8tPfY=";
+    rev = "59b98bab5ee370da4774f60ea7b5122dddcbd83a";
+    sha256 = "sha256-OIptI6T5n021AsWO/eYK3ntL0JJG7+f4OmZwdxGcfFg=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-yearly-review";
diff --git a/pkgs/servers/web-apps/discourse/prebuild-theme-transpiler.patch b/pkgs/servers/web-apps/discourse/prebuild-theme-transpiler.patch
new file mode 100644
index 0000000000000..bed44baee5709
--- /dev/null
+++ b/pkgs/servers/web-apps/discourse/prebuild-theme-transpiler.patch
@@ -0,0 +1,21 @@
+diff --git a/lib/discourse_js_processor.rb b/lib/discourse_js_processor.rb
+index 26d142fa4d..6040aba6f4 100644
+--- a/lib/discourse_js_processor.rb
++++ b/lib/discourse_js_processor.rb
+@@ -68,7 +68,7 @@ class DiscourseJsProcessor
+     TRANSPILER_PATH =
+       (
+         if Rails.env.production?
+-          "tmp/theme-transpiler.js"
++          "app/assets/javascripts/theme-transpiler.js"
+         else
+           "tmp/theme-transpiler/#{Process.pid}.js"
+         end
+@@ -87,6 +87,6 @@ class DiscourseJsProcessor
+         "node",
+         "app/assets/javascripts/theme-transpiler/build.js",
+         TRANSPILER_PATH,
+-      )
++      ) if !Rails.env.production? or !File.file?(TRANSPILER_PATH)
+       TRANSPILER_PATH
+     end
diff --git a/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile b/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile
index 647aefea8adac..f73aeecb6baab 100644
--- a/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile
+++ b/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile
@@ -6,28 +6,14 @@ source "https://rubygems.org"
 
 gem "bootsnap", require: false, platform: :mri
 
-def rails_master?
-  ENV["RAILS_MASTER"] == "1"
-end
-
-if rails_master?
-  gem "arel", git: "https://github.com/rails/arel.git"
-  gem "rails", git: "https://github.com/rails/rails.git"
-else
-  # NOTE: Until rubygems gives us optional dependencies we are stuck with this needing to be explicit
-  # this allows us to include the bits of rails we use without pieces we do not.
-  #
-  # To issue a rails update bump the version number here
-  rails_version = "7.0.5.1"
-  gem "actionmailer", rails_version
-  gem "actionpack", rails_version
-  gem "actionview", rails_version
-  gem "activemodel", rails_version
-  gem "activerecord", rails_version
-  gem "activesupport", rails_version
-  gem "railties", rails_version
-  gem "sprockets-rails"
-end
+gem "actionmailer", "< 7.1"
+gem "actionpack", "< 7.1"
+gem "actionview", "< 7.1"
+gem "activemodel", "< 7.1"
+gem "activerecord", "< 7.1"
+gem "activesupport", "< 7.1"
+gem "railties", "< 7.1"
+gem "sprockets-rails"
 
 gem "json"
 
@@ -141,10 +127,11 @@ group :test do
   gem "fakeweb", require: false
   gem "minitest", require: false
   gem "simplecov", require: false
-  gem "selenium-webdriver", require: false
+  gem "selenium-webdriver", "~> 4.14", require: false
+  gem "selenium-devtools", require: false
   gem "test-prof"
-  gem "webdrivers", require: false
   gem "rails-dom-testing", require: false
+  gem "minio_runner", require: false
 end
 
 group :test, :development do
@@ -158,7 +145,7 @@ group :test, :development do
 
   gem "rspec-rails"
 
-  gem "shoulda-matchers", require: false, github: "thoughtbot/shoulda-matchers"
+  gem "shoulda-matchers", require: false
   gem "rspec-html-matchers"
   gem "byebug", require: ENV["RM_INFO"].nil?, platform: :mri
   gem "rubocop-discourse", require: false
@@ -209,7 +196,9 @@ gem "rack-mini-profiler", require: ["enable_rails_patches"]
 
 gem "unicorn", require: false, platform: :ruby
 gem "puma", require: false
+
 gem "rbtrace", require: false, platform: :mri
+
 gem "gc_tracer", require: false, platform: :mri
 
 # required for feed importing and embedding
@@ -228,9 +217,8 @@ gem "logstash-event", require: false
 gem "logstash-logger", require: false
 gem "logster"
 
-# These are forks of sassc and sassc-rails with dart-sass support
-gem "dartsass-ruby"
-gem "dartsass-sprockets"
+# A fork of sassc with dart-sass support
+gem "sassc-embedded"
 
 gem "rotp", require: false
 
@@ -259,6 +247,11 @@ if ENV["IMPORT"] == "1"
   gem "parallel", require: false
 end
 
+group :generic_import, optional: true do
+  gem "sqlite3"
+  gem "redcarpet"
+end
+
 gem "web-push"
 gem "colored2", require: false
 gem "maxminddb"
diff --git a/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock b/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock
index 0b93bf23d097b..31af98840b1ca 100644
--- a/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock
+++ b/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock
@@ -7,63 +7,56 @@ GIT
       concurrent-ruby (~> 1.0)
       rack (> 1, < 3)
 
-GIT
-  remote: https://github.com/thoughtbot/shoulda-matchers.git
-  revision: 783a90554053002017510285bc736099b2749c22
-  specs:
-    shoulda-matchers (5.3.0)
-      activesupport (>= 5.2.0)
-
 GEM
   remote: https://rubygems.org/
   specs:
-    actionmailer (7.0.5.1)
-      actionpack (= 7.0.5.1)
-      actionview (= 7.0.5.1)
-      activejob (= 7.0.5.1)
-      activesupport (= 7.0.5.1)
+    actionmailer (7.0.8)
+      actionpack (= 7.0.8)
+      actionview (= 7.0.8)
+      activejob (= 7.0.8)
+      activesupport (= 7.0.8)
       mail (~> 2.5, >= 2.5.4)
       net-imap
       net-pop
       net-smtp
       rails-dom-testing (~> 2.0)
-    actionpack (7.0.5.1)
-      actionview (= 7.0.5.1)
-      activesupport (= 7.0.5.1)
+    actionpack (7.0.8)
+      actionview (= 7.0.8)
+      activesupport (= 7.0.8)
       rack (~> 2.0, >= 2.2.4)
       rack-test (>= 0.6.3)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.0, >= 1.2.0)
-    actionview (7.0.5.1)
-      activesupport (= 7.0.5.1)
+    actionview (7.0.8)
+      activesupport (= 7.0.8)
       builder (~> 3.1)
       erubi (~> 1.4)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.1, >= 1.2.0)
-    actionview_precompiler (0.2.3)
+    actionview_precompiler (0.3.0)
       actionview (>= 6.0.a)
     active_model_serializers (0.8.4)
       activemodel (>= 3.0)
-    activejob (7.0.5.1)
-      activesupport (= 7.0.5.1)
+    activejob (7.0.8)
+      activesupport (= 7.0.8)
       globalid (>= 0.3.6)
-    activemodel (7.0.5.1)
-      activesupport (= 7.0.5.1)
-    activerecord (7.0.5.1)
-      activemodel (= 7.0.5.1)
-      activesupport (= 7.0.5.1)
-    activesupport (7.0.5.1)
+    activemodel (7.0.8)
+      activesupport (= 7.0.8)
+    activerecord (7.0.8)
+      activemodel (= 7.0.8)
+      activesupport (= 7.0.8)
+    activesupport (7.0.8)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 1.6, < 2)
       minitest (>= 5.1)
       tzinfo (~> 2.0)
-    addressable (2.8.4)
+    addressable (2.8.6)
       public_suffix (>= 2.0.2, < 6.0)
     annotate (3.2.0)
       activerecord (>= 3.2, < 8.0)
       rake (>= 10.4, < 14.0)
     ast (2.4.2)
-    aws-eventstream (1.2.0)
+    aws-eventstream (1.3.0)
     aws-partitions (1.583.0)
     aws-sdk-core (3.130.2)
       aws-eventstream (~> 1, >= 1.0.2)
@@ -82,55 +75,50 @@ GEM
       aws-sigv4 (~> 1.1)
     aws-sigv4 (1.5.0)
       aws-eventstream (~> 1, >= 1.0.2)
+    base64 (0.2.0)
     better_errors (2.10.1)
       erubi (>= 1.0.0)
       rack (>= 0.9.0)
       rouge (>= 1.0.0)
+    bigdecimal (3.1.6)
     binding_of_caller (1.0.0)
       debug_inspector (>= 0.0.1)
-    bootsnap (1.16.0)
+    bootsnap (1.17.1)
       msgpack (~> 1.2)
     builder (3.2.4)
-    bullet (7.0.7)
+    bullet (7.1.6)
       activesupport (>= 3.0.0)
       uniform_notifier (~> 1.11)
     byebug (11.1.3)
-    capybara (3.39.2)
+    capybara (3.40.0)
       addressable
       matrix
       mini_mime (>= 0.1.3)
-      nokogiri (~> 1.8)
+      nokogiri (~> 1.11)
       rack (>= 1.6.0)
       rack-test (>= 0.6.3)
       regexp_parser (>= 1.5, < 3.0)
       xpath (~> 3.2)
-    cbor (0.5.9.6)
+    cbor (0.5.9.8)
     certified (1.0.0)
-    cgi (0.3.6)
+    cgi (0.4.1)
     chunky_png (1.4.0)
     coderay (1.1.3)
-    colored2 (3.1.2)
-    concurrent-ruby (1.2.2)
+    colored2 (4.0.0)
+    concurrent-ruby (1.2.3)
     connection_pool (2.4.1)
     cose (1.3.0)
       cbor (~> 0.5.9)
       openssl-signature_algorithm (~> 1.0)
     cppjieba_rb (0.4.2)
-    crack (0.4.5)
+    crack (0.4.6)
+      bigdecimal
       rexml
     crass (1.0.6)
-    css_parser (1.14.0)
+    css_parser (1.16.0)
       addressable
-    dartsass-ruby (3.0.1)
-      sass-embedded (~> 1.54)
-    dartsass-sprockets (3.0.0)
-      dartsass-ruby (~> 3.0)
-      railties (>= 4.0.0)
-      sprockets (> 3.0)
-      sprockets-rails
-      tilt
-    date (3.3.3)
-    debug_inspector (1.1.0)
+    date (3.3.4)
+    debug_inspector (1.2.0)
     diff-lcs (1.5.0)
     diffy (3.4.2)
     digest (3.1.1)
@@ -144,34 +132,35 @@ GEM
     docile (1.4.0)
     email_reply_trimmer (0.1.13)
     erubi (1.12.0)
-    excon (0.100.0)
-    execjs (2.8.1)
+    excon (0.109.0)
+    execjs (2.9.1)
     exifr (1.4.0)
-    fabrication (2.30.0)
+    fabrication (2.31.0)
     faker (2.23.0)
       i18n (>= 1.8.11, < 2)
     fakeweb (1.3.0)
-    faraday (2.7.10)
-      faraday-net_http (>= 2.0, < 3.1)
-      ruby2_keywords (>= 0.0.4)
-    faraday-net_http (3.0.2)
+    faraday (2.9.0)
+      faraday-net_http (>= 2.0, < 3.2)
+    faraday-net_http (3.1.0)
+      net-http
     faraday-retry (2.2.0)
       faraday (~> 2.0)
     fast_blank (1.0.1)
     fast_xs (0.8.0)
-    fastimage (2.2.7)
-    ffi (1.15.5)
+    fastimage (2.3.0)
+    ffi (1.16.3)
     fspath (3.1.2)
     gc_tracer (1.5.1)
-    globalid (1.1.0)
-      activesupport (>= 5.0)
-    google-protobuf (3.23.4)
+    globalid (1.2.1)
+      activesupport (>= 6.1)
+    google-protobuf (3.25.2)
+    google-protobuf (3.25.2-arm64-darwin)
+    google-protobuf (3.25.2-x86_64-darwin)
     guess_html_encoding (0.0.11)
     hana (1.3.7)
-    hashdiff (1.0.1)
+    hashdiff (1.1.0)
     hashie (5.0.0)
-    highline (2.1.0)
-    hkdf (1.0.0)
+    highline (3.0.1)
     htmlentities (4.3.4)
     http_accept_language (2.1.1)
     i18n (1.14.1)
@@ -182,13 +171,13 @@ GEM
       image_size (>= 1.5, < 4)
       in_threads (~> 1.3)
       progress (~> 3.0, >= 3.0.1)
-    image_size (3.3.0)
+    image_size (3.4.0)
     in_threads (1.6.0)
     jmespath (1.6.2)
-    json (2.6.3)
-    json-schema (3.0.0)
+    json (2.7.1)
+    json-schema (4.1.1)
       addressable (>= 2.8)
-    json_schemer (1.0.3)
+    json_schemer (2.1.1)
       hana (~> 1.3)
       regexp_parser (~> 2.0)
       simpleidn (~> 0.2)
@@ -196,11 +185,13 @@ GEM
     kgio (2.11.4)
     language_server-protocol (3.17.0.3)
     libv8-node (18.16.0.0)
+    libv8-node (18.16.0.0-arm64-darwin)
+    libv8-node (18.16.0.0-x86_64-darwin)
     listen (3.8.0)
       rb-fsevent (~> 0.10, >= 0.10.3)
       rb-inotify (~> 0.9, >= 0.9.10)
     literate_randomizer (0.4.0)
-    lograge (0.13.0)
+    lograge (0.14.0)
       actionpack (>= 4)
       activesupport (>= 4)
       railties (>= 4)
@@ -208,8 +199,8 @@ GEM
     logstash-event (1.2.02)
     logstash-logger (0.26.1)
       logstash-event (~> 1.2)
-    logster (2.12.2)
-    loofah (2.21.3)
+    logster (2.16.0)
+    loofah (2.22.0)
       crass (~> 1.0.2)
       nokogiri (>= 1.12.0)
     lru_redux (1.1.0)
@@ -222,40 +213,45 @@ GEM
     matrix (0.4.2)
     maxminddb (0.1.22)
     memory_profiler (1.0.1)
-    message_bus (4.3.7)
+    message_bus (4.3.8)
       rack (>= 1.1.3)
     method_source (1.0.0)
-    mini_mime (1.1.2)
-    mini_portile2 (2.8.4)
+    mini_mime (1.1.5)
+    mini_portile2 (2.8.6)
     mini_racer (0.8.0)
       libv8-node (~> 18.16.0.0)
     mini_scheduler (0.16.0)
       sidekiq (>= 4.2.3, < 7.0)
-    mini_sql (1.4.0)
+    mini_sql (1.5.0)
     mini_suffix (0.3.3)
       ffi (~> 1.9)
-    minitest (5.19.0)
+    minio_runner (0.1.2)
+    minitest (5.21.2)
     mocha (2.1.0)
       ruby2_keywords (>= 0.0.5)
     msgpack (1.7.2)
     multi_json (1.15.0)
     multi_xml (0.6.0)
     mustache (1.1.1)
-    net-http (0.3.2)
+    net-http (0.4.1)
       uri
-    net-imap (0.3.7)
+    net-imap (0.4.9.1)
       date
       net-protocol
     net-pop (0.1.2)
       net-protocol
-    net-protocol (0.2.1)
+    net-protocol (0.2.2)
       timeout
-    net-smtp (0.3.3)
+    net-smtp (0.4.0.1)
       net-protocol
-    nio4r (2.5.9)
-    nokogiri (1.15.3)
+    nio4r (2.7.0)
+    nokogiri (1.16.0)
       mini_portile2 (~> 2.8.2)
       racc (~> 1.4)
+    nokogiri (1.16.0-arm64-darwin)
+      racc (~> 1.4)
+    nokogiri (1.16.0-x86_64-darwin)
+      racc (~> 1.4)
     oauth (1.1.0)
       oauth-tty (~> 1.0, >= 1.0.1)
       snaky_hash (~> 2.0)
@@ -268,7 +264,8 @@ GEM
       multi_json (~> 1.3)
       multi_xml (~> 0.5)
       rack (>= 1.2, < 4)
-    oj (3.15.1)
+    oj (3.16.3)
+      bigdecimal (>= 3.0)
     omniauth (1.9.2)
       hashie (>= 3.4.6)
       rack (>= 1.6.2, < 3)
@@ -291,17 +288,17 @@ GEM
     omniauth-twitter (1.4.0)
       omniauth-oauth (~> 1.1)
       rack
-    openssl (3.1.0)
+    openssl (3.2.0)
     openssl-signature_algorithm (1.3.0)
       openssl (> 2.0)
     optimist (3.1.0)
-    parallel (1.23.0)
-    parallel_tests (4.2.1)
+    parallel (1.24.0)
+    parallel_tests (4.4.0)
       parallel
-    parser (3.2.2.3)
+    parser (3.3.0.5)
       ast (~> 2.4.1)
       racc
-    pg (1.4.6)
+    pg (1.5.4)
     prettier_print (1.2.1)
     progress (3.6.0)
     pry (0.14.2)
@@ -312,18 +309,19 @@ GEM
       pry (>= 0.13, < 0.15)
     pry-rails (0.3.9)
       pry (>= 0.10.4)
-    public_suffix (5.0.3)
-    puma (6.3.0)
+    public_suffix (5.0.4)
+    puma (6.4.2)
       nio4r (~> 2.0)
-    racc (1.7.1)
+    racc (1.7.3)
     rack (2.2.8)
-    rack-mini-profiler (3.1.0)
+    rack-mini-profiler (3.3.0)
       rack (>= 1.2.0)
-    rack-protection (3.0.6)
-      rack
+    rack-protection (3.2.0)
+      base64 (>= 0.1.0)
+      rack (~> 2.2, >= 2.2.4)
     rack-test (2.1.0)
       rack (>= 1.3)
-    rails-dom-testing (2.1.1)
+    rails-dom-testing (2.2.0)
       activesupport (>= 5.0.0)
       minitest
       nokogiri (>= 1.6)
@@ -337,34 +335,35 @@ GEM
     rails_multisite (5.0.0)
       activerecord (>= 6.0)
       railties (>= 6.0)
-    railties (7.0.5.1)
-      actionpack (= 7.0.5.1)
-      activesupport (= 7.0.5.1)
+    railties (7.0.8)
+      actionpack (= 7.0.8)
+      activesupport (= 7.0.8)
       method_source
       rake (>= 12.2)
       thor (~> 1.0)
       zeitwerk (~> 2.5)
     rainbow (3.1.1)
     raindrops (0.20.1)
-    rake (13.0.6)
+    rake (13.1.0)
     rb-fsevent (0.11.2)
     rb-inotify (0.10.1)
       ffi (~> 1.0)
-    rbtrace (0.4.14)
+    rbtrace (0.5.1)
       ffi (>= 1.0.6)
       msgpack (>= 0.4.3)
       optimist (>= 3.0.0)
     rchardet (1.8.0)
+    redcarpet (3.6.0)
     redis (4.8.1)
     redis-namespace (1.11.0)
       redis (>= 4)
-    regexp_parser (2.8.1)
+    regexp_parser (2.9.0)
     request_store (1.5.1)
       rack (>= 1.4)
     rexml (3.2.6)
     rinku (2.0.6)
-    rotp (6.2.2)
-    rouge (4.1.3)
+    rotp (6.3.0)
+    rouge (4.2.0)
     rqrcode (2.2.0)
       chunky_png (~> 1.0)
       rqrcode_core (~> 1.0)
@@ -384,7 +383,7 @@ GEM
     rspec-mocks (3.12.6)
       diff-lcs (>= 1.2.0, < 2.0)
       rspec-support (~> 3.12.0)
-    rspec-rails (6.0.3)
+    rspec-rails (6.1.1)
       actionpack (>= 6.1)
       activesupport (>= 6.1)
       railties (>= 6.1)
@@ -393,57 +392,68 @@ GEM
       rspec-mocks (~> 3.12)
       rspec-support (~> 3.12)
     rspec-support (3.12.1)
-    rss (0.2.9)
+    rss (0.3.0)
       rexml
-    rswag-specs (2.10.1)
-      activesupport (>= 3.1, < 7.1)
-      json-schema (>= 2.2, < 4.0)
-      railties (>= 3.1, < 7.1)
+    rswag-specs (2.13.0)
+      activesupport (>= 3.1, < 7.2)
+      json-schema (>= 2.2, < 5.0)
+      railties (>= 3.1, < 7.2)
       rspec-core (>= 2.14)
     rtlcss (0.2.1)
       mini_racer (>= 0.6.3)
-    rubocop (1.55.1)
+    rubocop (1.60.2)
       json (~> 2.3)
       language_server-protocol (>= 3.17.0)
       parallel (~> 1.10)
-      parser (>= 3.2.2.3)
+      parser (>= 3.3.0.2)
       rainbow (>= 2.2.2, < 4.0)
       regexp_parser (>= 1.8, < 3.0)
       rexml (>= 3.2.5, < 4.0)
-      rubocop-ast (>= 1.28.1, < 2.0)
+      rubocop-ast (>= 1.30.0, < 2.0)
       ruby-progressbar (~> 1.7)
       unicode-display_width (>= 2.4.0, < 3.0)
-    rubocop-ast (1.29.0)
+    rubocop-ast (1.30.0)
       parser (>= 3.2.1.0)
-    rubocop-capybara (2.18.0)
+    rubocop-capybara (2.20.0)
       rubocop (~> 1.41)
-    rubocop-discourse (3.3.0)
-      rubocop (>= 1.1.0)
-      rubocop-rspec (>= 2.0.0)
-    rubocop-factory_bot (2.23.1)
-      rubocop (~> 1.33)
-    rubocop-rspec (2.23.0)
-      rubocop (~> 1.33)
+    rubocop-discourse (3.6.0)
+      rubocop (>= 1.59.0)
+      rubocop-rspec (>= 2.25.0)
+    rubocop-factory_bot (2.25.1)
+      rubocop (~> 1.41)
+    rubocop-rspec (2.26.1)
+      rubocop (~> 1.40)
       rubocop-capybara (~> 2.17)
       rubocop-factory_bot (~> 2.22)
-    ruby-prof (1.6.3)
+    ruby-prof (1.7.0)
     ruby-progressbar (1.13.0)
     ruby-readability (0.7.0)
       guess_html_encoding (>= 0.0.4)
       nokogiri (>= 1.6.0)
     ruby2_keywords (0.0.5)
     rubyzip (2.3.2)
-    sanitize (6.0.2)
+    sanitize (6.1.0)
       crass (~> 1.0.2)
       nokogiri (>= 1.12.0)
-    sass-embedded (1.64.1)
-      google-protobuf (~> 3.23)
+    sass-embedded (1.70.0)
+      google-protobuf (~> 3.25)
       rake (>= 13.0.0)
-    selenium-webdriver (4.10.0)
+    sass-embedded (1.70.0-arm64-darwin)
+      google-protobuf (~> 3.25)
+    sass-embedded (1.70.0-x86_64-darwin)
+      google-protobuf (~> 3.25)
+    sassc-embedded (1.70.0)
+      sass-embedded (~> 1.70)
+    selenium-devtools (0.121.0)
+      selenium-webdriver (~> 4.2)
+    selenium-webdriver (4.17.0)
+      base64 (~> 0.2)
       rexml (~> 3.2, >= 3.2.5)
       rubyzip (>= 1.2.2, < 3.0)
       websocket (~> 1.0)
-    sidekiq (6.5.9)
+    shoulda-matchers (6.1.0)
+      activesupport (>= 5.2.0)
+    sidekiq (6.5.12)
       connection_pool (>= 2.2.5, < 3)
       rack (~> 2.0)
       redis (>= 4.5.0, < 5)
@@ -462,62 +472,63 @@ GEM
       actionpack (>= 5.2)
       activesupport (>= 5.2)
       sprockets (>= 3.0.0)
-    sshkey (2.0.0)
-    stackprof (0.2.25)
-    syntax_tree (6.1.1)
+    sqlite3 (1.7.1)
+      mini_portile2 (~> 2.8.0)
+    sqlite3 (1.7.1-arm64-darwin)
+    sqlite3 (1.7.1-x86_64-darwin)
+    sshkey (3.0.0)
+    stackprof (0.2.26)
+    syntax_tree (6.2.0)
       prettier_print (>= 1.2.0)
     syntax_tree-disable_ternary (1.0.0)
-    test-prof (1.2.2)
-    thor (1.2.2)
-    tilt (2.2.0)
-    timeout (0.4.0)
+    test-prof (1.3.1)
+    thor (1.3.0)
+    timeout (0.4.1)
     tzinfo (2.0.6)
       concurrent-ruby (~> 1.0)
-    tzinfo-data (1.2023.3)
+    tzinfo-data (1.2023.4)
       tzinfo (>= 1.0.0)
     uglifier (4.2.0)
       execjs (>= 0.3.0, < 3)
     unf (0.1.4)
       unf_ext
-    unf_ext (0.0.8.2)
-    unicode-display_width (2.4.2)
+    unf_ext (0.0.9.1)
+    unicode-display_width (2.5.0)
     unicorn (6.1.0)
       kgio (~> 2.6)
       raindrops (~> 0.7)
     uniform_notifier (1.16.0)
-    uri (0.12.2)
+    uri (0.13.0)
     version_gem (1.1.3)
-    web-push (3.0.0)
-      hkdf (~> 1.0)
+    web-push (3.0.1)
       jwt (~> 2.0)
       openssl (~> 3.0)
-    webdrivers (5.3.1)
-      nokogiri (~> 1.6)
-      rubyzip (>= 1.3.0)
-      selenium-webdriver (~> 4.0, < 4.11)
-    webmock (3.18.1)
+    webmock (3.19.1)
       addressable (>= 2.8.0)
       crack (>= 0.3.2)
       hashdiff (>= 0.4.0, < 2.0.0)
-    websocket (1.2.9)
+    websocket (1.2.10)
     xpath (3.2.0)
       nokogiri (~> 1.8)
     yaml-lint (0.1.2)
     yard (0.9.34)
-    zeitwerk (2.6.10)
+    zeitwerk (2.6.12)
 
 PLATFORMS
+  arm64-darwin-21
+  arm64-darwin-22
   ruby
+  x86_64-darwin-22
 
 DEPENDENCIES
-  actionmailer (= 7.0.5.1)
-  actionpack (= 7.0.5.1)
-  actionview (= 7.0.5.1)
+  actionmailer (< 7.1)
+  actionpack (< 7.1)
+  actionview (< 7.1)
   actionview_precompiler
   active_model_serializers (~> 0.8.3)
-  activemodel (= 7.0.5.1)
-  activerecord (= 7.0.5.1)
-  activesupport (= 7.0.5.1)
+  activemodel (< 7.1)
+  activerecord (< 7.1)
+  activesupport (< 7.1)
   addressable
   annotate
   aws-sdk-s3
@@ -535,8 +546,6 @@ DEPENDENCIES
   cose
   cppjieba_rb
   css_parser
-  dartsass-ruby
-  dartsass-sprockets
   diffy
   digest
   discourse-fonts
@@ -577,6 +586,7 @@ DEPENDENCIES
   mini_scheduler
   mini_sql
   mini_suffix
+  minio_runner
   minitest
   mocha
   multi_json
@@ -604,11 +614,12 @@ DEPENDENCIES
   rails-dom-testing
   rails_failover
   rails_multisite
-  railties (= 7.0.5.1)
+  railties (< 7.1)
   rake
   rb-fsevent
   rbtrace
   rchardet
+  redcarpet
   redis
   redis-namespace
   rinku
@@ -625,12 +636,15 @@ DEPENDENCIES
   ruby-readability
   rubyzip
   sanitize
-  selenium-webdriver
-  shoulda-matchers!
+  sassc-embedded
+  selenium-devtools
+  selenium-webdriver (~> 4.14)
+  shoulda-matchers
   sidekiq
   simplecov
   sprockets!
   sprockets-rails
+  sqlite3
   sshkey
   stackprof
   syntax_tree
@@ -642,10 +656,9 @@ DEPENDENCIES
   unf
   unicorn
   web-push
-  webdrivers
   webmock
   yaml-lint
   yard
 
 BUNDLED WITH
-   2.4.13
+   2.5.9
diff --git a/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix b/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix
index fc7b71f0c0306..79cba6f33bee3 100644
--- a/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix
+++ b/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pz26qpdx1xncpy5h8k4afw0npnh6wn580yvwv2cf857zrzvr1pm";
+      sha256 = "0w6gvj7ybniq89834hqww9rj2xypz9l91f8niwaws2yq1qklymr2";
       type = "gem";
     };
-    version = "7.0.5.1";
+    version = "7.0.8";
   };
   actionpack = {
     dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
@@ -16,10 +16,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "003y7cdxwzdqx8hgw02kf1b5mp8qr8syx07f35sk3ghhqxp39ksy";
+      sha256 = "1l319p0gipfgq8bp8dvbv97qqb72rad9zcqn5snhgv20cmpqr69b";
       type = "gem";
     };
-    version = "7.0.5.1";
+    version = "7.0.8";
   };
   actionview = {
     dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
@@ -27,10 +27,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "11ihpqcvz3f38ka85zdjkdcvgdbcan81dbr0y9bi784jn1v5ggwa";
+      sha256 = "0xnpdwj1d8m6c2d90jp9cs50ggiz0jj02ls2h9lg68k4k8mnjbd2";
       type = "gem";
     };
-    version = "7.0.5.1";
+    version = "7.0.8";
   };
   actionview_precompiler = {
     dependencies = ["actionview"];
@@ -38,10 +38,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "07dx8vkwig8han4zccs0chahcf9ibd4abzx9n56qah8zak5cyrhd";
+      sha256 = "07jyr2h87ha6k2y965rs4ywq142ddkfkhbmp0r44xg4wnffr8jbl";
       type = "gem";
     };
-    version = "0.2.3";
+    version = "0.3.0";
   };
   active_model_serializers = {
     dependencies = ["activemodel"];
@@ -60,10 +60,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "11wkxf16zdb9gsnc94x4hyj89wjks06gnk4fbl7gp5vkbl744n83";
+      sha256 = "1cn1ic7ml75jm0c10s7cm5mvcgfnafj0kjvvjavpjcxgz6lxcqyb";
       type = "gem";
     };
-    version = "7.0.5.1";
+    version = "7.0.8";
   };
   activemodel = {
     dependencies = ["activesupport"];
@@ -71,10 +71,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12f89hxs4s26ggsg4bnz9qxlcsclcgx9gdsl8dni5jc0gk47h14y";
+      sha256 = "004w8zaz2g3y6lnrsvlcmljll0m3ndqpgwf0wfscgq6iysibiglm";
       type = "gem";
     };
-    version = "7.0.5.1";
+    version = "7.0.8";
   };
   activerecord = {
     dependencies = ["activemodel" "activesupport"];
@@ -82,10 +82,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1sfdq2slmsc0ygncl36dq1lmjww1y3b42izrnn62cyisiag28796";
+      sha256 = "04wavps80q3pvhvfbmi4gs102y1p6mxbg8xylzvib35b6m92adpj";
       type = "gem";
     };
-    version = "7.0.5.1";
+    version = "7.0.8";
   };
   activesupport = {
     dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
@@ -93,10 +93,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0m1sa6djlm9cz6mz3lcbqqahvm6qj75dmq3phpn2ysyxnlz2hr0c";
+      sha256 = "188kbwkn1lbhz40ala8ykp20jzqphgc68g3d8flin8cqa2xid0s5";
       type = "gem";
     };
-    version = "7.0.5.1";
+    version = "7.0.8";
   };
   addressable = {
     dependencies = ["public_suffix"];
@@ -104,10 +104,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15s8van7r2ad3dq6i03l3z4hqnvxcq75a3h72kxvf9an53sqma20";
+      sha256 = "0irbdwkkjwzajq1ip6ba46q49sxnrl2cw7ddkdhsfhb6aprnm3vr";
       type = "gem";
     };
-    version = "2.8.4";
+    version = "2.8.6";
   };
   annotate = {
     dependencies = ["activerecord" "rake"];
@@ -135,10 +135,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pyis1nvnbjxk12a43xvgj2gv0mvp4cnkc1gzw0v1018r61399gz";
+      sha256 = "0gvdg4yx4p9av2glmp7vsxhs0n8fj1ga9kq2xdb8f95j7b04qhzi";
       type = "gem";
     };
-    version = "1.2.0";
+    version = "1.3.0";
   };
   aws-partitions = {
     groups = ["default"];
@@ -205,6 +205,16 @@
     };
     version = "1.5.0";
   };
+  base64 = {
+    groups = ["default" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01qml0yilb9basf7is2614skjp8384h2pycfx86cr8023arfj98g";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
   better_errors = {
     dependencies = ["erubi" "rack" "rouge"];
     groups = ["development"];
@@ -220,6 +230,16 @@
     };
     version = "2.10.1";
   };
+  bigdecimal = {
+    groups = ["default" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00db5v09k1z3539g1zrk7vkjrln9967k08adh6qx33ng97a2gg5w";
+      type = "gem";
+    };
+    version = "3.1.6";
+  };
   binding_of_caller = {
     dependencies = ["debug_inspector"];
     groups = ["development"];
@@ -241,10 +261,10 @@
     }];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vcg52gwl64xhhal6kwk1pc01y1klzdlnv1awyk89kb91z010x7q";
+      sha256 = "028qif22isxa5sg5gf1322d0qjhir5rr0jpkaiwcic4lspacdcnv";
       type = "gem";
     };
-    version = "1.16.0";
+    version = "1.17.1";
   };
   builder = {
     groups = ["default" "development" "test"];
@@ -262,10 +282,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0hyz68j0z0j24vcrs43swmlykhzypayv34kzrsbxda5lbi83gynm";
+      sha256 = "1zs6dwspb0m9ygl7lwdmilhdn9ka85a0qfiip49m9rfpfj46lps0";
       type = "gem";
     };
-    version = "7.0.7";
+    version = "7.1.6";
   };
   byebug = {
     groups = ["development" "test"];
@@ -287,20 +307,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "114qm5f5vhwaaw9rj1h2lcamh46zl13v1m18jiw68zl961gwmw6n";
+      sha256 = "1vxfah83j6zpw3v5hic0j70h519nvmix2hbszmjwm8cfawhagns2";
       type = "gem";
     };
-    version = "3.39.2";
+    version = "3.40.0";
   };
   cbor = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0511idr8xps9625nh3kxr68sdy6l3xy2kcz7r57g47fxb1v18jj3";
+      sha256 = "1dsf9gjc2cj79vrnz2vgq573biqjw7ad4b0idm05xg6rb3y9gq4y";
       type = "gem";
     };
-    version = "0.5.9.6";
+    version = "0.5.9.8";
   };
   certified = {
     groups = ["development" "test"];
@@ -317,10 +337,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18zc1z8va9j1gcv131p605wmkvn1p5958mmvvy7v45ki8c0w7qn5";
+      sha256 = "0c5494n3n6l51n1w1vc118zckbqdzk7r6b656hswg72w0bif2ja3";
       type = "gem";
     };
-    version = "0.3.6";
+    version = "0.4.1";
   };
   chunky_png = {
     groups = ["default"];
@@ -351,20 +371,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jlbqa9q4mvrm73aw9mxh23ygzbjiqwisl32d8szfb5fxvbjng5i";
+      sha256 = "1zj06gjqwykgzxmbkp2hmg3wv5kv8zz5d77acxipzcgicdjgvfan";
       type = "gem";
     };
-    version = "3.1.2";
+    version = "4.0.0";
   };
   concurrent-ruby = {
     groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0krcwb6mn0iklajwngwsg850nk8k9b35dhmc2qkbdqvmifdi2y9q";
+      sha256 = "1qh1b14jwbbj242klkyz5fc7npd4j0mvndz62gajhvl1l3wd7zc2";
       type = "gem";
     };
-    version = "1.2.2";
+    version = "1.2.3";
   };
   connection_pool = {
     groups = ["default"];
@@ -398,15 +418,15 @@
     version = "0.4.2";
   };
   crack = {
-    dependencies = ["rexml"];
+    dependencies = ["bigdecimal" "rexml"];
     groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1cr1kfpw3vkhysvkk3wg7c54m75kd68mbm9rs5azdjdq57xid13r";
+      sha256 = "0r48q8csd1ld0yrzsp45wkfnpmkhk09gsldq8rlikarnmc51s9gf";
       type = "gem";
     };
-    version = "0.4.5";
+    version = "0.4.6";
   };
   crass = {
     groups = ["default" "development" "test"];
@@ -424,52 +444,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04q1vin8slr3k8mp76qz0wqgap6f9kdsbryvgfq9fljhrm463kpj";
+      sha256 = "18mii41bbl106rn940ah8v3xclj4yrxxa0bwlwp546244n9b83zp";
       type = "gem";
     };
-    version = "1.14.0";
-  };
-  dartsass-ruby = {
-    dependencies = ["sass-embedded"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0z3gdsnyvdjgn9gwia72irqgxq04i8hv9pv60yqkd4h5nk9rx4p6";
-      type = "gem";
-    };
-    version = "3.0.1";
-  };
-  dartsass-sprockets = {
-    dependencies = ["dartsass-ruby" "railties" "sprockets" "sprockets-rails" "tilt"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1842k5i96iiz264wzzqar2m3whs2caf0d8yhbsr6qdbi4j5pzmcx";
-      type = "gem";
-    };
-    version = "3.0.0";
+    version = "1.16.0";
   };
   date = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "03skfikihpx37rc27vr3hwrb057gxnmdzxhmzd4bf4jpkl0r55w1";
+      sha256 = "149jknsq999gnhy865n33fkk22s0r447k76x9pmcnnwldfv2q7wp";
       type = "gem";
     };
-    version = "3.3.3";
+    version = "3.3.4";
   };
   debug_inspector = {
     groups = ["default" "development"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01l678ng12rby6660pmwagmyg8nccvjfgs3487xna7ay378a59ga";
+      sha256 = "18k8x9viqlkh7dbmjzh8crbjy8w480arpa766cw1dnn3xcpa1pwv";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "1.2.0";
   };
   diff-lcs = {
     groups = ["default" "development" "test"];
@@ -572,20 +570,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08r6qgbpkxxsihjmlspk3l1sr69q5hx35p1l4wp7rmkbzys89867";
+      sha256 = "1kmmwgjzlrnc3nnrdnw1z67c95nbw0hv54a73yj8jw6pcvl9585x";
       type = "gem";
     };
-    version = "0.100.0";
+    version = "0.109.0";
   };
   execjs = {
     groups = ["assets" "default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "121h6af4i6wr3wxvv84y53jcyw2sk71j5wsncm6wq6yqrwcrk4vd";
+      sha256 = "1yywajqlpjhrj1m43s3lfg3i4lkb6pxwccmwps7qw37ndmphdzg8";
       type = "gem";
     };
-    version = "2.8.1";
+    version = "2.9.1";
   };
   exifr = {
     groups = ["default"];
@@ -602,10 +600,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bxssmjp49whzq2zv7w751gr4nkdaiwcxd1vda0byigwyrnj6f5q";
+      sha256 = "1al5iv3as21l5clci0b5cg27z136pan7gkj7plp4l0w83c6z2y9c";
       type = "gem";
     };
-    version = "2.30.0";
+    version = "2.31.0";
   };
   faker = {
     dependencies = ["i18n"];
@@ -629,25 +627,26 @@
     version = "1.3.0";
   };
   faraday = {
-    dependencies = ["faraday-net_http" "ruby2_keywords"];
+    dependencies = ["faraday-net_http"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "187clqhp9mv5mnqmjlfdp57svhsg1bggz84ak8v333j9skrnrgh9";
+      sha256 = "1qqb1rmk0f9m82iijjlqadh5yby1bhnr6svjk9vxdvh6f181988s";
       type = "gem";
     };
-    version = "2.7.10";
+    version = "2.9.0";
   };
   faraday-net_http = {
+    dependencies = ["net-http"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13byv3mp1gsjyv8k0ih4612y6vw5kqva6i03wcg4w2fqpsd950k8";
+      sha256 = "17w51yk4rrm9rpnbc3x509s619kba0jga3qrj4b17l30950vw9qn";
       type = "gem";
     };
-    version = "3.0.2";
+    version = "3.1.0";
   };
   faraday-retry = {
     dependencies = ["faraday"];
@@ -697,10 +696,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pd7pamzhdz2w0fbcvsfn2nyslznvphnwj16zw35g2b28zd2xyzx";
+      sha256 = "104kn1lj55hifcpiw1x7x9slskvqmfanylcz3nj8acjgmri0av72";
       type = "gem";
     };
-    version = "2.2.7";
+    version = "2.3.0";
   };
   ffi = {
     groups = ["default" "development" "test"];
@@ -711,10 +710,10 @@
     }];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1862ydmclzy1a0cjbvm8dz7847d9rch495ib0zb64y84d3xd4bkg";
+      sha256 = "1yvii03hcgqj30maavddqamqy50h7y6xcn2wcyq72wn823zl4ckd";
       type = "gem";
     };
-    version = "1.15.5";
+    version = "1.16.3";
   };
   fspath = {
     groups = ["default"];
@@ -746,20 +745,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0kqm5ndzaybpnpxqiqkc41k4ksyxl41ln8qqr6kb130cdxsf2dxk";
+      sha256 = "1sbw6b66r7cwdx3jhs46s4lr991969hvigkjpbdl7y3i31qpdgvh";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "1.2.1";
   };
   google-protobuf = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1dq5lgkxhagqr8zjrwr10zi8rldbg2vhis2m5q86v5q9415ylfgj";
+      sha256 = "02sh4rp14wmpfv9r7xrap6xgcakg0lk6zjvq1gsi5y38swhn2blw";
       type = "gem";
     };
-    version = "3.23.4";
+    version = "3.25.2";
   };
   guess_html_encoding = {
     groups = ["default"];
@@ -786,10 +785,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1nynpl0xbj0nphqx1qlmyggq58ms1phf5i03hk64wcc0a17x1m1c";
+      sha256 = "1jf9dxgjz6z7fvymyz2acyvn9iyvwkn6d9sk7y4fxwbmfc75yimm";
       type = "gem";
     };
-    version = "1.0.1";
+    version = "1.1.0";
   };
   hashie = {
     groups = ["default"];
@@ -806,20 +805,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1f8cr014j7mdqpdb9q17fp5vb5b8n1pswqaif91s3ylg5x3pygfn";
+      sha256 = "02ghhvigqbq4252gsi4w8a9klkdkybmbz29ghfp1y6sqzlcb466a";
       type = "gem";
     };
-    version = "2.1.0";
-  };
-  hkdf = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "03g3yvfnlcjv2qw3b3yahg0x7zhwcd1bwxyj6gbn5jrc7k4kfrqg";
-      type = "gem";
-    };
-    version = "1.0.0";
+    version = "3.0.1";
   };
   htmlentities = {
     groups = ["default"];
@@ -868,10 +857,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19fspid6610sm4x0mql7iny7k0d7f21xgxqmsca0irvlvazwm4vn";
+      sha256 = "16h2gxxk212mlvphf03x1z1ddb9k3vm0lgsxbvi4fjg77x8q19f6";
       type = "gem";
     };
-    version = "3.3.0";
+    version = "3.4.0";
   };
   in_threads = {
     groups = ["default"];
@@ -898,10 +887,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0nalhin1gda4v8ybk6lq8f407cgfrj6qzn234yra4ipkmlbfmal6";
+      sha256 = "0r9jmjhg2ly3l736flk7r2al47b5c8cayh0gqkq0yhjqzc9a6zhq";
       type = "gem";
     };
-    version = "2.6.3";
+    version = "2.7.1";
   };
   json-schema = {
     dependencies = ["addressable"];
@@ -909,10 +898,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0gdvm83yaa5n8hwapwzxwfcmbypiq2i0zfx4mzz67wg55p2cnli4";
+      sha256 = "0j9dz9sf7swwmfahlngph8n9ibm0cx7mdy9zpv3w44578nbkka49";
       type = "gem";
     };
-    version = "3.0.0";
+    version = "4.1.1";
   };
   json_schemer = {
     dependencies = ["hana" "regexp_parser" "simpleidn"];
@@ -920,10 +909,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1mbf7v8bzmxyk413y16drnww68bgyzknlqmaqvj785iakja7in7x";
+      sha256 = "02gnz7wajg7f5n67vlswfi8yjvwahypy36z6hrg0qfx3cc3589qg";
       type = "gem";
     };
-    version = "1.0.3";
+    version = "2.1.1";
   };
   jwt = {
     groups = ["default"];
@@ -998,10 +987,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01kdw5dbzimb89rq4zf44zf8990czb5qxvib0hzja1l4hrha8cki";
+      sha256 = "1qcsvh9k4c0cp6agqm9a8m4x2gg7vifryqr7yxkg2x9ph9silds2";
       type = "gem";
     };
-    version = "0.13.0";
+    version = "0.14.0";
   };
   logstash-event = {
     groups = ["default"];
@@ -1029,10 +1018,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18yqcf756rzxdq5pw2qrximfryv15ib7rv2g622wjig7zhvk8wx4";
+      sha256 = "036hw6iiy64d1q3cmqi026zspr8lyzh1qw00ds6l8l2jgg8m6fsc";
       type = "gem";
     };
-    version = "2.12.2";
+    version = "2.16.0";
   };
   loofah = {
     dependencies = ["crass" "nokogiri"];
@@ -1040,10 +1029,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1p744kjpb5zk2ihklbykzii77alycjc04vpnm2ch2f3cp65imlj3";
+      sha256 = "1zkjqf37v2d7s11176cb35cl83wls5gm3adnfkn2zcc61h3nxmqh";
       type = "gem";
     };
-    version = "2.21.3";
+    version = "2.22.0";
   };
   lru_redux = {
     groups = ["default"];
@@ -1122,10 +1111,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ppqgch8xxccpmccdx37lb00112ayqjb80zz5m3w3298vdzb1kn4";
+      sha256 = "15xqp7pnicjh2868fsc6fmxw8cw32bpiaqpc5bz8cwdib09ns3qk";
       type = "gem";
     };
-    version = "4.3.7";
+    version = "4.3.8";
   };
   method_source = {
     groups = ["default" "development" "test"];
@@ -1138,24 +1127,24 @@
     version = "1.0.0";
   };
   mini_mime = {
-    groups = ["default"];
+    groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lbim375gw2dk6383qirz13hgdmxlan0vc5da2l072j3qw6fqjm5";
+      sha256 = "1vycif7pjzkr29mfk4dlqv3disc5dn0va04lkwajlpr1wkibg0c6";
       type = "gem";
     };
-    version = "1.1.2";
+    version = "1.1.5";
   };
   mini_portile2 = {
-    groups = ["default" "development" "test"];
+    groups = ["default" "development" "generic_import" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "02mj8mpd6ck5gpcnsimx5brzggw5h5mmmpq2djdypfq16wcw82qq";
+      sha256 = "149r94xi6b3jbp6bv72f8383b95ndn0p5sxnq11gs1j9jadv0ajf";
       type = "gem";
     };
-    version = "2.8.4";
+    version = "2.8.6";
   };
   mini_racer = {
     dependencies = ["libv8-node"];
@@ -1184,10 +1173,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1dgwyyya821sfj4f92sljsxmmnak2yrzsbckvy82001zgq1n3b41";
+      sha256 = "0yrxjmwhfnvcwbj9vscyq0z67sq09zl8qhmzgakq2ywy4yvcpwgg";
       type = "gem";
     };
-    version = "1.4.0";
+    version = "1.5.0";
   };
   mini_suffix = {
     dependencies = ["ffi"];
@@ -1200,15 +1189,25 @@
     };
     version = "0.3.3";
   };
+  minio_runner = {
+    groups = ["test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1c0bld2bpnfrld7g0pli3pp3b1z3a21cgahhw70i5cjr33sx88pi";
+      type = "gem";
+    };
+    version = "0.1.2";
+  };
   minitest = {
     groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jnpsbb2dbcs95p4is4431l2pw1l5pn7dfg3vkgb4ga464j0c5l6";
+      sha256 = "1hmszq7p4zp2ha3qjv1axam602rgnqhlz5zfzil7yk4nvfwcv1bn";
       type = "gem";
     };
-    version = "5.19.0";
+    version = "5.21.2";
   };
   mocha = {
     dependencies = ["ruby2_keywords"];
@@ -1271,10 +1270,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0y55ib1v2b8prqfi9ij7hca60b1j94s2bzr6vskwi3i5735472wq";
+      sha256 = "10n2n9aq00ih8v881af88l1zyrqgs5cl3njdw8argjwbl5ggqvm9";
       type = "gem";
     };
-    version = "0.3.2";
+    version = "0.4.1";
   };
   net-imap = {
     dependencies = ["date" "net-protocol"];
@@ -1282,10 +1281,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lf7wqg7czhaj51qsnmn28j7jmcxhkh3m28rl1cjrqsgjxhwj7r3";
+      sha256 = "0z9f6kfxz9qanar534gs3mk6snyvw8rnx3f6ykjn2jiziv0rv1ig";
       type = "gem";
     };
-    version = "0.3.7";
+    version = "0.4.9.1";
   };
   net-pop = {
     dependencies = ["net-protocol"];
@@ -1304,10 +1303,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0dxckrlw4q1lcn3qg4mimmjazmg9bma5gllv72f8js3p36fb3b91";
+      sha256 = "1a32l4x73hz200cm587bc29q8q9az278syw3x6fkc9d1lv5y0wxa";
       type = "gem";
     };
-    version = "0.2.1";
+    version = "0.2.2";
   };
   net-smtp = {
     dependencies = ["net-protocol"];
@@ -1315,20 +1314,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1c6md06hm5bf6rv53sk54dl2vg038pg8kglwv3rayx0vk2mdql9x";
+      sha256 = "0csspzqrg7s2v2wdp6vqqs1rra6w5ilpgnps5h52ig6rp7x2i389";
       type = "gem";
     };
-    version = "0.3.3";
+    version = "0.4.0.1";
   };
   nio4r = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0w9978zwjf1qhy3amkivab0f9syz6a7k0xgydjidaf7xc831d78f";
+      sha256 = "0xkjz56qc7hl7zy7i7bhiyw5pl85wwjsa4p70rj6s958xj2sd1lm";
       type = "gem";
     };
-    version = "2.5.9";
+    version = "2.7.0";
   };
   nokogiri = {
     dependencies = ["mini_portile2" "racc"];
@@ -1336,10 +1335,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1jw8a20a9k05fpz3q24im19b97idss3179z76yn5scc5b8lk2rl7";
+      sha256 = "1l8b0i24h4irivyhwy9xmkjbggw86cxkzkiqdqg0jpcp9qc8h4rl";
       type = "gem";
     };
-    version = "1.15.3";
+    version = "1.16.0";
   };
   oauth = {
     dependencies = ["oauth-tty" "snaky_hash" "version_gem"];
@@ -1375,14 +1374,15 @@
     version = "1.4.11";
   };
   oj = {
+    dependencies = ["bigdecimal"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vzcrsv6w5k90l75gy83dlfkv2z9pvnr82mz1nhnijmcg3rgqaz8";
+      sha256 = "0g5nx99lrwmk6ynfaacqkyijnhvi4mckm77bmvpa0jmfg068l26h";
       type = "gem";
     };
-    version = "3.15.1";
+    version = "3.16.3";
   };
   omniauth = {
     dependencies = ["hashie" "rack"];
@@ -1466,10 +1466,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0c649921vg2l939z5cc3jwd8p1v49099pdhxfk7sb9qqx5wi5873";
+      sha256 = "054d6ybgjdzxw567m7rbnd46yp6gkdbc5ihr536vxd3p15vbhjrw";
       type = "gem";
     };
-    version = "3.1.0";
+    version = "3.2.0";
   };
   openssl-signature_algorithm = {
     dependencies = ["openssl"];
@@ -1501,10 +1501,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jcc512l38c0c163ni3jgskvq1vc3mr8ly5pvjijzwvfml9lf597";
+      sha256 = "15wkxrg1sj3n1h2g8jcrn7gcapwcgxr659ypjf75z1ipkgxqxwsv";
       type = "gem";
     };
-    version = "1.23.0";
+    version = "1.24.0";
   };
   parallel_tests = {
     dependencies = ["parallel"];
@@ -1512,10 +1512,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04y02j0kyhfww41dnnjawn2gpp24smq0x21dvaa5z6pnq0fvmahv";
+      sha256 = "0mahfvfq56d476wb6p1zg3f2gph4zggb4dcly0h5rbvvkaysfvfw";
       type = "gem";
     };
-    version = "4.2.1";
+    version = "4.4.0";
   };
   parser = {
     dependencies = ["ast" "racc"];
@@ -1523,20 +1523,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1swigds85jddb5gshll1g8lkmbcgbcp9bi1d4nigwvxki8smys0h";
+      sha256 = "11r6kp8wam0nkfvnwyc1fmvky102r1vcfr84vi2p1a2wa0z32j3p";
       type = "gem";
     };
-    version = "3.2.2.3";
+    version = "3.3.0.5";
   };
   pg = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "07m6lxljabw9kyww5k5lgsxsznsm1v5l14r1la09gqka9b5kv3yr";
+      sha256 = "0pfj771p5a29yyyw58qacks464sl86d5m3jxjl5rlqqw2m3v5xq4";
       type = "gem";
     };
-    version = "1.4.6";
+    version = "1.5.4";
   };
   prettier_print = {
     groups = ["default" "development" "test"];
@@ -1596,10 +1596,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0n9j7mczl15r3kwqrah09cxj8hxdfawiqxa60kga2bmxl9flfz9k";
+      sha256 = "1bni4qjrsh2q49pnmmd6if4iv3ak36bd2cckrs6npl111n769k9m";
       type = "gem";
     };
-    version = "5.0.3";
+    version = "5.0.4";
   };
   puma = {
     dependencies = ["nio4r"];
@@ -1607,20 +1607,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1v7fmv0n4bhdcwh60dgza44iqai5pg34f5pzm4vh4i5fwx7mpqxh";
+      sha256 = "0i2vaww6qcazj0ywva1plmjnj6rk23b01szswc5jhcq7s2cikd1y";
       type = "gem";
     };
-    version = "6.3.0";
+    version = "6.4.2";
   };
   racc = {
     groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "11v3l46mwnlzlc371wr3x6yylpgafgwdf0q7hc7c1lzx6r414r5g";
+      sha256 = "01b9662zd2x9bp4rdjfid07h09zxj7kvn7f5fghbqhzc625ap1dp";
       type = "gem";
     };
-    version = "1.7.1";
+    version = "1.7.3";
   };
   rack = {
     groups = ["default" "development" "test"];
@@ -1642,21 +1642,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13dhpp1iljhqp9c8akmp6gjhx47qf83w12ns4bif26ldkignpam1";
+      sha256 = "1cbz4ih4ji2ika935x03in060kh236lyxfwk0c09p2l1wim59xcv";
       type = "gem";
     };
-    version = "3.1.0";
+    version = "3.3.0";
   };
   rack-protection = {
-    dependencies = ["rack"];
+    dependencies = ["base64" "rack"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1kpm67az1wxlg76h620in2r7agfyhv177ps268j5ggsanzddzih8";
+      sha256 = "1zzvivmdb4dkscc58i3gmcyrnypynsjwp6xgc4ylarlhqmzvlx1w";
       type = "gem";
     };
-    version = "3.0.6";
+    version = "3.2.0";
   };
   rack-test = {
     dependencies = ["rack"];
@@ -1675,10 +1675,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "17g05y7q7934z0ib4aph8h71c2qwjmlakkm7nb2ab45q0aqkfgjd";
+      sha256 = "0fx9dx1ag0s1lr6lfr34lbx5i1bvn3bhyf3w3mx6h7yz90p725g5";
       type = "gem";
     };
-    version = "2.1.1";
+    version = "2.2.0";
   };
   rails-html-sanitizer = {
     dependencies = ["loofah" "nokogiri"];
@@ -1719,10 +1719,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1z4lqqbd4i5izsg97mx5yf3gj7y5d07wgvad0jzjghjg12pf142i";
+      sha256 = "0sfc16zrcn4jgf5xczb08n6prhmqqgg9f0b4mn73zlzg6cwmqchj";
       type = "gem";
     };
-    version = "7.0.5.1";
+    version = "7.0.8";
   };
   rainbow = {
     groups = ["default" "development" "test"];
@@ -1755,10 +1755,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15whn7p9nrkxangbs9hh75q585yfn66lv0v2mhj6q6dl6x8bzr2w";
+      sha256 = "1ilr853hawi09626axx0mps4rkkmxcs54mapz9jnqvpnlwd3wsmy";
       type = "gem";
     };
-    version = "13.0.6";
+    version = "13.1.0";
   };
   rb-fsevent = {
     groups = ["development" "test"];
@@ -1791,10 +1791,10 @@
     }];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0s8prj0klfgpmpfcpdzbf149qrrsdxgnb6w6kkqc9gyars4vyaqn";
+      sha256 = "1p65p6f917al0f07sn5ca9yj92f7mk52xgnp0ahqpyrb8r6sdjz8";
       type = "gem";
     };
-    version = "0.4.14";
+    version = "0.5.1";
   };
   rchardet = {
     groups = ["default"];
@@ -1806,6 +1806,16 @@
     };
     version = "1.8.0";
   };
+  redcarpet = {
+    groups = ["generic_import"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1sg9sbf9pm91l7lac7fs4silabyn0vflxwaa2x3lrzsm0ff8ilca";
+      type = "gem";
+    };
+    version = "3.6.0";
+  };
   redis = {
     groups = ["default"];
     platforms = [];
@@ -1832,10 +1842,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "136br91alxdwh1s85z912dwz23qlhm212vy6i3wkinz3z8mkxxl3";
+      sha256 = "1ndxm0xnv27p4gv6xynk6q41irckj76q1jsqpysd9h6f86hhp841";
       type = "gem";
     };
-    version = "2.8.1";
+    version = "2.9.0";
   };
   request_store = {
     dependencies = ["rack"];
@@ -1873,10 +1883,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10mmzc85y7andsich586ndykw678qn1ns2wpjxrg0sc0gr4w3pig";
+      sha256 = "0m48hv6wpmmm6cjr6q92q78h1i610riml19k5h1dil2yws3h1m3m";
       type = "gem";
     };
-    version = "6.2.2";
+    version = "6.3.0";
   };
   rouge = {
     groups = ["default" "development"];
@@ -1887,10 +1897,10 @@
     }];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19drl3x8fw65v3mpy7fk3cf3dfrywz5alv98n2rm4pp04vdn71lw";
+      sha256 = "1fkfa0iq3r9b0zzrxpxha17avmyzci3kidzmfbf6fd1279mndpb0";
       type = "gem";
     };
-    version = "4.1.3";
+    version = "4.2.0";
   };
   rqrcode = {
     dependencies = ["chunky_png" "rqrcode_core"];
@@ -1974,10 +1984,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "086qdyz7c4s5dslm6j06mq7j4jmj958whc3yinhabnqqmz7i463d";
+      sha256 = "1clmx6qzdbpm1g8ycg38gjbqsbr8ccqi6hqyx88g8yckz1hrx55x";
       type = "gem";
     };
-    version = "6.0.3";
+    version = "6.1.1";
   };
   rspec-support = {
     groups = ["default" "development" "test"];
@@ -1995,10 +2005,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1b1zx07kr64kkpm4lssd4r1a1qyr829ppmfl85i4adcvx9mqfid0";
+      sha256 = "1wv27axi39hhr0nmaffdl5bdjqiafcvp9xhfgnsgfczsblja50sn";
       type = "gem";
     };
-    version = "0.2.9";
+    version = "0.3.0";
   };
   rswag-specs = {
     dependencies = ["activesupport" "json-schema" "railties" "rspec-core"];
@@ -2006,10 +2016,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0p0blh8p6zj8vsiw585wiy6zpyn8p3ksn0z92ijfzaw7afvcvl8j";
+      sha256 = "1iyqd95l8r8m6jna451xb20lsp0jiajk1gbw845qlyqf6d69xyx2";
       type = "gem";
     };
-    version = "2.10.1";
+    version = "2.13.0";
   };
   rtlcss = {
     dependencies = ["mini_racer"];
@@ -2028,10 +2038,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0s9p5qaqq68h5s3ys8xlk9swccma7arjif1w58987n6gicrsprrm";
+      sha256 = "0v67rgbhzanbf02fy5xasaxgmhxghlqb2cxjvbplinm2zfzs0380";
       type = "gem";
     };
-    version = "1.55.1";
+    version = "1.60.2";
   };
   rubocop-ast = {
     dependencies = ["parser"];
@@ -2039,10 +2049,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "188bs225kkhrb17dsf3likdahs2p1i1sqn0pr3pvlx50g6r2mnni";
+      sha256 = "1cs9cc5p9q70valk4na3lki4xs88b52486p2v46yx3q1n5969bgs";
       type = "gem";
     };
-    version = "1.29.0";
+    version = "1.30.0";
   };
   rubocop-capybara = {
     dependencies = ["rubocop"];
@@ -2050,10 +2060,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01fn05a87g009ch1sh00abdmgjab87i995msap26vxq1a5smdck6";
+      sha256 = "0f5r9di123hc4x2h453a143986plfzz9935bwc7267wj8awl8s1a";
       type = "gem";
     };
-    version = "2.18.0";
+    version = "2.20.0";
   };
   rubocop-discourse = {
     dependencies = ["rubocop" "rubocop-rspec"];
@@ -2061,10 +2071,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1sycsgagz7iq4j4aflzkzjlclvsck9yacjlj1pzzmfpjbbka34x8";
+      sha256 = "0f133ky0rl3zn2kb0dnzb4fvnx3w731a47f0sb91n5pisdz3ncyq";
       type = "gem";
     };
-    version = "3.3.0";
+    version = "3.6.0";
   };
   rubocop-factory_bot = {
     dependencies = ["rubocop"];
@@ -2072,10 +2082,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0kqchl8f67k2g56sq2h1sm2wb6br5gi47s877hlz94g5086f77n1";
+      sha256 = "0d012phc7z5h1j1d2aisnbkmqlb95sld5jriia5qg2gpgbg1nxb2";
       type = "gem";
     };
-    version = "2.23.1";
+    version = "2.25.1";
   };
   rubocop-rspec = {
     dependencies = ["rubocop" "rubocop-capybara" "rubocop-factory_bot"];
@@ -2083,10 +2093,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0l364y00bw1zcs3grdxcxpn48vfrjds2khsiaxjqq3r9grvbprfy";
+      sha256 = "0n24wy34shczlr5fnim7vcbrgvs0hffzw89n06fxziim9iws406s";
       type = "gem";
     };
-    version = "2.23.0";
+    version = "2.26.1";
   };
   ruby-prof = {
     groups = ["development"];
@@ -2097,10 +2107,10 @@
     }];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13fsfw43zx9pcix1fzxb95g09yadqjvc8971k74krrjz81vbyh51";
+      sha256 = "0hnalxnvli6248g34n0bj8p3v35vpabak34qjg778bbaavbqg5h5";
       type = "gem";
     };
-    version = "1.6.3";
+    version = "1.7.0";
   };
   ruby-progressbar = {
     groups = ["default" "development" "test"];
@@ -2149,10 +2159,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1kymrjdpbmn4yaml3aaqyj1dzj8gqmm9h030dc2rj5mvja7fpi28";
+      sha256 = "0wsw05y0h1ln3x2kvcw26fs9ivryb4xbjrb4hsk2pishkhydkz4j";
       type = "gem";
     };
-    version = "6.0.2";
+    version = "6.1.0";
   };
   sass-embedded = {
     dependencies = ["google-protobuf" "rake"];
@@ -2160,34 +2170,54 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15k44qn8vk8ap8khkmpsiw40pywm9pkx4a5yhm8vfi2rgqci9k90";
+      sha256 = "1pmsiivj7azcmbxadkkvnmkhj1w6r1knbg0gwcg1g1pafpnpf7p7";
+      type = "gem";
+    };
+    version = "1.70.0";
+  };
+  sassc-embedded = {
+    dependencies = ["sass-embedded"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ym7kh6zyygnxpjdsqbflwl0gjnyr25qn1dxygajaj4ww464ibya";
+      type = "gem";
+    };
+    version = "1.70.0";
+  };
+  selenium-devtools = {
+    dependencies = ["selenium-webdriver"];
+    groups = ["test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1l2qf5w0bk01s50gzx8clzw4zchff9a01kk2s8fnpz65g7rgh4g9";
       type = "gem";
     };
-    version = "1.64.1";
+    version = "0.121.0";
   };
   selenium-webdriver = {
-    dependencies = ["rexml" "rubyzip" "websocket"];
+    dependencies = ["base64" "rexml" "rubyzip" "websocket"];
     groups = ["test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0hwxxvx6j95ln82pjmrgyzg6qmf511dkcp5q79n6m5m8z4way8m3";
+      sha256 = "0g3l3invk95w1f72mpp0r4hc3vsc3070c1xd1wg76kfg2r182xnq";
       type = "gem";
     };
-    version = "4.10.0";
+    version = "4.17.0";
   };
   shoulda-matchers = {
     dependencies = ["activesupport"];
     groups = ["development" "test"];
     platforms = [];
     source = {
-      fetchSubmodules = false;
-      rev = "783a90554053002017510285bc736099b2749c22";
-      sha256 = "10rw7ksi462fxamap6kimdy7hpdgx8477r6zs1kgrbakx24dm3wx";
-      type = "git";
-      url = "https://github.com/thoughtbot/shoulda-matchers.git";
+      remotes = ["https://rubygems.org"];
+      sha256 = "1p83ca48h812h5gksw2q0x5289jsc4c417f8s6w9d4a12jzw86zi";
+      type = "gem";
     };
-    version = "5.3.0";
+    version = "6.1.0";
   };
   sidekiq = {
     dependencies = ["connection_pool" "rack" "redis"];
@@ -2195,10 +2225,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0iv7vgqyrpymiwvc3ca24sl4lda8m627p657p0v4xzdpzincrnbr";
+      sha256 = "0zqr9is8y7mg5dfs1q8w5jl9spwvqkhbi9r6np8208n40hi3pydl";
       type = "gem";
     };
-    version = "6.5.9";
+    version = "6.5.12";
   };
   simplecov = {
     dependencies = ["docile" "simplecov-html" "simplecov_json_formatter"];
@@ -2277,15 +2307,26 @@
     };
     version = "3.4.2";
   };
+  sqlite3 = {
+    dependencies = ["mini_portile2"];
+    groups = ["generic_import"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vkgmg63fa0m0fbyxdv7sn5mq3jpiz6r88yix2g3vdc6w0h94gcr";
+      type = "gem";
+    };
+    version = "1.7.1";
+  };
   sshkey = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "03bkn55qsng484iqwz2lmm6rkimj01vsvhwk661s3lnmpkl65lbp";
+      sha256 = "1k8i5pzjhcnyf0bhcyn5iixpfp4pz0556rcxwpglh6p0sr8s6nv5";
       type = "gem";
     };
-    version = "2.0.0";
+    version = "3.0.0";
   };
   stackprof = {
     groups = ["default"];
@@ -2296,10 +2337,10 @@
     }];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bhdgfb0pmw9mav1kw9fn0ka012sa0i3h5ppvqssw5xq48nhxnr8";
+      sha256 = "1gdqqwnampxmc54nf6zfy9apkmkpdavzipvfssmjlhnrrjy8qh7f";
       type = "gem";
     };
-    version = "0.2.25";
+    version = "0.2.26";
   };
   syntax_tree = {
     dependencies = ["prettier_print"];
@@ -2307,10 +2348,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "162m5xhbiq315bncp49ziddws537dv09pqsgrzsrmhhsymhgy0zb";
+      sha256 = "0g9l9acknjr2yz8ynfxbcrwx2ws3wh96pfzdb31g66k08v1022m5";
       type = "gem";
     };
-    version = "6.1.1";
+    version = "6.2.0";
   };
   syntax_tree-disable_ternary = {
     groups = ["development" "test"];
@@ -2327,40 +2368,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08j5456rdpgxvv8bs44x81jrxzpxb79wxfxdq4fqwxyircxzi2jj";
+      sha256 = "08vm33d51zdan4zj4cccw3lx06p6flc1h40kgdfm9rp4x83csdda";
       type = "gem";
     };
-    version = "1.2.2";
+    version = "1.3.1";
   };
   thor = {
     groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0k7j2wn14h1pl4smibasw0bp66kg626drxb59z7rzflch99cd4rg";
-      type = "gem";
-    };
-    version = "1.2.2";
-  };
-  tilt = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0bmjgbv8158klwp2r3klxjwaj93nh1sbl4xvj9wsha0ic478avz7";
+      sha256 = "1hx77jxkrwi66yvs10wfxqa8s25ds25ywgrrf66acm9nbfg7zp0s";
       type = "gem";
     };
-    version = "2.2.0";
+    version = "1.3.0";
   };
   timeout = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1d9cvm0f4zdpwa795v3zv4973y5zk59j7s1x3yn90jjrhcz1yvfd";
+      sha256 = "16mvvsmx90023wrhf8dxc1lpqh0m8alk65shb7xcya6a9gflw7vg";
       type = "gem";
     };
-    version = "0.4.0";
+    version = "0.4.1";
   };
   tzinfo = {
     dependencies = ["concurrent-ruby"];
@@ -2379,10 +2410,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0m2d0gpsgqnv29j5h2d6g57g0rayvd460b8s2vjr8sn46bqf89m5";
+      sha256 = "1v3k61zcbxfmf150d4vky6cbdmyrn3yljsl9na1y3i52v7zsbdnx";
       type = "gem";
     };
-    version = "1.2023.3";
+    version = "1.2023.4";
   };
   uglifier = {
     dependencies = ["execjs"];
@@ -2411,20 +2442,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1yj2nz2l101vr1x9w2k83a0fag1xgnmjwp8w8rw4ik2rwcz65fch";
+      sha256 = "1sf6bxvf6x8gihv6j63iakixmdddgls58cpxpg32chckb2l18qcj";
       type = "gem";
     };
-    version = "0.0.8.2";
+    version = "0.0.9.1";
   };
   unicode-display_width = {
     groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1gi82k102q7bkmfi7ggn9ciypn897ylln1jk9q67kjhr39fj043a";
+      sha256 = "1d0azx233nags5jx3fqyr23qa2rhgzbhv8pxp46dgbg1mpf82xky";
       type = "gem";
     };
-    version = "2.4.2";
+    version = "2.5.0";
   };
   unicorn = {
     dependencies = ["kgio" "raindrops"];
@@ -2458,10 +2489,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0fa49cdssxllj1j37a56kq27wsibx5lmqxkqdk1rz3452y0bsydy";
+      sha256 = "094gk72ckazf495qc76gk09b5i318d5l9m7bicg2wxlrjcm3qm96";
       type = "gem";
     };
-    version = "0.12.2";
+    version = "0.13.0";
   };
   version_gem = {
     groups = ["default"];
@@ -2474,26 +2505,15 @@
     version = "1.1.3";
   };
   web-push = {
-    dependencies = ["hkdf" "jwt" "openssl"];
+    dependencies = ["jwt" "openssl"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1jsximg9v44rpclhjxp03fxk68jx675pghwxc66wj7rn9h9fc54i";
+      sha256 = "13diqh61rl658gwq0c2ds41z59i0x4plj5k4v98qkgd3pgrd4kav";
       type = "gem";
     };
-    version = "3.0.0";
-  };
-  webdrivers = {
-    dependencies = ["nokogiri" "rubyzip" "selenium-webdriver"];
-    groups = ["test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "19aaxhawzv7315rh285gd1fg6m6wbrn3w3kilyibci1wphgm7mfp";
-      type = "gem";
-    };
-    version = "5.3.1";
+    version = "3.0.1";
   };
   webmock = {
     dependencies = ["addressable" "crack" "hashdiff"];
@@ -2501,20 +2521,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1myj44wvbbqvv18ragv3ihl0h61acgnfwrnj3lccdgp49bgmbjal";
+      sha256 = "0vfispr7wd2p1fs9ckn1qnby1yyp4i1dl7qz8n482iw977iyxrza";
       type = "gem";
     };
-    version = "3.18.1";
+    version = "3.19.1";
   };
   websocket = {
     groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0dib6p55sl606qb4vpwrvj5wh881kk4aqn2zpfapf8ckx7g14jw8";
+      sha256 = "1a4zc8d0d91c3xqwapda3j3zgpfwdbj76hkb69xn6qvfkfks9h9c";
       type = "gem";
     };
-    version = "1.2.9";
+    version = "1.2.10";
   };
   xpath = {
     dependencies = ["nokogiri"];
@@ -2552,9 +2572,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06vf6y5ai20ry3b1h9cl7vsdj6i5valq172zdxpnfhj5zvlp104j";
+      sha256 = "1gir0if4nryl1jhwi28669gjwhxb7gzrm1fcc8xzsch3bnbi47jn";
       type = "gem";
     };
-    version = "2.6.10";
+    version = "2.6.12";
   };
 }
diff --git a/pkgs/servers/web-apps/discourse/unicorn_logging_and_timeout.patch b/pkgs/servers/web-apps/discourse/unicorn_logging_and_timeout.patch
index 88ebc1337487b..d85e4bf98676c 100644
--- a/pkgs/servers/web-apps/discourse/unicorn_logging_and_timeout.patch
+++ b/pkgs/servers/web-apps/discourse/unicorn_logging_and_timeout.patch
@@ -1,13 +1,13 @@
 diff --git a/config/unicorn.conf.rb b/config/unicorn.conf.rb
-index e69979adfe..68cb04a036 100644
+index 9fd348b074..40eb73b96e 100644
 --- a/config/unicorn.conf.rb
 +++ b/config/unicorn.conf.rb
-@@ -27,18 +27,10 @@ pid (ENV["UNICORN_PID_PATH"] || "#{discourse_path}/tmp/pids/unicorn.pid")
- 
+@@ -27,17 +27,9 @@ pid(ENV["UNICORN_PID_PATH"] || "#{discourse_path}/tmp/pids/unicorn.pid")
+
  if ENV["RAILS_ENV"] != "production"
    logger Logger.new(STDOUT)
 -  # we want a longer timeout in dev cause first request can be really slow
--  timeout (ENV["UNICORN_TIMEOUT"] && ENV["UNICORN_TIMEOUT"].to_i || 60)
+-  timeout(ENV["UNICORN_TIMEOUT"] && ENV["UNICORN_TIMEOUT"].to_i || 60)
 -else
 -  # By default, the Unicorn logger will write to stderr.
 -  # Additionally, some applications/frameworks log to stderr or stdout,
@@ -17,9 +17,8 @@ index e69979adfe..68cb04a036 100644
 -  # nuke workers after 30 seconds instead of 60 seconds (the default)
 -  timeout 30
  end
- 
-+timeout (ENV["UNICORN_TIMEOUT"] && ENV["UNICORN_TIMEOUT"].to_i || 60)
+
++timeout(ENV["UNICORN_TIMEOUT"] && ENV["UNICORN_TIMEOUT"].to_i || 60)
 +
  # important for Ruby 2.0
  preload_app true
- 
diff --git a/pkgs/servers/web-apps/discourse/update.py b/pkgs/servers/web-apps/discourse/update.py
index 9b300d1d4959f..5d17b9798b600 100755
--- a/pkgs/servers/web-apps/discourse/update.py
+++ b/pkgs/servers/web-apps/discourse/update.py
@@ -1,5 +1,5 @@
 #!/usr/bin/env nix-shell
-#! nix-shell -i python3 -p bundix bundler nix-update nix-universal-prefetch python3 python3Packages.requests python3Packages.click python3Packages.click-log prefetch-yarn-deps
+#! nix-shell -i python3 -p bundix bundler nix-update nix-universal-prefetch "python3.withPackages (ps: with ps; [ requests click click-log packaging ])" prefetch-yarn-deps
 from __future__ import annotations
 
 import click
@@ -15,8 +15,7 @@ import json
 import requests
 import textwrap
 from functools import total_ordering
-from distutils.version import LooseVersion
-from itertools import zip_longest
+from packaging.version import Version
 from pathlib import Path
 from typing import Union, Iterable
 
@@ -47,33 +46,16 @@ class DiscourseVersion:
         else:
             self.tag = 'v' + version
             self.version = version
-        self.split_version = LooseVersion(self.version).version
+
+        self._version = Version(self.version)
 
     def __eq__(self, other: DiscourseVersion):
         """Versions are equal when their individual parts are."""
-        return self.split_version == other.split_version
+        return self._version == other._version
 
     def __gt__(self, other: DiscourseVersion):
-        """Check if this version is greater than the other.
-
-        Goes through the parts of the version numbers from most to
-        least significant, only continuing on to the next if the
-        numbers are equal and no decision can be made. If one version
-        ends in 'betaX' and the other doesn't, all else being equal,
-        the one without 'betaX' is considered greater, since it's the
-        release version.
-
-        """
-        for (this_ver, other_ver) in zip_longest(self.split_version, other.split_version):
-            if this_ver == other_ver:
-                continue
-            if type(this_ver) is int and type(other_ver) is int:
-                return this_ver > other_ver
-            elif 'beta' in [this_ver, other_ver]:
-                # release version (None) is greater than beta
-                return this_ver is None
-        else:
-            return False
+        """Check if this version is greater than the other."""
+        return self._version > other._version
 
 
 class DiscourseRepo:
@@ -104,11 +86,12 @@ class DiscourseRepo:
 
         return self._latest_commit_sha
 
-    def get_yarn_lock_hash(self, rev: str):
-        yarnLockText = self.get_file('app/assets/javascripts/yarn.lock', rev)
+    def get_yarn_lock_hash(self, rev: str, path: str):
+        yarnLockText = self.get_file(path, rev)
         with tempfile.NamedTemporaryFile(mode='w') as lockFile:
             lockFile.write(yarnLockText)
-            return subprocess.check_output(['prefetch-yarn-deps', lockFile.name]).decode('utf-8').strip()
+            hash = subprocess.check_output(['prefetch-yarn-deps', lockFile.name]).decode().strip()
+            return subprocess.check_output(["nix", "hash", "to-sri", "--type", "sha256", hash]).decode().strip()
 
     def get_file(self, filepath, rev):
         """Return file contents at a given rev.
@@ -242,6 +225,8 @@ def update(rev):
         with open(rubyenv_dir / fn, 'w') as f:
             f.write(repo.get_file(fn, version.tag))
 
+    # work around https://github.com/nix-community/bundix/issues/8
+    os.environ["BUNDLE_FORCE_RUBY_PLATFORM"] = "true"
     subprocess.check_output(['bundle', 'lock'], cwd=rubyenv_dir)
     _remove_platforms(rubyenv_dir)
     subprocess.check_output(['bundix'], cwd=rubyenv_dir)
@@ -249,11 +234,17 @@ def update(rev):
     _call_nix_update('discourse', version.version)
 
     old_yarn_hash = _nix_eval('discourse.assets.yarnOfflineCache.outputHash')
-    new_yarn_hash = repo.get_yarn_lock_hash(version.tag)
-    click.echo(f"Updating yarn lock hash, {old_yarn_hash} -> {new_yarn_hash}")
+    new_yarn_hash = repo.get_yarn_lock_hash(version.tag, "app/assets/javascripts/yarn-ember5.lock")
+    click.echo(f"Updating yarn lock hash: {old_yarn_hash} -> {new_yarn_hash}")
+
+    old_yarn_dev_hash = _nix_eval('discourse.assets.yarnDevOfflineCache.outputHash')
+    new_yarn_dev_hash = repo.get_yarn_lock_hash(version.tag, "yarn.lock")
+    click.echo(f"Updating yarn dev lock hash: {old_yarn_dev_hash} -> {new_yarn_dev_hash}")
+
     with open(Path(__file__).parent / "default.nix", 'r+') as f:
         content = f.read()
         content = content.replace(old_yarn_hash, new_yarn_hash)
+        content = content.replace(old_yarn_dev_hash, new_yarn_dev_hash)
         f.seek(0)
         f.write(content)
         f.truncate()
@@ -320,7 +311,7 @@ def update_plugins():
             compatibility_spec = repo.get_file('.discourse-compatibility', repo.latest_commit_sha)
             versions = [(DiscourseVersion(discourse_version), plugin_rev.strip(' '))
                         for [discourse_version, plugin_rev]
-                        in [line.split(':')
+                        in [line.lstrip("< ").split(':')
                             for line
                             in compatibility_spec.splitlines() if line != '']]
             discourse_version = DiscourseVersion(_get_current_package_version('discourse'))
diff --git a/pkgs/servers/web-apps/dokuwiki/default.nix b/pkgs/servers/web-apps/dokuwiki/default.nix
index 00cbbfd0ad24d..658fed9de3696 100644
--- a/pkgs/servers/web-apps/dokuwiki/default.nix
+++ b/pkgs/servers/web-apps/dokuwiki/default.nix
@@ -83,7 +83,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Simple to use and highly versatile Open Source wiki software that doesn't require a database";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     homepage = "https://www.dokuwiki.org";
     platforms = platforms.all;
     maintainers = with maintainers; [ _1000101 ];
diff --git a/pkgs/servers/web-apps/engelsystem/default.nix b/pkgs/servers/web-apps/engelsystem/default.nix
index 4f6563db90b71..264c3243d2165 100644
--- a/pkgs/servers/web-apps/engelsystem/default.nix
+++ b/pkgs/servers/web-apps/engelsystem/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
     description =
       "Coordinate your volunteers in teams, assign them to work shifts or let them decide for themselves when and where they want to help with what";
     homepage = "https://engelsystem.de";
-    license = licenses.gpl2;
+    license = licenses.gpl2Only;
     mainProgram = "migrate";
     maintainers = with maintainers; [ ];
     platforms = platforms.all;
diff --git a/pkgs/servers/web-apps/freshrss/default.nix b/pkgs/servers/web-apps/freshrss/default.nix
index 9cf085f8c2b04..f12f9a891bdf9 100644
--- a/pkgs/servers/web-apps/freshrss/default.nix
+++ b/pkgs/servers/web-apps/freshrss/default.nix
@@ -7,13 +7,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "FreshRSS";
-  version = "1.23.1";
+  version = "1.24.0";
 
   src = fetchFromGitHub {
     owner = "FreshRSS";
     repo = "FreshRSS";
     rev = version;
-    hash = "sha256-uidTsL8TREZ/qcqO/J+6hguP6Dr6J+995WNWCJCduBw=";
+    hash = "sha256-QMSSSSyInkWJP9im6RhyVItSgY30Nt2p1pRDdPPoaYI=";
   };
 
   passthru.tests = {
diff --git a/pkgs/servers/web-apps/wordpress/generic.nix b/pkgs/servers/web-apps/wordpress/generic.nix
index d2d97dab35d9f..637aed1d19e39 100644
--- a/pkgs/servers/web-apps/wordpress/generic.nix
+++ b/pkgs/servers/web-apps/wordpress/generic.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://wordpress.org";
     description = "WordPress is open source software you can use to create a beautiful website, blog, or app";
-    license = [ licenses.gpl2 ];
+    license = [ licenses.gpl2Plus ];
     maintainers = [ maintainers.basvandijk ];
     platforms = platforms.all;
   };
diff --git a/pkgs/servers/xmpp/ejabberd/default.nix b/pkgs/servers/xmpp/ejabberd/default.nix
index 821465ec3a521..37830973fbe9b 100644
--- a/pkgs/servers/xmpp/ejabberd/default.nix
+++ b/pkgs/servers/xmpp/ejabberd/default.nix
@@ -119,7 +119,7 @@ in stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Open-source XMPP application server written in Erlang";
     mainProgram = "ejabberdctl";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     homepage = "https://www.ejabberd.im";
     platforms = platforms.linux;
     maintainers = with maintainers; [ sander abbradar ];
diff --git a/pkgs/shells/jush/default.nix b/pkgs/shells/jush/default.nix
deleted file mode 100644
index 42e8e13cceae6..0000000000000
--- a/pkgs/shells/jush/default.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, editline }:
-
-stdenv.mkDerivation rec {
-  pname = "jush";
-  version = "0.1";
-
-  src = fetchFromGitHub {
-    owner = "troglobit";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "1azvghrh31gawd798a254ml4id642qvbva64zzg30pjszh1087n8";
-  };
-
-  strictDeps = true;
-  nativeBuildInputs = [ autoreconfHook pkg-config ];
-
-  buildInputs = [ editline ];
-
-  passthru.shellPath = "/bin/jush";
-
-  meta = with lib; {
-    description = "just a useless shell";
-    mainProgram = "jush";
-    homepage = "https://github.com/troglobit/jush";
-    license = licenses.isc;
-    platforms = platforms.all;
-    maintainers = with maintainers; [ dtzWill ];
-  };
-}
diff --git a/pkgs/shells/liquidprompt/default.nix b/pkgs/shells/liquidprompt/default.nix
index acb34377d28de..35e097a4ca89d 100644
--- a/pkgs/shells/liquidprompt/default.nix
+++ b/pkgs/shells/liquidprompt/default.nix
@@ -1,31 +1,50 @@
-{ lib, stdenv, fetchFromGitHub }:
+{ lib, stdenv, fetchFromGitHub, gitUpdater }:
 
 stdenv.mkDerivation rec {
   pname = "liquidprompt";
-  version = "2.1.2";
+  version = "2.2.0";
 
   src = fetchFromGitHub {
-    owner = "nojhan";
+    owner = "liquidprompt";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-7mnrXLqnCdOuS2aRs4tVLfO8SRFrqZHNM40gWE/CVFI=";
+    hash = "sha256-ra+uJg9E2Cr1k0Ni1+xG9yKFF9iMInJFB5oAFnc52lc=";
   };
 
   strictDeps = true;
+
+  postPatch = ''
+    patchShebangs tools/*.sh
+  '';
+
   installPhase = ''
+    runHook preInstall
+
     install -D -m 0444 liquidprompt $out/bin/liquidprompt
-    install -D -m 0444 liquidpromptrc-dist $out/share/doc/liquidprompt/liquidpromptrc-dist
-    install -D -m 0444 liquid.theme $out/share/doc/liquidprompt/liquid.theme
 
     install -D -m 0444 liquidprompt.plugin.zsh \
       $out/share/zsh/plugins/liquidprompt/liquidprompt.plugin.zsh
     install -D -m 0444 liquidprompt \
       $out/share/zsh/plugins/liquidprompt/liquidprompt
+
+    # generate default config file
+    mkdir -p $out/share/doc/liquidprompt
+    tools/config-from-doc.sh --verbose > $out/share/doc/liquidprompt/liquidpromptrc-dist
+
+    mkdir -p $out/share/liquidprompt
+    cp -a themes $out/share/liquidprompt/
+
+    mkdir -p $out/share/liquidprompt/contrib
+    cp -a contrib/presets $out/share/liquidprompt/contrib/
+
+    runHook postInstall
   '';
 
+  passthru.updateScript = gitUpdater { };
+
   meta = with lib; {
     description = "A full-featured & carefully designed adaptive prompt for Bash & Zsh";
-    homepage = "https://github.com/nojhan/liquidprompt";
+    homepage = "https://github.com/liquidprompt/liquidprompt";
     license = licenses.agpl3Plus;
     platforms = platforms.all;
     maintainers = with maintainers; [ gerschtli ];
diff --git a/pkgs/shells/zsh/zsh-abbr/default.nix b/pkgs/shells/zsh/zsh-abbr/default.nix
index 20e9dcdb64729..7d85f23019176 100644
--- a/pkgs/shells/zsh/zsh-abbr/default.nix
+++ b/pkgs/shells/zsh/zsh-abbr/default.nix
@@ -5,13 +5,13 @@
 }:
 stdenv.mkDerivation rec {
   pname = "zsh-abbr";
-  version = "5.7.1";
+  version = "5.8.0";
 
   src = fetchFromGitHub {
     owner = "olets";
     repo = "zsh-abbr";
     rev = "v${version}";
-    hash = "sha256-2Uwo1gV732ZsSmJ6XU895Uqb5QOAQ2J1z85vufBv7nI=";
+    hash = "sha256-bsacP1f1daSYfgMvXduWQ64JJXnrFiLYURENKSMA9LM=";
   };
 
   strictDeps = true;
diff --git a/pkgs/tools/admin/granted/default.nix b/pkgs/tools/admin/granted/default.nix
index c5ee12003a455..a6925d94fb401 100644
--- a/pkgs/tools/admin/granted/default.nix
+++ b/pkgs/tools/admin/granted/default.nix
@@ -12,13 +12,13 @@
 
 buildGoModule rec {
   pname = "granted";
-  version = "0.26.2";
+  version = "0.27.0";
 
   src = fetchFromGitHub {
     owner = "common-fate";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-+vJN91adsZNihyQNLFFKt94l37lynpGvFIGPvd/9/CM=";
+    sha256 = "sha256-ke54OnO9yjL0RF1dJLTIwaCFp9GvB9Tlr06AN6u8/v4=";
   };
 
   vendorHash = "sha256-QoT7zfNbKDZyxGhDX1Lleu3mpTVXGKleX/b86l8nXXs=";
diff --git a/pkgs/tools/admin/meshcentral/default.nix b/pkgs/tools/admin/meshcentral/default.nix
index 2ac167b15cf9d..1e1563bcc915e 100644
--- a/pkgs/tools/admin/meshcentral/default.nix
+++ b/pkgs/tools/admin/meshcentral/default.nix
@@ -7,11 +7,11 @@
 }:
 
 yarn2nix-moretea.mkYarnPackage {
-  version = "1.1.22";
+  version = "1.1.24";
 
   src = fetchzip {
-    url = "https://registry.npmjs.org/meshcentral/-/meshcentral-1.1.22.tgz";
-    sha256 = "14hxynja1xybzcv9wabhn2ps7ngnigb4hs2lc2zz162wd1phv6j1";
+    url = "https://registry.npmjs.org/meshcentral/-/meshcentral-1.1.24.tgz";
+    sha256 = "1x5ibbmdrd6yv3xv3qlcd2b1mj9wpdsfgcmrcjl3js34zrygmixc";
   };
 
   patches = [ ./fix-js-include-paths.patch ];
@@ -21,7 +21,7 @@ yarn2nix-moretea.mkYarnPackage {
 
   offlineCache = fetchYarnDeps {
     yarnLock = ./yarn.lock;
-    hash = "sha256-smx37i/0MFmZYGqjE3NgySDiZfKP/4SHtFSYko/6mAU=";
+    hash = "sha256-L4rBVq/JhkcSQs/GrQJ+gcAV0vyi+9yS6B3p3O14IfE=";
   };
 
   # Tarball has CRLF line endings. This makes patching difficult, so let's convert them.
diff --git a/pkgs/tools/admin/meshcentral/package.json b/pkgs/tools/admin/meshcentral/package.json
index bab47ede89f69..f44046869c62c 100644
--- a/pkgs/tools/admin/meshcentral/package.json
+++ b/pkgs/tools/admin/meshcentral/package.json
@@ -1,6 +1,6 @@
 {
   "name": "meshcentral",
-  "version": "1.1.22",
+  "version": "1.1.24",
   "keywords": [
     "Remote Device Management",
     "Remote Device Monitoring",
@@ -42,7 +42,7 @@
     "cbor": "5.2.0",
     "compression": "1.7.4",
     "cookie-session": "2.0.0",
-    "express": "4.18.2",
+    "express": "4.19.2",
     "express-handlebars": "5.3.5",
     "express-ws": "4.0.0",
     "ipcheck": "0.1.0",
@@ -55,7 +55,7 @@
     "yauzl": "2.10.0"
   },
   "engines": {
-    "node": ">=11.0.0"
+    "node": ">=16.0.0"
   },
   "repository": {
     "type": "git",
@@ -70,13 +70,14 @@
     "passport-azure-oauth2": "*",
     "jwt-simple": "*",
     "openid-client": "*",
+    "connect-flash": "*",
     "passport-saml": "*",
     "archiver": "7.0.0",
     "body-parser": "1.20.2",
     "cbor": "5.2.0",
     "compression": "1.7.4",
     "cookie-session": "2.0.0",
-    "express": "4.18.2",
+    "express": "4.19.2",
     "express-handlebars": "5.3.5",
     "express-ws": "4.0.0",
     "ipcheck": "0.1.0",
diff --git a/pkgs/tools/admin/meshcentral/yarn.lock b/pkgs/tools/admin/meshcentral/yarn.lock
index e11b557ea22e0..8dab35726610f 100644
--- a/pkgs/tools/admin/meshcentral/yarn.lock
+++ b/pkgs/tools/admin/meshcentral/yarn.lock
@@ -10,15 +10,6 @@
     "@jridgewell/gen-mapping" "^0.3.5"
     "@jridgewell/trace-mapping" "^0.3.24"
 
-"@aws-crypto/crc32@3.0.0":
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/@aws-crypto/crc32/-/crc32-3.0.0.tgz#07300eca214409c33e3ff769cd5697b57fdd38fa"
-  integrity sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA==
-  dependencies:
-    "@aws-crypto/util" "^3.0.0"
-    "@aws-sdk/types" "^3.222.0"
-    tslib "^1.11.1"
-
 "@aws-crypto/ie11-detection@^3.0.0":
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/@aws-crypto/ie11-detection/-/ie11-detection-3.0.0.tgz#640ae66b4ec3395cee6a8e94ebcd9f80c24cd688"
@@ -65,433 +56,434 @@
     "@aws-sdk/util-utf8-browser" "^3.0.0"
     tslib "^1.11.1"
 
-"@aws-sdk/client-cognito-identity@3.540.0":
-  version "3.540.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.540.0.tgz#ccea36dd4650bdbd0fd2bcf02c3b1fb33ba154eb"
-  integrity sha512-03vUaIKjvdcOmjDi8Fv9JgY+VQrt9QBpRkI8A1lrdPNgWqTEZXZi/zBsFRsxTe6hgsrZtxVnxLu6krSRILuqtw==
+"@aws-sdk/client-cognito-identity@3.583.0":
+  version "3.583.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.583.0.tgz#f25360e29b46af8086f2b8f6bc6e51bcb5ac1c54"
+  integrity sha512-FrkVjrDRsXofw1F/iJqR/DOKPbIakIB+Dr04l25Em4PTWBj29NcQyYW49qcCHF0CPkqQpin8ASXDWzGv7A0yxg==
   dependencies:
     "@aws-crypto/sha256-browser" "3.0.0"
     "@aws-crypto/sha256-js" "3.0.0"
-    "@aws-sdk/client-sts" "3.540.0"
-    "@aws-sdk/core" "3.535.0"
-    "@aws-sdk/credential-provider-node" "3.540.0"
-    "@aws-sdk/middleware-host-header" "3.535.0"
-    "@aws-sdk/middleware-logger" "3.535.0"
-    "@aws-sdk/middleware-recursion-detection" "3.535.0"
-    "@aws-sdk/middleware-user-agent" "3.540.0"
-    "@aws-sdk/region-config-resolver" "3.535.0"
-    "@aws-sdk/types" "3.535.0"
-    "@aws-sdk/util-endpoints" "3.540.0"
-    "@aws-sdk/util-user-agent-browser" "3.535.0"
-    "@aws-sdk/util-user-agent-node" "3.535.0"
-    "@smithy/config-resolver" "^2.2.0"
-    "@smithy/core" "^1.4.0"
-    "@smithy/fetch-http-handler" "^2.5.0"
-    "@smithy/hash-node" "^2.2.0"
-    "@smithy/invalid-dependency" "^2.2.0"
-    "@smithy/middleware-content-length" "^2.2.0"
-    "@smithy/middleware-endpoint" "^2.5.0"
-    "@smithy/middleware-retry" "^2.2.0"
-    "@smithy/middleware-serde" "^2.3.0"
-    "@smithy/middleware-stack" "^2.2.0"
-    "@smithy/node-config-provider" "^2.3.0"
-    "@smithy/node-http-handler" "^2.5.0"
-    "@smithy/protocol-http" "^3.3.0"
-    "@smithy/smithy-client" "^2.5.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/url-parser" "^2.2.0"
-    "@smithy/util-base64" "^2.3.0"
-    "@smithy/util-body-length-browser" "^2.2.0"
-    "@smithy/util-body-length-node" "^2.3.0"
-    "@smithy/util-defaults-mode-browser" "^2.2.0"
-    "@smithy/util-defaults-mode-node" "^2.3.0"
-    "@smithy/util-endpoints" "^1.2.0"
-    "@smithy/util-middleware" "^2.2.0"
-    "@smithy/util-retry" "^2.2.0"
-    "@smithy/util-utf8" "^2.3.0"
+    "@aws-sdk/client-sso-oidc" "3.583.0"
+    "@aws-sdk/client-sts" "3.583.0"
+    "@aws-sdk/core" "3.582.0"
+    "@aws-sdk/credential-provider-node" "3.583.0"
+    "@aws-sdk/middleware-host-header" "3.577.0"
+    "@aws-sdk/middleware-logger" "3.577.0"
+    "@aws-sdk/middleware-recursion-detection" "3.577.0"
+    "@aws-sdk/middleware-user-agent" "3.583.0"
+    "@aws-sdk/region-config-resolver" "3.577.0"
+    "@aws-sdk/types" "3.577.0"
+    "@aws-sdk/util-endpoints" "3.583.0"
+    "@aws-sdk/util-user-agent-browser" "3.577.0"
+    "@aws-sdk/util-user-agent-node" "3.577.0"
+    "@smithy/config-resolver" "^3.0.0"
+    "@smithy/core" "^2.0.1"
+    "@smithy/fetch-http-handler" "^3.0.1"
+    "@smithy/hash-node" "^3.0.0"
+    "@smithy/invalid-dependency" "^3.0.0"
+    "@smithy/middleware-content-length" "^3.0.0"
+    "@smithy/middleware-endpoint" "^3.0.0"
+    "@smithy/middleware-retry" "^3.0.1"
+    "@smithy/middleware-serde" "^3.0.0"
+    "@smithy/middleware-stack" "^3.0.0"
+    "@smithy/node-config-provider" "^3.0.0"
+    "@smithy/node-http-handler" "^3.0.0"
+    "@smithy/protocol-http" "^4.0.0"
+    "@smithy/smithy-client" "^3.0.1"
+    "@smithy/types" "^3.0.0"
+    "@smithy/url-parser" "^3.0.0"
+    "@smithy/util-base64" "^3.0.0"
+    "@smithy/util-body-length-browser" "^3.0.0"
+    "@smithy/util-body-length-node" "^3.0.0"
+    "@smithy/util-defaults-mode-browser" "^3.0.1"
+    "@smithy/util-defaults-mode-node" "^3.0.1"
+    "@smithy/util-endpoints" "^2.0.0"
+    "@smithy/util-middleware" "^3.0.0"
+    "@smithy/util-retry" "^3.0.0"
+    "@smithy/util-utf8" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/client-sso-oidc@3.540.0":
-  version "3.540.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.540.0.tgz#e4c52889d33ca969add269011b790f2d634fb6d2"
-  integrity sha512-LZYK0lBRQK8D8M3Sqc96XiXkAV2v70zhTtF6weyzEpgwxZMfSuFJjs0jFyhaeZBZbZv7BBghIdhJ5TPavNxGMQ==
+"@aws-sdk/client-sso-oidc@3.583.0":
+  version "3.583.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.583.0.tgz#71a00305f3d5d13041e6c2fff53cec62f621eb1f"
+  integrity sha512-LO3wmrFXPi2kNE46lD1XATfRrvdNxXd4DlTFouoWmr7lvqoUkcbmtkV2r/XChZA2z0HiDauphC1e8b8laJVeSg==
   dependencies:
     "@aws-crypto/sha256-browser" "3.0.0"
     "@aws-crypto/sha256-js" "3.0.0"
-    "@aws-sdk/client-sts" "3.540.0"
-    "@aws-sdk/core" "3.535.0"
-    "@aws-sdk/middleware-host-header" "3.535.0"
-    "@aws-sdk/middleware-logger" "3.535.0"
-    "@aws-sdk/middleware-recursion-detection" "3.535.0"
-    "@aws-sdk/middleware-user-agent" "3.540.0"
-    "@aws-sdk/region-config-resolver" "3.535.0"
-    "@aws-sdk/types" "3.535.0"
-    "@aws-sdk/util-endpoints" "3.540.0"
-    "@aws-sdk/util-user-agent-browser" "3.535.0"
-    "@aws-sdk/util-user-agent-node" "3.535.0"
-    "@smithy/config-resolver" "^2.2.0"
-    "@smithy/core" "^1.4.0"
-    "@smithy/fetch-http-handler" "^2.5.0"
-    "@smithy/hash-node" "^2.2.0"
-    "@smithy/invalid-dependency" "^2.2.0"
-    "@smithy/middleware-content-length" "^2.2.0"
-    "@smithy/middleware-endpoint" "^2.5.0"
-    "@smithy/middleware-retry" "^2.2.0"
-    "@smithy/middleware-serde" "^2.3.0"
-    "@smithy/middleware-stack" "^2.2.0"
-    "@smithy/node-config-provider" "^2.3.0"
-    "@smithy/node-http-handler" "^2.5.0"
-    "@smithy/protocol-http" "^3.3.0"
-    "@smithy/smithy-client" "^2.5.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/url-parser" "^2.2.0"
-    "@smithy/util-base64" "^2.3.0"
-    "@smithy/util-body-length-browser" "^2.2.0"
-    "@smithy/util-body-length-node" "^2.3.0"
-    "@smithy/util-defaults-mode-browser" "^2.2.0"
-    "@smithy/util-defaults-mode-node" "^2.3.0"
-    "@smithy/util-endpoints" "^1.2.0"
-    "@smithy/util-middleware" "^2.2.0"
-    "@smithy/util-retry" "^2.2.0"
-    "@smithy/util-utf8" "^2.3.0"
+    "@aws-sdk/client-sts" "3.583.0"
+    "@aws-sdk/core" "3.582.0"
+    "@aws-sdk/credential-provider-node" "3.583.0"
+    "@aws-sdk/middleware-host-header" "3.577.0"
+    "@aws-sdk/middleware-logger" "3.577.0"
+    "@aws-sdk/middleware-recursion-detection" "3.577.0"
+    "@aws-sdk/middleware-user-agent" "3.583.0"
+    "@aws-sdk/region-config-resolver" "3.577.0"
+    "@aws-sdk/types" "3.577.0"
+    "@aws-sdk/util-endpoints" "3.583.0"
+    "@aws-sdk/util-user-agent-browser" "3.577.0"
+    "@aws-sdk/util-user-agent-node" "3.577.0"
+    "@smithy/config-resolver" "^3.0.0"
+    "@smithy/core" "^2.0.1"
+    "@smithy/fetch-http-handler" "^3.0.1"
+    "@smithy/hash-node" "^3.0.0"
+    "@smithy/invalid-dependency" "^3.0.0"
+    "@smithy/middleware-content-length" "^3.0.0"
+    "@smithy/middleware-endpoint" "^3.0.0"
+    "@smithy/middleware-retry" "^3.0.1"
+    "@smithy/middleware-serde" "^3.0.0"
+    "@smithy/middleware-stack" "^3.0.0"
+    "@smithy/node-config-provider" "^3.0.0"
+    "@smithy/node-http-handler" "^3.0.0"
+    "@smithy/protocol-http" "^4.0.0"
+    "@smithy/smithy-client" "^3.0.1"
+    "@smithy/types" "^3.0.0"
+    "@smithy/url-parser" "^3.0.0"
+    "@smithy/util-base64" "^3.0.0"
+    "@smithy/util-body-length-browser" "^3.0.0"
+    "@smithy/util-body-length-node" "^3.0.0"
+    "@smithy/util-defaults-mode-browser" "^3.0.1"
+    "@smithy/util-defaults-mode-node" "^3.0.1"
+    "@smithy/util-endpoints" "^2.0.0"
+    "@smithy/util-middleware" "^3.0.0"
+    "@smithy/util-retry" "^3.0.0"
+    "@smithy/util-utf8" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/client-sso@3.540.0":
-  version "3.540.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.540.0.tgz#732a7f325de3905a719c20ce05e555b445f82b4a"
-  integrity sha512-rrQZMuw4sxIo3eyAUUzPQRA336mPRnrAeSlSdVHBKZD8Fjvoy0lYry2vNhkPLpFZLso1J66KRyuIv4LzRR3v1Q==
+"@aws-sdk/client-sso@3.583.0":
+  version "3.583.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.583.0.tgz#fa18cadd19abe80e0c0378b6cbe6225ed0296595"
+  integrity sha512-FNJ2MmiBtZZwgkj4+GLVrzqwmD6D8FBptrFZk7PnGkSf7v1Q8txYNI6gY938RRhYJ4lBW4cNbhPvWoDxAl90Hw==
   dependencies:
     "@aws-crypto/sha256-browser" "3.0.0"
     "@aws-crypto/sha256-js" "3.0.0"
-    "@aws-sdk/core" "3.535.0"
-    "@aws-sdk/middleware-host-header" "3.535.0"
-    "@aws-sdk/middleware-logger" "3.535.0"
-    "@aws-sdk/middleware-recursion-detection" "3.535.0"
-    "@aws-sdk/middleware-user-agent" "3.540.0"
-    "@aws-sdk/region-config-resolver" "3.535.0"
-    "@aws-sdk/types" "3.535.0"
-    "@aws-sdk/util-endpoints" "3.540.0"
-    "@aws-sdk/util-user-agent-browser" "3.535.0"
-    "@aws-sdk/util-user-agent-node" "3.535.0"
-    "@smithy/config-resolver" "^2.2.0"
-    "@smithy/core" "^1.4.0"
-    "@smithy/fetch-http-handler" "^2.5.0"
-    "@smithy/hash-node" "^2.2.0"
-    "@smithy/invalid-dependency" "^2.2.0"
-    "@smithy/middleware-content-length" "^2.2.0"
-    "@smithy/middleware-endpoint" "^2.5.0"
-    "@smithy/middleware-retry" "^2.2.0"
-    "@smithy/middleware-serde" "^2.3.0"
-    "@smithy/middleware-stack" "^2.2.0"
-    "@smithy/node-config-provider" "^2.3.0"
-    "@smithy/node-http-handler" "^2.5.0"
-    "@smithy/protocol-http" "^3.3.0"
-    "@smithy/smithy-client" "^2.5.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/url-parser" "^2.2.0"
-    "@smithy/util-base64" "^2.3.0"
-    "@smithy/util-body-length-browser" "^2.2.0"
-    "@smithy/util-body-length-node" "^2.3.0"
-    "@smithy/util-defaults-mode-browser" "^2.2.0"
-    "@smithy/util-defaults-mode-node" "^2.3.0"
-    "@smithy/util-endpoints" "^1.2.0"
-    "@smithy/util-middleware" "^2.2.0"
-    "@smithy/util-retry" "^2.2.0"
-    "@smithy/util-utf8" "^2.3.0"
+    "@aws-sdk/core" "3.582.0"
+    "@aws-sdk/middleware-host-header" "3.577.0"
+    "@aws-sdk/middleware-logger" "3.577.0"
+    "@aws-sdk/middleware-recursion-detection" "3.577.0"
+    "@aws-sdk/middleware-user-agent" "3.583.0"
+    "@aws-sdk/region-config-resolver" "3.577.0"
+    "@aws-sdk/types" "3.577.0"
+    "@aws-sdk/util-endpoints" "3.583.0"
+    "@aws-sdk/util-user-agent-browser" "3.577.0"
+    "@aws-sdk/util-user-agent-node" "3.577.0"
+    "@smithy/config-resolver" "^3.0.0"
+    "@smithy/core" "^2.0.1"
+    "@smithy/fetch-http-handler" "^3.0.1"
+    "@smithy/hash-node" "^3.0.0"
+    "@smithy/invalid-dependency" "^3.0.0"
+    "@smithy/middleware-content-length" "^3.0.0"
+    "@smithy/middleware-endpoint" "^3.0.0"
+    "@smithy/middleware-retry" "^3.0.1"
+    "@smithy/middleware-serde" "^3.0.0"
+    "@smithy/middleware-stack" "^3.0.0"
+    "@smithy/node-config-provider" "^3.0.0"
+    "@smithy/node-http-handler" "^3.0.0"
+    "@smithy/protocol-http" "^4.0.0"
+    "@smithy/smithy-client" "^3.0.1"
+    "@smithy/types" "^3.0.0"
+    "@smithy/url-parser" "^3.0.0"
+    "@smithy/util-base64" "^3.0.0"
+    "@smithy/util-body-length-browser" "^3.0.0"
+    "@smithy/util-body-length-node" "^3.0.0"
+    "@smithy/util-defaults-mode-browser" "^3.0.1"
+    "@smithy/util-defaults-mode-node" "^3.0.1"
+    "@smithy/util-endpoints" "^2.0.0"
+    "@smithy/util-middleware" "^3.0.0"
+    "@smithy/util-retry" "^3.0.0"
+    "@smithy/util-utf8" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/client-sts@3.540.0":
-  version "3.540.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.540.0.tgz#16ce14db1c5387be3ad9be6dd4f8ed33b63193c8"
-  integrity sha512-ITHUQxvpqfQX6obfpIi3KYGzZYfe/I5Ixjfxoi5lB7ISCtmxqObKB1fzD93wonkMJytJ7LUO8panZl/ojiJ1uw==
+"@aws-sdk/client-sts@3.583.0":
+  version "3.583.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.583.0.tgz#d8109ab588689a616d987f6b1d4faacafe49f598"
+  integrity sha512-xDMxiemPDWr9dY2Q4AyixkRnk/hvS6fs6OWxuVCz1WO47YhaAfOsEGAgQMgDLLaOfj/oLU5D14uTNBEPGh4rBA==
   dependencies:
     "@aws-crypto/sha256-browser" "3.0.0"
     "@aws-crypto/sha256-js" "3.0.0"
-    "@aws-sdk/core" "3.535.0"
-    "@aws-sdk/middleware-host-header" "3.535.0"
-    "@aws-sdk/middleware-logger" "3.535.0"
-    "@aws-sdk/middleware-recursion-detection" "3.535.0"
-    "@aws-sdk/middleware-user-agent" "3.540.0"
-    "@aws-sdk/region-config-resolver" "3.535.0"
-    "@aws-sdk/types" "3.535.0"
-    "@aws-sdk/util-endpoints" "3.540.0"
-    "@aws-sdk/util-user-agent-browser" "3.535.0"
-    "@aws-sdk/util-user-agent-node" "3.535.0"
-    "@smithy/config-resolver" "^2.2.0"
-    "@smithy/core" "^1.4.0"
-    "@smithy/fetch-http-handler" "^2.5.0"
-    "@smithy/hash-node" "^2.2.0"
-    "@smithy/invalid-dependency" "^2.2.0"
-    "@smithy/middleware-content-length" "^2.2.0"
-    "@smithy/middleware-endpoint" "^2.5.0"
-    "@smithy/middleware-retry" "^2.2.0"
-    "@smithy/middleware-serde" "^2.3.0"
-    "@smithy/middleware-stack" "^2.2.0"
-    "@smithy/node-config-provider" "^2.3.0"
-    "@smithy/node-http-handler" "^2.5.0"
-    "@smithy/protocol-http" "^3.3.0"
-    "@smithy/smithy-client" "^2.5.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/url-parser" "^2.2.0"
-    "@smithy/util-base64" "^2.3.0"
-    "@smithy/util-body-length-browser" "^2.2.0"
-    "@smithy/util-body-length-node" "^2.3.0"
-    "@smithy/util-defaults-mode-browser" "^2.2.0"
-    "@smithy/util-defaults-mode-node" "^2.3.0"
-    "@smithy/util-endpoints" "^1.2.0"
-    "@smithy/util-middleware" "^2.2.0"
-    "@smithy/util-retry" "^2.2.0"
-    "@smithy/util-utf8" "^2.3.0"
+    "@aws-sdk/client-sso-oidc" "3.583.0"
+    "@aws-sdk/core" "3.582.0"
+    "@aws-sdk/credential-provider-node" "3.583.0"
+    "@aws-sdk/middleware-host-header" "3.577.0"
+    "@aws-sdk/middleware-logger" "3.577.0"
+    "@aws-sdk/middleware-recursion-detection" "3.577.0"
+    "@aws-sdk/middleware-user-agent" "3.583.0"
+    "@aws-sdk/region-config-resolver" "3.577.0"
+    "@aws-sdk/types" "3.577.0"
+    "@aws-sdk/util-endpoints" "3.583.0"
+    "@aws-sdk/util-user-agent-browser" "3.577.0"
+    "@aws-sdk/util-user-agent-node" "3.577.0"
+    "@smithy/config-resolver" "^3.0.0"
+    "@smithy/core" "^2.0.1"
+    "@smithy/fetch-http-handler" "^3.0.1"
+    "@smithy/hash-node" "^3.0.0"
+    "@smithy/invalid-dependency" "^3.0.0"
+    "@smithy/middleware-content-length" "^3.0.0"
+    "@smithy/middleware-endpoint" "^3.0.0"
+    "@smithy/middleware-retry" "^3.0.1"
+    "@smithy/middleware-serde" "^3.0.0"
+    "@smithy/middleware-stack" "^3.0.0"
+    "@smithy/node-config-provider" "^3.0.0"
+    "@smithy/node-http-handler" "^3.0.0"
+    "@smithy/protocol-http" "^4.0.0"
+    "@smithy/smithy-client" "^3.0.1"
+    "@smithy/types" "^3.0.0"
+    "@smithy/url-parser" "^3.0.0"
+    "@smithy/util-base64" "^3.0.0"
+    "@smithy/util-body-length-browser" "^3.0.0"
+    "@smithy/util-body-length-node" "^3.0.0"
+    "@smithy/util-defaults-mode-browser" "^3.0.1"
+    "@smithy/util-defaults-mode-node" "^3.0.1"
+    "@smithy/util-endpoints" "^2.0.0"
+    "@smithy/util-middleware" "^3.0.0"
+    "@smithy/util-retry" "^3.0.0"
+    "@smithy/util-utf8" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/core@3.535.0":
-  version "3.535.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.535.0.tgz#f3a726c297cea9634d19a1db4e958c918c506c8b"
-  integrity sha512-+Yusa9HziuaEDta1UaLEtMAtmgvxdxhPn7jgfRY6PplqAqgsfa5FR83sxy5qr2q7xjQTwHtV4MjQVuOjG9JsLw==
+"@aws-sdk/core@3.582.0":
+  version "3.582.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.582.0.tgz#9ebb295290cba3d68738401fe4e3d51dfb0d1bfc"
+  integrity sha512-ofmD96IQc9g1dbyqlCyxu5fCG7kIl9p1NoN5+vGBUyLdbmPCV3Pdg99nRHYEJuv2MgGx5AUFGDPMHcqbJpnZIw==
   dependencies:
-    "@smithy/core" "^1.4.0"
-    "@smithy/protocol-http" "^3.3.0"
-    "@smithy/signature-v4" "^2.2.0"
-    "@smithy/smithy-client" "^2.5.0"
-    "@smithy/types" "^2.12.0"
+    "@smithy/core" "^2.0.1"
+    "@smithy/protocol-http" "^4.0.0"
+    "@smithy/signature-v4" "^3.0.0"
+    "@smithy/smithy-client" "^3.0.1"
+    "@smithy/types" "^3.0.0"
     fast-xml-parser "4.2.5"
     tslib "^2.6.2"
 
-"@aws-sdk/credential-provider-cognito-identity@3.540.0":
-  version "3.540.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.540.0.tgz#9b6a309d3809a6a056b6b6c9e7ac580cda19db31"
-  integrity sha512-XOTAIuVgticX+43GMpRbi5OHmJAhHfoHYsVGu0eRLhri1yFqUHXJgHUd51QQtlA8cFQN7JnFFM6sF5EDCPF49g==
+"@aws-sdk/credential-provider-cognito-identity@3.583.0":
+  version "3.583.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.583.0.tgz#45468c8f3f73080cfdfd6708ab07e18c5cfdfb79"
+  integrity sha512-Z6VdDZApTxeI/n8qXBz3IkAdC0tL/mw+cz6EprqpkZG8bejHw78fVjeaVOBBkuskUikjwN4puv0SEJzoEMIqpA==
   dependencies:
-    "@aws-sdk/client-cognito-identity" "3.540.0"
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/property-provider" "^2.2.0"
-    "@smithy/types" "^2.12.0"
+    "@aws-sdk/client-cognito-identity" "3.583.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/property-provider" "^3.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/credential-provider-env@3.535.0":
-  version "3.535.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.535.0.tgz#26248e263a8107953d5496cb3760d4e7c877abcf"
-  integrity sha512-XppwO8c0GCGSAvdzyJOhbtktSEaShg14VJKg8mpMa1XcgqzmcqqHQjtDWbx5rZheY1VdpXZhpEzJkB6LpQejpA==
+"@aws-sdk/credential-provider-env@3.577.0":
+  version "3.577.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.577.0.tgz#d587ea01a2288840e8483a236516c0f26cb4ba36"
+  integrity sha512-Jxu255j0gToMGEiqufP8ZtKI8HW90lOLjwJ3LrdlD/NLsAY0tOQf1fWc53u28hWmmNGMxmCrL2p66IOgMDhDUw==
   dependencies:
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/property-provider" "^2.2.0"
-    "@smithy/types" "^2.12.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/property-provider" "^3.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/credential-provider-http@3.535.0":
-  version "3.535.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.535.0.tgz#0a42f6b1a61d927bbce9f4afd25112f486bd05da"
-  integrity sha512-kdj1wCmOMZ29jSlUskRqN04S6fJ4dvt0Nq9Z32SA6wO7UG8ht6Ot9h/au/eTWJM3E1somZ7D771oK7dQt9b8yw==
-  dependencies:
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/fetch-http-handler" "^2.5.0"
-    "@smithy/node-http-handler" "^2.5.0"
-    "@smithy/property-provider" "^2.2.0"
-    "@smithy/protocol-http" "^3.3.0"
-    "@smithy/smithy-client" "^2.5.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/util-stream" "^2.2.0"
+"@aws-sdk/credential-provider-http@3.582.0":
+  version "3.582.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.582.0.tgz#6ea9377461c4ce38d487ea0ae5888155f7c495a6"
+  integrity sha512-kGOUKw5ryPkDIYB69PjK3SicVLTbWB06ouFN2W1EvqUJpkQGPAUGzYcomKtt3mJaCTf/1kfoaHwARAl6KKSP8Q==
+  dependencies:
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/fetch-http-handler" "^3.0.1"
+    "@smithy/node-http-handler" "^3.0.0"
+    "@smithy/property-provider" "^3.0.0"
+    "@smithy/protocol-http" "^4.0.0"
+    "@smithy/smithy-client" "^3.0.1"
+    "@smithy/types" "^3.0.0"
+    "@smithy/util-stream" "^3.0.1"
     tslib "^2.6.2"
 
-"@aws-sdk/credential-provider-ini@3.540.0":
-  version "3.540.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.540.0.tgz#8e17b23bf242152775db1473f7d2952beb6a5ef9"
-  integrity sha512-igN/RbsnulIBwqXbwsWmR3srqmtbPF1dm+JteGvUY31FW65fTVvWvSr945Y/cf1UbhPmIQXntlsqESqpkhTHwg==
-  dependencies:
-    "@aws-sdk/client-sts" "3.540.0"
-    "@aws-sdk/credential-provider-env" "3.535.0"
-    "@aws-sdk/credential-provider-process" "3.535.0"
-    "@aws-sdk/credential-provider-sso" "3.540.0"
-    "@aws-sdk/credential-provider-web-identity" "3.540.0"
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/credential-provider-imds" "^2.3.0"
-    "@smithy/property-provider" "^2.2.0"
-    "@smithy/shared-ini-file-loader" "^2.4.0"
-    "@smithy/types" "^2.12.0"
+"@aws-sdk/credential-provider-ini@3.583.0":
+  version "3.583.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.583.0.tgz#948ebd3ca257d7d9362d3294259e0be9526cd662"
+  integrity sha512-8I0oWNg/yps6ctjhEeL/qJ9BIa/+xXP7RPDQqFKZ2zBkWbmLLOoMWXRvl8uKUBD6qCe+DGmcu9skfVXeXSesEQ==
+  dependencies:
+    "@aws-sdk/credential-provider-env" "3.577.0"
+    "@aws-sdk/credential-provider-process" "3.577.0"
+    "@aws-sdk/credential-provider-sso" "3.583.0"
+    "@aws-sdk/credential-provider-web-identity" "3.577.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/credential-provider-imds" "^3.0.0"
+    "@smithy/property-provider" "^3.0.0"
+    "@smithy/shared-ini-file-loader" "^3.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/credential-provider-node@3.540.0":
-  version "3.540.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.540.0.tgz#e6fd3404de68e7f9580f01aa542b16e9abc58e5c"
-  integrity sha512-HKQZJbLHlrHX9A0B1poiYNXIIQfy8whTjuosTCYKPDBhhUyVAQfxy/KG726j0v43IhaNPLgTGZCJve4hAsazSw==
-  dependencies:
-    "@aws-sdk/credential-provider-env" "3.535.0"
-    "@aws-sdk/credential-provider-http" "3.535.0"
-    "@aws-sdk/credential-provider-ini" "3.540.0"
-    "@aws-sdk/credential-provider-process" "3.535.0"
-    "@aws-sdk/credential-provider-sso" "3.540.0"
-    "@aws-sdk/credential-provider-web-identity" "3.540.0"
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/credential-provider-imds" "^2.3.0"
-    "@smithy/property-provider" "^2.2.0"
-    "@smithy/shared-ini-file-loader" "^2.4.0"
-    "@smithy/types" "^2.12.0"
+"@aws-sdk/credential-provider-node@3.583.0":
+  version "3.583.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.583.0.tgz#8ce316409d91cddca0c85851ca50726ee666cff5"
+  integrity sha512-yBNypBXny7zJH85SzxDj8s1mbLXv9c/Vbq0qR3R3POj2idZ6ywB/qlIRC1XwBuv49Wvg8kA1wKXk3K3jrpcVIw==
+  dependencies:
+    "@aws-sdk/credential-provider-env" "3.577.0"
+    "@aws-sdk/credential-provider-http" "3.582.0"
+    "@aws-sdk/credential-provider-ini" "3.583.0"
+    "@aws-sdk/credential-provider-process" "3.577.0"
+    "@aws-sdk/credential-provider-sso" "3.583.0"
+    "@aws-sdk/credential-provider-web-identity" "3.577.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/credential-provider-imds" "^3.0.0"
+    "@smithy/property-provider" "^3.0.0"
+    "@smithy/shared-ini-file-loader" "^3.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/credential-provider-process@3.535.0":
-  version "3.535.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.535.0.tgz#ea1e8a38a32e36bbdc3f75eb03352e6eafa0c659"
-  integrity sha512-9O1OaprGCnlb/kYl8RwmH7Mlg8JREZctB8r9sa1KhSsWFq/SWO0AuJTyowxD7zL5PkeS4eTvzFFHWCa3OO5epA==
+"@aws-sdk/credential-provider-process@3.577.0":
+  version "3.577.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.577.0.tgz#ba35b4f012563762bbd86a71989d366272ee0f07"
+  integrity sha512-Gin6BWtOiXxIgITrJ3Nwc+Y2P1uVT6huYR4EcbA/DJUPWyO0n9y5UFLewPvVbLkRn15JeEqErBLUrHclkiOKtw==
   dependencies:
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/property-provider" "^2.2.0"
-    "@smithy/shared-ini-file-loader" "^2.4.0"
-    "@smithy/types" "^2.12.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/property-provider" "^3.0.0"
+    "@smithy/shared-ini-file-loader" "^3.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/credential-provider-sso@3.540.0":
-  version "3.540.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.540.0.tgz#1fc5c53a0df8227249c73a3cb7660b1accb79186"
-  integrity sha512-tKkFqK227LF5ajc5EL6asXS32p3nkofpP8G7NRpU7zOEOQCg01KUc4JRX+ItI0T007CiN1J19yNoFqHLT/SqHg==
-  dependencies:
-    "@aws-sdk/client-sso" "3.540.0"
-    "@aws-sdk/token-providers" "3.540.0"
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/property-provider" "^2.2.0"
-    "@smithy/shared-ini-file-loader" "^2.4.0"
-    "@smithy/types" "^2.12.0"
+"@aws-sdk/credential-provider-sso@3.583.0":
+  version "3.583.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.583.0.tgz#468bb6ca9bd7b89370d5ec7865a8e29e98772abc"
+  integrity sha512-G/1EvL9tBezSiU+06tG4K/kOvFfPjnheT4JSXqjPM7+vjKzgp2jxp1J9MMd69zs4jVWon932zMeGgjrCplzMEg==
+  dependencies:
+    "@aws-sdk/client-sso" "3.583.0"
+    "@aws-sdk/token-providers" "3.577.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/property-provider" "^3.0.0"
+    "@smithy/shared-ini-file-loader" "^3.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/credential-provider-web-identity@3.540.0":
-  version "3.540.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.540.0.tgz#775a2090e9f4f89efe2ebdf1e2c109a47561c0e9"
-  integrity sha512-OpDm9w3A168B44hSjpnvECP4rvnFzD86rN4VYdGADuCvEa5uEcdA/JuT5WclFPDqdWEmFBqS1pxBIJBf0g2Q9Q==
+"@aws-sdk/credential-provider-web-identity@3.577.0":
+  version "3.577.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.577.0.tgz#294fb71fa832d9f55ea1c56678357efa3cd7ca55"
+  integrity sha512-ZGHGNRaCtJJmszb9UTnC7izNCtRUttdPlLdMkh41KPS32vfdrBDHs1JrpbZijItRj1xKuOXsiYSXLAaHGcLh8Q==
   dependencies:
-    "@aws-sdk/client-sts" "3.540.0"
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/property-provider" "^2.2.0"
-    "@smithy/types" "^2.12.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/property-provider" "^3.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
 "@aws-sdk/credential-providers@^3.186.0":
-  version "3.540.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-providers/-/credential-providers-3.540.0.tgz#649725589d210bc1237e2d3d8893302ef3a79ecf"
-  integrity sha512-tAmvqdZngCrER5/AAwTmDSjO05LGIshKL+lwcJr2OUV5jtQVzfbFrorf+b5dnI+3i8+zGcEAV9omra4XGrO9Kg==
-  dependencies:
-    "@aws-sdk/client-cognito-identity" "3.540.0"
-    "@aws-sdk/client-sso" "3.540.0"
-    "@aws-sdk/client-sts" "3.540.0"
-    "@aws-sdk/credential-provider-cognito-identity" "3.540.0"
-    "@aws-sdk/credential-provider-env" "3.535.0"
-    "@aws-sdk/credential-provider-http" "3.535.0"
-    "@aws-sdk/credential-provider-ini" "3.540.0"
-    "@aws-sdk/credential-provider-node" "3.540.0"
-    "@aws-sdk/credential-provider-process" "3.535.0"
-    "@aws-sdk/credential-provider-sso" "3.540.0"
-    "@aws-sdk/credential-provider-web-identity" "3.540.0"
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/credential-provider-imds" "^2.3.0"
-    "@smithy/property-provider" "^2.2.0"
-    "@smithy/types" "^2.12.0"
+  version "3.583.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/credential-providers/-/credential-providers-3.583.0.tgz#138f4894cd2f00730b618434bfc86caec253636c"
+  integrity sha512-aD/lw6LJW51f+LgdR54UxyGvXqWZs4HCT310Qf794qFItDWXqhHK4EgS1x41BgAvXPUx0+HSO8OI4eb+AklckA==
+  dependencies:
+    "@aws-sdk/client-cognito-identity" "3.583.0"
+    "@aws-sdk/client-sso" "3.583.0"
+    "@aws-sdk/client-sts" "3.583.0"
+    "@aws-sdk/credential-provider-cognito-identity" "3.583.0"
+    "@aws-sdk/credential-provider-env" "3.577.0"
+    "@aws-sdk/credential-provider-http" "3.582.0"
+    "@aws-sdk/credential-provider-ini" "3.583.0"
+    "@aws-sdk/credential-provider-node" "3.583.0"
+    "@aws-sdk/credential-provider-process" "3.577.0"
+    "@aws-sdk/credential-provider-sso" "3.583.0"
+    "@aws-sdk/credential-provider-web-identity" "3.577.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/credential-provider-imds" "^3.0.0"
+    "@smithy/property-provider" "^3.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/middleware-host-header@3.535.0":
-  version "3.535.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.535.0.tgz#d5264f813592f5e77df25e5a14bbb0e6441812db"
-  integrity sha512-0h6TWjBWtDaYwHMQJI9ulafeS4lLaw1vIxRjbpH0svFRt6Eve+Sy8NlVhECfTU2hNz/fLubvrUxsXoThaLBIew==
+"@aws-sdk/middleware-host-header@3.577.0":
+  version "3.577.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.577.0.tgz#a3fc626d409ec850296740478c64ef5806d8b878"
+  integrity sha512-9ca5MJz455CODIVXs0/sWmJm7t3QO4EUa1zf8pE8grLpzf0J94bz/skDWm37Pli13T3WaAQBHCTiH2gUVfCsWg==
   dependencies:
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/protocol-http" "^3.3.0"
-    "@smithy/types" "^2.12.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/protocol-http" "^4.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/middleware-logger@3.535.0":
-  version "3.535.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.535.0.tgz#1a8ffd6c368edd6cb32e1edf7b1dced95c1820ee"
-  integrity sha512-huNHpONOrEDrdRTvSQr1cJiRMNf0S52NDXtaPzdxiubTkP+vni2MohmZANMOai/qT0olmEVX01LhZ0ZAOgmg6A==
+"@aws-sdk/middleware-logger@3.577.0":
+  version "3.577.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.577.0.tgz#6da3b13ae284fb3930961f0fc8e20b1f6cf8be30"
+  integrity sha512-aPFGpGjTZcJYk+24bg7jT4XdIp42mFXSuPt49lw5KygefLyJM/sB0bKKqPYYivW0rcuZ9brQ58eZUNthrzYAvg==
   dependencies:
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/types" "^2.12.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/middleware-recursion-detection@3.535.0":
-  version "3.535.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.535.0.tgz#6aa1e1bd1e84730d58a73021b745e20d4341a92d"
-  integrity sha512-am2qgGs+gwqmR4wHLWpzlZ8PWhm4ktj5bYSgDrsOfjhdBlWNxvPoID9/pDAz5RWL48+oH7I6SQzMqxXsFDikrw==
+"@aws-sdk/middleware-recursion-detection@3.577.0":
+  version "3.577.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.577.0.tgz#fff76abc6d4521636f9e654ce5bf2c4c79249417"
+  integrity sha512-pn3ZVEd2iobKJlR3H+bDilHjgRnNrQ6HMmK9ZzZw89Ckn3Dcbv48xOv4RJvu0aU8SDLl/SNCxppKjeLDTPGBNA==
   dependencies:
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/protocol-http" "^3.3.0"
-    "@smithy/types" "^2.12.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/protocol-http" "^4.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/middleware-user-agent@3.540.0":
-  version "3.540.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.540.0.tgz#4981c64c1eeb6b5c453bce02d060b8c71d44994d"
-  integrity sha512-8Rd6wPeXDnOYzWj1XCmOKcx/Q87L0K1/EHqOBocGjLVbN3gmRxBvpmR1pRTjf7IsWfnnzN5btqtcAkfDPYQUMQ==
+"@aws-sdk/middleware-user-agent@3.583.0":
+  version "3.583.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.583.0.tgz#5554b0de431cb3700368f01eb7425210fd3ee9a9"
+  integrity sha512-xVNXXXDWvBVI/AeVtSdA9SVumqxiZaESk/JpUn9GMkmtTKfter0Cweap+1iQ9j8bRAO0vNhmIkbcvdB1S4WVUw==
   dependencies:
-    "@aws-sdk/types" "3.535.0"
-    "@aws-sdk/util-endpoints" "3.540.0"
-    "@smithy/protocol-http" "^3.3.0"
-    "@smithy/types" "^2.12.0"
+    "@aws-sdk/types" "3.577.0"
+    "@aws-sdk/util-endpoints" "3.583.0"
+    "@smithy/protocol-http" "^4.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/region-config-resolver@3.535.0":
-  version "3.535.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.535.0.tgz#20a30fb5fbbe27ab70f2ed16327bae7e367b5cec"
-  integrity sha512-IXOznDiaItBjsQy4Fil0kzX/J3HxIOknEphqHbOfUf+LpA5ugcsxuQQONrbEQusCBnfJyymrldBvBhFmtlU9Wg==
+"@aws-sdk/region-config-resolver@3.577.0":
+  version "3.577.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.577.0.tgz#1fab6dc6c4ec3ad9a0352c1ce1a757464219fb00"
+  integrity sha512-4ChCFACNwzqx/xjg3zgFcW8Ali6R9C95cFECKWT/7CUM1D0MGvkclSH2cLarmHCmJgU6onKkJroFtWp0kHhgyg==
   dependencies:
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/node-config-provider" "^2.3.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/util-config-provider" "^2.3.0"
-    "@smithy/util-middleware" "^2.2.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/node-config-provider" "^3.0.0"
+    "@smithy/types" "^3.0.0"
+    "@smithy/util-config-provider" "^3.0.0"
+    "@smithy/util-middleware" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/token-providers@3.540.0":
-  version "3.540.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.540.0.tgz#06fb874a62d3c496875768ac648bc6cca4c75a79"
-  integrity sha512-9BvtiVEZe5Ev88Wa4ZIUbtT6BVcPwhxmVInQ6c12MYNb0WNL54BN6wLy/eknAfF05gpX2/NDU2pUDOyMPdm/+g==
+"@aws-sdk/token-providers@3.577.0":
+  version "3.577.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.577.0.tgz#8f9e96ff42994dfd0b5b3692b583644ccda04893"
+  integrity sha512-0CkIZpcC3DNQJQ1hDjm2bdSy/Xjs7Ny5YvSsacasGOkNfk+FdkiQy6N67bZX3Zbc9KIx+Nz4bu3iDeNSNplnnQ==
   dependencies:
-    "@aws-sdk/client-sso-oidc" "3.540.0"
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/property-provider" "^2.2.0"
-    "@smithy/shared-ini-file-loader" "^2.4.0"
-    "@smithy/types" "^2.12.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/property-provider" "^3.0.0"
+    "@smithy/shared-ini-file-loader" "^3.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/types@3.535.0", "@aws-sdk/types@^3.222.0":
-  version "3.535.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.535.0.tgz#5e6479f31299dd9df170e63f4d10fe739008cf04"
-  integrity sha512-aY4MYfduNj+sRR37U7XxYR8wemfbKP6lx00ze2M2uubn7mZotuVrWYAafbMSXrdEMSToE5JDhr28vArSOoLcSg==
+"@aws-sdk/types@3.577.0", "@aws-sdk/types@^3.222.0":
+  version "3.577.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.577.0.tgz#7700784d368ce386745f8c340d9d68cea4716f90"
+  integrity sha512-FT2JZES3wBKN/alfmhlo+3ZOq/XJ0C7QOZcDNrpKjB0kqYoKjhVKZ/Hx6ArR0czkKfHzBBEs6y40ebIHx2nSmA==
   dependencies:
-    "@smithy/types" "^2.12.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@aws-sdk/util-endpoints@3.540.0":
-  version "3.540.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.540.0.tgz#a7fea1d2a5e64623353aaa6ee32dbb86ab9cd3f8"
-  integrity sha512-1kMyQFAWx6f8alaI6UT65/5YW/7pDWAKAdNwL6vuJLea03KrZRX3PMoONOSJpAS5m3Ot7HlWZvf3wZDNTLELZw==
+"@aws-sdk/util-endpoints@3.583.0":
+  version "3.583.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.583.0.tgz#1554d3b4124be21a72a519603e9727d973845504"
+  integrity sha512-ZC9mb2jq6BFXPYsUsD2tmYcnlmd+9PGNwnFNn8jk4abna5Jjk2wDknN81ybktmBR5ttN9W8ugmktuKtvAMIDCQ==
   dependencies:
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/util-endpoints" "^1.2.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/types" "^3.0.0"
+    "@smithy/util-endpoints" "^2.0.0"
     tslib "^2.6.2"
 
 "@aws-sdk/util-locate-window@^3.0.0":
-  version "3.535.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.535.0.tgz#0200a336fddd47dd6567ce15d01f62be50a315d7"
-  integrity sha512-PHJ3SL6d2jpcgbqdgiPxkXpu7Drc2PYViwxSIqvvMKhDwzSB1W3mMvtpzwKM4IE7zLFodZo0GKjJ9AsoXndXhA==
+  version "3.568.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.568.0.tgz#2acc4b2236af0d7494f7e517401ba6b3c4af11ff"
+  integrity sha512-3nh4TINkXYr+H41QaPelCceEB2FXP3fxp93YZXB/kqJvX0U9j0N0Uk45gvsjmEPzG8XxkPEeLIfT2I1M7A6Lig==
   dependencies:
     tslib "^2.6.2"
 
-"@aws-sdk/util-user-agent-browser@3.535.0":
-  version "3.535.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.535.0.tgz#d67d72e8b933051620f18ddb1c2be225f79f588f"
-  integrity sha512-RWMcF/xV5n+nhaA/Ff5P3yNP3Kur/I+VNZngog4TEs92oB/nwOdAg/2JL8bVAhUbMrjTjpwm7PItziYFQoqyig==
+"@aws-sdk/util-user-agent-browser@3.577.0":
+  version "3.577.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.577.0.tgz#d4d2cdb3a2b3d1c8b35f239ee9f7b2c87bee66ea"
+  integrity sha512-zEAzHgR6HWpZOH7xFgeJLc6/CzMcx4nxeQolZxVZoB5pPaJd3CjyRhZN0xXeZB0XIRCWmb4yJBgyiugXLNMkLA==
   dependencies:
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/types" "^2.12.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/types" "^3.0.0"
     bowser "^2.11.0"
     tslib "^2.6.2"
 
-"@aws-sdk/util-user-agent-node@3.535.0":
-  version "3.535.0"
-  resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.535.0.tgz#f5c26fb6f3f561d3cf35f96f303b1775afad0a5b"
-  integrity sha512-dRek0zUuIT25wOWJlsRm97nTkUlh1NDcLsQZIN2Y8KxhwoXXWtJs5vaDPT+qAg+OpcNj80i1zLR/CirqlFg/TQ==
+"@aws-sdk/util-user-agent-node@3.577.0":
+  version "3.577.0"
+  resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.577.0.tgz#0215ea10ead622a61b575a7181a4c51ae8e71449"
+  integrity sha512-XqvtFjbSMtycZTWVwDe8DRWovuoMbA54nhUoZwVU6rW9OSD6NZWGR512BUGHFaWzW0Wg8++Dj10FrKTG2XtqfA==
   dependencies:
-    "@aws-sdk/types" "3.535.0"
-    "@smithy/node-config-provider" "^2.3.0"
-    "@smithy/types" "^2.12.0"
+    "@aws-sdk/types" "3.577.0"
+    "@smithy/node-config-provider" "^3.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
 "@aws-sdk/util-utf8-browser@^3.0.0":
@@ -502,12 +494,12 @@
     tslib "^2.3.1"
 
 "@babel/cli@^7.16.0":
-  version "7.24.1"
-  resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.24.1.tgz#2e11e071e32fe82850b4fe514f56b9c9e1c44911"
-  integrity sha512-HbmrtxyFUr34LwAlV9jS+sSIjUp4FpdtIMGwgufY3AsxrIfsh/HxlMTywsONAZsU0RMYbZtbZFpUCrSGs7o0EA==
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.24.6.tgz#fac1fb099dff635efa1110882063c44a211cf18c"
+  integrity sha512-Sm/YhG/0REw9SKByFHDf4hkk7PYsjcsOyZgHGz1nvab4tUTQ9N4XVv+ykK0Y+VCJ3OshA/7EDyxnwCd8NEP/mQ==
   dependencies:
     "@jridgewell/trace-mapping" "^0.3.25"
-    commander "^4.0.1"
+    commander "^6.2.0"
     convert-source-map "^2.0.0"
     fs-readdir-recursive "^1.1.0"
     glob "^7.2.0"
@@ -517,198 +509,197 @@
     "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents.3"
     chokidar "^3.4.0"
 
-"@babel/code-frame@^7.23.5", "@babel/code-frame@^7.24.1", "@babel/code-frame@^7.24.2":
-  version "7.24.2"
-  resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.2.tgz#718b4b19841809a58b29b68cde80bc5e1aa6d9ae"
-  integrity sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==
+"@babel/code-frame@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.6.tgz#ab88da19344445c3d8889af2216606d3329f3ef2"
+  integrity sha512-ZJhac6FkEd1yhG2AHOmfcXG4ceoLltoCVJjN5XsWN9BifBQr+cHJbWi0h68HZuSORq+3WtJ2z0hwF2NG1b5kcA==
   dependencies:
-    "@babel/highlight" "^7.24.2"
+    "@babel/highlight" "^7.24.6"
     picocolors "^1.0.0"
 
-"@babel/compat-data@^7.23.5":
-  version "7.24.1"
-  resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.24.1.tgz#31c1f66435f2a9c329bb5716a6d6186c516c3742"
-  integrity sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==
+"@babel/compat-data@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.24.6.tgz#b3600217688cabb26e25f8e467019e66d71b7ae2"
+  integrity sha512-aC2DGhBq5eEdyXWqrDInSqQjO0k8xtPRf5YylULqx8MCd6jBtzqfta/3ETMRpuKIc5hyswfO80ObyA1MvkCcUQ==
 
 "@babel/core@^7.16.5":
-  version "7.24.3"
-  resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.24.3.tgz#568864247ea10fbd4eff04dda1e05f9e2ea985c3"
-  integrity sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.24.6.tgz#8650e0e4b03589ebe886c4e4a60398db0a7ec787"
+  integrity sha512-qAHSfAdVyFmIvl0VHELib8xar7ONuSHrE2hLnsaWkYNTI68dmi1x8GYDhJjMI/e7XWal9QBlZkwbOnkcw7Z8gQ==
   dependencies:
     "@ampproject/remapping" "^2.2.0"
-    "@babel/code-frame" "^7.24.2"
-    "@babel/generator" "^7.24.1"
-    "@babel/helper-compilation-targets" "^7.23.6"
-    "@babel/helper-module-transforms" "^7.23.3"
-    "@babel/helpers" "^7.24.1"
-    "@babel/parser" "^7.24.1"
-    "@babel/template" "^7.24.0"
-    "@babel/traverse" "^7.24.1"
-    "@babel/types" "^7.24.0"
+    "@babel/code-frame" "^7.24.6"
+    "@babel/generator" "^7.24.6"
+    "@babel/helper-compilation-targets" "^7.24.6"
+    "@babel/helper-module-transforms" "^7.24.6"
+    "@babel/helpers" "^7.24.6"
+    "@babel/parser" "^7.24.6"
+    "@babel/template" "^7.24.6"
+    "@babel/traverse" "^7.24.6"
+    "@babel/types" "^7.24.6"
     convert-source-map "^2.0.0"
     debug "^4.1.0"
     gensync "^1.0.0-beta.2"
     json5 "^2.2.3"
     semver "^6.3.1"
 
-"@babel/generator@^7.24.1", "@babel/generator@^7.4.0":
-  version "7.24.1"
-  resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.24.1.tgz#e67e06f68568a4ebf194d1c6014235344f0476d0"
-  integrity sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==
+"@babel/generator@^7.24.6", "@babel/generator@^7.4.0":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.24.6.tgz#dfac82a228582a9d30c959fe50ad28951d4737a7"
+  integrity sha512-S7m4eNa6YAPJRHmKsLHIDJhNAGNKoWNiWefz1MBbpnt8g9lvMDl1hir4P9bo/57bQEmuwEhnRU/AMWsD0G/Fbg==
   dependencies:
-    "@babel/types" "^7.24.0"
+    "@babel/types" "^7.24.6"
     "@jridgewell/gen-mapping" "^0.3.5"
     "@jridgewell/trace-mapping" "^0.3.25"
     jsesc "^2.5.1"
 
-"@babel/helper-annotate-as-pure@^7.22.5":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882"
-  integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==
+"@babel/helper-annotate-as-pure@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.6.tgz#517af93abc77924f9b2514c407bbef527fb8938d"
+  integrity sha512-DitEzDfOMnd13kZnDqns1ccmftwJTS9DMkyn9pYTxulS7bZxUxpMly3Nf23QQ6NwA4UB8lAqjbqWtyvElEMAkg==
   dependencies:
-    "@babel/types" "^7.22.5"
+    "@babel/types" "^7.24.6"
 
-"@babel/helper-compilation-targets@^7.23.6":
-  version "7.23.6"
-  resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991"
-  integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==
+"@babel/helper-compilation-targets@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.6.tgz#4a51d681f7680043d38e212715e2a7b1ad29cb51"
+  integrity sha512-VZQ57UsDGlX/5fFA7GkVPplZhHsVc+vuErWgdOiysI9Ksnw0Pbbd6pnPiR/mmJyKHgyIW0c7KT32gmhiF+cirg==
   dependencies:
-    "@babel/compat-data" "^7.23.5"
-    "@babel/helper-validator-option" "^7.23.5"
+    "@babel/compat-data" "^7.24.6"
+    "@babel/helper-validator-option" "^7.24.6"
     browserslist "^4.22.2"
     lru-cache "^5.1.1"
     semver "^6.3.1"
 
-"@babel/helper-environment-visitor@^7.22.20":
-  version "7.22.20"
-  resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167"
-  integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==
-
-"@babel/helper-function-name@^7.23.0":
-  version "7.23.0"
-  resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759"
-  integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==
-  dependencies:
-    "@babel/template" "^7.22.15"
-    "@babel/types" "^7.23.0"
-
-"@babel/helper-hoist-variables@^7.22.5":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb"
-  integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==
-  dependencies:
-    "@babel/types" "^7.22.5"
-
-"@babel/helper-module-imports@^7.22.15":
-  version "7.24.3"
-  resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz#6ac476e6d168c7c23ff3ba3cf4f7841d46ac8128"
-  integrity sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==
-  dependencies:
-    "@babel/types" "^7.24.0"
-
-"@babel/helper-module-transforms@^7.23.3":
-  version "7.23.3"
-  resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1"
-  integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==
-  dependencies:
-    "@babel/helper-environment-visitor" "^7.22.20"
-    "@babel/helper-module-imports" "^7.22.15"
-    "@babel/helper-simple-access" "^7.22.5"
-    "@babel/helper-split-export-declaration" "^7.22.6"
-    "@babel/helper-validator-identifier" "^7.22.20"
-
-"@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.24.0":
-  version "7.24.0"
-  resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz#945681931a52f15ce879fd5b86ce2dae6d3d7f2a"
-  integrity sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==
-
-"@babel/helper-simple-access@^7.22.5":
-  version "7.22.5"
-  resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de"
-  integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==
-  dependencies:
-    "@babel/types" "^7.22.5"
-
-"@babel/helper-split-export-declaration@^7.22.6":
-  version "7.22.6"
-  resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c"
-  integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==
-  dependencies:
-    "@babel/types" "^7.22.5"
-
-"@babel/helper-string-parser@^7.23.4":
-  version "7.24.1"
-  resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz#f99c36d3593db9540705d0739a1f10b5e20c696e"
-  integrity sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==
-
-"@babel/helper-validator-identifier@^7.22.20":
-  version "7.22.20"
-  resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0"
-  integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==
-
-"@babel/helper-validator-option@^7.23.5":
-  version "7.23.5"
-  resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307"
-  integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==
-
-"@babel/helpers@^7.24.1":
-  version "7.24.1"
-  resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.24.1.tgz#183e44714b9eba36c3038e442516587b1e0a1a94"
-  integrity sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==
-  dependencies:
-    "@babel/template" "^7.24.0"
-    "@babel/traverse" "^7.24.1"
-    "@babel/types" "^7.24.0"
-
-"@babel/highlight@^7.24.2":
-  version "7.24.2"
-  resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.2.tgz#3f539503efc83d3c59080a10e6634306e0370d26"
-  integrity sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==
-  dependencies:
-    "@babel/helper-validator-identifier" "^7.22.20"
+"@babel/helper-environment-visitor@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.6.tgz#ac7ad5517821641550f6698dd5468f8cef78620d"
+  integrity sha512-Y50Cg3k0LKLMjxdPjIl40SdJgMB85iXn27Vk/qbHZCFx/o5XO3PSnpi675h1KEmmDb6OFArfd5SCQEQ5Q4H88g==
+
+"@babel/helper-function-name@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.24.6.tgz#cebdd063386fdb95d511d84b117e51fc68fec0c8"
+  integrity sha512-xpeLqeeRkbxhnYimfr2PC+iA0Q7ljX/d1eZ9/inYbmfG2jpl8Lu3DyXvpOAnrS5kxkfOWJjioIMQsaMBXFI05w==
+  dependencies:
+    "@babel/template" "^7.24.6"
+    "@babel/types" "^7.24.6"
+
+"@babel/helper-hoist-variables@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.6.tgz#8a7ece8c26756826b6ffcdd0e3cf65de275af7f9"
+  integrity sha512-SF/EMrC3OD7dSta1bLJIlrsVxwtd0UpjRJqLno6125epQMJ/kyFmpTT4pbvPbdQHzCHg+biQ7Syo8lnDtbR+uA==
+  dependencies:
+    "@babel/types" "^7.24.6"
+
+"@babel/helper-module-imports@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.6.tgz#65e54ffceed6a268dc4ce11f0433b82cfff57852"
+  integrity sha512-a26dmxFJBF62rRO9mmpgrfTLsAuyHk4e1hKTUkD/fcMfynt8gvEKwQPQDVxWhca8dHoDck+55DFt42zV0QMw5g==
+  dependencies:
+    "@babel/types" "^7.24.6"
+
+"@babel/helper-module-transforms@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.24.6.tgz#22346ed9df44ce84dee850d7433c5b73fab1fe4e"
+  integrity sha512-Y/YMPm83mV2HJTbX1Qh2sjgjqcacvOlhbzdCCsSlblOKjSYmQqEbO6rUniWQyRo9ncyfjT8hnUjlG06RXDEmcA==
+  dependencies:
+    "@babel/helper-environment-visitor" "^7.24.6"
+    "@babel/helper-module-imports" "^7.24.6"
+    "@babel/helper-simple-access" "^7.24.6"
+    "@babel/helper-split-export-declaration" "^7.24.6"
+    "@babel/helper-validator-identifier" "^7.24.6"
+
+"@babel/helper-plugin-utils@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.6.tgz#fa02a32410a15a6e8f8185bcbf608f10528d2a24"
+  integrity sha512-MZG/JcWfxybKwsA9N9PmtF2lOSFSEMVCpIRrbxccZFLJPrJciJdG/UhSh5W96GEteJI2ARqm5UAHxISwRDLSNg==
+
+"@babel/helper-simple-access@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.24.6.tgz#1d6e04d468bba4fc963b4906f6dac6286cfedff1"
+  integrity sha512-nZzcMMD4ZhmB35MOOzQuiGO5RzL6tJbsT37Zx8M5L/i9KSrukGXWTjLe1knIbb/RmxoJE9GON9soq0c0VEMM5g==
+  dependencies:
+    "@babel/types" "^7.24.6"
+
+"@babel/helper-split-export-declaration@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.6.tgz#e830068f7ba8861c53b7421c284da30ae656d7a3"
+  integrity sha512-CvLSkwXGWnYlF9+J3iZUvwgAxKiYzK3BWuo+mLzD/MDGOZDj7Gq8+hqaOkMxmJwmlv0iu86uH5fdADd9Hxkymw==
+  dependencies:
+    "@babel/types" "^7.24.6"
+
+"@babel/helper-string-parser@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.6.tgz#28583c28b15f2a3339cfafafeaad42f9a0e828df"
+  integrity sha512-WdJjwMEkmBicq5T9fm/cHND3+UlFa2Yj8ALLgmoSQAJZysYbBjw+azChSGPN4DSPLXOcooGRvDwZWMcF/mLO2Q==
+
+"@babel/helper-validator-identifier@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.6.tgz#08bb6612b11bdec78f3feed3db196da682454a5e"
+  integrity sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw==
+
+"@babel/helper-validator-option@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.24.6.tgz#59d8e81c40b7d9109ab7e74457393442177f460a"
+  integrity sha512-Jktc8KkF3zIkePb48QO+IapbXlSapOW9S+ogZZkcO6bABgYAxtZcjZ/O005111YLf+j4M84uEgwYoidDkXbCkQ==
+
+"@babel/helpers@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.24.6.tgz#cd124245299e494bd4e00edda0e4ea3545c2c176"
+  integrity sha512-V2PI+NqnyFu1i0GyTd/O/cTpxzQCYioSkUIRmgo7gFEHKKCg5w46+r/A6WeUR1+P3TeQ49dspGPNd/E3n9AnnA==
+  dependencies:
+    "@babel/template" "^7.24.6"
+    "@babel/types" "^7.24.6"
+
+"@babel/highlight@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.6.tgz#6d610c1ebd2c6e061cade0153bf69b0590b7b3df"
+  integrity sha512-2YnuOp4HAk2BsBrJJvYCbItHx0zWscI1C3zgWkz+wDyD9I7GIVrfnLyrR4Y1VR+7p+chAEcrgRQYZAGIKMV7vQ==
+  dependencies:
+    "@babel/helper-validator-identifier" "^7.24.6"
     chalk "^2.4.2"
     js-tokens "^4.0.0"
     picocolors "^1.0.0"
 
 "@babel/node@^7.16.5":
-  version "7.23.9"
-  resolved "https://registry.yarnpkg.com/@babel/node/-/node-7.23.9.tgz#fc40dc371439f1a45535ebf515232f4f046ef7a9"
-  integrity sha512-/d4ju/POwlGIJlZ+NqWH1qu61wt6ZlTZZZutrK2MOSdaH1JCh726nLw/GSvAjG+LTY6CO9SsB8uWcttnFKm6yg==
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/node/-/node-7.24.6.tgz#cefca562b9c569583431f1f07a0965101614b223"
+  integrity sha512-63bD/Kbh1Vl6HapTZLSsyaGlQhhpF1/GpyS1oJotroJKoamOgKKEEKk3iHZAkicjcr+n4V4zdB0V+8siv6AZ5Q==
   dependencies:
-    "@babel/register" "^7.23.7"
-    commander "^4.0.1"
+    "@babel/register" "^7.24.6"
+    commander "^6.2.0"
     core-js "^3.30.2"
     node-environment-flags "^1.0.5"
     regenerator-runtime "^0.14.0"
     v8flags "^3.1.1"
 
-"@babel/parser@^7.24.0", "@babel/parser@^7.24.1", "@babel/parser@^7.4.3":
-  version "7.24.1"
-  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.1.tgz#1e416d3627393fab1cb5b0f2f1796a100ae9133a"
-  integrity sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==
+"@babel/parser@^7.24.6", "@babel/parser@^7.4.3":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.6.tgz#5e030f440c3c6c78d195528c3b688b101a365328"
+  integrity sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q==
 
-"@babel/plugin-syntax-jsx@^7.23.3":
-  version "7.24.1"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz#3f6ca04b8c841811dbc3c5c5f837934e0d626c10"
-  integrity sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==
+"@babel/plugin-syntax-jsx@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.6.tgz#bcca2964150437f88f65e3679e3d68762287b9c8"
+  integrity sha512-lWfvAIFNWMlCsU0DRUun2GpFwZdGTukLaHJqRh1JRb80NdAP5Sb1HDHB5X9P9OtgZHQl089UzQkpYlBq2VTPRw==
   dependencies:
-    "@babel/helper-plugin-utils" "^7.24.0"
+    "@babel/helper-plugin-utils" "^7.24.6"
 
 "@babel/plugin-transform-react-jsx@^7.16.5":
-  version "7.23.4"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz#393f99185110cea87184ea47bcb4a7b0c2e39312"
-  integrity sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.24.6.tgz#4ca3660ca663d20095455571615d6263986cdfe4"
+  integrity sha512-pCtPHhpRZHfwdA5G1Gpk5mIzMA99hv0R8S/Ket50Rw+S+8hkt3wBWqdqHaPw0CuUYxdshUgsPiLQ5fAs4ASMhw==
   dependencies:
-    "@babel/helper-annotate-as-pure" "^7.22.5"
-    "@babel/helper-module-imports" "^7.22.15"
-    "@babel/helper-plugin-utils" "^7.22.5"
-    "@babel/plugin-syntax-jsx" "^7.23.3"
-    "@babel/types" "^7.23.4"
+    "@babel/helper-annotate-as-pure" "^7.24.6"
+    "@babel/helper-module-imports" "^7.24.6"
+    "@babel/helper-plugin-utils" "^7.24.6"
+    "@babel/plugin-syntax-jsx" "^7.24.6"
+    "@babel/types" "^7.24.6"
 
-"@babel/register@^7.23.7":
-  version "7.23.7"
-  resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.23.7.tgz#485a5e7951939d21304cae4af1719fdb887bc038"
-  integrity sha512-EjJeB6+kvpk+Y5DAkEAmbOBEFkh9OASx0huoEkqYTFxAZHzOAX2Oh5uwAUuL2rUddqfM0SA+KPXV2TbzoZ2kvQ==
+"@babel/register@^7.24.6":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.24.6.tgz#59e21dcc79e1d04eed5377633b0f88029a6bef9e"
+  integrity sha512-WSuFCc2wCqMeXkz/i3yfAAsxwWflEgbVkZzivgAmXl/MxrXeoYFZOOPllbC8R8WTF7u61wSRQtDVZ1879cdu6w==
   dependencies:
     clone-deep "^4.0.1"
     find-cache-dir "^2.0.0"
@@ -716,38 +707,38 @@
     pirates "^4.0.6"
     source-map-support "^0.5.16"
 
-"@babel/template@^7.22.15", "@babel/template@^7.24.0", "@babel/template@^7.4.0":
-  version "7.24.0"
-  resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.24.0.tgz#c6a524aa93a4a05d66aaf31654258fae69d87d50"
-  integrity sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==
-  dependencies:
-    "@babel/code-frame" "^7.23.5"
-    "@babel/parser" "^7.24.0"
-    "@babel/types" "^7.24.0"
-
-"@babel/traverse@^7.24.1", "@babel/traverse@^7.4.3":
-  version "7.24.1"
-  resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.1.tgz#d65c36ac9dd17282175d1e4a3c49d5b7988f530c"
-  integrity sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==
-  dependencies:
-    "@babel/code-frame" "^7.24.1"
-    "@babel/generator" "^7.24.1"
-    "@babel/helper-environment-visitor" "^7.22.20"
-    "@babel/helper-function-name" "^7.23.0"
-    "@babel/helper-hoist-variables" "^7.22.5"
-    "@babel/helper-split-export-declaration" "^7.22.6"
-    "@babel/parser" "^7.24.1"
-    "@babel/types" "^7.24.0"
+"@babel/template@^7.24.6", "@babel/template@^7.4.0":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.24.6.tgz#048c347b2787a6072b24c723664c8d02b67a44f9"
+  integrity sha512-3vgazJlLwNXi9jhrR1ef8qiB65L1RK90+lEQwv4OxveHnqC3BfmnHdgySwRLzf6akhlOYenT+b7AfWq+a//AHw==
+  dependencies:
+    "@babel/code-frame" "^7.24.6"
+    "@babel/parser" "^7.24.6"
+    "@babel/types" "^7.24.6"
+
+"@babel/traverse@^7.24.6", "@babel/traverse@^7.4.3":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.6.tgz#0941ec50cdeaeacad0911eb67ae227a4f8424edc"
+  integrity sha512-OsNjaJwT9Zn8ozxcfoBc+RaHdj3gFmCmYoQLUII1o6ZrUwku0BMg80FoOTPx+Gi6XhcQxAYE4xyjPTo4SxEQqw==
+  dependencies:
+    "@babel/code-frame" "^7.24.6"
+    "@babel/generator" "^7.24.6"
+    "@babel/helper-environment-visitor" "^7.24.6"
+    "@babel/helper-function-name" "^7.24.6"
+    "@babel/helper-hoist-variables" "^7.24.6"
+    "@babel/helper-split-export-declaration" "^7.24.6"
+    "@babel/parser" "^7.24.6"
+    "@babel/types" "^7.24.6"
     debug "^4.3.1"
     globals "^11.1.0"
 
-"@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.4", "@babel/types@^7.24.0", "@babel/types@^7.4.0":
-  version "7.24.0"
-  resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.0.tgz#3b951f435a92e7333eba05b7566fd297960ea1bf"
-  integrity sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==
+"@babel/types@^7.24.6", "@babel/types@^7.4.0":
+  version "7.24.6"
+  resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.6.tgz#ba4e1f59870c10dc2fa95a274ac4feec23b21912"
+  integrity sha512-WaMsgi6Q8zMgMth93GvWPXkhAIEobfsIkLTacoVZoK1J0CevIPGYY2Vo5YvJGqyHqXM6P4ppOYGsIRU8MM9pFQ==
   dependencies:
-    "@babel/helper-string-parser" "^7.23.4"
-    "@babel/helper-validator-identifier" "^7.22.20"
+    "@babel/helper-string-parser" "^7.24.6"
+    "@babel/helper-validator-identifier" "^7.24.6"
     to-fast-properties "^2.0.0"
 
 "@colors/colors@1.6.0", "@colors/colors@^1.6.0":
@@ -781,16 +772,16 @@
     kuler "^2.0.0"
 
 "@discordjs/builders@^1.3.0":
-  version "1.7.0"
-  resolved "https://registry.yarnpkg.com/@discordjs/builders/-/builders-1.7.0.tgz#e2478c7e55b0f4c40837edb8f102bce977323a37"
-  integrity sha512-GDtbKMkg433cOZur8Dv6c25EHxduNIBsxeHrsRoIM8+AwmEZ8r0tEpckx/sHwTLwQPOF3e2JWloZh9ofCaMfAw==
+  version "1.8.1"
+  resolved "https://registry.yarnpkg.com/@discordjs/builders/-/builders-1.8.1.tgz#5bca6e50a012492ecc03480ced53cbc7a1aac054"
+  integrity sha512-GkF+HM01FHy+NSoTaUPR8z44otfQgJ1AIsRxclYGUZDyUbdZEFyD/5QVv2Y1Flx6M+B0bQLzg2M9CJv5lGTqpA==
   dependencies:
-    "@discordjs/formatters" "^0.3.3"
-    "@discordjs/util" "^1.0.2"
-    "@sapphire/shapeshift" "^3.9.3"
-    discord-api-types "0.37.61"
+    "@discordjs/formatters" "^0.4.0"
+    "@discordjs/util" "^1.1.0"
+    "@sapphire/shapeshift" "^3.9.7"
+    discord-api-types "0.37.83"
     fast-deep-equal "^3.1.3"
-    ts-mixer "^6.0.3"
+    ts-mixer "^6.0.4"
     tslib "^2.6.2"
 
 "@discordjs/collection@^1.2.0", "@discordjs/collection@^1.5.1":
@@ -798,12 +789,12 @@
   resolved "https://registry.yarnpkg.com/@discordjs/collection/-/collection-1.5.3.tgz#5a1250159ebfff9efa4f963cfa7e97f1b291be18"
   integrity sha512-SVb428OMd3WO1paV3rm6tSjM4wC+Kecaa1EUGX7vc6/fddvw/6lg90z4QtCqm21zvVe92vMMDt9+DkIvjXImQQ==
 
-"@discordjs/formatters@^0.3.3":
-  version "0.3.3"
-  resolved "https://registry.yarnpkg.com/@discordjs/formatters/-/formatters-0.3.3.tgz#b16fdd79bb819680ab7e519193004e9dc124a749"
-  integrity sha512-wTcI1Q5cps1eSGhl6+6AzzZkBBlVrBdc9IUhJbijRgVjCNIIIZPgqnUj3ntFODsHrdbGU8BEG9XmDQmgEEYn3w==
+"@discordjs/formatters@^0.4.0":
+  version "0.4.0"
+  resolved "https://registry.yarnpkg.com/@discordjs/formatters/-/formatters-0.4.0.tgz#066a2c2163b26ac066e6f621f17445be9690c6a9"
+  integrity sha512-fJ06TLC1NiruF35470q3Nr1bi95BdvKFAF+T5bNfZJ4bNdqZ3VZ+Ttg6SThqTxm6qumSG3choxLBHMC69WXNXQ==
   dependencies:
-    discord-api-types "0.37.61"
+    discord-api-types "0.37.83"
 
 "@discordjs/rest@^1.3.0":
   version "1.7.1"
@@ -829,10 +820,10 @@
   resolved "https://registry.yarnpkg.com/@discordjs/util/-/util-0.3.1.tgz#4e8737e1dcff7e9f5eccc3116fb44755b65b1e97"
   integrity sha512-HxXKYKg7vohx2/OupUN/4Sd02Ev3PBJ5q0gtjdcvXb0ErCva8jNHWfe/v5sU3UKjIB/uxOhc+TDOnhqffj9pRA==
 
-"@discordjs/util@^1.0.2":
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/@discordjs/util/-/util-1.0.2.tgz#dc1896d764452b1bd9707eb9aa99ccfbb30bd1c0"
-  integrity sha512-IRNbimrmfb75GMNEjyznqM1tkI7HrZOf14njX7tCAAUetyZM1Pr8hX/EK2lxBCOgWDRmigbp24fD1hdMfQK5lw==
+"@discordjs/util@^1.1.0":
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/@discordjs/util/-/util-1.1.0.tgz#dcffd2b61aab8eadd66bea67811bc34fc769bb2a"
+  integrity sha512-IndcI5hzlNZ7GS96RV3Xw1R2kaDuXEp7tRIy/KlhidpN/BQ1qh1NZt3377dMLTa44xDUNKT7hnXkA/oUAzD/lg==
 
 "@fastify/busboy@^2.0.0":
   version "2.1.1"
@@ -981,10 +972,10 @@
   resolved "https://registry.yarnpkg.com/@sapphire/async-queue/-/async-queue-1.5.2.tgz#2982dce16e5b8b1ea792604d20c23c0585877b97"
   integrity sha512-7X7FFAA4DngXUl95+hYbUF19bp1LGiffjJtu7ygrZrbdCSsdDDBaSjB7Akw0ZbOu6k0xpXyljnJ6/RZUvLfRdg==
 
-"@sapphire/shapeshift@^3.9.3":
-  version "3.9.6"
-  resolved "https://registry.yarnpkg.com/@sapphire/shapeshift/-/shapeshift-3.9.6.tgz#bd9629c08641f5b94ae094e23f092187a3ed9a7d"
-  integrity sha512-4+Na/fxu2SEepZRb9z0dbsVh59QtwPuBg/UVaDib3av7ZY14b14+z09z6QVn0P6Dv6eOU2NDTsjIi0mbtgP56g==
+"@sapphire/shapeshift@^3.9.7":
+  version "3.9.7"
+  resolved "https://registry.yarnpkg.com/@sapphire/shapeshift/-/shapeshift-3.9.7.tgz#43e23243cac8a0c046bf1e73baf3dbf407d33a0c"
+  integrity sha512-4It2mxPSr4OGn4HSQWGmhFMsNFGfFVhWeRPCRwbH972Ek2pzfGRZtb0pJ4Ze6oIzcyh2jw7nUDa6qGlWofgd9g==
   dependencies:
     fast-deep-equal "^3.1.3"
     lodash "^4.17.21"
@@ -994,13 +985,13 @@
   resolved "https://registry.yarnpkg.com/@sapphire/snowflake/-/snowflake-3.5.3.tgz#0c102aa2ec5b34f806e9bc8625fc6a5e1d0a0c6a"
   integrity sha512-jjmJywLAFoWeBi1W7994zZyiNWPIiqRRNAmSERxyg93xRGzNYvGjlZ0gR6x0F4gPRi2+0O6S71kOZYyr3cxaIQ==
 
-"@sendgrid/client@^8.1.1":
-  version "8.1.1"
-  resolved "https://registry.yarnpkg.com/@sendgrid/client/-/client-8.1.1.tgz#5c15b59973da3e108257883e408c4afd74844248"
-  integrity sha512-pg0gYhAdyQil3Aga7/xHVcZFpvDAjAQMNBgMy5njTSkjACoWHmpSi1nWBZM7nIH/ptcRNMpnBbm9B5EvQ8fX2w==
+"@sendgrid/client@^8.1.3":
+  version "8.1.3"
+  resolved "https://registry.yarnpkg.com/@sendgrid/client/-/client-8.1.3.tgz#51fd4a318627c4b615ff98e35609e98486a3bd6f"
+  integrity sha512-mRwTticRZIdUTsnyzvlK6dMu3jni9ci9J+dW/6fMMFpGRAJdCJlivFVYQvqk8kRS3RnFzS7sf6BSmhLl1ldDhA==
   dependencies:
     "@sendgrid/helpers" "^8.0.0"
-    axios "^1.6.4"
+    axios "^1.6.8"
 
 "@sendgrid/helpers@^8.0.0":
   version "8.0.0"
@@ -1010,11 +1001,11 @@
     deepmerge "^4.2.2"
 
 "@sendgrid/mail@*":
-  version "8.1.1"
-  resolved "https://registry.yarnpkg.com/@sendgrid/mail/-/mail-8.1.1.tgz#506bc02c3a884d5c979278d6966f118afce37f93"
-  integrity sha512-tNtmgWLtBA7ZxKtPuEGOaIdEZP1vZSXsj5zg9iuoDBPVj/fNz+7LWzndvTcKumHk5eaDrS0UPXJqBm61m3+H1A==
+  version "8.1.3"
+  resolved "https://registry.yarnpkg.com/@sendgrid/mail/-/mail-8.1.3.tgz#d371cbddcd2e8ca9469a68d1ed0c6b3a5c365e5e"
+  integrity sha512-Wg5iKSUOER83/cfY6rbPa+o3ChnYzWwv1OcsR8gCV8SKi+sUPIMroildimlnb72DBkQxcbylxng1W7f0RIX7MQ==
   dependencies:
-    "@sendgrid/client" "^8.1.1"
+    "@sendgrid/client" "^8.1.3"
     "@sendgrid/helpers" "^8.0.0"
 
 "@sideway/address@^4.1.5":
@@ -1034,382 +1025,371 @@
   resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df"
   integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==
 
-"@smithy/abort-controller@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-2.2.0.tgz#18983401a5e2154b5c94057730024a7d14cbcd35"
-  integrity sha512-wRlta7GuLWpTqtFfGo+nZyOO1vEvewdNR1R4rTxpC8XU6vG/NDyrFBhwLZsqg1NUoR1noVaXJPC/7ZK47QCySw==
+"@smithy/abort-controller@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-3.0.0.tgz#5815f5d4618e14bf8d031bb98a99adabbb831168"
+  integrity sha512-p6GlFGBt9K4MYLu72YuJ523NVR4A8oHlC5M2JO6OmQqN8kAc/uh1JqLE+FizTokrSJGg0CSvC+BrsmGzKtsZKA==
   dependencies:
-    "@smithy/types" "^2.12.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/config-resolver@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-2.2.0.tgz#54f40478bb61709b396960a3535866dba5422757"
-  integrity sha512-fsiMgd8toyUba6n1WRmr+qACzXltpdDkPTAaDqc8QqPBUzO+/JKwL6bUBseHVi8tu9l+3JOK+tSf7cay+4B3LA==
+"@smithy/config-resolver@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-3.0.0.tgz#d37b31e3202c5ce54d9bd2406dcde7c7b5073cbd"
+  integrity sha512-2GzOfADwYLQugYkKQhIyZyQlM05K+tMKvRnc6eFfZcpJGRfKoMUMYdPlBKmqHwQFXQKBrGV6cxL9oymWgDzvFw==
   dependencies:
-    "@smithy/node-config-provider" "^2.3.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/util-config-provider" "^2.3.0"
-    "@smithy/util-middleware" "^2.2.0"
-    tslib "^2.6.2"
-
-"@smithy/core@^1.4.0":
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/@smithy/core/-/core-1.4.0.tgz#5f9f86b681b9cbf23904041dad6f0531efe8375e"
-  integrity sha512-uu9ZDI95Uij4qk+L6kyFjdk11zqBkcJ3Lv0sc6jZrqHvLyr0+oeekD3CnqMafBn/5PRI6uv6ulW3kNLRBUHeVw==
-  dependencies:
-    "@smithy/middleware-endpoint" "^2.5.0"
-    "@smithy/middleware-retry" "^2.2.0"
-    "@smithy/middleware-serde" "^2.3.0"
-    "@smithy/protocol-http" "^3.3.0"
-    "@smithy/smithy-client" "^2.5.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/util-middleware" "^2.2.0"
+    "@smithy/node-config-provider" "^3.0.0"
+    "@smithy/types" "^3.0.0"
+    "@smithy/util-config-provider" "^3.0.0"
+    "@smithy/util-middleware" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/credential-provider-imds@^2.3.0":
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-2.3.0.tgz#326ce401b82e53f3c7ee4862a066136959a06166"
-  integrity sha512-BWB9mIukO1wjEOo1Ojgl6LrG4avcaC7T/ZP6ptmAaW4xluhSIPZhY+/PI5YKzlk+jsm+4sQZB45Bt1OfMeQa3w==
-  dependencies:
-    "@smithy/node-config-provider" "^2.3.0"
-    "@smithy/property-provider" "^2.2.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/url-parser" "^2.2.0"
+"@smithy/core@^2.0.1":
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/@smithy/core/-/core-2.0.1.tgz#8a7ac8faa0227912ce260bc3f976a5e254323920"
+  integrity sha512-rcMkjvwxH/bER+oZUPR0yTA0ELD6m3A+d92+CFkdF6HJFCBB1bXo7P5pm21L66XwTN01B6bUhSCQ7cymWRD8zg==
+  dependencies:
+    "@smithy/middleware-endpoint" "^3.0.0"
+    "@smithy/middleware-retry" "^3.0.1"
+    "@smithy/middleware-serde" "^3.0.0"
+    "@smithy/protocol-http" "^4.0.0"
+    "@smithy/smithy-client" "^3.0.1"
+    "@smithy/types" "^3.0.0"
+    "@smithy/util-middleware" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/eventstream-codec@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-2.2.0.tgz#63d74fa817188995eb55e792a38060b0ede98dc4"
-  integrity sha512-8janZoJw85nJmQZc4L8TuePp2pk1nxLgkxIR0TUjKJ5Dkj5oelB9WtiSSGXCQvNsJl0VSTvK/2ueMXxvpa9GVw==
+"@smithy/credential-provider-imds@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-3.0.0.tgz#a290eb0224ef045742e5c806685cf63d44a084f3"
+  integrity sha512-lfmBiFQcA3FsDAPxNfY0L7CawcWtbyWsBOHo34nF095728JLkBX4Y9q/VPPE2r7fqMVK+drmDigqE2/SSQeVRA==
   dependencies:
-    "@aws-crypto/crc32" "3.0.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/util-hex-encoding" "^2.2.0"
+    "@smithy/node-config-provider" "^3.0.0"
+    "@smithy/property-provider" "^3.0.0"
+    "@smithy/types" "^3.0.0"
+    "@smithy/url-parser" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/fetch-http-handler@^2.5.0":
-  version "2.5.0"
-  resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-2.5.0.tgz#0b8e1562807fdf91fe7dd5cde620d7a03ddc10ac"
-  integrity sha512-BOWEBeppWhLn/no/JxUL/ghTfANTjT7kg3Ww2rPqTUY9R4yHPXxJ9JhMe3Z03LN3aPwiwlpDIUcVw1xDyHqEhw==
+"@smithy/fetch-http-handler@^3.0.1":
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-3.0.1.tgz#dacfdf6e70d639fac4a0f57c42ce13f0ed14ff22"
+  integrity sha512-uaH74i5BDj+rBwoQaXioKpI0SHBJFtOVwzrCpxZxphOW0ki5jhj7dXvDMYM2IJem8TpdFvS2iC08sjOblfFGFg==
   dependencies:
-    "@smithy/protocol-http" "^3.3.0"
-    "@smithy/querystring-builder" "^2.2.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/util-base64" "^2.3.0"
+    "@smithy/protocol-http" "^4.0.0"
+    "@smithy/querystring-builder" "^3.0.0"
+    "@smithy/types" "^3.0.0"
+    "@smithy/util-base64" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/hash-node@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-2.2.0.tgz#df29e1e64811be905cb3577703b0e2d0b07fc5cc"
-  integrity sha512-zLWaC/5aWpMrHKpoDF6nqpNtBhlAYKF/7+9yMN7GpdR8CzohnWfGtMznPybnwSS8saaXBMxIGwJqR4HmRp6b3g==
+"@smithy/hash-node@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-3.0.0.tgz#f44b5fff193e241c1cdcc957b296b60f186f0e59"
+  integrity sha512-84qXstNemP3XS5jcof0el6+bDfjzuvhJPQTEfro3lgtbCtKgzPm3MgiS6ehXVPjeQ5+JS0HqmTz8f/RYfzHVxw==
   dependencies:
-    "@smithy/types" "^2.12.0"
-    "@smithy/util-buffer-from" "^2.2.0"
-    "@smithy/util-utf8" "^2.3.0"
+    "@smithy/types" "^3.0.0"
+    "@smithy/util-buffer-from" "^3.0.0"
+    "@smithy/util-utf8" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/invalid-dependency@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-2.2.0.tgz#ee3d8980022cb5edb514ac187d159b3e773640f0"
-  integrity sha512-nEDASdbKFKPXN2O6lOlTgrEEOO9NHIeO+HVvZnkqc8h5U9g3BIhWsvzFo+UcUbliMHvKNPD/zVxDrkP1Sbgp8Q==
+"@smithy/invalid-dependency@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-3.0.0.tgz#21cb6b5203ee15321bfcc751f21f7a19536d4ae8"
+  integrity sha512-F6wBBaEFgJzj0s4KUlliIGPmqXemwP6EavgvDqYwCH40O5Xr2iMHvS8todmGVZtuJCorBkXsYLyTu4PuizVq5g==
   dependencies:
-    "@smithy/types" "^2.12.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/is-array-buffer@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz#f84f0d9f9a36601a9ca9381688bd1b726fd39111"
-  integrity sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==
+"@smithy/is-array-buffer@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-3.0.0.tgz#9a95c2d46b8768946a9eec7f935feaddcffa5e7a"
+  integrity sha512-+Fsu6Q6C4RSJiy81Y8eApjEB5gVtM+oFKTffg+jSuwtvomJJrhUJBu2zS8wjXSgH/g1MKEWrzyChTBe6clb5FQ==
   dependencies:
     tslib "^2.6.2"
 
-"@smithy/middleware-content-length@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-2.2.0.tgz#a82e97bd83d8deab69e07fea4512563bedb9461a"
-  integrity sha512-5bl2LG1Ah/7E5cMSC+q+h3IpVHMeOkG0yLRyQT1p2aMJkSrZG7RlXHPuAgb7EyaFeidKEnnd/fNaLLaKlHGzDQ==
+"@smithy/middleware-content-length@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-3.0.0.tgz#084b3d22248967885d496eb0b105d9090e8ababd"
+  integrity sha512-3C4s4d/iGobgCtk2tnWW6+zSTOBg1PRAm2vtWZLdriwTroFbbWNSr3lcyzHdrQHnEXYCC5K52EbpfodaIUY8sg==
   dependencies:
-    "@smithy/protocol-http" "^3.3.0"
-    "@smithy/types" "^2.12.0"
+    "@smithy/protocol-http" "^4.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/middleware-endpoint@^2.5.0":
-  version "2.5.0"
-  resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-2.5.0.tgz#9f1459e9b4cbf00fadfd99e98f88d4b1a2aeb987"
-  integrity sha512-OBhI9ZEAG8Xen0xsFJwwNOt44WE2CWkfYIxTognC8x42Lfsdf0VN/wCMqpdkySMDio/vts10BiovAxQp0T0faA==
-  dependencies:
-    "@smithy/middleware-serde" "^2.3.0"
-    "@smithy/node-config-provider" "^2.3.0"
-    "@smithy/shared-ini-file-loader" "^2.4.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/url-parser" "^2.2.0"
-    "@smithy/util-middleware" "^2.2.0"
+"@smithy/middleware-endpoint@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-3.0.0.tgz#54c9e1bd8f35b7d004c803eaf3702e61e32b8295"
+  integrity sha512-aXOAWztw/5qAfp0NcA2OWpv6ZI/E+Dh9mByif7i91D/0iyYNUcKvskmXiowKESFkuZ7PIMd3VOR4fTibZDs2OQ==
+  dependencies:
+    "@smithy/middleware-serde" "^3.0.0"
+    "@smithy/node-config-provider" "^3.0.0"
+    "@smithy/shared-ini-file-loader" "^3.0.0"
+    "@smithy/types" "^3.0.0"
+    "@smithy/url-parser" "^3.0.0"
+    "@smithy/util-middleware" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/middleware-retry@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-2.2.0.tgz#ff48ac01ad57394eeea15a0146a86079cf6364b7"
-  integrity sha512-PsjDOLpbevgn37yJbawmfVoanru40qVA8UEf2+YA1lvOefmhuhL6ZbKtGsLAWDRnE1OlAmedsbA/htH6iSZjNA==
-  dependencies:
-    "@smithy/node-config-provider" "^2.3.0"
-    "@smithy/protocol-http" "^3.3.0"
-    "@smithy/service-error-classification" "^2.1.5"
-    "@smithy/smithy-client" "^2.5.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/util-middleware" "^2.2.0"
-    "@smithy/util-retry" "^2.2.0"
+"@smithy/middleware-retry@^3.0.1":
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-3.0.1.tgz#167b75e9b79395f11a799f22030eaaf7d40da410"
+  integrity sha512-hBhSEuL841FhJBK/19WpaGk5YWSzFk/P2UaVjANGKRv3eYNO8Y1lANWgqnuPWjOyCEWMPr58vELFDWpxvRKANw==
+  dependencies:
+    "@smithy/node-config-provider" "^3.0.0"
+    "@smithy/protocol-http" "^4.0.0"
+    "@smithy/service-error-classification" "^3.0.0"
+    "@smithy/smithy-client" "^3.0.1"
+    "@smithy/types" "^3.0.0"
+    "@smithy/util-middleware" "^3.0.0"
+    "@smithy/util-retry" "^3.0.0"
     tslib "^2.6.2"
-    uuid "^8.3.2"
+    uuid "^9.0.1"
 
-"@smithy/middleware-serde@^2.3.0":
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-2.3.0.tgz#a7615ba646a88b6f695f2d55de13d8158181dd13"
-  integrity sha512-sIADe7ojwqTyvEQBe1nc/GXB9wdHhi9UwyX0lTyttmUWDJLP655ZYE1WngnNyXREme8I27KCaUhyhZWRXL0q7Q==
+"@smithy/middleware-serde@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-3.0.0.tgz#786da6a6bc0e5e51d669dac834c19965245dd302"
+  integrity sha512-I1vKG1foI+oPgG9r7IMY1S+xBnmAn1ISqployvqkwHoSb8VPsngHDTOgYGYBonuOKndaWRUGJZrKYYLB+Ane6w==
   dependencies:
-    "@smithy/types" "^2.12.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/middleware-stack@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-2.2.0.tgz#3fb49eae6313f16f6f30fdaf28e11a7321f34d9f"
-  integrity sha512-Qntc3jrtwwrsAC+X8wms8zhrTr0sFXnyEGhZd9sLtsJ/6gGQKFzNB+wWbOcpJd7BR8ThNCoKt76BuQahfMvpeA==
+"@smithy/middleware-stack@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-3.0.0.tgz#00f112bae7af5fc3bd37d4fab95ebce0f17a7774"
+  integrity sha512-+H0jmyfAyHRFXm6wunskuNAqtj7yfmwFB6Fp37enytp2q047/Od9xetEaUbluyImOlGnGpaVGaVfjwawSr+i6Q==
   dependencies:
-    "@smithy/types" "^2.12.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/node-config-provider@^2.3.0":
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-2.3.0.tgz#9fac0c94a14c5b5b8b8fa37f20c310a844ab9922"
-  integrity sha512-0elK5/03a1JPWMDPaS726Iw6LpQg80gFut1tNpPfxFuChEEklo2yL823V94SpTZTxmKlXFtFgsP55uh3dErnIg==
+"@smithy/node-config-provider@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-3.0.0.tgz#4cd5dcf6132c75d6a582fcd6243482dac703865a"
+  integrity sha512-buqfaSdDh0zo62EPLf8rGDvcpKwGpO5ho4bXS2cdFhlOta7tBkWJt+O5uiaAeICfIOfPclNOndshDNSanX2X9g==
   dependencies:
-    "@smithy/property-provider" "^2.2.0"
-    "@smithy/shared-ini-file-loader" "^2.4.0"
-    "@smithy/types" "^2.12.0"
+    "@smithy/property-provider" "^3.0.0"
+    "@smithy/shared-ini-file-loader" "^3.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/node-http-handler@^2.5.0":
-  version "2.5.0"
-  resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-2.5.0.tgz#7b5e0565dd23d340380489bd5fe4316d2bed32de"
-  integrity sha512-mVGyPBzkkGQsPoxQUbxlEfRjrj6FPyA3u3u2VXGr9hT8wilsoQdZdvKpMBFMB8Crfhv5dNkKHIW0Yyuc7eABqA==
+"@smithy/node-http-handler@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-3.0.0.tgz#e771ea95d03e259f04b7b37e8aece8a4fffc8cdc"
+  integrity sha512-3trD4r7NOMygwLbUJo4eodyQuypAWr7uvPnebNJ9a70dQhVn+US8j/lCnvoJS6BXfZeF7PkkkI0DemVJw+n+eQ==
   dependencies:
-    "@smithy/abort-controller" "^2.2.0"
-    "@smithy/protocol-http" "^3.3.0"
-    "@smithy/querystring-builder" "^2.2.0"
-    "@smithy/types" "^2.12.0"
+    "@smithy/abort-controller" "^3.0.0"
+    "@smithy/protocol-http" "^4.0.0"
+    "@smithy/querystring-builder" "^3.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/property-provider@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-2.2.0.tgz#37e3525a3fa3e11749f86a4f89f0fd7765a6edb0"
-  integrity sha512-+xiil2lFhtTRzXkx8F053AV46QnIw6e7MV8od5Mi68E1ICOjCeCHw2XfLnDEUHnT9WGUIkwcqavXjfwuJbGlpg==
+"@smithy/property-provider@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-3.0.0.tgz#ef7a26557c855cc1471b9aa0e05529183e99b978"
+  integrity sha512-LmbPgHBswdXCrkWWuUwBm9w72S2iLWyC/5jet9/Y9cGHtzqxi+GVjfCfahkvNV4KXEwgnH8EMpcrD9RUYe0eLQ==
   dependencies:
-    "@smithy/types" "^2.12.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/protocol-http@^3.3.0":
-  version "3.3.0"
-  resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-3.3.0.tgz#a37df7b4bb4960cdda560ce49acfd64c455e4090"
-  integrity sha512-Xy5XK1AFWW2nlY/biWZXu6/krgbaf2dg0q492D8M5qthsnU2H+UgFeZLbM76FnH7s6RO/xhQRkj+T6KBO3JzgQ==
+"@smithy/protocol-http@^4.0.0":
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-4.0.0.tgz#04df3b5674b540323f678e7c4113e8abd8b26432"
+  integrity sha512-qOQZOEI2XLWRWBO9AgIYuHuqjZ2csyr8/IlgFDHDNuIgLAMRx2Bl8ck5U5D6Vh9DPdoaVpuzwWMa0xcdL4O/AQ==
   dependencies:
-    "@smithy/types" "^2.12.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/querystring-builder@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-2.2.0.tgz#22937e19fcd0aaa1a3e614ef8cb6f8e86756a4ef"
-  integrity sha512-L1kSeviUWL+emq3CUVSgdogoM/D9QMFaqxL/dd0X7PCNWmPXqt+ExtrBjqT0V7HLN03Vs9SuiLrG3zy3JGnE5A==
+"@smithy/querystring-builder@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-3.0.0.tgz#48a9aa7b700e8409368c21bc0adf7564e001daea"
+  integrity sha512-bW8Fi0NzyfkE0TmQphDXr1AmBDbK01cA4C1Z7ggwMAU5RDz5AAv/KmoRwzQAS0kxXNf/D2ALTEgwK0U2c4LtRg==
   dependencies:
-    "@smithy/types" "^2.12.0"
-    "@smithy/util-uri-escape" "^2.2.0"
+    "@smithy/types" "^3.0.0"
+    "@smithy/util-uri-escape" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/querystring-parser@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-2.2.0.tgz#24a5633f4b3806ff2888d4c2f4169e105fdffd79"
-  integrity sha512-BvHCDrKfbG5Yhbpj4vsbuPV2GgcpHiAkLeIlcA1LtfpMz3jrqizP1+OguSNSj1MwBHEiN+jwNisXLGdajGDQJA==
+"@smithy/querystring-parser@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-3.0.0.tgz#fa1ed0cee408cd4d622070fa874bc50ac1a379b7"
+  integrity sha512-UzHwthk0UEccV4dHzPySnBy34AWw3V9lIqUTxmozQ+wPDAO9csCWMfOLe7V9A2agNYy7xE+Pb0S6K/J23JSzfQ==
   dependencies:
-    "@smithy/types" "^2.12.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/service-error-classification@^2.1.5":
-  version "2.1.5"
-  resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-2.1.5.tgz#0568a977cc0db36299d8703a5d8609c1f600c005"
-  integrity sha512-uBDTIBBEdAQryvHdc5W8sS5YX7RQzF683XrHePVdFmAgKiMofU15FLSM0/HU03hKTnazdNRFa0YHS7+ArwoUSQ==
+"@smithy/service-error-classification@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-3.0.0.tgz#06a45cb91b15b8b0d5f3b1df2b3743d2ca42f5c4"
+  integrity sha512-3BsBtOUt2Gsnc3X23ew+r2M71WwtpHfEDGhHYHSDg6q1t8FrWh15jT25DLajFV1H+PpxAJ6gqe9yYeRUsmSdFA==
   dependencies:
-    "@smithy/types" "^2.12.0"
+    "@smithy/types" "^3.0.0"
 
-"@smithy/shared-ini-file-loader@^2.4.0":
-  version "2.4.0"
-  resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.4.0.tgz#1636d6eb9bff41e36ac9c60364a37fd2ffcb9947"
-  integrity sha512-WyujUJL8e1B6Z4PBfAqC/aGY1+C7T0w20Gih3yrvJSk97gpiVfB+y7c46T4Nunk+ZngLq0rOIdeVeIklk0R3OA==
+"@smithy/shared-ini-file-loader@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.0.0.tgz#8739b7cd24f55fb4e276a74f00f0c2bb4e3f25d8"
+  integrity sha512-REVw6XauXk8xE4zo5aGL7Rz4ywA8qNMUn8RtWeTRQsgAlmlvbJ7CEPBcaXU2NDC3AYBgYAXrGyWD8XrN8UGDog==
   dependencies:
-    "@smithy/types" "^2.12.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/signature-v4@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-2.2.0.tgz#8fe6a574188b71fba6056111b88d50c84babb060"
-  integrity sha512-+B5TNzj/fRZzVW3z8UUJOkNx15+4E0CLuvJmJUA1JUIZFp3rdJ/M2H5r2SqltaVPXL0oIxv/6YK92T9TsFGbFg==
-  dependencies:
-    "@smithy/eventstream-codec" "^2.2.0"
-    "@smithy/is-array-buffer" "^2.2.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/util-hex-encoding" "^2.2.0"
-    "@smithy/util-middleware" "^2.2.0"
-    "@smithy/util-uri-escape" "^2.2.0"
-    "@smithy/util-utf8" "^2.3.0"
+"@smithy/signature-v4@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-3.0.0.tgz#f536d0abebfeeca8e9aab846a4042658ca07d3b7"
+  integrity sha512-kXFOkNX+BQHe2qnLxpMEaCRGap9J6tUGLzc3A9jdn+nD4JdMwCKTJ+zFwQ20GkY+mAXGatyTw3HcoUlR39HwmA==
+  dependencies:
+    "@smithy/is-array-buffer" "^3.0.0"
+    "@smithy/types" "^3.0.0"
+    "@smithy/util-hex-encoding" "^3.0.0"
+    "@smithy/util-middleware" "^3.0.0"
+    "@smithy/util-uri-escape" "^3.0.0"
+    "@smithy/util-utf8" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/smithy-client@^2.5.0":
-  version "2.5.0"
-  resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-2.5.0.tgz#8de4fff221d232dda34a8e706d6a4f2911dffe2e"
-  integrity sha512-DDXWHWdimtS3y/Kw1Jo46KQ0ZYsDKcldFynQERUGBPDpkW1lXOTHy491ALHjwfiBQvzsVKVxl5+ocXNIgJuX4g==
-  dependencies:
-    "@smithy/middleware-endpoint" "^2.5.0"
-    "@smithy/middleware-stack" "^2.2.0"
-    "@smithy/protocol-http" "^3.3.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/util-stream" "^2.2.0"
+"@smithy/smithy-client@^3.0.1":
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-3.0.1.tgz#c440473f6fb5dfbe86eaf015565fc56f66533bb4"
+  integrity sha512-KAiFY4Y4jdHxR+4zerH/VBhaFKM8pbaVmJZ/CWJRwtM/CmwzTfXfvYwf6GoUwiHepdv+lwiOXCuOl6UBDUEINw==
+  dependencies:
+    "@smithy/middleware-endpoint" "^3.0.0"
+    "@smithy/middleware-stack" "^3.0.0"
+    "@smithy/protocol-http" "^4.0.0"
+    "@smithy/types" "^3.0.0"
+    "@smithy/util-stream" "^3.0.1"
     tslib "^2.6.2"
 
-"@smithy/types@^2.12.0":
-  version "2.12.0"
-  resolved "https://registry.yarnpkg.com/@smithy/types/-/types-2.12.0.tgz#c44845f8ba07e5e8c88eda5aed7e6a0c462da041"
-  integrity sha512-QwYgloJ0sVNBeBuBs65cIkTbfzV/Q6ZNPCJ99EICFEdJYG50nGIY/uYXp+TbsdJReIuPr0a0kXmCvren3MbRRw==
+"@smithy/types@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/types/-/types-3.0.0.tgz#00231052945159c64ffd8b91e8909d8d3006cb7e"
+  integrity sha512-VvWuQk2RKFuOr98gFhjca7fkBS+xLLURT8bUjk5XQoV0ZLm7WPwWPPY3/AwzTLuUBDeoKDCthfe1AsTUWaSEhw==
   dependencies:
     tslib "^2.6.2"
 
-"@smithy/url-parser@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-2.2.0.tgz#6fcda6116391a4f61fef5580eb540e128359b3c0"
-  integrity sha512-hoA4zm61q1mNTpksiSWp2nEl1dt3j726HdRhiNgVJQMj7mLp7dprtF57mOB6JvEk/x9d2bsuL5hlqZbBuHQylQ==
+"@smithy/url-parser@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-3.0.0.tgz#5fdc77cd22051c1aac6531be0315bfcba0fa705d"
+  integrity sha512-2XLazFgUu+YOGHtWihB3FSLAfCUajVfNBXGGYjOaVKjLAuAxx3pSBY3hBgLzIgB17haf59gOG3imKqTy8mcrjw==
   dependencies:
-    "@smithy/querystring-parser" "^2.2.0"
-    "@smithy/types" "^2.12.0"
+    "@smithy/querystring-parser" "^3.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/util-base64@^2.3.0":
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/@smithy/util-base64/-/util-base64-2.3.0.tgz#312dbb4d73fb94249c7261aee52de4195c2dd8e2"
-  integrity sha512-s3+eVwNeJuXUwuMbusncZNViuhv2LjVJ1nMwTqSA0XAC7gjKhqqxRdJPhR8+YrkoZ9IiIbFk/yK6ACe/xlF+hw==
+"@smithy/util-base64@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/util-base64/-/util-base64-3.0.0.tgz#f7a9a82adf34e27a72d0719395713edf0e493017"
+  integrity sha512-Kxvoh5Qtt0CDsfajiZOCpJxgtPHXOKwmM+Zy4waD43UoEMA+qPxxa98aE/7ZhdnBFZFXMOiBR5xbcaMhLtznQQ==
   dependencies:
-    "@smithy/util-buffer-from" "^2.2.0"
-    "@smithy/util-utf8" "^2.3.0"
+    "@smithy/util-buffer-from" "^3.0.0"
+    "@smithy/util-utf8" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/util-body-length-browser@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/util-body-length-browser/-/util-body-length-browser-2.2.0.tgz#25620645c6b62b42594ef4a93b66e6ab70e27d2c"
-  integrity sha512-dtpw9uQP7W+n3vOtx0CfBD5EWd7EPdIdsQnWTDoFf77e3VUf05uA7R7TGipIo8e4WL2kuPdnsr3hMQn9ziYj5w==
+"@smithy/util-body-length-browser@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/util-body-length-browser/-/util-body-length-browser-3.0.0.tgz#86ec2f6256310b4845a2f064e2f571c1ca164ded"
+  integrity sha512-cbjJs2A1mLYmqmyVl80uoLTJhAcfzMOyPgjwAYusWKMdLeNtzmMz9YxNl3/jRLoxSS3wkqkf0jwNdtXWtyEBaQ==
   dependencies:
     tslib "^2.6.2"
 
-"@smithy/util-body-length-node@^2.3.0":
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/@smithy/util-body-length-node/-/util-body-length-node-2.3.0.tgz#d065a9b5e305ff899536777bbfe075cdc980136f"
-  integrity sha512-ITWT1Wqjubf2CJthb0BuT9+bpzBfXeMokH/AAa5EJQgbv9aPMVfnM76iFIZVFf50hYXGbtiV71BHAthNWd6+dw==
+"@smithy/util-body-length-node@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/util-body-length-node/-/util-body-length-node-3.0.0.tgz#99a291bae40d8932166907fe981d6a1f54298a6d"
+  integrity sha512-Tj7pZ4bUloNUP6PzwhN7K386tmSmEET9QtQg0TgdNOnxhZvCssHji+oZTUIuzxECRfG8rdm2PMw2WCFs6eIYkA==
   dependencies:
     tslib "^2.6.2"
 
-"@smithy/util-buffer-from@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz#6fc88585165ec73f8681d426d96de5d402021e4b"
-  integrity sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==
+"@smithy/util-buffer-from@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-3.0.0.tgz#559fc1c86138a89b2edaefc1e6677780c24594e3"
+  integrity sha512-aEOHCgq5RWFbP+UDPvPot26EJHjOC+bRgse5A8V3FSShqd5E5UN4qc7zkwsvJPPAVsf73QwYcHN1/gt/rtLwQA==
   dependencies:
-    "@smithy/is-array-buffer" "^2.2.0"
+    "@smithy/is-array-buffer" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/util-config-provider@^2.3.0":
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/@smithy/util-config-provider/-/util-config-provider-2.3.0.tgz#bc79f99562d12a1f8423100ca662a6fb07cde943"
-  integrity sha512-HZkzrRcuFN1k70RLqlNK4FnPXKOpkik1+4JaBoHNJn+RnJGYqaa3c5/+XtLOXhlKzlRgNvyaLieHTW2VwGN0VQ==
+"@smithy/util-config-provider@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/util-config-provider/-/util-config-provider-3.0.0.tgz#62c6b73b22a430e84888a8f8da4b6029dd5b8efe"
+  integrity sha512-pbjk4s0fwq3Di/ANL+rCvJMKM5bzAQdE5S/6RL5NXgMExFAi6UgQMPOm5yPaIWPpr+EOXKXRonJ3FoxKf4mCJQ==
   dependencies:
     tslib "^2.6.2"
 
-"@smithy/util-defaults-mode-browser@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.2.0.tgz#963a9d3c3351272764dd1c5dc07c26f2c8abcb02"
-  integrity sha512-2okTdZaCBvOJszAPU/KSvlimMe35zLOKbQpHhamFJmR7t95HSe0K3C92jQPjKY3PmDBD+7iMkOnuW05F5OlF4g==
+"@smithy/util-defaults-mode-browser@^3.0.1":
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.1.tgz#0ba33ec90f6dd311599bed3a3dd604f3adba9acd"
+  integrity sha512-nW5kEzdJn1Bn5TF+gOPHh2rcPli8JU9vSSXLbfg7uPnfR1TMRQqs9zlYRhIb87NeSxIbpdXOI94tvXSy+fvDYg==
   dependencies:
-    "@smithy/property-provider" "^2.2.0"
-    "@smithy/smithy-client" "^2.5.0"
-    "@smithy/types" "^2.12.0"
+    "@smithy/property-provider" "^3.0.0"
+    "@smithy/smithy-client" "^3.0.1"
+    "@smithy/types" "^3.0.0"
     bowser "^2.11.0"
     tslib "^2.6.2"
 
-"@smithy/util-defaults-mode-node@^2.3.0":
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.3.0.tgz#5005058ca0a299f0948b47c288f7c3d4f36cb26e"
-  integrity sha512-hfKXnNLmsW9cmLb/JXKIvtuO6Cf4SuqN5PN1C2Ru/TBIws+m1wSgb+A53vo0r66xzB6E82inKG2J7qtwdi+Kkw==
-  dependencies:
-    "@smithy/config-resolver" "^2.2.0"
-    "@smithy/credential-provider-imds" "^2.3.0"
-    "@smithy/node-config-provider" "^2.3.0"
-    "@smithy/property-provider" "^2.2.0"
-    "@smithy/smithy-client" "^2.5.0"
-    "@smithy/types" "^2.12.0"
+"@smithy/util-defaults-mode-node@^3.0.1":
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.1.tgz#71242a6978240a6f559445d4cc26f2cce91c90e1"
+  integrity sha512-TFk+Qb+elLc/MOhtSp+50fstyfZ6avQbgH2d96xUBpeScu+Al9elxv+UFAjaTHe0HQe5n+wem8ZLpXvU8lwV6Q==
+  dependencies:
+    "@smithy/config-resolver" "^3.0.0"
+    "@smithy/credential-provider-imds" "^3.0.0"
+    "@smithy/node-config-provider" "^3.0.0"
+    "@smithy/property-provider" "^3.0.0"
+    "@smithy/smithy-client" "^3.0.1"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/util-endpoints@^1.2.0":
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-1.2.0.tgz#b8b805f47e8044c158372f69b88337703117665d"
-  integrity sha512-BuDHv8zRjsE5zXd3PxFXFknzBG3owCpjq8G3FcsXW3CykYXuEqM3nTSsmLzw5q+T12ZYuDlVUZKBdpNbhVtlrQ==
+"@smithy/util-endpoints@^2.0.0":
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-2.0.0.tgz#5a16a723c1220f536a9b1b3e01787e69e77b6f12"
+  integrity sha512-+exaXzEY3DNt2qtA2OtRNSDlVrE4p32j1JSsQkzA5AdP0YtJNjkYbYhJxkFmPYcjI1abuwopOZCwUmv682QkiQ==
   dependencies:
-    "@smithy/node-config-provider" "^2.3.0"
-    "@smithy/types" "^2.12.0"
+    "@smithy/node-config-provider" "^3.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/util-hex-encoding@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/util-hex-encoding/-/util-hex-encoding-2.2.0.tgz#87edb7c88c2f422cfca4bb21f1394ae9602c5085"
-  integrity sha512-7iKXR+/4TpLK194pVjKiasIyqMtTYJsgKgM242Y9uzt5dhHnUDvMNb+3xIhRJ9QhvqGii/5cRUt4fJn3dtXNHQ==
+"@smithy/util-hex-encoding@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/util-hex-encoding/-/util-hex-encoding-3.0.0.tgz#32938b33d5bf2a15796cd3f178a55b4155c535e6"
+  integrity sha512-eFndh1WEK5YMUYvy3lPlVmYY/fZcQE1D8oSf41Id2vCeIkKJXPcYDCZD+4+xViI6b1XSd7tE+s5AmXzz5ilabQ==
   dependencies:
     tslib "^2.6.2"
 
-"@smithy/util-middleware@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-2.2.0.tgz#80cfad40f6cca9ffe42a5899b5cb6abd53a50006"
-  integrity sha512-L1qpleXf9QD6LwLCJ5jddGkgWyuSvWBkJwWAZ6kFkdifdso+sk3L3O1HdmPvCdnCK3IS4qWyPxev01QMnfHSBw==
+"@smithy/util-middleware@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-3.0.0.tgz#64d775628b99a495ca83ce982f5c83aa45f1e894"
+  integrity sha512-q5ITdOnV2pXHSVDnKWrwgSNTDBAMHLptFE07ua/5Ty5WJ11bvr0vk2a7agu7qRhrCFRQlno5u3CneU5EELK+DQ==
   dependencies:
-    "@smithy/types" "^2.12.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/util-retry@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-2.2.0.tgz#e8e019537ab47ba6b2e87e723ec51ee223422d85"
-  integrity sha512-q9+pAFPTfftHXRytmZ7GzLFFrEGavqapFc06XxzZFcSIGERXMerXxCitjOG1prVDR9QdjqotF40SWvbqcCpf8g==
+"@smithy/util-retry@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-3.0.0.tgz#8a0c47496aab74e1dfde4905d462ad636a8824bb"
+  integrity sha512-nK99bvJiziGv/UOKJlDvFF45F00WgPLKVIGUfAK+mDhzVN2hb/S33uW2Tlhg5PVBoqY7tDVqL0zmu4OxAHgo9g==
   dependencies:
-    "@smithy/service-error-classification" "^2.1.5"
-    "@smithy/types" "^2.12.0"
+    "@smithy/service-error-classification" "^3.0.0"
+    "@smithy/types" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/util-stream@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-2.2.0.tgz#b1279e417992a0f74afa78d7501658f174ed7370"
-  integrity sha512-17faEXbYWIRst1aU9SvPZyMdWmqIrduZjVOqCPMIsWFNxs5yQQgFrJL6b2SdiCzyW9mJoDjFtgi53xx7EH+BXA==
-  dependencies:
-    "@smithy/fetch-http-handler" "^2.5.0"
-    "@smithy/node-http-handler" "^2.5.0"
-    "@smithy/types" "^2.12.0"
-    "@smithy/util-base64" "^2.3.0"
-    "@smithy/util-buffer-from" "^2.2.0"
-    "@smithy/util-hex-encoding" "^2.2.0"
-    "@smithy/util-utf8" "^2.3.0"
+"@smithy/util-stream@^3.0.1":
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-3.0.1.tgz#3cf527bcd3fec82c231c38d47dd75f3364747edb"
+  integrity sha512-7F7VNNhAsfMRA8I986YdOY5fE0/T1/ZjFF6OLsqkvQVNP3vZ/szYDfGCyphb7ioA09r32K/0qbSFfNFU68aSzA==
+  dependencies:
+    "@smithy/fetch-http-handler" "^3.0.1"
+    "@smithy/node-http-handler" "^3.0.0"
+    "@smithy/types" "^3.0.0"
+    "@smithy/util-base64" "^3.0.0"
+    "@smithy/util-buffer-from" "^3.0.0"
+    "@smithy/util-hex-encoding" "^3.0.0"
+    "@smithy/util-utf8" "^3.0.0"
     tslib "^2.6.2"
 
-"@smithy/util-uri-escape@^2.2.0":
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/@smithy/util-uri-escape/-/util-uri-escape-2.2.0.tgz#56f5764051a33b67bc93fdd2a869f971b0635406"
-  integrity sha512-jtmJMyt1xMD/d8OtbVJ2gFZOSKc+ueYJZPW20ULW1GOp/q/YIM0wNh+u8ZFao9UaIGz4WoPW8hC64qlWLIfoDA==
+"@smithy/util-uri-escape@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/util-uri-escape/-/util-uri-escape-3.0.0.tgz#e43358a78bf45d50bb736770077f0f09195b6f54"
+  integrity sha512-LqR7qYLgZTD7nWLBecUi4aqolw8Mhza9ArpNEQ881MJJIU2sE5iHCK6TdyqqzcDLy0OPe10IY4T8ctVdtynubg==
   dependencies:
     tslib "^2.6.2"
 
-"@smithy/util-utf8@^2.3.0":
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-2.3.0.tgz#dd96d7640363259924a214313c3cf16e7dd329c5"
-  integrity sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==
+"@smithy/util-utf8@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-3.0.0.tgz#1a6a823d47cbec1fd6933e5fc87df975286d9d6a"
+  integrity sha512-rUeT12bxFnplYDe815GXbq/oixEGHfRFFtcTF3YdDi/JaENIM6aSYYLJydG83UNzLXeRI5K8abYd/8Sp/QM0kA==
   dependencies:
-    "@smithy/util-buffer-from" "^2.2.0"
+    "@smithy/util-buffer-from" "^3.0.0"
     tslib "^2.6.2"
 
 "@tokenizer/token@^0.3.0":
@@ -1440,9 +1420,9 @@
     "@types/node" "*"
 
 "@types/node@*":
-  version "20.11.30"
-  resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.30.tgz#9c33467fc23167a347e73834f788f4b9f399d66f"
-  integrity sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==
+  version "20.12.12"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-20.12.12.tgz#7cbecdf902085cec634fdb362172dfe12b8f2050"
+  integrity sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==
   dependencies:
     undici-types "~5.26.4"
 
@@ -2046,9 +2026,9 @@ agent-base@6, agent-base@^6.0.2:
     debug "4"
 
 agent-base@^7.0.2:
-  version "7.1.0"
-  resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.0.tgz#536802b76bc0b34aa50195eb2442276d613e3434"
-  integrity sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==
+  version "7.1.1"
+  resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.1.tgz#bdbded7dfb096b751a2a087eeeb9664725b2e317"
+  integrity sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==
   dependencies:
     debug "^4.3.4"
 
@@ -2525,9 +2505,9 @@ aws-sign@~0.3.0:
   integrity sha512-pEMJAknifcXqXqYVXzGPIu8mJvxtJxIdpVpAs8HNS+paT+9srRUDMQn+3hULS7WbLmttcmvgMvnDcFujqXJyPw==
 
 aws4@^1.12.0, aws4@^1.8.0:
-  version "1.12.0"
-  resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.12.0.tgz#ce1c9d143389679e253b314241ea9aa5cec980d3"
-  integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==
+  version "1.13.0"
+  resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.13.0.tgz#d9b802e9bb9c248d7be5f7f5ef178dc3684e9dcc"
+  integrity sha512-3AungXC4I8kKsS9PuS4JH2nc+0bVY/mjgrephHTIi8fpEeGsTHBUJeosp0Wc1myYMElmD0B3Oc4XL/HVJ4PV2g==
 
 axios@0.26.1, axios@^0.26.1:
   version "0.26.1"
@@ -2551,10 +2531,10 @@ axios@^0.27.2:
     follow-redirects "^1.14.9"
     form-data "^4.0.0"
 
-axios@^1.6.4:
-  version "1.6.8"
-  resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.8.tgz#66d294951f5d988a00e87a0ffb955316a619ea66"
-  integrity sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==
+axios@^1.6.8:
+  version "1.7.2"
+  resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.2.tgz#b625db8a7051fbea61c35a3cbb3a1daa7b9c7621"
+  integrity sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==
   dependencies:
     follow-redirects "^1.15.6"
     form-data "^4.0.0"
@@ -3192,24 +3172,6 @@ bn.js@^4.0.0:
   resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88"
   integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==
 
-body-parser@1.20.1:
-  version "1.20.1"
-  resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668"
-  integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==
-  dependencies:
-    bytes "3.1.2"
-    content-type "~1.0.4"
-    debug "2.6.9"
-    depd "2.0.0"
-    destroy "1.2.0"
-    http-errors "2.0.0"
-    iconv-lite "0.4.24"
-    on-finished "2.4.1"
-    qs "6.11.0"
-    raw-body "2.5.1"
-    type-is "~1.6.18"
-    unpipe "1.0.0"
-
 body-parser@1.20.2:
   version "1.20.2"
   resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd"
@@ -3280,12 +3242,12 @@ braces@^2.3.1:
     split-string "^3.0.2"
     to-regex "^3.0.1"
 
-braces@^3.0.2, braces@~3.0.2:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
-  integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
+braces@^3.0.3, braces@~3.0.2:
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789"
+  integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==
   dependencies:
-    fill-range "^7.0.1"
+    fill-range "^7.1.1"
 
 brotli@^1.3.3:
   version "1.3.3"
@@ -3492,9 +3454,9 @@ camelcase@^5.0.0:
   integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
 
 caniuse-lite@^1.0.30001587:
-  version "1.0.30001600"
-  resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001600.tgz#93a3ee17a35aa6a9f0c6ef1b2ab49507d1ab9079"
-  integrity sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==
+  version "1.0.30001621"
+  resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001621.tgz#4adcb443c8b9c8303e04498318f987616b8fea2e"
+  integrity sha512-+NLXZiviFFKX0fk8Piwv3PfLPGtRqJeq2TiNoUff/qB5KJgwecJTvCXDpmlyP/eCI/GUEmp/h/y5j0yckiiZrA==
 
 caseless@~0.12.0:
   version "0.12.0"
@@ -3886,10 +3848,10 @@ commander@^2.11.0, commander@^2.19.0:
   resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
   integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
 
-commander@^4.0.1:
-  version "4.1.1"
-  resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068"
-  integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==
+commander@^6.2.0:
+  version "6.2.1"
+  resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c"
+  integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==
 
 common-sequence@^1.0.2:
   version "1.0.2"
@@ -3961,6 +3923,11 @@ config-master@^2.0.4:
     feature-detect-es6 "^1.3.1"
     walk-back "^2.0.1"
 
+connect-flash@*:
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/connect-flash/-/connect-flash-0.1.1.tgz#d8630f26d95a7f851f9956b1e8cc6732f3b6aa30"
+  integrity sha512-2rcfELQt/ZMP+SM/pG8PyhJRaLKp+6Hk2IUBNkEit09X+vwn3QsAL3ZbYtxUn7NVPzbMTSLRDhqe0B/eh30RYA==
+
 console-control-strings@^1.0.0, console-control-strings@^1.1.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
@@ -4008,10 +3975,10 @@ cookie-signature@1.0.6:
   resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
   integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==
 
-cookie@0.5.0:
-  version "0.5.0"
-  resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b"
-  integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==
+cookie@0.6.0:
+  version "0.6.0"
+  resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.6.0.tgz#2798b04b071b0ecbff0dbb62a505a8efa4e19051"
+  integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==
 
 cookies@0.8.0:
   version "0.8.0"
@@ -4032,9 +3999,9 @@ core-js@^2.0.1, core-js@^2.4.0, core-js@^2.4.1, core-js@^2.5.0:
   integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==
 
 core-js@^3.30.2:
-  version "3.36.1"
-  resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.36.1.tgz#c97a7160ebd00b2de19e62f4bbd3406ab720e578"
-  integrity sha512-BTvUrwxVBezj5SZ3f10ImnX2oRByMxql3EimVqMysepbC9EeMUOpLwdy6Eoili2x6E4kf+ZUB5k/+Jv55alPfA==
+  version "3.37.1"
+  resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.37.1.tgz#d21751ddb756518ac5a00e4d66499df981a62db9"
+  integrity sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw==
 
 core-util-is@1.0.2:
   version "1.0.2"
@@ -4058,12 +4025,12 @@ cp-file@^6.2.0:
     safe-buffer "^5.0.1"
 
 cpu-features@~0.0.9:
-  version "0.0.9"
-  resolved "https://registry.yarnpkg.com/cpu-features/-/cpu-features-0.0.9.tgz#5226b92f0f1c63122b0a3eb84cb8335a4de499fc"
-  integrity sha512-AKjgn2rP2yJyfbepsmLfiYcmtNn/2eUvocUyM/09yB0YDiz39HteK/5/T4Onf0pmdYDMgkBoGvRLvEguzyL7wQ==
+  version "0.0.10"
+  resolved "https://registry.yarnpkg.com/cpu-features/-/cpu-features-0.0.10.tgz#9aae536db2710c7254d7ed67cb3cbc7d29ad79c5"
+  integrity sha512-9IkYqtX3YHPCzoVg1Py+o9057a3i0fp7S530UWokCSaFVTc7CwXPRiOjRjBQQ18ZCNafx78YfnG+HALxtVmOGA==
   dependencies:
     buildcheck "~0.0.6"
-    nan "^2.17.0"
+    nan "^2.19.0"
 
 crc-32@^1.2.0:
   version "1.2.2"
@@ -4207,9 +4174,9 @@ dateformat@~4.6.2:
   integrity sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==
 
 dayjs@^1.11.9:
-  version "1.11.10"
-  resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.10.tgz#68acea85317a6e164457d6d6947564029a6a16a0"
-  integrity sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==
+  version "1.11.11"
+  resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.11.tgz#dfe0e9d54c5f8b68ccf8ca5f72ac603e7e5ed59e"
+  integrity sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==
 
 ddata@~0.1.25:
   version "0.1.28"
@@ -4292,7 +4259,7 @@ define-data-property@^1.0.1, define-data-property@^1.1.4:
     es-errors "^1.3.0"
     gopd "^1.0.1"
 
-define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1:
+define-properties@^1.2.0, define-properties@^1.2.1:
   version "1.2.1"
   resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c"
   integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==
@@ -4389,15 +4356,15 @@ dir_cache@^1.0.1:
     minify-js "0.0.2"
     utils-igor "^1.0.4"
 
-discord-api-types@0.37.61:
-  version "0.37.61"
-  resolved "https://registry.yarnpkg.com/discord-api-types/-/discord-api-types-0.37.61.tgz#9dd8e58c624237e6f1b23be2d29579af268b8c5b"
-  integrity sha512-o/dXNFfhBpYHpQFdT6FWzeO7pKc838QeeZ9d91CfVAtpr5XLK4B/zYxQbYgPdoMiTDvJfzcsLW5naXgmHGDNXw==
+discord-api-types@0.37.83:
+  version "0.37.83"
+  resolved "https://registry.yarnpkg.com/discord-api-types/-/discord-api-types-0.37.83.tgz#a22a799729ceded8176ea747157837ddf4708b1f"
+  integrity sha512-urGGYeWtWNYMKnYlZnOnDHm8fVRffQs3U0SpE8RHeiuLKb/u92APS8HoQnPTFbnXmY1vVnXjXO4dOxcAn3J+DA==
 
 discord-api-types@^0.37.12, discord-api-types@^0.37.41:
-  version "0.37.76"
-  resolved "https://registry.yarnpkg.com/discord-api-types/-/discord-api-types-0.37.76.tgz#699c088dee348bc865f599ef2229b433638c37a0"
-  integrity sha512-GQI02JvBVl9+WQiMmyc/OFuJ4bBBf2VWb6NjPBnzrrdF2D/2S07mA1ZCd5+IhHRjU8wQ83c/hmjj9nn1+r/K9g==
+  version "0.37.85"
+  resolved "https://registry.yarnpkg.com/discord-api-types/-/discord-api-types-0.37.85.tgz#302f7ee8e4880b41eff84ce1dc1c210247434b81"
+  integrity sha512-T75aB9JEw9X0rlMChEMHbr9JlXMqdmdKiZVjBeKs91cJo28IuAIldj+VZoC+I+Q9gCaRjHlwRkcksy2XZY6c3A==
 
 discord.js@14.6.0:
   version "14.6.0"
@@ -4507,9 +4474,9 @@ ee-first@1.1.1:
   integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==
 
 electron-to-chromium@^1.4.668:
-  version "1.4.715"
-  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.715.tgz#bb16bcf2a3537962fccfa746b5c98c5f7404ff46"
-  integrity sha512-XzWNH4ZSa9BwVUQSDorPWAUQ5WGuYz7zJUNpNif40zFCiCl20t8zgylmreNmn26h5kiyw2lg7RfTmeMBsDklqg==
+  version "1.4.783"
+  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.783.tgz#933887165b8b6025a81663d2d97cf4b85cde27b2"
+  integrity sha512-bT0jEz/Xz1fahQpbZ1D7LgmPYZ3iHVY39NcWWro1+hA2IvjiPeaXtfSqrQ+nXjApMvQRE2ASt1itSLRrebHMRQ==
 
 emoji-regex@^7.0.1:
   version "7.0.3"
@@ -4578,9 +4545,9 @@ error-ex@^1.2.0, error-ex@^1.3.1:
     is-arrayish "^0.2.1"
 
 es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.2:
-  version "1.23.2"
-  resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.2.tgz#693312f3940f967b8dd3eebacb590b01712622e0"
-  integrity sha512-60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==
+  version "1.23.3"
+  resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.3.tgz#8f0c5a35cd215312573c5a27c87dfd6c881a0aa0"
+  integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==
   dependencies:
     array-buffer-byte-length "^1.0.1"
     arraybuffer.prototype.slice "^1.0.3"
@@ -4621,11 +4588,11 @@ es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23
     safe-regex-test "^1.0.3"
     string.prototype.trim "^1.2.9"
     string.prototype.trimend "^1.0.8"
-    string.prototype.trimstart "^1.0.7"
+    string.prototype.trimstart "^1.0.8"
     typed-array-buffer "^1.0.2"
     typed-array-byte-length "^1.0.1"
     typed-array-byte-offset "^1.0.2"
-    typed-array-length "^1.0.5"
+    typed-array-length "^1.0.6"
     unbox-primitive "^1.0.2"
     which-typed-array "^1.1.15"
 
@@ -4671,7 +4638,7 @@ es-to-primitive@^1.2.1:
     is-date-object "^1.0.1"
     is-symbol "^1.0.2"
 
-es5-ext@^0.10.35, es5-ext@^0.10.50, es5-ext@^0.10.62, es5-ext@^0.10.64, es5-ext@~0.10.14:
+es5-ext@^0.10.35, es5-ext@^0.10.62, es5-ext@^0.10.63, es5-ext@^0.10.64, es5-ext@~0.10.14:
   version "0.10.64"
   resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.64.tgz#12e4ffb48f1ba2ea777f1fcdd1918ef73ea21714"
   integrity sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==
@@ -4703,7 +4670,7 @@ es6-symbol@^3.1.1, es6-symbol@^3.1.3:
     d "^1.0.2"
     ext "^1.7.0"
 
-escalade@^3.1.1:
+escalade@^3.1.2:
   version "3.1.2"
   resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27"
   integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==
@@ -4834,17 +4801,17 @@ express-ws@4.0.0:
   dependencies:
     ws "^5.2.0"
 
-express@4.18.2:
-  version "4.18.2"
-  resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59"
-  integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==
+express@4.19.2:
+  version "4.19.2"
+  resolved "https://registry.yarnpkg.com/express/-/express-4.19.2.tgz#e25437827a3aa7f2a827bc8171bbbb664a356465"
+  integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==
   dependencies:
     accepts "~1.3.8"
     array-flatten "1.1.1"
-    body-parser "1.20.1"
+    body-parser "1.20.2"
     content-disposition "0.5.4"
     content-type "~1.0.4"
-    cookie "0.5.0"
+    cookie "0.6.0"
     cookie-signature "1.0.6"
     debug "2.6.9"
     depd "2.0.0"
@@ -4952,9 +4919,9 @@ fast-xml-parser@4.2.5:
     strnum "^1.0.5"
 
 fast-xml-parser@^4.2.4:
-  version "4.3.6"
-  resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.3.6.tgz#190f9d99097f0c8f2d3a0e681a10404afca052ff"
-  integrity sha512-M2SovcRxD4+vC493Uc2GZVcZaj66CCJhWurC4viynVSTvrpErCShNcDz1lAho6n9REQKvL/ll4A4/fw6Y9z8nw==
+  version "4.4.0"
+  resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.4.0.tgz#341cc98de71e9ba9e651a67f41f1752d1441a501"
+  integrity sha512-kLY3jFlwIYwBNDojclKsNAC12sfD6NwW74QB2CoNGPvtVxjliYehVunB3HYyNi+n4Tt1dAcgwYvmKF/Z18flqg==
   dependencies:
     strnum "^1.0.5"
 
@@ -5064,10 +5031,10 @@ fill-range@^4.0.0:
     repeat-string "^1.6.1"
     to-regex-range "^2.1.0"
 
-fill-range@^7.0.1:
-  version "7.0.1"
-  resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
-  integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
+fill-range@^7.1.1:
+  version "7.1.1"
+  resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292"
+  integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==
   dependencies:
     to-regex-range "^5.0.1"
 
@@ -5365,14 +5332,15 @@ gauge@^4.0.3:
     wide-align "^1.1.5"
 
 gaxios@^6.0.0, gaxios@^6.0.3, gaxios@^6.1.1:
-  version "6.3.0"
-  resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-6.3.0.tgz#5cd858de47c6560caaf0f99bb5d89c5bdfbe9034"
-  integrity sha512-p+ggrQw3fBwH2F5N/PAI4k/G/y1art5OxKpb2J2chwNNHM4hHuAOtivjPuirMF4KNKwTTUal/lPfL2+7h2mEcg==
+  version "6.6.0"
+  resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-6.6.0.tgz#af8242fff0bbb82a682840d5feaa91b6a1c58be4"
+  integrity sha512-bpOZVQV5gthH/jVCSuYuokRo2bTKOcuBiVWpjmTn6C5Agl5zclGfTljuGsQZxwwDBkli+YhZhP4TdlqTnhOezQ==
   dependencies:
     extend "^3.0.2"
     https-proxy-agent "^7.0.1"
     is-stream "^2.0.0"
     node-fetch "^2.6.9"
+    uuid "^9.0.1"
 
 gcp-metadata@^6.1.0:
   version "6.1.0"
@@ -5464,15 +5432,15 @@ glob-parent@~5.1.2:
     is-glob "^4.0.1"
 
 glob@^10.0.0:
-  version "10.3.10"
-  resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b"
-  integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==
+  version "10.4.1"
+  resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.1.tgz#0cfb01ab6a6b438177bfe6a58e2576f6efe909c2"
+  integrity sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==
   dependencies:
     foreground-child "^3.1.0"
-    jackspeak "^2.3.5"
-    minimatch "^9.0.1"
-    minipass "^5.0.0 || ^6.0.2 || ^7.0.0"
-    path-scurry "^1.10.1"
+    jackspeak "^3.1.2"
+    minimatch "^9.0.4"
+    minipass "^7.1.2"
+    path-scurry "^1.11.1"
 
 glob@^4:
   version "4.5.3"
@@ -5539,16 +5507,17 @@ globals@^9.18.0:
   integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==
 
 globalthis@^1.0.3:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf"
-  integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.4.tgz#7430ed3a975d97bfb59bcce41f5cabbafa651236"
+  integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==
   dependencies:
-    define-properties "^1.1.3"
+    define-properties "^1.2.1"
+    gopd "^1.0.1"
 
 google-auth-library@^9.0.0, google-auth-library@^9.7.0:
-  version "9.7.0"
-  resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-9.7.0.tgz#dd99a08e2e3f70778de8be4ed8556460e237550a"
-  integrity sha512-I/AvzBiUXDzLOy4iIZ2W+Zq33W4lcukQv1nl7C8WUA6SQwyQwUwu3waNmWNAvzds//FG8SZ+DnKnW/2k6mQS8A==
+  version "9.10.0"
+  resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-9.10.0.tgz#c9fb940923f7ff2569d61982ee1748578c0bbfd4"
+  integrity sha512-ol+oSa5NbcGdDqA+gZ3G3mev59OHBZksBTxY/tYwjtcp1H/scAFwJfSQU9/1RALoyZ7FslNbke8j4i3ipwlyuQ==
   dependencies:
     base64-js "^1.3.0"
     ecdsa-sig-formatter "^1.0.11"
@@ -5563,9 +5532,9 @@ google-protobuf@3.19.4:
   integrity sha512-OIPNCxsG2lkIvf+P5FNfJ/Km95CsXOBecS9ZcAU6m2Rq3svc0Apl9nB3GMDNKfQ9asNv4KjyAqGwPQFrVle3Yg==
 
 googleapis-common@^7.0.0:
-  version "7.1.0"
-  resolved "https://registry.yarnpkg.com/googleapis-common/-/googleapis-common-7.1.0.tgz#e97e468a7ef2f230df8255c0f66701cf7e28947c"
-  integrity sha512-p3KHiWDBBWJEXk6SYauBEvxw5+UmRy7k2scxGtsNv9eHsTbpopJ3/7If4OrNnzJ9XMLg3IlyQXpVp8YPQsStiw==
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/googleapis-common/-/googleapis-common-7.2.0.tgz#5c19102c9af1e5d27560be5e69ee2ccf68755d42"
+  integrity sha512-/fhDZEJZvOV3X5jmD+fKxMqma5q2Q9nZNSF3kn1F18tpxmA86BcTxAGBQdM0N89Z3bEaIs+HVznSmFJEAmMTjA==
   dependencies:
     extend "^3.0.2"
     gaxios "^6.0.3"
@@ -6632,19 +6601,19 @@ istanbul-reports@^2.2.4:
   dependencies:
     html-escaper "^2.0.0"
 
-jackspeak@^2.3.5:
-  version "2.3.6"
-  resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8"
-  integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==
+jackspeak@^3.1.2:
+  version "3.1.2"
+  resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.1.2.tgz#eada67ea949c6b71de50f1b09c92a961897b90ab"
+  integrity sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==
   dependencies:
     "@isaacs/cliui" "^8.0.2"
   optionalDependencies:
     "@pkgjs/parseargs" "^0.11.0"
 
 joi@^17.9.2:
-  version "17.12.2"
-  resolved "https://registry.yarnpkg.com/joi/-/joi-17.12.2.tgz#283a664dabb80c7e52943c557aab82faea09f521"
-  integrity sha512-RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw==
+  version "17.13.1"
+  resolved "https://registry.yarnpkg.com/joi/-/joi-17.13.1.tgz#9c7b53dc3b44dd9ae200255cc3b398874918a6ca"
+  integrity sha512-vaBlIKCyo4FCUtCm7Eu4QZd/q02bWcxfUO6YSXAZOWF6gzcLBeba8kwotUdYJjDLW8Cz8RywsSOqiNJZW0mNvg==
   dependencies:
     "@hapi/hoek" "^9.3.0"
     "@hapi/topo" "^5.1.0"
@@ -7204,10 +7173,10 @@ lower-case@^1.1.1:
   resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac"
   integrity sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==
 
-lru-cache@^10.0.1, "lru-cache@^9.1.1 || ^10.0.0":
-  version "10.2.0"
-  resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.0.tgz#0bd445ca57363465900f4d1f9bd8db343a4d95c3"
-  integrity sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==
+lru-cache@^10.0.1, lru-cache@^10.2.0:
+  version "10.2.2"
+  resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.2.tgz#48206bc114c1252940c41b25b41af5b545aca878"
+  integrity sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==
 
 lru-cache@^4.0.1:
   version "4.1.5"
@@ -7414,11 +7383,11 @@ micromatch@^3.1.10:
     to-regex "^3.0.2"
 
 micromatch@^4.0.2, micromatch@^4.0.4:
-  version "4.0.5"
-  resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
-  integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
+  version "4.0.7"
+  resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.7.tgz#33e8190d9fe474a9895525f5618eee136d46c2e5"
+  integrity sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==
   dependencies:
-    braces "^3.0.2"
+    braces "^3.0.3"
     picomatch "^2.3.1"
 
 mime-db@1.52.0, "mime-db@>= 1.43.0 < 2":
@@ -7496,10 +7465,10 @@ minimatch@^5.1.0:
   dependencies:
     brace-expansion "^2.0.1"
 
-minimatch@^9.0.1:
-  version "9.0.3"
-  resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825"
-  integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==
+minimatch@^9.0.4:
+  version "9.0.4"
+  resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.4.tgz#8e49c731d1749cbec05050ee5145147b32496a51"
+  integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==
   dependencies:
     brace-expansion "^2.0.1"
 
@@ -7571,10 +7540,10 @@ minipass@^5.0.0:
   resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d"
   integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==
 
-"minipass@^5.0.0 || ^6.0.2 || ^7.0.0":
-  version "7.0.4"
-  resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c"
-  integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==
+"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2:
+  version "7.1.2"
+  resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707"
+  integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==
 
 minizlib@^2.0.0, minizlib@^2.1.1:
   version "2.1.2"
@@ -7735,7 +7704,7 @@ named-placeholders@^1.1.3:
   dependencies:
     lru-cache "^7.14.1"
 
-nan@^2.12.1, nan@^2.13.2, nan@^2.17.0, nan@^2.18.0:
+nan@^2.12.1, nan@^2.13.2, nan@^2.18.0, nan@^2.19.0:
   version "2.19.0"
   resolved "https://registry.yarnpkg.com/nan/-/nan-2.19.0.tgz#bb58122ad55a6c5bc973303908d5b16cfdd5a8c0"
   integrity sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw==
@@ -7825,9 +7794,9 @@ node-forge@1.3.1, node-forge@^1.3.0:
   integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==
 
 node-gyp-build@^4.3.0:
-  version "4.8.0"
-  resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.0.tgz#3fee9c1731df4581a3f9ead74664369ff00d26dd"
-  integrity sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==
+  version "4.8.1"
+  resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.1.tgz#976d3ad905e71b76086f4f0b0d3637fe79b6cda5"
+  integrity sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==
 
 node-gyp@8.x:
   version "8.4.1"
@@ -7983,9 +7952,9 @@ number-is-nan@^1.0.0:
   integrity sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==
 
 nwsapi@^2.2.4:
-  version "2.2.7"
-  resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.7.tgz#738e0707d3128cb750dddcfe90e4610482df0f30"
-  integrity sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==
+  version "2.2.10"
+  resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.10.tgz#0b77a68e21a0b483db70b11fad055906e867cda8"
+  integrity sha512-QK0sRs7MKv0tKe1+5uZIQk/C8XGza4DAnztJG8iD+TpJIORARrCxczA738awHrZoHeTjSSoHqao2teO0dC/gFQ==
 
 nyc@^14.1.1:
   version "14.1.1"
@@ -8520,12 +8489,12 @@ path-root@^0.1.1:
   dependencies:
     path-root-regex "^0.1.0"
 
-path-scurry@^1.10.1:
-  version "1.10.1"
-  resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698"
-  integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==
+path-scurry@^1.11.1:
+  version "1.11.1"
+  resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2"
+  integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==
   dependencies:
-    lru-cache "^9.1.1 || ^10.0.0"
+    lru-cache "^10.2.0"
     minipass "^5.0.0 || ^6.0.2 || ^7.0.0"
 
 path-to-regexp@0.1.7:
@@ -8574,25 +8543,25 @@ pg-cloudflare@^1.1.1:
   resolved "https://registry.yarnpkg.com/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz#e6d5833015b170e23ae819e8c5d7eaedb472ca98"
   integrity sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==
 
-pg-connection-string@^2.4.0, pg-connection-string@^2.5.0, pg-connection-string@^2.6.2:
-  version "2.6.2"
-  resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.6.2.tgz#713d82053de4e2bd166fab70cd4f26ad36aab475"
-  integrity sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==
+pg-connection-string@^2.4.0, pg-connection-string@^2.5.0, pg-connection-string@^2.6.4:
+  version "2.6.4"
+  resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.6.4.tgz#f543862adfa49fa4e14bc8a8892d2a84d754246d"
+  integrity sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA==
 
 pg-int8@1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c"
   integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==
 
-pg-pool@^3.4.1, pg-pool@^3.6.1:
-  version "3.6.1"
-  resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.6.1.tgz#5a902eda79a8d7e3c928b77abf776b3cb7d351f7"
-  integrity sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og==
+pg-pool@^3.4.1, pg-pool@^3.6.2:
+  version "3.6.2"
+  resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.6.2.tgz#3a592370b8ae3f02a7c8130d245bc02fa2c5f3f2"
+  integrity sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg==
 
-pg-protocol@^1.5.0, pg-protocol@^1.6.0:
-  version "1.6.0"
-  resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.6.0.tgz#4c91613c0315349363af2084608db843502f8833"
-  integrity sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==
+pg-protocol@^1.5.0, pg-protocol@^1.6.1:
+  version "1.6.1"
+  resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.6.1.tgz#21333e6d83b01faaebfe7a33a7ad6bfd9ed38cb3"
+  integrity sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg==
 
 pg-types@^2.1.0:
   version "2.2.0"
@@ -8619,15 +8588,13 @@ pg@8.7.1:
     pgpass "1.x"
 
 pg@^8.4.0:
-  version "8.11.3"
-  resolved "https://registry.yarnpkg.com/pg/-/pg-8.11.3.tgz#d7db6e3fe268fcedd65b8e4599cda0b8b4bf76cb"
-  integrity sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g==
+  version "8.11.5"
+  resolved "https://registry.yarnpkg.com/pg/-/pg-8.11.5.tgz#e722b0a5f1ed92931c31758ebec3ddf878dd4128"
+  integrity sha512-jqgNHSKL5cbDjFlHyYsCXmQDrfIX/3RsNwYqpd4N0Kt8niLuNoRNH+aazv6cOd43gPh9Y4DjQCtb+X0MH0Hvnw==
   dependencies:
-    buffer-writer "2.0.0"
-    packet-reader "1.0.0"
-    pg-connection-string "^2.6.2"
-    pg-pool "^3.6.1"
-    pg-protocol "^1.6.0"
+    pg-connection-string "^2.6.4"
+    pg-pool "^3.6.2"
+    pg-protocol "^1.6.1"
     pg-types "^2.1.0"
     pgpass "1.x"
   optionalDependencies:
@@ -8650,10 +8617,10 @@ pgtools@0.3.2:
     pg-connection-string "^2.4.0"
     yargs "^5.0.0"
 
-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==
+picocolors@^1.0.0, picocolors@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1"
+  integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==
 
 picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1:
   version "2.3.1"
@@ -8878,9 +8845,9 @@ qs@6.11.0:
     side-channel "^1.0.4"
 
 qs@^6.6.0, qs@^6.7.0, qs@^6.9.4:
-  version "6.12.0"
-  resolved "https://registry.yarnpkg.com/qs/-/qs-6.12.0.tgz#edd40c3b823995946a8a0b1f208669c7a200db77"
-  integrity sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg==
+  version "6.12.1"
+  resolved "https://registry.yarnpkg.com/qs/-/qs-6.12.1.tgz#39422111ca7cbdb70425541cba20c7d7b216599a"
+  integrity sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==
   dependencies:
     side-channel "^1.0.6"
 
@@ -8942,16 +8909,6 @@ range-parser@~1.2.1:
   resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
   integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
 
-raw-body@2.5.1:
-  version "2.5.1"
-  resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857"
-  integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==
-  dependencies:
-    bytes "3.1.2"
-    http-errors "2.0.0"
-    iconv-lite "0.4.24"
-    unpipe "1.0.0"
-
 raw-body@2.5.2:
   version "2.5.2"
   resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a"
@@ -9521,11 +9478,9 @@ semver@^6.0.0, semver@^6.3.1:
   integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
 
 semver@^7.3.5, semver@^7.5.4:
-  version "7.6.0"
-  resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d"
-  integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==
-  dependencies:
-    lru-cache "^6.0.0"
+  version "7.6.2"
+  resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13"
+  integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==
 
 send@0.18.0:
   version "0.18.0"
@@ -9731,9 +9686,9 @@ socks-proxy-agent@^6.0.0:
     socks "^2.6.2"
 
 socks@^2.6.2, socks@^2.7.1:
-  version "2.8.1"
-  resolved "https://registry.yarnpkg.com/socks/-/socks-2.8.1.tgz#22c7d9dd7882649043cba0eafb49ae144e3457af"
-  integrity sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==
+  version "2.8.3"
+  resolved "https://registry.yarnpkg.com/socks/-/socks-2.8.3.tgz#1ebd0f09c52ba95a09750afe3f3f9f724a800cb5"
+  integrity sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==
   dependencies:
     ip-address "^9.0.5"
     smart-buffer "^4.2.0"
@@ -9836,9 +9791,9 @@ spdx-expression-parse@^3.0.0:
     spdx-license-ids "^3.0.0"
 
 spdx-license-ids@^3.0.0:
-  version "3.0.17"
-  resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz#887da8aa73218e51a1d917502d79863161a93f9c"
-  integrity sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==
+  version "3.0.18"
+  resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz#22aa922dcf2f2885a6494a261f2d8b75345d0326"
+  integrity sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==
 
 split-string@^3.0.1, split-string@^3.0.2:
   version "3.1.0"
@@ -10051,7 +10006,7 @@ string.prototype.trimend@^1.0.8:
     define-properties "^1.2.1"
     es-object-atoms "^1.0.0"
 
-string.prototype.trimstart@^1.0.7:
+string.prototype.trimstart@^1.0.8:
   version "1.0.8"
   resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz#7ee834dda8c7c17eff3118472bb35bfedaa34dde"
   integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==
@@ -10395,9 +10350,9 @@ token-types@^5.0.1:
     ieee754 "^1.2.1"
 
 tough-cookie@^4.1.2:
-  version "4.1.3"
-  resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.3.tgz#97b9adb0728b42280aa3d814b6b999b2ff0318bf"
-  integrity sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==
+  version "4.1.4"
+  resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.4.tgz#945f1461b45b5a8c76821c33ea49c3ac192c1b36"
+  integrity sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==
   dependencies:
     psl "^1.1.33"
     punycode "^2.1.1"
@@ -10446,7 +10401,7 @@ ts-custom-error@^3.2.0:
   resolved "https://registry.yarnpkg.com/ts-custom-error/-/ts-custom-error-3.3.1.tgz#8bd3c8fc6b8dc8e1cb329267c45200f1e17a65d1"
   integrity sha512-5OX1tzOjxWEgsr/YEUWSuPrQ00deKLh6D7OTWcvNHm12/7QPyRh8SYpyWvA4IZv8H/+GQWQEh/kwo95Q9OVW1A==
 
-ts-mixer@^6.0.3:
+ts-mixer@^6.0.4:
   version "6.0.4"
   resolved "https://registry.yarnpkg.com/ts-mixer/-/ts-mixer-6.0.4.tgz#1da39ceabc09d947a82140d9f09db0f84919ca28"
   integrity sha512-ufKpbmrugz5Aou4wcr5Wc1UUFWOLhq+Fm6qa6P0w0K5Qw2yhaUoiWszhCVuNQyNwrlGiscHOmqYoAox1PtvgjA==
@@ -10552,7 +10507,7 @@ typed-array-byte-offset@^1.0.2:
     has-proto "^1.0.3"
     is-typed-array "^1.1.13"
 
-typed-array-length@^1.0.5:
+typed-array-length@^1.0.6:
   version "1.0.6"
   resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.6.tgz#57155207c76e64a3457482dfdc1c9d1d3c4c73a3"
   integrity sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==
@@ -10652,9 +10607,9 @@ undici-types@~5.26.4:
   integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==
 
 undici@^5.11.0, undici@^5.22.0:
-  version "5.28.3"
-  resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.3.tgz#a731e0eff2c3fcfd41c1169a869062be222d1e5b"
-  integrity sha512-3ItfzbrhDlINjaP0duwnNsKpDQk3acHI3gVJ1z4fmwMK31k5G9OVIAMLSIaP6w4FaGkaAkN6zaQO9LUvZ1t7VA==
+  version "5.28.4"
+  resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.4.tgz#6b280408edb6a1a604a9b20340f45b422e373068"
+  integrity sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==
   dependencies:
     "@fastify/busboy" "^2.0.0"
 
@@ -10706,12 +10661,12 @@ unset-value@^1.0.0:
     isobject "^3.0.0"
 
 update-browserslist-db@^1.0.13:
-  version "1.0.13"
-  resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4"
-  integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==
+  version "1.0.16"
+  resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz#f6d489ed90fb2f07d67784eb3f53d7891f736356"
+  integrity sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==
   dependencies:
-    escalade "^3.1.1"
-    picocolors "^1.0.0"
+    escalade "^3.1.2"
+    picocolors "^1.0.1"
 
 upper-case@^1.1.1:
   version "1.1.3"
@@ -10827,7 +10782,7 @@ uuid@^8.3.2:
   resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
   integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
 
-uuid@^9.0.0:
+uuid@^9.0.0, uuid@^9.0.1:
   version "9.0.1"
   resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30"
   integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==
@@ -10942,13 +10897,13 @@ webidl-conversions@^7.0.0:
   integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==
 
 websocket@^1.0.34:
-  version "1.0.34"
-  resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.34.tgz#2bdc2602c08bf2c82253b730655c0ef7dcab3111"
-  integrity sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==
+  version "1.0.35"
+  resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.35.tgz#374197207d7d4cc4c36cbf8a1bb886ee52a07885"
+  integrity sha512-/REy6amwPZl44DDzvRCkaI1q1bIiQB0mEFQLUrhz3z2EK91cp3n72rAjUlrTP0zV22HJIUOVHQGPxhFRjxjt+Q==
   dependencies:
     bufferutil "^4.0.1"
     debug "^2.2.0"
-    es5-ext "^0.10.50"
+    es5-ext "^0.10.63"
     typedarray-to-buffer "^3.1.5"
     utf-8-validate "^5.0.2"
     yaeti "^0.0.6"
@@ -11199,9 +11154,9 @@ ws@^7.0.0:
   integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==
 
 ws@^8.13.0, ws@^8.4.0, ws@^8.9.0:
-  version "8.16.0"
-  resolved "https://registry.yarnpkg.com/ws/-/ws-8.16.0.tgz#d1cd774f36fbc07165066a60e40323eab6446fd4"
-  integrity sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==
+  version "8.17.0"
+  resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.0.tgz#d145d18eca2ed25aaf791a183903f7be5e295fea"
+  integrity sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==
 
 xml-crypto@^2.1.3:
   version "2.1.5"
diff --git a/pkgs/tools/admin/pulumi-bin/data.nix b/pkgs/tools/admin/pulumi-bin/data.nix
index 8f96441cadd7c..c9b9ee95b3e7a 100644
--- a/pkgs/tools/admin/pulumi-bin/data.nix
+++ b/pkgs/tools/admin/pulumi-bin/data.nix
@@ -1,56 +1,56 @@
 # DO NOT EDIT! This file is generated automatically by update.sh
 { }:
 {
-  version = "3.116.1";
+  version = "3.117.0";
   pulumiPkgs = {
     x86_64-linux = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.116.1-linux-x64.tar.gz";
-        sha256 = "1wywsjwllsa9y3v2bri7f4fmh1mr6mmamm0gkicq6p17m6g6xs27";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.117.0-linux-x64.tar.gz";
+        sha256 = "168ssybbdqprkpm33l98pghbr5a45xfcmwg6lj83i7l31nwxc5qi";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.15.0-linux-amd64.tar.gz";
-        sha256 = "0mjlsq61s7avya96i7ga0i28pdbg64wb59wvdpivv2g3lb6xd6vb";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.16.0-linux-amd64.tar.gz";
+        sha256 = "1q3z180xx7raybq7w4l5mmns5b2zgjk4g4a6p03ra12xjc7jy7gi";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v7.1.0-linux-amd64.tar.gz";
         sha256 = "18k4gn3b94h9hgj46xn5cv3002wy738ry6wrz57p4hnmklifzikj";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.55.1-linux-amd64.tar.gz";
-        sha256 = "1l8zz6ljvs6qg1r8kbcjrmz2h0nwrhggp1vm3wgxklm3dbsam9h9";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.55.2-linux-amd64.tar.gz";
+        sha256 = "1v0jwklzf02d69p8vlpa35y8f2fkkkjwgrxqf5drs30bqwwswicq";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v6.7.5-linux-amd64.tar.gz";
-        sha256 = "0hcz97l8hz4zvy9yf4h0bz2prqqgcsmd9zp79iyfm0l8xryjl9br";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v6.8.1-linux-amd64.tar.gz";
+        sha256 = "1z4nj0nhrnjxzz04lh9bqysdixfgl2ljjamr4ks75s80ql4bhzrx";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.3.2-linux-amd64.tar.gz";
         sha256 = "17dyf0zy78qcf3cz5kw1k6pliwiny1184aksq3d45ny4ag15q5zr";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.36.0-linux-amd64.tar.gz";
-        sha256 = "0ab3jvmax93r0za0mwyprywpclhh1v1x6nlzk08djj39nb772aps";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.37.1-linux-amd64.tar.gz";
+        sha256 = "0zzl1hnkvqkchjxbziw5w1g0ymdqvsyggn392dmyxzl1qc4i072j";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.49.1-linux-amd64.tar.gz";
-        sha256 = "0bjjj7w1c16kpnzpy70d1ijkj6hiym1qp751hdigl5jg7r0kbqhh";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.78.0-linux-amd64.tar.gz";
+        sha256 = "1dyynbhvfj3bdb9n7sifp1xs6yjgz85gdswbiw5djn5yfwpz5zbn";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v3.0.0-linux-amd64.tar.gz";
-        sha256 = "1d6i9p3lw2hzn2q7ja3cqh00vx7ihm5lhs6pg9468hag8wvk230g";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.50.0-linux-amd64.tar.gz";
+        sha256 = "0hjvv2q10l648s05anzdf7vjc562gk0lch1r3mpdgign1hrhgspc";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.77.1-linux-amd64.tar.gz";
-        sha256 = "0p2wvmblq34grvb5bnvwni0xj6d2v57cl086n3kifvnmc4qsmymh";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v3.1.1-linux-amd64.tar.gz";
+        sha256 = "05vyz81a5z96k35hh8ky9bl6c505jfb6rxsc82qlfh8kx110p66l";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.29.0-linux-amd64.tar.gz";
         sha256 = "1pcril9c8ck99hg0k997vqiawk3iqwcsvg8x81b232pz8vzsxd5q";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.11.2-linux-amd64.tar.gz";
-        sha256 = "13gbn5jslqcm43ppp4015f7gcqpcvv7bqxydg41zq4xchiqrbwh9";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.11.3-linux-amd64.tar.gz";
+        sha256 = "1g6rzqsgak4801b2zzhq3ss6gkvkc8y7swpbm92sdbns71hxvw6w";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.28.0-linux-amd64.tar.gz";
@@ -61,28 +61,28 @@
         sha256 = "0sdmjaka9d399hgabib1p6kwlydcsgibj0jkz87mi7blj4jgrmsm";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.3-linux-amd64.tar.gz";
-        sha256 = "1bdmyrfgszqb9rmacq3bj0qqybi4ck336cgdhg8bk4dbjx0x4sah";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.4-linux-amd64.tar.gz";
+        sha256 = "1sbscig80kf3k2w5j5934ld78w2760s97dn9cqnwf040wq3x2bqk";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-equinix-metal-v3.2.1-linux-amd64.tar.gz";
         sha256 = "0hnardid0kbzy65dmn7vz8ddy5hq78nf2871zz6srf2hfyiv7qa4";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.7.0-linux-amd64.tar.gz";
-        sha256 = "0dzhzf9xcb261mcnw91g6hk4hbwhhzddiwjh5c1vh63agw9564gy";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.8.0-linux-amd64.tar.gz";
+        sha256 = "17zngh68ssilazg5caiz2amzcgd1kp906k5viwp2ig70wp6gwkyy";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.23.0-linux-amd64.tar.gz";
-        sha256 = "0nq60scg19r6n56r1ki6zk8dgzd28dwf032f4r4fqbv604s9kp44";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.24.0-linux-amd64.tar.gz";
+        sha256 = "0bfmgcm1r2w6lva13s2nmxc5i6c16rp0qysyampmhphcl7hyxbvy";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.2.0-linux-amd64.tar.gz";
-        sha256 = "00qdx09p6lh91ib99g54jk8sfy48f71j98gkqsjaipf2x7bl9g8j";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.2.1-linux-amd64.tar.gz";
+        sha256 = "1ilpp4xkdpp3mq4i0sicxbndn15gbrhjsvxp8aanc20dgpcr5hy5";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v6.11.0-linux-amd64.tar.gz";
-        sha256 = "0955zm2xiprc7skdy2yxr0mkp4kijm3fdpfq6r1qzhqr1lxvdns1";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v7.0.0-linux-amd64.tar.gz";
+        sha256 = "0nfk9mk8dgrw6a03a1k3sy936jkwvnbbi2i396hd7vgyvsb56vmk";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.32.0-linux-amd64.tar.gz";
@@ -93,8 +93,8 @@
         sha256 = "1hjg23ah9v20kfi08cln76akvldn93s24rcsx7dilsz2hiw4qr9x";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.11.0-linux-amd64.tar.gz";
-        sha256 = "1cjl499sjlskf0bs56vfwh9pramp653l732bzy7vbjci4rm5x3qv";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.12.0-linux-amd64.tar.gz";
+        sha256 = "08s5ii5aj5za542gdp1jhzq8pnvqpnzblci4kygdr056wzrcz2zi";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.19.1-linux-amd64.tar.gz";
@@ -109,28 +109,28 @@
         sha256 = "0yv68ccyzi7hv2xaa8sybg4mf5qc7wa25kjziy2fdfsjyl8fn6ps";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.15.2-linux-amd64.tar.gz";
-        sha256 = "1cw4ajl3h9xxysgyf9n1n8n9cdzwc7kpb263hs7k8i0yk1vfvcsx";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v4.0.0-linux-amd64.tar.gz";
+        sha256 = "195m7xxdzlwzglaz72iajdx13yr3j78x38z3ajbw7c89wvpp8p6l";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.11.1-linux-amd64.tar.gz";
         sha256 = "01qqxxap2cmvgc0msajxdsr7ddpw9ly1ms70fzb4vk98dr9q7lpr";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.16.1-linux-amd64.tar.gz";
-        sha256 = "0rag94fgv2jgpbgb1caj3i23zzvyjyvyc63asvi5889pf2yxyi4h";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.16.2-linux-amd64.tar.gz";
+        sha256 = "05k0kq11z4m5vjj41sqq5vi7qpiwmqrw3plw96f750bv5bzgpf09";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.53.0-linux-amd64.tar.gz";
-        sha256 = "00b675jp3jggg2scx37khrl35wyma0ncn3cqmn631b90rbnk2dc5";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.54.0-linux-amd64.tar.gz";
+        sha256 = "0s8gkjzlfcmn1bvgzmvj3dkcq72gwcngcn24jvbxdc9mf6s3mjmg";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.77.0-linux-amd64.tar.gz";
-        sha256 = "0avgx6b6s1jffn4dr2bvsicsi6j48hxfg1k7nsyklbcdwvv6b96j";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.79.0-linux-amd64.tar.gz";
+        sha256 = "0n7cj6bj4hrjrijn0pniy9fzq39cb019m1k5rqqbfpkpv1211zf1";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.21.0-linux-amd64.tar.gz";
-        sha256 = "092pr29pf29wms697cdp93lp9772bg07sj2290a9ypf26yhr5dq7";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.22.0-linux-amd64.tar.gz";
+        sha256 = "187k2w0s3wjn242qayi8yvvrbf9wpdzwd4f4g70a80d1bq32gz98";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.16.0-linux-amd64.tar.gz";
@@ -163,52 +163,52 @@
     ];
     x86_64-darwin = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.116.1-darwin-x64.tar.gz";
-        sha256 = "1vzbca3m040lv0mkxrxcwxyzv47xvpzjzf5f5dpf7jg6p9875imk";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.117.0-darwin-x64.tar.gz";
+        sha256 = "1i594gyrivw3axhp1mpwyqqwzmiggalcg0hwnydpmn54gbaq5arl";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.15.0-darwin-amd64.tar.gz";
-        sha256 = "14zs1mslzy9h33pilqdnqcjpfz2v36hcfd14yrf1cs5mldhhrxhq";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.16.0-darwin-amd64.tar.gz";
+        sha256 = "1sigdy8l7iy04ns0qsd3qh9v47p64a0zjyx5ifafrlh2dxsa8gwp";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v7.1.0-darwin-amd64.tar.gz";
         sha256 = "1lvdbyrcx4mpwm3y6dgxa3m9c5g5s3hhfx67qr2vrq1jwkfbc3ss";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.55.1-darwin-amd64.tar.gz";
-        sha256 = "090m3609dzv396r6b7yriip66zxabj5ad2mx0ghc0bgj2gxq6ysj";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.55.2-darwin-amd64.tar.gz";
+        sha256 = "03v9wcnnnfl83gsrn5q1w6jm9j85gpgbjp2hh2dmwpd39nhkkx6q";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v6.7.5-darwin-amd64.tar.gz";
-        sha256 = "1ga4wi18kiiv6hd9vc1h8kixk5d1qihy5lw4031rb44g1kx8xm0c";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v6.8.1-darwin-amd64.tar.gz";
+        sha256 = "1vr5x1rkqx6k297z3jm990v4zpmb88pbblnpdzynrj6h7s0bczgv";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.3.2-darwin-amd64.tar.gz";
         sha256 = "06wrd619fi924r1wm66pj93q2j8kb9y7bmjf9sxankq2ma28slgk";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.36.0-darwin-amd64.tar.gz";
-        sha256 = "1akqb2da35fjv1qw35z1zcqxs1a3ida6a9avkkm46ng7c29s23pa";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.37.1-darwin-amd64.tar.gz";
+        sha256 = "0vbsbk404js0q1pba4zw4jqyiv97pdjwmk1s7la2y10srqqfa9ng";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.49.1-darwin-amd64.tar.gz";
-        sha256 = "1fqginvky4afnyjw6w3mk6arqjxzdiri7g2ccz8wsvpsidq44d86";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.78.0-darwin-amd64.tar.gz";
+        sha256 = "0mkzrydbnsbg2rv5z04dwhv3fcscqjvmycgdkkcgma82s9ijklph";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v3.0.0-darwin-amd64.tar.gz";
-        sha256 = "1gzb7srxdzz1vhrzzzfxahkzr26b3smd62l70dwn605cich3vwyw";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.50.0-darwin-amd64.tar.gz";
+        sha256 = "07w66bxr6z2zfrmw2cmsxyk1lw36ar2gi2dvwiiapk633ivrs938";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.77.1-darwin-amd64.tar.gz";
-        sha256 = "0wabgypwphidaij94wrij0fvmmhrdp2z5rhjmkn2kffx0iz340hd";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v3.1.1-darwin-amd64.tar.gz";
+        sha256 = "0blhx82diydpwbfr7grj2zxk29pvg0b2w2rawlv60mhc3dw6ixar";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.29.0-darwin-amd64.tar.gz";
         sha256 = "0ih4qli4yj109w662l0jp8mpx69p1rchb5pccdc2sing6mx6ql9i";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.11.2-darwin-amd64.tar.gz";
-        sha256 = "0ldyy3c6qapha189jpb0lrmwq8brz9hip3lkl16xihmwgxpakqv3";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.11.3-darwin-amd64.tar.gz";
+        sha256 = "1gcv6ri58a4k8g7dzh0xvpmv1x6ndlihkmd5n2gza303i9c8466n";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.28.0-darwin-amd64.tar.gz";
@@ -219,28 +219,28 @@
         sha256 = "1z1ai3i41g2nay21z9sq47f7ilnhcjbdzshxx3n8iy9mn3yrsyaw";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.3-darwin-amd64.tar.gz";
-        sha256 = "00x85ppnc8z44npvp8h0n86839vilwyvr33dcx2zbq26d5g8dln4";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.4-darwin-amd64.tar.gz";
+        sha256 = "1viwf0afhmisxvz0dkmf79b3ncbba4xz9hp9h0h2866l05h9v5d0";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-equinix-metal-v3.2.1-darwin-amd64.tar.gz";
         sha256 = "1m5lh59h7nck1flzxs9m4n0ag0klk3jmnpf7hc509vffxs89xnjq";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.7.0-darwin-amd64.tar.gz";
-        sha256 = "1a582mqhbr03ab1jlfb0fp9r087caihlkw6np5il77jraz97cqsh";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.8.0-darwin-amd64.tar.gz";
+        sha256 = "009w2zsmy4nkc5w8k0ldm5fl2yjl8h52574w1as27kz0800nibav";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.23.0-darwin-amd64.tar.gz";
-        sha256 = "0cqxvr3z3lwfpmifjbcl1898qs2wqjk8lr375cjppsck16pcizzp";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.24.0-darwin-amd64.tar.gz";
+        sha256 = "0yaynnssckdy6zb88fgrilymkyciflz4ih8dp3kj3h2frzkwicp0";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.2.0-darwin-amd64.tar.gz";
-        sha256 = "0qp2mva4rqrahpb5bx02grxly9zq8s676hin2r161y0wy7afdgih";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.2.1-darwin-amd64.tar.gz";
+        sha256 = "08plbmrzdd4vbds4qihdq3c0w9fxjaa64lmlaplla4z0qvi5cjc2";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v6.11.0-darwin-amd64.tar.gz";
-        sha256 = "0yxmj0amdvfgn8mnz7p9z843g503sr8flg4kykl3lvh1r0nwj85v";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v7.0.0-darwin-amd64.tar.gz";
+        sha256 = "1na9h7x1a4h21v68g4dgvj4jbq4kdziyh2irz8x45bzsa8l8cb16";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.32.0-darwin-amd64.tar.gz";
@@ -251,8 +251,8 @@
         sha256 = "17d2j4wf08q818mhb1qlji1hb3b8900hx0yrpk43xnqwvfjsyyyh";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.11.0-darwin-amd64.tar.gz";
-        sha256 = "0s1yv5cahsp94px0k00jhmh8g6yhjb231bfim3y9bqh13i7z6rir";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.12.0-darwin-amd64.tar.gz";
+        sha256 = "0jyg244kfkc8d60p6n1df3lyvxfdmc0y0j72dkpwn7fmnm5bnd1f";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.19.1-darwin-amd64.tar.gz";
@@ -267,28 +267,28 @@
         sha256 = "04cmmgi5rxj9lbs5s3d4gzrngiw52gyvsb7pi8w7v6cpb9p8q3gx";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.15.2-darwin-amd64.tar.gz";
-        sha256 = "0h71g1mmmz70bx5zs4jryngm2nghi5fjbp4ldwjhx4ymbf7ksm2w";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v4.0.0-darwin-amd64.tar.gz";
+        sha256 = "0f3xrcnn65yqpfrqkywa6blsxb501xjw2j3apb3351ii5dmmi31q";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.11.1-darwin-amd64.tar.gz";
         sha256 = "1m255nwx3qzl3pcsm2mqwrpzg6rwb1yl5js7l0ra5hz066pw0wai";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.16.1-darwin-amd64.tar.gz";
-        sha256 = "08xhlygac5516lyyrb8x5xx5fp3a918nk1afj6m7d1c6sswcw84s";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.16.2-darwin-amd64.tar.gz";
+        sha256 = "0y4g3agranvahayblmy9m6i05f4x290r9lhc1pzhjsnz1xdh7nf4";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.53.0-darwin-amd64.tar.gz";
-        sha256 = "0nxfrkpmmcaw4y3kzmp0i9v848z1mjr9p1l5kj85hrdkdqq5m2c8";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.54.0-darwin-amd64.tar.gz";
+        sha256 = "0h0j5p1l3cj412zj274hhzv00pnn462adk8anvkippiwwzphkn5x";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.77.0-darwin-amd64.tar.gz";
-        sha256 = "1lr1r615jpld7k5szyd5ks48rkr2p0kn8jh3lnjbvs8v08prd8vz";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.79.0-darwin-amd64.tar.gz";
+        sha256 = "0fhmza4ynmb5bcwd0m80p4acv2l5f2imca9zg02mmv6drd4wznpm";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.21.0-darwin-amd64.tar.gz";
-        sha256 = "0rp6iiby987q5mhpnk5a381zr6vipb9hnxmlk7kdwvflcc8va369";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.22.0-darwin-amd64.tar.gz";
+        sha256 = "11dyy9sh83x3rpwz1bq5zfqhqgcrxg85r2q1jfx5ddna3a7ww8hj";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.16.0-darwin-amd64.tar.gz";
@@ -321,52 +321,52 @@
     ];
     aarch64-linux = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.116.1-linux-arm64.tar.gz";
-        sha256 = "08lqdilywnpxgnag4qbcr4f454q3812cd177lfffv8zm44xzvgmx";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.117.0-linux-arm64.tar.gz";
+        sha256 = "0vwdfx6xm63psy00z8a9sc3h6cz0xj4zg49np6g0wnkky4abvw5i";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.15.0-linux-arm64.tar.gz";
-        sha256 = "096zak0andzcywk5rz9dxbr593ixzzhqfqlffh11gp6q7j9xdy87";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.16.0-linux-arm64.tar.gz";
+        sha256 = "0nzaxghc1dxp5vb7l40markfi5lyai02hmwalzypq4gq1gy302r0";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v7.1.0-linux-arm64.tar.gz";
         sha256 = "0nr87qclkvn1281prikixvbq3mhkkiklci45vwshzqp7fr7pf3ph";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.55.1-linux-arm64.tar.gz";
-        sha256 = "1cz6wd28bv4xlz6jfq6pxa9a5bxrb9amxb149ksrg5ysp55c7jrp";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.55.2-linux-arm64.tar.gz";
+        sha256 = "08kw7ff66rv5g3hm7cv4h0l8vj70m9pz0dfqm5ywnb6dmn1sava2";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v6.7.5-linux-arm64.tar.gz";
-        sha256 = "08x6jsqw1r4h679v46bvnqcvbcwcq0icn5a319s8j6n80qspmaqp";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v6.8.1-linux-arm64.tar.gz";
+        sha256 = "0ia91rca8cz3dhkmfyjzacpyncyp5jxks6cxsf58zbkgwn1bqxkw";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.3.2-linux-arm64.tar.gz";
         sha256 = "16zbb652as85casz0yayg4vzrrya0r35l8z3vac31d2054bpp367";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.36.0-linux-arm64.tar.gz";
-        sha256 = "0ic37v6nc6pi0ngk7j0rp9s1mk94f6igli0ak5dnyygbcpfs1d16";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.37.1-linux-arm64.tar.gz";
+        sha256 = "1sby4zgmibq5j98lk05vpnfb20qm6skkhpmc0i1qgirc7765v9ym";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.49.1-linux-arm64.tar.gz";
-        sha256 = "1slsqr77i458f40i87cb49d05xnbgc01w419js5x7wfvzdcf04j7";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.78.0-linux-arm64.tar.gz";
+        sha256 = "1nn93mbrjyj0gcl2dns5q6dpdqmkzhwnnlg1q6lxcc2a2jkgrsyn";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v3.0.0-linux-arm64.tar.gz";
-        sha256 = "0s4pxkj1fni8c0r8v8kqzl7agcy93m71l8kpmb3630q4syddzmqb";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.50.0-linux-arm64.tar.gz";
+        sha256 = "15p89w0qpkqqfy5bhgmf5ymq3jvd0kj0y9rvzbcp79ryng7r9cwl";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.77.1-linux-arm64.tar.gz";
-        sha256 = "17lf18j0r7mq4rwmscrblp4b7xbq9zca55x9vn26rmmhgcsvzpd0";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v3.1.1-linux-arm64.tar.gz";
+        sha256 = "1chrfqdiwx6lvylrih6zx7m1zkrmcb7lz0x1cb9hc0l5fy93rc63";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.29.0-linux-arm64.tar.gz";
         sha256 = "1p9xvwivl0dzvmgnlcbsak9s7qc3ys8i185690wiragj9f818nlf";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.11.2-linux-arm64.tar.gz";
-        sha256 = "03dx7sabps5dy79fwgp0msjbigaijxxjabdk2sprig6z25mvk91s";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.11.3-linux-arm64.tar.gz";
+        sha256 = "0rmn667z8s4pndck24h82qp5fyshixvji736x6barlpiamy4lkhj";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.28.0-linux-arm64.tar.gz";
@@ -377,28 +377,28 @@
         sha256 = "0zmdsy9x62a9zf1yc3g0c11dagp3653dsbqgp79cjq89n7y79289";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.3-linux-arm64.tar.gz";
-        sha256 = "1bs2mcfg99an9bvv77vzh0m32dbs7x79dncgqk1dyvzq2z3d44p4";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.4-linux-arm64.tar.gz";
+        sha256 = "117a8xaj6n9hgr7r8brmwf3kmdlgd2xzmssai8nn5r9hq7r8z79f";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-equinix-metal-v3.2.1-linux-arm64.tar.gz";
         sha256 = "111pia2f5xwkwaqs6p90ri29l5b3ivmahsa1bji4fwyyjyp22h4r";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.7.0-linux-arm64.tar.gz";
-        sha256 = "082v5hbfcdrjxd8b9w6g0zh0q6k6b5vlx1m7sjwqilalp58s5g2s";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.8.0-linux-arm64.tar.gz";
+        sha256 = "09cdx6hh2lvipnj4fsff66vq8i3fvggs253ik2a8lpajg4xdhswi";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.23.0-linux-arm64.tar.gz";
-        sha256 = "1krz5wazaav5hyrgssyqpgj69m3rx122pwjqh4s95i6c9mr2g0pr";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.24.0-linux-arm64.tar.gz";
+        sha256 = "15lbnj8jdjb6g442mv87wxw9ahy33574czm5q8wz3fwj4hf6ia7i";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.2.0-linux-arm64.tar.gz";
-        sha256 = "1495j84c92840h6w2rapag5698r6bm2mbcrwxgdnmnvc87r5kjms";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.2.1-linux-arm64.tar.gz";
+        sha256 = "0b2cc2ybw76h283ir4nl51cf5zbl2bxrcr5iilskqf58b8yfrra0";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v6.11.0-linux-arm64.tar.gz";
-        sha256 = "09clraq9b81sv1p7m531kv7jlypvxcan4dw62gkq6ncwm9cdx1ll";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v7.0.0-linux-arm64.tar.gz";
+        sha256 = "1di7ch1bgmqlpajzmc85pb7hmsyw6kcw6wawx0l0r8a539q89i96";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.32.0-linux-arm64.tar.gz";
@@ -409,8 +409,8 @@
         sha256 = "11winxlgf2p325xppp9xa0p2mhncj72xpcyxgz13wizk33saj649";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.11.0-linux-arm64.tar.gz";
-        sha256 = "021i7w1ysxplwrjd7mzsr0mmnrw4h5rnrwi33sirv0ryx7rsk94z";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.12.0-linux-arm64.tar.gz";
+        sha256 = "1k2qlakyvdqz0fadbabdjf9yg3jm4357z46cvqxahyyminvkxa60";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.19.1-linux-arm64.tar.gz";
@@ -425,28 +425,28 @@
         sha256 = "11sd0kfkbczybkfh3n9fr0j8lnjfqcwfvxmvwfgm8d2jz9c7rhsm";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.15.2-linux-arm64.tar.gz";
-        sha256 = "0a0v0yj14fslncisvhfn8mlk009h7adkcszv6dlbzha46p4fl32a";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v4.0.0-linux-arm64.tar.gz";
+        sha256 = "0gg3f461j6ca31cnnlsn9nlnb63mhhr6rwkypa5wnvf38xsfbmf6";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.11.1-linux-arm64.tar.gz";
         sha256 = "0kix5wkdhr1svbqicvfs91g43jwzp80zi07wq564pkphr907r99g";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.16.1-linux-arm64.tar.gz";
-        sha256 = "03yg6fxxrimkhi13qsm328n5x6fqhl78bznh50fslhj9vlhpv1jr";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.16.2-linux-arm64.tar.gz";
+        sha256 = "0s7sqcrf9nvlyfjcj2inbifdn5xlffcmsby1giiwjcjfvjk5wl8j";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.53.0-linux-arm64.tar.gz";
-        sha256 = "132b33wymaxcp6i4mpp7cal23crkm4xj1llnwa17p2gd61qdqyid";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.54.0-linux-arm64.tar.gz";
+        sha256 = "0mckknab8cx2jcwf3n09mfnc1yvzgxfddx8d6vmbirlclclhwcl8";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.77.0-linux-arm64.tar.gz";
-        sha256 = "1vv27n5nvdkrqci6wi5a5j1zczx263wslhb2h3jhfx5drl0v99ix";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.79.0-linux-arm64.tar.gz";
+        sha256 = "1bd3w8lbfcxvr2bl9cqm4kysq1fklsni69w3w42ss7lvayw8rzna";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.21.0-linux-arm64.tar.gz";
-        sha256 = "05a7bpw8wg5939jnsrz8wdsyrbhs2sbpsbq7z5h92pq9s9ymsmxw";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.22.0-linux-arm64.tar.gz";
+        sha256 = "1zx40hd62hksmks4rw1iwj8q8assvwxmdmf32dg2fbwv1a7m5icw";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.16.0-linux-arm64.tar.gz";
@@ -479,52 +479,52 @@
     ];
     aarch64-darwin = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.116.1-darwin-arm64.tar.gz";
-        sha256 = "0hfvvcpd6hjqsrbbjlplczn2z7si87nizxfjpwrcz98jnvdqjgld";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.117.0-darwin-arm64.tar.gz";
+        sha256 = "0slxzic4yrpl6pxqmhb75iis3rircjl5pbjrd4dcm4q03haisjj7";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.15.0-darwin-arm64.tar.gz";
-        sha256 = "0mfjvzgphhi9dqa6kgfd8avvr80xvfbiikc4kj04fl85rc39h2hr";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v6.16.0-darwin-arm64.tar.gz";
+        sha256 = "19mcmznkyg6rs85d170xly2n8h7cclq88h8c1dv1jak1hnx6yl4j";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v7.1.0-darwin-arm64.tar.gz";
         sha256 = "0zsch3dj2bcajxjivz1xjbiby6v6lb2axqq9y3nx8q6l6wnn1hsa";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.55.1-darwin-arm64.tar.gz";
-        sha256 = "1g8dysychpf4867zp22gwaj5z2cchybds86c3say95pzbrlv5njm";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.55.2-darwin-arm64.tar.gz";
+        sha256 = "1fnnq29rfg8z5z127b2kqz34r9c4vwcw4jgsgvhw3d6yds083i0n";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v6.7.5-darwin-arm64.tar.gz";
-        sha256 = "0wh34s4dynb4vjfr8rm5rnxs6w06sgq1r7a6sp16p93c5ib7lj3y";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v6.8.1-darwin-arm64.tar.gz";
+        sha256 = "0669w7ywzd7mhh2l725zfxg8xavsanwzxfv99n3y2w5za33aaz1f";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v3.3.2-darwin-arm64.tar.gz";
         sha256 = "16sv847ymz60s8p5p7am2lclrinlhh9f5bch3721ap86acxyh2i4";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.36.0-darwin-arm64.tar.gz";
-        sha256 = "1fkry5pnlw1qxvbc89xib0656yc1ca35gsbif1b1hh5dgj3wfs9a";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v6.37.1-darwin-arm64.tar.gz";
+        sha256 = "0s3d9jpwwrkxcbpn5jb18g6kpcxx6ky4jv4h3k0jlqa1ddkm9sap";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.49.1-darwin-arm64.tar.gz";
-        sha256 = "1h2kp7vss1i5xjbzcriz1q41f7qmz41zx6zw0p64d3in9gjzyd3s";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.78.0-darwin-arm64.tar.gz";
+        sha256 = "1rjdrzi37g2pwslk7npyv15pmdmllwfhq576ilk987z3z7z3plhs";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v3.0.0-darwin-arm64.tar.gz";
-        sha256 = "1pjcbk8lsqpdw12mp07czf8gzam7dhak3zb4zcd0z9xp3fj0qvgd";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.50.0-darwin-arm64.tar.gz";
+        sha256 = "01na2dmm4jrpn0k7s1ikvqjfczp3v5kg53lp7cbidhk90v2ar8aa";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.77.1-darwin-arm64.tar.gz";
-        sha256 = "1fap3aapqhzf831yrcb727rmmy8k18bcvr63qwvmbcwvr6gj4ffk";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v3.1.1-darwin-arm64.tar.gz";
+        sha256 = "1m53gzviimjcr3dl0pydafa6dl1r0q6ih1gwhm7lvgpll300wl1q";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v5.29.0-darwin-arm64.tar.gz";
         sha256 = "0p7v06n1zqv4czbrc7i41lmhjn0ypazji1gngrx5x3r1dc3c4bpk";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.11.2-darwin-arm64.tar.gz";
-        sha256 = "1zjggbm0cas99vzh98yld7af93bamzb7492612a1bdk1x30w46jn";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.11.3-darwin-arm64.tar.gz";
+        sha256 = "1wfiq9rzdzp8pa88g7dbgz644dih8f9f0apw6vfngjjsd2kj3k1c";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.28.0-darwin-arm64.tar.gz";
@@ -535,28 +535,28 @@
         sha256 = "04bsf97vbp0r9zp7x3xpfcx2h8f3pckilqnc353kr2bf566vam25";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.3-darwin-arm64.tar.gz";
-        sha256 = "0kk3pg793ikq5qn0z1yqg6viddcs35lzyzyly95jhh2v2154arbm";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v4.5.4-darwin-arm64.tar.gz";
+        sha256 = "128wvq4qvyrgv2q07bpvf96c5vm0fm77x4dcycf0j89hq3rj09zy";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-equinix-metal-v3.2.1-darwin-arm64.tar.gz";
         sha256 = "12bzicm43l7yvh02v5fx3z8v46l9i7a9f677735xi5rjbmd2an4c";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.7.0-darwin-arm64.tar.gz";
-        sha256 = "1w25hs64ay3csmaz6ydpi1srn2qsbg8r3kbxqjfghpi0ryx9prgv";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v8.8.0-darwin-arm64.tar.gz";
+        sha256 = "1054c8cici744kyf817q8fk89ljcijxi7g5vi9080w4j6hxmabvn";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.23.0-darwin-arm64.tar.gz";
-        sha256 = "14yx04q0pps9pycfh9n3bkr73x1ir3q2p683bvwgrjsb046djb23";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v7.24.0-darwin-arm64.tar.gz";
+        sha256 = "0749qxzi2pg0y0f25xw2fkyh9cx6q9lzllqfzfahi97wckr5wl25";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.2.0-darwin-arm64.tar.gz";
-        sha256 = "0whmhq9vks8yni96b7d4kavr2mlbhxvlbjmwvdp0nvwpaa36wkk0";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v6.2.1-darwin-arm64.tar.gz";
+        sha256 = "0wafcf9vw32yrpj9qmffhbxn08602br6n06mjyvcjm25mg8iwb4p";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v6.11.0-darwin-arm64.tar.gz";
-        sha256 = "1bml2wwa72yb35rwp5bsh91rd1pci27za9901vsbwpcq78wza7si";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v7.0.0-darwin-arm64.tar.gz";
+        sha256 = "18ch0d32ggy7bx2gmyhz3lnimwy5431n6fwmmbzy66792pcxn9k2";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.32.0-darwin-arm64.tar.gz";
@@ -567,8 +567,8 @@
         sha256 = "1cjq3n11hlsj4v0yi2xyapqk4ibf16qg9n9apwwgqcaz1l1sq8z2";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.11.0-darwin-arm64.tar.gz";
-        sha256 = "177fycz1nabhf8c4clnd5qjl1iirg2fwrq47cw11w8r4hyfz3qbw";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v4.12.0-darwin-arm64.tar.gz";
+        sha256 = "1zkf12nagsaxz8k8163fqd4yd6dhizlj6hqakllx7i9np6410wyx";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v4.19.1-darwin-arm64.tar.gz";
@@ -583,28 +583,28 @@
         sha256 = "0lpwg6rwf5fa2ydf3j243k07jp6briayy953n4m2hyqhsgs6q62q";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.15.2-darwin-arm64.tar.gz";
-        sha256 = "05qzgzp2dcm3p3s6jz14pjxhgiid9wj000glyrfl07g9cf6xa95a";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v4.0.0-darwin-arm64.tar.gz";
+        sha256 = "1ljqziijcdni2vgh55qb5sglb2vwzlkzvpbhxcjj6x3ap4ywiiyf";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.11.1-darwin-arm64.tar.gz";
         sha256 = "16m2bd2ymaaaw4ac80kg349vwgc8f1b0nqkkkmc24k3hxv9rxlh9";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.16.1-darwin-arm64.tar.gz";
-        sha256 = "1bxsmf1zmv21si7viwarmy4xfnghpldnayi62v73a0fbgz3c8vn3";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.16.2-darwin-arm64.tar.gz";
+        sha256 = "0m266lqic8x0j6nx7yyfan1d8n2zqpiil41qvqkax3za81aymykv";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.53.0-darwin-arm64.tar.gz";
-        sha256 = "1m60a7g0516rczcjs0x5ff0iq9ngdyg61h60q1wf5qs7idldkg59";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.54.0-darwin-arm64.tar.gz";
+        sha256 = "0299a0hhcm7zg7p45d6njb1cfjy1l8xqiinfs63chj427gk225i7";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.77.0-darwin-arm64.tar.gz";
-        sha256 = "00mdkyns6dhn5pkvb6jr33ikk54msrg0xzabvlwz38ali29d6pz0";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.79.0-darwin-arm64.tar.gz";
+        sha256 = "08x8yzjfl8j3rwlwzxfqmjlxxn177kdhmrz9g8a7igp8yggyq5hs";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.21.0-darwin-arm64.tar.gz";
-        sha256 = "1c7nx7c9byc9rqvfhfhz472y4q6p0f6dqx60chlw50x4l39pkvxa";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.22.0-darwin-arm64.tar.gz";
+        sha256 = "1qr3wzi62pa9cix086gs4k5za316hivxvnp4xiihrsc8lg31yrnj";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.16.0-darwin-arm64.tar.gz";
diff --git a/pkgs/tools/admin/salt/default.nix b/pkgs/tools/admin/salt/default.nix
index e38016de93ac9..de836d4e82271 100644
--- a/pkgs/tools/admin/salt/default.nix
+++ b/pkgs/tools/admin/salt/default.nix
@@ -10,12 +10,12 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "salt";
-  version = "3007.0";
+  version = "3007.1";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Qb+E5x/GVb+KS1LrRA0GIa6WEJaghtIOEy4VEuLt3/g=";
+    hash = "sha256-uTOsTLPksRGLRtraVcnMa9xvD5S0ySh3rsRLJcaijJo=";
   };
 
   patches = [
diff --git a/pkgs/tools/filesystems/gcsfuse/default.nix b/pkgs/tools/filesystems/gcsfuse/default.nix
index 49fa05e23feef..8ad145254281c 100644
--- a/pkgs/tools/filesystems/gcsfuse/default.nix
+++ b/pkgs/tools/filesystems/gcsfuse/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "gcsfuse";
-  version = "2.0.1";
+  version = "2.1.0";
 
   src = fetchFromGitHub {
     owner = "googlecloudplatform";
     repo = "gcsfuse";
     rev = "v${version}";
-    hash = "sha256-8O8JIN2KmTw5bMmcxu9ZeNiS48XkMUUpAX3+6Km13Y8=";
+    hash = "sha256-1SKTwHvSCkkYhPY2yVTIRVsddW/Gt8Vke6W+a4VO6fc=";
   };
 
-  vendorHash = "sha256-nw2b0lDUJ9B+LloySns4cUzXeJ8uv4oYkZY0Jjg4hxc=";
+  vendorHash = "sha256-7IEF11gqou3Dk+CdU1HKPV7MyksldMmciQ74I9MEtuo=";
 
   subPackages = [ "." "tools/mount_gcsfuse" ];
 
diff --git a/pkgs/tools/graphics/mangohud/default.nix b/pkgs/tools/graphics/mangohud/default.nix
index fc0fc9930d786..bb14ef0f37025 100644
--- a/pkgs/tools/graphics/mangohud/default.nix
+++ b/pkgs/tools/graphics/mangohud/default.nix
@@ -4,7 +4,6 @@
 , fetchFromGitHub
 , fetchurl
 , substituteAll
-, fetchpatch
 , coreutils
 , curl
 , glxinfo
@@ -34,6 +33,7 @@
 , gamescopeSupport ? true # build mangoapp and mangohudctl
 , lowerBitnessSupport ? stdenv.hostPlatform.isx86_64 # Support 32 bit on 64bit
 , nix-update-script
+, libxkbcommon
 }:
 
 let
@@ -94,14 +94,14 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "mangohud";
-  version = "0.7.1";
+  version = "0.7.2";
 
   src = fetchFromGitHub {
     owner = "flightlessmango";
     repo = "MangoHud";
     rev = "refs/tags/v${finalAttrs.version}";
     fetchSubmodules = true;
-    hash = "sha256-Gnq+1j+PFbeipAfXGnTq7wZdVQeG9R9vLAKZnZj7Bvs=";
+    hash = "sha256-cj/F/DWUDm2AHTJvHgkKa+KdIrfxPWLzI570Dp4VFhs=";
   };
 
   outputs = [ "out" "doc" "man" ];
@@ -140,13 +140,6 @@ stdenv.mkDerivation (finalAttrs: {
       libdbus = dbus.lib;
       inherit hwdata;
     })
-
-    # Add dep_vulkan to mangoapp and test_amdgpu to fix build failure
-    # TODO: Remove in next release
-    (fetchpatch {
-      url = "https://github.com/flightlessmango/MangoHud/commit/cba217ffaf93aea6acb4e59e3e46bf912f740ccf.patch";
-      hash = "sha256-1My4/EuSMpe3AFhhFOJr8rz/wnywp+BW+F4dSgxToe0=";
-    })
   ];
 
   postPatch = ''
@@ -202,6 +195,7 @@ stdenv.mkDerivation (finalAttrs: {
     glew
     glfw
     xorg.libXrandr
+    libxkbcommon
   ];
 
   doCheck = true;
diff --git a/pkgs/tools/graphics/mangohud/hardcode-dependencies.patch b/pkgs/tools/graphics/mangohud/hardcode-dependencies.patch
index 1c0f3a497fe6f..4b7954a3ee5e7 100644
--- a/pkgs/tools/graphics/mangohud/hardcode-dependencies.patch
+++ b/pkgs/tools/graphics/mangohud/hardcode-dependencies.patch
@@ -12,17 +12,18 @@ index 7379af1..4eef3fe 100644
          return false;
      }
 diff --git a/src/logging.cpp b/src/logging.cpp
-index ca33ee3..90d3638 100644
+index 7d4cb98..256128c 100644
 --- a/src/logging.cpp
 +++ b/src/logging.cpp
-@@ -26,7 +26,11 @@ string exec(string command) {
+@@ -27,8 +27,12 @@ string exec(string command) {
  #endif
      std::array<char, 128> buffer;
      std::string result;
 +
 +    char* originalPath = getenv("PATH");
 +    setenv("PATH", "@path@", 1);
-     std::unique_ptr<FILE, decltype(&pclose)> pipe(popen(command.c_str(), "r"), pclose);
+     auto deleter = [](FILE* ptr){ pclose(ptr); };
+     std::unique_ptr<FILE, decltype(deleter)> pipe(popen(command.c_str(), "r"), deleter);
 +    setenv("PATH", originalPath, 1);
      if (!pipe) {
        return "popen failed!";
diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-bamboo/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-bamboo/default.nix
index 286539174a95a..f28b636c47ebf 100644
--- a/pkgs/tools/inputmethods/ibus-engines/ibus-bamboo/default.nix
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-bamboo/default.nix
@@ -1,44 +1,35 @@
 { lib, stdenv
 , fetchFromGitHub
-, glib
-, gettext
 , xorg
 , pkg-config
 , wrapGAppsHook3
-, gtk3
 , go
 }:
 
 stdenv.mkDerivation rec {
   pname = "ibus-bamboo";
-  version = "0.8.2-rc18";
+  version = "0.8.4-rc3";
 
   src = fetchFromGitHub {
     owner = "BambooEngine";
     repo = pname;
     rev = "v" + lib.toUpper version;
-    sha256 = "sha256-5FSGPUJtUdYyeqJenvKaMIJcvon91I//62fnTCXcdig=";
+    sha256 = "sha256-P09gXuxbD4RJcXvgnRyFgSxt6NEXfpXJDPzl50ZtAxM=";
   };
 
   nativeBuildInputs = [
-    gettext
     pkg-config
     wrapGAppsHook3
     go
   ];
 
   buildInputs = [
-    glib
-    gtk3
-    xorg.libX11
-    xorg.xorgproto
     xorg.libXtst
-    xorg.libXi
   ];
 
   preConfigure = ''
     export GOCACHE="$TMPDIR/go-cache"
-    sed -i "s,/usr,$out," bamboo.xml
+    sed -i "s,/usr,$out," data/bamboo.xml
   '';
 
   makeFlags = [
@@ -52,6 +43,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/BambooEngine/ibus-bamboo";
     license = licenses.gpl3;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ superbo ];
+    maintainers = with maintainers; [ astronaut0212 ];
   };
 }
diff --git a/pkgs/tools/inputmethods/keymapper/default.nix b/pkgs/tools/inputmethods/keymapper/default.nix
index 874a651b66a7c..c751aa4d7445a 100644
--- a/pkgs/tools/inputmethods/keymapper/default.nix
+++ b/pkgs/tools/inputmethods/keymapper/default.nix
@@ -10,18 +10,18 @@
 , wayland
 , libxkbcommon
 , gtk3
-, libappindicator
+, libayatana-appindicator
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "keymapper";
-  version = "4.3.0";
+  version = "4.3.1";
 
   src = fetchFromGitHub {
     owner = "houmain";
     repo = "keymapper";
     rev = finalAttrs.version;
-    hash = "sha256-QfISsRm0j/VoTmpDQes5XQooXHcmjqRD/WS/nvPDl00=";
+    hash = "sha256-SjYPkcXBEHjK7zgwL6U4ltjvhKuGMZWbp55LtndU400=";
   };
 
   # all the following must be in nativeBuildInputs
@@ -35,7 +35,7 @@ stdenv.mkDerivation (finalAttrs: {
     libusb1
     libxkbcommon
     gtk3
-    libappindicator
+    libayatana-appindicator
   ];
 
   meta = {
diff --git a/pkgs/tools/misc/esphome/default.nix b/pkgs/tools/misc/esphome/default.nix
index f2078478a2376..7dc67ba2ef70f 100644
--- a/pkgs/tools/misc/esphome/default.nix
+++ b/pkgs/tools/misc/esphome/default.nix
@@ -19,14 +19,14 @@ let
 in
 python.pkgs.buildPythonApplication rec {
   pname = "esphome";
-  version = "2024.5.3";
+  version = "2024.5.4";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-iIkAVXyyHVmA3AK4JwuAA9483WOgLvDmOGzRA4MxPtE=";
+    hash = "sha256-UxNMHRQLrViK9ssFc0vHA/zqNw5yH8E6n+OAnq6vJdQ=";
   };
 
   nativeBuildInputs = with python.pkgs; [
diff --git a/pkgs/tools/misc/fluent-bit/default.nix b/pkgs/tools/misc/fluent-bit/default.nix
index 8784aab978f10..0fcb6692243b7 100644
--- a/pkgs/tools/misc/fluent-bit/default.nix
+++ b/pkgs/tools/misc/fluent-bit/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "fluent-bit";
-  version = "3.0.4";
+  version = "3.0.6";
 
   src = fetchFromGitHub {
     owner = "fluent";
     repo = "fluent-bit";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-XMfUMyoI2mK0imvz/5HTO8CHyKubyPGSTN69v79fkjg=";
+    hash = "sha256-o48qnyYAiV2gt81hC8/ja+/JWNFlMb47QsBt6BD7VjA=";
   };
 
   nativeBuildInputs = [ cmake flex bison ];
diff --git a/pkgs/tools/misc/gh-eco/default.nix b/pkgs/tools/misc/gh-eco/default.nix
deleted file mode 100644
index 329ef60c1b4e1..0000000000000
--- a/pkgs/tools/misc/gh-eco/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ lib
-, fetchFromGitHub
-, buildGoModule
-}:
-
-buildGoModule rec {
-  pname = "gh-eco";
-  version = "0.1.3";
-
-  src = fetchFromGitHub {
-    owner = "coloradocolby";
-    repo = "gh-eco";
-    rev = "v${version}";
-    sha256 = "sha256-TE1AymNlxjUtkBnBO/VBjYaqLuRyxL75s6sMidKUXTE=";
-  };
-
-  vendorHash = "sha256-K85fYV1uP/qSw8GPoG1u6UQo94vQOUo4cd9Ro+UApQ0=";
-
-  ldflags = [
-    "-s"
-    "-w"
-    "-X main.Version=${version}"
-  ];
-
-  meta = with lib; {
-    homepage = "https://github.com/coloradocolby/gh-eco";
-    description = "gh extension to explore the ecosystem";
-    license = licenses.mit;
-    maintainers = with maintainers; [ helium ];
-    mainProgram = "gh-eco";
-  };
-}
-
diff --git a/pkgs/tools/misc/lazydocker/default.nix b/pkgs/tools/misc/lazydocker/default.nix
index 59a6ad16ce9d5..9c6f4481c9e08 100644
--- a/pkgs/tools/misc/lazydocker/default.nix
+++ b/pkgs/tools/misc/lazydocker/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "lazydocker";
-  version = "0.23.1";
+  version = "0.23.3";
 
   src = fetchFromGitHub {
     owner = "jesseduffield";
     repo = "lazydocker";
     rev = "v${version}";
-    sha256 = "sha256-nW3eaSisXLqoWZ+5YLLCfC1k4lTXWd5ZqY2xTM/I0PY=";
+    sha256 = "sha256-1nw0X8sZBtBsxlEUDVYMAinjMEMlIlzjJ4s+WApeE6o=";
   };
 
   vendorHash = null;
diff --git a/pkgs/tools/misc/plantuml/default.nix b/pkgs/tools/misc/plantuml/default.nix
index 8f4d82f2ea49e..83476bd995735 100644
--- a/pkgs/tools/misc/plantuml/default.nix
+++ b/pkgs/tools/misc/plantuml/default.nix
@@ -8,11 +8,11 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "plantuml";
-  version = "1.2024.4";
+  version = "1.2024.5";
 
   src = fetchurl {
     url = "https://github.com/plantuml/plantuml/releases/download/v${finalAttrs.version}/plantuml-pdf-${finalAttrs.version}.jar";
-    hash = "sha256-8Xs7fyYr4CvXNO+g2g+7LLObUUVKxmt/27/wHdCwSIE=";
+    hash = "sha256-YayIedHIIpecVF7BZSvBTp66Eb7He+l+1RCir5KuL28=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/misc/trash-cli/default.nix b/pkgs/tools/misc/trash-cli/default.nix
index 7f89f7a12cdee..e807bff429d99 100644
--- a/pkgs/tools/misc/trash-cli/default.nix
+++ b/pkgs/tools/misc/trash-cli/default.nix
@@ -1,14 +1,14 @@
-{ lib, fetchFromGitHub, installShellFiles, python3Packages }:
+{ lib, fetchFromGitHub, installShellFiles, nix-update-script, python3Packages }:
 
 python3Packages.buildPythonApplication rec {
   pname = "trash-cli";
-  version = "0.24.4.17";
+  version = "0.24.5.26";
 
   src = fetchFromGitHub {
     owner = "andreafrancia";
     repo = "trash-cli";
     rev = version;
-    hash = "sha256-pXDqn+QuhTE12zXq6A4GSGSCtYJ6hBahv2p9aYQXxaI=";
+    hash = "sha256-ltuMnxtG4jTTSZd6ZHWl8wI0oQMMFqW0HAPetZMfGtc=";
   };
 
   propagatedBuildInputs = with python3Packages; [ psutil six ];
@@ -56,6 +56,8 @@ python3Packages.buildPythonApplication rec {
     done
   '';
 
+  passthru.updateScript = nix-update-script { };
+
   meta = with lib; {
     homepage = "https://github.com/andreafrancia/trash-cli";
     description = "Command line interface to the freedesktop.org trashcan";
diff --git a/pkgs/tools/misc/you-get/default.nix b/pkgs/tools/misc/you-get/default.nix
index 225c37e4ba464..65ebf26450a02 100644
--- a/pkgs/tools/misc/you-get/default.nix
+++ b/pkgs/tools/misc/you-get/default.nix
@@ -8,7 +8,7 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "you-get";
-  version = "0.4.1650";
+  version = "0.4.1700";
   format = "setuptools";
 
   # Tests aren't packaged, but they all hit the real network so
@@ -17,7 +17,7 @@ python3.pkgs.buildPythonApplication rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-s8lEz3pjzEaMzMiBbc5/wAjC5rW6Uq7+XOIIGBijrUc=";
+    sha256 = "sha256-XNIUkgEqRGrBtSxvfkSUSqxltZ6ZdkWoTc9kz4BD6Zw=";
   };
 
   patches = [
diff --git a/pkgs/tools/networking/croc/default.nix b/pkgs/tools/networking/croc/default.nix
index 6772ccb750f14..36d92d275b7d9 100644
--- a/pkgs/tools/networking/croc/default.nix
+++ b/pkgs/tools/networking/croc/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "croc";
-  version = "9.6.16";
+  version = "10.0.5";
 
   src = fetchFromGitHub {
     owner = "schollz";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-rAOWiu0f9f1v1oD5HI/kl1knoHkU2LgS3D2qsdd98y4=";
+    hash = "sha256-JrlNvfOxoOhvsjaRacGLZAc4r9HG69UdjFjb3GnSnW0=";
   };
 
   vendorHash = "sha256-SxdN1IyQd/DLI8ZXyCWsW3JLi4dlGSvpr+ub/Oqkw70=";
@@ -20,6 +20,7 @@ buildGoModule rec {
       local-relay = callPackage ./test-local-relay.nix { };
     };
   };
+
   meta = with lib; {
     description = "Easily and securely send things from one computer to another";
     longDescription = ''
diff --git a/pkgs/tools/networking/croc/test-local-relay.nix b/pkgs/tools/networking/croc/test-local-relay.nix
index a3aa0f3c966df..90d335885e7fc 100644
--- a/pkgs/tools/networking/croc/test-local-relay.nix
+++ b/pkgs/tools/networking/croc/test-local-relay.nix
@@ -6,15 +6,20 @@ stdenv.mkDerivation {
   nativeBuildInputs = [ croc ];
 
   buildCommand = ''
-    HOME=$(mktemp -d)
+    HOME="$(mktemp -d)"
     # start a local relay
     croc relay --ports 11111,11112 &
+
+    export CROC_SECRET="sN3nx4hGLeihmn8G"
+
     # start sender in background
     MSG="See you later, alligator!"
     croc --relay localhost:11111 send --code correct-horse-battery-staple --text "$MSG" &
+
     # wait for things to settle
     sleep 1
     MSG2=$(croc --relay localhost:11111 --yes correct-horse-battery-staple)
+
     # compare
     [ "$MSG" = "$MSG2" ] && touch $out
   '';
diff --git a/pkgs/tools/networking/lychee/default.nix b/pkgs/tools/networking/lychee/default.nix
index 610869897b7b8..0763ee3021096 100644
--- a/pkgs/tools/networking/lychee/default.nix
+++ b/pkgs/tools/networking/lychee/default.nix
@@ -1,4 +1,5 @@
-{ lib
+{ callPackage
+, lib
 , stdenv
 , rustPlatform
 , fetchFromGitHub
@@ -6,6 +7,7 @@
 , openssl
 , Security
 , SystemConfiguration
+, testers
 }:
 
 rustPlatform.buildRustPackage rec {
@@ -41,6 +43,15 @@ rustPlatform.buildRustPackage rec {
     "--skip=src/lib.rs"
   ];
 
+  passthru.tests = {
+    # NOTE: These assume that testers.lycheeLinkCheck uses this exact derivation.
+    #       Which is true most of the time, but not necessarily after overriding.
+    ok = callPackage ./tests/ok.nix { };
+    fail = callPackage ./tests/fail.nix { };
+    fail-emptyDirectory = callPackage ./tests/fail-emptyDirectory.nix { };
+    network = testers.runNixOSTest ./tests/network.nix;
+  };
+
   meta = with lib; {
     description = "A fast, async, stream-based link checker written in Rust";
     homepage = "https://github.com/lycheeverse/lychee";
diff --git a/pkgs/tools/networking/lychee/tests/fail-emptyDirectory.nix b/pkgs/tools/networking/lychee/tests/fail-emptyDirectory.nix
new file mode 100644
index 0000000000000..9db4b23b1bc96
--- /dev/null
+++ b/pkgs/tools/networking/lychee/tests/fail-emptyDirectory.nix
@@ -0,0 +1,28 @@
+{ runCommand, testers, emptyDirectory }:
+let
+  sitePkg = runCommand "site" { } ''
+    dist=$out/dist
+    mkdir -p $dist
+    echo "<html><body><a href=\"https://example.com/foo\">foo</a></body></html>" > $dist/index.html
+    echo "<html><body></body></html>" > $dist/foo.html
+  '';
+  check = testers.lycheeLinkCheck {
+    site = sitePkg + "/dist";
+    remap = {
+      # Normally would recommend to append a subpath that hints why it's forbidden; see example in docs.
+      # However, we also want to test that a package is converted to a string *before*
+      # it's tested whether it's a store path. Mistake made during development caused:
+      # cannot check URI: InvalidUrlRemap("The remapping pattern must produce a valid URL, but it is not: /nix/store/4d0ix...empty-directory/foo
+      "https://example.com" = emptyDirectory;
+    };
+  };
+
+  failure = testers.testBuildFailure check;
+in
+  runCommand "link-check-fail" { inherit failure; } ''
+    # The details of the message might change, but we have to make sure the
+    # correct error is reported, so that we know it's not something else that
+    # went wrong.
+    grep 'empty-directory/foo.*Cannot find file' $failure/testBuildFailure.log >/dev/null
+    touch $out
+  ''
diff --git a/pkgs/tools/networking/lychee/tests/fail.nix b/pkgs/tools/networking/lychee/tests/fail.nix
new file mode 100644
index 0000000000000..5a83814d3c443
--- /dev/null
+++ b/pkgs/tools/networking/lychee/tests/fail.nix
@@ -0,0 +1,21 @@
+{ runCommand, testers }:
+let
+  sitePkg = runCommand "site" { } ''
+    dist=$out/dist
+    mkdir -p $dist
+    echo "<html><body><a href=\"https://example.com/foo.html#foos-missing-anchor\">foo</a></body></html>" > $dist/index.html
+    echo "<html><body><a href=\".\">index</a></body></html>" > $dist/foo.html
+  '';
+
+  linkCheck = testers.lycheeLinkCheck rec {
+    site = sitePkg + "/dist";
+    remap = { "https://exampl[e]\\.com" = site; };
+  };
+
+  failure = testers.testBuildFailure linkCheck;
+
+in
+  runCommand "link-check-fail" { inherit failure; } ''
+    grep -F foos-missing-anchor $failure/testBuildFailure.log >/dev/null
+    touch $out
+  ''
diff --git a/pkgs/tools/networking/lychee/tests/network.nix b/pkgs/tools/networking/lychee/tests/network.nix
new file mode 100644
index 0000000000000..8d7f908a58053
--- /dev/null
+++ b/pkgs/tools/networking/lychee/tests/network.nix
@@ -0,0 +1,66 @@
+{ config, hostPkgs, lib, ... }:
+let
+  sitePkg = hostPkgs.runCommand "site" { } ''
+    dist=$out/dist
+    mkdir -p $dist
+    echo "<html><body><a href=\"http://example/foo.html\">foo</a></body></html>" > $dist/index.html
+    echo "<html><body><a href=\".\">index</a></body></html>" > $dist/foo.html
+  '';
+  check = config.node.pkgs.testers.lycheeLinkCheck {
+    site = sitePkg;
+  };
+in
+{
+  name = "testers-lychee-link-check-run";
+  nodes.client = { ... }: { };
+  nodes.example = {
+    networking.firewall.allowedTCPPorts = [ 80 ];
+    services.nginx = {
+      enable = true;
+      virtualHosts."example" = {
+        locations."/" = {
+          root = "/var/www/example";
+          index = "index.html";
+        };
+      };
+    };
+
+  };
+  testScript = ''
+    start_all()
+
+    # SETUP
+
+    example.succeed("""
+        mkdir -p /var/www/example
+        echo '<h1>hi</h1>' > /var/www/example/index.html
+    """)
+    client.wait_until_succeeds("""
+        curl --fail -v http://example
+    """)
+
+    # FAILURE CASE
+
+    client.succeed("""
+        exec 1>&2
+        r=0
+        ${lib.getExe check.online} || {
+          r=$?
+        }
+        if [[ $r -ne 2 ]]; then
+            echo "lycheeLinkCheck unexpected exit code $r"
+            exit 1
+        fi
+    """)
+
+    # SUCCESS CASE
+
+    example.succeed("""
+        echo '<h1>foo</h1>' > /var/www/example/foo.html
+    """)
+
+    client.succeed("""
+        ${lib.getExe check.online}
+    """)
+  '';
+}
diff --git a/pkgs/tools/networking/lychee/tests/ok.nix b/pkgs/tools/networking/lychee/tests/ok.nix
new file mode 100644
index 0000000000000..6a6c0b9c87b49
--- /dev/null
+++ b/pkgs/tools/networking/lychee/tests/ok.nix
@@ -0,0 +1,12 @@
+{ runCommand, testers }:
+let
+  sitePkg = runCommand "site" { } ''
+    dist=$out/dist
+    mkdir -p $dist
+    echo "<html><body><a href=\"https://example.com/foo.html\">foo</a><a href=\"https://nixos.org/this-is-ignored.html\">bar</a></body></html>" > $dist/index.html
+    echo "<html><body><a href=\".\">index</a></body></html>" > $dist/foo.html
+  '';
+in testers.lycheeLinkCheck rec {
+  site = sitePkg + "/dist";
+  remap = { "https://example.com" = site; };
+}
diff --git a/pkgs/tools/networking/miniupnpc/default.nix b/pkgs/tools/networking/miniupnpc/default.nix
index 0b766ea872276..c29a2fb150c23 100644
--- a/pkgs/tools/networking/miniupnpc/default.nix
+++ b/pkgs/tools/networking/miniupnpc/default.nix
@@ -1,6 +1,6 @@
 { lib
 , stdenv
-, fetchurl
+, fetchFromGitHub
 , cmake
 }:
 
@@ -8,14 +8,15 @@ stdenv.mkDerivation rec {
   pname = "miniupnpc";
   version = "2.2.7";
 
-  src = fetchurl {
-    urls = [
-      "https://miniupnp.tuxfamily.org/files/${pname}-${version}.tar.gz"
-      "http://miniupnp.free.fr/files/${pname}-${version}.tar.gz"
-    ];
-    sha256 = "sha256-sMOicFaED9DskyilqbrD3F4OxtLoczNJz1d7CqHnCsE=";
+  src = fetchFromGitHub {
+    owner = "miniupnp";
+    repo = "miniupnp";
+    rev = "miniupnpc_${lib.replaceStrings ["."] ["_"] version}";
+    hash = "sha256-cIijY1NcdF169tibfB13845UT9ZoJ/CZ+XLES9ctWTY=";
   };
 
+  sourceRoot = "${src.name}/miniupnpc";
+
   nativeBuildInputs = [ cmake ];
 
   doCheck = !stdenv.isFreeBSD;
diff --git a/pkgs/tools/networking/oneshot/default.nix b/pkgs/tools/networking/oneshot/default.nix
index 541d5270dcd11..f350cdf241c84 100644
--- a/pkgs/tools/networking/oneshot/default.nix
+++ b/pkgs/tools/networking/oneshot/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "oneshot";
-  version = "2.0.2";
+  version = "2.1.0";
 
   src = fetchFromGitHub {
     owner = "forestnode-io";
     repo = "oneshot";
     rev = "v${version}";
-    hash = "sha256-aIbKXBJNcBbYJRzETT0mkaqTRo+/8o6z882G21V74rg=";
+    hash = "sha256-zGeXc/dzll5fYURufljVBbTyVhrI9pkqLufOB8ZdV0E=";
   };
 
   vendorHash = "sha256-TktSQMIHYXF9eyY6jyfE31WLXEq7VZU3qnVIMGjMMcA=";
diff --git a/pkgs/tools/networking/sish/default.nix b/pkgs/tools/networking/sish/default.nix
index e85e6c80f4d8e..be17d6fe885be 100644
--- a/pkgs/tools/networking/sish/default.nix
+++ b/pkgs/tools/networking/sish/default.nix
@@ -7,13 +7,13 @@
 
 buildGoModule rec {
   pname = "sish";
-  version = "2.15.0";
+  version = "2.16.0";
 
   src = fetchFromGitHub {
     owner = "antoniomika";
     repo = "sish";
     rev = "refs/tags/v${version}";
-    hash = "sha256-70FKq36q/wNMEmaFOXY9gt24gXXbdpQJB1F7wQwYigE=";
+    hash = "sha256-YGeUiuLT67UI5whDAKcDFvYGnCIBkX4oCtKq47Qnw1k=";
   };
 
   vendorHash = "sha256-hlwJE31osz9MgZ0vCx4L6vo4PuGh0NgiPJgDq65fZ4U=";
diff --git a/pkgs/tools/networking/zerotierone/default.nix b/pkgs/tools/networking/zerotierone/default.nix
index f9415055a537d..fa2c86d6f83a9 100644
--- a/pkgs/tools/networking/zerotierone/default.nix
+++ b/pkgs/tools/networking/zerotierone/default.nix
@@ -65,6 +65,19 @@ in stdenv.mkDerivation {
 
   enableParallelBuilding = true;
 
+  # Ensure Rust compiles for the right target
+  env.CARGO_BUILD_TARGET = stdenv.hostPlatform.rust.rustcTarget;
+
+  # Cargo won't compile to target/release but to target/<RUST_TARGET>/release when a target is
+  # explicitly defined. The build-system however expects target/release. Hence we just symlink from
+  # the latter to the former.
+  preBuild = ''
+    mkdir -p rustybits/target/release
+    ln -rs \
+      ./rustybits/target/${stdenv.hostPlatform.rust.rustcTarget}/release/libzeroidc.a \
+      ./rustybits/target/release/
+  '';
+
   buildFlags = [ "all" "selftest" ];
 
   doCheck = stdenv.hostPlatform == stdenv.buildPlatform;
diff --git a/pkgs/tools/package-management/nix/common.nix b/pkgs/tools/package-management/nix/common.nix
index b04c59369f185..9005cd594dbe5 100644
--- a/pkgs/tools/package-management/nix/common.nix
+++ b/pkgs/tools/package-management/nix/common.nix
@@ -6,6 +6,7 @@
 , src ? fetchFromGitHub { owner = "NixOS"; repo = "nix"; rev = version; inherit hash; }
 , patches ? [ ]
 , maintainers ? with lib.maintainers; [ eelco lovesegfault artturin ma27 ]
+, self_attribute_name
 }@args:
 assert (hash == null) -> (src != null);
 let
@@ -249,7 +250,7 @@ self = stdenv.mkDerivation {
     perl-bindings = perl.pkgs.toPerlModule (callPackage ./nix-perl.nix { nix = self; inherit Security; });
 
     tests = {
-      nixi686 = pkgsi686Linux.nixVersions.${"nix_${lib.versions.major version}_${lib.versions.minor version}"};
+      nixi686 = pkgsi686Linux.nixVersions.${self_attribute_name};
     };
   };
 
diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix
index 5d3698a97e81f..1eeecab4e7ec7 100644
--- a/pkgs/tools/package-management/nix/default.nix
+++ b/pkgs/tools/package-management/nix/default.nix
@@ -138,6 +138,7 @@ in lib.makeExtensible (self: ({
     patches = [
       patch-monitorfdhup
     ];
+    self_attribute_name = "nix_2_3";
     maintainers = with lib.maintainers; [ flokli raitobezarius ];
   }).override { boehmgc = boehmgc-nix_2_3; }).overrideAttrs {
     # https://github.com/NixOS/nix/issues/10222
@@ -148,37 +149,43 @@ in lib.makeExtensible (self: ({
   nix_2_18 = common {
     version = "2.18.2";
     hash = "sha256-8gNJlBlv2bnffRg0CejiBXc6U/S6YeCLAdHrYvTPyoY=";
+    self_attribute_name = "nix_2_18";
   };
 
   nix_2_19 = common {
     version = "2.19.4";
     hash = "sha256-qXjyVmDm1SFWk1az3GWIsJ0fVG0nWet2FdldFOnUydI=";
+    self_attribute_name = "nix_2_19";
   };
 
   nix_2_20 = common {
     version = "2.20.6";
     hash = "sha256-BSl8Jijq1A4n1ToQy0t0jDJCXhJK+w1prL8QMHS5t54=";
+    self_attribute_name = "nix_2_20";
   };
 
   nix_2_21 = common {
     version = "2.21.2";
     hash = "sha256-ObaVDDPtnOeIE0t7m4OVk5G+OS6d9qYh+ktK67Fe/zE=";
+    self_attribute_name = "nix_2_21";
   };
 
   nix_2_22 = common {
     version = "2.22.1";
     hash = "sha256-5Q1WkpTWH7fkVfYhHDc5r0A+Vc+K5xB1UhzrLzBCrB8=";
+    self_attribute_name = "nix_2_22";
   };
 
   git = common rec {
     version = "2.23.0";
-    suffix = "pre20240520_${lib.substring 0 8 src.rev}";
+    suffix = "pre20240526_${lib.substring 0 8 src.rev}";
     src = fetchFromGitHub {
       owner = "NixOS";
       repo = "nix";
-      rev = "b7709d14a5b3a76d1c5b35b48ea3ed2de6c3dc28";
-      hash = "sha256-v+M9oeOcfgFXVoXqdpaskTHNA0T3Pr/8IOJtCggh+To=";
+      rev = "7de033d63fbcf97aad164e131ae3a85e5dcebce7";
+      hash = "sha256-LtsyUsVpr9sM0n1L7MeTw8/6wGtGeXFvKAbPR5lqN8Q=";
     };
+    self_attribute_name = "git";
   };
 
   latest = self.nix_2_22;
diff --git a/pkgs/tools/security/cnspec/default.nix b/pkgs/tools/security/cnspec/default.nix
index d534a4977a14b..f3dbbdd38298b 100644
--- a/pkgs/tools/security/cnspec/default.nix
+++ b/pkgs/tools/security/cnspec/default.nix
@@ -6,18 +6,18 @@
 
 buildGoModule rec {
   pname = "cnspec";
-  version = "11.5.0";
+  version = "11.6.0";
 
   src = fetchFromGitHub {
     owner = "mondoohq";
     repo = "cnspec";
     rev = "refs/tags/v${version}";
-    hash = "sha256-MQrWZ3nFE/gEU7/AoSIr91LMteo/+68MDwiJBxiosvM=";
+    hash = "sha256-aNYeze2XnrUHaHG+WdRech30Lx5amD5Sk8iQCbD4YTE=";
   };
 
   proxyVendor = true;
 
-  vendorHash = "sha256-1ytyebfUyeAQcx1HPxn6X0p4t5VlB4uflZJF1f+HhPU=";
+  vendorHash = "sha256-9pretwgZy6kkjcy0vK6DiR+ih6diCewrTXu4Y92OgDU=";
 
   subPackages = [ "apps/cnspec" ];
 
diff --git a/pkgs/tools/security/faraday-agent-dispatcher/default.nix b/pkgs/tools/security/faraday-agent-dispatcher/default.nix
index 8c390f2b6f7aa..2a44e8186ed1b 100644
--- a/pkgs/tools/security/faraday-agent-dispatcher/default.nix
+++ b/pkgs/tools/security/faraday-agent-dispatcher/default.nix
@@ -5,31 +5,34 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "faraday-agent-dispatcher";
-  version = "3.3.0";
+  version = "3.4.1";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "infobyte";
     repo = "faraday_agent_dispatcher";
     rev = "refs/tags/${version}";
-    hash = "sha256-rpi8S6pmei8MaACnfmOKFK+nNpljoMglu2uk75zvs9I=";
+    hash = "sha256-b62WO1+5EWzsTCzeZPX9T+ho8Sig46lH/9dPmGGhPWA=";
   };
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace '"pytest-runner",' ""
+      --replace-fail '"pytest-runner",' ""
   '';
 
   pythonRelaxDeps = [
     "python-socketio"
   ];
 
+  build-system = with python3.pkgs; [
+    setuptools-scm
+  ];
+
   nativeBuildInputs = with python3.pkgs; [
     pythonRelaxDepsHook
-    setuptools-scm
   ];
 
-  propagatedBuildInputs = with python3.pkgs; [
+  dependencies = with python3.pkgs; [
     aiohttp
     click
     faraday-agent-parameters-types
@@ -71,10 +74,10 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Tool to send result from tools to the Faraday Platform";
-    mainProgram = "faraday-dispatcher";
     homepage = "https://github.com/infobyte/faraday_agent_dispatcher";
     changelog = "https://github.com/infobyte/faraday_agent_dispatcher/releases/tag/${version}";
-    license = with licenses; [ gpl3Only ];
+    license = licenses.gpl3Only;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "faraday-dispatcher";
   };
 }
diff --git a/pkgs/tools/security/ghidra/build.nix b/pkgs/tools/security/ghidra/build.nix
index c0a8dca4cd0e8..ba23647c9c2db 100644
--- a/pkgs/tools/security/ghidra/build.nix
+++ b/pkgs/tools/security/ghidra/build.nix
@@ -4,10 +4,12 @@
 , callPackage
 , gradle_7
 , perl
-, makeWrapper
+, makeBinaryWrapper
 , openjdk17
 , unzip
 , makeDesktopItem
+, copyDesktopItems
+, desktopToDarwinBundle
 , icoutils
 , xcbuild
 , protobuf
@@ -53,15 +55,6 @@ let
     ./0003-Remove-build-datestamp.patch
   ];
 
-  desktopItem = makeDesktopItem {
-    name = "ghidra";
-    exec = "ghidra";
-    icon = "ghidra";
-    desktopName = "Ghidra";
-    genericName = "Ghidra Software Reverse Engineering Suite";
-    categories = [ "Development" ];
-  };
-
   postPatch = ''
     # Set name of release (eg. PUBLIC, DEV, etc.)
     sed -i -e 's/application\.release\.name=.*/application.release.name=${releaseName}/' Ghidra/application.properties
@@ -145,9 +138,28 @@ HERE
 in stdenv.mkDerivation (finalAttrs: {
   inherit pname version src patches postPatch;
 
+  desktopItems = [
+    (makeDesktopItem {
+      name = "ghidra";
+      exec = "ghidra";
+      icon = "ghidra";
+      desktopName = "Ghidra";
+      genericName = "Ghidra Software Reverse Engineering Suite";
+      categories = [ "Development" ];
+      terminal = false;
+    })
+  ];
+
   nativeBuildInputs = [
-    gradle unzip makeWrapper icoutils protobuf
-  ] ++ lib.optional stdenv.isDarwin xcbuild;
+    gradle
+    unzip
+    makeBinaryWrapper
+    copyDesktopItems
+    protobuf
+  ] ++ lib.optionals stdenv.isDarwin [
+    xcbuild
+    desktopToDarwinBundle
+  ];
 
   dontStrip = true;
 
@@ -169,6 +181,7 @@ in stdenv.mkDerivation (finalAttrs: {
 
   installPhase = ''
     runHook preInstall
+
     mkdir -p "${pkg_path}" "$out/share/applications"
 
     ZIP=build/dist/$(ls build/dist)
@@ -178,15 +191,13 @@ in stdenv.mkDerivation (finalAttrs: {
     mv "${pkg_path}"/*/* "${pkg_path}"
     rmdir "''${f[@]}"
 
-    ln -s ${desktopItem}/share/applications/* $out/share/applications
-
-    icotool -x "Ghidra/RuntimeScripts/Windows/support/ghidra.ico"
-    rm ghidra_4_40x40x32.png
-    for f in ghidra_*.png; do
-      res=$(basename "$f" ".png" | cut -d"_" -f3 | cut -d"x" -f1-2)
-      mkdir -pv "$out/share/icons/hicolor/$res/apps"
-      mv "$f" "$out/share/icons/hicolor/$res/apps/ghidra.png"
+    for f in Ghidra/Framework/Gui/src/main/resources/images/GhidraIcon*.png; do
+      res=$(basename "$f" ".png" | cut -d"_" -f3 | cut -c11-)
+      install -Dm444 "$f" "$out/share/icons/hicolor/''${res}x''${res}/apps/ghidra.png"
     done;
+    # improved macOS icon support
+    install -Dm444 Ghidra/Framework/Gui/src/main/resources/images/GhidraIcon64.png $out/share/icons/hicolor/32x32@2/apps/ghidra.png
+
     runHook postInstall
   '';
 
@@ -206,7 +217,8 @@ in stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A software reverse engineering (SRE) suite of tools developed by NSA's Research Directorate in support of the Cybersecurity mission";
+    changelog = "https://htmlpreview.github.io/?https://github.com/NationalSecurityAgency/ghidra/blob/Ghidra_${finalAttrs.version}_build/Ghidra/Configurations/Public_Release/src/global/docs/ChangeHistory.html";
+    description = "Software reverse engineering (SRE) suite of tools";
     mainProgram = "ghidra";
     homepage = "https://ghidra-sre.org/";
     platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
diff --git a/pkgs/tools/security/ghidra/with-extensions.nix b/pkgs/tools/security/ghidra/with-extensions.nix
index 8ce4a04c2d460..38165ed94f711 100644
--- a/pkgs/tools/security/ghidra/with-extensions.nix
+++ b/pkgs/tools/security/ghidra/with-extensions.nix
@@ -1,7 +1,9 @@
 { lib
+, stdenv
 , callPackage
 , symlinkJoin
 , makeBinaryWrapper
+, desktopToDarwinBundle
 , ghidra
 }:
 
@@ -19,10 +21,14 @@ let
   withExtensions = f: (symlinkJoin {
     name = "${ghidra.pname}-with-extensions-${lib.getVersion ghidra}";
     paths = (f allExtensions);
-    nativeBuildInputs = [ makeBinaryWrapper ];
+    nativeBuildInputs = [ makeBinaryWrapper ]
+      ++ lib.optional stdenv.hostPlatform.isDarwin desktopToDarwinBundle;
     postBuild = ''
       makeWrapper '${ghidra}/bin/ghidra' "$out/bin/ghidra" \
         --set NIX_GHIDRAHOME "$out/lib/ghidra/Ghidra"
+      ln -s ${ghidra}/share $out/share
+    '' + lib.optionalString stdenv.hostPlatform.isDarwin ''
+      convertDesktopFiles $prefix
     '';
     inherit (ghidra) meta;
   });
diff --git a/pkgs/tools/security/httpx/default.nix b/pkgs/tools/security/httpx/default.nix
index a0a6c0e9e9e21..7b791fda2ebc4 100644
--- a/pkgs/tools/security/httpx/default.nix
+++ b/pkgs/tools/security/httpx/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "httpx";
-  version = "1.6.1";
+  version = "1.6.2";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = "httpx";
     rev = "refs/tags/v${version}";
-    hash = "sha256-LW5zJqJqUD5v50OZuPqMYefrcIsjEIr7a4rogveiLA0=";
+    hash = "sha256-xNKfqPPTsnEzDapBZpfmTPWc6dirOqxUDYOOdIVUzOY=";
   };
 
-  vendorHash = "sha256-A82eMV9MegJt3wAkK0YbyMQqt7zlX01DmZ2z3YIGrQ8=";
+  vendorHash = "sha256-jD5LQ9HZbWpoXgnyA7RacaDdyBPMbK02PhKQT+1il4Q=";
 
   subPackages = [ "cmd/httpx" ];
 
diff --git a/pkgs/tools/security/jwt-cli/default.nix b/pkgs/tools/security/jwt-cli/default.nix
index 6d970dca9519a..1e4143495bfa6 100644
--- a/pkgs/tools/security/jwt-cli/default.nix
+++ b/pkgs/tools/security/jwt-cli/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "jwt-cli";
-  version = "6.0.0";
+  version = "6.1.0";
 
   src = fetchFromGitHub {
     owner = "mike-engel";
     repo = pname;
     rev = version;
-    sha256 = "sha256-EzXpiJGTAlTDHJwl7FwIsDHMqStj2PLD1PHmv0flBKc=";
+    sha256 = "sha256-iEZlT0Kyx+z/KYDw/YI3rb4eIi98Q48hEoK+6eRpJbM=";
   };
 
-  cargoHash = "sha256-l1W+eYuKnMPN2wPhYPXo5ixUz2bX+FZnDazk+FbxquU=";
+  cargoHash = "sha256-DXyjdwVJUQpOz/Pctl35D00oSgrfehUg8wYyLdttiew=";
 
   buildInputs = lib.optional stdenv.isDarwin Security;
 
diff --git a/pkgs/tools/security/kubescape/default.nix b/pkgs/tools/security/kubescape/default.nix
index bfc482613d547..d0f8415cbedbc 100644
--- a/pkgs/tools/security/kubescape/default.nix
+++ b/pkgs/tools/security/kubescape/default.nix
@@ -11,17 +11,17 @@
 
 buildGoModule rec {
   pname = "kubescape";
-  version = "3.0.10";
+  version = "3.0.11";
 
   src = fetchFromGitHub {
     owner = "kubescape";
     repo = "kubescape";
     rev = "refs/tags/v${version}";
-    hash = "sha256-r6w2Cfyjxqf/1DMBGgmE8Oh/WnvBOa7mAEGXnPjk1Pg=";
+    hash = "sha256-hxHVQ8Ssvwq5lk+b7v1kLrYeGSfJEj/FudSd0V3tUnQ=";
     fetchSubmodules = true;
   };
 
-  vendorHash = "sha256-WPa6IKPjdBtoHYKA2yYtaI1LCbkyv374fcThxbSEKxo=";
+  vendorHash = "sha256-iwcwhBX/Kl55G8SrI1mmkP5bj8BrLAGBdk3UnK1Xfag=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/tools/security/oauth2c/default.nix b/pkgs/tools/security/oauth2c/default.nix
index 292ac255b3a04..1289eb05f2154 100644
--- a/pkgs/tools/security/oauth2c/default.nix
+++ b/pkgs/tools/security/oauth2c/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "oauth2c";
-  version = "1.13.0";
+  version = "1.14.0";
 
   src = fetchFromGitHub {
     owner = "cloudentity";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-NNVHEV8qnPv+xXFzPsh1V+fSOQZxpADCRPIUsak5M5M=";
+    hash = "sha256-sxaInCsW3MKOYV3TscJYGwzSncg5TUW9YVheuxoO1h4=";
   };
 
-  vendorHash = "sha256-x6cb19rKJXm+EIxJeykhpFmUYOPb/VljzCOVjorP5MQ=";
+  vendorHash = "sha256-PdLh/J0HUvr1JjW/ew5PQe9TJNykI4tJhlRoVjRT/hg=";
 
   doCheck = false; # tests want to talk to oauth2c.us.authz.cloudentity.io
 
diff --git a/pkgs/tools/security/smbmap/default.nix b/pkgs/tools/security/smbmap/default.nix
index 772df0a66ef91..5075c6ac38386 100644
--- a/pkgs/tools/security/smbmap/default.nix
+++ b/pkgs/tools/security/smbmap/default.nix
@@ -1,21 +1,24 @@
-{ lib
-, fetchFromGitHub
-, python3
+{
+  lib,
+  fetchFromGitHub,
+  python3,
 }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "smbmap";
-  version = "1.10.2";
-  format = "setuptools";
+  version = "1.10.3";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "ShawnDEvans";
     repo = "smbmap";
     rev = "refs/tags/v${version}";
-    hash = "sha256-6+kO2Wfz3gGABS4fGxoebCubzvFAaJIGnMPA+k1mckc=";
+    hash = "sha256-ZzNiNAGf0FYfo3Zow4crWFQQb4+GhUeHpwJfuM5P9Ds=";
   };
 
-  propagatedBuildInputs = with python3.pkgs; [
+  build-system = with python3.pkgs; [ setuptools ];
+
+  dependencies = with python3.pkgs; [
     impacket
     pyasn1
     pycrypto
@@ -26,16 +29,14 @@ python3.pkgs.buildPythonApplication rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "smbmap"
-  ];
+  pythonImportsCheck = [ "smbmap" ];
 
   meta = with lib; {
     description = "SMB enumeration tool";
-    mainProgram = "smbmap";
     homepage = "https://github.com/ShawnDEvans/smbmap";
     changelog = "https://github.com/ShawnDEvans/smbmap/releases/tag/v${version}";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "smbmap";
   };
 }
diff --git a/pkgs/tools/security/trufflehog/default.nix b/pkgs/tools/security/trufflehog/default.nix
index d0e9cb39a2321..f351436f65278 100644
--- a/pkgs/tools/security/trufflehog/default.nix
+++ b/pkgs/tools/security/trufflehog/default.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "trufflehog";
-  version = "3.76.3";
+  version = "3.77.0";
 
   src = fetchFromGitHub {
     owner = "trufflesecurity";
     repo = "trufflehog";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Esw9O0OO6a4BwN/HA8WTDUX4xcwN6Jdu1io4DYko54A=";
+    hash = "sha256-X/JqYBgh2wqJ992VBPsx8p5NNOQQV4alJbCoqMbmWkY=";
   };
 
-  vendorHash = "sha256-vHHLHXfeRl9aEBqFidGCkBLs/ifwOysbUSYbQaTKcPU=";
+  vendorHash = "sha256-S37sIRxLnzGYQ56F8/GNWn7n0Ypb9it3wWx1X0am+Ac=";
 
   proxyVendor = true;
 
diff --git a/pkgs/tools/text/ansifilter/default.nix b/pkgs/tools/text/ansifilter/default.nix
index e2fd695d41ecc..686b8c9f4171e 100644
--- a/pkgs/tools/text/ansifilter/default.nix
+++ b/pkgs/tools/text/ansifilter/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
       Tool to remove ANSI or convert them to another format
       (HTML, TeX, LaTeX, RTF, Pango or BBCode)
     '';
-    homepage = "http://www.andre-simon.de/doku/ansifilter/en/ansifilter.php";
+    homepage = "http://www.andre-simon.de/doku/ansifilter/en/ansifilter.html";
     license = licenses.gpl3;
     maintainers = [ maintainers.Adjective-Object ];
     platforms = platforms.linux ++ platforms.darwin;
diff --git a/pkgs/tools/text/crowdin-cli/default.nix b/pkgs/tools/text/crowdin-cli/default.nix
index 763c2e3b0fbea..b7b161427f02d 100644
--- a/pkgs/tools/text/crowdin-cli/default.nix
+++ b/pkgs/tools/text/crowdin-cli/default.nix
@@ -14,11 +14,11 @@
 
 stdenv.mkDerivation rec {
   pname = "crowdin-cli";
-  version = "3.19.4";
+  version = "4.0.0";
 
   src = fetchurl {
     url = "https://github.com/crowdin/${pname}/releases/download/${version}/${pname}.zip";
-    hash = "sha256-SD4D9wW+Tdr3mD91SJKm5K3gktH0ywQBRh0d1TMeLDs=";
+    hash = "sha256-7KyQUnl2O/raQLcP5VsMCX3084Mn6HFfxjJmksAkWBc=";
   };
 
   nativeBuildInputs = [ installShellFiles makeWrapper unzip ];
diff --git a/pkgs/tools/text/mdbook-i18n-helpers/default.nix b/pkgs/tools/text/mdbook-i18n-helpers/default.nix
index e38da146b1fa6..96026213f4a86 100644
--- a/pkgs/tools/text/mdbook-i18n-helpers/default.nix
+++ b/pkgs/tools/text/mdbook-i18n-helpers/default.nix
@@ -5,17 +5,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mdbook-i18n-helpers";
-  version = "0.3.2";
+  version = "0.3.3";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "mdbook-i18n-helpers";
     # TODO fix once upstream uses semver for tags again
     rev = "refs/tags/mdbook-i18n-helpers-${version}";
-    hash = "sha256-+lXIqq8T6jUkvxzvUnvRDmJg6BnT6rNK67kTm3krR0E=";
+    hash = "sha256-5DfQCkNilRB309BXQ/DWrSMX+A64uiZ2CZxPZ0krtys=";
   };
 
-  cargoHash = "sha256-xQwag3mlcLKI2ERhp+Sug8FZ6LMxnG4P1JaZNtrzdk8=";
+  cargoHash = "sha256-BrbEW5PD7n9KDaBUjdF60nto6mcfdQ0OUDKcnRH23DA=";
 
   meta = with lib; {
     description = "Helpers for a mdbook i18n workflow based on Gettext";
diff --git a/pkgs/tools/text/percollate/default.nix b/pkgs/tools/text/percollate/default.nix
index 2a7f8eaec3546..0e0581167286b 100644
--- a/pkgs/tools/text/percollate/default.nix
+++ b/pkgs/tools/text/percollate/default.nix
@@ -2,21 +2,21 @@
 
 buildNpmPackage rec {
   pname = "percollate";
-  version = "4.2.0";
+  version = "4.2.1";
 
   src = fetchFromGitHub {
     owner = "danburzo";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-AmvdigxLZA3lgT48Z9EVEWOC92kWNA2ve37RMJTR0UA=";
+    hash = "sha256-vGBGw9dUOSvSqM4WN53bb2LRduLjR6fW99C0ScdMVXk=";
   };
 
-  npmDepsHash = "sha256-21Q47puHZ8/jXIlLFrro87hOYahBjov8Pbg/Z2wgt+g=";
+  npmDepsHash = "sha256-Qne4XjUmJS5e6x380CFY3Kd7/5coXHMxniMfqYIHQcQ=";
 
   dontNpmBuild = true;
 
   # Dev dependencies include an unnecessary Java dependency (epubchecker)
-  # https://github.com/danburzo/percollate/blob/v4.2.0/package.json#L40
+  # https://github.com/danburzo/percollate/blob/v4.2.1/package.json#L40
   npmInstallFlags = [ "--omit=dev" ];
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/typesetting/tex/tetex/default.nix b/pkgs/tools/typesetting/tex/tetex/default.nix
index d153864172187..4c3fba31945a9 100644
--- a/pkgs/tools/typesetting/tex/tetex/default.nix
+++ b/pkgs/tools/typesetting/tex/tetex/default.nix
@@ -31,6 +31,11 @@ stdenv.mkDerivation rec {
 
   setupHook = ./setup-hook.sh;
 
+  env = {
+    CFLAGS = "-std=gnu89";
+    CXXFLAGS = "-std=c++03";
+  };
+
   configureFlags =
     [ "--disable-multiplatform" "--without-x11" "--without-xdvik"
       "--without-oxdvik" "--without-texinfo" "--without-texi2html"
diff --git a/pkgs/tools/typesetting/tex/texpresso/default.nix b/pkgs/tools/typesetting/tex/texpresso/default.nix
index 52e8be777c09e..f64dc3aae07e0 100644
--- a/pkgs/tools/typesetting/tex/texpresso/default.nix
+++ b/pkgs/tools/typesetting/tex/texpresso/default.nix
@@ -17,7 +17,7 @@
 
 stdenv.mkDerivation rec {
   pname = "texpresso";
-  version = "0-unstable-2024-05-09";
+  version = "0-unstable-2024-05-23";
 
   nativeBuildInputs = [
     makeWrapper
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = "let-def";
     repo = "texpresso";
-    rev = "8b6cfcd10c03596bc3645ac8425a48b105d8650d";
+    rev = "01cafac1ec6d33d5e169a0202f23a6f565cc55b8";
     hash = "sha256-uLGanGEUGzxIYFbU3U8LLV3bpn/IN9XltvWCmwSlD7E=";
   };
 
diff --git a/pkgs/tools/typesetting/tex/texpresso/tectonic.nix b/pkgs/tools/typesetting/tex/texpresso/tectonic.nix
index 838a51324a099..603c4d5ad3f4c 100644
--- a/pkgs/tools/typesetting/tex/texpresso/tectonic.nix
+++ b/pkgs/tools/typesetting/tex/texpresso/tectonic.nix
@@ -6,8 +6,8 @@ tectonic-unwrapped.override (old: {
       src = fetchFromGitHub {
         owner = "let-def";
         repo = "tectonic";
-        rev = "b38cb3b2529bba947d520ac29fbb7873409bd270";
-        hash = "sha256-ap7fEPHsASAphIQkjcvk1CC7egTdxaUh7IpSS5os4W8=";
+        rev = "bc522fabfdd17099deac2e12662b2a0810ceb104";
+        hash = "sha256-0esXnUML6C9DYrpmBBB+ACypLvnLsYE9fuNiiCFfYzw=";
         fetchSubmodules = true;
       };
       cargoHash = "sha256-62sxvPIiY3len1wsl7QelK3u4ekftIjcTqoIGZMYb5A=";
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index ffbaf10eb7434..4f54816185f0c 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -334,14 +334,21 @@ mapAliases ({
   enchant1 = throw "enchant1 has been removed from nixpkgs, as it was unmaintained"; # Added 2023-01-18
   enyo-doom = enyo-launcher; # Added 2022-09-09
   epoxy = libepoxy; # Added 2021-11-11
-  inherit (beam.interpreters) erlangR26 erlangR25 erlangR24; # added 2023-03-21
-  erlang_21 = throw "erlangR21 has been removed in favor of newer versions."; # added 2023-03-21
-  erlangR21 = erlang_21;
-  erlang_22 = throw "erlangR22 has been removed in favor of newer versions."; # added 2023-03-21
-  erlangR22 = erlang_22;
-  erlang_23 = throw "erlangR23 has been removed in favor of newer versions."; # added 2023-09-11
-  erlangR23 = erlang_23;
+
   erlang_27-rc3 = throw "erlang_27-rc3 has been removed in favor of erlang_27"; # added 2024-05-20
+  erlangR24 = throw "erlangR24 has been removed in favor of erlang_24"; # added 2024-05-24
+  erlangR24_odbc = throw "erlangR24_odbc has been removed in favor of erlang_24_odbc"; # added 2024-05-24
+  erlangR24_javac = throw "erlangR24_javac has been removed in favor of erlang_24_javac"; # added 2024-05-24
+  erlangR24_odbc_javac = throw "erlangR24_odbc_javac has been removed in favor of erlang_24_odbc_javac"; # added 2024-05-24
+  erlangR25 = throw "erlangR25 has been removed in favor of erlang_25"; # added 2024-05-24
+  erlangR25_odbc = throw "erlangR25_odbc has been removed in favor of erlang_25_odbc"; # added 2024-05-24
+  erlangR25_javac = throw "erlangR25_javac has been removed in favor of erlang_25_javac"; # added 2024-05-24
+  erlangR25_odbc_javac = throw "erlangR25_odbc_javac has been removed in favor of erlang_25_odbc_javac"; # added 2024-05-24
+  erlangR26 = throw "erlangR26 has been removed in favor of erlang_26"; # added 2024-05-24
+  erlangR26_odbc = throw "erlangR26_odbc has been removed in favor of erlang_26_odbc"; # added 2024-05-24
+  erlangR26_javac = throw "erlangR26_javac has been removed in favor of erlang_26_javac"; # added 2024-05-24
+  erlangR26_odbc_javac = throw "erlangR26_odbc_javac has been removed in favor of erlang_26_odbc_javac"; # added 2024-05-24
+
   etcd_3_3 = throw "etcd_3_3 has been removed because upstream no longer maintains it"; # Added 2023-09-29
   etcher = throw "'etcher' has been removed because it depended on an insecure version of Electron"; # Added 2024-03-14
   eterm = throw "eterm was removed because it is still insecure: https://github.com/mej/Eterm/issues/7"; # Added 2023-09-10
@@ -583,6 +590,8 @@ mapAliases ({
   julia_18 = throw "'julia_18' has been removed from nixpkgs as it has reached end of life"; # Added 2024-01-11
   julia_18-bin = throw "'julia_18-bin' has been removed from nixpkgs as it has reached end of life"; # Added 2024-01-11
 
+  jush = throw "jush has been removed from nixpkgs because it is unmaintained"; # Added 2024-05-28
+
   ### K ###
 
   k3s_1_24 = throw "'k3s_1_24' has been removed from nixpkgs as it has reached end of life"; # Added 2024-03-14
@@ -1256,6 +1265,7 @@ mapAliases ({
   telegram-cli = throw "telegram-cli was removed because it was broken and abandoned upstream"; # Added 2023-07-28
   teleport_11 = throw "teleport 11 has been removed as it is EOL. Please upgrade to Teleport 12 or later"; # Added 2023-11-27
   teleport_12 = throw "teleport 12 has been removed as it is EOL. Please upgrade to Teleport 13 or later"; # Added 2024-02-04
+  teleport_13 = throw "teleport 13 has been removed as it is EOL. Please upgrade to Teleport 14 or later"; # Added 2024-05-26
   teleprompter = throw "teleprompter has been removed. reason: upstream dead and does not work with recent electron versions"; # Added 2024-03-14
   tensile = throw "'tensile' has been replaced with 'rocmPackages.tensile'"; # Added 2023-10-08
   tepl = libgedit-tepl; # Added 2024-04-29
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 79dca219819a9..bf55a01034202 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1821,8 +1821,6 @@ with pkgs;
 
   gh-dash = callPackage ../tools/misc/gh-dash { };
 
-  gh-eco = callPackage ../tools/misc/gh-eco { };
-
   gh-markdown-preview = callPackage ../tools/misc/gh-markdown-preview { };
 
   ghostie = callPackage ../tools/misc/ghostie { };
@@ -2897,8 +2895,6 @@ with pkgs;
     inherit (qt5) wrapQtAppsHook;
   };
 
-  felix-fm = callPackage ../applications/file-managers/felix-fm { };
-
   krusader = libsForQt5.callPackage ../applications/file-managers/krusader { };
 
   lesscpy = callPackage ../development/compilers/lesscpy { };
@@ -10997,8 +10993,6 @@ with pkgs;
 
   mkgmap-splitter = callPackage ../applications/misc/mkgmap/splitter { };
 
-  mpack = callPackage ../tools/networking/mpack { };
-
   mtm = callPackage ../tools/misc/mtm { };
 
   op-geth = callPackage ../applications/blockchains/optimism/geth.nix {
@@ -13466,7 +13460,7 @@ with pkgs;
 
   inherit (callPackages ../servers/teleport {
     inherit (darwin.apple_sdk.frameworks) CoreFoundation Security AppKit;
-  }) teleport_13 teleport_14 teleport_15 teleport;
+  }) teleport_14 teleport_15 teleport;
 
   telepresence = callPackage ../tools/networking/telepresence {
     pythonPackages = python3Packages;
@@ -15041,8 +15035,6 @@ with pkgs;
 
   ion = callPackage ../shells/ion { };
 
-  jush = callPackage ../shells/jush { };
-
   ksh = callPackage ../shells/ksh { };
 
   liquidprompt = callPackage ../shells/liquidprompt { };
@@ -15097,6 +15089,8 @@ with pkgs;
   temurin-bin = temurin-bin-21;
   temurin-jre-bin = temurin-jre-bin-21;
 
+  semeru-bin-21 = javaPackages.compiler.semeru-bin.jdk-21;
+  semeru-jre-bin-21 = javaPackages.compiler.semeru-bin.jre-21;
   semeru-bin-17 = javaPackages.compiler.semeru-bin.jdk-17;
   semeru-jre-bin-17 = javaPackages.compiler.semeru-bin.jre-17;
   semeru-bin-16 = javaPackages.compiler.semeru-bin.jdk-16;
@@ -15106,8 +15100,8 @@ with pkgs;
   semeru-bin-8 = javaPackages.compiler.semeru-bin.jdk-8;
   semeru-jre-bin-8 = javaPackages.compiler.semeru-bin.jre-8;
 
-  semeru-bin = semeru-bin-17;
-  semeru-jre-bin = semeru-jre-bin-17;
+  semeru-bin = semeru-bin-21;
+  semeru-jre-bin = semeru-jre-bin-21;
 
   adoptopenjdk-bin-17-packages-linux = import ../development/compilers/adoptopenjdk-bin/jdk17-linux.nix { inherit stdenv lib; };
   adoptopenjdk-bin-17-packages-darwin = import ../development/compilers/adoptopenjdk-bin/jdk17-darwin.nix { inherit lib; };
@@ -17064,7 +17058,7 @@ with pkgs;
 
   # BQN interpreters and compilers
 
-  mbqn = callPackage ../development/interpreters/bqn/mlochbaum-bqn { };
+  mbqn = bqn;
 
   cbqn = cbqn-bootstrap.phase2;
   cbqn-replxx = cbqn-bootstrap.phase2-replxx;
@@ -17089,34 +17083,36 @@ with pkgs;
 
     phase0 = callPackage ../development/interpreters/bqn/cbqn {
       inherit (cbqn-bootstrap) mbqn-source stdenv;
-      genBytecode = false;
-      bqn-path = null;
+      generateBytecode = false;
+      # Not really used, but since null can be dangerous...
+      bqn-interpreter = "${lib.getExe' buildPackages.mbqn "bqn"}";
     };
 
     phase0-replxx = callPackage ../development/interpreters/bqn/cbqn {
       inherit (cbqn-bootstrap) mbqn-source stdenv;
-      genBytecode = false;
-      bqn-path = null;
       enableReplxx = true;
+      generateBytecode = false;
+      # Not really used, but since null can be dangerous...
+      bqn-interpreter = "${lib.getExe' buildPackages.mbqn "bqn"}";
     };
 
     phase1 = callPackage ../development/interpreters/bqn/cbqn {
       inherit (cbqn-bootstrap) mbqn-source stdenv;
-      genBytecode = true;
-      bqn-path = "${buildPackages.cbqn-bootstrap.phase0}/bin/cbqn";
+      generateBytecode = true;
+      bqn-interpreter = "${lib.getExe' buildPackages.cbqn-bootstrap.phase0 "cbqn"}";
     };
 
     phase2 = callPackage ../development/interpreters/bqn/cbqn {
       inherit (cbqn-bootstrap) mbqn-source stdenv;
-      genBytecode = true;
-      bqn-path = "${buildPackages.cbqn-bootstrap.phase1}/bin/cbqn";
+      generateBytecode = true;
+      bqn-interpreter = "${lib.getExe' buildPackages.cbqn-bootstrap.phase0 "cbqn"}";
     };
 
     phase2-replxx = callPackage ../development/interpreters/bqn/cbqn {
       inherit (cbqn-bootstrap) mbqn-source stdenv;
-      genBytecode = true;
-      bqn-path = "${buildPackages.cbqn-bootstrap.phase1}/bin/cbqn";
+      generateBytecode = true;
       enableReplxx = true;
+      bqn-interpreter = "${lib.getExe' buildPackages.cbqn-bootstrap.phase0 "cbqn"}";
     };
   };
 
@@ -23629,6 +23625,8 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks)
       AVFoundation Cocoa VideoDecodeAcceleration CoreMedia MediaToolbox Accelerate;
     ffmpeg = ffmpeg_4;
+    # OpenCV3 won't build with anything newer than CUDA 11 due to API changes.
+    cudaPackages = cudaPackages_11;
   };
 
   opencv4 = callPackage ../development/libraries/opencv/4.x.nix {
@@ -23868,6 +23866,7 @@ with pkgs;
 
   inherit
     ({
+      protobuf_27 = callPackage ../development/libraries/protobuf/27.nix { };
       protobuf_26 = callPackage ../development/libraries/protobuf/26.nix { };
       protobuf_25 = callPackage ../development/libraries/protobuf/25.nix { };
       protobuf_24 = callPackage ../development/libraries/protobuf/24.nix { };
@@ -23881,6 +23880,7 @@ with pkgs;
         abseil-cpp = abseil-cpp_202103;
       };
     })
+    protobuf_27
     protobuf_26
     protobuf_25
     protobuf_24
@@ -30717,7 +30717,10 @@ with pkgs;
 
   fondo = callPackage ../applications/graphics/fondo { };
 
-  font-manager = callPackage ../applications/misc/font-manager { };
+  font-manager = callPackage ../by-name/fo/font-manager/package.nix {
+    libsoup = libsoup_3;
+    webkitgtk = webkitgtk_4_1;
+  };
 
   fontfinder = callPackage ../applications/misc/fontfinder { };
 
@@ -31659,8 +31662,6 @@ with pkgs;
 
   protonup-qt = python3Packages.callPackage ../applications/misc/protonup-qt { };
 
-  pmbootstrap = python3Packages.callPackage ../tools/misc/pmbootstrap { };
-
   pokeget-rs = callPackage ../tools/misc/pokeget-rs { };
 
   popura = callPackage ../tools/networking/popura { };
@@ -33235,8 +33236,6 @@ with pkgs;
     protobuf = protobuf_21;
   };
 
-  smplayer = libsForQt5.callPackage ../applications/video/smplayer { };
-
   smtube = libsForQt5.callPackage ../applications/video/smtube { };
 
   softmaker-office = callPackage ../applications/office/softmaker/softmaker_office.nix { };
diff --git a/pkgs/top-level/beam-packages.nix b/pkgs/top-level/beam-packages.nix
index dec1a5d734ce8..2eba6dc4ea7d2 100644
--- a/pkgs/top-level/beam-packages.nix
+++ b/pkgs/top-level/beam-packages.nix
@@ -12,18 +12,6 @@
 let
   self = beam;
 
-  # Aliases added 2023-03-21
-  versionLoop = f: lib.lists.foldr (version: acc: (f version) // acc) { } [ "26" "25" "24" ];
-
-  interpretersAliases = versionLoop (version: {
-    "erlangR${version}" = self.interpreters."erlang_${version}";
-    "erlangR${version}_odbc" = self.interpreters."erlang_${version}_odbc";
-    "erlangR${version}_javac" = self.interpreters."erlang_${version}_javac";
-    "erlangR${version}_odbc_javac" = self.interpreters."erlang_${version}_odbc_javac";
-  });
-
-  packagesAliases = versionLoop (version: { "erlangR${version}" = self.packages."erlang_${version}"; });
-
 in
 
 {
@@ -95,7 +83,7 @@ in
     # `beam.packages.erlang_24.elixir`.
     inherit (self.packages.erlang)
       elixir elixir_1_16 elixir_1_15 elixir_1_14 elixir_1_13 elixir_1_12 elixir_1_11 elixir_1_10 elixir-ls lfe lfe_2_1;
-  } // interpretersAliases;
+  };
 
   # Helper function to generate package set with a specific Erlang version.
   packagesWith = erlang:
@@ -109,7 +97,7 @@ in
     erlang_26 = self.packagesWith self.interpreters.erlang_26;
     erlang_25 = self.packagesWith self.interpreters.erlang_25;
     erlang_24 = self.packagesWith self.interpreters.erlang_24;
-  } // packagesAliases;
+  };
 
   __attrsFailEvaluation = true;
 }
diff --git a/pkgs/top-level/linux-kernels.nix b/pkgs/top-level/linux-kernels.nix
index 24eadff372f18..0a248521a4375 100644
--- a/pkgs/top-level/linux-kernels.nix
+++ b/pkgs/top-level/linux-kernels.nix
@@ -213,7 +213,6 @@ in {
         kernelPatches = [
           kernelPatches.bridge_stp_helper
           kernelPatches.request_key_helper
-          kernelPatches.rust_1_77-6_9
         ];
       };
       latest = packageAliases.linux_latest.kernel;
diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix
index 74aa545f2b85c..9185234ad38c6 100644
--- a/pkgs/top-level/ocaml-packages.nix
+++ b/pkgs/top-level/ocaml-packages.nix
@@ -119,6 +119,8 @@ let
 
     bwd = callPackage ../development/ocaml-modules/bwd { };
 
+    bytestring = callPackage ../development/ocaml-modules/bytestring { };
+
     bz2 = callPackage ../development/ocaml-modules/bz2 { };
 
     ### C ###
@@ -231,6 +233,8 @@ let
 
     color = callPackage ../development/ocaml-modules/color { };
 
+    colors = callPackage ../development/ocaml-modules/colors { };
+
     conduit = callPackage ../development/ocaml-modules/conduit { };
 
     conduit-async = callPackage ../development/ocaml-modules/conduit/async.nix { };
@@ -241,6 +245,8 @@ let
 
     conduit-mirage = callPackage ../development/ocaml-modules/conduit/mirage.nix { };
 
+    config = callPackage ../development/ocaml-modules/config { };
+
     config-file = callPackage ../development/ocaml-modules/config-file { };
 
     containers = callPackage ../development/ocaml-modules/containers { };
@@ -600,6 +606,8 @@ let
     github-jsoo = callPackage ../development/ocaml-modules/github/jsoo.nix {  };
     github-unix = callPackage ../development/ocaml-modules/github/unix.nix {  };
 
+    gluon = callPackage ../development/ocaml-modules/gluon { };
+
     gluten = callPackage ../development/ocaml-modules/gluten { };
     gluten-eio = callPackage ../development/ocaml-modules/gluten/eio.nix { };
     gluten-lwt = callPackage ../development/ocaml-modules/gluten/lwt.nix { };
@@ -950,6 +958,8 @@ let
 
     letsencrypt-mirage = callPackage ../development/ocaml-modules/letsencrypt/mirage.nix { };
 
+    libc = callPackage ../development/ocaml-modules/libc { };
+
     lilv = callPackage ../development/ocaml-modules/lilv {
       inherit (pkgs) lilv;
     };
@@ -1634,6 +1644,8 @@ let
 
     ringo = callPackage ../development/ocaml-modules/ringo { };
 
+    rio = callPackage ../development/ocaml-modules/rio { };
+
     riot = callPackage ../development/ocaml-modules/riot { };
 
     rock = callPackage ../development/ocaml-modules/rock { };
@@ -1712,6 +1724,8 @@ let
 
     spelll = callPackage ../development/ocaml-modules/spelll { };
 
+    spices = callPackage ../development/ocaml-modules/spices { };
+
     srt = callPackage ../development/ocaml-modules/srt {
       inherit (pkgs) srt;
     };
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 34a33f42bf42a..061b75dfcffe2 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -4878,6 +4878,8 @@ self: super: with self; {
 
   goodwe = callPackage ../development/python-modules/goodwe { };
 
+  gophish = callPackage ../development/python-modules/gophish { };
+
   google = callPackage ../development/python-modules/google { };
 
   google-ai-generativelanguage = callPackage ../development/python-modules/google-ai-generativelanguage { };
@@ -6501,6 +6503,8 @@ self: super: with self; {
 
   latex2mathml = callPackage ../development/python-modules/latex2mathml { };
 
+  latex2pydata = callPackage ../development/python-modules/latex2pydata { };
+
   latexcodec = callPackage ../development/python-modules/latexcodec { };
 
   latexify-py = callPackage ../development/python-modules/latexify-py { };
@@ -8969,6 +8973,8 @@ self: super: with self; {
 
   nxt-python = callPackage ../development/python-modules/nxt-python { };
 
+  plugp100 = callPackage ../development/python-modules/plugp100 {};
+
   python-ndn = callPackage ../development/python-modules/python-ndn { };
 
   python-nvd3 = callPackage ../development/python-modules/python-nvd3 { };
@@ -12667,6 +12673,8 @@ self: super: with self; {
 
   pytube = callPackage ../development/python-modules/pytube { };
 
+  pytubefix = callPackage ../development/python-modules/pytubefix { };
+
   pytun = callPackage ../development/python-modules/pytun { };
 
   pyturbojpeg = callPackage ../development/python-modules/pyturbojpeg { };
@@ -16716,6 +16724,8 @@ self: super: with self; {
 
   vncdo = callPackage ../development/python-modules/vncdo { };
 
+  vnoise = callPackage ../development/python-modules/vnoise { };
+
   vobject = callPackage ../development/python-modules/vobject { };
 
   volatile = callPackage ../development/python-modules/volatile { };